sherick-ui 2.8.0 → 2.10.1

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 (284) hide show
  1. package/README.md +32 -0
  2. package/dist/cjs/components/Accordion.cjs +14 -26
  3. package/dist/cjs/components/Accordion.cjs.map +1 -1
  4. package/dist/cjs/components/Alert.cjs +64 -19
  5. package/dist/cjs/components/Alert.cjs.map +1 -1
  6. package/dist/cjs/components/AlertDialog.cjs +5 -3
  7. package/dist/cjs/components/AlertDialog.cjs.map +1 -1
  8. package/dist/cjs/components/Avatar.cjs +12 -3
  9. package/dist/cjs/components/Avatar.cjs.map +1 -1
  10. package/dist/cjs/components/Badge.cjs +5 -3
  11. package/dist/cjs/components/Badge.cjs.map +1 -1
  12. package/dist/cjs/components/Breadcrumb.cjs +8 -4
  13. package/dist/cjs/components/Breadcrumb.cjs.map +1 -1
  14. package/dist/cjs/components/Button.cjs +11 -4
  15. package/dist/cjs/components/Button.cjs.map +1 -1
  16. package/dist/cjs/components/Calendar.cjs +39 -4
  17. package/dist/cjs/components/Calendar.cjs.map +1 -1
  18. package/dist/cjs/components/Card.cjs +16 -4
  19. package/dist/cjs/components/Card.cjs.map +1 -1
  20. package/dist/cjs/components/Checkbox.cjs +15 -3
  21. package/dist/cjs/components/Checkbox.cjs.map +1 -1
  22. package/dist/cjs/components/CheckboxGroup.cjs +3 -2
  23. package/dist/cjs/components/CheckboxGroup.cjs.map +1 -1
  24. package/dist/cjs/components/Chip.cjs +53 -43
  25. package/dist/cjs/components/Chip.cjs.map +1 -1
  26. package/dist/cjs/components/ChipGroup.cjs +17 -0
  27. package/dist/cjs/components/ChipGroup.cjs.map +1 -1
  28. package/dist/cjs/components/Collapsible.cjs +1 -1
  29. package/dist/cjs/components/Collapsible.cjs.map +1 -1
  30. package/dist/cjs/components/Combobox.cjs +59 -15
  31. package/dist/cjs/components/Combobox.cjs.map +1 -1
  32. package/dist/cjs/components/Command.cjs +11 -5
  33. package/dist/cjs/components/Command.cjs.map +1 -1
  34. package/dist/cjs/components/CommandPalette.cjs +5 -2
  35. package/dist/cjs/components/CommandPalette.cjs.map +1 -1
  36. package/dist/cjs/components/DatePicker.cjs +6 -3
  37. package/dist/cjs/components/DatePicker.cjs.map +1 -1
  38. package/dist/cjs/components/DateRangePicker.cjs +3 -2
  39. package/dist/cjs/components/DateRangePicker.cjs.map +1 -1
  40. package/dist/cjs/components/DateTimePicker.cjs +1 -1
  41. package/dist/cjs/components/DateTimePicker.cjs.map +1 -1
  42. package/dist/cjs/components/Dialog.cjs +10 -3
  43. package/dist/cjs/components/Dialog.cjs.map +1 -1
  44. package/dist/cjs/components/DialogContent.cjs +5 -3
  45. package/dist/cjs/components/DialogContent.cjs.map +1 -1
  46. package/dist/cjs/components/DialogDescription.cjs +5 -3
  47. package/dist/cjs/components/DialogDescription.cjs.map +1 -1
  48. package/dist/cjs/components/DialogFooter.cjs +3 -3
  49. package/dist/cjs/components/DialogFooter.cjs.map +1 -1
  50. package/dist/cjs/components/DialogHeader.cjs +5 -3
  51. package/dist/cjs/components/DialogHeader.cjs.map +1 -1
  52. package/dist/cjs/components/DialogSurface.cjs +37 -15
  53. package/dist/cjs/components/DialogSurface.cjs.map +1 -1
  54. package/dist/cjs/components/DismissButton.cjs +24 -0
  55. package/dist/cjs/components/DismissButton.cjs.map +1 -0
  56. package/dist/cjs/components/Divider.cjs +3 -1
  57. package/dist/cjs/components/Divider.cjs.map +1 -1
  58. package/dist/cjs/components/Drawer.cjs +28 -15
  59. package/dist/cjs/components/Drawer.cjs.map +1 -1
  60. package/dist/cjs/components/Field.cjs +47 -2
  61. package/dist/cjs/components/Field.cjs.map +1 -1
  62. package/dist/cjs/components/FieldLabel.cjs +20 -0
  63. package/dist/cjs/components/FieldLabel.cjs.map +1 -0
  64. package/dist/cjs/components/FileUpload.cjs +19 -9
  65. package/dist/cjs/components/FileUpload.cjs.map +1 -1
  66. package/dist/cjs/components/IconButton.cjs +28 -3
  67. package/dist/cjs/components/IconButton.cjs.map +1 -1
  68. package/dist/cjs/components/Input.cjs +14 -5
  69. package/dist/cjs/components/Input.cjs.map +1 -1
  70. package/dist/cjs/components/Menu.cjs +18 -4
  71. package/dist/cjs/components/Menu.cjs.map +1 -1
  72. package/dist/cjs/components/NavGroup.cjs +7 -1
  73. package/dist/cjs/components/NavGroup.cjs.map +1 -1
  74. package/dist/cjs/components/NavItem.cjs +28 -3
  75. package/dist/cjs/components/NavItem.cjs.map +1 -1
  76. package/dist/cjs/components/NumberField.cjs +7 -6
  77. package/dist/cjs/components/NumberField.cjs.map +1 -1
  78. package/dist/cjs/components/Pagination.cjs +45 -10
  79. package/dist/cjs/components/Pagination.cjs.map +1 -1
  80. package/dist/cjs/components/Popover.cjs +17 -3
  81. package/dist/cjs/components/Popover.cjs.map +1 -1
  82. package/dist/cjs/components/Progress.cjs +5 -3
  83. package/dist/cjs/components/Progress.cjs.map +1 -1
  84. package/dist/cjs/components/RadioGroup.cjs +3 -2
  85. package/dist/cjs/components/RadioGroup.cjs.map +1 -1
  86. package/dist/cjs/components/Search.cjs +35 -14
  87. package/dist/cjs/components/Search.cjs.map +1 -1
  88. package/dist/cjs/components/SegmentedControl.cjs +2 -1
  89. package/dist/cjs/components/SegmentedControl.cjs.map +1 -1
  90. package/dist/cjs/components/Select.cjs +14 -4
  91. package/dist/cjs/components/Select.cjs.map +1 -1
  92. package/dist/cjs/components/Skeleton.cjs +5 -3
  93. package/dist/cjs/components/Skeleton.cjs.map +1 -1
  94. package/dist/cjs/components/Slider.cjs +1 -1
  95. package/dist/cjs/components/Slider.cjs.map +1 -1
  96. package/dist/cjs/components/Spinner.cjs +25 -14
  97. package/dist/cjs/components/Spinner.cjs.map +1 -1
  98. package/dist/cjs/components/StatusMark.cjs +43 -0
  99. package/dist/cjs/components/StatusMark.cjs.map +1 -0
  100. package/dist/cjs/components/Stepper.cjs +9 -6
  101. package/dist/cjs/components/Stepper.cjs.map +1 -1
  102. package/dist/cjs/components/Switch.cjs +20 -1
  103. package/dist/cjs/components/Switch.cjs.map +1 -1
  104. package/dist/cjs/components/Table.cjs +15 -7
  105. package/dist/cjs/components/Table.cjs.map +1 -1
  106. package/dist/cjs/components/Tabs.cjs +10 -3
  107. package/dist/cjs/components/Tabs.cjs.map +1 -1
  108. package/dist/cjs/components/Textarea.cjs +8 -4
  109. package/dist/cjs/components/Textarea.cjs.map +1 -1
  110. package/dist/cjs/components/Toast.cjs +47 -34
  111. package/dist/cjs/components/Toast.cjs.map +1 -1
  112. package/dist/cjs/components/ToggleGroup.cjs +14 -3
  113. package/dist/cjs/components/ToggleGroup.cjs.map +1 -1
  114. package/dist/cjs/components/Tooltip.cjs +16 -2
  115. package/dist/cjs/components/Tooltip.cjs.map +1 -1
  116. package/dist/cjs/components/TreeView.cjs +8 -4
  117. package/dist/cjs/components/TreeView.cjs.map +1 -1
  118. package/dist/cjs/components/choice-row.cjs +1 -1
  119. package/dist/cjs/components/choice-row.cjs.map +1 -1
  120. package/dist/cjs/components/date-family.cjs +16 -2
  121. package/dist/cjs/components/date-family.cjs.map +1 -1
  122. package/dist/cjs/components/date-field.cjs +5 -3
  123. package/dist/cjs/components/date-field.cjs.map +1 -1
  124. package/dist/cjs/components/edge-fade.cjs +80 -0
  125. package/dist/cjs/components/edge-fade.cjs.map +1 -0
  126. package/dist/cjs/components/scroll-region.cjs +56 -0
  127. package/dist/cjs/components/scroll-region.cjs.map +1 -0
  128. package/dist/cjs/components/time-panel.cjs +2 -2
  129. package/dist/cjs/components/time-panel.cjs.map +1 -1
  130. package/dist/cjs/components/ui.common.cjs +179 -71
  131. package/dist/cjs/components/ui.common.cjs.map +1 -1
  132. package/dist/cjs/components/ui.motion.cjs +46 -15
  133. package/dist/cjs/components/ui.motion.cjs.map +1 -1
  134. package/dist/cjs/dev.cjs +9 -0
  135. package/dist/cjs/dev.cjs.map +1 -1
  136. package/dist/cjs/index.cjs +1 -0
  137. package/dist/cjs/index.cjs.map +1 -1
  138. package/dist/esm/components/Accordion.js +16 -28
  139. package/dist/esm/components/Accordion.js.map +1 -1
  140. package/dist/esm/components/Alert.js +66 -22
  141. package/dist/esm/components/Alert.js.map +1 -1
  142. package/dist/esm/components/AlertDialog.js +6 -4
  143. package/dist/esm/components/AlertDialog.js.map +1 -1
  144. package/dist/esm/components/Avatar.js +14 -5
  145. package/dist/esm/components/Avatar.js.map +1 -1
  146. package/dist/esm/components/Badge.js +6 -4
  147. package/dist/esm/components/Badge.js.map +1 -1
  148. package/dist/esm/components/Breadcrumb.js +9 -5
  149. package/dist/esm/components/Breadcrumb.js.map +1 -1
  150. package/dist/esm/components/Button.js +11 -4
  151. package/dist/esm/components/Button.js.map +1 -1
  152. package/dist/esm/components/Calendar.js +43 -8
  153. package/dist/esm/components/Calendar.js.map +1 -1
  154. package/dist/esm/components/Card.js +17 -5
  155. package/dist/esm/components/Card.js.map +1 -1
  156. package/dist/esm/components/Checkbox.js +17 -5
  157. package/dist/esm/components/Checkbox.js.map +1 -1
  158. package/dist/esm/components/CheckboxGroup.js +4 -3
  159. package/dist/esm/components/CheckboxGroup.js.map +1 -1
  160. package/dist/esm/components/Chip.js +56 -46
  161. package/dist/esm/components/Chip.js.map +1 -1
  162. package/dist/esm/components/ChipGroup.js +18 -1
  163. package/dist/esm/components/ChipGroup.js.map +1 -1
  164. package/dist/esm/components/CodeBlock.js +58 -28
  165. package/dist/esm/components/CodeBlock.js.map +1 -1
  166. package/dist/esm/components/Collapsible.js +2 -2
  167. package/dist/esm/components/Collapsible.js.map +1 -1
  168. package/dist/esm/components/Combobox.js +63 -19
  169. package/dist/esm/components/Combobox.js.map +1 -1
  170. package/dist/esm/components/Command.js +12 -6
  171. package/dist/esm/components/Command.js.map +1 -1
  172. package/dist/esm/components/CommandPalette.js +7 -4
  173. package/dist/esm/components/CommandPalette.js.map +1 -1
  174. package/dist/esm/components/DatePicker.js +7 -4
  175. package/dist/esm/components/DatePicker.js.map +1 -1
  176. package/dist/esm/components/DateRangePicker.js +4 -3
  177. package/dist/esm/components/DateRangePicker.js.map +1 -1
  178. package/dist/esm/components/DateTimePicker.js +2 -2
  179. package/dist/esm/components/DateTimePicker.js.map +1 -1
  180. package/dist/esm/components/Dialog.js +12 -6
  181. package/dist/esm/components/Dialog.js.map +1 -1
  182. package/dist/esm/components/DialogContent.js +6 -4
  183. package/dist/esm/components/DialogContent.js.map +1 -1
  184. package/dist/esm/components/DialogDescription.js +6 -4
  185. package/dist/esm/components/DialogDescription.js.map +1 -1
  186. package/dist/esm/components/DialogFooter.js +3 -3
  187. package/dist/esm/components/DialogFooter.js.map +1 -1
  188. package/dist/esm/components/DialogHeader.js +5 -3
  189. package/dist/esm/components/DialogHeader.js.map +1 -1
  190. package/dist/esm/components/DialogSurface.js +38 -17
  191. package/dist/esm/components/DialogSurface.js.map +1 -1
  192. package/dist/esm/components/DismissButton.js +20 -0
  193. package/dist/esm/components/DismissButton.js.map +1 -0
  194. package/dist/esm/components/Divider.js +3 -1
  195. package/dist/esm/components/Divider.js.map +1 -1
  196. package/dist/esm/components/Drawer.js +31 -18
  197. package/dist/esm/components/Drawer.js.map +1 -1
  198. package/dist/esm/components/Field.js +49 -6
  199. package/dist/esm/components/Field.js.map +1 -1
  200. package/dist/esm/components/FieldLabel.js +15 -0
  201. package/dist/esm/components/FieldLabel.js.map +1 -0
  202. package/dist/esm/components/FileUpload.js +23 -13
  203. package/dist/esm/components/FileUpload.js.map +1 -1
  204. package/dist/esm/components/IconButton.js +31 -6
  205. package/dist/esm/components/IconButton.js.map +1 -1
  206. package/dist/esm/components/Input.js +15 -6
  207. package/dist/esm/components/Input.js.map +1 -1
  208. package/dist/esm/components/Markdown.js +10 -7
  209. package/dist/esm/components/Markdown.js.map +1 -1
  210. package/dist/esm/components/Menu.js +20 -6
  211. package/dist/esm/components/Menu.js.map +1 -1
  212. package/dist/esm/components/NavGroup.js +9 -3
  213. package/dist/esm/components/NavGroup.js.map +1 -1
  214. package/dist/esm/components/NavItem.js +30 -6
  215. package/dist/esm/components/NavItem.js.map +1 -1
  216. package/dist/esm/components/NumberField.js +8 -7
  217. package/dist/esm/components/NumberField.js.map +1 -1
  218. package/dist/esm/components/Pagination.js +47 -12
  219. package/dist/esm/components/Pagination.js.map +1 -1
  220. package/dist/esm/components/Popover.js +18 -4
  221. package/dist/esm/components/Popover.js.map +1 -1
  222. package/dist/esm/components/Progress.js +6 -4
  223. package/dist/esm/components/Progress.js.map +1 -1
  224. package/dist/esm/components/RadioGroup.js +4 -3
  225. package/dist/esm/components/RadioGroup.js.map +1 -1
  226. package/dist/esm/components/Search.js +36 -15
  227. package/dist/esm/components/Search.js.map +1 -1
  228. package/dist/esm/components/SegmentedControl.js +2 -1
  229. package/dist/esm/components/SegmentedControl.js.map +1 -1
  230. package/dist/esm/components/Select.js +16 -6
  231. package/dist/esm/components/Select.js.map +1 -1
  232. package/dist/esm/components/Skeleton.js +5 -3
  233. package/dist/esm/components/Skeleton.js.map +1 -1
  234. package/dist/esm/components/Slider.js +2 -2
  235. package/dist/esm/components/Slider.js.map +1 -1
  236. package/dist/esm/components/Spinner.js +25 -14
  237. package/dist/esm/components/Spinner.js.map +1 -1
  238. package/dist/esm/components/StatusMark.js +38 -0
  239. package/dist/esm/components/StatusMark.js.map +1 -0
  240. package/dist/esm/components/Stepper.js +10 -7
  241. package/dist/esm/components/Stepper.js.map +1 -1
  242. package/dist/esm/components/Switch.js +21 -2
  243. package/dist/esm/components/Switch.js.map +1 -1
  244. package/dist/esm/components/Table.js +16 -8
  245. package/dist/esm/components/Table.js.map +1 -1
  246. package/dist/esm/components/Tabs.js +11 -4
  247. package/dist/esm/components/Tabs.js.map +1 -1
  248. package/dist/esm/components/Textarea.js +9 -5
  249. package/dist/esm/components/Textarea.js.map +1 -1
  250. package/dist/esm/components/Toast.js +49 -36
  251. package/dist/esm/components/Toast.js.map +1 -1
  252. package/dist/esm/components/ToggleGroup.js +16 -5
  253. package/dist/esm/components/ToggleGroup.js.map +1 -1
  254. package/dist/esm/components/Tooltip.js +17 -4
  255. package/dist/esm/components/Tooltip.js.map +1 -1
  256. package/dist/esm/components/TreeView.js +9 -5
  257. package/dist/esm/components/TreeView.js.map +1 -1
  258. package/dist/esm/components/choice-row.js +1 -1
  259. package/dist/esm/components/choice-row.js.map +1 -1
  260. package/dist/esm/components/date-family.js +15 -3
  261. package/dist/esm/components/date-family.js.map +1 -1
  262. package/dist/esm/components/date-field.js +6 -4
  263. package/dist/esm/components/date-field.js.map +1 -1
  264. package/dist/esm/components/edge-fade.js +77 -0
  265. package/dist/esm/components/edge-fade.js.map +1 -0
  266. package/dist/esm/components/scroll-region.js +52 -0
  267. package/dist/esm/components/scroll-region.js.map +1 -0
  268. package/dist/esm/components/time-panel.js +2 -2
  269. package/dist/esm/components/time-panel.js.map +1 -1
  270. package/dist/esm/components/ui.common.js +175 -73
  271. package/dist/esm/components/ui.common.js.map +1 -1
  272. package/dist/esm/components/ui.motion.js +44 -16
  273. package/dist/esm/components/ui.motion.js.map +1 -1
  274. package/dist/esm/content.js +1 -1
  275. package/dist/esm/dev.js +2 -2
  276. package/dist/esm/index.js +1 -1
  277. package/dist/styles.css +341 -209
  278. package/dist/theme.css +15 -12
  279. package/dist/types/content.d.ts +13 -3
  280. package/dist/types/dev.d.cts +79 -29
  281. package/dist/types/dev.d.ts +79 -29
  282. package/dist/types/index.d.cts +512 -154
  283. package/dist/types/index.d.ts +512 -154
  284. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Input.cjs","sources":["../../../src/components/Input.tsx"],"sourcesContent":["\"use client\";\n\nimport { Field } from \"@base-ui/react/field\";\nimport { Input as BaseInput } from \"@base-ui/react/input\";\nimport React, {\n forwardRef,\n type InputHTMLAttributes,\n type PointerEvent,\n type ReactNode,\n} from \"react\";\nimport { cn } from \"@/libs/utils\";\nimport {\n density,\n fieldLayout,\n fieldMessage,\n focusRing,\n focusRingWithin,\n material,\n rim,\n shape,\n state,\n text,\n} from \"./ui.common\";\nimport { motionFeedback } from \"./ui.motion\";\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"prefix\"> {\n label?: ReactNode;\n description?: ReactNode;\n error?: boolean;\n errorMessage?: ReactNode;\n inputClassName?: string;\n /** Base's value-change callback, event details included. */\n onValueChange?: BaseInput.Props[\"onValueChange\"];\n /**\n * Text or a mark at the start of the field, such as `€` or `https://`. It is presentation only and\n * hidden from assistive technology, so the label must carry whatever the reader needs from it.\n */\n prefix?: ReactNode;\n /** Text or a mark at the end of the field, such as `tickets` or `.discord.gg`. Presentation only. */\n suffix?: ReactNode;\n}\n\n/* An affix is supporting copy on the value's own line: quieter than the value, never smaller. */\nconst affixClassName = cn(\"shrink-0 select-none whitespace-nowrap\", text.medium);\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n ({\n label,\n description,\n className,\n inputClassName,\n required,\n error = false,\n errorMessage,\n id,\n name,\n disabled,\n onValueChange,\n prefix,\n suffix,\n ...props\n }, ref) => {\n /* A field marked invalid by its own prop and one that learns it from Base — a failed constraint,\n or an error a `Form` reports for its name — are the same field, so both take the same ladder. */\n const isInvalid = (valid: boolean | null) => error || valid === false;\n\n /* With an affix, the input is the borderless part of a composite field: the box, its rim and its\n focus ring belong to the row that holds the affixes, exactly as a Combobox's do. A press on an\n affix or on the space around it places the caret in the input, the way a press on a label does. */\n const focusInput = (event: PointerEvent<HTMLDivElement>) => {\n const input = event.currentTarget.querySelector(\"input\");\n if (!input || event.target === input || input.disabled) return;\n event.preventDefault();\n input.focus();\n };\n\n return (\n <Field.Root\n className={cn(fieldLayout, className)}\n name={name}\n disabled={disabled}\n invalid={error}\n >\n {label && (\n <Field.Label className={cn(\"mb-2 text-sm font-medium\", text.high)}>\n {label}\n {required && <span className={cn(\"ms-1 text-sherick-danger\")} aria-hidden=\"true\">*</span>}\n </Field.Label>\n )}\n {prefix != null || suffix != null ? (\n <BaseInput\n {...props}\n ref={ref}\n id={id}\n name={name}\n required={required}\n disabled={disabled}\n onValueChange={onValueChange}\n className={(inputState) =>\n cn(\n \"min-w-0 flex-1 bg-transparent py-3 outline-none\",\n isInvalid(inputState.valid) ? \"placeholder:text-sherick-danger\" : \"placeholder:text-sherick-ink-muted\",\n disabled ? state.disabledDescendant : state.text,\n inputClassName\n )\n }\n render={(inputProps, inputState) => (\n <div\n data-invalid={isInvalid(inputState.valid) ? \"\" : undefined}\n onPointerDown={focusInput}\n className={cn(\n \"group/field flex min-w-0 w-full items-center gap-2 px-5\",\n density.normal,\n shape.control,\n motionFeedback,\n focusRingWithin,\n material.control,\n rim.field,\n state.field.invalid,\n !disabled && state.field.hover,\n !disabled && state.field.focusWithin,\n !disabled && state.field.invalidHover,\n !disabled && state.field.invalidFocusWithin,\n disabled ? state.disabled : state.text\n )}\n >\n {prefix != null && <span aria-hidden=\"true\" className={cn(affixClassName)}>{prefix}</span>}\n <input {...inputProps} />\n {suffix != null && <span aria-hidden=\"true\" className={cn(affixClassName)}>{suffix}</span>}\n </div>\n )}\n />\n ) : (\n <BaseInput\n {...props}\n render={<input ref={ref} />}\n id={id}\n name={name}\n required={required}\n disabled={disabled}\n onValueChange={onValueChange}\n className={(inputState) => {\n const invalid = isInvalid(inputState.valid);\n return cn(\n density.normal,\n \"min-w-0 w-full px-5 py-3\",\n shape.control,\n motionFeedback,\n focusRing,\n invalid ? material.controlError : material.control,\n rim.field,\n !disabled && (invalid ? state.field.errorHover : state.field.hover),\n !disabled && (invalid ? state.field.errorFocus : state.field.focus),\n disabled ? state.disabled : state.text,\n inputClassName\n );\n }}\n />\n )}\n {description && (\n <Field.Description className={cn(fieldMessage.description)}>\n {description}\n </Field.Description>\n )}\n {/* Mounted whether or not a message was passed, as `Field`'s is: without `match` this part\n renders what Base reports — a failed constraint, or the error a `Form` returns for this\n field's name — and `match` pins the caller's own message in its place. A field marked\n invalid with no message of its own shows only its rim, as it always has. */}\n {!(error && !errorMessage) && (\n <Field.Error\n match={error ? true : undefined}\n className={cn(fieldMessage.error)}\n {...(error ? { children: errorMessage } : {})}\n />\n )}\n </Field.Root>\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nexport default Input;\n"],"names":["cn","text","forwardRef","_jsxs","Field","fieldLayout","_jsx","BaseInput","state","density","shape","motionFeedback","focusRingWithin","material","rim","focusRing","fieldMessage"],"mappings":"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"}
1
+ {"version":3,"file":"Input.cjs","sources":["../../../src/components/Input.tsx"],"sourcesContent":["\"use client\";\n\nimport { Field } from \"@base-ui/react/field\";\nimport { Input as BaseInput } from \"@base-ui/react/input\";\nimport React, {\n forwardRef,\n type InputHTMLAttributes,\n type PointerEvent,\n type ReactNode,\n} from \"react\";\nimport { cn } from \"@/libs/utils\";\nimport {\n fieldLabel,\n fieldLayout,\n fieldMessage,\n focusRing,\n focusRingWithin,\n material,\n rim,\n shape,\n state,\n text,\n} from \"./ui.common\";\nimport { motionFeedback } from \"./ui.motion\";\nimport FieldLabel from \"./FieldLabel\";\nimport { fieldDensity, type FieldSize } from \"./Field\";\n\nexport interface InputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, \"prefix\" | \"size\"> {\n label?: ReactNode;\n description?: ReactNode;\n /**\n * Marks the field invalid. A message is shown beneath it, so a `ReactNode` here is both the flag and\n * its message. `true` marks the field without one, and `errorMessage` supplies the message.\n */\n error?: ReactNode;\n /** The message for `error={true}`. A message passed as `error` takes its place. */\n errorMessage?: ReactNode;\n inputClassName?: string;\n /** Base's value-change callback, event details included. */\n onValueChange?: BaseInput.Props[\"onValueChange\"];\n /**\n * Text or a mark at the start of the field, such as `€` or `https://`. It is presentation only and\n * hidden from assistive technology, so the label must carry whatever the reader needs from it.\n */\n prefix?: ReactNode;\n /** Text or a mark at the end of the field, such as `tickets` or `.discord.gg`. Presentation only. */\n suffix?: ReactNode;\n /**\n * The field's density: `sm` for a dense filter row, `md` (the default) or `lg`. A number is the\n * native `size` attribute of the input, as it always was.\n */\n size?: FieldSize | number;\n}\n\n/* An affix is supporting copy on the value's own line: quieter than the value, never smaller. */\nconst affixClassName = cn(\"shrink-0 select-none whitespace-nowrap\", text.medium);\n\nconst Input = forwardRef<HTMLInputElement, InputProps>(\n ({\n label,\n description,\n className,\n inputClassName,\n required,\n error,\n errorMessage,\n id,\n name,\n disabled,\n onValueChange,\n prefix,\n suffix,\n size,\n ...props\n }, ref) => {\n /* An `error` that is a message, or a flag with the message beside it: both mark the field invalid. */\n const invalidByProp = Boolean(error);\n const errorText = typeof error === \"boolean\" || error == null ? errorMessage : error;\n const fieldSize: FieldSize = typeof size === \"string\" ? size : \"md\";\n const nativeSize = typeof size === \"number\" ? size : undefined;\n /* A compact field keeps its 40px height with a 20px line, so its vertical padding steps down with it. */\n const padding = fieldSize === \"sm\" ? \"py-2\" : \"py-3\";\n\n /* A field marked invalid by its own prop and one that learns it from Base — a failed constraint,\n or an error a `Form` reports for its name — are the same field, so both take the same ladder. */\n const isInvalid = (valid: boolean | null) => invalidByProp || valid === false;\n\n /* With an affix, the input is the borderless part of a composite field: the box, its rim and its\n focus ring belong to the row that holds the affixes, exactly as a Combobox's do. A press on an\n affix or on the space around it places the caret in the input, the way a press on a label does. */\n const focusInput = (event: PointerEvent<HTMLDivElement>) => {\n const input = event.currentTarget.querySelector(\"input\");\n if (!input || event.target === input || input.disabled) return;\n event.preventDefault();\n input.focus();\n };\n\n return (\n <Field.Root\n className={cn(fieldLayout, className)}\n name={name}\n disabled={disabled}\n invalid={invalidByProp}\n >\n {label && (\n <Field.Label className={cn(fieldLabel)}>\n <FieldLabel required={required}>{label}</FieldLabel>\n </Field.Label>\n )}\n {prefix != null || suffix != null ? (\n <BaseInput\n {...props}\n ref={ref}\n id={id}\n name={name}\n required={required}\n disabled={disabled}\n size={nativeSize}\n onValueChange={onValueChange}\n className={(inputState) =>\n cn(\n `min-w-0 flex-1 bg-transparent ${padding} [outline-style:none]`,\n isInvalid(inputState.valid) ? \"placeholder:text-sherick-danger\" : \"placeholder:text-sherick-ink-muted\",\n disabled ? state.disabledDescendant : state.text,\n inputClassName\n )\n }\n render={(inputProps, inputState) => (\n <div\n data-invalid={isInvalid(inputState.valid) ? \"\" : undefined}\n onPointerDown={focusInput}\n className={cn(\n \"group/field flex min-w-0 w-full items-center gap-2 px-5\",\n fieldDensity[fieldSize],\n shape.control,\n motionFeedback,\n focusRingWithin,\n material.control,\n rim.field,\n state.field.invalid,\n !disabled && state.field.hover,\n !disabled && state.field.focusWithin,\n !disabled && state.field.invalidHover,\n !disabled && state.field.invalidFocusWithin,\n disabled ? state.disabled : state.text\n )}\n >\n {prefix != null && <span aria-hidden=\"true\" className={cn(affixClassName)}>{prefix}</span>}\n <input {...inputProps} />\n {suffix != null && <span aria-hidden=\"true\" className={cn(affixClassName)}>{suffix}</span>}\n </div>\n )}\n />\n ) : (\n <BaseInput\n {...props}\n render={<input ref={ref} />}\n id={id}\n name={name}\n required={required}\n disabled={disabled}\n size={nativeSize}\n onValueChange={onValueChange}\n className={(inputState) => {\n const invalid = isInvalid(inputState.valid);\n return cn(\n fieldDensity[fieldSize],\n `min-w-0 w-full px-5 ${padding}`,\n shape.control,\n motionFeedback,\n focusRing,\n invalid ? material.controlError : material.control,\n rim.field,\n !disabled && (invalid ? state.field.errorHover : state.field.hover),\n !disabled && (invalid ? state.field.errorFocus : state.field.focus),\n disabled ? state.disabled : state.text,\n inputClassName\n );\n }}\n />\n )}\n {description && (\n <Field.Description className={cn(fieldMessage.description)}>\n {description}\n </Field.Description>\n )}\n {/* Mounted whether or not a message was passed, as `Field`'s is: without `match` this part\n renders what Base reports — a failed constraint, or the error a `Form` returns for this\n field's name — and `match` pins the caller's own message in its place. A field marked\n invalid with no message of its own shows only its danger tray, so give an invalid\n field a message that says how to recover. */}\n {!(invalidByProp && !errorText) && (\n <Field.Error\n match={invalidByProp ? true : undefined}\n className={cn(fieldMessage.error)}\n {...(invalidByProp ? { children: errorText } : {})}\n />\n )}\n </Field.Root>\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nexport default Input;\n"],"names":["cn","text","forwardRef","_jsxs","Field","fieldLayout","_jsx","fieldLabel","FieldLabel","BaseInput","state","fieldDensity","shape","motionFeedback","focusRingWithin","material","rim","focusRing","fieldMessage"],"mappings":"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"}
@@ -10,8 +10,10 @@ var Divider = require('./Divider.cjs');
10
10
  var ui_common = require('./ui.common.cjs');
11
11
  var ui_motion = require('./ui.motion.cjs');
12
12
 
13
- const MenuContent = ({ children, className, side = "bottom", align = "start", sideOffset = 8, alignOffset, }) => {
14
- return (jsxRuntime.jsx(menu.Menu.Portal, { children: jsxRuntime.jsx(menu.Menu.Positioner, { side: side, align: align, sideOffset: sideOffset, alignOffset: alignOffset, className: utils.cn(ui_common.stacking.float), children: jsxRuntime.jsx(menu.Menu.Popup, { className: utils.cn(ui_common.list.sheet, "w-max min-w-44 max-w-[min(20rem,var(--available-width))] space-y-1 p-1.5", ui_common.overlay.menu, ui_motion.motionPresenceAnchored, className), children: children }) }) }));
13
+ /* The popup takes the rest props, so an `id` or an `aria-label` names the menu for a reader who
14
+ cannot see a heading. */
15
+ const MenuContent = ({ children, className, side = "bottom", align = "start", sideOffset = 8, alignOffset, ...props }) => {
16
+ return (jsxRuntime.jsx(menu.Menu.Portal, { children: jsxRuntime.jsx(menu.Menu.Positioner, { side: side, align: align, sideOffset: sideOffset, alignOffset: alignOffset, className: utils.cn(ui_common.stacking.float), children: jsxRuntime.jsx(menu.Menu.Popup, { ...props, className: utils.cn(ui_common.list.sheet, "w-max min-w-44 max-w-[min(20rem,var(--available-width))] space-y-1 p-1", ui_common.overlay.menu, ui_motion.motionPresenceAnchored, className), children: children }) }) }));
15
17
  };
16
18
  /* The trigger is Base's, with only the capabilities this package publishes declared above it. The
17
19
  surface has to open from the element the caller renders, so this cannot be a Sherick `Button`:
@@ -19,9 +21,19 @@ const MenuContent = ({ children, className, side = "bottom", align = "start", si
19
21
  const MenuTrigger = ({ ...props }) => jsxRuntime.jsx(menu.Menu.Trigger, { ...props });
20
22
  /* A command row: `list.command` owns its shape, motion, tone and interactive states. A
21
23
  destructive command adds only the danger tone to its own label — the row's highlight is then
22
- a restrained tint of that tone, and the sheet around it stays neutral. */
23
- const MenuItem = ({ variant, className, children, ...props }) => (jsxRuntime.jsx(menu.Menu.Item, { ...props, className: utils.cn(ui_common.list.command, variant === "danger" && ui_common.tone.text.danger, className), children: jsxRuntime.jsx("span", { className: utils.cn("min-w-0 flex-1 truncate"), children: children }) }));
24
+ a restrained tint of that tone, and the sheet around it stays neutral. The icon and the shortcut
25
+ take the same anatomy as a palette command, so a menu and a palette read the same. */
26
+ const MenuItem = ({ variant, className, children, icon, shortcut, render, ...props }) => (jsxRuntime.jsxs(menu.Menu.Item, { ...props, render: render, className: utils.cn(ui_common.list.command, variant === "danger" && ui_common.tone.text.danger, className), children: [icon !== undefined ? (
27
+ /* A danger row's mark takes the row's own tone, so the mark and the label say the same thing. */
28
+ jsxRuntime.jsx("span", { "aria-hidden": "true", className: utils.cn(ui_common.list.commandIcon, variant !== "danger" && ui_common.text.medium), children: icon })) : null, jsxRuntime.jsx("span", { className: utils.cn("min-w-0 flex-1 truncate"), children: children }), shortcut !== undefined ? (jsxRuntime.jsx("span", { className: utils.cn("ms-3 shrink-0 font-sherick-mono", ui_common.type.caption, ui_common.text.medium), children: shortcut })) : null] }));
24
29
  MenuItem.displayName = "MenuItem";
30
+ /* A group is the menu's own structure: its rows sit together under one label, and the label is the
31
+ group's name for assistive technology. */
32
+ const MenuGroup = ({ className, ...props }) => (jsxRuntime.jsx(menu.Menu.Group, { ...props, className: utils.cn("space-y-1", className) }));
33
+ MenuGroup.displayName = "MenuGroup";
34
+ /* The label is the command-list heading recipe, so a group's heading in a menu and in a palette match. */
35
+ const MenuLabel = ({ className, ...props }) => (jsxRuntime.jsx(menu.Menu.GroupLabel, { ...props, className: utils.cn(ui_common.list.groupLabel, className) }));
36
+ MenuLabel.displayName = "MenuLabel";
25
37
  /* Base's menu separator *is* the shared Base separator, which is the component `Divider`
26
38
  renders: the menu uses the public divider rather than re-deriving a line. The margin is the
27
39
  menu's own spacing between parts. */
@@ -33,6 +45,8 @@ Menu.Trigger = MenuTrigger;
33
45
  Menu.Content = MenuContent;
34
46
  Menu.Item = MenuItem;
35
47
  Menu.Separator = MenuSeparator;
48
+ Menu.Group = MenuGroup;
49
+ Menu.Label = MenuLabel;
36
50
 
37
51
  exports.default = Menu;
38
52
  //# sourceMappingURL=Menu.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.cjs","sources":["../../../src/components/Menu.tsx"],"sourcesContent":["\"use client\";\n\nimport { Menu as BaseMenu } from \"@base-ui/react/menu\";\nimport React, { type MouseEventHandler, type ReactElement, type ReactNode } from \"react\";\nimport { cn } from \"@/libs/utils\";\nimport Divider from \"./Divider\";\nimport { list, overlay, stacking, tone } from \"./ui.common\";\nimport { motionPresenceAnchored } from \"./ui.motion\";\nimport type { OverlayAlign, OverlaySide, Variant } from \"./ui.types\";\n\nexport interface MenuProps {\n children: ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n /** Base's own open-change callback, event details included. */\n onOpenChange?: BaseMenu.Root.Props[\"onOpenChange\"];\n}\n\nexport interface MenuTriggerProps {\n /**\n * The element the trigger's own props are handed to — usually a Sherick `Button`. The surface\n * opens from whatever this renders, so the trigger looks like the control it is.\n */\n render?: ReactElement;\n children?: ReactNode;\n /** Adds to the rendered element. The trigger writes no visual rules of its own. */\n className?: string;\n}\n\nexport interface MenuContentProps {\n children: ReactNode;\n /** Adds to the popup's own shell. The sheet's material, shape and elevation are the recipe's. */\n className?: string;\n /** The edge the sheet is anchored to. Its entrance grows from whichever edge it resolves to. */\n side?: OverlaySide;\n align?: OverlayAlign;\n sideOffset?: number;\n alignOffset?: number;\n}\n\nexport interface MenuItemProps {\n children: ReactNode;\n /** Adds to the row's own shell. */\n className?: string;\n /**\n * The action's semantic role. `danger` marks the action itself — the row's label and its\n * highlight take the danger tone, and the popup around it stays neutral.\n */\n variant?: Variant;\n /**\n * An action that cannot be performed. It stays in the list and stays reachable by keyboard — a\n * disabled command is still one a reader has to be able to find and be told about — but it\n * cannot be activated, and it takes no hover or press state.\n */\n disabled?: boolean;\n /** What choosing the action does. The menu closes afterwards; that is Base's contract. */\n onClick?: MouseEventHandler<HTMLDivElement>;\n}\n\nexport interface MenuSeparatorProps {\n className?: string;\n}\n\n/**\n * A surface of actions. Each item acts and the menu closes; nothing here holds a value, so a\n * value-selection surface is `Select` or `Combobox` rather than a menu. Base UI owns keyboard\n * navigation, typeahead, roving focus, Escape, outside dismissal and focus restoration; Sherick\n * UI owns the sheet, the row treatment and the tone an action reads in.\n *\n * This is the whole of the surface Sherick UI publishes to a consumer: the parts below accept the\n * capabilities this package supports, not the primitive's complete prop set. Composing a Base\n * primitive is how these components are built; it is not what they promise.\n */\ntype MenuComponent = ((props: MenuProps) => React.JSX.Element) & {\n Trigger: typeof MenuTrigger;\n Content: typeof MenuContent;\n Item: typeof MenuItem;\n Separator: typeof MenuSeparator;\n};\n\nconst MenuContent = ({\n children,\n className,\n side = \"bottom\",\n align = \"start\",\n sideOffset = 8,\n alignOffset,\n}: MenuContentProps) => {\n return (\n <BaseMenu.Portal>\n {/* A menu is modal, which is Base's own default and the reason its positioner already lays a\n plane over everything outside the sheet: an outside press dismisses the menu through\n that plane without reaching the page beneath, so Sherick renders no second backdrop\n and writes no dismissal logic of its own. */}\n <BaseMenu.Positioner\n side={side}\n align={align}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n className={cn(stacking.float)}\n >\n <BaseMenu.Popup\n className={cn(\n list.sheet,\n \"w-max min-w-44 max-w-[min(20rem,var(--available-width))] space-y-1 p-1.5\",\n overlay.menu,\n motionPresenceAnchored,\n className\n )}\n >\n {children}\n </BaseMenu.Popup>\n </BaseMenu.Positioner>\n </BaseMenu.Portal>\n );\n};\n\n/* The trigger is Base's, with only the capabilities this package publishes declared above it. The\n surface has to open from the element the caller renders, so this cannot be a Sherick `Button`:\n it hands Base's trigger props to whatever the caller composes. */\nconst MenuTrigger = ({ ...props }: MenuTriggerProps) => <BaseMenu.Trigger {...props} />;\n\n/* A command row: `list.command` owns its shape, motion, tone and interactive states. A\n destructive command adds only the danger tone to its own label — the row's highlight is then\n a restrained tint of that tone, and the sheet around it stays neutral. */\n\nconst MenuItem = ({ variant, className, children, ...props }: MenuItemProps) => (\n <BaseMenu.Item\n {...props}\n className={cn(list.command, variant === \"danger\" && tone.text.danger, className)}\n >\n <span className={cn(\"min-w-0 flex-1 truncate\")}>{children}</span>\n </BaseMenu.Item>\n);\n\nMenuItem.displayName = \"MenuItem\";\n\n/* Base's menu separator *is* the shared Base separator, which is the component `Divider`\n renders: the menu uses the public divider rather than re-deriving a line. The margin is the\n menu's own spacing between parts. */\nconst MenuSeparator = ({ className }: MenuSeparatorProps) => (\n <Divider className={cn(\"mx-3 my-1 w-auto\", className)} />\n);\n\nconst Menu = (({ children, open, defaultOpen, onOpenChange }: MenuProps) => {\n return (\n <BaseMenu.Root open={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n {children}\n </BaseMenu.Root>\n );\n}) as MenuComponent;\n\nMenu.Trigger = MenuTrigger;\nMenu.Content = MenuContent;\nMenu.Item = MenuItem;\nMenu.Separator = MenuSeparator;\n\nexport default Menu;\n"],"names":["_jsx","BaseMenu","cn","stacking","list","overlay","motionPresenceAnchored","tone","Divider"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.cjs","sources":["../../../src/components/Menu.tsx"],"sourcesContent":["\"use client\";\n\nimport { Menu as BaseMenu } from \"@base-ui/react/menu\";\nimport React, { type MouseEventHandler, type ReactElement, type ReactNode } from \"react\";\nimport { cn } from \"@/libs/utils\";\nimport Divider from \"./Divider\";\nimport { list, overlay, stacking, text, tone, type } from \"./ui.common\";\nimport { motionPresenceAnchored } from \"./ui.motion\";\nimport type { OverlayAlign, OverlaySide, PartProps, Variant } from \"./ui.types\";\n\nexport interface MenuProps {\n children: ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n /** Base's own open-change callback, event details included. */\n onOpenChange?: BaseMenu.Root.Props[\"onOpenChange\"];\n}\n\nexport interface MenuTriggerProps {\n /**\n * The element the trigger's own props are handed to — usually a Sherick `Button`. The surface\n * opens from whatever this renders, so the trigger looks like the control it is.\n */\n render?: ReactElement;\n children?: ReactNode;\n /** Adds to the rendered element. The trigger writes no visual rules of its own. */\n className?: string;\n}\n\nexport interface MenuContentProps extends Omit<PartProps<\"div\">, \"children\" | \"className\"> {\n children: ReactNode;\n /** Adds to the popup's own shell. The sheet's material, shape and elevation are the recipe's. */\n className?: string;\n /** The edge the sheet is anchored to. Its entrance grows from whichever edge it resolves to. */\n side?: OverlaySide;\n align?: OverlayAlign;\n sideOffset?: number;\n alignOffset?: number;\n}\n\nexport interface MenuItemProps {\n children: ReactNode;\n /** Adds to the row's own shell. */\n className?: string;\n /**\n * The action's semantic role. `danger` marks the action itself — the row's label and its\n * highlight take the danger tone, and the popup around it stays neutral.\n */\n variant?: Variant;\n /**\n * An action that cannot be performed. It stays in the list and stays reachable by keyboard — a\n * disabled command is still one a reader has to be able to find and be told about — but it\n * cannot be activated, and it takes no hover or press state.\n */\n disabled?: boolean;\n /** What choosing the action does. The menu closes afterwards; that is Base's contract. */\n onClick?: MouseEventHandler<HTMLDivElement>;\n /** The row's leading mark. It takes the command icon's slot, beside the label. */\n icon?: ReactNode;\n /** The gesture that runs this action elsewhere. It is a hint, and the menu registers no shortcut. */\n shortcut?: ReactNode;\n /**\n * Renders the row as another element, such as a link. Base hands the row's own attributes and its\n * handlers to that element, so the row keeps its menu behaviour.\n */\n render?: ReactElement;\n}\n\nexport interface MenuSeparatorProps {\n className?: string;\n}\n\n/** A group of rows, announced under its label. */\nexport type MenuGroupProps = PartProps<\"div\">;\n\n/** The heading of a group. Base names the group from it, so it is read as the group begins. */\nexport type MenuLabelProps = PartProps<\"div\">;\n\n/**\n * A surface of actions. Each item acts and the menu closes; nothing here holds a value, so a\n * value-selection surface is `Select` or `Combobox` rather than a menu. Base UI owns keyboard\n * navigation, typeahead, roving focus, Escape, outside dismissal and focus restoration; Sherick\n * UI owns the sheet, the row treatment and the tone an action reads in.\n *\n * This is the whole of the surface Sherick UI publishes to a consumer: the parts below accept the\n * capabilities this package supports, not the primitive's complete prop set. Composing a Base\n * primitive is how these components are built; it is not what they promise.\n */\ntype MenuComponent = ((props: MenuProps) => React.JSX.Element) & {\n Trigger: typeof MenuTrigger;\n Content: typeof MenuContent;\n Item: typeof MenuItem;\n Separator: typeof MenuSeparator;\n Group: typeof MenuGroup;\n Label: typeof MenuLabel;\n};\n\n/* The popup takes the rest props, so an `id` or an `aria-label` names the menu for a reader who\n cannot see a heading. */\nconst MenuContent = ({\n children,\n className,\n side = \"bottom\",\n align = \"start\",\n sideOffset = 8,\n alignOffset,\n ...props\n}: MenuContentProps) => {\n return (\n <BaseMenu.Portal>\n {/* A menu is modal, which is Base's own default and the reason its positioner already lays a\n plane over everything outside the sheet: an outside press dismisses the menu through\n that plane without reaching the page beneath, so Sherick renders no second backdrop\n and writes no dismissal logic of its own. */}\n <BaseMenu.Positioner\n side={side}\n align={align}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n className={cn(stacking.float)}\n >\n <BaseMenu.Popup\n {...props}\n className={cn(\n list.sheet,\n \"w-max min-w-44 max-w-[min(20rem,var(--available-width))] space-y-1 p-1\",\n overlay.menu,\n motionPresenceAnchored,\n className\n )}\n >\n {children}\n </BaseMenu.Popup>\n </BaseMenu.Positioner>\n </BaseMenu.Portal>\n );\n};\n\n/* The trigger is Base's, with only the capabilities this package publishes declared above it. The\n surface has to open from the element the caller renders, so this cannot be a Sherick `Button`:\n it hands Base's trigger props to whatever the caller composes. */\nconst MenuTrigger = ({ ...props }: MenuTriggerProps) => <BaseMenu.Trigger {...props} />;\n\n/* A command row: `list.command` owns its shape, motion, tone and interactive states. A\n destructive command adds only the danger tone to its own label — the row's highlight is then\n a restrained tint of that tone, and the sheet around it stays neutral. The icon and the shortcut\n take the same anatomy as a palette command, so a menu and a palette read the same. */\n\nconst MenuItem = ({ variant, className, children, icon, shortcut, render, ...props }: MenuItemProps) => (\n <BaseMenu.Item\n {...props}\n render={render}\n className={cn(list.command, variant === \"danger\" && tone.text.danger, className)}\n >\n {icon !== undefined ? (\n /* A danger row's mark takes the row's own tone, so the mark and the label say the same thing. */\n <span aria-hidden=\"true\" className={cn(list.commandIcon, variant !== \"danger\" && text.medium)}>\n {icon}\n </span>\n ) : null}\n <span className={cn(\"min-w-0 flex-1 truncate\")}>{children}</span>\n {shortcut !== undefined ? (\n <span className={cn(\"ms-3 shrink-0 font-sherick-mono\", type.caption, text.medium)}>{shortcut}</span>\n ) : null}\n </BaseMenu.Item>\n);\n\nMenuItem.displayName = \"MenuItem\";\n\n/* A group is the menu's own structure: its rows sit together under one label, and the label is the\n group's name for assistive technology. */\nconst MenuGroup = ({ className, ...props }: MenuGroupProps) => (\n <BaseMenu.Group {...props} className={cn(\"space-y-1\", className)} />\n);\n\nMenuGroup.displayName = \"MenuGroup\";\n\n/* The label is the command-list heading recipe, so a group's heading in a menu and in a palette match. */\nconst MenuLabel = ({ className, ...props }: MenuLabelProps) => (\n <BaseMenu.GroupLabel {...props} className={cn(list.groupLabel, className)} />\n);\n\nMenuLabel.displayName = \"MenuLabel\";\n\n/* Base's menu separator *is* the shared Base separator, which is the component `Divider`\n renders: the menu uses the public divider rather than re-deriving a line. The margin is the\n menu's own spacing between parts. */\nconst MenuSeparator = ({ className }: MenuSeparatorProps) => (\n <Divider className={cn(\"mx-3 my-1 w-auto\", className)} />\n);\n\nconst Menu = (({ children, open, defaultOpen, onOpenChange }: MenuProps) => {\n return (\n <BaseMenu.Root open={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n {children}\n </BaseMenu.Root>\n );\n}) as MenuComponent;\n\nMenu.Trigger = MenuTrigger;\nMenu.Content = MenuContent;\nMenu.Item = MenuItem;\nMenu.Separator = MenuSeparator;\nMenu.Group = MenuGroup;\nMenu.Label = MenuLabel;\n\nexport default Menu;\n"],"names":["_jsx","BaseMenu","cn","stacking","list","overlay","motionPresenceAnchored","_jsxs","tone","text","type","Divider"],"mappings":"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"}
@@ -18,7 +18,13 @@ var ui_common = require('./ui.common.cjs');
18
18
  density step they hold, so the group adds only the little that makes one group read as one
19
19
  group. Its heading level is the host document's business, so it is a prop rather than a fixed
20
20
  level, exactly as an accordion's heading is. */
21
- const NavGroup = ({ title, items, activeHref, headingLevel = 3, className }) => (jsxRuntime.jsxs("div", { className: utils.cn("flex min-w-0 flex-col gap-0.5 py-1", className), children: [React.createElement(`h${headingLevel}`, { className: utils.cn("px-3 pb-1 text-sm font-medium", ui_common.text.high) }, title), items.map((item) => (jsxRuntime.jsx(NavItem.default, { href: item.href, active: item.href === activeHref, children: item.label }, item.href)))] }));
21
+ const NavGroup = ({ title, items, activeHref, headingLevel = 3, renderLink, className }) => (jsxRuntime.jsxs("div", { className: utils.cn("flex min-w-0 flex-col gap-0.5 py-1", className), children: [React.createElement(`h${headingLevel}`, { className: utils.cn("px-3 pb-1 font-medium", ui_common.type.caption, ui_common.text.medium) }, title), items.map((item) => {
22
+ const active = item.href === activeHref;
23
+ if (item.render === undefined && renderLink) {
24
+ return (jsxRuntime.jsx(React.Fragment, { children: renderLink(item, { ...NavItem.navItemAttributes(active), href: item.href, children: item.label }) }, item.href));
25
+ }
26
+ return (jsxRuntime.jsx(NavItem.default, { href: item.href, active: active, render: item.render, children: item.label }, item.href));
27
+ })] }));
22
28
 
23
29
  exports.default = NavGroup;
24
30
  //# sourceMappingURL=NavGroup.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NavGroup.cjs","sources":["../../../src/components/NavGroup.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn } from \"@/libs/utils\";\nimport NavItem from \"./NavItem\";\nimport { text } from \"./ui.common\";\n\nexport interface NavGroupItem {\n label: string;\n href: string;\n}\n\n/** The heading level a group labels itself with. A navigation group owns a real heading, because\n * that is what makes a column of destinations scannable as groups; which level it is depends on\n * where the navigation sits in the host document, which this component cannot know. */\nexport type NavGroupHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface NavGroupProps {\n title: string;\n items: NavGroupItem[];\n activeHref?: string;\n /** The heading level the group labels itself with. Choose it from the document it is placed\n * in: a group under a page title is a level 2, one in a sidebar section is whatever its\n * neighbours are. The default matches the package's other grouped surfaces. */\n headingLevel?: NavGroupHeadingLevel;\n className?: string;\n}\n\n/* A titled group of destinations. The group is **structure inside the surface it sits on**, not a\n surface of its own: it brings no fill, no depth and no rim, so a navigation column reads as one\n region rather than as a card holding cards.\n\n The title is a section label, not a badge: it takes the same emphasis step a value takes and\n leaves the resting rows a step below it, so the hierarchy comes from the ladder instead of from\n small muted capitals. Its rhythm is deliberately tight — the rows are already separated by the\n density step they hold, so the group adds only the little that makes one group read as one\n group. Its heading level is the host document's business, so it is a prop rather than a fixed\n level, exactly as an accordion's heading is. */\nconst NavGroup = ({ title, items, activeHref, headingLevel = 3, className }: NavGroupProps) => (\n <div className={cn(\"flex min-w-0 flex-col gap-0.5 py-1\", className)}>\n {/* The heading is the group's own; the level follows the document it was placed in rather than\n a level this component assumed. Creating the element directly is the same approach an\n accordion heading takes, so both read the same way. */}\n {React.createElement(`h${headingLevel}`, { className: cn(\"px-3 pb-1 text-sm font-medium\", text.high) }, title)}\n {items.map((item) => (\n <NavItem key={item.href} href={item.href} active={item.href === activeHref}>\n {item.label}\n </NavItem>\n ))}\n </div>\n);\n\nexport default NavGroup;\n"],"names":["_jsxs","cn","text","_jsx","NavItem"],"mappings":";;;;;;;;;;AA0BA;;;;;;;;;AASkD;AAClD,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,GAAG,CAAC,EAAE,SAAS,EAAiB,MACxFA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,QAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,CAIhE,KAAK,CAAC,aAAa,CAAC,IAAI,YAAY,CAAA,CAAE,EAAE,EAAE,SAAS,EAAEA,QAAE,CAAC,+BAA+B,EAAEC,cAAI,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,EAC7G,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdC,eAACC,eAAO,EAAA,EAAiB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,KAAK,UAAU,EAAA,QAAA,EACvE,IAAI,CAAC,KAAK,EAAA,EADC,IAAI,CAAC,IAAI,CAEb,CACX,CAAC,CAAA,EAAA,CACE;;"}
1
+ {"version":3,"file":"NavGroup.cjs","sources":["../../../src/components/NavGroup.tsx"],"sourcesContent":["import React, { type AnchorHTMLAttributes, type ReactElement, type ReactNode } from \"react\";\nimport { cn } from \"@/libs/utils\";\nimport NavItem, { navItemAttributes } from \"./NavItem\";\nimport { text, type } from \"./ui.common\";\n\nexport interface NavGroupItem {\n label: string;\n href: string;\n /** The element this destination renders as, such as a router link. It takes precedence over `renderLink`. */\n render?: ReactElement;\n}\n\n/** The heading level a group labels itself with. A navigation group owns a real heading, because\n * that is what makes a column of destinations scannable as groups; which level it is depends on\n * where the navigation sits in the host document, which this component cannot know. */\nexport type NavGroupHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface NavGroupProps {\n title: string;\n items: NavGroupItem[];\n activeHref?: string;\n /** The heading level the group labels itself with. Choose it from the document it is placed\n * in: a group under a page title is a level 2, one in a sidebar section is whatever its\n * neighbours are. The default matches the package's other grouped surfaces. */\n headingLevel?: NavGroupHeadingLevel;\n /**\n * Renders each destination as the caller's own link, such as a router link. It receives the item and the\n * row's attributes — the destination, the current marker, the shared classes and the label — the same way\n * `Breadcrumb` does. An item's own `render` takes precedence over it.\n */\n renderLink?: (item: NavGroupItem, props: AnchorHTMLAttributes<HTMLAnchorElement>) => ReactNode;\n className?: string;\n}\n\n/* A titled group of destinations. The group is **structure inside the surface it sits on**, not a\n surface of its own: it brings no fill, no depth and no rim, so a navigation column reads as one\n region rather than as a card holding cards.\n\n The title is a section label, not a badge: it takes the same emphasis step a value takes and\n leaves the resting rows a step below it, so the hierarchy comes from the ladder instead of from\n small muted capitals. Its rhythm is deliberately tight — the rows are already separated by the\n density step they hold, so the group adds only the little that makes one group read as one\n group. Its heading level is the host document's business, so it is a prop rather than a fixed\n level, exactly as an accordion's heading is. */\nconst NavGroup = ({ title, items, activeHref, headingLevel = 3, renderLink, className }: NavGroupProps) => (\n <div className={cn(\"flex min-w-0 flex-col gap-0.5 py-1\", className)}>\n {/* The heading is the group's own; the level follows the document it was placed in rather than\n a level this component assumed. Creating the element directly is the same approach an\n accordion heading takes, so both read the same way. */}\n {React.createElement(`h${headingLevel}`, { className: cn(\"px-3 pb-1 font-medium\", type.caption, text.medium) }, title)}\n {items.map((item) => {\n const active = item.href === activeHref;\n\n if (item.render === undefined && renderLink) {\n return (\n <React.Fragment key={item.href}>\n {renderLink(item, { ...navItemAttributes(active), href: item.href, children: item.label })}\n </React.Fragment>\n );\n }\n\n return (\n <NavItem key={item.href} href={item.href} active={active} render={item.render}>\n {item.label}\n </NavItem>\n );\n })}\n </div>\n);\n\nexport default NavGroup;\n"],"names":["_jsxs","cn","type","text","_jsx","navItemAttributes","NavItem"],"mappings":";;;;;;;;;;AAkCA;;;;;;;;;AASkD;AAClD,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,GAAG,CAAC,EAAE,UAAU,EAAE,SAAS,EAAiB,MACpGA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEC,QAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,CAIhE,KAAK,CAAC,aAAa,CAAC,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,EAAE,EAAE,SAAS,EAAEA,QAAE,CAAC,uBAAuB,EAAEC,cAAI,CAAC,OAAO,EAAEC,cAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,EACrH,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAClB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU;YAEvC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,UAAU,EAAE;AAC3C,gBAAA,QACEC,cAAA,CAAC,KAAK,CAAC,QAAQ,cACZ,UAAU,CAAC,IAAI,EAAE,EAAE,GAAGC,yBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,IADvE,IAAI,CAAC,IAAI,CAEb;YAErB;AAEA,YAAA,QACED,cAAA,CAACE,eAAO,EAAA,EAAiB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAA,QAAA,EAC1E,IAAI,CAAC,KAAK,EAAA,EADC,IAAI,CAAC,IAAI,CAEb;QAEd,CAAC,CAAC,CAAA,EAAA,CACE;;"}
@@ -3,10 +3,19 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
+ var mergeProps = require('@base-ui/react/merge-props');
7
+ var React = require('react');
6
8
  var utils = require('../libs/utils.cjs');
7
9
  var ui_common = require('./ui.common.cjs');
8
10
  var ui_motion = require('./ui.motion.cjs');
9
11
 
12
+ /* The row's classes and current marker, shared with `NavGroup`'s `renderLink` so a consumer's own link
13
+ reads exactly like a row this component renders. The row takes its container's width and wraps its
14
+ label, so a long destination never clips; only a compact value slot truncates (§19). */
15
+ const navItemAttributes = (active, className) => ({
16
+ "aria-current": active ? "page" : undefined,
17
+ className: utils.cn("flex w-full min-w-0 items-center gap-2 px-3", ui_common.density.compact, ui_common.shape.row, ui_motion.motionFeedback, ui_common.focusRing, active ? ui_common.currentDestination.row : ui_common.state.quietInk, ui_common.stateLayer.quiet, className),
18
+ });
10
19
  /* A destination in a navigation list. It is a **row**, not a control the size of a field: its
11
20
  corner is proportional to its own height, so a compact row never becomes a capsule, and it stays
12
21
  flat — depth never announces which page you are on. Density owns the row's height, so the row
@@ -18,9 +27,25 @@ var ui_motion = require('./ui.motion.cjs');
18
27
  is quieter than the row-selection step a list of choices takes, because a row of destinations is
19
28
  scanned rather than chosen. Colour is never the only carrier: the row also publishes
20
29
  `aria-current`, which is what assistive technology reads. */
21
- const NavItem = ({ children, icon, className, href, active = false, ...props }) => (jsxRuntime.jsxs("a", { href: href, "aria-current": active ? "page" : undefined, className: utils.cn("flex max-w-xs items-center gap-2 overflow-hidden text-ellipsis whitespace-nowrap px-3", ui_common.density.compact, ui_common.shape.row, ui_motion.motionFeedback, ui_common.focusRing, active
22
- ? ui_common.currentDestination
23
- : utils.cn(ui_common.text.medium, "hover:text-sherick-ink"), ui_common.stateLayer.quiet, className), ...props, children: [icon && (jsxRuntime.jsx("span", { className: utils.cn(ui_common.iconSlot.compact), "aria-hidden": "true", children: icon })), jsxRuntime.jsx("span", { className: utils.cn("truncate"), children: children })] }));
30
+ const NavItem = ({ children, icon, className, href, active = false, render, ...props }) => {
31
+ var _a;
32
+ const row = {
33
+ href,
34
+ ...navItemAttributes(active, className),
35
+ children: (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [icon && (jsxRuntime.jsx("span", { className: utils.cn(ui_common.iconSlot.compact), "aria-hidden": "true", children: icon })), jsxRuntime.jsx("span", { className: utils.cn("min-w-0 [overflow-wrap:anywhere]"), children: children })] })),
36
+ ...props,
37
+ };
38
+ if (render === undefined)
39
+ return jsxRuntime.jsx("a", { ...row });
40
+ /* The row's props go onto the caller's element through the same merge Base UI's render prop uses: the
41
+ classes join, the handlers chain, and the element's own props win where they conflict. */
42
+ const element = render;
43
+ return React.cloneElement(element, {
44
+ ...mergeProps.mergeProps(row, element.props),
45
+ children: (_a = element.props.children) !== null && _a !== void 0 ? _a : row.children,
46
+ });
47
+ };
24
48
 
25
49
  exports.default = NavItem;
50
+ exports.navItemAttributes = navItemAttributes;
26
51
  //# sourceMappingURL=NavItem.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NavItem.cjs","sources":["../../../src/components/NavItem.tsx"],"sourcesContent":["import React, { type AnchorHTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"@/libs/utils\";\nimport { currentDestination, density, focusRing, iconSlot, shape, stateLayer, text } from \"./ui.common\";\nimport { motionFeedback } from \"./ui.motion\";\n\nexport interface NavItemProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n children: ReactNode;\n href: string;\n icon?: ReactNode;\n active?: boolean;\n}\n\n/* A destination in a navigation list. It is a **row**, not a control the size of a field: its\n corner is proportional to its own height, so a compact row never becomes a capsule, and it stays\n flat — depth never announces which page you are on. Density owns the row's height, so the row\n holds the densest step the ladder has and its own anatomy supplies only the inline padding.\n\n The current destination is the same row holding the quietest accent tint, with its label back at\n full ink and a touch of weight. That is deliberately quieter than an opaque accent fill, which\n belongs to the one primary *action* in a view rather than to the page you happen to be on, and it\n is quieter than the row-selection step a list of choices takes, because a row of destinations is\n scanned rather than chosen. Colour is never the only carrier: the row also publishes\n `aria-current`, which is what assistive technology reads. */\nconst NavItem = ({ children, icon, className, href, active = false, ...props }: NavItemProps) => (\n <a\n href={href}\n aria-current={active ? \"page\" : undefined}\n className={cn(\n \"flex max-w-xs items-center gap-2 overflow-hidden text-ellipsis whitespace-nowrap px-3\",\n density.compact,\n shape.row,\n motionFeedback,\n focusRing,\n active\n ? currentDestination\n : cn(text.medium, \"hover:text-sherick-ink\"),\n stateLayer.quiet,\n className\n )}\n {...props}\n >\n {icon && (\n <span className={cn(iconSlot.compact)} aria-hidden=\"true\">\n {icon}\n </span>\n )}\n <span className={cn(\"truncate\")}>{children}</span>\n </a>\n);\n\nexport default NavItem;\n"],"names":["_jsxs","cn","density","shape","motionFeedback","focusRing","currentDestination","text","stateLayer","_jsx","iconSlot"],"mappings":";;;;;;;;;AAYA;;;;;;;;;;AAU+D;AAC/D,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,GAAG,KAAK,EAAgB,MAC1FA,eAAA,CAAA,GAAA,EAAA,EACE,IAAI,EAAE,IAAI,EAAA,cAAA,EACI,MAAM,GAAG,MAAM,GAAG,SAAS,EACzC,SAAS,EAAEC,QAAE,CACX,uFAAuF,EACvFC,iBAAO,CAAC,OAAO,EACfC,eAAK,CAAC,GAAG,EACTC,wBAAc,EACdC,mBAAS,EACT;AACE,UAAEC;UACAL,QAAE,CAACM,cAAI,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAC7CC,oBAAU,CAAC,KAAK,EAChB,SAAS,CACV,EAAA,GACG,KAAK,aAER,IAAI,KACHC,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAER,QAAE,CAACS,kBAAQ,CAAC,OAAO,CAAC,iBAAc,MAAM,EAAA,QAAA,EACtD,IAAI,EAAA,CACA,CACR,EACDD,yBAAM,SAAS,EAAER,QAAE,CAAC,UAAU,CAAC,YAAG,QAAQ,EAAA,CAAQ,CAAA,EAAA,CAChD;;"}
1
+ {"version":3,"file":"NavItem.cjs","sources":["../../../src/components/NavItem.tsx"],"sourcesContent":["import { mergeProps } from \"@base-ui/react/merge-props\";\nimport React, { cloneElement, type AnchorHTMLAttributes, type ReactElement, type ReactNode } from \"react\";\nimport { cn } from \"@/libs/utils\";\nimport { currentDestination, density, focusRing, iconSlot, shape, state, stateLayer } from \"./ui.common\";\nimport { motionFeedback } from \"./ui.motion\";\n\nexport interface NavItemProps extends AnchorHTMLAttributes<HTMLAnchorElement> {\n children: ReactNode;\n href: string;\n icon?: ReactNode;\n active?: boolean;\n /**\n * The element the row renders as, such as a router link. The row's classes, its current marker and its\n * own props are merged onto it, so the link is the row and keeps its own navigation.\n */\n render?: ReactElement;\n}\n\n/* The row's classes and current marker, shared with `NavGroup`'s `renderLink` so a consumer's own link\n reads exactly like a row this component renders. The row takes its container's width and wraps its\n label, so a long destination never clips; only a compact value slot truncates (§19). */\nexport const navItemAttributes = (active: boolean, className?: string) => ({\n \"aria-current\": active ? (\"page\" as const) : undefined,\n className: cn(\n \"flex w-full min-w-0 items-center gap-2 px-3\",\n density.compact,\n shape.row,\n motionFeedback,\n focusRing,\n active ? currentDestination.row : state.quietInk,\n stateLayer.quiet,\n className\n ),\n});\n\n/* A destination in a navigation list. It is a **row**, not a control the size of a field: its\n corner is proportional to its own height, so a compact row never becomes a capsule, and it stays\n flat — depth never announces which page you are on. Density owns the row's height, so the row\n holds the densest step the ladder has and its own anatomy supplies only the inline padding.\n\n The current destination is the same row holding the quietest accent tint, with its label back at\n full ink and a touch of weight. That is deliberately quieter than an opaque accent fill, which\n belongs to the one primary *action* in a view rather than to the page you happen to be on, and it\n is quieter than the row-selection step a list of choices takes, because a row of destinations is\n scanned rather than chosen. Colour is never the only carrier: the row also publishes\n `aria-current`, which is what assistive technology reads. */\nconst NavItem = ({ children, icon, className, href, active = false, render, ...props }: NavItemProps) => {\n const row: AnchorHTMLAttributes<HTMLAnchorElement> = {\n href,\n ...navItemAttributes(active, className),\n children: (\n <>\n {icon && (\n <span className={cn(iconSlot.compact)} aria-hidden=\"true\">\n {icon}\n </span>\n )}\n <span className={cn(\"min-w-0 [overflow-wrap:anywhere]\")}>{children}</span>\n </>\n ),\n ...props,\n };\n\n if (render === undefined) return <a {...row} />;\n\n /* The row's props go onto the caller's element through the same merge Base UI's render prop uses: the\n classes join, the handlers chain, and the element's own props win where they conflict. */\n const element = render as ReactElement<AnchorHTMLAttributes<HTMLAnchorElement>>;\n return cloneElement(element, {\n ...mergeProps<\"a\">(row, element.props),\n children: element.props.children ?? row.children,\n });\n};\n\nexport default NavItem;\n"],"names":["cn","density","shape","motionFeedback","focusRing","currentDestination","state","stateLayer","_jsxs","_Fragment","_jsx","iconSlot","cloneElement","mergeProps"],"mappings":";;;;;;;;;;;AAkBA;;AAE0F;AACnF,MAAM,iBAAiB,GAAG,CAAC,MAAe,EAAE,SAAkB,MAAM;IACzE,cAAc,EAAE,MAAM,GAAI,MAAgB,GAAG,SAAS;AACtD,IAAA,SAAS,EAAEA,QAAE,CACX,6CAA6C,EAC7CC,iBAAO,CAAC,OAAO,EACfC,eAAK,CAAC,GAAG,EACTC,wBAAc,EACdC,mBAAS,EACT,MAAM,GAAGC,4BAAkB,CAAC,GAAG,GAAGC,eAAK,CAAC,QAAQ,EAChDC,oBAAU,CAAC,KAAK,EAChB,SAAS,CACV;AACF,CAAA;AAED;;;;;;;;;;AAU+D;AAC/D,MAAM,OAAO,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,EAAgB,KAAI;;AACtG,IAAA,MAAM,GAAG,GAA4C;QACnD,IAAI;AACJ,QAAA,GAAG,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC;AACvC,QAAA,QAAQ,GACNC,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACG,IAAI,KACHC,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEV,QAAE,CAACW,kBAAQ,CAAC,OAAO,CAAC,EAAA,aAAA,EAAc,MAAM,EAAA,QAAA,EACtD,IAAI,EAAA,CACA,CACR,EACDD,yBAAM,SAAS,EAAEV,QAAE,CAAC,kCAAkC,CAAC,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAQ,IACzE,CACJ;AACD,QAAA,GAAG,KAAK;KACT;IAED,IAAI,MAAM,KAAK,SAAS;QAAE,OAAOU,cAAA,CAAA,GAAA,EAAA,EAAA,GAAO,GAAG,EAAA,CAAI;AAE/C;AAC4F;IAC5F,MAAM,OAAO,GAAG,MAA+D;IAC/E,OAAOE,kBAAY,CAAC,OAAO,EAAE;AAC3B,QAAA,GAAGC,qBAAU,CAAM,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC;QACtC,QAAQ,EAAE,CAAA,EAAA,GAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG,CAAC,QAAQ;AACjD,KAAA,CAAC;AACJ;;;"}
@@ -11,6 +11,7 @@ var React = require('react');
11
11
  var utils = require('../libs/utils.cjs');
12
12
  var ui_common = require('./ui.common.cjs');
13
13
  var ui_motion = require('./ui.motion.cjs');
14
+ var Field = require('./Field.cjs');
14
15
 
15
16
  /* Base UI names each stepper itself and keeps it out of the tab order, because the input already
16
17
  steps from the keyboard. The steppers never take a focus ring: they are not reachable by
@@ -27,7 +28,7 @@ const affixClassName = utils.cn("shrink-0 select-none whitespace-nowrap", ui_com
27
28
  * A number typed or stepped. Base UI owns parsing, stepping, clamping, spinbutton semantics and
28
29
  * locale formatting; the ref points at the input, and the hidden form input is `inputRef`.
29
30
  */
30
- const NumberField = React.forwardRef(({ value, defaultValue, onValueChange, onValueCommitted, min, max, step, format, locale, prefix, suffix, disabled, readOnly, required, name, form, inputRef, className, inputClassName, ...inputProps }, ref) => {
31
+ const NumberField = React.forwardRef(({ value, defaultValue, onValueChange, onValueCommitted, min, max, step, format, locale, prefix, suffix, disabled, readOnly, required, name, form, inputRef, size = "md", className, fieldClassName, inputClassName, ...inputProps }, ref) => {
31
32
  const hasAffix = prefix != null || suffix != null;
32
33
  /* The band around a sized value is not part of the input, so a press on a unit or on the space
33
34
  beside it would otherwise land on nothing. It is handed to the input the way a press on a
@@ -40,20 +41,20 @@ const NumberField = React.forwardRef(({ value, defaultValue, onValueChange, onVa
40
41
  valueInput.focus();
41
42
  };
42
43
  return (jsxRuntime.jsx(numberField.NumberField.Root, { value: value, defaultValue: defaultValue, onValueChange: onValueChange, onValueCommitted: onValueCommitted, min: min, max: max, step: step, format: format, locale: locale, disabled: disabled, readOnly: readOnly, required: required, name: name, form: form, inputRef: inputRef, className: utils.cn("min-w-0 w-full", className), children: jsxRuntime.jsxs(numberField.NumberField.Group, { className: ({ disabled: fieldDisabled }) => utils.cn(
43
- // The 44px targets fit the normal 48px field, inside its rim, without inflating its density.
44
- "group/field flex w-full items-center gap-1 px-1.5", ui_common.density.normal, ui_common.shape.control, ui_motion.motionFeedback, ui_common.focusRingWithin, ui_common.material.control, ui_common.rim.field, ui_common.state.field.invalid, !fieldDisabled && ui_common.state.field.hover, !fieldDisabled && ui_common.state.field.focusWithin, !fieldDisabled && ui_common.state.field.invalidHover, !fieldDisabled && ui_common.state.field.invalidFocusWithin, fieldDisabled ? ui_common.state.disabled : ui_common.state.text), children: [jsxRuntime.jsx(numberField.NumberField.Decrement, { className: utils.cn(stepperClassName), children: jsxRuntime.jsx("span", { className: utils.cn(stepperIconClassName), children: jsxRuntime.jsx(react.HugeiconsIcon, { icon: coreFreeIcons.MinusSignIcon, "aria-hidden": "true", className: utils.cn("size-5") }) }) }), hasAffix ? (
44
+ // The 44px targets fit the field's own height, inside its rim, without inflating its density.
45
+ "group/field flex w-full items-center gap-1 px-1.5", Field.fieldDensity[size], ui_common.shape.control, ui_motion.motionFeedback, ui_common.focusRingWithin, ui_common.material.control, ui_common.rim.field, ui_common.state.field.invalid, !fieldDisabled && ui_common.state.field.hover, !fieldDisabled && ui_common.state.field.focusWithin, !fieldDisabled && ui_common.state.field.invalidHover, !fieldDisabled && ui_common.state.field.invalidFocusWithin, fieldDisabled ? ui_common.state.disabled : ui_common.state.text, fieldClassName), children: [jsxRuntime.jsx(numberField.NumberField.Decrement, { className: utils.cn(stepperClassName), children: jsxRuntime.jsx("span", { className: utils.cn(stepperIconClassName), children: jsxRuntime.jsx(react.HugeiconsIcon, { icon: coreFreeIcons.MinusSignIcon, "aria-hidden": "true", className: utils.cn(ui_common.iconStroke.glyph, "size-5") }) }) }), hasAffix ? (
45
46
  /* The value and its units are one centred figure, so the input is exactly as wide as the
46
47
  text it holds: a hidden copy of that text sizes the cell both share, and the units sit
47
48
  against it on either side. The rest of the band still belongs to the input — a press
48
49
  anywhere in it, units included, places the caret in the value. */
49
- jsxRuntime.jsxs("div", { className: utils.cn("flex min-w-0 flex-1 cursor-text items-center justify-center gap-1.5 self-stretch"), onPointerDown: focusValue, children: [prefix != null && jsxRuntime.jsx("span", { "aria-hidden": "true", className: utils.cn(affixClassName), children: prefix }), jsxRuntime.jsx(numberField.NumberField.Input, { ...inputProps, ref: ref, className: utils.cn("absolute inset-0 min-w-0 w-full bg-transparent py-2 text-center text-inherit outline-none", ui_common.type.numeric, ui_common.state.text, inputClassName), render: (props) => {
50
+ jsxRuntime.jsxs("div", { className: utils.cn("flex min-w-0 flex-1 cursor-text items-center justify-center gap-1.5 self-stretch"), onPointerDown: focusValue, children: [prefix != null && jsxRuntime.jsx("span", { "aria-hidden": "true", className: utils.cn(affixClassName), children: prefix }), jsxRuntime.jsx(numberField.NumberField.Input, { ...inputProps, ref: ref, className: utils.cn("absolute inset-0 min-w-0 w-full bg-transparent py-2 text-center text-inherit [outline-style:none]", "tabular-nums", ui_common.state.text, inputClassName), render: (props) => {
50
51
  var _a;
51
52
  return (
52
53
  /* The input lies over its own sizer rather than beside it: a text input keeps an
53
54
  intrinsic width of several characters however small its `size`, and only the
54
55
  text should decide how wide the value is. */
55
- jsxRuntime.jsxs("span", { className: utils.cn("relative inline-block min-w-[1ch] max-w-full"), children: [jsxRuntime.jsx("span", { "aria-hidden": "true", className: utils.cn("invisible block overflow-hidden whitespace-pre py-2", ui_common.type.numeric), children: String((_a = props.value) !== null && _a !== void 0 ? _a : "") || props.placeholder || " " }), jsxRuntime.jsx("input", { ...props, size: 1 })] }));
56
- } }), suffix != null && jsxRuntime.jsx("span", { "aria-hidden": "true", className: utils.cn(affixClassName), children: suffix })] })) : (jsxRuntime.jsx(numberField.NumberField.Input, { ...inputProps, ref: ref, className: utils.cn("min-w-0 flex-1 bg-transparent py-2 text-center text-inherit outline-none", ui_common.type.numeric, ui_common.state.text, inputClassName) })), jsxRuntime.jsx(numberField.NumberField.Increment, { className: utils.cn(stepperClassName), children: jsxRuntime.jsx("span", { className: utils.cn(stepperIconClassName), children: jsxRuntime.jsx(react.HugeiconsIcon, { icon: coreFreeIcons.PlusSignIcon, "aria-hidden": "true", className: utils.cn("size-5") }) }) })] }) }));
56
+ jsxRuntime.jsxs("span", { className: utils.cn("relative inline-block min-w-[1ch] max-w-full"), children: [jsxRuntime.jsx("span", { "aria-hidden": "true", className: utils.cn("invisible block overflow-hidden whitespace-pre py-2 tabular-nums"), children: String((_a = props.value) !== null && _a !== void 0 ? _a : "") || props.placeholder || " " }), jsxRuntime.jsx("input", { ...props, size: 1 })] }));
57
+ } }), suffix != null && jsxRuntime.jsx("span", { "aria-hidden": "true", className: utils.cn(affixClassName), children: suffix })] })) : (jsxRuntime.jsx(numberField.NumberField.Input, { ...inputProps, ref: ref, className: utils.cn("min-w-0 flex-1 bg-transparent py-2 text-center text-inherit [outline-style:none]", "tabular-nums", ui_common.state.text, inputClassName) })), jsxRuntime.jsx(numberField.NumberField.Increment, { className: utils.cn(stepperClassName), children: jsxRuntime.jsx("span", { className: utils.cn(stepperIconClassName), children: jsxRuntime.jsx(react.HugeiconsIcon, { icon: coreFreeIcons.PlusSignIcon, "aria-hidden": "true", className: utils.cn(ui_common.iconStroke.glyph, "size-5") }) }) })] }) }));
57
58
  });
58
59
  NumberField.displayName = "NumberField";
59
60