@wzrhine/react 0.0.0-stage → 0.2.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 (289) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/LICENSE +21 -0
  3. package/README.md +37 -3
  4. package/dist/advanced.css +398 -0
  5. package/dist/archive.css +704 -0
  6. package/dist/command.css +671 -0
  7. package/dist/components/Accordion.d.ts +82 -0
  8. package/dist/components/Accordion.d.ts.map +1 -0
  9. package/dist/components/Accordion.js +19 -0
  10. package/dist/components/Accordion.js.map +1 -0
  11. package/dist/components/Alert.d.ts +63 -0
  12. package/dist/components/Alert.d.ts.map +1 -0
  13. package/dist/components/Alert.js +29 -0
  14. package/dist/components/Alert.js.map +1 -0
  15. package/dist/components/AlertDialog.d.ts +49 -0
  16. package/dist/components/AlertDialog.d.ts.map +1 -0
  17. package/dist/components/AlertDialog.js +122 -0
  18. package/dist/components/AlertDialog.js.map +1 -0
  19. package/dist/components/ArchiveCard.d.ts +58 -0
  20. package/dist/components/ArchiveCard.d.ts.map +1 -0
  21. package/dist/components/ArchiveCard.js +40 -0
  22. package/dist/components/ArchiveCard.js.map +1 -0
  23. package/dist/components/Badge.d.ts +17 -0
  24. package/dist/components/Badge.d.ts.map +1 -0
  25. package/dist/components/Badge.js +16 -0
  26. package/dist/components/Badge.js.map +1 -0
  27. package/dist/components/Breadcrumb.d.ts +48 -0
  28. package/dist/components/Breadcrumb.d.ts.map +1 -0
  29. package/dist/components/Breadcrumb.js +55 -0
  30. package/dist/components/Breadcrumb.js.map +1 -0
  31. package/dist/components/Button.d.ts +33 -0
  32. package/dist/components/Button.d.ts.map +1 -0
  33. package/dist/components/Button.js +24 -0
  34. package/dist/components/Button.js.map +1 -0
  35. package/dist/components/Checkbox.d.ts +81 -0
  36. package/dist/components/Checkbox.d.ts.map +1 -0
  37. package/dist/components/Checkbox.js +34 -0
  38. package/dist/components/Checkbox.js.map +1 -0
  39. package/dist/components/Collapsible.d.ts +47 -0
  40. package/dist/components/Collapsible.d.ts.map +1 -0
  41. package/dist/components/Collapsible.js +12 -0
  42. package/dist/components/Collapsible.js.map +1 -0
  43. package/dist/components/Combobox.d.ts +74 -0
  44. package/dist/components/Combobox.d.ts.map +1 -0
  45. package/dist/components/Combobox.js +61 -0
  46. package/dist/components/Combobox.js.map +1 -0
  47. package/dist/components/CommandPalette.d.ts +77 -0
  48. package/dist/components/CommandPalette.d.ts.map +1 -0
  49. package/dist/components/CommandPalette.js +150 -0
  50. package/dist/components/CommandPalette.js.map +1 -0
  51. package/dist/components/ContextMenu.d.ts +31 -0
  52. package/dist/components/ContextMenu.d.ts.map +1 -0
  53. package/dist/components/ContextMenu.js +25 -0
  54. package/dist/components/ContextMenu.js.map +1 -0
  55. package/dist/components/DataTable.d.ts +83 -0
  56. package/dist/components/DataTable.d.ts.map +1 -0
  57. package/dist/components/DataTable.js +97 -0
  58. package/dist/components/DataTable.js.map +1 -0
  59. package/dist/components/Dialog.d.ts +49 -0
  60. package/dist/components/Dialog.d.ts.map +1 -0
  61. package/dist/components/Dialog.js +48 -0
  62. package/dist/components/Dialog.js.map +1 -0
  63. package/dist/components/Drawer.d.ts +56 -0
  64. package/dist/components/Drawer.d.ts.map +1 -0
  65. package/dist/components/Drawer.js +92 -0
  66. package/dist/components/Drawer.js.map +1 -0
  67. package/dist/components/EmptyState.d.ts +39 -0
  68. package/dist/components/EmptyState.d.ts.map +1 -0
  69. package/dist/components/EmptyState.js +19 -0
  70. package/dist/components/EmptyState.js.map +1 -0
  71. package/dist/components/Field.d.ts +37 -0
  72. package/dist/components/Field.d.ts.map +1 -0
  73. package/dist/components/Field.js +12 -0
  74. package/dist/components/Field.js.map +1 -0
  75. package/dist/components/Fieldset.d.ts +25 -0
  76. package/dist/components/Fieldset.d.ts.map +1 -0
  77. package/dist/components/Fieldset.js +17 -0
  78. package/dist/components/Fieldset.js.map +1 -0
  79. package/dist/components/FileDropZone.d.ts +60 -0
  80. package/dist/components/FileDropZone.d.ts.map +1 -0
  81. package/dist/components/FileDropZone.js +121 -0
  82. package/dist/components/FileDropZone.js.map +1 -0
  83. package/dist/components/Form.d.ts +22 -0
  84. package/dist/components/Form.d.ts.map +1 -0
  85. package/dist/components/Form.js +20 -0
  86. package/dist/components/Form.js.map +1 -0
  87. package/dist/components/Icon.d.ts +25 -0
  88. package/dist/components/Icon.d.ts.map +1 -0
  89. package/dist/components/Icon.js +38 -0
  90. package/dist/components/Icon.js.map +1 -0
  91. package/dist/components/IconButton.d.ts +25 -0
  92. package/dist/components/IconButton.d.ts.map +1 -0
  93. package/dist/components/IconButton.js +14 -0
  94. package/dist/components/IconButton.js.map +1 -0
  95. package/dist/components/Input.d.ts +24 -0
  96. package/dist/components/Input.d.ts.map +1 -0
  97. package/dist/components/Input.js +15 -0
  98. package/dist/components/Input.js.map +1 -0
  99. package/dist/components/Menu.d.ts +66 -0
  100. package/dist/components/Menu.d.ts.map +1 -0
  101. package/dist/components/Menu.js +34 -0
  102. package/dist/components/Menu.js.map +1 -0
  103. package/dist/components/MetadataList.d.ts +51 -0
  104. package/dist/components/MetadataList.d.ts.map +1 -0
  105. package/dist/components/MetadataList.js +25 -0
  106. package/dist/components/MetadataList.js.map +1 -0
  107. package/dist/components/NumberField.d.ts +54 -0
  108. package/dist/components/NumberField.d.ts.map +1 -0
  109. package/dist/components/NumberField.js +27 -0
  110. package/dist/components/NumberField.js.map +1 -0
  111. package/dist/components/Pagination.d.ts +40 -0
  112. package/dist/components/Pagination.d.ts.map +1 -0
  113. package/dist/components/Pagination.js +64 -0
  114. package/dist/components/Pagination.js.map +1 -0
  115. package/dist/components/Popover.d.ts +49 -0
  116. package/dist/components/Popover.d.ts.map +1 -0
  117. package/dist/components/Popover.js +14 -0
  118. package/dist/components/Popover.js.map +1 -0
  119. package/dist/components/Progress.d.ts +57 -0
  120. package/dist/components/Progress.d.ts.map +1 -0
  121. package/dist/components/Progress.js +31 -0
  122. package/dist/components/Progress.js.map +1 -0
  123. package/dist/components/Radio.d.ts +68 -0
  124. package/dist/components/Radio.d.ts.map +1 -0
  125. package/dist/components/Radio.js +18 -0
  126. package/dist/components/Radio.js.map +1 -0
  127. package/dist/components/RecordHeader.d.ts +53 -0
  128. package/dist/components/RecordHeader.d.ts.map +1 -0
  129. package/dist/components/RecordHeader.js +19 -0
  130. package/dist/components/RecordHeader.js.map +1 -0
  131. package/dist/components/ResizeHandle.d.ts +32 -0
  132. package/dist/components/ResizeHandle.d.ts.map +1 -0
  133. package/dist/components/ResizeHandle.js +33 -0
  134. package/dist/components/ResizeHandle.js.map +1 -0
  135. package/dist/components/ScrollArea.d.ts +60 -0
  136. package/dist/components/ScrollArea.d.ts.map +1 -0
  137. package/dist/components/ScrollArea.js +63 -0
  138. package/dist/components/ScrollArea.js.map +1 -0
  139. package/dist/components/Select.d.ts +39 -0
  140. package/dist/components/Select.d.ts.map +1 -0
  141. package/dist/components/Select.js +24 -0
  142. package/dist/components/Select.js.map +1 -0
  143. package/dist/components/Separator.d.ts +26 -0
  144. package/dist/components/Separator.d.ts.map +1 -0
  145. package/dist/components/Separator.js +22 -0
  146. package/dist/components/Separator.js.map +1 -0
  147. package/dist/components/Skeleton.d.ts +31 -0
  148. package/dist/components/Skeleton.d.ts.map +1 -0
  149. package/dist/components/Skeleton.js +17 -0
  150. package/dist/components/Skeleton.js.map +1 -0
  151. package/dist/components/Slider.d.ts +65 -0
  152. package/dist/components/Slider.d.ts.map +1 -0
  153. package/dist/components/Slider.js +30 -0
  154. package/dist/components/Slider.js.map +1 -0
  155. package/dist/components/Spinner.d.ts +23 -0
  156. package/dist/components/Spinner.d.ts.map +1 -0
  157. package/dist/components/Spinner.js +13 -0
  158. package/dist/components/Spinner.js.map +1 -0
  159. package/dist/components/SplitButton.d.ts +59 -0
  160. package/dist/components/SplitButton.d.ts.map +1 -0
  161. package/dist/components/SplitButton.js +30 -0
  162. package/dist/components/SplitButton.js.map +1 -0
  163. package/dist/components/Stat.d.ts +53 -0
  164. package/dist/components/Stat.d.ts.map +1 -0
  165. package/dist/components/Stat.js +23 -0
  166. package/dist/components/Stat.js.map +1 -0
  167. package/dist/components/StatusBadge.d.ts +19 -0
  168. package/dist/components/StatusBadge.d.ts.map +1 -0
  169. package/dist/components/StatusBadge.js +8 -0
  170. package/dist/components/StatusBadge.js.map +1 -0
  171. package/dist/components/StatusIndicator.d.ts +29 -0
  172. package/dist/components/StatusIndicator.d.ts.map +1 -0
  173. package/dist/components/StatusIndicator.js +8 -0
  174. package/dist/components/StatusIndicator.js.map +1 -0
  175. package/dist/components/Surface.d.ts +29 -0
  176. package/dist/components/Surface.d.ts.map +1 -0
  177. package/dist/components/Surface.js +8 -0
  178. package/dist/components/Surface.js.map +1 -0
  179. package/dist/components/Switch.d.ts +22 -0
  180. package/dist/components/Switch.d.ts.map +1 -0
  181. package/dist/components/Switch.js +11 -0
  182. package/dist/components/Switch.js.map +1 -0
  183. package/dist/components/Tabs.d.ts +45 -0
  184. package/dist/components/Tabs.d.ts.map +1 -0
  185. package/dist/components/Tabs.js +49 -0
  186. package/dist/components/Tabs.js.map +1 -0
  187. package/dist/components/Text.d.ts +33 -0
  188. package/dist/components/Text.d.ts.map +1 -0
  189. package/dist/components/Text.js +21 -0
  190. package/dist/components/Text.js.map +1 -0
  191. package/dist/components/Textarea.d.ts +54 -0
  192. package/dist/components/Textarea.d.ts.map +1 -0
  193. package/dist/components/Textarea.js +31 -0
  194. package/dist/components/Textarea.js.map +1 -0
  195. package/dist/components/Timeline.d.ts +35 -0
  196. package/dist/components/Timeline.d.ts.map +1 -0
  197. package/dist/components/Timeline.js +13 -0
  198. package/dist/components/Timeline.js.map +1 -0
  199. package/dist/components/Toast.d.ts +67 -0
  200. package/dist/components/Toast.d.ts.map +1 -0
  201. package/dist/components/Toast.js +94 -0
  202. package/dist/components/Toast.js.map +1 -0
  203. package/dist/components/Tooltip.d.ts +26 -0
  204. package/dist/components/Tooltip.d.ts.map +1 -0
  205. package/dist/components/Tooltip.js +15 -0
  206. package/dist/components/Tooltip.js.map +1 -0
  207. package/dist/components/Tree.d.ts +28 -0
  208. package/dist/components/Tree.d.ts.map +1 -0
  209. package/dist/components/Tree.js +129 -0
  210. package/dist/components/Tree.js.map +1 -0
  211. package/dist/components/VisuallyHidden.d.ts +17 -0
  212. package/dist/components/VisuallyHidden.d.ts.map +1 -0
  213. package/dist/components/VisuallyHidden.js +12 -0
  214. package/dist/components/VisuallyHidden.js.map +1 -0
  215. package/dist/components/Workbench.d.ts +31 -0
  216. package/dist/components/Workbench.d.ts.map +1 -0
  217. package/dist/components/Workbench.js +71 -0
  218. package/dist/components/Workbench.js.map +1 -0
  219. package/dist/components/fieldParts.d.ts +17 -0
  220. package/dist/components/fieldParts.d.ts.map +1 -0
  221. package/dist/components/fieldParts.js +22 -0
  222. package/dist/components/fieldParts.js.map +1 -0
  223. package/dist/components/meter-utils.d.ts +15 -0
  224. package/dist/components/meter-utils.d.ts.map +1 -0
  225. package/dist/components/meter-utils.js +15 -0
  226. package/dist/components/meter-utils.js.map +1 -0
  227. package/dist/components/navigation.d.ts +38 -0
  228. package/dist/components/navigation.d.ts.map +1 -0
  229. package/dist/components/navigation.js +96 -0
  230. package/dist/components/navigation.js.map +1 -0
  231. package/dist/components/pagination-utils.d.ts +10 -0
  232. package/dist/components/pagination-utils.d.ts.map +1 -0
  233. package/dist/components/pagination-utils.js +36 -0
  234. package/dist/components/pagination-utils.js.map +1 -0
  235. package/dist/components.css +678 -0
  236. package/dist/data.css +600 -0
  237. package/dist/disclosure.css +93 -0
  238. package/dist/drawer.css +226 -0
  239. package/dist/feedback.css +454 -0
  240. package/dist/forms.css +533 -0
  241. package/dist/index.d.ts +129 -0
  242. package/dist/index.d.ts.map +1 -0
  243. package/dist/index.js +67 -0
  244. package/dist/index.js.map +1 -0
  245. package/dist/motion/lifecycle.d.ts +44 -0
  246. package/dist/motion/lifecycle.d.ts.map +1 -0
  247. package/dist/motion/lifecycle.js +73 -0
  248. package/dist/motion/lifecycle.js.map +1 -0
  249. package/dist/motion/presence.d.ts +69 -0
  250. package/dist/motion/presence.d.ts.map +1 -0
  251. package/dist/motion/presence.js +103 -0
  252. package/dist/motion/presence.js.map +1 -0
  253. package/dist/motion/presets.d.ts +63 -0
  254. package/dist/motion/presets.d.ts.map +1 -0
  255. package/dist/motion/presets.js +30 -0
  256. package/dist/motion/presets.js.map +1 -0
  257. package/dist/motion/resolve.d.ts +31 -0
  258. package/dist/motion/resolve.d.ts.map +1 -0
  259. package/dist/motion/resolve.js +40 -0
  260. package/dist/motion/resolve.js.map +1 -0
  261. package/dist/motion/useRhineMotion.d.ts +19 -0
  262. package/dist/motion/useRhineMotion.d.ts.map +1 -0
  263. package/dist/motion/useRhineMotion.js +19 -0
  264. package/dist/motion/useRhineMotion.js.map +1 -0
  265. package/dist/motion/visibility.d.ts +6 -0
  266. package/dist/motion/visibility.d.ts.map +1 -0
  267. package/dist/motion/visibility.js +31 -0
  268. package/dist/motion/visibility.js.map +1 -0
  269. package/dist/overlays.css +465 -0
  270. package/dist/provider/RhineProvider.d.ts +65 -0
  271. package/dist/provider/RhineProvider.d.ts.map +1 -0
  272. package/dist/provider/RhineProvider.js +26 -0
  273. package/dist/provider/RhineProvider.js.map +1 -0
  274. package/dist/provider/messages.d.ts +209 -0
  275. package/dist/provider/messages.d.ts.map +1 -0
  276. package/dist/provider/messages.js +168 -0
  277. package/dist/provider/messages.js.map +1 -0
  278. package/dist/provider/portal.d.ts +17 -0
  279. package/dist/provider/portal.d.ts.map +1 -0
  280. package/dist/provider/portal.js +20 -0
  281. package/dist/provider/portal.js.map +1 -0
  282. package/dist/reset.css +45 -0
  283. package/dist/split.css +159 -0
  284. package/dist/status.css +353 -0
  285. package/dist/utils/cx.d.ts +2 -0
  286. package/dist/utils/cx.d.ts.map +1 -0
  287. package/dist/utils/cx.js +4 -0
  288. package/dist/utils/cx.js.map +1 -0
  289. package/package.json +67 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileDropZone.js","sourceRoot":"","sources":["../../src/components/FileDropZone.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import * as React from 'react';
2
+ import { Form as BaseForm } from '@base-ui/react/form';
3
+ type BaseFormProps = React.ComponentProps<typeof BaseForm>;
4
+ export type FormProps = Omit<BaseFormProps, 'className' | 'style' | 'render'> & {
5
+ disabled?: boolean;
6
+ className?: string;
7
+ style?: React.CSSProperties;
8
+ };
9
+ /**
10
+ * `<form>` on Base UI Form. On submit it validates every Field / CheckboxGroup / RadioGroup
11
+ * inside, shows their errors, moves focus to the first invalid control and only then calls
12
+ * `onSubmit`. `errors` maps field `name`s to server-side messages after a failed submission.
13
+ * A plain `<form>` still works, but then errors only appear per field on change / blur.
14
+ *
15
+ * <Form onSubmit={save} errors={serverErrors}>
16
+ * <Field name="title" label="标题" error="请填写标题。" errorMatch="valueMissing"><Input required /></Field>
17
+ * <Button type="submit">保存</Button>
18
+ * </Form>
19
+ */
20
+ export declare const Form: React.ForwardRefExoticComponent<Omit<FormProps, "ref"> & React.RefAttributes<HTMLFormElement>>;
21
+ export {};
22
+ //# sourceMappingURL=Form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../src/components/Form.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGvD,KAAK,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE3D,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC,GAAG;IAC9E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,IAAI,gGAEf,CAAC"}
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { Form as BaseForm } from '@base-ui/react/form';
5
+ import { cx } from '../utils/cx.js';
6
+ /**
7
+ * `<form>` on Base UI Form. On submit it validates every Field / CheckboxGroup / RadioGroup
8
+ * inside, shows their errors, moves focus to the first invalid control and only then calls
9
+ * `onSubmit`. `errors` maps field `name`s to server-side messages after a failed submission.
10
+ * A plain `<form>` still works, but then errors only appear per field on change / blur.
11
+ *
12
+ * <Form onSubmit={save} errors={serverErrors}>
13
+ * <Field name="title" label="标题" error="请填写标题。" errorMatch="valueMissing"><Input required /></Field>
14
+ * <Button type="submit">保存</Button>
15
+ * </Form>
16
+ */
17
+ export const Form = React.forwardRef(function Form({ className, style, disabled = false, children, ...rest }, ref) {
18
+ return _jsx(BaseForm, { ...rest, ref: ref, className: cx('rl-form', className), style: style, "data-slot": "form", "data-disabled": disabled || undefined, children: disabled ? _jsx("fieldset", { disabled: true, className: "rl-form__disabled", children: children }) : children });
19
+ });
20
+ //# sourceMappingURL=Form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.js","sourceRoot":"","sources":["../../src/components/Form.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAUpC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAA6B,SAAS,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG;IAC3I,OAAO,KAAC,QAAQ,OAAK,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,KAAK,eAAY,MAAM,mBAAgB,QAAQ,IAAI,SAAS,YAAG,QAAQ,CAAC,CAAC,CAAC,mBAAU,QAAQ,QAAC,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAY,CAAC,CAAC,CAAC,QAAQ,GAAY,CAAC;AAC3P,CAAC,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Public, dependency-free line icon entry used by consumers that need a stable icon grid.
4
+ * Family grammar (docs/design/ICONS.md): 24×24 master, 1.75 stroke, round cap/join, currentColor.
5
+ * Direction (2026-10-14, icon-review/2026-10-14-batch-02): basic icons are supplied by the
6
+ * consumer's Lucide layer; this registry keeps the pre-existing built-ins plus custom
7
+ * WzRhineLab identity glyphs that Lucide does not cover (Agent / Caliper / Sample / Index).
8
+ */
9
+ export declare const iconNames: readonly ["Settings", "Settings2", "SlidersHorizontal", "Minus", "Maximize", "Maximize2", "Minimize2", "PanelTopClose", "PanelTopOpen", "Power", "Square", "FolderOpen", "FolderPlus", "FolderMinus", "FileCode2", "FoldVertical", "Plug", "Puzzle", "Boxes", "ShieldAlert", "ShieldHalf", "ChevronUp", "Eye", "ImagePlus", "MessagesSquare", "PinOff", "RotateCcw", "SquareChartGantt", "Users", "ChevronDown", "ChevronLeft", "ChevronRight", "Plus", "X", "Check", "Agent", "Caliper", "Sample", "Index"];
10
+ export type IconName = (typeof iconNames)[number];
11
+ export type IconProps = Omit<React.SVGAttributes<SVGSVGElement>, 'name'> & {
12
+ /** Built-in icon name. Any other string is accepted together with `children` (custom SVG content). */
13
+ name: IconName | (string & {});
14
+ size?: number | string;
15
+ /** Custom SVG inner nodes; win over the built-in path for `name`. */
16
+ children?: React.ReactNode;
17
+ };
18
+ export declare const Icon: React.ForwardRefExoticComponent<Omit<React.SVGAttributes<SVGSVGElement>, "name"> & {
19
+ /** Built-in icon name. Any other string is accepted together with `children` (custom SVG content). */
20
+ name: IconName | (string & {});
21
+ size?: number | string;
22
+ /** Custom SVG inner nodes; win over the built-in path for `name`. */
23
+ children?: React.ReactNode;
24
+ } & React.RefAttributes<SVGSVGElement>>;
25
+ //# sourceMappingURL=Icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../src/components/Icon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,8eAOZ,CAAC;AACX,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAkBlD,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC,GAAG;IACzE,sGAAsG;IACtG,IAAI,EAAE,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,IAAI;IAPf,sGAAsG;UAChG,QAAQ,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;WACvB,MAAM,GAAG,MAAM;IACtB,qEAAqE;eAC1D,KAAK,CAAC,SAAS;uCAK1B,CAAC"}
@@ -0,0 +1,38 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { cx } from '../utils/cx.js';
5
+ /**
6
+ * Public, dependency-free line icon entry used by consumers that need a stable icon grid.
7
+ * Family grammar (docs/design/ICONS.md): 24×24 master, 1.75 stroke, round cap/join, currentColor.
8
+ * Direction (2026-10-14, icon-review/2026-10-14-batch-02): basic icons are supplied by the
9
+ * consumer's Lucide layer; this registry keeps the pre-existing built-ins plus custom
10
+ * WzRhineLab identity glyphs that Lucide does not cover (Agent / Caliper / Sample / Index).
11
+ */
12
+ export const iconNames = [
13
+ 'Settings', 'Settings2', 'SlidersHorizontal', 'Minus', 'Maximize', 'Maximize2', 'Minimize2', 'PanelTopClose', 'PanelTopOpen', 'Power', 'Square',
14
+ 'FolderOpen', 'FolderPlus', 'FolderMinus', 'FileCode2', 'FoldVertical', 'Plug', 'Puzzle', 'Boxes',
15
+ 'ShieldAlert', 'ShieldHalf', 'ChevronUp', 'Eye', 'ImagePlus', 'MessagesSquare', 'PinOff', 'RotateCcw',
16
+ 'SquareChartGantt', 'Users', 'ChevronDown', 'ChevronLeft', 'ChevronRight', 'Plus', 'X', 'Check',
17
+ // Custom / WzRhineLab identity
18
+ 'Agent', 'Caliper', 'Sample', 'Index',
19
+ ];
20
+ const PATHS = {
21
+ Settings: _jsxs(_Fragment, { children: [_jsx("circle", { cx: "12", cy: "12", r: "3" }), _jsx("path", { d: "M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1-1.8 1.8-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.6v.1h-2.6V20a1.7 1.7 0 0 0-1-1.6 1.7 1.7 0 0 0-1.9.3l-.1.1-1.8-1.8.1-.1A1.7 1.7 0 0 0 8 15a1.7 1.7 0 0 0-1.6-1H6v-2.6h.4A1.7 1.7 0 0 0 8 10a1.7 1.7 0 0 0-.3-1.9l-.1-.1 1.8-1.8.1.1a1.7 1.7 0 0 0 1.9.3 1.7 1.7 0 0 0 1-1.6v-.1H15V5a1.7 1.7 0 0 0 1 1.6 1.7 1.7 0 0 0 1.9-.3l.1-.1 1.8 1.8-.1.1a1.7 1.7 0 0 0-.3 1.9 1.7 1.7 0 0 0 1.6 1h.1v2.6H21a1.7 1.7 0 0 0-1.6 1Z" })] }),
22
+ Settings2: _jsxs(_Fragment, { children: [_jsx("path", { d: "M4 6h10M18 6h2M4 12h3M11 12h9M4 18h10M18 18h2" }), _jsx("circle", { cx: "16", cy: "6", r: "2" }), _jsx("circle", { cx: "9", cy: "12", r: "2" }), _jsx("circle", { cx: "16", cy: "18", r: "2" })] }),
23
+ SlidersHorizontal: _jsxs(_Fragment, { children: [_jsx("path", { d: "M4 6h16M4 12h16M4 18h16" }), _jsx("circle", { cx: "9", cy: "6", r: "2" }), _jsx("circle", { cx: "15", cy: "12", r: "2" }), _jsx("circle", { cx: "11", cy: "18", r: "2" })] }),
24
+ Minus: _jsx("path", { d: "M5 12h14" }), Maximize: _jsx("rect", { x: "5", y: "5", width: "14", height: "14", rx: "1" }), Maximize2: _jsx("path", { d: "M8 3H3v5M3 3l5 5M16 3h5v5M21 3l-5 5M8 21H3v-5M3 21l5-5M16 21h5v-5M21 21l-5-5" }), Minimize2: _jsx("path", { d: "M8 16 16 8M8 8l8 8" }), PanelTopClose: _jsxs(_Fragment, { children: [_jsx("path", { d: "M4 5h16v14H4zM4 9h16" }), _jsx("path", { d: "m9 13 3 3 3-3" })] }), PanelTopOpen: _jsxs(_Fragment, { children: [_jsx("path", { d: "M4 5h16v14H4zM4 9h16" }), _jsx("path", { d: "m9 17 3-3 3 3" })] }), Power: _jsxs(_Fragment, { children: [_jsx("path", { d: "M12 3v9" }), _jsx("path", { d: "M7.1 5.6a7 7 0 1 0 9.8 0" })] }), Square: _jsx("rect", { x: "4", y: "4", width: "16", height: "16", rx: "1" }),
25
+ FolderOpen: _jsxs(_Fragment, { children: [_jsx("path", { d: "M3 6h7l2 2h9v10H3z" }), _jsx("path", { d: "m3 8 2 8h14l2-8" })] }), FolderPlus: _jsxs(_Fragment, { children: [_jsx("path", { d: "M3 6h7l2 2h9v10H3z" }), _jsx("path", { d: "M12 10v6M9 13h6" })] }), FolderMinus: _jsxs(_Fragment, { children: [_jsx("path", { d: "M3 6h7l2 2h9v10H3z" }), _jsx("path", { d: "M9 13h6" })] }), FileCode2: _jsxs(_Fragment, { children: [_jsx("path", { d: "M6 3h8l4 4v14H6zM14 3v5h5" }), _jsx("path", { d: "m11 13-2 2 2 2M15 13l2 2-2 2" })] }), FoldVertical: _jsx(_Fragment, { children: _jsx("path", { d: "M7 3v18M17 3v18M3 8l4 4 4-4M13 16l4-4 4 4" }) }),
26
+ Plug: _jsx(_Fragment, { children: _jsx("path", { d: "M9 7V3M15 7V3M6 7h12v3a6 6 0 0 1-12 0zM12 16v5" }) }), Puzzle: _jsx("path", { d: "M9 3h3a2 2 0 1 1 4 0v3h3v3a2 2 0 1 1 0 4v3h-3a2 2 0 1 1-4 0h-3v-3a2 2 0 1 1 0-4V6h3z" }), Boxes: _jsx(_Fragment, { children: _jsx("path", { d: "m4 7 4-2 4 2-4 2-4-2ZM12 7l4-2 4 2-4 2-4-2ZM4 7v6l4 2 4-2V7M12 7v6l4 2 4-2V7" }) }),
27
+ ShieldAlert: _jsxs(_Fragment, { children: [_jsx("path", { d: "M12 3 20 6v5c0 5-3.5 8-8 10-4.5-2-8-5-8-10V6z" }), _jsx("path", { d: "M12 8v4M12 15v.01" })] }), ShieldHalf: _jsxs(_Fragment, { children: [_jsx("path", { d: "M12 3 20 6v5c0 5-3.5 8-8 10-4.5-2-8-5-8-10V6z" }), _jsx("path", { d: "M12 3v18" })] }),
28
+ ChevronUp: _jsx("path", { d: "m5 14 7-7 7 7" }), ChevronDown: _jsx("path", { d: "m5 10 7 7 7-7" }), ChevronLeft: _jsx("path", { d: "m14 5-7 7 7 7" }), ChevronRight: _jsx("path", { d: "m10 5 7 7-7 7" }), Eye: _jsxs(_Fragment, { children: [_jsx("path", { d: "M2 12s3.5-6 10-6 10 6 10 6-3.5 6-10 6S2 12 2 12Z" }), _jsx("circle", { cx: "12", cy: "12", r: "2.5" })] }), ImagePlus: _jsxs(_Fragment, { children: [_jsx("rect", { x: "3", y: "4", width: "18", height: "16", rx: "2" }), _jsx("circle", { cx: "8", cy: "9", r: "1" }), _jsx("path", { d: "m4 17 5-5 3 3 2-2 5 5M17 3v6M14 6h6" })] }), MessagesSquare: _jsxs(_Fragment, { children: [_jsx("path", { d: "M3 5h14v10H8l-5 4z" }), _jsx("path", { d: "M8 19h9l4-3V7h-2" })] }), PinOff: _jsx(_Fragment, { children: _jsx("path", { d: "m3 3 18 18M15 4l5 5-3 1-4 4v4l-2-2H7l3-3V9L7 7l1-3z" }) }), RotateCcw: _jsx("path", { d: "M4 12a8 8 0 1 0 3-6.2M4 4v5h5" }), SquareChartGantt: _jsxs(_Fragment, { children: [_jsx("rect", { x: "4", y: "4", width: "16", height: "16", rx: "1" }), _jsx("path", { d: "M8 8h8M8 12h5M8 16h8" })] }), Users: _jsxs(_Fragment, { children: [_jsx("circle", { cx: "9", cy: "8", r: "3" }), _jsx("path", { d: "M3 20c0-3 2.5-5 6-5s6 2 6 5M16 11a3 3 0 1 0 0-6M17 15c2.5.2 4 1.8 4 4" })] }), Plus: _jsx("path", { d: "M12 5v14M5 12h14" }), X: _jsx("path", { d: "M5 5l14 14M19 5 5 19" }), Check: _jsx("path", { d: "m5 12 4 4L19 6" }),
29
+ // Custom / WzRhineLab identity
30
+ Agent: _jsxs(_Fragment, { children: [_jsx("path", { d: "M12 3l8 5v8l-8 5-8-5V8Z" }), _jsx("circle", { cx: "12", cy: "12", r: "2.5" })] }),
31
+ Caliper: _jsxs(_Fragment, { children: [_jsx("path", { d: "M3 7h15M18 8.5h3M3 7v10M3 7V4h2M6 7v1.75M9 7v1.75M11 9v8" }), _jsx("rect", { x: "11", y: "4.5", width: "5", height: "4.5", rx: "1" }), _jsx("path", { d: "M13.5 4.5V3" })] }),
32
+ Sample: _jsxs(_Fragment, { children: [_jsx("rect", { x: "9", y: "3", width: "6", height: "3", rx: "1" }), _jsx("rect", { x: "6", y: "6", width: "12", height: "15", rx: "2" }), _jsx("path", { d: "M8 11h8" }), _jsx("circle", { cx: "12", cy: "15.5", r: "2.5" })] }),
33
+ Index: _jsxs(_Fragment, { children: [_jsx("rect", { x: "3", y: "6", width: "18", height: "14", rx: "2" }), _jsx("path", { d: "M5 6V4h5v2M7 11h10M7 15h6" })] }),
34
+ };
35
+ export const Icon = React.forwardRef(function Icon({ name, size = 24, className, strokeWidth = 1.75, children, ...rest }, ref) {
36
+ return _jsx("svg", { ...rest, ref: ref, className: cx('rl-icon', className), width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: strokeWidth, strokeLinecap: "round", strokeLinejoin: "round", "data-icon": name, role: rest['aria-label'] ? 'img' : undefined, "aria-hidden": rest['aria-label'] ? undefined : true, focusable: "false", children: children ?? PATHS[name] ?? null });
37
+ });
38
+ //# sourceMappingURL=Icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Icon.js","sourceRoot":"","sources":["../../src/components/Icon.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ import type { ButtonSize } from './Button.js';
3
+ type MotionConflictingProps = 'onDrag' | 'onDragStart' | 'onDragEnd' | 'onAnimationStart' | 'onAnimationEnd' | 'onAnimationIteration';
4
+ export type IconButtonVariant = 'secondary' | 'ghost' | 'primary';
5
+ type NativeProps = Omit<React.ComponentPropsWithoutRef<'button'>, 'disabled' | 'children' | 'aria-label' | 'aria-labelledby' | MotionConflictingProps>;
6
+ /** An accessible name is mandatory: either `label` (preferred) or `aria-labelledby`. */
7
+ type Naming = {
8
+ label: string;
9
+ 'aria-labelledby'?: never;
10
+ } | {
11
+ label?: never;
12
+ 'aria-labelledby': string;
13
+ };
14
+ export type IconButtonProps = NativeProps & Naming & {
15
+ /** The icon. Rendered aria-hidden; the button's name comes from `label`. */
16
+ icon: React.ReactNode;
17
+ variant?: IconButtonVariant;
18
+ size?: ButtonSize;
19
+ disabled?: boolean;
20
+ /** Toggle state for on/off tools (e.g. pin, grid view). Renders `aria-pressed`. */
21
+ pressed?: boolean;
22
+ };
23
+ export declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & React.RefAttributes<HTMLButtonElement>>;
24
+ export {};
25
+ //# sourceMappingURL=IconButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../src/components/IconButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,KAAK,sBAAsB,GACvB,QAAQ,GACR,aAAa,GACb,WAAW,GACX,kBAAkB,GAClB,gBAAgB,GAChB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AAElE,KAAK,WAAW,GAAG,IAAI,CACrB,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EACxC,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,iBAAiB,GAAG,sBAAsB,CACpF,CAAC;AAEF,wFAAwF;AACxF,KAAK,MAAM,GACP;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,KAAK,CAAA;CAAE,GAC5C;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,MAAM,MAAM,eAAe,GAAG,WAAW,GACvC,MAAM,GAAG;IACP,4EAA4E;IAC5E,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mFAAmF;IACnF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ,eAAO,MAAM,UAAU,2FA2BrB,CAAC"}
@@ -0,0 +1,14 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { motion } from 'motion/react';
5
+ import { pressScale } from '../motion/presets.js';
6
+ import { useRhineMotion } from '../motion/useRhineMotion.js';
7
+ import { cx } from '../utils/cx.js';
8
+ export const IconButton = React.forwardRef(function IconButton({ icon, label, variant = 'ghost', size = 'md', disabled = false, pressed, type = 'button', className, title, ...rest }, ref) {
9
+ const motionPrefs = useRhineMotion();
10
+ return (_jsx(motion.button, { ...rest, ref: ref, type: type, disabled: disabled, "aria-label": label, "aria-pressed": pressed,
11
+ // Mirror the name as a tooltip for sighted mouse users unless the caller overrides it.
12
+ title: title ?? label, "data-slot": "icon-button", "data-variant": variant, "data-size": size, className: cx('rl-icon-button', className), whileTap: !disabled && !motionPrefs.reduced ? { scale: pressScale } : undefined, transition: motionPrefs.get('press'), children: _jsx("span", { className: "rl-icon-button__icon", "aria-hidden": "true", children: icon }) }));
13
+ });
14
+ //# sourceMappingURL=IconButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconButton.js","sourceRoot":"","sources":["../../src/components/IconButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAkCpC,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAqC,SAAS,UAAU,CAChG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,IAAI,GAAG,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EACtH,GAAG;IAEH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,OAAO,CACL,KAAC,MAAM,CAAC,MAAM,OACR,IAAI,EACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,gBACN,KAAK,kBACH,OAAO;QACrB,uFAAuF;QACvF,KAAK,EAAE,KAAK,IAAI,KAAK,eACX,aAAa,kBACT,OAAO,eACV,IAAI,EACf,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAC1C,QAAQ,EAAE,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,EAC/E,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,YAEpC,eAAM,SAAS,EAAC,sBAAsB,iBAAa,MAAM,YACtD,IAAI,GACA,GACO,CACjB,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ import { Input as BaseInput } from '@base-ui/react/input';
3
+ export type InputSize = 'sm' | 'md' | 'lg';
4
+ type BaseInputProps = React.ComponentProps<typeof BaseInput>;
5
+ export type InputProps = Omit<BaseInputProps, 'className' | 'style' | 'render' | 'size' | 'prefix'> & {
6
+ size?: InputSize;
7
+ /** Decorative leading adornment (icon). Hidden from assistive tech. */
8
+ prefix?: React.ReactNode;
9
+ /** Trailing adornment: unit text such as "mm" is read by screen readers via aria-describedby. */
10
+ suffix?: React.ReactNode;
11
+ /** Monospace value for IDs, codes and measurements. */
12
+ mono?: boolean;
13
+ /** Mark invalid outside a Field (inside a Field, validity comes from Field). */
14
+ invalid?: boolean;
15
+ className?: string;
16
+ style?: React.CSSProperties;
17
+ };
18
+ /**
19
+ * Text input on Base UI Input: inside `<Field>` it picks up label, description, error and
20
+ * validity automatically; standalone it still needs an accessible name (`aria-label`).
21
+ */
22
+ export declare const Input: React.ForwardRefExoticComponent<Omit<InputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
23
+ export {};
24
+ //# sourceMappingURL=Input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,KAAK,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,CAAC;AAG7D,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC,GAAG;IACpG,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uEAAuE;IACvE,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,iGAAiG;IACjG,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,uDAAuD;IACvD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,kGAsChB,CAAC"}
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { Input as BaseInput } from '@base-ui/react/input';
5
+ import { cx } from '../utils/cx.js';
6
+ /**
7
+ * Text input on Base UI Input: inside `<Field>` it picks up label, description, error and
8
+ * validity automatically; standalone it still needs an accessible name (`aria-label`).
9
+ */
10
+ export const Input = React.forwardRef(function Input({ size = 'md', prefix, suffix, mono = false, invalid, className, style, disabled, readOnly, ...rest }, ref) {
11
+ const suffixId = React.useId();
12
+ const describedBy = [rest['aria-describedby'], suffix != null ? suffixId : undefined].filter(Boolean).join(' ') || undefined;
13
+ return (_jsxs("span", { className: cx('rl-input', className), style: style, "data-slot": "input", "data-size": size, "data-mono": mono || undefined, "data-disabled": disabled || undefined, "data-readonly": readOnly || undefined, "data-invalid": invalid || undefined, children: [prefix != null && (_jsx("span", { className: "rl-input__adornment", "data-position": "start", "aria-hidden": "true", children: prefix })), _jsx(BaseInput, { ...rest, ref: ref, disabled: disabled, readOnly: readOnly, ...(invalid ? { 'aria-invalid': true } : null), "aria-describedby": describedBy, className: "rl-input__control" }), suffix != null && (_jsx("span", { id: suffixId, className: "rl-input__adornment", "data-position": "end", children: suffix }))] }));
14
+ });
15
+ //# sourceMappingURL=Input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Input.js","sourceRoot":"","sources":["../../src/components/Input.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAqBpC;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAA+B,SAAS,KAAK,CAChF,EAAE,IAAI,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EACrG,GAAG;IAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;IAC7H,OAAO,CACL,gBACE,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EACpC,KAAK,EAAE,KAAK,eACF,OAAO,eACN,IAAI,eACJ,IAAI,IAAI,SAAS,mBACb,QAAQ,IAAI,SAAS,mBACrB,QAAQ,IAAI,SAAS,kBACtB,OAAO,IAAI,SAAS,aAEjC,MAAM,IAAI,IAAI,IAAI,CACjB,eAAM,SAAS,EAAC,qBAAqB,mBAAe,OAAO,iBAAa,MAAM,YAC3E,MAAM,GACF,CACR,EACD,KAAC,SAAS,OACJ,IAAI,EACR,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,KACd,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,sBAC7B,WAAW,EAC7B,SAAS,EAAC,mBAAmB,GAC7B,EACD,MAAM,IAAI,IAAI,IAAI,CACjB,eAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAC,qBAAqB,mBAAe,KAAK,YACpE,MAAM,GACF,CACR,IACI,CACR,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,66 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Action menu on Base UI Menu (ADR-0001): menu / menuitem semantics, arrow-key roving focus,
4
+ * typeahead, Home/End, Escape and outside-click dismissal, focus return to the trigger.
5
+ * Use for commands on an object ("导出 / 复制编号 / 归档"); use Select to choose a value
6
+ * and Tabs to switch views. Popup motion is a CSS transition (--rl-motion-fast).
7
+ */
8
+ export type MenuSide = 'top' | 'bottom' | 'left' | 'right';
9
+ export type MenuAlign = 'start' | 'center' | 'end';
10
+ export type MenuProps = {
11
+ /** Element that opens the menu (Button / IconButton with its own accessible name). */
12
+ trigger: React.ReactElement<Record<string, unknown>>;
13
+ children: React.ReactNode;
14
+ side?: MenuSide;
15
+ align?: MenuAlign;
16
+ open?: boolean;
17
+ defaultOpen?: boolean;
18
+ onOpenChange?: (open: boolean) => void;
19
+ disabled?: boolean;
20
+ className?: string;
21
+ };
22
+ export declare function Menu({ trigger, children, side, align, open, defaultOpen, onOpenChange, disabled, className }: MenuProps): React.JSX.Element;
23
+ export type MenuItemProps = {
24
+ children: React.ReactNode;
25
+ onSelect?: () => void;
26
+ /** Decorative leading icon. */
27
+ icon?: React.ReactNode;
28
+ /** Keyboard hint shown on the right, e.g. "Ctrl E". Visual only; wire the shortcut yourself. */
29
+ shortcut?: string;
30
+ /** `danger` for destructive commands; pair with a confirmation Dialog. */
31
+ tone?: 'default' | 'danger';
32
+ disabled?: boolean;
33
+ /** Keep the menu open after selection (default closes). */
34
+ keepOpen?: boolean;
35
+ };
36
+ export declare function MenuItem({ children, onSelect, icon, shortcut, tone, disabled, keepOpen }: MenuItemProps): React.JSX.Element;
37
+ export type MenuCheckboxItemProps = {
38
+ children: React.ReactNode;
39
+ checked?: boolean;
40
+ defaultChecked?: boolean;
41
+ onCheckedChange?: (checked: boolean) => void;
42
+ disabled?: boolean;
43
+ };
44
+ export declare function MenuCheckboxItem({ children, checked, defaultChecked, onCheckedChange, disabled }: MenuCheckboxItemProps): React.JSX.Element;
45
+ export type MenuRadioGroupProps = {
46
+ /** Visible group heading; also names the group for assistive tech. */
47
+ label?: React.ReactNode;
48
+ value?: string;
49
+ defaultValue?: string;
50
+ onValueChange?: (value: string) => void;
51
+ children: React.ReactNode;
52
+ };
53
+ export declare function MenuRadioGroup({ label, value, defaultValue, onValueChange, children }: MenuRadioGroupProps): React.JSX.Element;
54
+ export type MenuRadioItemProps = {
55
+ value: string;
56
+ children: React.ReactNode;
57
+ disabled?: boolean;
58
+ };
59
+ export declare function MenuRadioItem({ value, children, disabled }: MenuRadioItemProps): React.JSX.Element;
60
+ export type MenuGroupProps = {
61
+ label?: React.ReactNode;
62
+ children: React.ReactNode;
63
+ };
64
+ export declare function MenuGroup({ label, children }: MenuGroupProps): React.JSX.Element;
65
+ export declare function MenuSeparator(): React.JSX.Element;
66
+ //# sourceMappingURL=Menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../src/components/Menu.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Menu as BaseMenu } from '@base-ui/react/menu';
4
+ import { usePortalContainer } from '../provider/portal.js';
5
+ import { cx } from '../utils/cx.js';
6
+ function Check() {
7
+ return (_jsx("svg", { viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.75", "aria-hidden": "true", focusable: "false", children: _jsx("path", { d: "m3 8.5 3.5 3.5L13 4.5", strokeLinecap: "round", strokeLinejoin: "round" }) }));
8
+ }
9
+ function Dot() {
10
+ return (_jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", focusable: "false", children: _jsx("circle", { cx: "8", cy: "8", r: "3", fill: "currentColor" }) }));
11
+ }
12
+ export function Menu({ trigger, children, side = 'bottom', align = 'start', open, defaultOpen, onOpenChange, disabled, className }) {
13
+ const container = usePortalContainer();
14
+ return (_jsxs(BaseMenu.Root, { open: open, defaultOpen: defaultOpen, onOpenChange: onOpenChange ? (next) => onOpenChange(next) : undefined, disabled: disabled, children: [_jsx(BaseMenu.Trigger, { render: trigger }), _jsx(BaseMenu.Portal, { container: container, children: _jsx(BaseMenu.Positioner, { className: "rl-menu__positioner", side: side, align: align, sideOffset: 4, collisionPadding: 8, positionMethod: "fixed", children: _jsx(BaseMenu.Popup, { className: cx('rl-menu', className), "data-slot": "menu", children: children }) }) })] }));
15
+ }
16
+ export function MenuItem({ children, onSelect, icon, shortcut, tone = 'default', disabled, keepOpen = false }) {
17
+ return (_jsxs(BaseMenu.Item, { className: "rl-menu__item", "data-tone": tone, disabled: disabled, closeOnClick: !keepOpen, onClick: onSelect ? () => onSelect() : undefined, children: [_jsx("span", { className: "rl-menu__icon", "aria-hidden": "true", children: icon }), _jsx("span", { className: "rl-menu__label", children: children }), shortcut != null && (_jsx("kbd", { className: "rl-menu__shortcut", "aria-hidden": "true", children: shortcut }))] }));
18
+ }
19
+ export function MenuCheckboxItem({ children, checked, defaultChecked, onCheckedChange, disabled }) {
20
+ return (_jsxs(BaseMenu.CheckboxItem, { className: "rl-menu__item", checked: checked, defaultChecked: defaultChecked, onCheckedChange: onCheckedChange ? (next) => onCheckedChange(next) : undefined, disabled: disabled, children: [_jsx(BaseMenu.CheckboxItemIndicator, { className: "rl-menu__icon", keepMounted: true, children: _jsx("span", { className: "rl-menu__indicator", children: _jsx(Check, {}) }) }), _jsx("span", { className: "rl-menu__label", children: children })] }));
21
+ }
22
+ export function MenuRadioGroup({ label, value, defaultValue, onValueChange, children }) {
23
+ return (_jsxs(BaseMenu.Group, { className: "rl-menu__group", children: [label != null && _jsx(BaseMenu.GroupLabel, { className: "rl-menu__group-label", children: label }), _jsx(BaseMenu.RadioGroup, { value: value, defaultValue: defaultValue, onValueChange: onValueChange ? (next) => onValueChange(String(next)) : undefined, children: children })] }));
24
+ }
25
+ export function MenuRadioItem({ value, children, disabled }) {
26
+ return (_jsxs(BaseMenu.RadioItem, { className: "rl-menu__item", value: value, disabled: disabled, children: [_jsx(BaseMenu.RadioItemIndicator, { className: "rl-menu__icon", keepMounted: true, children: _jsx("span", { className: "rl-menu__indicator", children: _jsx(Dot, {}) }) }), _jsx("span", { className: "rl-menu__label", children: children })] }));
27
+ }
28
+ export function MenuGroup({ label, children }) {
29
+ return (_jsxs(BaseMenu.Group, { className: "rl-menu__group", children: [label != null && _jsx(BaseMenu.GroupLabel, { className: "rl-menu__group-label", children: label }), children] }));
30
+ }
31
+ export function MenuSeparator() {
32
+ return _jsx(BaseMenu.Separator, { className: "rl-menu__separator" });
33
+ }
34
+ //# sourceMappingURL=Menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../src/components/Menu.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Archive metadata as a semantic description list (<dl>). Values come from the caller's
4
+ * real record; missing values are hidden by default so the component never displays
5
+ * invented placeholders as if they were data.
6
+ */
7
+ export type MetadataValue = React.ReactNode;
8
+ export interface MetadataItem {
9
+ /** Stable key; defaults to the label when it is a string. */
10
+ key?: string;
11
+ label: React.ReactNode;
12
+ value: MetadataValue;
13
+ /** Monospace value for IDs, codes, measurements and timestamps. */
14
+ mono?: boolean;
15
+ /** Machine-readable date/time; wraps the value in <time dateTime>. */
16
+ dateTime?: string;
17
+ /** Short note under the value, e.g. a unit basis or provenance. */
18
+ hint?: React.ReactNode;
19
+ /** Let a long value span the full row in multi-column layouts. */
20
+ wide?: boolean;
21
+ }
22
+ export type MetadataListLayout = 'inline' | 'stacked';
23
+ export type MetadataEmpty = 'hide' | 'placeholder';
24
+ export type MetadataListProps = Omit<React.HTMLAttributes<HTMLDListElement>, 'children'> & {
25
+ items: readonly MetadataItem[];
26
+ /** `inline`: label column + value; `stacked`: label above value (narrow panels). */
27
+ layout?: MetadataListLayout;
28
+ /** Number of item columns on wide containers; collapses to one on narrow ones. */
29
+ columns?: 1 | 2 | 3;
30
+ /**
31
+ * How to treat items whose value is null / undefined / ''. `hide` (default) omits the row;
32
+ * `placeholder` keeps the row with a dash announced as「未记录」.
33
+ */
34
+ empty?: MetadataEmpty;
35
+ size?: 'sm' | 'md';
36
+ };
37
+ export declare function isEmptyValue(value: MetadataValue): boolean;
38
+ export declare const MetadataList: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLDListElement>, "children"> & {
39
+ items: readonly MetadataItem[];
40
+ /** `inline`: label column + value; `stacked`: label above value (narrow panels). */
41
+ layout?: MetadataListLayout;
42
+ /** Number of item columns on wide containers; collapses to one on narrow ones. */
43
+ columns?: 1 | 2 | 3;
44
+ /**
45
+ * How to treat items whose value is null / undefined / ''. `hide` (default) omits the row;
46
+ * `placeholder` keeps the row with a dash announced as「未记录」.
47
+ */
48
+ empty?: MetadataEmpty;
49
+ size?: "sm" | "md";
50
+ } & React.RefAttributes<HTMLDListElement>>;
51
+ //# sourceMappingURL=MetadataList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetadataList.d.ts","sourceRoot":"","sources":["../../src/components/MetadataList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;;GAIG;AAEH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;AAE5C,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,aAAa,CAAC;IACrB,mEAAmE;IACnE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,kEAAkE;IAClE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,CAAC;AACtD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,aAAa,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC,GAAG;IACzF,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,oFAAoF;IACpF,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,kFAAkF;IAClF,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAE1D;AAOD,eAAO,MAAM,YAAY;WAtBhB,SAAS,YAAY,EAAE;IAC9B,oFAAoF;aAC3E,kBAAkB;IAC3B,kFAAkF;cACxE,CAAC,GAAG,CAAC,GAAG,CAAC;IACnB;;;OAGG;YACK,aAAa;WACd,IAAI,GAAG,IAAI;0CAqDlB,CAAC"}
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { useRhineMessages } from '../provider/messages.js';
5
+ import { cx } from '../utils/cx.js';
6
+ export function isEmptyValue(value) {
7
+ return value === null || value === undefined || value === false || (typeof value === 'string' && value.trim() === '');
8
+ }
9
+ function itemKey(item, index) {
10
+ if (item.key)
11
+ return item.key;
12
+ return typeof item.label === 'string' ? item.label : String(index);
13
+ }
14
+ export const MetadataList = React.forwardRef(function MetadataList({ items, layout = 'inline', columns = 1, empty = 'hide', size = 'md', className, ...rest }, ref) {
15
+ const messages = useRhineMessages();
16
+ const visible = empty === 'hide' ? items.filter((item) => !isEmptyValue(item.value)) : items;
17
+ if (visible.length === 0)
18
+ return null;
19
+ return (_jsx("dl", { ...rest, ref: ref, className: cx('rl-meta', className), "data-slot": "metadata-list", "data-layout": layout, "data-columns": columns, "data-size": size, children: visible.map((item, index) => {
20
+ const missing = isEmptyValue(item.value);
21
+ const content = missing ? (_jsxs("span", { className: "rl-meta__empty", children: [_jsx("span", { "aria-hidden": "true", children: "\u2014" }), _jsx("span", { className: "rl-visually-hidden", children: messages.metadataList.missing })] })) : item.dateTime ? (_jsx("time", { dateTime: item.dateTime, children: item.value })) : (item.value);
22
+ return (_jsxs("div", { className: "rl-meta__item", "data-wide": item.wide || undefined, children: [_jsx("dt", { className: "rl-meta__label", children: item.label }), _jsxs("dd", { className: "rl-meta__value", "data-mono": item.mono || undefined, "data-empty": missing || undefined, children: [content, item.hint != null && !missing && _jsx("span", { className: "rl-meta__hint", children: item.hint })] })] }, itemKey(item, index)));
23
+ }) }));
24
+ });
25
+ //# sourceMappingURL=MetadataList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetadataList.js","sourceRoot":"","sources":["../../src/components/MetadataList.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AA0CpC,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACxH,CAAC;AAED,SAAS,OAAO,CAAC,IAAkB,EAAE,KAAa;IAChD,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC,GAAG,CAAC;IAC9B,OAAO,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAsC,SAAS,YAAY,CACrG,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,OAAO,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAC1F,GAAG;IAEH,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CACL,gBACM,IAAI,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,eACzB,eAAe,iBACZ,MAAM,kBACL,OAAO,eACV,IAAI,YAEd,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC3B,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CACxB,gBAAM,SAAS,EAAC,gBAAgB,aAC9B,8BAAkB,MAAM,uBAAS,EACjC,eAAM,SAAS,EAAC,oBAAoB,YAAE,QAAQ,CAAC,YAAY,CAAC,OAAO,GAAQ,IACtE,CACR,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAClB,eAAM,QAAQ,EAAE,IAAI,CAAC,QAAQ,YAAG,IAAI,CAAC,KAAK,GAAQ,CACnD,CAAC,CAAC,CAAC,CACF,IAAI,CAAC,KAAK,CACX,CAAC;YACF,OAAO,CACL,eAAgC,SAAS,EAAC,eAAe,eAAY,IAAI,CAAC,IAAI,IAAI,SAAS,aACzF,aAAI,SAAS,EAAC,gBAAgB,YAAE,IAAI,CAAC,KAAK,GAAM,EAChD,cAAI,SAAS,EAAC,gBAAgB,eAAY,IAAI,CAAC,IAAI,IAAI,SAAS,gBAAc,OAAO,IAAI,SAAS,aAC/F,OAAO,EACP,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,eAAM,SAAS,EAAC,eAAe,YAAE,IAAI,CAAC,IAAI,GAAQ,IACjF,KALG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAMxB,CACP,CAAC;QACJ,CAAC,CAAC,GACC,CACN,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,54 @@
1
+ import * as React from 'react';
2
+ import type { InputSize } from './Input.js';
3
+ /**
4
+ * Numeric input with stepper buttons on Base UI NumberField + Field (ADR-0010 §2). Label,
5
+ * description and error are wired like `Field` (aria-labelledby / aria-describedby /
6
+ * aria-invalid). The visible text input parses and formats with the provider locale; a hidden
7
+ * native input carries the raw number for form submission under `name`.
8
+ *
9
+ * Keyboard (Base UI): ↑/↓ step, Shift + arrow takes `largeStep`, Alt + arrow `smallStep`,
10
+ * Home/End jump to min/max (when set). The stepper buttons are out of the Tab order (the
11
+ * arrows do the same) but stay reachable for pointer and touch; their names come from the
12
+ * message table (`numberField.increment` / `decrement`).
13
+ *
14
+ * <NumberField label="并发上限" min={1} max={16} defaultValue={4} name="concurrency" />
15
+ */
16
+ export type NumberFieldProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'children' | 'defaultValue' | 'onChange'> & {
17
+ label: React.ReactNode;
18
+ hideLabel?: boolean;
19
+ description?: React.ReactNode;
20
+ /** Error text: shows on native validity failure, or always together with `invalid`. */
21
+ error?: React.ReactNode;
22
+ invalid?: boolean;
23
+ required?: boolean;
24
+ optional?: boolean;
25
+ /** `null` means empty. */
26
+ value?: number | null;
27
+ defaultValue?: number;
28
+ onValueChange?: (value: number | null) => void;
29
+ /** Fires on blur after typing and on pointer release after stepping. */
30
+ onValueCommitted?: (value: number | null) => void;
31
+ min?: number;
32
+ max?: number;
33
+ step?: number;
34
+ largeStep?: number;
35
+ smallStep?: number;
36
+ /** Intl options for display and parsing (e.g. `{ style: 'percent' }`); locale comes from RhineProvider. */
37
+ format?: Intl.NumberFormatOptions;
38
+ /** Snap stepped values to multiples of `step`. */
39
+ snapOnStep?: boolean;
40
+ name?: string;
41
+ disabled?: boolean;
42
+ readOnly?: boolean;
43
+ size?: InputSize;
44
+ placeholder?: string;
45
+ /** Trailing unit text (e.g. "个"), read as part of the description. */
46
+ unit?: React.ReactNode;
47
+ inherited?: string | number | boolean;
48
+ submitOnEnter?: boolean;
49
+ /** Ref to the visible text input. */
50
+ inputRef?: React.Ref<HTMLInputElement>;
51
+ ref?: React.Ref<HTMLDivElement>;
52
+ };
53
+ export declare function NumberField({ label, hideLabel, description, error, invalid, required, optional, value, defaultValue, onValueChange, onValueCommitted, min, max, step, largeStep, smallStep, format, snapOnStep, name, disabled, readOnly, size, placeholder, unit, inherited, submitOnEnter, inputRef, className, style, ref, ...rest }: NumberFieldProps): React.JSX.Element;
54
+ //# sourceMappingURL=NumberField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberField.d.ts","sourceRoot":"","sources":["../../src/components/NumberField.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAAC,GAAG;IACpH,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,uFAAuF;IACvF,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,wEAAwE;IACxE,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2GAA2G;IAC3G,MAAM,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC;IAClC,kDAAkD;IAClD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACtC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACvC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;CACjC,CAAC;AAkBF,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,SAAiB,EACjB,WAAW,EACX,KAAK,EACL,OAAO,EACP,QAAgB,EAChB,QAAgB,EAChB,KAAK,EACL,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,GAAG,EACH,GAAG,EACH,IAAI,EACJ,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAW,EACX,WAAW,EACX,IAAI,EACJ,SAAS,EACT,aAAoB,EACpB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,gBAAgB,qBA+ElB"}
@@ -0,0 +1,27 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import { Field as BaseField } from '@base-ui/react/field';
5
+ import { NumberField as BaseNumberField } from '@base-ui/react/number-field';
6
+ import { useRhineLocale } from '../provider/messages.js';
7
+ import { cx } from '../utils/cx.js';
8
+ import { FieldErrorMessage, LabelText } from './fieldParts.js';
9
+ function Minus() {
10
+ return (_jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", focusable: "false", children: _jsx("path", { d: "M3.5 8h9" }) }));
11
+ }
12
+ function Plus() {
13
+ return (_jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", focusable: "false", children: _jsx("path", { d: "M3.5 8h9M8 3.5v9" }) }));
14
+ }
15
+ export function NumberField({ label, hideLabel = false, description, error, invalid, required = false, optional = false, value, defaultValue, onValueChange, onValueCommitted, min, max, step, largeStep, smallStep, format, snapOnStep, name, disabled, readOnly, size = 'md', placeholder, unit, inherited, submitOnEnter = true, inputRef, className, style, ref, ...rest }) {
16
+ const { messages, locale } = useRhineLocale();
17
+ const unitId = React.useId();
18
+ const match = invalid ? true : undefined;
19
+ return (_jsxs(BaseField.Root, { ...rest, ref: ref, name: name, invalid: invalid, disabled: disabled, className: cx('rl-field', 'rl-number-field', className), style: style, "data-slot": "number-field", "data-required": required || undefined, children: [_jsx(BaseField.Label, { className: cx('rl-field__label', hideLabel && 'rl-visually-hidden'), children: _jsx(LabelText, { label: label, required: required, optional: optional }) }), _jsxs("div", { className: "rl-field__body", children: [_jsx(BaseNumberField.Root, { name: name, value: value, defaultValue: defaultValue, onValueChange: onValueChange ? (next) => onValueChange(next) : undefined, onValueCommitted: onValueCommitted ? (next) => onValueCommitted(next) : undefined, min: min, max: max, step: step, largeStep: largeStep, smallStep: smallStep, format: format, snapOnStep: snapOnStep, locale: locale, required: required, disabled: disabled, readOnly: readOnly, className: "rl-number-field__root", children: _jsxs(BaseNumberField.Group, { className: "rl-input rl-number-field__group", "data-size": size, "data-disabled": disabled || undefined, "data-readonly": readOnly || undefined, "data-invalid": invalid || undefined, children: [_jsx(BaseNumberField.Decrement, { className: "rl-number-field__stepper", "aria-label": messages.numberField.decrement, "data-position": "start", children: _jsx(Minus, {}) }), _jsx(BaseNumberField.Input, { ref: inputRef, className: "rl-input__control rl-number-field__input", placeholder: placeholder, "aria-roledescription": messages.numberField.roleDescription, "aria-describedby": unit != null ? unitId : undefined, "data-inherited": inherited || undefined, onKeyDown: (event) => {
20
+ if (submitOnEnter && event.key === 'Enter') {
21
+ event.preventDefault();
22
+ event.currentTarget.blur();
23
+ onValueCommitted?.(value ?? defaultValue ?? null);
24
+ }
25
+ } }), unit != null && (_jsx("span", { id: unitId, className: "rl-input__adornment rl-number-field__unit", children: unit })), _jsx(BaseNumberField.Increment, { className: "rl-number-field__stepper", "aria-label": messages.numberField.increment, "data-position": "end", children: _jsx(Plus, {}) })] }) }), description != null && _jsx(BaseField.Description, { className: "rl-field__description", children: description }), (error != null || name != null) && _jsx(FieldErrorMessage, { error: error, match: match, name: name })] })] }));
26
+ }
27
+ //# sourceMappingURL=NumberField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberField.js","sourceRoot":"","sources":["../../src/components/NumberField.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAuD/D,SAAS,KAAK;IACZ,OAAO,CACL,cAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,EAAC,SAAS,EAAC,OAAO,YAC3D,eAAM,CAAC,EAAC,UAAU,GAAG,GACjB,CACP,CAAC;AACJ,CAAC;AAED,SAAS,IAAI;IACX,OAAO,CACL,cAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,EAAC,SAAS,EAAC,OAAO,YAC3D,eAAM,CAAC,EAAC,kBAAkB,GAAG,GACzB,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAC1B,KAAK,EACL,SAAS,GAAG,KAAK,EACjB,WAAW,EACX,KAAK,EACL,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,GAAG,EACH,GAAG,EACH,IAAI,EACJ,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,IAAI,GAAG,IAAI,EACX,WAAW,EACX,IAAI,EACJ,SAAS,EACT,aAAa,GAAG,IAAI,EACpB,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACU;IACjB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACzC,OAAO,CACL,MAAC,SAAS,CAAC,IAAI,OACT,IAAI,EACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,iBAAiB,EAAE,SAAS,CAAC,EACvD,KAAK,EAAE,KAAK,eACF,cAAc,mBACT,QAAQ,IAAI,SAAS,aAEpC,KAAC,SAAS,CAAC,KAAK,IAAC,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,SAAS,IAAI,oBAAoB,CAAC,YAClF,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,GACnD,EAClB,eAAK,SAAS,EAAC,gBAAgB,aAC7B,KAAC,eAAe,CAAC,IAAI,IACnB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EACxE,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EACjF,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAC,uBAAuB,YAEjC,MAAC,eAAe,CAAC,KAAK,IACpB,SAAS,EAAC,iCAAiC,eAChC,IAAI,mBACA,QAAQ,IAAI,SAAS,mBACrB,QAAQ,IAAI,SAAS,kBACtB,OAAO,IAAI,SAAS,aAElC,KAAC,eAAe,CAAC,SAAS,IAAC,SAAS,EAAC,0BAA0B,gBAAa,QAAQ,CAAC,WAAW,CAAC,SAAS,mBAAgB,OAAO,YAC/H,KAAC,KAAK,KAAG,GACiB,EAC5B,KAAC,eAAe,CAAC,KAAK,IACpB,GAAG,EAAE,QAAQ,EACb,SAAS,EAAC,0CAA0C,EACpD,WAAW,EAAE,WAAW,0BACF,QAAQ,CAAC,WAAW,CAAC,eAAe,sBACxC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,oBACnC,SAAS,IAAI,SAAS,EACtC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;wCACnB,IAAI,aAAa,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;4CAC3C,KAAK,CAAC,cAAc,EAAE,CAAC;4CACtB,KAAK,CAAC,aAAkC,CAAC,IAAI,EAAE,CAAC;4CACjD,gBAAgB,EAAE,CAAC,KAAK,IAAI,YAAY,IAAI,IAAI,CAAC,CAAC;wCACpD,CAAC;oCACH,CAAC,GACD,EACD,IAAI,IAAI,IAAI,IAAI,CACf,eAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAC,2CAA2C,YACpE,IAAI,GACA,CACR,EACD,KAAC,eAAe,CAAC,SAAS,IAAC,SAAS,EAAC,0BAA0B,gBAAa,QAAQ,CAAC,WAAW,CAAC,SAAS,mBAAgB,KAAK,YAC7H,KAAC,IAAI,KAAG,GACkB,IACN,GACH,EACtB,WAAW,IAAI,IAAI,IAAI,KAAC,SAAS,CAAC,WAAW,IAAC,SAAS,EAAC,uBAAuB,YAAE,WAAW,GAAyB,EACrH,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAC,iBAAiB,IAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI,IAC7F,IACS,CAClB,CAAC;AACJ,CAAC"}