@gunkin/uiify 0.0.17-alpha → 0.0.20-alpha

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 (292) hide show
  1. package/agents/components.md +1 -1
  2. package/agents/index.md +1 -0
  3. package/agents/reference/components/breadcrumb.md +11 -1
  4. package/agents/reference/components/button.md +4 -4
  5. package/agents/reference/components/candle-chart.md +20 -1
  6. package/agents/reference/components/carousel.md +3 -2
  7. package/agents/reference/components/combobox.md +2 -1
  8. package/agents/reference/components/drawer.md +8 -1
  9. package/agents/reference/components/dropdown-menu.md +1 -1
  10. package/agents/reference/components/file-upload.md +12 -1
  11. package/agents/reference/components/line-chart.md +1 -0
  12. package/agents/reference/components/modal.md +8 -1
  13. package/agents/reference/components/number-field.md +14 -3
  14. package/agents/reference/components/pagination.md +22 -1
  15. package/agents/reference/components/slider.md +9 -1
  16. package/agents/reference/components/spinner.md +8 -1
  17. package/agents/reference/components/toast.md +14 -1
  18. package/dist/components/behavior.css +9 -9
  19. package/dist/components/behavior.css.map +1 -1
  20. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  21. package/dist/components/breadcrumb/Breadcrumb.js +21 -4
  22. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  23. package/dist/components/breadcrumb/index.d.ts +1 -1
  24. package/dist/components/breadcrumb/index.d.ts.map +1 -1
  25. package/dist/components/breadcrumb/index.js.map +1 -1
  26. package/dist/components/breadcrumb/types.d.ts +7 -0
  27. package/dist/components/breadcrumb/types.d.ts.map +1 -1
  28. package/dist/components/button/types.d.ts +4 -0
  29. package/dist/components/button/types.d.ts.map +1 -1
  30. package/dist/components/candle-chart/CandleChart.d.ts +1 -1
  31. package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
  32. package/dist/components/candle-chart/CandleChart.js +81 -46
  33. package/dist/components/candle-chart/CandleChart.js.map +1 -1
  34. package/dist/components/candle-chart/client/CandleChartClient.d.ts.map +1 -1
  35. package/dist/components/candle-chart/client/CandleChartClient.js +5 -0
  36. package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
  37. package/dist/components/candle-chart/index.d.ts +1 -1
  38. package/dist/components/candle-chart/index.d.ts.map +1 -1
  39. package/dist/components/candle-chart/index.js.map +1 -1
  40. package/dist/components/candle-chart/types.d.ts +17 -0
  41. package/dist/components/candle-chart/types.d.ts.map +1 -1
  42. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  43. package/dist/components/carousel/CarouselMarkup.js +20 -3
  44. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  45. package/dist/components/carousel/carousel-markup.js +2 -2
  46. package/dist/components/carousel/carousel-markup.js.map +1 -1
  47. package/dist/components/carousel/types.d.ts +3 -2
  48. package/dist/components/carousel/types.d.ts.map +1 -1
  49. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  50. package/dist/components/combobox/Combobox.js +37 -23
  51. package/dist/components/combobox/Combobox.js.map +1 -1
  52. package/dist/components/combobox/combobox-store.d.ts.map +1 -1
  53. package/dist/components/combobox/combobox-store.js +5 -2
  54. package/dist/components/combobox/combobox-store.js.map +1 -1
  55. package/dist/components/combobox/types.d.ts +2 -3
  56. package/dist/components/combobox/types.d.ts.map +1 -1
  57. package/dist/components/context-menu/ContextMenu.d.ts.map +1 -1
  58. package/dist/components/context-menu/ContextMenu.js +25 -5
  59. package/dist/components/context-menu/ContextMenu.js.map +1 -1
  60. package/dist/components/drawer/DrawerNative.d.ts +1 -1
  61. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  62. package/dist/components/drawer/DrawerNative.js +5 -2
  63. package/dist/components/drawer/DrawerNative.js.map +1 -1
  64. package/dist/components/drawer/index.d.ts +1 -1
  65. package/dist/components/drawer/index.d.ts.map +1 -1
  66. package/dist/components/drawer/index.js.map +1 -1
  67. package/dist/components/drawer/types.d.ts +4 -0
  68. package/dist/components/drawer/types.d.ts.map +1 -1
  69. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  70. package/dist/components/dropdown-menu/DropdownMenu.js +31 -15
  71. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  72. package/dist/components/dropdown-menu/DropdownMenuBar.d.ts.map +1 -1
  73. package/dist/components/dropdown-menu/DropdownMenuBar.js +7 -5
  74. package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
  75. package/dist/components/dropdown-menu/types.d.ts +1 -1
  76. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  77. package/dist/components/file-upload/FileUpload.d.ts.map +1 -1
  78. package/dist/components/file-upload/FileUpload.js +11 -4
  79. package/dist/components/file-upload/FileUpload.js.map +1 -1
  80. package/dist/components/file-upload/FileUploadRoot.d.ts +1 -1
  81. package/dist/components/file-upload/FileUploadRoot.d.ts.map +1 -1
  82. package/dist/components/file-upload/FileUploadRoot.js +9 -0
  83. package/dist/components/file-upload/FileUploadRoot.js.map +1 -1
  84. package/dist/components/file-upload/index.d.ts +1 -1
  85. package/dist/components/file-upload/index.d.ts.map +1 -1
  86. package/dist/components/file-upload/index.js.map +1 -1
  87. package/dist/components/file-upload/types.d.ts +8 -0
  88. package/dist/components/file-upload/types.d.ts.map +1 -1
  89. package/dist/components/line-chart/LineChart.d.ts.map +1 -1
  90. package/dist/components/line-chart/LineChart.js +3 -2
  91. package/dist/components/line-chart/LineChart.js.map +1 -1
  92. package/dist/components/line-chart/line-chart-geometry.d.ts +2 -2
  93. package/dist/components/line-chart/line-chart-geometry.d.ts.map +1 -1
  94. package/dist/components/line-chart/line-chart-geometry.js +6 -6
  95. package/dist/components/line-chart/line-chart-geometry.js.map +1 -1
  96. package/dist/components/line-chart/types.d.ts +2 -0
  97. package/dist/components/line-chart/types.d.ts.map +1 -1
  98. package/dist/components/modal/Modal.d.ts +1 -1
  99. package/dist/components/modal/Modal.d.ts.map +1 -1
  100. package/dist/components/modal/Modal.js +5 -2
  101. package/dist/components/modal/Modal.js.map +1 -1
  102. package/dist/components/modal/index.d.ts +1 -1
  103. package/dist/components/modal/index.d.ts.map +1 -1
  104. package/dist/components/modal/index.js.map +1 -1
  105. package/dist/components/modal/types.d.ts +4 -0
  106. package/dist/components/modal/types.d.ts.map +1 -1
  107. package/dist/components/number-field/NumberField.d.ts +1 -1
  108. package/dist/components/number-field/NumberField.d.ts.map +1 -1
  109. package/dist/components/number-field/NumberField.js +25 -5
  110. package/dist/components/number-field/NumberField.js.map +1 -1
  111. package/dist/components/number-field/format.d.ts +1 -1
  112. package/dist/components/number-field/format.d.ts.map +1 -1
  113. package/dist/components/number-field/format.js +32 -7
  114. package/dist/components/number-field/format.js.map +1 -1
  115. package/dist/components/number-field/index.d.ts +1 -1
  116. package/dist/components/number-field/index.d.ts.map +1 -1
  117. package/dist/components/number-field/index.js.map +1 -1
  118. package/dist/components/number-field/types.d.ts +11 -2
  119. package/dist/components/number-field/types.d.ts.map +1 -1
  120. package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
  121. package/dist/components/otp-input/OtpInput.js +2 -0
  122. package/dist/components/otp-input/OtpInput.js.map +1 -1
  123. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  124. package/dist/components/pagination/Pagination.js +93 -29
  125. package/dist/components/pagination/Pagination.js.map +1 -1
  126. package/dist/components/pagination/PaginationShell.d.ts +2 -1
  127. package/dist/components/pagination/PaginationShell.d.ts.map +1 -1
  128. package/dist/components/pagination/PaginationShell.js +44 -9
  129. package/dist/components/pagination/PaginationShell.js.map +1 -1
  130. package/dist/components/pagination/index.d.ts +1 -1
  131. package/dist/components/pagination/index.d.ts.map +1 -1
  132. package/dist/components/pagination/index.js.map +1 -1
  133. package/dist/components/pagination/types.d.ts +18 -0
  134. package/dist/components/pagination/types.d.ts.map +1 -1
  135. package/dist/components/slider/client/SliderClient.d.ts.map +1 -1
  136. package/dist/components/slider/client/SliderClient.js +11 -2
  137. package/dist/components/slider/client/SliderClient.js.map +1 -1
  138. package/dist/components/slider/index.d.ts +1 -1
  139. package/dist/components/slider/index.d.ts.map +1 -1
  140. package/dist/components/slider/index.js.map +1 -1
  141. package/dist/components/slider/types.d.ts +5 -0
  142. package/dist/components/slider/types.d.ts.map +1 -1
  143. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  144. package/dist/components/spinner/Spinner.js +6 -3
  145. package/dist/components/spinner/Spinner.js.map +1 -1
  146. package/dist/components/spinner/index.d.ts +1 -1
  147. package/dist/components/spinner/index.d.ts.map +1 -1
  148. package/dist/components/spinner/index.js.map +1 -1
  149. package/dist/components/spinner/types.d.ts +4 -0
  150. package/dist/components/spinner/types.d.ts.map +1 -1
  151. package/dist/components/tags-input/TagsInput.d.ts.map +1 -1
  152. package/dist/components/tags-input/TagsInput.js +2 -0
  153. package/dist/components/tags-input/TagsInput.js.map +1 -1
  154. package/dist/components/toast/Toast.d.ts +1 -1
  155. package/dist/components/toast/Toast.d.ts.map +1 -1
  156. package/dist/components/toast/Toast.js +33 -29
  157. package/dist/components/toast/Toast.js.map +1 -1
  158. package/dist/components/toast/ToastElements.d.ts.map +1 -1
  159. package/dist/components/toast/ToastElements.js +24 -12
  160. package/dist/components/toast/ToastElements.js.map +1 -1
  161. package/dist/components/toast/index.d.ts +1 -1
  162. package/dist/components/toast/index.d.ts.map +1 -1
  163. package/dist/components/toast/index.js.map +1 -1
  164. package/dist/components/toast/types.d.ts +10 -0
  165. package/dist/components/toast/types.d.ts.map +1 -1
  166. package/dist/components/toolbar/Toolbar.d.ts +2 -2
  167. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  168. package/dist/components/toolbar/Toolbar.js +8 -4
  169. package/dist/components/toolbar/Toolbar.js.map +1 -1
  170. package/dist/core/direction.d.ts +2 -0
  171. package/dist/core/direction.d.ts.map +1 -1
  172. package/dist/core/direction.js +8 -3
  173. package/dist/core/direction.js.map +1 -1
  174. package/dist/core/dismissable-layer-registry.d.ts.map +1 -1
  175. package/dist/core/dismissable-layer-registry.js +3 -1
  176. package/dist/core/dismissable-layer-registry.js.map +1 -1
  177. package/dist/core/format-label.d.ts +2 -0
  178. package/dist/core/format-label.d.ts.map +1 -0
  179. package/dist/core/format-label.js +13 -0
  180. package/dist/core/format-label.js.map +1 -0
  181. package/dist/core/ime.d.ts +16 -0
  182. package/dist/core/ime.d.ts.map +1 -0
  183. package/dist/core/ime.js +7 -0
  184. package/dist/core/ime.js.map +1 -0
  185. package/dist/core/index.d.ts +3 -0
  186. package/dist/core/index.d.ts.map +1 -1
  187. package/dist/core/index.js +3 -0
  188. package/dist/core/index.js.map +1 -1
  189. package/dist/core/roving-focus-store.d.ts +3 -2
  190. package/dist/core/roving-focus-store.d.ts.map +1 -1
  191. package/dist/core/roving-focus-store.js +5 -3
  192. package/dist/core/roving-focus-store.js.map +1 -1
  193. package/dist/core/roving-focus.d.ts.map +1 -1
  194. package/dist/core/roving-focus.js +10 -5
  195. package/dist/core/roving-focus.js.map +1 -1
  196. package/dist/core/text-direction.d.ts +7 -0
  197. package/dist/core/text-direction.d.ts.map +1 -0
  198. package/dist/core/text-direction.js +7 -0
  199. package/dist/core/text-direction.js.map +1 -0
  200. package/dist/styles/index.css +1 -1
  201. package/package.json +2 -1
  202. package/skills/uiify/SKILL.md +58 -33
  203. package/skills/uiify/references/compositions/card-rhythm.md +0 -2
  204. package/skills/uiify/references/compositions/destructive-confirmation.md +1 -3
  205. package/skills/uiify/references/compositions/form-grouping.md +0 -2
  206. package/skills/uiify/references/compositions/hero-actions.md +3 -5
  207. package/skills/uiify/references/compositions/page-frame.md +0 -2
  208. package/skills/uiify/references/compositions/pricing-actions.md +0 -2
  209. package/skills/uiify/references/compositions/save-feedback.md +1 -3
  210. package/skills/uiify/references/compositions/table-controls.md +1 -3
  211. package/skills/uiify/references/elements/accordion.md +38 -0
  212. package/skills/uiify/references/elements/alert-modal.md +32 -5
  213. package/skills/uiify/references/elements/avatar.md +31 -2
  214. package/skills/uiify/references/elements/badge.md +32 -3
  215. package/skills/uiify/references/elements/bar-chart.md +39 -7
  216. package/skills/uiify/references/elements/breadcrumb.md +38 -0
  217. package/skills/uiify/references/elements/button.md +38 -3
  218. package/skills/uiify/references/elements/candle-chart.md +40 -0
  219. package/skills/uiify/references/elements/card.md +38 -1
  220. package/skills/uiify/references/elements/carousel.md +40 -0
  221. package/skills/uiify/references/elements/checkbox.md +39 -0
  222. package/skills/uiify/references/elements/code-block.md +31 -2
  223. package/skills/uiify/references/elements/collapsible.md +38 -0
  224. package/skills/uiify/references/elements/color-picker.md +39 -0
  225. package/skills/uiify/references/elements/combobox.md +37 -0
  226. package/skills/uiify/references/elements/command-palette.md +33 -12
  227. package/skills/uiify/references/elements/context-menu.md +38 -0
  228. package/skills/uiify/references/elements/cookie-banner.md +30 -2
  229. package/skills/uiify/references/elements/date-picker.md +33 -9
  230. package/skills/uiify/references/elements/divider.md +30 -2
  231. package/skills/uiify/references/elements/drawer.md +38 -0
  232. package/skills/uiify/references/elements/dropdown-menu.md +38 -0
  233. package/skills/uiify/references/elements/empty-state.md +30 -2
  234. package/skills/uiify/references/elements/feature-grid.md +41 -1
  235. package/skills/uiify/references/elements/field.md +33 -3
  236. package/skills/uiify/references/elements/file-upload.md +40 -0
  237. package/skills/uiify/references/elements/footer.md +35 -4
  238. package/skills/uiify/references/elements/form.md +31 -4
  239. package/skills/uiify/references/elements/header.md +31 -3
  240. package/skills/uiify/references/elements/hero.md +43 -3
  241. package/skills/uiify/references/elements/hover-card.md +38 -0
  242. package/skills/uiify/references/elements/image-gallery.md +36 -4
  243. package/skills/uiify/references/elements/inline-alert.md +30 -2
  244. package/skills/uiify/references/elements/input.md +31 -4
  245. package/skills/uiify/references/elements/line-chart.md +38 -0
  246. package/skills/uiify/references/elements/logo-wall.md +31 -2
  247. package/skills/uiify/references/elements/modal.md +38 -0
  248. package/skills/uiify/references/elements/number-field.md +41 -0
  249. package/skills/uiify/references/elements/otp-input.md +39 -0
  250. package/skills/uiify/references/elements/pagination.md +33 -4
  251. package/skills/uiify/references/elements/password-input.md +33 -9
  252. package/skills/uiify/references/elements/popup.md +38 -0
  253. package/skills/uiify/references/elements/pricing-table.md +55 -2
  254. package/skills/uiify/references/elements/progress-bar.md +32 -4
  255. package/skills/uiify/references/elements/radio-group.md +39 -0
  256. package/skills/uiify/references/elements/rating.md +39 -0
  257. package/skills/uiify/references/elements/search-input.md +35 -4
  258. package/skills/uiify/references/elements/segmented-control.md +39 -0
  259. package/skills/uiify/references/elements/select.md +29 -1
  260. package/skills/uiify/references/elements/sidebar.md +33 -10
  261. package/skills/uiify/references/elements/skeleton.md +38 -0
  262. package/skills/uiify/references/elements/slider.md +39 -0
  263. package/skills/uiify/references/elements/spinner.md +38 -0
  264. package/skills/uiify/references/elements/stats-bar.md +30 -2
  265. package/skills/uiify/references/elements/stepper.md +32 -9
  266. package/skills/uiify/references/elements/switch.md +31 -4
  267. package/skills/uiify/references/elements/table-of-contents.md +39 -0
  268. package/skills/uiify/references/elements/table.md +32 -3
  269. package/skills/uiify/references/elements/tabs.md +38 -0
  270. package/skills/uiify/references/elements/tags-input.md +39 -0
  271. package/skills/uiify/references/elements/testimonial.md +35 -4
  272. package/skills/uiify/references/elements/textarea.md +30 -3
  273. package/skills/uiify/references/elements/timeline.md +31 -3
  274. package/skills/uiify/references/elements/toast.md +27 -1
  275. package/skills/uiify/references/elements/toggle-group.md +39 -0
  276. package/skills/uiify/references/elements/toggle.md +39 -0
  277. package/skills/uiify/references/elements/toolbar.md +39 -0
  278. package/skills/uiify/references/elements/tooltip.md +38 -0
  279. package/skills/uiify/references/elements/virtual-scroll.md +39 -0
  280. package/skills/uiify/references/examples/alert-confirmation.md +34 -0
  281. package/skills/uiify/references/examples/field-validation.md +37 -0
  282. package/skills/uiify/references/examples/select-basic.md +35 -0
  283. package/skills/uiify/references/examples/table-controls.md +40 -0
  284. package/skills/uiify/references/guides/assets.md +14 -0
  285. package/skills/uiify/references/guides/content.md +11 -0
  286. package/skills/uiify/references/guides/hierarchy.md +14 -0
  287. package/skills/uiify/references/guides/i18n.md +21 -0
  288. package/skills/uiify/references/guides/reference.md +9 -0
  289. package/skills/uiify/references/guides/states.md +12 -0
  290. package/skills/uiify/references/guides/surface.md +27 -0
  291. package/skills/uiify/scripts/lint.mjs +1 -1
  292. package/skills/uiify/scripts/static.mjs +150 -14
@@ -55,7 +55,7 @@ its exports, props and shapes; exact types are in the `.d.ts` file listed in the
55
55
  | [tooltip](./reference/components/tooltip.md) | `@gunkin/uiify/components/tooltip` | 1 | S1 | `[popover]` | `dist/components/tooltip.d.ts` | |
56
56
  | [hover-card](./reference/components/hover-card.md) | `@gunkin/uiify/components/hover-card` | 1 | S1 | `[popover]` | `dist/components/hover-card.d.ts` | |
57
57
  | [toast](./reference/components/toast.md) | `@gunkin/uiify/components/toast` | 1 | S1 | `[popover] + aria-live` | `dist/components/toast.d.ts` | |
58
- | [number-field](./reference/components/number-field.md) | `@gunkin/uiify/components/number-field` | 1 | S1 | `input[type=number]` | `dist/components/number-field.d.ts` | |
58
+ | [number-field](./reference/components/number-field.md) | `@gunkin/uiify/components/number-field` | 1 | S1 | `input[type=text][role=spinbutton]` | `dist/components/number-field.d.ts` | |
59
59
  | [toolbar](./reference/components/toolbar.md) | `@gunkin/uiify/components/toolbar` | 1 | none | `div[role=toolbar]` | `dist/components/toolbar.d.ts` | |
60
60
  | [file-upload](./reference/components/file-upload.md) | `@gunkin/uiify/components/file-upload` | 1 | S1 | `input[type=file]` | `dist/components/file-upload.d.ts` | |
61
61
  | [header](./reference/components/header.md) | `@gunkin/uiify/components/header` | 0 | S1 | `header` | `dist/components/header.d.ts` | Semantic header root; compose native navigation with Modal. Full functionality without JavaScript; optional header/client adds scroll hide/reveal. |
package/agents/index.md CHANGED
@@ -20,6 +20,7 @@ exist here.
20
20
  | `className={(state) => ...}` | A plain string `className`; select state with `[data-state]`, `[data-disabled]` and friends | `className` is never a function. |
21
21
  | `contentClassName`, `triggerClassName`, `itemClassName`, `contentStyle` | `className` / `style` on the part itself | Every public part takes its own `className`. |
22
22
  | `onChange={(value) => ...}` on a root or control | `onValueChange`, `onOpenChange`, `onCheckedChange`, `onPageChange` | `onChange` is the native DOM `change` event and receives the event. |
23
+ | English built-in labels in a non-English UI | `labels` and `locale` props; set `lang` and `dir` on `<html>` | Labels are serializable string values; locale formats embedded numbers. |
23
24
  | `isOpen`, `isDisabled`, `isChecked` | `open`, `disabled`, `checked` | No `is` prefix. |
24
25
  | `placement="bottom-start"` | `side="bottom" align="start"` | One vocabulary for popups. |
25
26
  | `data-open` | `data-state="open"` | Open state is `data-state`; there is no `data-open`. |
@@ -10,15 +10,23 @@
10
10
  ## Exports
11
11
 
12
12
  - Runtime: `Breadcrumb`, `BreadcrumbEllipsis`, `BreadcrumbItem`, `BreadcrumbLink`, `BreadcrumbList`, `BreadcrumbRoot`, `BreadcrumbSeparator`
13
- - Types: `BreadcrumbItemData`, `BreadcrumbItemProps`, `BreadcrumbLinkOwnProps`, `BreadcrumbLinkProps`, `BreadcrumbListOwnProps`, `BreadcrumbListProps`, `BreadcrumbRootOwnProps`, `BreadcrumbRootProps`, `BreadcrumbSeparatorOwnProps`, `BreadcrumbSeparatorProps`
13
+ - Types: `BreadcrumbItemData`, `BreadcrumbLabels`, `BreadcrumbItemProps`, `BreadcrumbLinkOwnProps`, `BreadcrumbLinkProps`, `BreadcrumbListOwnProps`, `BreadcrumbListProps`, `BreadcrumbRootOwnProps`, `BreadcrumbRootProps`, `BreadcrumbSeparatorOwnProps`, `BreadcrumbSeparatorProps`
14
14
 
15
15
  ## Props and shapes
16
16
 
17
+ ### BreadcrumbLabels
18
+
19
+ | Member | Type | Required | Description |
20
+ | --- | --- | --- | --- |
21
+ | `root` | `string` | yes | |
22
+ | `showCollapsed` | `string` | yes | |
23
+
17
24
  ### BreadcrumbRootOwnProps
18
25
 
19
26
  | Member | Type | Required | Description |
20
27
  | --- | --- | --- | --- |
21
28
  | `"aria-label"` | `string` | no | |
29
+ | `labels` | `Partial<BreadcrumbLabels>` | no | |
22
30
 
23
31
  ### BreadcrumbItemData
24
32
 
@@ -36,6 +44,7 @@ One logical breadcrumb entry. Used by `BreadcrumbList`'s `items` prop — the da
36
44
  | Member | Type | Required | Description |
37
45
  | --- | --- | --- | --- |
38
46
  | `children` | `ReactNode` | no | |
47
+ | `labels` | `Partial<BreadcrumbLabels>` | no | |
39
48
  | `items` | `readonly BreadcrumbItemData[]` | no | Data-driven items, required to use `maxItems`. Filtering children by element type (`isValidElement` + a type check) can't see through a Fragment-free `.map()` over route data into a custom wrapper component — a real element only becomes visible to a parent's child introspection once React actually renders it, which hasn't happened yet when `BreadcrumbList` itself runs. An explicit array has no such blind spot. |
40
49
  | `itemsAfterCollapse` | `number` | no | |
41
50
  | `itemsBeforeCollapse` | `number` | no | |
@@ -61,6 +70,7 @@ One logical breadcrumb entry. Used by `BreadcrumbList`'s `items` prop — the da
61
70
  | Member | Type | Required | Description |
62
71
  | --- | --- | --- | --- |
63
72
  | `hiddenItems` | `readonly BreadcrumbItemData[]` | yes | |
73
+ | `labels` | `BreadcrumbLabels` | yes | |
64
74
  | `separator` | `ReactNode` | no | |
65
75
 
66
76
  ## Other types
@@ -22,11 +22,11 @@
22
22
 
23
23
  | Member | Type | Required | Description |
24
24
  | --- | --- | --- | --- |
25
- | `disabled` | `boolean` | no | |
25
+ | `disabled` | `boolean` | no | Prevents activation and exposes the disabled state to assistive technology. |
26
26
  | `selected` | `boolean` | no | Marks the button as the chosen one of a set, or a toggle that is on. |
27
- | `type` | `"button" \| "submit" \| "reset"` | no | |
28
- | `size` | `ButtonSize` | no | |
29
- | `variant` | `ButtonVariant` | no | |
27
+ | `type` | `"button" \| "submit" \| "reset"` | no | Sets the native button action; defaults to `button`. Set `submit` or `reset` explicitly when needed. |
28
+ | `size` | `ButtonSize` | no | Sets the control's height and, for icon sizes, its width. |
29
+ | `variant` | `ButtonVariant` | no | Sets the visual treatment without changing the control's semantics. |
30
30
 
31
31
  ### ButtonState
32
32
 
@@ -10,7 +10,7 @@
10
10
  ## Exports
11
11
 
12
12
  - Runtime: `CandleChart`
13
- - Types: `CandleChartAxisLabel`, `CandleChartData`, `CandleChartOwnProps`, `CandleChartPointerPosition`, `CandleChartProps`
13
+ - Types: `CandleChartAxisLabel`, `CandleChartLabels`, `CandleChartData`, `CandleChartOwnProps`, `CandleChartPointerPosition`, `CandleChartProps`
14
14
 
15
15
  ## Props and shapes
16
16
 
@@ -43,10 +43,12 @@
43
43
  | Member | Type | Required | Description |
44
44
  | --- | --- | --- | --- |
45
45
  | `"aria-label"` | `string` | no | |
46
+ | `labels` | `Partial<CandleChartLabels>` | no | |
46
47
  | `activeCandleIndex` | `number` | no | |
47
48
  | `cursorY` | `number` | no | |
48
49
  | `data` | `readonly CandleChartData[]` | yes | |
49
50
  | `interactive` | `boolean` | no | |
51
+ | `locale` | `string` | no | BCP 47 locale for default axis labels. Defaults to `"en-US"`. |
50
52
  | `onCandleClick` | `(index: number) => void` | no | |
51
53
  | `onCandlePointerLeave` | `() => void` | no | |
52
54
  | `onCandlePointerMove` | `(position: CandleChartPointerPosition) => void` | no | |
@@ -54,6 +56,22 @@
54
56
  | `xAxis` | `readonly CandleChartAxisLabel[]` | no | |
55
57
  | `yAxis` | `readonly CandleChartAxisLabel[]` | no | |
56
58
 
59
+ ### CandleChartLabels
60
+
61
+ | Member | Type | Required | Description |
62
+ | --- | --- | --- | --- |
63
+ | `chart` | `string` | yes | |
64
+ | `candle` | `string` | yes | |
65
+ | `candles` | `string` | yes | |
66
+ | `months` | `string` | yes | |
67
+ | `prices` | `string` | yes | |
68
+ | `data` | `string` | yes | |
69
+ | `time` | `string` | yes | |
70
+ | `open` | `string` | yes | |
71
+ | `high` | `string` | yes | |
72
+ | `low` | `string` | yes | |
73
+ | `close` | `string` | yes | |
74
+
57
75
  ### CandleChartClientOwnProps
58
76
 
59
77
  Extends: `CandleChartOwnProps`
@@ -81,6 +99,7 @@ Extends: `CandleChartOwnProps`
81
99
  | --- | --- | --- | --- |
82
100
  | `as` | `"div" \| "li"` | yes | |
83
101
  | `candle` | `CandleChartData` | yes | |
102
+ | `hitLabel` | `string` | yes | |
84
103
  | `index` | `number` | yes | Index reported to the pointer and click callbacks. |
85
104
  | `x` | `number` | yes | Candle position and width, as percentages of the candle layer. |
86
105
  | `slot` | `number` | yes | |
@@ -34,11 +34,11 @@
34
34
  | --- | --- | --- | --- |
35
35
  | `previous` | `string` | yes | |
36
36
  | `next` | `string` | yes | |
37
- | `goTo` | `string` | yes | |
37
+ | `goToSlide` | `string` | yes | |
38
38
  | `navigation` | `string` | yes | |
39
39
  | `start` | `string` | yes | |
40
40
  | `stop` | `string` | yes | |
41
- | `of` | `string` | yes | |
41
+ | `slide` | `string` | yes | |
42
42
 
43
43
  ### CarouselIcons
44
44
 
@@ -68,6 +68,7 @@ Extends: `CSSProperties`
68
68
  | `"aria-label"` | `string` | yes | |
69
69
  | `axis` | `CarouselAxis` | no | |
70
70
  | `dir` | `"ltr" \| "rtl"` | no | |
71
+ | `locale` | `string` | no | |
71
72
  | `navigation` | `boolean` | no | |
72
73
  | `pagination` | `boolean` | no | |
73
74
  | `className` | `string` | no | |
@@ -80,6 +80,8 @@
80
80
 
81
81
  ### ComboboxRootShellOwnProps
82
82
 
83
+ Extends: `Omit<ComponentPropsWithRef<"div">, "children">`
84
+
83
85
  | Member | Type | Required | Description |
84
86
  | --- | --- | --- | --- |
85
87
  | `className` | `string` | no | |
@@ -87,7 +89,6 @@
87
89
  | `defaultOpen` | `boolean` | no | |
88
90
  | `defaultValue` | `string` | no | |
89
91
  | `filterFn` | `ComboboxFilterFn` | no | |
90
- | `id` | `string` | no | |
91
92
  | `items` | `readonly ComboboxItemData[]` | yes | |
92
93
 
93
94
  ### ComboboxRootControlledOwnProps
@@ -10,7 +10,7 @@
10
10
  ## Exports
11
11
 
12
12
  - Runtime: `Drawer`, `DrawerClose`, `DrawerContent`, `DrawerDescription`, `DrawerHandle`, `DrawerRoot`, `DrawerTitle`, `DrawerTrigger`, `DrawerPanel`, `DrawerNativeTrigger`, `DrawerNativeClose`, `DrawerNativeContent`
13
- - Types: `DrawerCloseOwnProps`, `DrawerCloseProps`, `DrawerContentOwnProps`, `DrawerContentProps`, `DrawerDescriptionOwnProps`, `DrawerHandleOwnProps`, `DrawerRootOwnProps`, `DrawerRootProps`, `DrawerTitleOwnProps`, `DrawerTriggerOwnProps`, `DrawerTriggerProps`, `DrawerProps`, `DrawerSide`, `DrawerAppearanceProps`, `DrawerNativeContentProps`, `DrawerNativeInvokerProps`
13
+ - Types: `DrawerCloseOwnProps`, `DrawerCloseProps`, `DrawerContentOwnProps`, `DrawerContentProps`, `DrawerDescriptionOwnProps`, `DrawerHandleOwnProps`, `DrawerRootOwnProps`, `DrawerRootProps`, `DrawerTitleOwnProps`, `DrawerTriggerOwnProps`, `DrawerTriggerProps`, `DrawerProps`, `DrawerLabels`, `DrawerSide`, `DrawerAppearanceProps`, `DrawerNativeContentProps`, `DrawerNativeInvokerProps`
14
14
 
15
15
  ## Values
16
16
 
@@ -38,10 +38,17 @@ Extends: `DrawerAppearanceProps`
38
38
  | `description` | `ReactNode` | no | |
39
39
  | `children` | `ReactNode` | no | |
40
40
  | `closeLabel` | `string` | no | |
41
+ | `labels` | `Partial<DrawerLabels>` | no | |
41
42
  | `footer` | `ReactNode` | no | |
42
43
  | `side` | `DrawerSide` | no | |
43
44
  | `className` | `string` | no | |
44
45
 
46
+ ### DrawerLabels
47
+
48
+ | Member | Type | Required | Description |
49
+ | --- | --- | --- | --- |
50
+ | `close` | `string` | yes | |
51
+
45
52
  ### DrawerNativeContentProps
46
53
 
47
54
  Extends: `Omit<ComponentPropsWithRef<"dialog">, "open" | "popover" | "closedby">`, `DrawerAppearanceProps`
@@ -31,7 +31,7 @@ Extends: `UseMenuSurfaceReturn`
31
31
  | Member | Type | Required | Description |
32
32
  | --- | --- | --- | --- |
33
33
  | `cancelHoverClose` | `() => void` | yes | |
34
- | `dir` | `Direction` | yes | |
34
+ | `dir` | `Direction` | no | |
35
35
  | `disabled` | `boolean` | yes | |
36
36
  | `hoverEnabledRef` | `RefObject<boolean>` | yes | |
37
37
  | `loop` | `boolean` | yes | |
@@ -9,7 +9,7 @@
9
9
  ## Exports
10
10
 
11
11
  - Runtime: `FileUpload`, `FileUploadDropzone`, `FileUploadHiddenInput`, `FileUploadItem`, `FileUploadItemRemove`, `FileUploadList`, `FileUploadRoot`, `FileUploadTrigger`, `validateFiles`
12
- - Types: `FileUploadDropzoneOwnProps`, `FileUploadDropzoneProps`, `FileUploadHiddenInputOwnProps`, `FileUploadListOwnProps`, `FileUploadItemRemoveOwnProps`, `FileUploadItemOwnProps`, `FileUploadItemProps`, `FileUploadRootOwnProps`, `FileUploadRootProps`, `FileUploadTriggerOwnProps`, `FileUploadTriggerProps`, `FileRejection`, `FileUploadStore`
12
+ - Types: `FileUploadDropzoneOwnProps`, `FileUploadDropzoneProps`, `FileUploadHiddenInputOwnProps`, `FileUploadLabels`, `FileUploadListOwnProps`, `FileUploadItemRemoveOwnProps`, `FileUploadItemOwnProps`, `FileUploadItemProps`, `FileUploadRootOwnProps`, `FileUploadRootProps`, `FileUploadTriggerOwnProps`, `FileUploadTriggerProps`, `FileRejection`, `FileUploadStore`
13
13
 
14
14
  ## Props and shapes
15
15
 
@@ -20,6 +20,14 @@
20
20
  | `file` | `File` | yes | |
21
21
  | `reason` | `"accept" \| "max-size" \| "max-files"` | yes | |
22
22
 
23
+ ### FileUploadLabels
24
+
25
+ | Member | Type | Required | Description |
26
+ | --- | --- | --- | --- |
27
+ | `dropzone` | `string` | yes | |
28
+ | `remove` | `string` | yes | |
29
+ | `removeFallback` | `string` | yes | |
30
+
23
31
  ### FileUploadStoreOptions
24
32
 
25
33
  | Member | Type | Required | Description |
@@ -55,6 +63,8 @@
55
63
  | `removeAt` | `(index: number) => void` | yes | |
56
64
  | `reset` | `() => void` | yes | |
57
65
  | `files` | `readonly File[]` | yes | |
66
+ | `labels` | `FileUploadLabels` | yes | |
67
+ | `removeLabel` | `string` | no | |
58
68
 
59
69
  ### FileUploadRootOwnProps
60
70
 
@@ -66,6 +76,7 @@
66
76
  | `disabled` | `boolean` | no | |
67
77
  | `maxFiles` | `number` | no | |
68
78
  | `maxSize` | `number` | no | |
79
+ | `labels` | `Partial<FileUploadLabels>` | no | |
69
80
  | `minSize` | `number` | no | |
70
81
  | `multiple` | `boolean` | no | |
71
82
  | `onValueChange` | `(files: File[]) => void` | no | |
@@ -44,6 +44,7 @@
44
44
  | `cursorY` | `number` | no | |
45
45
  | `data` | `readonly LineChartData[]` | yes | |
46
46
  | `interactive` | `boolean` | no | |
47
+ | `locale` | `string` | no | BCP 47 locale for default axis labels. Defaults to `"en-US"`. |
47
48
  | `onPointClick` | `(index: number) => void` | no | |
48
49
  | `onPointPointerLeave` | `() => void` | no | |
49
50
  | `onPointPointerMove` | `(position: LineChartPointerPosition) => void` | no | |
@@ -10,7 +10,7 @@
10
10
  ## Exports
11
11
 
12
12
  - Runtime: `Modal`, `ModalBody`, `ModalClose`, `ModalContent`, `ModalDescription`, `ModalFooter`, `ModalGrabber`, `ModalHeader`, `ModalTitle`, `ModalTrigger`
13
- - Types: `ModalAlign`, `ModalAppearanceProps`, `ModalBackdrop`, `ModalBodyProps`, `ModalCloseOwnProps`, `ModalCloseProps`, `ModalContentOwnProps`, `ModalContentProps`, `ModalDescriptionProps`, `ModalDismiss`, `ModalFooterProps`, `ModalGrabberProps`, `ModalHeaderProps`, `ModalProps`, `ModalSize`, `ModalTitleProps`, `ModalTriggerOwnProps`, `ModalTriggerProps`
13
+ - Types: `ModalAlign`, `ModalAppearanceProps`, `ModalBackdrop`, `ModalBodyProps`, `ModalCloseOwnProps`, `ModalCloseProps`, `ModalContentOwnProps`, `ModalContentProps`, `ModalDescriptionProps`, `ModalDismiss`, `ModalFooterProps`, `ModalGrabberProps`, `ModalHeaderProps`, `ModalProps`, `ModalLabels`, `ModalSize`, `ModalTitleProps`, `ModalTriggerOwnProps`, `ModalTriggerProps`
14
14
 
15
15
  ## Values
16
16
 
@@ -42,9 +42,16 @@ Extends: `ModalAppearanceProps`
42
42
  | `description` | `ReactNode` | no | |
43
43
  | `children` | `ReactNode` | no | |
44
44
  | `closeLabel` | `string` | no | Accessible name of the header close icon. |
45
+ | `labels` | `Partial<ModalLabels>` | no | |
45
46
  | `footer` | `ReactNode` | no | Actions row pinned under the body. |
46
47
  | `className` | `string` | no | |
47
48
 
49
+ ### ModalLabels
50
+
51
+ | Member | Type | Required | Description |
52
+ | --- | --- | --- | --- |
53
+ | `close` | `string` | yes | |
54
+
48
55
  ### ModalTriggerOwnProps
49
56
 
50
57
  Own props of the native `show-modal` invoker.
@@ -2,14 +2,14 @@
2
2
  # number-field
3
3
 
4
4
  - Import: `@gunkin/uiify/components/number-field`
5
- - Tier 1 (RSC shell + thin client island); state source S1; native element `input[type=number]`
5
+ - Tier 1 (RSC shell + thin client island); state source S1; native element `input[type=text][role=spinbutton]`
6
6
  - Without JavaScript: degraded-documented
7
7
  - Types file: `dist/components/number-field.d.ts`
8
8
 
9
9
  ## Exports
10
10
 
11
11
  - Runtime: `NumberField`, `NumberFieldDecrement`, `NumberFieldGroup`, `NumberFieldIncrement`, `NumberFieldInput`, `NumberFieldRoot`
12
- - Types: `NumberFieldDecrementProps`, `NumberFieldGroupProps`, `NumberFieldIncrementProps`, `NumberFieldInputProps`, `NumberFieldRootOwnProps`, `NumberFieldRootProps`
12
+ - Types: `NumberFieldDecrementProps`, `NumberFieldGroupProps`, `NumberFieldIncrementProps`, `NumberFieldInputOwnProps`, `NumberFieldInputProps`, `NumberFieldRootOwnProps`, `NumberFieldRootProps`
13
13
 
14
14
  ## Props and shapes
15
15
 
@@ -43,6 +43,7 @@
43
43
  | `defaultValue` | `number` | no | |
44
44
  | `disabled` | `boolean` | no | |
45
45
  | `formatOptions` | `Intl.NumberFormatOptions` | no | |
46
+ | `locale` | `string` | no | BCP 47 locale used to format and parse the value. Defaults to `"en-US"`. |
46
47
  | `max` | `number` | no | |
47
48
  | `min` | `number` | no | |
48
49
  | `onValueChange` | `(value: number \| undefined) => void` | no | |
@@ -51,10 +52,20 @@
51
52
  | `step` | `number` | no | |
52
53
  | `value` | `number` | no | |
53
54
 
55
+ ### NumberFieldInputOwnProps
56
+
57
+ | Member | Type | Required | Description |
58
+ | --- | --- | --- | --- |
59
+ | `id` | `string` | no | |
60
+ | `onBlur` | `FocusEventHandler<HTMLInputElement>` | no | |
61
+ | `onChange` | `ChangeEventHandler<HTMLInputElement>` | no | |
62
+ | `onFocus` | `FocusEventHandler<HTMLInputElement>` | no | |
63
+ | `onKeyDown` | `KeyboardEventHandler<HTMLInputElement>` | no | |
64
+
54
65
  ## Other types
55
66
 
56
67
  - `NumberFieldRootProps<TAs>`: `RenderableProps<TAs, NumberFieldRootOwnProps, NumberFieldRootOwnProps, HTMLElement>`
57
68
  - `NumberFieldGroupProps<TAs>`: `RenderableProps<TAs, { readonly children?: ReactNode }, { disabled: boolean }, HTMLElement>`
58
- - `NumberFieldInputProps<TAs>`: `RenderableProps<TAs, Record<string, never>, { disabled: boolean; readOnly: boolean; required: boolean }, HTMLInputElement>`
69
+ - `NumberFieldInputProps<TAs>`: `RenderableProps<TAs, NumberFieldInputOwnProps, { disabled: boolean; readOnly: boolean; required: boolean }, HTMLInputElement>`
59
70
  - `NumberFieldIncrementProps<TAs>`: `RenderableProps<TAs, { readonly children?: ReactNode }, { disabled: boolean }, HTMLButtonElement>`
60
71
  - `NumberFieldDecrementProps<TAs>`: `RenderableProps<TAs, { readonly children?: ReactNode }, { disabled: boolean }, HTMLButtonElement>`
@@ -9,7 +9,7 @@
9
9
  ## Exports
10
10
 
11
11
  - Runtime: `buildPaginationItems`, `Pagination`, `PaginationEllipsis`, `PaginationItem`, `PaginationLink`, `PaginationList`, `PaginationRoot`
12
- - Types: `PaginationItemDescriptor`, `PaginationItemType`, `UsePaginationParams`, `PaginationEllipsisProps`, `PaginationEllipsisOwnProps`, `PaginationItemProps`, `PaginationItemOwnProps`, `PaginationLinkOwnProps`, `PaginationLinkProps`, `PaginationListOwnProps`, `PaginationListProps`, `PaginationRootOwnProps`, `PaginationRootProps`
12
+ - Types: `PaginationItemDescriptor`, `PaginationItemType`, `UsePaginationParams`, `PaginationEllipsisProps`, `PaginationEllipsisOwnProps`, `PaginationItemProps`, `PaginationItemOwnProps`, `PaginationLinkOwnProps`, `PaginationLinkProps`, `PaginationListOwnProps`, `PaginationListProps`, `PaginationRootOwnProps`, `PaginationRootProps`, `PaginationLabels`
13
13
 
14
14
  ## Values
15
15
 
@@ -35,6 +35,21 @@
35
35
  | `selected` | `false` | yes | |
36
36
  | `type` | `Exclude<PaginationItemType, "page">` | yes | |
37
37
 
38
+ ### PaginationLabels
39
+
40
+ | Member | Type | Required | Description |
41
+ | --- | --- | --- | --- |
42
+ | `root` | `string` | yes | |
43
+ | `page` | `string` | yes | |
44
+ | `previous` | `string` | yes | |
45
+ | `next` | `string` | yes | |
46
+ | `first` | `string` | yes | |
47
+ | `last` | `string` | yes | |
48
+ | `previousText` | `string` | yes | |
49
+ | `nextText` | `string` | yes | |
50
+ | `firstText` | `string` | yes | |
51
+ | `lastText` | `string` | yes | |
52
+
38
53
  ### UsePaginationParams
39
54
 
40
55
  | Member | Type | Required | Description |
@@ -62,6 +77,8 @@
62
77
  | --- | --- | --- | --- |
63
78
  | `count` | `number` | yes | |
64
79
  | `items` | `readonly PaginationItem[]` | yes | |
80
+ | `labels` | `PaginationLabels` | yes | |
81
+ | `locale` | `string` | no | |
65
82
  | `page` | `number` | yes | |
66
83
  | `setPage` | `(page: number) => void` | yes | |
67
84
 
@@ -74,6 +91,8 @@ Extends: `UsePaginationParams`
74
91
  | `"aria-label"` | `string` | no | |
75
92
  | `children` | `ReactNode` | no | |
76
93
  | `getPageHref` | `(page: number) => string` | no | |
94
+ | `labels` | `Partial<PaginationLabels>` | no | |
95
+ | `locale` | `string` | no | |
77
96
 
78
97
  ### PaginationListOwnProps
79
98
 
@@ -93,6 +112,8 @@ Extends: `UsePaginationParams`
93
112
  | --- | --- | --- | --- |
94
113
  | `disabled` | `boolean` | no | |
95
114
  | `getPageHref` | `(page: number) => string` | no | |
115
+ | `locale` | `string` | no | |
116
+ | `pageLabelTemplate` | `string` | no | |
96
117
  | `page` | `number` | yes | |
97
118
  | `selected` | `boolean` | no | |
98
119
 
@@ -9,7 +9,7 @@
9
9
  ## Exports
10
10
 
11
11
  - Runtime: `Slider`
12
- - Types: `SliderOwnProps`, `SliderProps`
12
+ - Types: `SliderLabels`, `SliderOwnProps`, `SliderProps`
13
13
 
14
14
  ## Props and shapes
15
15
 
@@ -45,10 +45,18 @@
45
45
  | `disabled` | `boolean` | no | |
46
46
  | `orientation` | `"horizontal" \| "vertical"` | no | |
47
47
  | `marks` | `readonly SliderMark[]` | no | |
48
+ | `labels` | `Partial<SliderLabels>` | no | |
48
49
  | `thumbLabels` | `readonly [string, string]` | no | |
49
50
  | `"aria-label"` | `string` | no | |
50
51
  | `"aria-labelledby"` | `string` | no | |
51
52
 
53
+ ### SliderLabels
54
+
55
+ | Member | Type | Required | Description |
56
+ | --- | --- | --- | --- |
57
+ | `minimum` | `string` | yes | |
58
+ | `maximum` | `string` | yes | |
59
+
52
60
  ### SliderClientRenderState
53
61
 
54
62
  | Member | Type | Required | Description |
@@ -9,7 +9,7 @@
9
9
  ## Exports
10
10
 
11
11
  - Runtime: `Spinner`
12
- - Types: `SpinnerAlign`, `SpinnerOwnProps`, `SpinnerProps`, `SpinnerSize`
12
+ - Types: `SpinnerAlign`, `SpinnerLabels`, `SpinnerOwnProps`, `SpinnerProps`, `SpinnerSize`
13
13
 
14
14
  ## Values
15
15
 
@@ -18,6 +18,12 @@
18
18
 
19
19
  ## Props and shapes
20
20
 
21
+ ### SpinnerLabels
22
+
23
+ | Member | Type | Required | Description |
24
+ | --- | --- | --- | --- |
25
+ | `loading` | `string` | yes | |
26
+
21
27
  ### SpinnerOwnProps
22
28
 
23
29
  | Member | Type | Required | Description |
@@ -26,6 +32,7 @@
26
32
  | `children` | `ReactNode` | no | |
27
33
  | `delay` | `number` | no | |
28
34
  | `label` | `string` | no | |
35
+ | `labels` | `Partial<SpinnerLabels>` | no | |
29
36
  | `showLabel` | `boolean` | no | |
30
37
  | `size` | `SpinnerSize` | no | |
31
38
 
@@ -9,7 +9,7 @@
9
9
  ## Exports
10
10
 
11
11
  - Runtime: `Toast`, `ToastAction`, `ToastClose`, `ToastDescription`, `ToastProvider`, `ToastRoot`, `ToastTitle`, `ToastViewport`, `useToast`
12
- - Types: `ToastActionOwnProps`, `ToastActionProps`, `ToastCloseOwnProps`, `ToastCloseProps`, `ToastDescriptionOwnProps`, `ToastProviderOwnProps`, `ToastRootOwnProps`, `ToastTitleOwnProps`, `ToastViewportOwnProps`, `ToastInput`, `ToastPriority`, `ToastRecord`, `ToastStore`
12
+ - Types: `ToastActionOwnProps`, `ToastActionProps`, `ToastCloseOwnProps`, `ToastCloseProps`, `ToastLabels`, `ToastDescriptionOwnProps`, `ToastProviderOwnProps`, `ToastRootOwnProps`, `ToastTitleOwnProps`, `ToastViewportOwnProps`, `ToastInput`, `ToastPriority`, `ToastRecord`, `ToastStore`
13
13
 
14
14
  ## Values
15
15
 
@@ -17,6 +17,14 @@
17
17
 
18
18
  ## Props and shapes
19
19
 
20
+ ### ToastLabels
21
+
22
+ | Member | Type | Required | Description |
23
+ | --- | --- | --- | --- |
24
+ | `region` | `string` | yes | |
25
+ | `notification` | `string` | yes | |
26
+ | `close` | `string` | yes | |
27
+
20
28
  ### ToastAction
21
29
 
22
30
  | Member | Type | Required | Description |
@@ -82,12 +90,14 @@
82
90
  | `pause` | `(id: string) => void` | yes | |
83
91
  | `resume` | `(id: string) => void` | yes | |
84
92
  | `store` | `ToastStore` | yes | |
93
+ | `labels` | `ToastLabels` | yes | |
85
94
 
86
95
  ### ToastProviderOwnProps
87
96
 
88
97
  | Member | Type | Required | Description |
89
98
  | --- | --- | --- | --- |
90
99
  | `children` | `ReactNode` | no | |
100
+ | `labels` | `Partial<ToastLabels>` | no | |
91
101
  | `limit` | `number` | no | |
92
102
 
93
103
  ### ToastViewportOwnProps
@@ -97,6 +107,7 @@
97
107
  | `"aria-label"` | `string` | no | |
98
108
  | `children` | `ReactNode` | no | |
99
109
  | `className` | `string` | no | |
110
+ | `labels` | `Partial<ToastLabels>` | no | |
100
111
  | `popover` | `"manual"` | no | Set by the live client viewport (@gunkin/uiify/components/toast/Toast.js) to `"manual"` so the queue's rendered surface sits in the top layer. The structural shell (this file's own re-exported ToastViewport, used directly by "Toast server shell" tests and any no-JS render) leaves it unset, since there is no queue-driven show/hide to wire up there. |
101
112
  | `ref` | `Ref<HTMLElement>` | no | |
102
113
 
@@ -104,6 +115,7 @@
104
115
 
105
116
  | Member | Type | Required | Description |
106
117
  | --- | --- | --- | --- |
118
+ | `labels` | `Partial<ToastLabels>` | no | |
107
119
  | `toast` | `ToastRecord` | yes | |
108
120
 
109
121
  ### ToastTitleOwnProps
@@ -141,6 +153,7 @@ Extends: `ToastActionOwnProps`
141
153
  | --- | --- | --- | --- |
142
154
  | `children` | `ReactNode` | no | |
143
155
  | `className` | `string` | no | |
156
+ | `labels` | `Partial<ToastLabels>` | no | |
144
157
 
145
158
  ### ToastCloseProps
146
159
 
@@ -51,7 +51,7 @@
51
51
  }
52
52
  [data-positioning=native][data-side=right] {
53
53
  position-area: right;
54
- margin-inline-start: var(--uiify-anchor-offset, 0);
54
+ margin-left: var(--uiify-anchor-offset, 0);
55
55
  }
56
56
  [data-positioning=native][data-side=bottom] {
57
57
  position-area: bottom;
@@ -59,22 +59,22 @@
59
59
  }
60
60
  [data-positioning=native][data-side=left] {
61
61
  position-area: left;
62
- margin-inline-end: var(--uiify-anchor-offset, 0);
62
+ margin-right: var(--uiify-anchor-offset, 0);
63
63
  }
64
64
  [data-positioning=native][data-side=top][data-align=start] {
65
- position-area: top span-right;
65
+ position-area: block-start span-inline-end;
66
66
  justify-self: start;
67
67
  }
68
68
  [data-positioning=native][data-side=top][data-align=end] {
69
- position-area: top span-left;
69
+ position-area: block-start span-inline-start;
70
70
  justify-self: end;
71
71
  }
72
72
  [data-positioning=native][data-side=bottom][data-align=start] {
73
- position-area: bottom span-right;
73
+ position-area: block-end span-inline-end;
74
74
  justify-self: start;
75
75
  }
76
76
  [data-positioning=native][data-side=bottom][data-align=end] {
77
- position-area: bottom span-left;
77
+ position-area: block-end span-inline-start;
78
78
  justify-self: end;
79
79
  }
80
80
  [data-positioning=native][data-side=right][data-align=start] {
@@ -109,8 +109,8 @@
109
109
  }
110
110
  [data-uiify-tabs] > [data-part=item] > [data-part=control] {
111
111
  position: absolute;
112
- width: 1px;
113
- height: 1px;
112
+ inline-size: 1px;
113
+ block-size: 1px;
114
114
  padding: 0;
115
115
  margin: -1px;
116
116
  overflow: hidden;
@@ -211,7 +211,7 @@
211
211
  }
212
212
  [data-uiify-virtual-scroll] {
213
213
  --uiify-virtual-scroll-row-height: 64px;
214
- overflow-y: auto;
214
+ overflow-block: auto;
215
215
  }
216
216
  [data-uiify-virtual-scroll] > [data-part=spacer] {
217
217
  position: relative;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/behavior.css"],"sourcesContent":["/* Behavioral rules for @gunkin/uiify/components — zero visual opinion.\n * Import is required: @import \"@gunkin/uiify/components/behavior.css\";\n * Cascade order: consumer app layer wins without specificity fights. */\n@layer ui.reset, ui.behavior, ui.tokens, ui.theme, app;\n\n@layer ui.behavior {\n [data-uiify-file-upload] > [data-part=\"input\"] {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n clip-path: inset(50%);\n overflow: hidden;\n white-space: nowrap;\n }\n [data-uiify-header][data-placement=\"sticky\"] {\n position: sticky;\n inset-block-start: 0;\n }\n\n [data-uiify-header][data-placement=\"sticky\"][data-state=\"hidden\"]:not(\n :focus-within,\n :has(dialog[open], details[open], :popover-open)\n ) {\n translate: 0 -100%;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n [data-uiify-header][data-placement=\"sticky\"][data-state] {\n transition: translate 200ms ease-out;\n }\n }\n\n [popover]:not(:popover-open) {\n display: none;\n }\n\n /* Native modal dialogs: wheel/touch scrolling inside the dialog must not chain to the page behind it. */\n dialog:modal {\n overscroll-behavior: contain;\n }\n\n /* Open modal dialogs lock the page scroll, iOS Safari included (checked on iOS 27: a swipe on\n the backdrop or the dialog leaves scrollY unchanged). The stable gutter keeps a classic\n scrollbar's width, so the page does not shift when the dialog opens. */\n :root:has(dialog:modal) {\n overflow: hidden;\n scrollbar-gutter: stable;\n }\n\n /* Closed dialogs stay hidden even when author CSS sets display. */\n dialog:not([open]) {\n display: none;\n }\n\n [data-anchor]:not([data-positioning]) {\n anchor-name: var(--uiify-anchor, attr(data-anchor type(<custom-ident>)));\n }\n\n [data-positioning=\"native\"] {\n position: fixed;\n inset: auto;\n margin: 0;\n position-try-fallbacks: flip-block, flip-inline;\n }\n\n [data-positioning=\"native\"][data-anchor] {\n position-anchor: var(--uiify-anchor, attr(data-anchor type(<custom-ident>)));\n }\n\n [data-positioning=\"native\"][data-side=\"top\"] {\n position-area: top;\n margin-block-end: var(--uiify-anchor-offset, 0);\n }\n\n [data-positioning=\"native\"][data-side=\"right\"] {\n position-area: right;\n margin-inline-start: var(--uiify-anchor-offset, 0);\n }\n\n [data-positioning=\"native\"][data-side=\"bottom\"] {\n position-area: bottom;\n margin-block-start: var(--uiify-anchor-offset, 0);\n }\n\n [data-positioning=\"native\"][data-side=\"left\"] {\n position-area: left;\n margin-inline-end: var(--uiify-anchor-offset, 0);\n }\n\n [data-positioning=\"native\"][data-side=\"top\"][data-align=\"start\"] {\n position-area: top span-right;\n justify-self: start;\n }\n\n [data-positioning=\"native\"][data-side=\"top\"][data-align=\"end\"] {\n position-area: top span-left;\n justify-self: end;\n }\n\n [data-positioning=\"native\"][data-side=\"bottom\"][data-align=\"start\"] {\n position-area: bottom span-right;\n justify-self: start;\n }\n\n [data-positioning=\"native\"][data-side=\"bottom\"][data-align=\"end\"] {\n position-area: bottom span-left;\n justify-self: end;\n }\n\n [data-positioning=\"native\"][data-side=\"right\"][data-align=\"start\"] {\n align-self: start;\n position-area: right span-bottom;\n }\n\n [data-positioning=\"native\"][data-side=\"right\"][data-align=\"end\"] {\n align-self: end;\n position-area: right span-top;\n }\n\n [data-positioning=\"native\"][data-side=\"left\"][data-align=\"start\"] {\n align-self: start;\n position-area: left span-bottom;\n }\n\n [data-positioning=\"native\"][data-side=\"left\"][data-align=\"end\"] {\n align-self: end;\n position-area: left span-top;\n }\n\n /*\n * Local open-state hooks. Top layer does not change DOM ancestry, so a scope\n * that directly contains its surface can read the native state. Consumers\n * style with the selector or with the variable; neither is a second source of truth.\n *\n * Compound roots and their public trigger parts share one component identity plus\n * `data-part`, so native state stays readable without a second scope convention.\n */\n [data-uiify-modal][data-part=\"root\"]:has(> [data-uiify-modal][data-part=\"content\"][open])\n > [data-uiify-modal][data-part=\"trigger\"],\n [data-uiify-alert-modal][data-part=\"root\"]:has(\n > [data-uiify-alert-modal][data-part=\"content\"][open]\n )\n > [data-uiify-alert-modal][data-part=\"trigger\"],\n [data-uiify-popup][data-part=\"root\"]:has(> [data-uiify-popup][data-part=\"content\"]:popover-open)\n > [data-uiify-popup][data-part=\"trigger\"] {\n --uiify-trigger-open: 1;\n }\n\n [data-uiify-accordion] > [data-part=\"item\"][data-disabled] > summary,\n [data-uiify-collapsible][data-disabled] > summary {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* Customizable select: opts the control and its picker into the browser's\n base styles so the picker becomes a styleable, top-layer popover with\n implicit anchor positioning. Behavior only — no visual opinion. Engines\n without support ignore this and keep the classic OS picker, which stays\n fully functional. */\n [data-uiify-select],\n [data-uiify-select]::picker(select) {\n appearance: base-select;\n }\n\n [data-uiify-tabs] > [data-part=\"item\"] > [data-part=\"control\"] {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n /* stylelint-disable-next-line property-no-deprecated -- kept for older browser support alongside clip-path */\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n [data-uiify-tabs] > [data-part=\"item\"] > [data-part=\"panel\"] {\n display: none;\n }\n\n [data-uiify-tabs] > [data-part=\"item\"] > [data-part=\"control\"]:checked ~ [data-part=\"panel\"] {\n display: block;\n }\n\n [data-uiify-tabs] [data-part=\"trigger\"][data-disabled] {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n [data-uiify-spinner][data-state=\"delayed\"] {\n animation-name: uiify-spinner-show;\n animation-duration: 0s;\n animation-delay: attr(data-delay type(<time>), 0s);\n animation-fill-mode: forwards;\n visibility: hidden;\n }\n\n @keyframes uiify-spinner-show {\n to {\n visibility: visible;\n }\n }\n\n [data-uiify-breadcrumb] [data-part=\"ellipsis\"] > ol {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n [data-uiify-carousel] > [data-part=\"viewport\"] {\n display: grid;\n min-inline-size: 0;\n min-block-size: 0;\n gap: var(--uiify-carousel-gap, 0);\n scroll-behavior: auto;\n }\n\n [data-uiify-carousel][data-axis=\"inline\"] > [data-part=\"viewport\"] {\n grid-auto-flow: column;\n grid-auto-columns: var(--uiify-carousel-slide-size, 100%);\n overflow-inline: auto;\n overflow-block: hidden;\n scroll-snap-type: inline mandatory;\n }\n\n [data-uiify-carousel][data-axis=\"block\"] > [data-part=\"viewport\"] {\n grid-auto-flow: row;\n grid-auto-rows: var(--uiify-carousel-slide-size, 100%);\n overflow-block: auto;\n overflow-inline: hidden;\n scroll-snap-type: block mandatory;\n }\n\n [data-uiify-carousel] > [data-part=\"viewport\"] > [data-part=\"slide\"] {\n min-inline-size: 0;\n min-block-size: 0;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n }\n\n [data-uiify-carousel] > [data-part=\"viewport\"]:focus-visible,\n [data-uiify-carousel] > button[data-part=\"controls\"]:focus-visible,\n [data-uiify-carousel] > [data-part=\"dots\"] > a:focus-visible {\n outline: auto;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n [data-uiify-carousel] > [data-part=\"viewport\"] {\n scroll-behavior: smooth;\n }\n }\n\n [data-uiify-carousel] > [data-part=\"viewport\"][data-dragging] {\n scroll-behavior: auto;\n scroll-snap-type: none;\n }\n\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced] > [data-part=\"viewport\"] {\n grid-auto-flow: row;\n grid-template-columns: 100%;\n grid-auto-columns: auto;\n overflow: hidden;\n scroll-snap-type: none;\n touch-action: pan-y pinch-zoom;\n }\n\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced]\n > [data-part=\"viewport\"]\n > [data-part=\"slide\"] {\n grid-area: 1 / 1;\n opacity: 0;\n pointer-events: none;\n }\n\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced]\n > [data-part=\"viewport\"]\n > [data-part=\"slide\"][data-state=\"active\"] {\n opacity: 1;\n pointer-events: auto;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced]\n > [data-part=\"viewport\"]\n > [data-part=\"slide\"] {\n transition: opacity var(--uiify-carousel-fade-duration, 300ms) ease;\n }\n }\n\n [data-uiify-virtual-scroll] {\n --uiify-virtual-scroll-row-height: 64px;\n\n overflow-y: auto;\n }\n\n [data-uiify-virtual-scroll] > [data-part=\"spacer\"] {\n position: relative;\n block-size: var(\n --uiify-virtual-scroll-total-size,\n calc(var(--uiify-virtual-scroll-count, 0) * var(--uiify-virtual-scroll-row-height))\n );\n }\n\n [data-uiify-virtual-scroll] [data-part=\"row\"] {\n --uiify-row-position: var(\n --uiify-row-offset,\n calc(\n (var(--uiify-range-start, 0) + var(--uiify-slot-index, 0)) *\n var(--uiify-virtual-scroll-row-height)\n )\n );\n\n position: absolute;\n inset-inline: 0;\n block-size: var(--uiify-row-height, var(--uiify-virtual-scroll-row-height));\n translate: 0 var(--uiify-row-position);\n }\n\n /* Horizontal: the row size runs along the inline axis. Rows sit at a logical\n inline offset so RTL needs no direction selector; child combinators keep a\n vertical list nested inside a horizontal row on the vertical rules. */\n [data-uiify-virtual-scroll][data-orientation=\"horizontal\"] {\n overflow: auto hidden;\n }\n\n [data-uiify-virtual-scroll][data-orientation=\"horizontal\"] > [data-part=\"spacer\"] {\n block-size: 100%;\n inline-size: var(\n --uiify-virtual-scroll-total-size,\n calc(var(--uiify-virtual-scroll-count, 0) * var(--uiify-virtual-scroll-row-height))\n );\n }\n\n [data-uiify-virtual-scroll][data-orientation=\"horizontal\"]\n > [data-part=\"spacer\"]\n > [data-part=\"row\"] {\n inset-block: 0;\n inset-inline: var(--uiify-row-position) auto;\n block-size: auto;\n inline-size: var(--uiify-row-height, var(--uiify-virtual-scroll-row-height));\n translate: none;\n }\n\n /*\n * Toast list changes commit as React view transitions typed \"uiify-toast\".\n * Only the toast cards are captured: the page root is not snapshotted and\n * stays clickable while they move.\n */\n :root:active-view-transition-type(uiify-toast) {\n view-transition-name: none;\n }\n\n :root:active-view-transition-type(uiify-toast)::view-transition {\n pointer-events: none;\n }\n\n @media (prefers-reduced-motion: reduce) {\n ::view-transition-group(.uiify-toast),\n ::view-transition-old(.uiify-toast),\n ::view-transition-new(.uiify-toast) {\n animation: none;\n }\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/components/behavior.css"],"sourcesContent":["/* Behavioral rules for @gunkin/uiify/components — zero visual opinion.\n * Import is required: @import \"@gunkin/uiify/components/behavior.css\";\n * Cascade order: consumer app layer wins without specificity fights. */\n@layer ui.reset, ui.behavior, ui.tokens, ui.theme, app;\n\n@layer ui.behavior {\n [data-uiify-file-upload] > [data-part=\"input\"] {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n clip-path: inset(50%);\n overflow: hidden;\n white-space: nowrap;\n }\n [data-uiify-header][data-placement=\"sticky\"] {\n position: sticky;\n inset-block-start: 0;\n }\n\n [data-uiify-header][data-placement=\"sticky\"][data-state=\"hidden\"]:not(\n :focus-within,\n :has(dialog[open], details[open], :popover-open)\n ) {\n translate: 0 -100%;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n [data-uiify-header][data-placement=\"sticky\"][data-state] {\n transition: translate 200ms ease-out;\n }\n }\n\n [popover]:not(:popover-open) {\n display: none;\n }\n\n /* Native modal dialogs: wheel/touch scrolling inside the dialog must not chain to the page behind it. */\n dialog:modal {\n overscroll-behavior: contain;\n }\n\n /* Open modal dialogs lock the page scroll, iOS Safari included (checked on iOS 27: a swipe on\n the backdrop or the dialog leaves scrollY unchanged). The stable gutter keeps a classic\n scrollbar's width, so the page does not shift when the dialog opens. */\n :root:has(dialog:modal) {\n overflow: hidden;\n scrollbar-gutter: stable;\n }\n\n /* Closed dialogs stay hidden even when author CSS sets display. */\n dialog:not([open]) {\n display: none;\n }\n\n [data-anchor]:not([data-positioning]) {\n anchor-name: var(--uiify-anchor, attr(data-anchor type(<custom-ident>)));\n }\n\n [data-positioning=\"native\"] {\n position: fixed;\n inset: auto;\n margin: 0;\n position-try-fallbacks: flip-block, flip-inline;\n }\n\n [data-positioning=\"native\"][data-anchor] {\n position-anchor: var(--uiify-anchor, attr(data-anchor type(<custom-ident>)));\n }\n\n [data-positioning=\"native\"][data-side=\"top\"] {\n position-area: top;\n margin-block-end: var(--uiify-anchor-offset, 0);\n }\n\n [data-positioning=\"native\"][data-side=\"right\"] {\n position-area: right;\n\n /* Physical on purpose: the offset must match the physical data-side, not the writing direction. */\n /* stylelint-disable-next-line logical-css/require-logical-properties -- `side=\"right\"` stays physical. */\n margin-left: var(--uiify-anchor-offset, 0);\n }\n\n [data-positioning=\"native\"][data-side=\"bottom\"] {\n position-area: bottom;\n margin-block-start: var(--uiify-anchor-offset, 0);\n }\n\n [data-positioning=\"native\"][data-side=\"left\"] {\n position-area: left;\n\n /* Physical on purpose: the offset must match the physical data-side, not the writing direction. */\n /* stylelint-disable-next-line logical-css/require-logical-properties -- `side=\"left\"` stays physical. */\n margin-right: var(--uiify-anchor-offset, 0);\n }\n\n [data-positioning=\"native\"][data-side=\"top\"][data-align=\"start\"] {\n position-area: block-start span-inline-end;\n justify-self: start;\n }\n\n [data-positioning=\"native\"][data-side=\"top\"][data-align=\"end\"] {\n position-area: block-start span-inline-start;\n justify-self: end;\n }\n\n [data-positioning=\"native\"][data-side=\"bottom\"][data-align=\"start\"] {\n position-area: block-end span-inline-end;\n justify-self: start;\n }\n\n [data-positioning=\"native\"][data-side=\"bottom\"][data-align=\"end\"] {\n position-area: block-end span-inline-start;\n justify-self: end;\n }\n\n [data-positioning=\"native\"][data-side=\"right\"][data-align=\"start\"] {\n align-self: start;\n position-area: right span-bottom;\n }\n\n [data-positioning=\"native\"][data-side=\"right\"][data-align=\"end\"] {\n align-self: end;\n position-area: right span-top;\n }\n\n [data-positioning=\"native\"][data-side=\"left\"][data-align=\"start\"] {\n align-self: start;\n position-area: left span-bottom;\n }\n\n [data-positioning=\"native\"][data-side=\"left\"][data-align=\"end\"] {\n align-self: end;\n position-area: left span-top;\n }\n\n /*\n * Local open-state hooks. Top layer does not change DOM ancestry, so a scope\n * that directly contains its surface can read the native state. Consumers\n * style with the selector or with the variable; neither is a second source of truth.\n *\n * Compound roots and their public trigger parts share one component identity plus\n * `data-part`, so native state stays readable without a second scope convention.\n */\n [data-uiify-modal][data-part=\"root\"]:has(> [data-uiify-modal][data-part=\"content\"][open])\n > [data-uiify-modal][data-part=\"trigger\"],\n [data-uiify-alert-modal][data-part=\"root\"]:has(\n > [data-uiify-alert-modal][data-part=\"content\"][open]\n )\n > [data-uiify-alert-modal][data-part=\"trigger\"],\n [data-uiify-popup][data-part=\"root\"]:has(> [data-uiify-popup][data-part=\"content\"]:popover-open)\n > [data-uiify-popup][data-part=\"trigger\"] {\n --uiify-trigger-open: 1;\n }\n\n [data-uiify-accordion] > [data-part=\"item\"][data-disabled] > summary,\n [data-uiify-collapsible][data-disabled] > summary {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* Customizable select: opts the control and its picker into the browser's\n base styles so the picker becomes a styleable, top-layer popover with\n implicit anchor positioning. Behavior only — no visual opinion. Engines\n without support ignore this and keep the classic OS picker, which stays\n fully functional. */\n [data-uiify-select],\n [data-uiify-select]::picker(select) {\n appearance: base-select;\n }\n\n [data-uiify-tabs] > [data-part=\"item\"] > [data-part=\"control\"] {\n position: absolute;\n inline-size: 1px;\n block-size: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n /* stylelint-disable-next-line property-no-deprecated -- kept for older browser support alongside clip-path */\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n [data-uiify-tabs] > [data-part=\"item\"] > [data-part=\"panel\"] {\n display: none;\n }\n\n [data-uiify-tabs] > [data-part=\"item\"] > [data-part=\"control\"]:checked ~ [data-part=\"panel\"] {\n display: block;\n }\n\n [data-uiify-tabs] [data-part=\"trigger\"][data-disabled] {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n [data-uiify-spinner][data-state=\"delayed\"] {\n animation-name: uiify-spinner-show;\n animation-duration: 0s;\n animation-delay: attr(data-delay type(<time>), 0s);\n animation-fill-mode: forwards;\n visibility: hidden;\n }\n\n @keyframes uiify-spinner-show {\n to {\n visibility: visible;\n }\n }\n\n [data-uiify-breadcrumb] [data-part=\"ellipsis\"] > ol {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n [data-uiify-carousel] > [data-part=\"viewport\"] {\n display: grid;\n min-inline-size: 0;\n min-block-size: 0;\n gap: var(--uiify-carousel-gap, 0);\n scroll-behavior: auto;\n }\n\n [data-uiify-carousel][data-axis=\"inline\"] > [data-part=\"viewport\"] {\n grid-auto-flow: column;\n grid-auto-columns: var(--uiify-carousel-slide-size, 100%);\n overflow-inline: auto;\n overflow-block: hidden;\n scroll-snap-type: inline mandatory;\n }\n\n [data-uiify-carousel][data-axis=\"block\"] > [data-part=\"viewport\"] {\n grid-auto-flow: row;\n grid-auto-rows: var(--uiify-carousel-slide-size, 100%);\n overflow-block: auto;\n overflow-inline: hidden;\n scroll-snap-type: block mandatory;\n }\n\n [data-uiify-carousel] > [data-part=\"viewport\"] > [data-part=\"slide\"] {\n min-inline-size: 0;\n min-block-size: 0;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n }\n\n [data-uiify-carousel] > [data-part=\"viewport\"]:focus-visible,\n [data-uiify-carousel] > button[data-part=\"controls\"]:focus-visible,\n [data-uiify-carousel] > [data-part=\"dots\"] > a:focus-visible {\n outline: auto;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n [data-uiify-carousel] > [data-part=\"viewport\"] {\n scroll-behavior: smooth;\n }\n }\n\n [data-uiify-carousel] > [data-part=\"viewport\"][data-dragging] {\n scroll-behavior: auto;\n scroll-snap-type: none;\n }\n\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced] > [data-part=\"viewport\"] {\n grid-auto-flow: row;\n grid-template-columns: 100%;\n grid-auto-columns: auto;\n overflow: hidden;\n scroll-snap-type: none;\n touch-action: pan-y pinch-zoom;\n }\n\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced]\n > [data-part=\"viewport\"]\n > [data-part=\"slide\"] {\n grid-area: 1 / 1;\n opacity: 0;\n pointer-events: none;\n }\n\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced]\n > [data-part=\"viewport\"]\n > [data-part=\"slide\"][data-state=\"active\"] {\n opacity: 1;\n pointer-events: auto;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced]\n > [data-part=\"viewport\"]\n > [data-part=\"slide\"] {\n transition: opacity var(--uiify-carousel-fade-duration, 300ms) ease;\n }\n }\n\n [data-uiify-virtual-scroll] {\n --uiify-virtual-scroll-row-height: 64px;\n\n overflow-block: auto;\n }\n\n [data-uiify-virtual-scroll] > [data-part=\"spacer\"] {\n position: relative;\n block-size: var(\n --uiify-virtual-scroll-total-size,\n calc(var(--uiify-virtual-scroll-count, 0) * var(--uiify-virtual-scroll-row-height))\n );\n }\n\n [data-uiify-virtual-scroll] [data-part=\"row\"] {\n --uiify-row-position: var(\n --uiify-row-offset,\n calc(\n (var(--uiify-range-start, 0) + var(--uiify-slot-index, 0)) *\n var(--uiify-virtual-scroll-row-height)\n )\n );\n\n position: absolute;\n inset-inline: 0;\n block-size: var(--uiify-row-height, var(--uiify-virtual-scroll-row-height));\n translate: 0 var(--uiify-row-position);\n }\n\n /* Horizontal: the row size runs along the inline axis. Rows sit at a logical\n inline offset so RTL needs no direction selector; child combinators keep a\n vertical list nested inside a horizontal row on the vertical rules. */\n [data-uiify-virtual-scroll][data-orientation=\"horizontal\"] {\n overflow: auto hidden;\n }\n\n [data-uiify-virtual-scroll][data-orientation=\"horizontal\"] > [data-part=\"spacer\"] {\n block-size: 100%;\n inline-size: var(\n --uiify-virtual-scroll-total-size,\n calc(var(--uiify-virtual-scroll-count, 0) * var(--uiify-virtual-scroll-row-height))\n );\n }\n\n [data-uiify-virtual-scroll][data-orientation=\"horizontal\"]\n > [data-part=\"spacer\"]\n > [data-part=\"row\"] {\n inset-block: 0;\n inset-inline: var(--uiify-row-position) auto;\n block-size: auto;\n inline-size: var(--uiify-row-height, var(--uiify-virtual-scroll-row-height));\n translate: none;\n }\n\n /*\n * Toast list changes commit as React view transitions typed \"uiify-toast\".\n * Only the toast cards are captured: the page root is not snapshotted and\n * stays clickable while they move.\n */\n :root:active-view-transition-type(uiify-toast) {\n view-transition-name: none;\n }\n\n :root:active-view-transition-type(uiify-toast)::view-transition {\n pointer-events: none;\n }\n\n @media (prefers-reduced-motion: reduce) {\n ::view-transition-group(.uiify-toast),\n ::view-transition-old(.uiify-toast),\n ::view-transition-new(.uiify-toast) {\n animation: none;\n }\n }\n}\n"],"mappings":"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","names":[]}