@imfusion/web-ui 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/README.md +60 -0
  2. package/bin/install-skill.js +180 -0
  3. package/dist/assets/vendors/base-ui.d.ts +8 -0
  4. package/dist/breakpoints/index.d.ts +3 -0
  5. package/dist/breakpoints/min-width.d.ts +9 -0
  6. package/dist/breakpoints/registry.d.ts +19 -0
  7. package/dist/code-qBbqAHK-.js +190 -0
  8. package/dist/codegen/gen-breakpoints-css.d.ts +6 -0
  9. package/dist/codegen/gen-css-types.d.ts +1 -0
  10. package/dist/codegen/gen-token-css.d.ts +6 -0
  11. package/dist/codegen/run.d.ts +1 -0
  12. package/dist/components/app-shell/app-shell.d.ts +66 -0
  13. package/dist/components/app-shell/app-shell.meta.d.ts +2 -0
  14. package/dist/components/app-shell/index.d.ts +2 -0
  15. package/dist/components/button/button.d.ts +30 -0
  16. package/dist/components/button/button.meta.d.ts +2 -0
  17. package/dist/components/button/index.d.ts +2 -0
  18. package/dist/components/callout/callout.d.ts +42 -0
  19. package/dist/components/callout/callout.meta.d.ts +2 -0
  20. package/dist/components/callout/index.d.ts +2 -0
  21. package/dist/components/card/card.d.ts +64 -0
  22. package/dist/components/card/card.meta.d.ts +2 -0
  23. package/dist/components/card/index.d.ts +2 -0
  24. package/dist/components/checkbox/checkbox.d.ts +56 -0
  25. package/dist/components/checkbox/checkbox.meta.d.ts +2 -0
  26. package/dist/components/checkbox/index.d.ts +2 -0
  27. package/dist/components/chip/chip.cva.d.ts +12 -0
  28. package/dist/components/chip/chip.d.ts +11 -0
  29. package/dist/components/chip/chip.meta.d.ts +2 -0
  30. package/dist/components/chip/index.d.ts +2 -0
  31. package/dist/components/chip-link/chip-link.d.ts +17 -0
  32. package/dist/components/chip-link/chip-link.meta.d.ts +2 -0
  33. package/dist/components/chip-link/index.d.ts +2 -0
  34. package/dist/components/code/code.d.ts +60 -0
  35. package/dist/components/code/code.meta.d.ts +2 -0
  36. package/dist/components/code/index.d.ts +2 -0
  37. package/dist/components/collapsible/collapsible.d.ts +57 -0
  38. package/dist/components/collapsible/collapsible.meta.d.ts +2 -0
  39. package/dist/components/collapsible/index.d.ts +2 -0
  40. package/dist/components/copy-button/copy-button.d.ts +21 -0
  41. package/dist/components/copy-button/copy-button.meta.d.ts +2 -0
  42. package/dist/components/copy-button/index.d.ts +2 -0
  43. package/dist/components/drawer/drawer.d.ts +191 -0
  44. package/dist/components/drawer/drawer.meta.d.ts +2 -0
  45. package/dist/components/drawer/index.d.ts +2 -0
  46. package/dist/components/input/index.d.ts +2 -0
  47. package/dist/components/input/input.d.ts +25 -0
  48. package/dist/components/input/input.meta.d.ts +2 -0
  49. package/dist/components/logo/imfusion/imfusion.d.ts +16 -0
  50. package/dist/components/logo/imfusion/index.d.ts +1 -0
  51. package/dist/components/logo/index.d.ts +3 -0
  52. package/dist/components/logo/logo.d.ts +15 -0
  53. package/dist/components/logo/logo.meta.d.ts +2 -0
  54. package/dist/components/navigation-menu/index.d.ts +2 -0
  55. package/dist/components/navigation-menu/navigation-menu.d.ts +20 -0
  56. package/dist/components/navigation-menu/navigation-menu.meta.d.ts +2 -0
  57. package/dist/components/navigation-menu/subs/flyout-link.d.ts +24 -0
  58. package/dist/components/navigation-menu/subs/inline-submenu.d.ts +41 -0
  59. package/dist/components/navigation-menu/subs/link.d.ts +64 -0
  60. package/dist/components/navigation-menu/subs/overlay.d.ts +75 -0
  61. package/dist/components/navigation-menu/subs/shared.d.ts +20 -0
  62. package/dist/components/navigation-menu/subs/structure.d.ts +64 -0
  63. package/dist/components/navigation-menu/subs/trigger.d.ts +47 -0
  64. package/dist/components/popover/index.d.ts +2 -0
  65. package/dist/components/popover/popover.d.ts +181 -0
  66. package/dist/components/popover/popover.meta.d.ts +2 -0
  67. package/dist/components/row/index.d.ts +2 -0
  68. package/dist/components/row/row.d.ts +28 -0
  69. package/dist/components/row/row.meta.d.ts +2 -0
  70. package/dist/components/select/index.d.ts +2 -0
  71. package/dist/components/select/select.d.ts +278 -0
  72. package/dist/components/select/select.meta.d.ts +2 -0
  73. package/dist/components/separator/index.d.ts +2 -0
  74. package/dist/components/separator/separator.d.ts +15 -0
  75. package/dist/components/separator/separator.meta.d.ts +2 -0
  76. package/dist/components/slider/index.d.ts +2 -0
  77. package/dist/components/slider/slider.d.ts +111 -0
  78. package/dist/components/slider/slider.meta.d.ts +2 -0
  79. package/dist/components/spinner/index.d.ts +2 -0
  80. package/dist/components/spinner/spinner.d.ts +19 -0
  81. package/dist/components/spinner/spinner.geometry.d.ts +37 -0
  82. package/dist/components/spinner/spinner.meta.d.ts +2 -0
  83. package/dist/components/stack/index.d.ts +2 -0
  84. package/dist/components/stack/stack.d.ts +18 -0
  85. package/dist/components/stack/stack.meta.d.ts +2 -0
  86. package/dist/components/switch/index.d.ts +2 -0
  87. package/dist/components/switch/switch.d.ts +45 -0
  88. package/dist/components/switch/switch.meta.d.ts +2 -0
  89. package/dist/components/table/index.d.ts +2 -0
  90. package/dist/components/table/table.d.ts +66 -0
  91. package/dist/components/table/table.meta.d.ts +2 -0
  92. package/dist/components/tabs/index.d.ts +2 -0
  93. package/dist/components/tabs/tabs.d.ts +91 -0
  94. package/dist/components/tabs/tabs.meta.d.ts +2 -0
  95. package/dist/components/toggle/index.d.ts +2 -0
  96. package/dist/components/toggle/toggle.d.ts +31 -0
  97. package/dist/components/toggle/toggle.meta.d.ts +2 -0
  98. package/dist/components/toggle-group/index.d.ts +2 -0
  99. package/dist/components/toggle-group/toggle-group.d.ts +30 -0
  100. package/dist/components/toggle-group/toggle-group.meta.d.ts +2 -0
  101. package/dist/components/tooltip/index.d.ts +2 -0
  102. package/dist/components/tooltip/tooltip.d.ts +164 -0
  103. package/dist/components/tooltip/tooltip.meta.d.ts +2 -0
  104. package/dist/components/typo/index.d.ts +2 -0
  105. package/dist/components/typo/typo.d.ts +100 -0
  106. package/dist/components/typo/typo.meta.d.ts +2 -0
  107. package/dist/config.d.ts +8 -0
  108. package/dist/docgen/gen-docgen.d.ts +1 -0
  109. package/dist/docgen/gen-docgen.utils.d.ts +13 -0
  110. package/dist/hooks/index.d.ts +5 -0
  111. package/dist/hooks/use-clipboard.d.ts +12 -0
  112. package/dist/hooks/use-color-scheme.d.ts +31 -0
  113. package/dist/hooks/use-media-query.d.ts +13 -0
  114. package/dist/index.d.ts +38 -0
  115. package/dist/index.js +13103 -0
  116. package/dist/integrations/code-highlight/code-highlight.d.ts +21 -0
  117. package/dist/integrations/code-highlight/code-highlight.meta.d.ts +2 -0
  118. package/dist/integrations/code-highlight/highlighter.d.ts +6 -0
  119. package/dist/integrations/code-highlight/index.d.ts +3 -0
  120. package/dist/integrations/code-highlight.js +97 -0
  121. package/dist/integrations/image-display-options/image-display-options-view.d.ts +22 -0
  122. package/dist/integrations/image-display-options/image-display-options-view.utils.d.ts +40 -0
  123. package/dist/integrations/image-display-options/image-display-options.d.ts +29 -0
  124. package/dist/integrations/image-display-options/image-display-options.meta.d.ts +2 -0
  125. package/dist/integrations/image-display-options/index.d.ts +2 -0
  126. package/dist/integrations/image-display-options.js +319 -0
  127. package/dist/llms/gen-llms.d.ts +1 -0
  128. package/dist/meta-B8C51eyL.js +74 -0
  129. package/dist/provider/index.d.ts +1 -0
  130. package/dist/provider/web-ui-provider.d.ts +6 -0
  131. package/dist/style.css +2 -0
  132. package/dist/tabs-DqBFSqq6.js +3789 -0
  133. package/dist/tokens/apply.d.ts +55 -0
  134. package/dist/tokens/control-registry.d.ts +10 -0
  135. package/dist/tokens/token-registry.d.ts +13 -0
  136. package/dist/tokens/types.d.ts +71 -0
  137. package/dist/tokens/use-token-controls.d.ts +36 -0
  138. package/dist/types/docgen.d.ts +17 -0
  139. package/dist/types/meta.d.ts +108 -0
  140. package/dist/types/theme.d.ts +3 -0
  141. package/package.json +139 -0
  142. package/src/docgen/doc.gen.json +4695 -0
  143. package/src/llms/llms.gen.txt +176 -0
  144. package/src/llms/skills/imf-web-ui/SKILL.md +46 -0
  145. package/src/llms/skills/imf-web-ui-components/SKILL.md +100 -0
  146. package/src/llms/skills/imf-web-ui-frontend-patterns/SKILL.md +67 -0
  147. package/src/llms/skills/imf-web-ui-frontend-patterns/references/react-patterns.md +94 -0
  148. package/src/llms/skills/imf-web-ui-setup/SKILL.md +30 -0
  149. package/src/llms/skills/imf-web-ui-ux/SKILL.md +103 -0
  150. package/src/llms/skills/imf-web-ui-ux/references/forms.md +48 -0
  151. package/src/llms/skills/imf-web-ui-ux/references/usability-heuristics.md +29 -0
  152. package/src/llms/skills/imf-web-ui-ux/references/visual-design.md +38 -0
@@ -0,0 +1,278 @@
1
+ import { Select as SelectPrimitive } from '@base-ui/react/select';
2
+ type UpstreamRoot = React.ComponentProps<typeof SelectPrimitive.Root>;
3
+ type UpstreamLabel = React.ComponentProps<typeof SelectPrimitive.Label>;
4
+ type UpstreamTrigger = React.ComponentProps<typeof SelectPrimitive.Trigger>;
5
+ type UpstreamValue = React.ComponentProps<typeof SelectPrimitive.Value>;
6
+ type UpstreamIcon = React.ComponentProps<typeof SelectPrimitive.Icon>;
7
+ type UpstreamPortal = React.ComponentProps<typeof SelectPrimitive.Portal>;
8
+ type UpstreamBackdrop = React.ComponentProps<typeof SelectPrimitive.Backdrop>;
9
+ type UpstreamPositioner = React.ComponentProps<typeof SelectPrimitive.Positioner>;
10
+ type UpstreamPopup = React.ComponentProps<typeof SelectPrimitive.Popup>;
11
+ type UpstreamArrow = React.ComponentProps<typeof SelectPrimitive.Arrow>;
12
+ type UpstreamList = React.ComponentProps<typeof SelectPrimitive.List>;
13
+ type UpstreamItem = React.ComponentProps<typeof SelectPrimitive.Item>;
14
+ type UpstreamItemIndicator = React.ComponentProps<typeof SelectPrimitive.ItemIndicator>;
15
+ type UpstreamItemText = React.ComponentProps<typeof SelectPrimitive.ItemText>;
16
+ type UpstreamGroup = React.ComponentProps<typeof SelectPrimitive.Group>;
17
+ type UpstreamGroupLabel = React.ComponentProps<typeof SelectPrimitive.GroupLabel>;
18
+ type UpstreamSeparator = React.ComponentProps<typeof SelectPrimitive.Separator>;
19
+ type UpstreamScrollUpArrow = React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>;
20
+ type UpstreamScrollDownArrow = React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>;
21
+ type RootProps = {
22
+ value?: UpstreamRoot["value"];
23
+ defaultValue?: UpstreamRoot["defaultValue"];
24
+ onValueChange?: UpstreamRoot["onValueChange"];
25
+ /** @default false */
26
+ defaultOpen?: UpstreamRoot["defaultOpen"];
27
+ open?: UpstreamRoot["open"];
28
+ onOpenChange?: UpstreamRoot["onOpenChange"];
29
+ onOpenChangeComplete?: UpstreamRoot["onOpenChangeComplete"];
30
+ /** @default false */
31
+ multiple?: UpstreamRoot["multiple"];
32
+ /** @default false */
33
+ disabled?: UpstreamRoot["disabled"];
34
+ /** @default false */
35
+ readOnly?: UpstreamRoot["readOnly"];
36
+ /** @default false */
37
+ required?: UpstreamRoot["required"];
38
+ /** @default true */
39
+ modal?: UpstreamRoot["modal"];
40
+ /** @default true */
41
+ highlightItemOnHover?: UpstreamRoot["highlightItemOnHover"];
42
+ items?: UpstreamRoot["items"];
43
+ isItemEqualToValue?: UpstreamRoot["isItemEqualToValue"];
44
+ itemToStringLabel?: UpstreamRoot["itemToStringLabel"];
45
+ itemToStringValue?: UpstreamRoot["itemToStringValue"];
46
+ autoComplete?: UpstreamRoot["autoComplete"];
47
+ form?: UpstreamRoot["form"];
48
+ inputRef?: UpstreamRoot["inputRef"];
49
+ actionsRef?: UpstreamRoot["actionsRef"];
50
+ name?: UpstreamRoot["name"];
51
+ id?: UpstreamRoot["id"];
52
+ children?: React.ReactNode;
53
+ };
54
+ /**
55
+ * Select.Root — accessible select / listbox primitive.
56
+ *
57
+ * Renders a thin wrapper div so that a sibling Select.Label stacks above the
58
+ * Select.Trigger regardless of the parent's layout. Select.Portal is unaffected
59
+ * (it renders to document.body).
60
+ *
61
+ * @doc https://base-ui.com/react/components/select
62
+ * @llm https://base-ui.com/react/components/select.md
63
+ */
64
+ export declare function Root({ className, style, ...props }: RootProps & {
65
+ className?: string;
66
+ style?: React.CSSProperties;
67
+ }): import("react/jsx-runtime").JSX.Element;
68
+ export declare namespace Root {
69
+ var displayName: string;
70
+ }
71
+ type LabelProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
72
+ className?: UpstreamLabel["className"];
73
+ style?: UpstreamLabel["style"];
74
+ render?: UpstreamLabel["render"];
75
+ };
76
+ /** Select.Label — visible label for the trigger. */
77
+ export declare function Label({ className, ...props }: LabelProps): import("react/jsx-runtime").JSX.Element;
78
+ export declare namespace Label {
79
+ var displayName: string;
80
+ }
81
+ type TriggerProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "className" | "style"> & {
82
+ /** @default true */
83
+ nativeButton?: UpstreamTrigger["nativeButton"];
84
+ className?: UpstreamTrigger["className"];
85
+ style?: UpstreamTrigger["style"];
86
+ render?: UpstreamTrigger["render"];
87
+ };
88
+ /** Select.Trigger — button that opens the popup. */
89
+ export declare function Trigger({ className, ...props }: TriggerProps): import("react/jsx-runtime").JSX.Element;
90
+ export declare namespace Trigger {
91
+ var displayName: string;
92
+ }
93
+ type ValueProps = Omit<React.HTMLAttributes<HTMLSpanElement>, "children" | "className" | "style"> & {
94
+ placeholder?: React.ReactNode;
95
+ children?: UpstreamValue["children"];
96
+ className?: UpstreamValue["className"];
97
+ style?: UpstreamValue["style"];
98
+ render?: UpstreamValue["render"];
99
+ };
100
+ /** Select.Value — renders the currently-selected value (or placeholder). */
101
+ export declare function Value({ className, children, ...props }: ValueProps): import("react/jsx-runtime").JSX.Element;
102
+ export declare namespace Value {
103
+ var displayName: string;
104
+ }
105
+ type IconProps = Omit<React.HTMLAttributes<HTMLSpanElement>, "className" | "style"> & {
106
+ className?: UpstreamIcon["className"];
107
+ style?: UpstreamIcon["style"];
108
+ render?: UpstreamIcon["render"];
109
+ };
110
+ /** Select.Icon — visual indicator (chevron) next to the value. */
111
+ export declare function Icon({ className, ...props }: IconProps): import("react/jsx-runtime").JSX.Element;
112
+ export declare namespace Icon {
113
+ var displayName: string;
114
+ }
115
+ type PortalProps = {
116
+ container?: UpstreamPortal["container"];
117
+ className?: UpstreamPortal["className"];
118
+ style?: UpstreamPortal["style"];
119
+ render?: UpstreamPortal["render"];
120
+ children?: React.ReactNode;
121
+ };
122
+ /** Select.Portal — portals the popup tree to document.body (or a custom container). */
123
+ export declare function Portal(props: PortalProps): import("react/jsx-runtime").JSX.Element;
124
+ export declare namespace Portal {
125
+ var displayName: string;
126
+ }
127
+ type BackdropProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
128
+ className?: UpstreamBackdrop["className"];
129
+ style?: UpstreamBackdrop["style"];
130
+ render?: UpstreamBackdrop["render"];
131
+ };
132
+ /** Select.Backdrop — overlay behind the popup (visible only in modal mode). */
133
+ export declare function Backdrop({ className, ...props }: BackdropProps): import("react/jsx-runtime").JSX.Element;
134
+ export declare namespace Backdrop {
135
+ var displayName: string;
136
+ }
137
+ type PositionerProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
138
+ /** @default false */
139
+ alignItemWithTrigger?: UpstreamPositioner["alignItemWithTrigger"];
140
+ /** @default false */
141
+ disableAnchorTracking?: UpstreamPositioner["disableAnchorTracking"];
142
+ /** @default "start" */
143
+ align?: UpstreamPositioner["align"];
144
+ /** @default 0 */
145
+ alignOffset?: UpstreamPositioner["alignOffset"];
146
+ /** @default "bottom" */
147
+ side?: UpstreamPositioner["side"];
148
+ /** @default 0 */
149
+ sideOffset?: UpstreamPositioner["sideOffset"];
150
+ /** @default 'clipping-ancestors' */
151
+ collisionBoundary?: UpstreamPositioner["collisionBoundary"];
152
+ /** @default 5 */
153
+ collisionPadding?: UpstreamPositioner["collisionPadding"];
154
+ /** @default { fallbackAxisSide: 'none' } */
155
+ collisionAvoidance?: UpstreamPositioner["collisionAvoidance"];
156
+ className?: UpstreamPositioner["className"];
157
+ style?: UpstreamPositioner["style"];
158
+ render?: UpstreamPositioner["render"];
159
+ };
160
+ /** Select.Positioner — positions the popup relative to the trigger. */
161
+ export declare function Positioner({ className, align, alignItemWithTrigger, ...props }: PositionerProps): import("react/jsx-runtime").JSX.Element;
162
+ export declare namespace Positioner {
163
+ var displayName: string;
164
+ }
165
+ type PopupProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
166
+ className?: UpstreamPopup["className"];
167
+ style?: UpstreamPopup["style"];
168
+ render?: UpstreamPopup["render"];
169
+ };
170
+ /** Select.Popup — dropdown surface. */
171
+ export declare function Popup({ className, ...props }: PopupProps): import("react/jsx-runtime").JSX.Element;
172
+ export declare namespace Popup {
173
+ var displayName: string;
174
+ }
175
+ type ArrowProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
176
+ className?: UpstreamArrow["className"];
177
+ style?: UpstreamArrow["style"];
178
+ render?: UpstreamArrow["render"];
179
+ };
180
+ /** Select.Arrow — pointer arrow attached to the popup. */
181
+ export declare function Arrow({ className, ...props }: ArrowProps): import("react/jsx-runtime").JSX.Element;
182
+ export declare namespace Arrow {
183
+ var displayName: string;
184
+ }
185
+ type ListProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
186
+ className?: UpstreamList["className"];
187
+ style?: UpstreamList["style"];
188
+ render?: UpstreamList["render"];
189
+ };
190
+ /** Select.List — items container. */
191
+ export declare function List({ className, ...props }: ListProps): import("react/jsx-runtime").JSX.Element;
192
+ export declare namespace List {
193
+ var displayName: string;
194
+ }
195
+ type ItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
196
+ value: UpstreamItem["value"];
197
+ /** @default false */
198
+ disabled?: UpstreamItem["disabled"];
199
+ className?: UpstreamItem["className"];
200
+ style?: UpstreamItem["style"];
201
+ render?: UpstreamItem["render"];
202
+ };
203
+ /** Select.Item — individual selectable option. */
204
+ export declare function Item({ className, ...props }: ItemProps): import("react/jsx-runtime").JSX.Element;
205
+ export declare namespace Item {
206
+ var displayName: string;
207
+ }
208
+ type ItemIndicatorProps = Omit<React.HTMLAttributes<HTMLSpanElement>, "className" | "style"> & {
209
+ className?: UpstreamItemIndicator["className"];
210
+ style?: UpstreamItemIndicator["style"];
211
+ render?: UpstreamItemIndicator["render"];
212
+ };
213
+ /** Select.ItemIndicator — visual marker (e.g. checkmark) inside the selected item. */
214
+ export declare function ItemIndicator({ className, ...props }: ItemIndicatorProps): import("react/jsx-runtime").JSX.Element;
215
+ export declare namespace ItemIndicator {
216
+ var displayName: string;
217
+ }
218
+ type ItemTextProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
219
+ className?: UpstreamItemText["className"];
220
+ style?: UpstreamItemText["style"];
221
+ render?: UpstreamItemText["render"];
222
+ };
223
+ /** Select.ItemText — text label for an item. */
224
+ export declare function ItemText({ className, ...props }: ItemTextProps): import("react/jsx-runtime").JSX.Element;
225
+ export declare namespace ItemText {
226
+ var displayName: string;
227
+ }
228
+ type GroupProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
229
+ className?: UpstreamGroup["className"];
230
+ style?: UpstreamGroup["style"];
231
+ render?: UpstreamGroup["render"];
232
+ };
233
+ /** Select.Group — wrapper around a grouped set of items. */
234
+ export declare function Group({ className, ...props }: GroupProps): import("react/jsx-runtime").JSX.Element;
235
+ export declare namespace Group {
236
+ var displayName: string;
237
+ }
238
+ type GroupLabelProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
239
+ className?: UpstreamGroupLabel["className"];
240
+ style?: UpstreamGroupLabel["style"];
241
+ render?: UpstreamGroupLabel["render"];
242
+ };
243
+ /** Select.GroupLabel — heading for a Select.Group. */
244
+ export declare function GroupLabel({ className, ...props }: GroupLabelProps): import("react/jsx-runtime").JSX.Element;
245
+ export declare namespace GroupLabel {
246
+ var displayName: string;
247
+ }
248
+ type SeparatorProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
249
+ className?: UpstreamSeparator["className"];
250
+ style?: UpstreamSeparator["style"];
251
+ render?: UpstreamSeparator["render"];
252
+ };
253
+ /** Select.Separator — thin divider between items. */
254
+ export declare function Separator({ className, ...props }: SeparatorProps): import("react/jsx-runtime").JSX.Element;
255
+ export declare namespace Separator {
256
+ var displayName: string;
257
+ }
258
+ type ScrollUpArrowProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
259
+ className?: UpstreamScrollUpArrow["className"];
260
+ style?: UpstreamScrollUpArrow["style"];
261
+ render?: UpstreamScrollUpArrow["render"];
262
+ };
263
+ /** Select.ScrollUpArrow — indicator that more items exist above. */
264
+ export declare function ScrollUpArrow({ className, ...props }: ScrollUpArrowProps): import("react/jsx-runtime").JSX.Element;
265
+ export declare namespace ScrollUpArrow {
266
+ var displayName: string;
267
+ }
268
+ type ScrollDownArrowProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
269
+ className?: UpstreamScrollDownArrow["className"];
270
+ style?: UpstreamScrollDownArrow["style"];
271
+ render?: UpstreamScrollDownArrow["render"];
272
+ };
273
+ /** Select.ScrollDownArrow — indicator that more items exist below. */
274
+ export declare function ScrollDownArrow({ className, ...props }: ScrollDownArrowProps): import("react/jsx-runtime").JSX.Element;
275
+ export declare namespace ScrollDownArrow {
276
+ var displayName: string;
277
+ }
278
+ export {};
@@ -0,0 +1,2 @@
1
+ import { ComponentMeta } from '../../types/meta';
2
+ export declare const selectMeta: ComponentMeta;
@@ -0,0 +1,2 @@
1
+ export { Separator } from './separator';
2
+ export { separatorMeta } from './separator.meta';
@@ -0,0 +1,15 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ declare const separator: (props?: ({
3
+ variant?: "solid" | "dashed" | "dotted" | null | undefined;
4
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
5
+ type Props = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof separator> & {
6
+ orientation?: "horizontal" | "vertical";
7
+ };
8
+ /**
9
+ * Separator — visual divider between content sections.
10
+ *
11
+ * @see https://base-ui.com/react/components/separator
12
+ * @llm https://base-ui.com/react/components/separator.md
13
+ */
14
+ export declare function Separator({ orientation, variant, className, ...props }: Props): import("react/jsx-runtime").JSX.Element;
15
+ export {};
@@ -0,0 +1,2 @@
1
+ import { ComponentMeta } from '../../types/meta';
2
+ export declare const separatorMeta: ComponentMeta;
@@ -0,0 +1,2 @@
1
+ export * as Slider from './slider';
2
+ export { sliderMeta } from './slider.meta';
@@ -0,0 +1,111 @@
1
+ import { Slider as SliderPrimitive } from '@base-ui/react/slider';
2
+ type UpstreamRoot = React.ComponentProps<typeof SliderPrimitive.Root>;
3
+ type UpstreamLabel = React.ComponentProps<typeof SliderPrimitive.Label>;
4
+ type UpstreamValue = React.ComponentProps<typeof SliderPrimitive.Value>;
5
+ type UpstreamControl = React.ComponentProps<typeof SliderPrimitive.Control>;
6
+ type UpstreamTrack = React.ComponentProps<typeof SliderPrimitive.Track>;
7
+ type UpstreamIndicator = React.ComponentProps<typeof SliderPrimitive.Indicator>;
8
+ type UpstreamThumb = React.ComponentProps<typeof SliderPrimitive.Thumb>;
9
+ type RootProps = Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue" | "className" | "style"> & {
10
+ value?: number | number[];
11
+ defaultValue?: number | number[];
12
+ onValueChange?: UpstreamRoot["onValueChange"];
13
+ onValueCommitted?: UpstreamRoot["onValueCommitted"];
14
+ min?: number;
15
+ max?: number;
16
+ step?: number;
17
+ largeStep?: number;
18
+ minStepsBetweenValues?: number;
19
+ disabled?: boolean;
20
+ orientation?: "horizontal" | "vertical";
21
+ name?: string;
22
+ form?: string;
23
+ locale?: UpstreamRoot["locale"];
24
+ thumbAlignment?: UpstreamRoot["thumbAlignment"];
25
+ thumbCollisionBehavior?: UpstreamRoot["thumbCollisionBehavior"];
26
+ format?: Intl.NumberFormatOptions;
27
+ className?: UpstreamRoot["className"];
28
+ style?: UpstreamRoot["style"];
29
+ render?: UpstreamRoot["render"];
30
+ };
31
+ /**
32
+ * Slider.Root — value selector along a continuous or stepped track.
33
+ *
34
+ * @doc https://base-ui.com/react/components/slider
35
+ * @llm https://base-ui.com/react/components/slider.md
36
+ */
37
+ export declare function Root({ value, defaultValue, onValueChange, onValueCommitted, min, max, step, largeStep, minStepsBetweenValues, disabled, orientation, name, form, locale, thumbAlignment, thumbCollisionBehavior, format, className, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
38
+ export declare namespace Root {
39
+ var displayName: string;
40
+ }
41
+ type LabelProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
42
+ className?: UpstreamLabel["className"];
43
+ style?: UpstreamLabel["style"];
44
+ render?: UpstreamLabel["render"];
45
+ };
46
+ /** Slider.Label — accessible label for the slider. */
47
+ export declare function Label({ className, ...props }: LabelProps): import("react/jsx-runtime").JSX.Element;
48
+ export declare namespace Label {
49
+ var displayName: string;
50
+ }
51
+ type ValueProps = Omit<React.HTMLAttributes<HTMLOutputElement>, "children" | "className" | "style"> & {
52
+ children?: UpstreamValue["children"];
53
+ className?: UpstreamValue["className"];
54
+ style?: UpstreamValue["style"];
55
+ render?: UpstreamValue["render"];
56
+ };
57
+ /** Slider.Value — live numeric readout. */
58
+ export declare function Value({ className, children, ...props }: ValueProps): import("react/jsx-runtime").JSX.Element;
59
+ export declare namespace Value {
60
+ var displayName: string;
61
+ }
62
+ type ControlProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
63
+ className?: UpstreamControl["className"];
64
+ style?: UpstreamControl["style"];
65
+ render?: UpstreamControl["render"];
66
+ };
67
+ /** Slider.Control — interactive container for track + thumb. */
68
+ export declare function Control({ className, ...props }: ControlProps): import("react/jsx-runtime").JSX.Element;
69
+ export declare namespace Control {
70
+ var displayName: string;
71
+ }
72
+ type TrackProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
73
+ className?: UpstreamTrack["className"];
74
+ style?: UpstreamTrack["style"];
75
+ render?: UpstreamTrack["render"];
76
+ };
77
+ /** Slider.Track — the static rail. */
78
+ export declare function Track({ className, ...props }: TrackProps): import("react/jsx-runtime").JSX.Element;
79
+ export declare namespace Track {
80
+ var displayName: string;
81
+ }
82
+ type IndicatorProps = Omit<React.HTMLAttributes<HTMLDivElement>, "className" | "style"> & {
83
+ className?: UpstreamIndicator["className"];
84
+ style?: UpstreamIndicator["style"];
85
+ render?: UpstreamIndicator["render"];
86
+ };
87
+ /** Slider.Indicator — filled portion of the track. */
88
+ export declare function Indicator({ className, ...props }: IndicatorProps): import("react/jsx-runtime").JSX.Element;
89
+ export declare namespace Indicator {
90
+ var displayName: string;
91
+ }
92
+ type ThumbProps = Omit<React.HTMLAttributes<HTMLDivElement>, "onBlur" | "onFocus" | "className" | "style"> & {
93
+ index?: number;
94
+ tabIndex?: number;
95
+ /** @default false */
96
+ disabled?: boolean;
97
+ inputRef?: React.Ref<HTMLInputElement>;
98
+ getAriaLabel?: UpstreamThumb["getAriaLabel"];
99
+ getAriaValueText?: UpstreamThumb["getAriaValueText"];
100
+ onBlur?: UpstreamThumb["onBlur"];
101
+ onFocus?: UpstreamThumb["onFocus"];
102
+ className?: UpstreamThumb["className"];
103
+ style?: UpstreamThumb["style"];
104
+ render?: UpstreamThumb["render"];
105
+ };
106
+ /** Slider.Thumb — draggable handle. */
107
+ export declare function Thumb({ index, className, ...props }: ThumbProps): import("react/jsx-runtime").JSX.Element;
108
+ export declare namespace Thumb {
109
+ var displayName: string;
110
+ }
111
+ export {};
@@ -0,0 +1,2 @@
1
+ import { ComponentMeta } from '../../types/meta';
2
+ export declare const sliderMeta: ComponentMeta;
@@ -0,0 +1,2 @@
1
+ export { Spinner } from './spinner';
2
+ export { spinnerMeta } from './spinner.meta';
@@ -0,0 +1,19 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ declare const spinner: (props?: ({
3
+ size?: "sm" | "md" | "lg" | null | undefined;
4
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
5
+ type Props = Omit<React.HTMLAttributes<HTMLSpanElement>, "role"> & VariantProps<typeof spinner> & {
6
+ /** Accessible label announced by assistive tech. */
7
+ label?: string;
8
+ };
9
+ /**
10
+ * Loading indicator built from the animated ImFusion glyph — two filled bands
11
+ * and an empty diagonal channel that continuously rotates, breathes, and sways.
12
+ *
13
+ * The motion is a live per-frame morph of the two paths (the channel geometry is
14
+ * recomputed each frame in {@link frameGeometry}), driven by a single
15
+ * `requestAnimationFrame` loop that rewrites the two `d` attributes directly —
16
+ * no React re-render per frame. The loop pauses while the tab is hidden.
17
+ */
18
+ export declare function Spinner({ size, label, className, ...props }: Props): import("react/jsx-runtime").JSX.Element;
19
+ export {};
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Spinner geometry — the animated ImFusion glyph.
3
+ *
4
+ * The mark is two filled bands separated by an empty diagonal channel (see
5
+ * `logo/imfusion/imfusion.tsx`). This module reproduces that structure as a
6
+ * *morphing* shape: the channel rotates, breathes (its width pulses, never
7
+ * closing), and its interior nodes sway — so the loader reads as the mark
8
+ * alive, not a generic ring.
9
+ *
10
+ * The motion is a live per-frame morph: a single `requestAnimationFrame` loop
11
+ * in the component (spinner.tsx) calls {@link frameGeometry} each frame and
12
+ * writes the two returned path `d` strings straight onto the SVG paths — no
13
+ * React re-render per frame, no SMIL. (SMIL/CSS `d` morphing was tried and
14
+ * dropped: neither is GPU-composited, and CSS `d` isn't supported in Safari.)
15
+ *
16
+ * Everything is tunable from the {@link KNOBS} block. The values there were
17
+ * dialled in against rendered evidence at 16/20/24/96px; the shape is a
18
+ * balance — extreme values pinch the channel shut or spike the bands, so nudge
19
+ * rather than leap. `frameGeometry(t)` is pure and deterministic: feed it a
20
+ * time in ms and it returns the two band path `d`s for that instant.
21
+ */
22
+ /** Design-space edge length; the SVG viewBox is `0 0 D D`. */
23
+ export declare const D = 100;
24
+ /**
25
+ * The two band path `d` strings at time `tms` (ms) — the shape at any instant
26
+ * of the loop, as `[topBand, bottomBand]`. Pure and deterministic; the rAF loop
27
+ * in the component calls this each frame and writes the results to the paths.
28
+ */
29
+ export declare function frameGeometry(tms: number): [string, string];
30
+ /**
31
+ * The period over which the whole composition returns to its start pose — the
32
+ * least-common-multiple-ish window of rotation, breathe, and sway. Rotation is
33
+ * `ROT_S`; breathe/sway are shorter and phase-relative. We loop over the
34
+ * rotation period and let breathe/sway ride within it; `SWAY_RATIO` is chosen
35
+ * so the combined motion reads continuous rather than obviously repeating.
36
+ */
37
+ export declare const LOOP_MS: number;
@@ -0,0 +1,2 @@
1
+ import { ComponentMeta } from '../../types/meta';
2
+ export declare const spinnerMeta: ComponentMeta;
@@ -0,0 +1,2 @@
1
+ export { Stack } from './stack';
2
+ export { stackMeta } from './stack.meta';
@@ -0,0 +1,18 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ declare const stack: (props?: ({
3
+ gap?: "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | null | undefined;
4
+ align?: "center" | "end" | "start" | "stretch" | null | undefined;
5
+ justify?: "center" | "end" | "start" | "between" | "around" | "evenly" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ type Props = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof stack>;
8
+ /**
9
+ * Stack — vertical layout primitive.
10
+ *
11
+ * Copied and adapted from Mantine's Stack; no upstream runtime
12
+ * dependency. Pure column flex container with token-driven gap and constrained
13
+ * align/justify unions.
14
+ *
15
+ * @see https://mantine.dev/core/stack/
16
+ */
17
+ export declare function Stack({ gap, align, justify, className, ...props }: Props): import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -0,0 +1,2 @@
1
+ import { ComponentMeta } from '../../types/meta';
2
+ export declare const stackMeta: ComponentMeta;
@@ -0,0 +1,2 @@
1
+ export * as Switch from './switch';
2
+ export { switchMeta } from './switch.meta';
@@ -0,0 +1,45 @@
1
+ import { Switch as SwitchPrimitive } from '@base-ui/react/switch';
2
+ type UpstreamRoot = React.ComponentProps<typeof SwitchPrimitive.Root>;
3
+ type UpstreamThumb = React.ComponentProps<typeof SwitchPrimitive.Thumb>;
4
+ type RootProps = Omit<React.HTMLAttributes<HTMLSpanElement>, "className" | "style"> & {
5
+ checked?: boolean;
6
+ defaultChecked?: boolean;
7
+ onCheckedChange?: UpstreamRoot["onCheckedChange"];
8
+ /** @default false */
9
+ disabled?: boolean;
10
+ /** @default false */
11
+ readOnly?: boolean;
12
+ /** @default false */
13
+ required?: boolean;
14
+ name?: string;
15
+ value?: string;
16
+ uncheckedValue?: string;
17
+ form?: string;
18
+ inputRef?: React.Ref<HTMLInputElement>;
19
+ /** @default false */
20
+ nativeButton?: boolean;
21
+ className?: UpstreamRoot["className"];
22
+ style?: UpstreamRoot["style"];
23
+ render?: UpstreamRoot["render"];
24
+ };
25
+ /**
26
+ * Switch.Root — toggleable on/off control.
27
+ *
28
+ * @doc https://base-ui.com/react/components/switch
29
+ * @llm https://base-ui.com/react/components/switch.md
30
+ */
31
+ export declare function Root({ className, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
32
+ export declare namespace Root {
33
+ var displayName: string;
34
+ }
35
+ type ThumbProps = Omit<React.HTMLAttributes<HTMLSpanElement>, "className" | "style"> & {
36
+ className?: UpstreamThumb["className"];
37
+ style?: UpstreamThumb["style"];
38
+ render?: UpstreamThumb["render"];
39
+ };
40
+ /** Switch.Thumb — the movable indicator inside the track. */
41
+ export declare function Thumb({ className, ...props }: ThumbProps): import("react/jsx-runtime").JSX.Element;
42
+ export declare namespace Thumb {
43
+ var displayName: string;
44
+ }
45
+ export {};
@@ -0,0 +1,2 @@
1
+ import { ComponentMeta } from '../../types/meta';
2
+ export declare const switchMeta: ComponentMeta;
@@ -0,0 +1,2 @@
1
+ export * as Table from './table';
2
+ export { tableMeta } from './table.meta';
@@ -0,0 +1,66 @@
1
+ type RootProps = React.TableHTMLAttributes<HTMLTableElement>;
2
+ type HeaderProps = React.HTMLAttributes<HTMLTableSectionElement>;
3
+ type BodyProps = React.HTMLAttributes<HTMLTableSectionElement>;
4
+ type RowProps = React.HTMLAttributes<HTMLTableRowElement>;
5
+ type HeaderCellProps = React.ThHTMLAttributes<HTMLTableCellElement>;
6
+ type CellProps = React.TdHTMLAttributes<HTMLTableCellElement>;
7
+ type HeaderButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement>;
8
+ /** Table.Root — the `<table>` element. */
9
+ export declare function Root({ className, ...props }: RootProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare namespace Root {
11
+ var displayName: string;
12
+ }
13
+ /** Table.Header — the `<thead>` section. */
14
+ export declare function Header({ className, ...props }: HeaderProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare namespace Header {
16
+ var displayName: string;
17
+ }
18
+ /** Table.Body — the `<tbody>` section. */
19
+ export declare function Body({ className, ...props }: BodyProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare namespace Body {
21
+ var displayName: string;
22
+ }
23
+ /** Table.Row — a `<tr>` in header or body. */
24
+ export declare function Row({ className, ...props }: RowProps): import("react/jsx-runtime").JSX.Element;
25
+ export declare namespace Row {
26
+ var displayName: string;
27
+ }
28
+ /** Table.HeaderCell — a `<th>` header cell. */
29
+ export declare function HeaderCell({ className, ...props }: HeaderCellProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare namespace HeaderCell {
31
+ var displayName: string;
32
+ }
33
+ /** Table.Cell — a `<td>` data cell. */
34
+ export declare function Cell({ className, ...props }: CellProps): import("react/jsx-runtime").JSX.Element;
35
+ export declare namespace Cell {
36
+ var displayName: string;
37
+ }
38
+ /**
39
+ * Table.HeaderButton — inline action button for header cells. Generic by
40
+ * design: sorting toggles, filter toggles, column menus all render through it
41
+ * rather than each inventing a button. Icon/indicator goes in `children`.
42
+ */
43
+ export declare function HeaderButton({ className, type, ...props }: HeaderButtonProps): import("react/jsx-runtime").JSX.Element;
44
+ export declare namespace HeaderButton {
45
+ var displayName: string;
46
+ }
47
+ /** The sort state of a column: `false` = sortable but unsorted, else the active direction. */
48
+ type SortDirection = false | "asc" | "desc";
49
+ type SortableHeaderCellProps = Omit<HeaderCellProps, "aria-sort"> & {
50
+ /** Current sort state. `false` renders the affordance in its unsorted rest state. */
51
+ sortDirection: SortDirection;
52
+ /** Toggle handler. Omit to render a plain, non-sortable header cell instead. */
53
+ onToggle?: React.MouseEventHandler<HTMLButtonElement>;
54
+ };
55
+ /**
56
+ * Table.SortableHeaderCell — a partial: a header cell whose label is a sort
57
+ * toggle, pre-composing HeaderCell + HeaderButton so the `aria-sort` state and
58
+ * direction indicator don't get re-derived per consumer app. Headless-upstream-
59
+ * agnostic: feed it `sortDirection` and `onToggle` (e.g. from a TanStack
60
+ * column). Omit `onToggle` and it renders a plain non-sortable header cell.
61
+ */
62
+ export declare function SortableHeaderCell({ sortDirection, onToggle, children, ...props }: SortableHeaderCellProps): import("react/jsx-runtime").JSX.Element;
63
+ export declare namespace SortableHeaderCell {
64
+ var displayName: string;
65
+ }
66
+ export {};
@@ -0,0 +1,2 @@
1
+ import { ComponentMeta } from '../../types/meta';
2
+ export declare const tableMeta: ComponentMeta;
@@ -0,0 +1,2 @@
1
+ export * as Tabs from './tabs';
2
+ export { tabsMeta } from './tabs.meta';