@surflane/ui 0.4.0 → 0.6.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 (296) hide show
  1. package/README.md +2 -2
  2. package/dist/{disclosure.d.ts → accordion.d.ts} +1 -17
  3. package/dist/{disclosure.js → accordion.js} +3 -17
  4. package/dist/alert-dialog.d.ts +31 -0
  5. package/dist/alert-dialog.js +22 -0
  6. package/dist/app-shell.d.ts +44 -3
  7. package/dist/app-shell.js +86 -13
  8. package/dist/{input-extensions.d.ts → autocomplete.d.ts} +4 -42
  9. package/dist/{input-extensions.js → autocomplete.js} +7 -26
  10. package/dist/avatar.js +3 -5
  11. package/dist/badge.d.ts +20 -0
  12. package/dist/badge.js +16 -0
  13. package/dist/bottom-navigation.d.ts +66 -0
  14. package/dist/bottom-navigation.js +36 -0
  15. package/dist/{navigation.d.ts → breadcrumbs.d.ts} +2 -6
  16. package/dist/breadcrumbs.js +31 -0
  17. package/dist/button.d.ts +11 -0
  18. package/dist/button.js +27 -4
  19. package/dist/{content.d.ts → card.d.ts} +6 -24
  20. package/dist/card.js +26 -0
  21. package/dist/chart.d.ts +35 -0
  22. package/dist/chart.js +123 -50
  23. package/dist/checkbox-group.d.ts +2 -0
  24. package/dist/checkbox-group.js +16 -0
  25. package/dist/checkbox.d.ts +9 -0
  26. package/dist/checkbox.js +29 -0
  27. package/dist/choice-label.d.ts +25 -0
  28. package/dist/choice-label.js +14 -0
  29. package/dist/choice.d.ts +7 -0
  30. package/dist/choice.js +3 -0
  31. package/dist/code.d.ts +21 -0
  32. package/dist/{content.js → code.js} +5 -30
  33. package/dist/collapsible.d.ts +18 -0
  34. package/dist/collapsible.js +21 -0
  35. package/dist/{advanced-forms.d.ts → combobox.d.ts} +5 -25
  36. package/dist/{advanced-forms.js → combobox.js} +13 -49
  37. package/dist/{context-overlays.d.ts → context-menu.d.ts} +6 -28
  38. package/dist/{context-overlays.js → context-menu.js} +5 -25
  39. package/dist/css/accordion.css +11 -0
  40. package/dist/css/alert-dialog.css +11 -0
  41. package/{src → dist/css}/all.css +1 -1
  42. package/dist/css/app-shell.css +12 -0
  43. package/dist/css/autocomplete.css +15 -0
  44. package/dist/css/avatar.css +10 -0
  45. package/dist/css/badge.css +10 -0
  46. package/dist/css/bottom-navigation.css +8 -0
  47. package/dist/css/breadcrumbs.css +12 -0
  48. package/dist/css/button.css +8 -0
  49. package/dist/css/card.css +11 -0
  50. package/dist/css/chart.css +13 -0
  51. package/dist/css/checkbox-group.css +9 -0
  52. package/dist/css/checkbox.css +9 -0
  53. package/dist/css/choice-label.css +9 -0
  54. package/dist/css/code.css +13 -0
  55. package/dist/css/collapsible.css +11 -0
  56. package/dist/css/combobox.css +14 -0
  57. package/dist/css/context-menu.css +15 -0
  58. package/dist/css/date-picker.css +12 -0
  59. package/dist/css/dialog.css +10 -0
  60. package/dist/css/drawer.css +11 -0
  61. package/dist/css/empty-state.css +9 -0
  62. package/dist/css/field.css +10 -0
  63. package/dist/css/fieldset.css +8 -0
  64. package/dist/css/file-upload.css +17 -0
  65. package/dist/css/filter-bar.css +8 -0
  66. package/dist/css/form.css +8 -0
  67. package/dist/css/icon.css +8 -0
  68. package/dist/css/inline-message.css +10 -0
  69. package/dist/css/input.css +9 -0
  70. package/dist/css/layout.css +9 -0
  71. package/dist/css/link.css +9 -0
  72. package/dist/css/list.css +9 -0
  73. package/dist/css/markdown.css +18 -0
  74. package/dist/css/menu.css +14 -0
  75. package/dist/css/menubar.css +9 -0
  76. package/dist/css/meter.css +9 -0
  77. package/dist/css/native-select.css +13 -0
  78. package/dist/css/navigation-menu.css +11 -0
  79. package/dist/css/number-field.css +11 -0
  80. package/dist/css/otp-field.css +10 -0
  81. package/dist/css/page-header.css +11 -0
  82. package/dist/css/pagination.css +11 -0
  83. package/dist/css/popover.css +9 -0
  84. package/dist/css/preview-card.css +11 -0
  85. package/dist/css/progress.css +9 -0
  86. package/dist/css/radio-group.css +9 -0
  87. package/dist/css/rules/accordion.css +21 -0
  88. package/dist/css/rules/alert-dialog.css +23 -0
  89. package/dist/css/rules/app-shell.css +220 -0
  90. package/dist/css/rules/autocomplete.css +3 -0
  91. package/dist/css/rules/avatar.css +17 -0
  92. package/dist/css/rules/badge.css +17 -0
  93. package/dist/css/rules/bar.css +38 -0
  94. package/dist/css/rules/base.css +46 -0
  95. package/dist/css/rules/bottom-navigation.css +142 -0
  96. package/dist/css/rules/breadcrumbs.css +9 -0
  97. package/dist/css/rules/button.css +131 -0
  98. package/dist/css/rules/card.css +10 -0
  99. package/dist/css/rules/chart.css +256 -0
  100. package/dist/css/rules/checkbox-group.css +3 -0
  101. package/dist/css/rules/checkbox.css +25 -0
  102. package/dist/css/rules/choice-label.css +52 -0
  103. package/dist/css/rules/choice.css +104 -0
  104. package/dist/css/rules/code.css +9 -0
  105. package/dist/css/rules/collapsible.css +12 -0
  106. package/dist/css/rules/combobox.css +177 -0
  107. package/dist/css/rules/context-menu.css +9 -0
  108. package/dist/css/rules/date-picker.css +301 -0
  109. package/dist/css/rules/dialog.css +160 -0
  110. package/dist/css/rules/disclosure.css +107 -0
  111. package/dist/css/rules/drawer.css +18 -0
  112. package/dist/css/rules/empty-state.css +9 -0
  113. package/dist/css/rules/field-control.css +70 -0
  114. package/dist/css/rules/field.css +56 -0
  115. package/dist/css/rules/fieldset.css +23 -0
  116. package/dist/css/rules/file-upload.css +156 -0
  117. package/dist/css/rules/filter-bar.css +56 -0
  118. package/dist/css/rules/form.css +15 -0
  119. package/dist/css/rules/gauge.css +61 -0
  120. package/dist/css/rules/icon.css +27 -0
  121. package/dist/css/rules/inline-message.css +10 -0
  122. package/dist/css/rules/input-group.css +69 -0
  123. package/dist/css/rules/input.css +33 -0
  124. package/dist/css/rules/item.css +14 -0
  125. package/dist/css/rules/layout.css +3 -0
  126. package/dist/css/rules/link.css +9 -0
  127. package/dist/css/rules/list.css +10 -0
  128. package/dist/css/rules/markdown.css +63 -0
  129. package/dist/css/rules/menu.css +97 -0
  130. package/dist/css/rules/menubar.css +18 -0
  131. package/dist/css/rules/meter.css +3 -0
  132. package/dist/css/rules/native-select.css +3 -0
  133. package/dist/css/rules/navigation-menu.css +159 -0
  134. package/dist/css/rules/number-field.css +55 -0
  135. package/dist/css/rules/otp-field.css +68 -0
  136. package/dist/css/rules/page-header.css +3 -0
  137. package/dist/css/rules/pagination.css +3 -0
  138. package/dist/css/rules/panel.css +221 -0
  139. package/dist/css/rules/popover.css +41 -0
  140. package/dist/css/rules/popup.css +27 -0
  141. package/dist/css/rules/preview-card.css +60 -0
  142. package/dist/css/rules/progress.css +14 -0
  143. package/dist/css/rules/radio-group.css +26 -0
  144. package/dist/css/rules/scroll-area.css +101 -0
  145. package/dist/css/rules/select.css +88 -0
  146. package/dist/css/rules/separator.css +3 -0
  147. package/dist/css/rules/sheet.css +3 -0
  148. package/dist/css/rules/sizing.css +140 -0
  149. package/dist/css/rules/skeleton.css +41 -0
  150. package/dist/css/rules/slider.css +123 -0
  151. package/dist/css/rules/sparkline.css +52 -0
  152. package/dist/css/rules/spinner.css +38 -0
  153. package/dist/css/rules/stat.css +59 -0
  154. package/dist/css/rules/switch.css +50 -0
  155. package/dist/css/rules/syntax-highlighter.css +82 -0
  156. package/dist/css/rules/table.css +28 -0
  157. package/dist/css/rules/tabs.css +126 -0
  158. package/dist/css/rules/textarea.css +21 -0
  159. package/dist/css/rules/toast.css +247 -0
  160. package/dist/css/rules/toggle-group.css +3 -0
  161. package/dist/css/rules/toggle.css +27 -0
  162. package/dist/css/rules/toolbar.css +62 -0
  163. package/dist/css/rules/tooltip.css +38 -0
  164. package/dist/css/rules/tree.css +98 -0
  165. package/dist/css/rules/typography.css +3 -0
  166. package/dist/css/scroll-area.css +8 -0
  167. package/dist/css/select.css +12 -0
  168. package/dist/css/separator.css +9 -0
  169. package/dist/css/sheet.css +11 -0
  170. package/dist/css/sizing.css +7 -0
  171. package/dist/css/skeleton.css +8 -0
  172. package/dist/css/slider.css +8 -0
  173. package/dist/css/sparkline.css +8 -0
  174. package/dist/css/spinner.css +8 -0
  175. package/dist/css/stat.css +9 -0
  176. package/dist/css/styles.css +100 -0
  177. package/dist/css/switch.css +9 -0
  178. package/dist/css/syntax-highlighter.css +9 -0
  179. package/dist/css/table.css +12 -0
  180. package/dist/css/tabs.css +8 -0
  181. package/dist/css/textarea.css +10 -0
  182. package/dist/css/toast.css +11 -0
  183. package/dist/css/toggle-group.css +9 -0
  184. package/dist/css/toggle.css +10 -0
  185. package/dist/css/toolbar.css +12 -0
  186. package/dist/css/tooltip.css +9 -0
  187. package/dist/css/tree.css +10 -0
  188. package/dist/css/typography.css +9 -0
  189. package/dist/date-picker.js +3 -2
  190. package/dist/dialog.d.ts +6 -24
  191. package/dist/dialog.js +7 -20
  192. package/dist/{panels.d.ts → drawer.d.ts} +3 -34
  193. package/dist/drawer.js +47 -0
  194. package/dist/empty-state.d.ts +29 -0
  195. package/dist/empty-state.js +19 -0
  196. package/dist/field.d.ts +42 -0
  197. package/dist/field.js +21 -0
  198. package/dist/fieldset.d.ts +14 -0
  199. package/dist/fieldset.js +10 -0
  200. package/dist/file-upload.d.ts +3 -1
  201. package/dist/file-upload.js +7 -5
  202. package/dist/filter-bar.js +1 -1
  203. package/dist/form.d.ts +2 -0
  204. package/dist/form.js +7 -0
  205. package/dist/format.d.ts +25 -0
  206. package/dist/format.js +42 -0
  207. package/dist/icon.d.ts +11 -0
  208. package/dist/icon.js +19 -3
  209. package/dist/index.d.ts +61 -30
  210. package/dist/index.js +75 -33
  211. package/dist/{messages.d.ts → inline-message.d.ts} +0 -28
  212. package/dist/{messages.js → inline-message.js} +3 -18
  213. package/dist/input.js +2 -2
  214. package/dist/{foundations.d.ts → layout.d.ts} +5 -23
  215. package/dist/{foundations.js → layout.js} +4 -19
  216. package/dist/link.d.ts +6 -0
  217. package/dist/link.js +17 -0
  218. package/dist/list.d.ts +33 -0
  219. package/dist/list.js +21 -0
  220. package/dist/markdown.js +4 -5
  221. package/dist/menu.d.ts +7 -5
  222. package/dist/menu.js +12 -8
  223. package/dist/menubar.d.ts +4 -0
  224. package/dist/menubar.js +4 -0
  225. package/dist/meter.d.ts +29 -0
  226. package/dist/meter.js +13 -0
  227. package/dist/native-select.d.ts +8 -0
  228. package/dist/native-select.js +54 -0
  229. package/dist/navigation-menu.js +8 -5
  230. package/dist/number-field.d.ts +23 -0
  231. package/dist/number-field.js +33 -0
  232. package/dist/page-header.d.ts +12 -0
  233. package/dist/page-header.js +9 -0
  234. package/dist/pagination.js +3 -4
  235. package/dist/panel.d.ts +13 -0
  236. package/dist/panel.js +13 -0
  237. package/dist/parts.d.ts +19 -1
  238. package/dist/parts.js +32 -6
  239. package/dist/popover.d.ts +23 -6
  240. package/dist/popover.js +17 -7
  241. package/dist/preview-card.d.ts +29 -0
  242. package/dist/preview-card.js +27 -0
  243. package/dist/progress.d.ts +29 -0
  244. package/dist/progress.js +13 -0
  245. package/dist/radio-group.d.ts +16 -0
  246. package/dist/radio-group.js +31 -0
  247. package/dist/scroll-area.js +3 -4
  248. package/dist/select.d.ts +8 -8
  249. package/dist/select.js +19 -54
  250. package/dist/separator.d.ts +4 -0
  251. package/dist/separator.js +8 -0
  252. package/dist/sheet.d.ts +29 -0
  253. package/dist/sheet.js +39 -0
  254. package/dist/skeleton.d.ts +8 -0
  255. package/dist/skeleton.js +8 -0
  256. package/dist/slider.d.ts +40 -0
  257. package/dist/slider.js +27 -0
  258. package/dist/sparkline.d.ts +41 -0
  259. package/dist/sparkline.js +50 -0
  260. package/dist/spinner.d.ts +13 -0
  261. package/dist/spinner.js +10 -0
  262. package/dist/stat.d.ts +59 -0
  263. package/dist/stat.js +26 -0
  264. package/dist/status.d.ts +2 -20
  265. package/dist/status.js +11 -14
  266. package/dist/switch.d.ts +13 -0
  267. package/dist/switch.js +25 -0
  268. package/dist/syntax-highlighter.js +2 -1
  269. package/dist/{data.d.ts → table.d.ts} +8 -32
  270. package/dist/{data.js → table.js} +15 -30
  271. package/dist/textarea.d.ts +7 -0
  272. package/dist/textarea.js +12 -0
  273. package/dist/toast.d.ts +57 -1
  274. package/dist/toast.js +80 -8
  275. package/dist/toggle-group.d.ts +5 -0
  276. package/dist/toggle-group.js +7 -0
  277. package/dist/toggle.d.ts +7 -0
  278. package/dist/toggle.js +9 -0
  279. package/dist/{commands.d.ts → toolbar.d.ts} +0 -13
  280. package/dist/toolbar.js +14 -0
  281. package/dist/tooltip.d.ts +10 -3
  282. package/dist/tooltip.js +4 -4
  283. package/dist/tree.js +4 -2
  284. package/dist/typography.d.ts +12 -0
  285. package/dist/typography.js +14 -0
  286. package/package.json +324 -25
  287. package/dist/chevron.d.ts +0 -3
  288. package/dist/chevron.js +0 -6
  289. package/dist/commands.js +0 -27
  290. package/dist/feedback.d.ts +0 -76
  291. package/dist/feedback.js +0 -35
  292. package/dist/forms.d.ts +0 -91
  293. package/dist/forms.js +0 -109
  294. package/dist/navigation.js +0 -41
  295. package/dist/panels.js +0 -100
  296. package/src/styles.css +0 -3780
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { CheckboxGroup as BaseCheckboxGroup } from '@base-ui/react/checkbox-group';
5
+ import { skin } from './parts.js';
6
+ import { useRootRef, useResetValue } from './form-state.js';
7
+ import { ChoiceResetPaint } from './choice.js';
8
+ export const CheckboxGroup = /* @__PURE__ */ React.forwardRef(function CheckboxGroup({ value, defaultValue = [], onValueChange, className, ...props }, ref) {
9
+ const [element, attach] = useRootRef(ref);
10
+ const [selected, setSelected, revision] = useResetValue(value, defaultValue, element);
11
+ return (_jsx(ChoiceResetPaint.Provider, { value: revision, children: _jsx(BaseCheckboxGroup, { ...props, ref: attach, value: selected, className: skin('pui-choice-group', className), onValueChange: (next, event) => {
12
+ onValueChange?.(next, event);
13
+ if (value === undefined && !event.isCanceled)
14
+ setSelected(next);
15
+ } }) }));
16
+ });
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import { type ChoiceSize } from './choice.js';
3
+ declare const CheckboxRoot: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/checkbox").CheckboxRootProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & ChoiceSize & React.RefAttributes<HTMLElement>>;
4
+ declare const CheckboxIndicator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/checkbox").CheckboxIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
5
+ export declare const Checkbox: {
6
+ Root: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/checkbox").CheckboxRootProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & ChoiceSize & React.RefAttributes<HTMLElement>>;
7
+ Indicator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/checkbox").CheckboxIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
8
+ };
9
+ export { CheckboxIndicator, CheckboxRoot };
@@ -0,0 +1,29 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { useComponentSize } from './sizing.js';
5
+ import { Checkbox as BaseCheckbox } from '@base-ui/react/checkbox';
6
+ import { skin } from './parts.js';
7
+ import { useRootRef, useResetValue } from './form-state.js';
8
+ import { ChoiceResetPaint } from './choice.js';
9
+ const CheckboxRoot = /* @__PURE__ */ React.forwardRef(function CheckboxRoot({ size, checked, defaultChecked = false, onCheckedChange, className, form, ...props }, ref) {
10
+ React.useContext(ChoiceResetPaint);
11
+ const scheme = useComponentSize(size);
12
+ const [element, attach] = useRootRef(ref);
13
+ const [selected, setSelected] = useResetValue(checked, defaultChecked, element, form);
14
+ return (_jsx(BaseCheckbox.Root, { ...props, "data-ui-size": size ? scheme : undefined, form: form, ref: attach, checked: selected, className: skin('pui-checkbox', className), onCheckedChange: (next, event) => {
15
+ onCheckedChange?.(next, event);
16
+ if (checked === undefined && !event.isCanceled)
17
+ setSelected(next);
18
+ } }));
19
+ });
20
+ const CheckboxIndicator = /* @__PURE__ */ React.forwardRef(function CheckboxIndicator({ className, children, ...props }, ref) {
21
+ return (_jsx(BaseCheckbox.Indicator, { ...props, ref: ref, className: skin('pui-checkbox-indicator', className), children: children ?? (_jsxs("svg", { width: '14', height: '14', viewBox: '0 0 20 20', fill: 'none', stroke: 'currentColor', strokeWidth: '2', "aria-hidden": 'true', children: [_jsx("path", { className: 'pui-checkbox-check', d: 'm4 10 4 4 8-8' }), _jsx("path", { className: 'pui-checkbox-mixed', d: 'M4 10h12' })] })) }));
22
+ });
23
+ export const Checkbox = {
24
+ ...BaseCheckbox,
25
+ Root: CheckboxRoot,
26
+ Indicator: CheckboxIndicator,
27
+ };
28
+ // Flat names for React Server Components, which cannot dot into client exports.
29
+ export { CheckboxIndicator, CheckboxRoot };
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ export type ChoiceLabelProps = Omit<React.ComponentPropsWithoutRef<'label'>, 'children'> & {
3
+ /** The Checkbox, Radio or Switch the label names. */
4
+ control: React.ReactElement<{
5
+ 'aria-labelledby'?: string;
6
+ 'aria-describedby'?: string;
7
+ }>;
8
+ /** The label text; it alone names the control. */
9
+ children: React.ReactNode;
10
+ /** A longer explanation, read as the control's description. */
11
+ description?: React.ReactNode;
12
+ };
13
+ /** A checkbox, radio or switch with its label, and an optional description below it.
14
+ * The whole label toggles the control; the control sits on the first line. */
15
+ export declare const ChoiceLabel: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, "ref">, "children"> & {
16
+ /** The Checkbox, Radio or Switch the label names. */
17
+ control: React.ReactElement<{
18
+ "aria-labelledby"?: string;
19
+ "aria-describedby"?: string;
20
+ }>;
21
+ /** The label text; it alone names the control. */
22
+ children: React.ReactNode;
23
+ /** A longer explanation, read as the control's description. */
24
+ description?: React.ReactNode;
25
+ } & React.RefAttributes<HTMLLabelElement>>;
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { cx } from './parts.js';
5
+ /** A checkbox, radio or switch with its label, and an optional description below it.
6
+ * The whole label toggles the control; the control sits on the first line. */
7
+ export const ChoiceLabel = /* @__PURE__ */ React.forwardRef(function ChoiceLabel({ control, children, description, className, ...props }, ref) {
8
+ const id = React.useId();
9
+ return (_jsxs("label", { ...props, ref: ref, className: cx('pui-choice-label', className), children: [_jsx("span", { className: 'pui-choice-control', children: React.cloneElement(control, {
10
+ 'aria-labelledby': control.props['aria-labelledby'] ?? `${id}-label`,
11
+ 'aria-describedby': control.props['aria-describedby'] ??
12
+ (description ? `${id}-description` : undefined),
13
+ }) }), _jsxs("span", { className: 'pui-choice-text', children: [_jsx("span", { id: `${id}-label`, children: children }), description && (_jsx("span", { className: 'pui-choice-description', id: `${id}-description`, children: description }))] })] }));
14
+ });
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { type ComponentSizeAlias } from './sizing.js';
3
+ export declare const ChoiceResetPaint: React.Context<number>;
4
+ /** Choice controls follow the surrounding size; `size` sets one control's scale. */
5
+ export type ChoiceSize = {
6
+ size?: ComponentSizeAlias;
7
+ };
package/dist/choice.js ADDED
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ import * as React from 'react';
3
+ export const ChoiceResetPaint = /* @__PURE__ */ React.createContext(0);
package/dist/code.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ export type CodeBlockProps = Omit<React.ComponentPropsWithoutRef<'div'>, 'children' | 'onCopy'> & {
3
+ code: string;
4
+ label?: string;
5
+ language?: string;
6
+ wrap?: boolean;
7
+ copyLabel?: string;
8
+ copiedLabel?: string;
9
+ copyErrorLabel?: string;
10
+ onCopy?: (code: string) => void | Promise<void>;
11
+ };
12
+ export declare const CodeBlock: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "children" | "onCopy"> & {
13
+ code: string;
14
+ label?: string;
15
+ language?: string;
16
+ wrap?: boolean;
17
+ copyLabel?: string;
18
+ copiedLabel?: string;
19
+ copyErrorLabel?: string;
20
+ onCopy?: (code: string) => void | Promise<void>;
21
+ } & React.RefAttributes<HTMLDivElement>>;
@@ -1,34 +1,12 @@
1
1
  'use client';
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
- import { Surface } from './foundations.js';
5
- import { part } from './parts.js';
4
+ import { Icon } from './icon.js';
5
+ import { cx } from './parts.js';
6
6
  import { Button } from './button.js';
7
7
  import { SyntaxHighlighter } from './syntax-highlighter.js';
8
8
  import { ScrollArea } from './scroll-area.js';
9
- const CardRoot = /* @__PURE__ */ React.forwardRef(function CardRoot({ className, padding, ...props }, ref) {
10
- return (_jsx(Surface, { ...props, padding: padding, ref: ref, className: ['pui-card', className].filter(Boolean).join(' ') }));
11
- });
12
- const CardTitle = /* @__PURE__ */ React.forwardRef(function CardTitle({ level = 3, className, ...props }, ref) {
13
- return React.createElement(`h${level}`, {
14
- ...props,
15
- ref,
16
- className: ['pui-card-title', className].filter(Boolean).join(' '),
17
- });
18
- });
19
- export const Card = {
20
- Root: CardRoot,
21
- Header: /* @__PURE__ */ part('div', 'pui-card-header'),
22
- Title: CardTitle,
23
- Description: /* @__PURE__ */ part('p', 'pui-card-description'),
24
- Body: /* @__PURE__ */ part('div', 'pui-card-body'),
25
- Footer: /* @__PURE__ */ part('div', 'pui-card-footer'),
26
- };
27
- const copyIcons = {
28
- idle: (_jsxs(_Fragment, { children: [_jsx("rect", { x: '8', y: '8', width: '12', height: '12', rx: '2' }), _jsx("path", { d: 'M16 8V4H4v12h4' })] })),
29
- copied: _jsx("path", { d: 'm5 12.5 4.5 4.5L19 7.5' }),
30
- failed: (_jsx("path", { d: 'M12 7v6m0 4v.01M4.5 12a7.5 7.5 0 1 0 15 0 7.5 7.5 0 0 0-15 0' })),
31
- };
9
+ const copyIcons = { idle: 'copy', copied: 'check', failed: 'alert' };
32
10
  // Feedback stays inside the copy button and returns to the action after this long.
33
11
  const copyFeedbackDuration = 2000;
34
12
  export const CodeBlock = /* @__PURE__ */ React.forwardRef(function CodeBlock({ code, label = 'Code', language, wrap = false, copyLabel = 'Copy code', copiedLabel = 'Copied', copyErrorLabel = 'Copy unavailable', onCopy, className, ...props }, ref) {
@@ -96,12 +74,9 @@ export const CodeBlock = /* @__PURE__ */ React.forwardRef(function CodeBlock({ c
96
74
  }, copyFeedbackDuration);
97
75
  }
98
76
  const icon = state === 'copied' || state === 'failed' ? state : 'idle';
99
- return (_jsxs("div", { ...props, ref: ref, "data-wrap": wrap || undefined, className: ['pui-code-block', className].filter(Boolean).join(' '), children: [_jsxs("div", { className: 'pui-code-toolbar', children: [_jsxs("span", { className: 'pui-code-label', children: [label, language && _jsx("span", { className: 'pui-code-language', children: language })] }), _jsxs(Button, { ref: button, type: 'button', variant: 'outline', size: 'sm', className: 'pui-code-copy', onClick: copy, disabled: state === 'busy', "aria-busy": state === 'busy' || undefined, "data-copy-state": icon === 'idle' ? undefined : icon, "data-copy-used": used || undefined, children: [_jsx("svg", { className: 'pui-code-copy-icon', width: '14', height: '14', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.6', strokeLinecap: 'round', strokeLinejoin: 'round', "aria-hidden": 'true', children: copyIcons[icon] }, icon), _jsx("span", { "aria-live": 'polite', children: _jsx("span", { className: 'pui-code-copy-label', children: state === 'copied'
77
+ return (_jsxs("div", { ...props, ref: ref, "data-wrap": wrap || undefined, className: cx('pui-code-block', className), children: [_jsxs("div", { className: 'pui-code-toolbar', children: [_jsxs("span", { className: 'pui-code-label', children: [label, language && _jsx("span", { className: 'pui-code-language', children: language })] }), _jsxs(Button, { ref: button, type: 'button', variant: 'outline', size: 'sm', className: 'pui-code-copy', onClick: copy, disabled: state === 'busy', "aria-busy": state === 'busy' || undefined, "data-copy-state": icon === 'idle' ? undefined : icon, "data-copy-used": used || undefined, children: [_jsx(Icon, { name: copyIcons[icon], className: 'pui-code-copy-icon' }, icon), _jsx("span", { "aria-live": 'polite', children: _jsx("span", { className: 'pui-code-copy-label', children: state === 'copied'
100
78
  ? copiedLabel
101
79
  : state === 'failed'
102
80
  ? copyErrorLabel
103
81
  : copyLabel }, icon) })] })] }), _jsx(ScrollArea, { label: label, orientation: 'horizontal', children: _jsx("pre", { ref: source, className: 'pui-code-text', children: _jsx(SyntaxHighlighter, { code: code, language: language, inline: true }) }) })] }));
104
82
  });
105
- // Flat names for React Server Components, which cannot dot into client exports.
106
- export { CardRoot, CardTitle };
107
- export const { Header: CardHeader, Description: CardDescription, Body: CardBody, Footer: CardFooter, } = Card;
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ declare const CollapsibleTrigger: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/collapsible").CollapsibleTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & {
3
+ indicator?: React.ReactNode;
4
+ } & React.RefAttributes<HTMLButtonElement>>;
5
+ declare const CollapsiblePanel: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/collapsible").CollapsiblePanelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
6
+ export declare const Collapsible: {
7
+ Root: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/collapsible").CollapsibleRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
8
+ size?: import("./sizing.js").ComponentSize;
9
+ } & React.RefAttributes<HTMLDivElement>>;
10
+ Trigger: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/collapsible").CollapsibleTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & {
11
+ indicator?: React.ReactNode;
12
+ } & React.RefAttributes<HTMLButtonElement>>;
13
+ Panel: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/collapsible").CollapsiblePanelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
14
+ };
15
+ export { CollapsiblePanel, CollapsibleTrigger };
16
+ export declare const CollapsibleRoot: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/collapsible").CollapsibleRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
17
+ size?: import("./sizing.js").ComponentSize;
18
+ } & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { Collapsible as BaseCollapsible } from '@base-ui/react/collapsible';
5
+ import { Icon } from './icon.js';
6
+ import { skin, part } from './parts.js';
7
+ const CollapsibleTrigger = /* @__PURE__ */ React.forwardRef(function CollapsibleTrigger({ className, children, indicator, ...props }, ref) {
8
+ return (_jsxs(BaseCollapsible.Trigger, { ...props, ref: ref, className: skin('pui-disclosure-trigger', className), children: [_jsx("span", { className: 'pui-disclosure-label', children: children }), indicator === undefined ? (_jsx(Icon, { name: 'chevron-forward', className: 'pui-disclosure-chevron' })) : (indicator)] }));
9
+ });
10
+ const CollapsiblePanel = /* @__PURE__ */ React.forwardRef(function CollapsiblePanel({ className, children, ...props }, ref) {
11
+ return (_jsx(BaseCollapsible.Panel, { ...props, ref: ref, className: skin('pui-collapsible-panel', className), children: _jsx("div", { className: 'pui-disclosure-body', children: children }) }));
12
+ });
13
+ export const Collapsible = {
14
+ ...BaseCollapsible,
15
+ Root: /* @__PURE__ */ part(BaseCollapsible.Root, 'pui-collapsible'),
16
+ Trigger: CollapsibleTrigger,
17
+ Panel: CollapsiblePanel,
18
+ };
19
+ // Flat names for React Server Components, which cannot dot into client exports.
20
+ export { CollapsiblePanel, CollapsibleTrigger };
21
+ export const { Root: CollapsibleRoot } = Collapsible;
@@ -3,7 +3,9 @@ import { Combobox as BaseCombobox } from '@base-ui/react/combobox';
3
3
  declare function ComboboxRoot<Value, Multiple extends boolean | undefined = false, Item = Value>({ children, form, ...props }: BaseCombobox.Root.Props<Value, Multiple, Item>): React.JSX.Element;
4
4
  export declare const Combobox: {
5
5
  Root: typeof ComboboxRoot;
6
- Content: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/combobox").ComboboxPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & {
6
+ Portal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/combobox").ComboboxPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
+ Content: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/combobox").ComboboxPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & Pick<Omit<Omit<import("@base-ui/react/combobox").ComboboxPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "side" | "align" | "sideOffset" | "collisionPadding"> & {
8
+ /** @deprecated Pass side, align, sideOffset and collisionPadding directly. */
7
9
  positionerProps?: React.ComponentPropsWithoutRef<typeof BaseCombobox.Positioner>;
8
10
  } & React.RefAttributes<HTMLDivElement>>;
9
11
  Popup: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/combobox").ComboboxPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
@@ -51,7 +53,6 @@ export declare const Combobox: {
51
53
  } & React.RefAttributes<HTMLDivElement>>;
52
54
  Label: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/combobox").ComboboxLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
53
55
  Value: typeof BaseCombobox.Value;
54
- Portal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/combobox").ComboboxPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
55
56
  Backdrop: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/combobox").ComboboxBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
56
57
  Arrow: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/combobox").ComboboxArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
57
58
  Icon: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/combobox").ComboboxIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
@@ -61,21 +62,6 @@ export declare const Combobox: {
61
62
  useFilteredItems: typeof BaseCombobox.useFilteredItems;
62
63
  createItems: typeof BaseCombobox.createItems;
63
64
  };
64
- export declare const NumberField: {
65
- Root: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/number-field").NumberFieldRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
66
- Increment: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/number-field").NumberFieldIncrementProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
67
- Decrement: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/number-field").NumberFieldDecrementProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
68
- Group: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/number-field").NumberFieldGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
69
- size?: import("./sizing.js").ComponentSize;
70
- } & React.RefAttributes<HTMLDivElement>>;
71
- Input: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/number-field").NumberFieldInputProps, "ref"> & React.RefAttributes<HTMLInputElement>, "ref">, "size"> & {
72
- size?: import("./sizing.js").ComponentSize;
73
- } & React.RefAttributes<HTMLInputElement>>;
74
- ScrubArea: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/number-field").NumberFieldScrubAreaProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref">, "size"> & {
75
- size?: import("./sizing.js").ComponentSize;
76
- } & React.RefAttributes<HTMLSpanElement>>;
77
- ScrubAreaCursor: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/number-field").NumberFieldScrubAreaCursorProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
78
- };
79
65
  export { ComboboxRoot };
80
66
  export declare const ComboboxArrow: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/combobox").ComboboxArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>, ComboboxBackdrop: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/combobox").ComboboxBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>, ComboboxChip: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/combobox").ComboboxChipProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
81
67
  size?: import("./sizing.js").ComponentSize;
@@ -103,13 +89,7 @@ export declare const ComboboxArrow: React.ForwardRefExoticComponent<Omit<import(
103
89
  size?: import("./sizing.js").ComponentSize;
104
90
  } & React.RefAttributes<HTMLDivElement>>, ComboboxStatus: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/combobox").ComboboxStatusProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
105
91
  size?: import("./sizing.js").ComponentSize;
106
- } & React.RefAttributes<HTMLDivElement>>, ComboboxTrigger: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/combobox").ComboboxTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>, ComboboxValue: typeof BaseCombobox.Value, ComboboxContent: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/combobox").ComboboxPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & {
92
+ } & React.RefAttributes<HTMLDivElement>>, ComboboxTrigger: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/combobox").ComboboxTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>, ComboboxValue: typeof BaseCombobox.Value, ComboboxContent: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/combobox").ComboboxPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & Pick<Omit<Omit<import("@base-ui/react/combobox").ComboboxPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "side" | "align" | "sideOffset" | "collisionPadding"> & {
93
+ /** @deprecated Pass side, align, sideOffset and collisionPadding directly. */
107
94
  positionerProps?: React.ComponentPropsWithoutRef<typeof BaseCombobox.Positioner>;
108
95
  } & React.RefAttributes<HTMLDivElement>>;
109
- export declare const NumberFieldDecrement: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/number-field").NumberFieldDecrementProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>, NumberFieldGroup: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/number-field").NumberFieldGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
110
- size?: import("./sizing.js").ComponentSize;
111
- } & React.RefAttributes<HTMLDivElement>>, NumberFieldIncrement: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/number-field").NumberFieldIncrementProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>, NumberFieldInput: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/number-field").NumberFieldInputProps, "ref"> & React.RefAttributes<HTMLInputElement>, "ref">, "size"> & {
112
- size?: import("./sizing.js").ComponentSize;
113
- } & React.RefAttributes<HTMLInputElement>>, NumberFieldRoot: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/number-field").NumberFieldRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>, NumberFieldScrubArea: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/number-field").NumberFieldScrubAreaProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref">, "size"> & {
114
- size?: import("./sizing.js").ComponentSize;
115
- } & React.RefAttributes<HTMLSpanElement>>, NumberFieldScrubAreaCursor: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/number-field").NumberFieldScrubAreaCursorProps, "ref"> & React.RefAttributes<HTMLSpanElement>>;
@@ -1,22 +1,10 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
+ import { Icon } from './icon.js';
4
5
  import { Combobox as BaseCombobox } from '@base-ui/react/combobox';
5
- import { NumberField as BaseNumberField } from '@base-ui/react/number-field';
6
- import { skin, part } from './parts.js';
7
- import { useRootRef, useResetValue } from './form-state.js';
8
- function Mark({ kind, }) {
9
- const path = kind === 'check'
10
- ? 'm5 12 4 4L19 6'
11
- : kind === 'clear'
12
- ? 'm6 6 12 12M6 18 18 6'
13
- : kind === 'expand'
14
- ? 'm6 9 6 6 6-6'
15
- : kind === 'plus'
16
- ? 'M5 12h14M12 5v14'
17
- : 'M5 12h14';
18
- return (_jsx("svg", { width: '16', height: '16', viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: '1.6', "aria-hidden": 'true', children: _jsx("path", { d: path }) }));
19
- }
6
+ import { OwnPortal, defined, part, scopedPortal, skin } from './parts.js';
7
+ import { useResetValue } from './form-state.js';
20
8
  function ComboboxRoot({ children, form, ...props }) {
21
9
  const anchor = React.useRef(null);
22
10
  // Base UI does not reset its internal selection/query model on native form reset.
@@ -24,26 +12,27 @@ function ComboboxRoot({ children, form, ...props }) {
24
12
  const [, , revision] = useResetValue(true, true, anchor, form);
25
13
  return (_jsxs(BaseCombobox.Root, { ...props, form: form, children: [_jsx("span", { hidden: true, ref: anchor }), children] }, revision));
26
14
  }
27
- const ComboPopup = /* @__PURE__ */ part(BaseCombobox.Popup, 'pui-combobox-popup');
28
- const ComboPositioner = /* @__PURE__ */ part(BaseCombobox.Positioner, 'pui-positioner');
29
- const ComboContent = /* @__PURE__ */ React.forwardRef(function ComboContent({ positionerProps, ...props }, ref) {
30
- return (_jsx(BaseCombobox.Portal, { children: _jsx(ComboPositioner, { sideOffset: 6, ...positionerProps, children: _jsx(ComboPopup, { ...props, ref: ref }) }) }));
15
+ const ComboPopup = /* @__PURE__ */ part(BaseCombobox.Popup, 'pui-combobox-popup', { portal: true });
16
+ const ComboPositioner = /* @__PURE__ */ part(BaseCombobox.Positioner, 'pui-positioner', { portal: true });
17
+ const ComboContent = /* @__PURE__ */ React.forwardRef(function ComboContent({ side, align, sideOffset, collisionPadding, positionerProps, ...props }, ref) {
18
+ return (_jsx(OwnPortal, { portal: BaseCombobox.Portal, children: _jsx(ComboPositioner, { sideOffset: 6, ...positionerProps, ...defined({ side, align, sideOffset, collisionPadding }), children: _jsx(ComboPopup, { ...props, ref: ref }) }) }));
31
19
  });
32
20
  const ComboTrigger = /* @__PURE__ */ React.forwardRef(function ComboTrigger({ children, className, ...props }, ref) {
33
- return (_jsx(BaseCombobox.Trigger, { "aria-label": 'Show options', ...props, ref: ref, className: skin('pui-combobox-action', className), children: children ?? _jsx(Mark, { kind: 'expand' }) }));
21
+ return (_jsx(BaseCombobox.Trigger, { "aria-label": 'Show options', ...props, ref: ref, className: skin('pui-combobox-action', className), children: children ?? _jsx(Icon, { name: 'chevron-down' }) }));
34
22
  });
35
23
  const ComboClear = /* @__PURE__ */ React.forwardRef(function ComboClear({ children, className, ...props }, ref) {
36
- return (_jsx(BaseCombobox.Clear, { "aria-label": 'Clear selection', ...props, ref: ref, className: skin('pui-combobox-action', className), children: children ?? _jsx(Mark, { kind: 'clear' }) }));
24
+ return (_jsx(BaseCombobox.Clear, { "aria-label": 'Clear selection', ...props, ref: ref, className: skin('pui-combobox-action', className), children: children ?? _jsx(Icon, { name: 'close' }) }));
37
25
  });
38
26
  const ComboIndicator = /* @__PURE__ */ React.forwardRef(function ComboIndicator({ children, className, ...props }, ref) {
39
- return (_jsx(BaseCombobox.ItemIndicator, { keepMounted: true, ...props, ref: ref, className: skin('pui-combobox-indicator', className), children: children ?? _jsx(Mark, { kind: 'check' }) }));
27
+ return (_jsx(BaseCombobox.ItemIndicator, { keepMounted: true, ...props, ref: ref, className: skin('pui-combobox-indicator', className), children: children ?? _jsx(Icon, { name: 'check' }) }));
40
28
  });
41
29
  const ComboRemove = /* @__PURE__ */ React.forwardRef(function ComboRemove({ children, className, ...props }, ref) {
42
- return (_jsx(BaseCombobox.ChipRemove, { ...props, ref: ref, className: skin('pui-combobox-chip-remove', className), children: children ?? _jsx(Mark, { kind: 'clear' }) }));
30
+ return (_jsx(BaseCombobox.ChipRemove, { ...props, ref: ref, className: skin('pui-combobox-chip-remove', className), children: children ?? _jsx(Icon, { name: 'close' }) }));
43
31
  });
44
32
  export const Combobox = {
45
33
  ...BaseCombobox,
46
34
  Root: ComboboxRoot,
35
+ Portal: /* @__PURE__ */ scopedPortal(BaseCombobox.Portal),
47
36
  Content: ComboContent,
48
37
  Popup: ComboPopup,
49
38
  Positioner: ComboPositioner,
@@ -53,7 +42,7 @@ export const Combobox = {
53
42
  ChipRemove: ComboRemove,
54
43
  Input: /* @__PURE__ */ part(BaseCombobox.Input, 'pui-input pui-combobox-input'),
55
44
  InputGroup: /* @__PURE__ */ part(BaseCombobox.InputGroup, 'pui-combobox-group'),
56
- List: /* @__PURE__ */ part(BaseCombobox.List, 'pui-combobox-list scroll-area'),
45
+ List: /* @__PURE__ */ part(BaseCombobox.List, 'pui-combobox-list'),
57
46
  Item: /* @__PURE__ */ part(BaseCombobox.Item, 'pui-combobox-item'),
58
47
  Empty: /* @__PURE__ */ part(BaseCombobox.Empty, 'pui-combobox-empty'),
59
48
  Status: /* @__PURE__ */ part(BaseCombobox.Status, 'pui-combobox-status'),
@@ -63,31 +52,6 @@ export const Combobox = {
63
52
  Chips: /* @__PURE__ */ part(BaseCombobox.Chips, 'pui-combobox-chips'),
64
53
  Chip: /* @__PURE__ */ part(BaseCombobox.Chip, 'pui-combobox-chip'),
65
54
  };
66
- const NumberRoot = /* @__PURE__ */ React.forwardRef(function NumberRoot({ value, defaultValue, onValueChange, className, form, ...props }, ref) {
67
- const [element, attach] = useRootRef(ref);
68
- const [numeric, setNumeric] = useResetValue(value, defaultValue ?? null, element, form);
69
- return (_jsx(BaseNumberField.Root, { ...props, form: form, ref: attach, value: numeric, className: skin('pui-number-field', className), onValueChange: (next, event) => {
70
- onValueChange?.(next, event);
71
- if (value === undefined && !event.isCanceled)
72
- setNumeric(next);
73
- } }));
74
- });
75
- const NumberIncrement = /* @__PURE__ */ React.forwardRef(function NumberIncrement({ className, children, ...props }, ref) {
76
- return (_jsx(BaseNumberField.Increment, { "aria-label": 'Increase value', ...props, ref: ref, className: skin('pui-number-step', className), children: children ?? _jsx(Mark, { kind: 'plus' }) }));
77
- });
78
- const NumberDecrement = /* @__PURE__ */ React.forwardRef(function NumberDecrement({ className, children, ...props }, ref) {
79
- return (_jsx(BaseNumberField.Decrement, { "aria-label": 'Decrease value', ...props, ref: ref, className: skin('pui-number-step', className), children: children ?? _jsx(Mark, { kind: 'minus' }) }));
80
- });
81
- export const NumberField = {
82
- ...BaseNumberField,
83
- Root: NumberRoot,
84
- Increment: NumberIncrement,
85
- Decrement: NumberDecrement,
86
- Group: /* @__PURE__ */ part(BaseNumberField.Group, 'pui-number-group'),
87
- Input: /* @__PURE__ */ part(BaseNumberField.Input, 'pui-number-input'),
88
- ScrubArea: /* @__PURE__ */ part(BaseNumberField.ScrubArea, 'pui-number-scrub'),
89
- };
90
55
  // Flat names for React Server Components, which cannot dot into client exports.
91
56
  export { ComboboxRoot };
92
57
  export const { Arrow: ComboboxArrow, Backdrop: ComboboxBackdrop, Chip: ComboboxChip, ChipRemove: ComboboxChipRemove, Chips: ComboboxChips, Clear: ComboboxClear, Collection: ComboboxCollection, Empty: ComboboxEmpty, Group: ComboboxGroup, GroupLabel: ComboboxGroupLabel, Icon: ComboboxIcon, Input: ComboboxInput, InputGroup: ComboboxInputGroup, Item: ComboboxItem, ItemIndicator: ComboboxItemIndicator, Label: ComboboxLabel, List: ComboboxList, Popup: ComboboxPopup, Portal: ComboboxPortal, Positioner: ComboboxPositioner, Row: ComboboxRow, Separator: ComboboxSeparator, Status: ComboboxStatus, Trigger: ComboboxTrigger, Value: ComboboxValue, Content: ComboboxContent, } = Combobox;
93
- export const { Decrement: NumberFieldDecrement, Group: NumberFieldGroup, Increment: NumberFieldIncrement, Input: NumberFieldInput, Root: NumberFieldRoot, ScrubArea: NumberFieldScrubArea, ScrubAreaCursor: NumberFieldScrubAreaCursor, } = NumberField;
@@ -1,15 +1,17 @@
1
1
  import * as React from 'react';
2
2
  import { ContextMenu as BaseContextMenu } from '@base-ui/react/context-menu';
3
- import { PreviewCard as BasePreviewCard } from '@base-ui/react/preview-card';
3
+ import { type Placement } from './parts.js';
4
4
  /** Same menu anatomy and styling, with the context-specific cursor positioner. */
5
5
  export declare const ContextMenu: {
6
6
  Trigger: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/context-menu").ContextMenuTriggerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
7
7
  size?: import("./sizing.js").ComponentSize;
8
8
  } & React.RefAttributes<HTMLDivElement>>;
9
+ Portal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/context-menu").ContextMenuPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
10
  Positioner: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/context-menu").ContextMenuPositionerProps & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
10
11
  size?: import("./sizing.js").ComponentSize;
11
12
  } & React.RefAttributes<HTMLDivElement>>;
12
- Content: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/context-menu").ContextMenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & {
13
+ Content: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/context-menu").ContextMenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & Placement<React.ForwardRefExoticComponent<import("@base-ui/react/context-menu").ContextMenuPositionerProps & React.RefAttributes<HTMLDivElement>>> & {
14
+ /** @deprecated Pass side, align, sideOffset and collisionPadding directly. */
13
15
  positionerProps?: React.ComponentPropsWithoutRef<typeof BaseContextMenu.Positioner>;
14
16
  } & React.RefAttributes<HTMLDivElement>>;
15
17
  Popup: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/context-menu").ContextMenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
@@ -40,30 +42,11 @@ export declare const ContextMenu: {
40
42
  } & React.RefAttributes<HTMLDivElement>>;
41
43
  Root: typeof BaseContextMenu.Root;
42
44
  Backdrop: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/context-menu").ContextMenuBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
43
- Portal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/context-menu").ContextMenuPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
44
45
  Arrow: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/context-menu").ContextMenuArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
45
46
  Group: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/context-menu").ContextMenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
46
47
  RadioGroup: React.NamedExoticComponent<Omit<import("@base-ui/react/context-menu").ContextMenuRadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
47
48
  SubmenuRoot: typeof BaseContextMenu.SubmenuRoot;
48
49
  };
49
- declare function PreviewTrigger<Payload>(props: BasePreviewCard.Trigger.Props<Payload> & React.RefAttributes<HTMLElement>): React.JSX.Element;
50
- export declare const PreviewCard: {
51
- Trigger: typeof PreviewTrigger;
52
- Positioner: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/preview-card").PreviewCardPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
53
- size?: import("./sizing.js").ComponentSize;
54
- } & React.RefAttributes<HTMLDivElement>>;
55
- Popup: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/preview-card").PreviewCardPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
56
- Content: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/preview-card").PreviewCardPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & {
57
- positionerProps?: React.ComponentPropsWithoutRef<typeof BasePreviewCard.Positioner>;
58
- } & React.RefAttributes<HTMLDivElement>>;
59
- Root: <Payload>(props: BasePreviewCard.Root.Props<Payload>) => React.JSX.Element;
60
- Portal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/preview-card").PreviewCardPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
61
- Arrow: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/preview-card").PreviewCardArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
62
- Backdrop: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/preview-card").PreviewCardBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
63
- Viewport: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/preview-card").PreviewCardViewportProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
64
- createHandle: typeof BasePreviewCard.createHandle;
65
- Handle: typeof BasePreviewCard.Handle;
66
- };
67
50
  export declare const ContextMenuArrow: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/context-menu").ContextMenuArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>, ContextMenuBackdrop: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/context-menu").ContextMenuBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>, ContextMenuCheckboxItem: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/context-menu").ContextMenuCheckboxItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref">, "size"> & {
68
51
  size?: import("./sizing.js").ComponentSize;
69
52
  } & React.RefAttributes<HTMLDivElement>>, ContextMenuCheckboxItemIndicator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/context-menu").ContextMenuCheckboxItemIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>, ContextMenuGroup: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/context-menu").ContextMenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>, ContextMenuGroupLabel: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/context-menu").ContextMenuGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
@@ -84,12 +67,7 @@ export declare const ContextMenuArrow: React.ForwardRefExoticComponent<Omit<impo
84
67
  indicator?: React.ReactNode;
85
68
  } & React.RefAttributes<HTMLDivElement>>, ContextMenuTrigger: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/context-menu").ContextMenuTriggerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
86
69
  size?: import("./sizing.js").ComponentSize;
87
- } & React.RefAttributes<HTMLDivElement>>, ContextMenuContent: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/context-menu").ContextMenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & {
70
+ } & React.RefAttributes<HTMLDivElement>>, ContextMenuContent: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/context-menu").ContextMenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & Placement<React.ForwardRefExoticComponent<import("@base-ui/react/context-menu").ContextMenuPositionerProps & React.RefAttributes<HTMLDivElement>>> & {
71
+ /** @deprecated Pass side, align, sideOffset and collisionPadding directly. */
88
72
  positionerProps?: React.ComponentPropsWithoutRef<typeof BaseContextMenu.Positioner>;
89
73
  } & React.RefAttributes<HTMLDivElement>>;
90
- export declare const PreviewCardArrow: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/preview-card").PreviewCardArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>>, PreviewCardBackdrop: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/preview-card").PreviewCardBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>, PreviewCardHandle: typeof BasePreviewCard.Handle, PreviewCardPopup: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/preview-card").PreviewCardPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>, PreviewCardPortal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/preview-card").PreviewCardPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>, PreviewCardPositioner: React.ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react/preview-card").PreviewCardPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "size"> & {
91
- size?: import("./sizing.js").ComponentSize;
92
- } & React.RefAttributes<HTMLDivElement>>, PreviewCardRoot: <Payload>(props: BasePreviewCard.Root.Props<Payload>) => React.JSX.Element, PreviewCardTrigger: typeof PreviewTrigger, PreviewCardViewport: React.ForwardRefExoticComponent<Omit<import("@base-ui/react/preview-card").PreviewCardViewportProps, "ref"> & React.RefAttributes<HTMLDivElement>>, PreviewCardContent: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react/preview-card").PreviewCardPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & {
93
- positionerProps?: React.ComponentPropsWithoutRef<typeof BasePreviewCard.Positioner>;
94
- } & React.RefAttributes<HTMLDivElement>>;
95
- export {};
@@ -2,17 +2,17 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
4
  import { ContextMenu as BaseContextMenu } from '@base-ui/react/context-menu';
5
- import { PreviewCard as BasePreviewCard } from '@base-ui/react/preview-card';
6
5
  import { Menu } from './menu.js';
7
- import { part, skin } from './parts.js';
8
- const ContextPositioner = /* @__PURE__ */ part(BaseContextMenu.Positioner, 'pui-positioner');
9
- const ContextContent = /* @__PURE__ */ React.forwardRef(function ContextContent({ positionerProps, ...props }, ref) {
10
- return (_jsx(ContextPositioner, { ...positionerProps, children: _jsx(Menu.Popup, { ...props, ref: ref }) }));
6
+ import { OwnPortal, defined, part, scopedPortal, } from './parts.js';
7
+ const ContextPositioner = /* @__PURE__ */ part(BaseContextMenu.Positioner, 'pui-positioner', { portal: true });
8
+ const ContextContent = /* @__PURE__ */ React.forwardRef(function ContextContent({ side, align, sideOffset, collisionPadding, positionerProps, ...props }, ref) {
9
+ return (_jsx(OwnPortal, { portal: BaseContextMenu.Portal, children: _jsx(ContextPositioner, { ...positionerProps, ...defined({ side, align, sideOffset, collisionPadding }), children: _jsx(Menu.Popup, { ...props, ref: ref }) }) }));
11
10
  });
12
11
  /** Same menu anatomy and styling, with the context-specific cursor positioner. */
13
12
  export const ContextMenu = {
14
13
  ...BaseContextMenu,
15
14
  Trigger: /* @__PURE__ */ part(BaseContextMenu.Trigger, 'pui-context-trigger'),
15
+ Portal: /* @__PURE__ */ scopedPortal(BaseContextMenu.Portal),
16
16
  Positioner: ContextPositioner,
17
17
  Content: ContextContent,
18
18
  Popup: Menu.Popup,
@@ -26,25 +26,5 @@ export const ContextMenu = {
26
26
  Separator: Menu.Separator,
27
27
  SubmenuTrigger: Menu.SubmenuTrigger,
28
28
  };
29
- const PreviewPositioner = /* @__PURE__ */ part(BasePreviewCard.Positioner, 'pui-positioner');
30
- // The preview is visual enhancement; its destination is the accessible interface.
31
- const PreviewPopup = /* @__PURE__ */ React.forwardRef(function PreviewPopup({ className, ...props }, ref) {
32
- return (_jsx(BasePreviewCard.Popup, { ...props, ref: ref, "aria-hidden": 'true', className: skin('pui-preview-card', className) }));
33
- });
34
- function PreviewTrigger(props) {
35
- const { className, ...rest } = props;
36
- return (_jsx(BasePreviewCard.Trigger, { ...rest, className: skin('pui-link pui-preview-trigger', className) }));
37
- }
38
- const PreviewContent = /* @__PURE__ */ React.forwardRef(function PreviewContent({ positionerProps, ...props }, ref) {
39
- return (_jsx(PreviewPositioner, { sideOffset: 8, collisionPadding: 12, ...positionerProps, children: _jsx(PreviewPopup, { ...props, ref: ref }) }));
40
- });
41
- export const PreviewCard = {
42
- ...BasePreviewCard,
43
- Trigger: PreviewTrigger,
44
- Positioner: PreviewPositioner,
45
- Popup: PreviewPopup,
46
- Content: PreviewContent,
47
- };
48
29
  // Flat names for React Server Components, which cannot dot into client exports.
49
30
  export const { Arrow: ContextMenuArrow, Backdrop: ContextMenuBackdrop, CheckboxItem: ContextMenuCheckboxItem, CheckboxItemIndicator: ContextMenuCheckboxItemIndicator, Group: ContextMenuGroup, GroupLabel: ContextMenuGroupLabel, Item: ContextMenuItem, LinkItem: ContextMenuLinkItem, Popup: ContextMenuPopup, Portal: ContextMenuPortal, Positioner: ContextMenuPositioner, RadioGroup: ContextMenuRadioGroup, RadioItem: ContextMenuRadioItem, RadioItemIndicator: ContextMenuRadioItemIndicator, Root: ContextMenuRoot, Separator: ContextMenuSeparator, SubmenuRoot: ContextMenuSubmenuRoot, SubmenuTrigger: ContextMenuSubmenuTrigger, Trigger: ContextMenuTrigger, Content: ContextMenuContent, } = ContextMenu;
50
- export const { Arrow: PreviewCardArrow, Backdrop: PreviewCardBackdrop, Handle: PreviewCardHandle, Popup: PreviewCardPopup, Portal: PreviewCardPortal, Positioner: PreviewCardPositioner, Root: PreviewCardRoot, Trigger: PreviewCardTrigger, Viewport: PreviewCardViewport, Content: PreviewCardContent, } = PreviewCard;
@@ -0,0 +1,11 @@
1
+ /* Accordion, with the styles of what it renders. */
2
+ @layer surflane.tokens, surflane.themes, surflane.base, surflane.components,
3
+ surflane.sizes;
4
+ @import '@surflane/design-tokens/tokens.css';
5
+ @import '@surflane/design-tokens/presentation/base.css';
6
+ @import './rules/base.css';
7
+ @import './rules/sizing.css';
8
+ @import './rules/icon.css';
9
+ @import './rules/button.css';
10
+ @import './rules/disclosure.css';
11
+ @import './rules/accordion.css';
@@ -0,0 +1,11 @@
1
+ /* Alert Dialog, with the styles of what it renders. */
2
+ @layer surflane.tokens, surflane.themes, surflane.base, surflane.components,
3
+ surflane.sizes;
4
+ @import '@surflane/design-tokens/tokens.css';
5
+ @import '@surflane/design-tokens/presentation/base.css';
6
+ @import './rules/base.css';
7
+ @import './rules/sizing.css';
8
+ @import './rules/icon.css';
9
+ @import '@surflane/design-tokens/controls.css';
10
+ @import './rules/dialog.css';
11
+ @import './rules/alert-dialog.css';
@@ -1,6 +1,6 @@
1
1
  /* Every Surflane stylesheet in one import, in the recommended order: tokens, controls,
2
2
  * composition, document typography and components. Each file keeps its cascade layer. */
3
- @layer surflane.tokens, surflane.themes, surflane.base, surflane.components;
3
+ @layer surflane.tokens, surflane.themes, surflane.base, surflane.components, surflane.sizes;
4
4
  @import '@surflane/design-tokens/tokens.css';
5
5
  @import '@surflane/design-tokens/controls.css';
6
6
  @import '@surflane/design-tokens/foundations.css';
@@ -0,0 +1,12 @@
1
+ /* App shell / Sidebar, with the styles of what it renders. */
2
+ @layer surflane.tokens, surflane.themes, surflane.base, surflane.components,
3
+ surflane.sizes;
4
+ @import '@surflane/design-tokens/tokens.css';
5
+ @import '@surflane/design-tokens/presentation/base.css';
6
+ @import './rules/base.css';
7
+ @import './rules/sizing.css';
8
+ @import './rules/popup.css';
9
+ @import './rules/icon.css';
10
+ @import './rules/tooltip.css';
11
+ @import './rules/button.css';
12
+ @import './rules/app-shell.css';
@@ -0,0 +1,15 @@
1
+ /* Autocomplete, with the styles of what it renders. */
2
+ @layer surflane.tokens, surflane.themes, surflane.base, surflane.components,
3
+ surflane.sizes;
4
+ @import '@surflane/design-tokens/tokens.css';
5
+ @import '@surflane/design-tokens/presentation/base.css';
6
+ @import './rules/base.css';
7
+ @import './rules/field-control.css';
8
+ @import './rules/sizing.css';
9
+ @import './rules/input.css';
10
+ @import './rules/popup.css';
11
+ @import './rules/item.css';
12
+ @import './rules/icon.css';
13
+ @import './rules/input-group.css';
14
+ @import './rules/combobox.css';
15
+ @import './rules/autocomplete.css';