/** * The curated dshloader ICON SET. * * Sourced from `@icon-park/react` so no plugin hand-maintains SVG path data * again (dsh-better-sidebar's `src/client/icons.tsx` keeps 10 icons by hand * today; every entry here replaces one of those or a * `@deepseek-ai/dsh-client-ui-primitives` icon import). * * WHY A SUBSET, NOT `export *`: IconPark ships ~2000 icons. dshloader's client * bundle is materialised through the DSH client module table, and a runtime * module boundary cannot be tree-shaken — re-exporting everything would put all * ~2000 icons into one bundle every plugin pays for. Naming a subset keeps the * cost proportional (only the icons listed here are bundled), and a plugin that * needs an exotic glyph can still depend on `@icon-park/react` directly. * * Adding an icon: import it below and add it to the export block. That is the * only change needed — no SVG, no viewBox, no stroke bookkeeping. * * @module @dsh-plugin/dsh-loader/ui/icons */ import * as React from 'react'; import { IconProvider, type IIconProps, type Theme } from '@icon-park/react/es/runtime'; /** Props every dshloader icon accepts (IconPark's own prop contract). */ export type IconProps = IIconProps; /** An icon component. */ export type IconComponent = (props: IconProps) => React.ReactElement; /** * The curated set, grouped by purpose. Names are intent-based (`Settings`, * `Warning`) rather than IconPark's raw names so a glyph can be swapped without * touching consumers. */ export declare const Icons: { readonly ChevronUp: import("@icon-park/react/es/runtime").Icon; readonly ChevronDown: import("@icon-park/react/es/runtime").Icon; readonly ChevronLeft: import("@icon-park/react/es/runtime").Icon; readonly ChevronRight: import("@icon-park/react/es/runtime").Icon; readonly Back: import("@icon-park/react/es/runtime").Icon; readonly Expand: import("@icon-park/react/es/runtime").Icon; readonly More: import("@icon-park/react/es/runtime").Icon; readonly Sort: import("@icon-park/react/es/runtime").Icon; readonly Add: import("@icon-park/react/es/runtime").Icon; readonly Edit: import("@icon-park/react/es/runtime").Icon; readonly Write: import("@icon-park/react/es/runtime").Icon; readonly Delete: import("@icon-park/react/es/runtime").Icon; readonly Copy: import("@icon-park/react/es/runtime").Icon; readonly Save: import("@icon-park/react/es/runtime").Icon; readonly Search: import("@icon-park/react/es/runtime").Icon; readonly Refresh: import("@icon-park/react/es/runtime").Icon; readonly Download: import("@icon-park/react/es/runtime").Icon; readonly Upload: import("@icon-park/react/es/runtime").Icon; readonly Undo: import("@icon-park/react/es/runtime").Icon; readonly Redo: import("@icon-park/react/es/runtime").Icon; readonly Play: import("@icon-park/react/es/runtime").Icon; readonly Stop: import("@icon-park/react/es/runtime").Icon; readonly Close: import("@icon-park/react/es/runtime").Icon; readonly CloseSmall: import("@icon-park/react/es/runtime").Icon; readonly Check: import("@icon-park/react/es/runtime").Icon; readonly CheckSmall: import("@icon-park/react/es/runtime").Icon; readonly Info: import("@icon-park/react/es/runtime").Icon; readonly Warning: import("@icon-park/react/es/runtime").Icon; readonly Error: import("@icon-park/react/es/runtime").Icon; readonly Success: import("@icon-park/react/es/runtime").Icon; readonly Loading: import("@icon-park/react/es/runtime").Icon; readonly Help: import("@icon-park/react/es/runtime").Icon; readonly Settings: import("@icon-park/react/es/runtime").Icon; readonly SettingsAlt: import("@icon-park/react/es/runtime").Icon; readonly Config: import("@icon-park/react/es/runtime").Icon; readonly Terminal: import("@icon-park/react/es/runtime").Icon; readonly Code: import("@icon-park/react/es/runtime").Icon; readonly FileCode: import("@icon-park/react/es/runtime").Icon; readonly Doc: import("@icon-park/react/es/runtime").Icon; readonly Folder: import("@icon-park/react/es/runtime").Icon; readonly FolderOpen: import("@icon-park/react/es/runtime").Icon; readonly GitBranch: import("@icon-park/react/es/runtime").Icon; readonly Link: import("@icon-park/react/es/runtime").Icon; readonly Web: import("@icon-park/react/es/runtime").Icon; readonly Browser: import("@icon-park/react/es/runtime").Icon; readonly Lock: import("@icon-park/react/es/runtime").Icon; readonly Unlock: import("@icon-park/react/es/runtime").Icon; readonly EyeOpen: import("@icon-park/react/es/runtime").Icon; readonly EyeClosed: import("@icon-park/react/es/runtime").Icon; readonly Alarm: import("@icon-park/react/es/runtime").Icon; readonly Diamond: import("@icon-park/react/es/runtime").Icon; readonly Apps: import("@icon-park/react/es/runtime").Icon; }; /** Name of a curated icon. */ export type IconName = keyof typeof Icons; /** Every curated icon name, for pickers and tests. */ export declare const ICON_NAMES: IconName[]; /** * Look one icon up by name. Unknown names resolve to `Help` rather than * throwing, so a stale name degrades to a visible placeholder. */ export declare function icon(name: IconName): IconComponent; /** * `` — the ergonomic form for data-driven icon choices * (menu descriptors, settings rows) where a component reference is awkward. */ export declare function Icon({ name, ...rest }: { name: IconName; } & IconProps): React.ReactElement; /** The icon defaults dshloader components render with. */ export declare const DSH_ICON_CONFIG: { strokeLinecap: import("@icon-park/react/es/runtime").StrokeLinecap; strokeLinejoin: import("@icon-park/react/es/runtime").StrokeLinejoin; prefix: string; rtl: boolean; size: number; strokeWidth: number; theme: Theme; colors: { filled: { fill: string; background: string; }; twoTone: { fill: string; twoTone: string; }; multiColor: { outStrokeColor: string; outFillColor: string; innerStrokeColor: string; innerFillColor: string; }; outline: { fill: string; background: string; }; }; }; /** * Wrap a subtree so every dshloader icon inside inherits the DSH defaults * (outline theme, `currentColor` fill, matching size). Plugins that render * dshloader components inside their own React tree should mount this once near * the root; the components in `./components.js` do not require it, but they look * consistent with the rest of DSH when it is present. */ export declare function DshIconProvider({ children }: { children?: React.ReactNode; }): React.ReactElement; export { IconProvider };