@gunkin/uiify 0.0.25-alpha → 0.0.26-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 (336) hide show
  1. package/agents/reference/components/accordion.md +4 -4
  2. package/agents/reference/components/alert-modal.md +10 -10
  3. package/agents/reference/components/alert.md +1 -1
  4. package/agents/reference/components/aspect-ratio.md +1 -1
  5. package/agents/reference/components/avatar.md +2 -2
  6. package/agents/reference/components/breadcrumb.md +9 -10
  7. package/agents/reference/components/candle-chart.md +35 -35
  8. package/agents/reference/components/carousel.md +10 -14
  9. package/agents/reference/components/collapsible.md +3 -3
  10. package/agents/reference/components/color-picker.md +6 -6
  11. package/agents/reference/components/combobox.md +7 -17
  12. package/agents/reference/components/context-menu.md +5 -26
  13. package/agents/reference/components/date-picker.md +2 -1
  14. package/agents/reference/components/drawer.md +17 -31
  15. package/agents/reference/components/dropdown-menu.md +2 -3
  16. package/agents/reference/components/field.md +11 -11
  17. package/agents/reference/components/form-error-summary.md +4 -4
  18. package/agents/reference/components/input-group.md +1 -0
  19. package/agents/reference/components/input.md +1 -0
  20. package/agents/reference/components/line-chart.md +29 -29
  21. package/agents/reference/components/modal.md +13 -15
  22. package/agents/reference/components/number-field.md +1 -1
  23. package/agents/reference/components/otp-input.md +2 -1
  24. package/agents/reference/components/pagination.md +7 -8
  25. package/agents/reference/components/rating.md +1 -1
  26. package/agents/reference/components/segmented-control.md +1 -0
  27. package/agents/reference/components/select.md +1 -0
  28. package/agents/reference/components/slider.md +4 -4
  29. package/agents/reference/components/spinner.md +1 -1
  30. package/agents/reference/components/table.md +1 -1
  31. package/agents/reference/components/tabs.md +6 -6
  32. package/agents/reference/components/tags-input.md +5 -12
  33. package/agents/reference/components/toast.md +8 -15
  34. package/agents/reference/components/toggle.md +4 -3
  35. package/agents/reference/components/virtual-scroll.md +4 -5
  36. package/agents/reference/elements/choice.md +3 -3
  37. package/agents/reference/elements/details.md +2 -2
  38. package/agents/reference/elements/popover.md +3 -3
  39. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  40. package/dist/components/accordion/Accordion.js +20 -46
  41. package/dist/components/accordion/Accordion.js.map +1 -1
  42. package/dist/components/accordion/types.d.ts +6 -15
  43. package/dist/components/accordion/types.d.ts.map +1 -1
  44. package/dist/components/alert/Alert.d.ts.map +1 -1
  45. package/dist/components/alert/Alert.js +5 -14
  46. package/dist/components/alert/Alert.js.map +1 -1
  47. package/dist/components/alert/types.d.ts +3 -7
  48. package/dist/components/alert/types.d.ts.map +1 -1
  49. package/dist/components/alert-modal/AlertModal.d.ts.map +1 -1
  50. package/dist/components/alert-modal/AlertModal.js +28 -137
  51. package/dist/components/alert-modal/AlertModal.js.map +1 -1
  52. package/dist/components/alert-modal/AlertModalParts.d.ts.map +1 -1
  53. package/dist/components/alert-modal/AlertModalParts.js +4 -37
  54. package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
  55. package/dist/components/alert-modal/types.d.ts +15 -33
  56. package/dist/components/alert-modal/types.d.ts.map +1 -1
  57. package/dist/components/aspect-ratio/AspectRatio.d.ts.map +1 -1
  58. package/dist/components/aspect-ratio/AspectRatio.js +4 -12
  59. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
  60. package/dist/components/aspect-ratio/types.d.ts +3 -6
  61. package/dist/components/aspect-ratio/types.d.ts.map +1 -1
  62. package/dist/components/avatar/Avatar.d.ts.map +1 -1
  63. package/dist/components/avatar/Avatar.js +4 -21
  64. package/dist/components/avatar/Avatar.js.map +1 -1
  65. package/dist/components/avatar/types.d.ts +4 -14
  66. package/dist/components/avatar/types.d.ts.map +1 -1
  67. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  68. package/dist/components/breadcrumb/Breadcrumb.js +43 -123
  69. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  70. package/dist/components/breadcrumb/types.d.ts +12 -35
  71. package/dist/components/breadcrumb/types.d.ts.map +1 -1
  72. package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
  73. package/dist/components/candle-chart/CandleChart.js +122 -186
  74. package/dist/components/candle-chart/CandleChart.js.map +1 -1
  75. package/dist/components/candle-chart/client/CandleChartClient.d.ts.map +1 -1
  76. package/dist/components/candle-chart/client/CandleChartClient.js +8 -15
  77. package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
  78. package/dist/components/candle-chart/types.d.ts +42 -116
  79. package/dist/components/candle-chart/types.d.ts.map +1 -1
  80. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  81. package/dist/components/carousel/CarouselMarkup.js +55 -142
  82. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  83. package/dist/components/carousel/types.d.ts +13 -80
  84. package/dist/components/carousel/types.d.ts.map +1 -1
  85. package/dist/components/collapsible/Collapsible.d.ts +1 -5
  86. package/dist/components/collapsible/Collapsible.d.ts.map +1 -1
  87. package/dist/components/collapsible/Collapsible.js +3 -33
  88. package/dist/components/collapsible/Collapsible.js.map +1 -1
  89. package/dist/components/collapsible/types.d.ts +4 -18
  90. package/dist/components/collapsible/types.d.ts.map +1 -1
  91. package/dist/components/color-picker/ColorPicker.d.ts.map +1 -1
  92. package/dist/components/color-picker/ColorPicker.js +28 -123
  93. package/dist/components/color-picker/ColorPicker.js.map +1 -1
  94. package/dist/components/color-picker/types.d.ts +11 -30
  95. package/dist/components/color-picker/types.d.ts.map +1 -1
  96. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  97. package/dist/components/combobox/Combobox.js +30 -23
  98. package/dist/components/combobox/Combobox.js.map +1 -1
  99. package/dist/components/combobox/types.d.ts +9 -29
  100. package/dist/components/combobox/types.d.ts.map +1 -1
  101. package/dist/components/context-menu/ContextMenu.d.ts.map +1 -1
  102. package/dist/components/context-menu/ContextMenu.js +30 -53
  103. package/dist/components/context-menu/ContextMenu.js.map +1 -1
  104. package/dist/components/context-menu/types.d.ts +6 -31
  105. package/dist/components/context-menu/types.d.ts.map +1 -1
  106. package/dist/components/date-picker/DatePicker.d.ts +1 -1
  107. package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
  108. package/dist/components/date-picker/DatePicker.js +2 -1
  109. package/dist/components/date-picker/DatePicker.js.map +1 -1
  110. package/dist/components/date-picker/types.d.ts +4 -1
  111. package/dist/components/date-picker/types.d.ts.map +1 -1
  112. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  113. package/dist/components/drawer/Drawer.js +12 -12
  114. package/dist/components/drawer/Drawer.js.map +1 -1
  115. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  116. package/dist/components/drawer/DrawerNative.js +47 -252
  117. package/dist/components/drawer/DrawerNative.js.map +1 -1
  118. package/dist/components/drawer/types.d.ts +25 -30
  119. package/dist/components/drawer/types.d.ts.map +1 -1
  120. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  121. package/dist/components/dropdown-menu/DropdownMenu.js +30 -27
  122. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  123. package/dist/components/dropdown-menu/DropdownMenuBar.d.ts.map +1 -1
  124. package/dist/components/dropdown-menu/DropdownMenuBar.js +3 -7
  125. package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
  126. package/dist/components/dropdown-menu/types.d.ts +2 -5
  127. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  128. package/dist/components/field/Field.js +7 -7
  129. package/dist/components/field/Field.js.map +1 -1
  130. package/dist/components/field/types.d.ts +11 -11
  131. package/dist/components/field/types.d.ts.map +1 -1
  132. package/dist/components/form-error-summary/FormErrorSummary.d.ts.map +1 -1
  133. package/dist/components/form-error-summary/FormErrorSummary.js +20 -34
  134. package/dist/components/form-error-summary/FormErrorSummary.js.map +1 -1
  135. package/dist/components/form-error-summary/types.d.ts +6 -16
  136. package/dist/components/form-error-summary/types.d.ts.map +1 -1
  137. package/dist/components/hover-card/HoverCard.d.ts.map +1 -1
  138. package/dist/components/hover-card/HoverCard.js +9 -9
  139. package/dist/components/hover-card/HoverCard.js.map +1 -1
  140. package/dist/components/input/Input.d.ts.map +1 -1
  141. package/dist/components/input/Input.js +2 -0
  142. package/dist/components/input/Input.js.map +1 -1
  143. package/dist/components/input/types.d.ts +3 -0
  144. package/dist/components/input/types.d.ts.map +1 -1
  145. package/dist/components/input-group/InputGroup.d.ts.map +1 -1
  146. package/dist/components/input-group/InputGroup.js +2 -1
  147. package/dist/components/input-group/InputGroup.js.map +1 -1
  148. package/dist/components/input-group/types.d.ts +3 -0
  149. package/dist/components/input-group/types.d.ts.map +1 -1
  150. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.d.ts +2 -2
  151. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.d.ts.map +1 -1
  152. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.js +11 -3
  153. package/dist/components/internal/chart-scrollbar/use-scrollbar-reserve.js.map +1 -1
  154. package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
  155. package/dist/components/internal/choice-family/ChoiceGroup.js +14 -51
  156. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  157. package/dist/components/internal/choice-family/types.d.ts +8 -40
  158. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  159. package/dist/components/internal/control-size/types.d.ts +3 -0
  160. package/dist/components/internal/control-size/types.d.ts.map +1 -0
  161. package/dist/components/internal/control-size/types.js +1 -0
  162. package/dist/components/internal/control-size/types.js.map +1 -0
  163. package/dist/components/internal/live-chart/types.d.ts +3 -1
  164. package/dist/components/internal/live-chart/types.d.ts.map +1 -1
  165. package/dist/components/internal/live-chart/use-live-chart-window.d.ts.map +1 -1
  166. package/dist/components/internal/live-chart/use-live-chart-window.js +21 -5
  167. package/dist/components/internal/live-chart/use-live-chart-window.js.map +1 -1
  168. package/dist/components/internal/menu/menu-parts.d.ts.map +1 -1
  169. package/dist/components/internal/menu/menu-parts.js +3 -3
  170. package/dist/components/internal/menu/menu-parts.js.map +1 -1
  171. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -1
  172. package/dist/components/internal/native-check-control/NativeCheckControl.js +8 -32
  173. package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -1
  174. package/dist/components/internal/native-check-control/types.d.ts +4 -18
  175. package/dist/components/internal/native-check-control/types.d.ts.map +1 -1
  176. package/dist/components/line-chart/LineChart.d.ts.map +1 -1
  177. package/dist/components/line-chart/LineChart.js +134 -208
  178. package/dist/components/line-chart/LineChart.js.map +1 -1
  179. package/dist/components/line-chart/client/LineChartClient.d.ts.map +1 -1
  180. package/dist/components/line-chart/client/LineChartClient.js +8 -15
  181. package/dist/components/line-chart/client/LineChartClient.js.map +1 -1
  182. package/dist/components/line-chart/types.d.ts +36 -103
  183. package/dist/components/line-chart/types.d.ts.map +1 -1
  184. package/dist/components/modal/Modal.d.ts.map +1 -1
  185. package/dist/components/modal/Modal.js +34 -115
  186. package/dist/components/modal/Modal.js.map +1 -1
  187. package/dist/components/modal/ModalAnatomy.js +6 -6
  188. package/dist/components/modal/ModalAnatomy.js.map +1 -1
  189. package/dist/components/modal/ModalParts.js +1 -1
  190. package/dist/components/modal/ModalParts.js.map +1 -1
  191. package/dist/components/modal/client/ModalClientContent.d.ts.map +1 -1
  192. package/dist/components/modal/client/ModalClientContent.js +2 -2
  193. package/dist/components/modal/client/ModalClientContent.js.map +1 -1
  194. package/dist/components/modal/types.d.ts +19 -19
  195. package/dist/components/modal/types.d.ts.map +1 -1
  196. package/dist/components/number-field/NumberField.d.ts.map +1 -1
  197. package/dist/components/number-field/NumberField.js +13 -11
  198. package/dist/components/number-field/NumberField.js.map +1 -1
  199. package/dist/components/number-field/types.d.ts +1 -1
  200. package/dist/components/number-field/types.d.ts.map +1 -1
  201. package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
  202. package/dist/components/otp-input/OtpInput.js +9 -9
  203. package/dist/components/otp-input/OtpInput.js.map +1 -1
  204. package/dist/components/otp-input/types.d.ts +4 -1
  205. package/dist/components/otp-input/types.d.ts.map +1 -1
  206. package/dist/components/pagination/Pagination.d.ts.map +1 -1
  207. package/dist/components/pagination/Pagination.js +26 -69
  208. package/dist/components/pagination/Pagination.js.map +1 -1
  209. package/dist/components/pagination/PaginationShell.d.ts.map +1 -1
  210. package/dist/components/pagination/PaginationShell.js +5 -6
  211. package/dist/components/pagination/PaginationShell.js.map +1 -1
  212. package/dist/components/pagination/types.d.ts +9 -32
  213. package/dist/components/pagination/types.d.ts.map +1 -1
  214. package/dist/components/rating/types.d.ts +1 -5
  215. package/dist/components/rating/types.d.ts.map +1 -1
  216. package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
  217. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -1
  218. package/dist/components/segmented-control/SegmentedControl.js +4 -2
  219. package/dist/components/segmented-control/SegmentedControl.js.map +1 -1
  220. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts +1 -1
  221. package/dist/components/segmented-control/client/SegmentedControlClient.d.ts.map +1 -1
  222. package/dist/components/segmented-control/client/SegmentedControlClient.js +4 -2
  223. package/dist/components/segmented-control/client/SegmentedControlClient.js.map +1 -1
  224. package/dist/components/segmented-control/types.d.ts +3 -0
  225. package/dist/components/segmented-control/types.d.ts.map +1 -1
  226. package/dist/components/select/Select.d.ts.map +1 -1
  227. package/dist/components/select/Select.js +2 -0
  228. package/dist/components/select/Select.js.map +1 -1
  229. package/dist/components/select/types.d.ts +3 -0
  230. package/dist/components/select/types.d.ts.map +1 -1
  231. package/dist/components/slider/Slider.d.ts.map +1 -1
  232. package/dist/components/slider/Slider.js +12 -7
  233. package/dist/components/slider/Slider.js.map +1 -1
  234. package/dist/components/slider/client/SliderClient.d.ts.map +1 -1
  235. package/dist/components/slider/client/SliderClient.js +53 -100
  236. package/dist/components/slider/client/SliderClient.js.map +1 -1
  237. package/dist/components/slider/types.d.ts +8 -38
  238. package/dist/components/slider/types.d.ts.map +1 -1
  239. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  240. package/dist/components/spinner/Spinner.js +2 -10
  241. package/dist/components/spinner/Spinner.js.map +1 -1
  242. package/dist/components/spinner/types.d.ts +3 -6
  243. package/dist/components/spinner/types.d.ts.map +1 -1
  244. package/dist/components/table/client/TableColumnHeader.d.ts.map +1 -1
  245. package/dist/components/table/client/TableColumnHeader.js +1 -15
  246. package/dist/components/table/client/TableColumnHeader.js.map +1 -1
  247. package/dist/components/table/types.d.ts +2 -6
  248. package/dist/components/table/types.d.ts.map +1 -1
  249. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  250. package/dist/components/tabs/Tabs.js +9 -43
  251. package/dist/components/tabs/Tabs.js.map +1 -1
  252. package/dist/components/tabs/types.d.ts +8 -21
  253. package/dist/components/tabs/types.d.ts.map +1 -1
  254. package/dist/components/tags-input/TagsInput.d.ts.map +1 -1
  255. package/dist/components/tags-input/TagsInput.js +16 -27
  256. package/dist/components/tags-input/TagsInput.js.map +1 -1
  257. package/dist/components/tags-input/types.d.ts +8 -23
  258. package/dist/components/tags-input/types.d.ts.map +1 -1
  259. package/dist/components/toast/Toast.d.ts.map +1 -1
  260. package/dist/components/toast/Toast.js +13 -62
  261. package/dist/components/toast/Toast.js.map +1 -1
  262. package/dist/components/toast/ToastElements.d.ts.map +1 -1
  263. package/dist/components/toast/ToastElements.js +20 -57
  264. package/dist/components/toast/ToastElements.js.map +1 -1
  265. package/dist/components/toast/types.d.ts +9 -36
  266. package/dist/components/toast/types.d.ts.map +1 -1
  267. package/dist/components/toggle/Toggle.d.ts +1 -1
  268. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  269. package/dist/components/toggle/Toggle.js +36 -61
  270. package/dist/components/toggle/Toggle.js.map +1 -1
  271. package/dist/components/toggle/types.d.ts +5 -24
  272. package/dist/components/toggle/types.d.ts.map +1 -1
  273. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  274. package/dist/components/tooltip/Tooltip.js +4 -4
  275. package/dist/components/tooltip/Tooltip.js.map +1 -1
  276. package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
  277. package/dist/components/virtual-scroll/VirtualScroll.js +65 -43
  278. package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
  279. package/dist/components/virtual-scroll/VirtualScrollRowShell.js +2 -2
  280. package/dist/components/virtual-scroll/VirtualScrollRowShell.js.map +1 -1
  281. package/dist/components/virtual-scroll/types.d.ts +7 -20
  282. package/dist/components/virtual-scroll/types.d.ts.map +1 -1
  283. package/dist/components/virtual-scroll/types.js.map +1 -1
  284. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.d.ts +3 -0
  285. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.d.ts.map +1 -1
  286. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.js +11 -2
  287. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.js.map +1 -1
  288. package/dist/core/class-names.d.ts +3 -0
  289. package/dist/core/class-names.d.ts.map +1 -0
  290. package/dist/core/class-names.js +7 -0
  291. package/dist/core/class-names.js.map +1 -0
  292. package/dist/core/part-names.d.ts +8 -0
  293. package/dist/core/part-names.d.ts.map +1 -0
  294. package/dist/core/part-names.js +111 -0
  295. package/dist/core/part-names.js.map +1 -0
  296. package/dist/core/polymorphic.d.ts +10 -3
  297. package/dist/core/polymorphic.d.ts.map +1 -1
  298. package/dist/core/render-native-invoker.d.ts +1 -0
  299. package/dist/core/render-native-invoker.d.ts.map +1 -1
  300. package/dist/core/render-native-invoker.js +6 -6
  301. package/dist/core/render-native-invoker.js.map +1 -1
  302. package/dist/core/roving-focus.d.ts +2 -2
  303. package/dist/core/roving-focus.d.ts.map +1 -1
  304. package/dist/core/roving-focus.js +6 -7
  305. package/dist/core/roving-focus.js.map +1 -1
  306. package/dist/core/slot-props.d.ts +9 -7
  307. package/dist/core/slot-props.d.ts.map +1 -1
  308. package/dist/core/slot-props.js +4 -14
  309. package/dist/core/slot-props.js.map +1 -1
  310. package/dist/elements/choice/Choice.d.ts.map +1 -1
  311. package/dist/elements/choice/Choice.js +5 -42
  312. package/dist/elements/choice/Choice.js.map +1 -1
  313. package/dist/elements/choice/types.d.ts +4 -11
  314. package/dist/elements/choice/types.d.ts.map +1 -1
  315. package/dist/elements/details/Details.d.ts.map +1 -1
  316. package/dist/elements/details/Details.js +4 -5
  317. package/dist/elements/details/Details.js.map +1 -1
  318. package/dist/elements/details/types.d.ts +3 -3
  319. package/dist/elements/details/types.d.ts.map +1 -1
  320. package/dist/elements/dialog/Dialog.d.ts.map +1 -1
  321. package/dist/elements/dialog/Dialog.js +1 -1
  322. package/dist/elements/dialog/Dialog.js.map +1 -1
  323. package/dist/elements/invoker/Invoker.js +3 -3
  324. package/dist/elements/invoker/Invoker.js.map +1 -1
  325. package/dist/elements/popover/Popover.d.ts.map +1 -1
  326. package/dist/elements/popover/Popover.js +3 -3
  327. package/dist/elements/popover/Popover.js.map +1 -1
  328. package/dist/elements/popover/types.d.ts +6 -4
  329. package/dist/elements/popover/types.d.ts.map +1 -1
  330. package/dist/styles/index.css +1 -1
  331. package/dist/styles/tailwind.css +2 -2
  332. package/dist/styles/tokens.css +1 -1
  333. package/package.json +1 -1
  334. package/skills/uiify/references/elements/aspect-ratio.md +1 -1
  335. package/skills/uiify/references/elements/field.md +1 -1
  336. package/skills/uiify/references/elements/toggle.md +1 -0
@@ -11,6 +11,7 @@ function SegmentedControlClient({
11
11
  disabled = false,
12
12
  orientation = "horizontal",
13
13
  fullWidth = false,
14
+ size,
14
15
  className,
15
16
  slotProps,
16
17
  "aria-label": ariaLabel,
@@ -39,7 +40,7 @@ function SegmentedControlClient({
39
40
  isControlled: controlledValue !== void 0,
40
41
  kind: "single",
41
42
  namespace: "segmented-control",
42
- labelAttributes: { "data-uiify-button": "", "data-variant": "ghost", "data-size": "sm" },
43
+ labelAttributes: { "data-uiify-button": "", "data-variant": "ghost" },
43
44
  onItemChange: (item) => setSelectedValue(item.value),
44
45
  orientation,
45
46
  ...slotProps !== void 0 ? { slotProps } : {},
@@ -48,7 +49,8 @@ function SegmentedControlClient({
48
49
  "aria-label": ariaLabel,
49
50
  "aria-labelledby": ariaLabelledBy,
50
51
  "data-disabled": disabled ? "" : void 0,
51
- "data-full-width": fullWidth ? "" : void 0
52
+ "data-full-width": fullWidth ? "" : void 0,
53
+ "data-size": size
52
54
  }
53
55
  }
54
56
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/segmented-control/client/SegmentedControlClient.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ReactElement } from \"react\";\nimport { useControllableState } from \"@gunkin/uiify/hooks\";\nimport { ChoiceGroup } from \"../../internal/choice-family/ChoiceGroup.js\";\nimport type { SegmentedControlClientProps, SegmentedControlItem } from \"../types.js\";\n\nexport function SegmentedControlClient({\n id,\n items,\n value: controlledValue,\n defaultValue,\n onValueChange,\n disabled = false,\n orientation = \"horizontal\",\n fullWidth = false,\n className,\n slotProps,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n ...rootProps\n}: SegmentedControlClientProps): ReactElement {\n const [selectedValue, setSelectedValue] = useControllableState<string | undefined>({\n defaultValue,\n onChange: (nextValue) => {\n if (nextValue !== undefined) onValueChange?.(nextValue);\n },\n value: controlledValue,\n });\n const resolvedItems = items.map((item) => ({\n ...item,\n disabled: disabled || item.disabled === true,\n }));\n\n return (\n <ChoiceGroup<SegmentedControlItem>\n {...(className !== undefined ? { className } : {})}\n rootProps={rootProps}\n id={id}\n items={resolvedItems}\n isChecked={(item) => item.value === selectedValue}\n isControlled={controlledValue !== undefined}\n kind=\"single\"\n namespace=\"segmented-control\"\n labelAttributes={{ \"data-uiify-button\": \"\", \"data-variant\": \"ghost\", \"data-size\": \"sm\" }}\n onItemChange={(item) => setSelectedValue(item.value)}\n orientation={orientation}\n {...(slotProps !== undefined ? { slotProps } : {})}\n rootAttributes={{\n role: \"radiogroup\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-full-width\": fullWidth ? \"\" : undefined,\n }}\n />\n );\n}\n\nSegmentedControlClient.displayName = \"SegmentedControlClient\";\n"],"mappings":";AAmCI;AAhCJ,SAAS,4BAA4B;AACrC,SAAS,mBAAmB;AAGrB,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,GAAG;AACL,GAA8C;AAC5C,QAAM,CAAC,eAAe,gBAAgB,IAAI,qBAAyC;AAAA,IACjF;AAAA,IACA,UAAU,CAAC,cAAc;AACvB,UAAI,cAAc,OAAW,iBAAgB,SAAS;AAAA,IACxD;AAAA,IACA,OAAO;AAAA,EACT,CAAC;AACD,QAAM,gBAAgB,MAAM,IAAI,CAAC,UAAU;AAAA,IACzC,GAAG;AAAA,IACH,UAAU,YAAY,KAAK,aAAa;AAAA,EAC1C,EAAE;AAEF,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAI,cAAc,SAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MAChD;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,WAAW,CAAC,SAAS,KAAK,UAAU;AAAA,MACpC,cAAc,oBAAoB;AAAA,MAClC,MAAK;AAAA,MACL,WAAU;AAAA,MACV,iBAAiB,EAAE,qBAAqB,IAAI,gBAAgB,SAAS,aAAa,KAAK;AAAA,MACvF,cAAc,CAAC,SAAS,iBAAiB,KAAK,KAAK;AAAA,MACnD;AAAA,MACC,GAAI,cAAc,SAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MAChD,gBAAgB;AAAA,QACd,MAAM;AAAA,QACN,cAAc;AAAA,QACd,mBAAmB;AAAA,QACnB,iBAAiB,WAAW,KAAK;AAAA,QACjC,mBAAmB,YAAY,KAAK;AAAA,MACtC;AAAA;AAAA,EACF;AAEJ;AAEA,uBAAuB,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/segmented-control/client/SegmentedControlClient.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ReactElement } from \"react\";\nimport { useControllableState } from \"@gunkin/uiify/hooks\";\nimport { ChoiceGroup } from \"../../internal/choice-family/ChoiceGroup.js\";\nimport type { SegmentedControlClientProps, SegmentedControlItem } from \"../types.js\";\n\nexport function SegmentedControlClient({\n id,\n items,\n value: controlledValue,\n defaultValue,\n onValueChange,\n disabled = false,\n orientation = \"horizontal\",\n fullWidth = false,\n size,\n className,\n slotProps,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n ...rootProps\n}: SegmentedControlClientProps): ReactElement {\n const [selectedValue, setSelectedValue] = useControllableState<string | undefined>({\n defaultValue,\n onChange: (nextValue) => {\n if (nextValue !== undefined) onValueChange?.(nextValue);\n },\n value: controlledValue,\n });\n const resolvedItems = items.map((item) => ({\n ...item,\n disabled: disabled || item.disabled === true,\n }));\n\n return (\n <ChoiceGroup<SegmentedControlItem>\n {...(className !== undefined ? { className } : {})}\n rootProps={rootProps}\n id={id}\n items={resolvedItems}\n isChecked={(item) => item.value === selectedValue}\n isControlled={controlledValue !== undefined}\n kind=\"single\"\n namespace=\"segmented-control\"\n labelAttributes={{ \"data-uiify-button\": \"\", \"data-variant\": \"ghost\" }}\n onItemChange={(item) => setSelectedValue(item.value)}\n orientation={orientation}\n {...(slotProps !== undefined ? { slotProps } : {})}\n rootAttributes={{\n role: \"radiogroup\",\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-full-width\": fullWidth ? \"\" : undefined,\n \"data-size\": size,\n }}\n />\n );\n}\n\nSegmentedControlClient.displayName = \"SegmentedControlClient\";\n"],"mappings":";AAoCI;AAjCJ,SAAS,4BAA4B;AACrC,SAAS,mBAAmB;AAGrB,SAAS,uBAAuB;AAAA,EACrC;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,GAAG;AACL,GAA8C;AAC5C,QAAM,CAAC,eAAe,gBAAgB,IAAI,qBAAyC;AAAA,IACjF;AAAA,IACA,UAAU,CAAC,cAAc;AACvB,UAAI,cAAc,OAAW,iBAAgB,SAAS;AAAA,IACxD;AAAA,IACA,OAAO;AAAA,EACT,CAAC;AACD,QAAM,gBAAgB,MAAM,IAAI,CAAC,UAAU;AAAA,IACzC,GAAG;AAAA,IACH,UAAU,YAAY,KAAK,aAAa;AAAA,EAC1C,EAAE;AAEF,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAI,cAAc,SAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MAChD;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,WAAW,CAAC,SAAS,KAAK,UAAU;AAAA,MACpC,cAAc,oBAAoB;AAAA,MAClC,MAAK;AAAA,MACL,WAAU;AAAA,MACV,iBAAiB,EAAE,qBAAqB,IAAI,gBAAgB,QAAQ;AAAA,MACpE,cAAc,CAAC,SAAS,iBAAiB,KAAK,KAAK;AAAA,MACnD;AAAA,MACC,GAAI,cAAc,SAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MAChD,gBAAgB;AAAA,QACd,MAAM;AAAA,QACN,cAAc;AAAA,QACd,mBAAmB;AAAA,QACnB,iBAAiB,WAAW,KAAK;AAAA,QACjC,mBAAmB,YAAY,KAAK;AAAA,QACpC,aAAa;AAAA,MACf;AAAA;AAAA,EACF;AAEJ;AAEA,uBAAuB,cAAc;","names":[]}
@@ -1,3 +1,4 @@
1
+ import type { ControlSize } from "../internal/control-size/types.js";
1
2
  import type { ChoiceGroupRootProps, ChoiceOptionSlotProps, ChoiceItem, ChoiceOrientation } from "../internal/choice-family/types.js";
2
3
  export type SegmentedControlSlotProps = ChoiceOptionSlotProps;
3
4
  export interface SegmentedControlItem extends ChoiceItem {
@@ -9,6 +10,8 @@ export interface SegmentedControlProps extends ChoiceGroupRootProps {
9
10
  readonly disabled?: boolean;
10
11
  readonly orientation?: ChoiceOrientation;
11
12
  readonly fullWidth?: boolean;
13
+ /** Sets the control's height and text size; `md` is the default. */
14
+ readonly size?: ControlSize;
12
15
  readonly className?: string;
13
16
  readonly slotProps?: SegmentedControlSlotProps;
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/segmented-control/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAE9D,MAAM,WAAW,oBAAqB,SAAQ,UAAU;CAAG;AAE3D,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC;CAChD;AAED,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/segmented-control/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EAClB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAE9D,MAAM,WAAW,oBAAqB,SAAQ,UAAU;CAAG;AAE3D,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAChD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,yBAAyB,CAAC;CAChD;AAED,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACxE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,OAAO,CAAC;AAGvE,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,UAAU,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAC3D,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,GAC1B,YAAY,GAAG,IAAI,CA2CrB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,KAAK,CAAC,SAAS,CAE3E;AAED,wBAAgB,UAAU,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAC3D,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,GAC1B,YAAY,GAAG,IAAI,CAsBrB;AAED,wBAAgB,WAAW,CAAC,GAAG,SAAS,WAAW,GAAG,UAAU,EAC9D,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAC3B,YAAY,GAAG,IAAI,CAcrB;yBAhBe,WAAW;;;AAmB3B,wBAAgB,eAAe,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC5D,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAC/B,YAAY,GAAG,IAAI,CAUrB;yBAZe,eAAe;;;AAe/B,eAAO,MAAM,MAAM;;;;;;CAMlB,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../src/components/select/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,OAAO,CAAC;AAGvE,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,UAAU,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAC3D,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,GAC1B,YAAY,GAAG,IAAI,CA6CrB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,KAAK,CAAC,SAAS,CAE3E;AAED,wBAAgB,UAAU,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAC3D,KAAK,EAAE,eAAe,CAAC,GAAG,CAAC,GAC1B,YAAY,GAAG,IAAI,CAsBrB;AAED,wBAAgB,WAAW,CAAC,GAAG,SAAS,WAAW,GAAG,UAAU,EAC9D,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAC3B,YAAY,GAAG,IAAI,CAcrB;yBAhBe,WAAW;;;AAmB3B,wBAAgB,eAAe,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EAC5D,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAC/B,YAAY,GAAG,IAAI,CAUrB;yBAZe,eAAe;;;AAe/B,eAAO,MAAM,MAAM;;;;;;CAMlB,CAAC"}
@@ -9,6 +9,7 @@ function SelectRoot(props) {
9
9
  onValueChange,
10
10
  name,
11
11
  disabled = false,
12
+ size,
12
13
  children: consumerChildren,
13
14
  ...consumerProps
14
15
  } = props;
@@ -24,6 +25,7 @@ function SelectRoot(props) {
24
25
  ...consumerProps,
25
26
  children: consumerChildren,
26
27
  "data-uiify-select": "",
28
+ ...size !== void 0 ? { "data-size": size } : {},
27
29
  "data-disabled": disabled ? "" : void 0,
28
30
  disabled: disabled || void 0,
29
31
  name,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/select/Select.tsx"],"sourcesContent":["import type { ElementType, ReactElement, SyntheticEvent } from \"react\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type {\n SelectRootProps,\n SelectContentOwnProps,\n SelectItemProps,\n SelectGroupProps,\n SelectSeparatorProps,\n} from \"./types.js\";\n\nexport function SelectRoot<TAs extends ElementType = \"select\">(\n props: SelectRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n value,\n defaultValue,\n onValueChange,\n name,\n disabled = false,\n children: consumerChildren,\n ...consumerProps\n } = props as SelectRootProps<\"select\">;\n\n const isControlled = value !== undefined;\n\n const handleChange = (event: SyntheticEvent<HTMLSelectElement>): void => {\n onValueChange?.(event.currentTarget.value);\n };\n\n const consumerOnChange = (\n consumerProps as Record<string, unknown> & {\n onChange?: (event: SyntheticEvent<HTMLSelectElement>) => void;\n }\n ).onChange;\n\n return useRenderElement({\n as,\n defaultTag: \"select\",\n props: {\n ...consumerProps,\n children: consumerChildren,\n \"data-uiify-select\": \"\",\n \"data-disabled\": disabled ? \"\" : undefined,\n disabled: disabled || undefined,\n name,\n onChange: onValueChange\n ? composeEventHandlers(consumerOnChange, handleChange)\n : consumerOnChange,\n ...(isControlled ? { value } : defaultValue !== undefined ? { defaultValue } : {}),\n },\n render,\n state: { disabled },\n });\n}\n\nexport function SelectContent(props: SelectContentOwnProps): React.ReactNode {\n return props.children ?? null;\n}\n\nexport function SelectItem<TAs extends ElementType = \"option\">(\n props: SelectItemProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n children,\n disabled = false,\n value,\n ...consumerProps\n } = props as SelectItemProps<\"option\">;\n\n return useRenderElement({\n as,\n defaultTag: \"option\",\n props: {\n ...consumerProps,\n disabled: disabled || undefined,\n value,\n children,\n },\n render,\n state: { disabled },\n });\n}\n\nexport function SelectGroup<TAs extends ElementType = \"optgroup\">(\n props: SelectGroupProps<TAs>,\n): ReactElement | null {\n const { as, render, children, label, ...consumerProps } = props as SelectGroupProps<\"optgroup\">;\n\n return useRenderElement({\n as,\n defaultTag: \"optgroup\",\n props: {\n ...consumerProps,\n label,\n children,\n },\n render,\n state: { label },\n });\n}\nSelectGroup.displayName = \"SelectGroup\";\n\nexport function SelectSeparator<TAs extends ElementType = \"hr\">(\n props: SelectSeparatorProps<TAs>,\n): ReactElement | null {\n const { as, render, ...consumerProps } = props as SelectSeparatorProps<\"hr\">;\n\n return useRenderElement({\n as,\n defaultTag: \"hr\",\n props: { ...consumerProps, \"data-part\": \"separator\" },\n render,\n state: {},\n });\n}\nSelectSeparator.displayName = \"SelectSeparator\";\n\nexport const Select = {\n Content: SelectContent,\n Group: SelectGroup,\n Item: SelectItem,\n Root: SelectRoot,\n Separator: SelectSeparator,\n};\n"],"mappings":"AACA,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AAS1B,SAAS,WACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,UAAU;AAAA,IACV,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,UAAU;AAE/B,QAAM,eAAe,CAAC,UAAmD;AACvE,oBAAgB,MAAM,cAAc,KAAK;AAAA,EAC3C;AAEA,QAAM,mBACJ,cAGA;AAEF,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU;AAAA,MACV,qBAAqB;AAAA,MACrB,iBAAiB,WAAW,KAAK;AAAA,MACjC,UAAU,YAAY;AAAA,MACtB;AAAA,MACA,UAAU,gBACN,qBAAqB,kBAAkB,YAAY,IACnD;AAAA,MACJ,GAAI,eAAe,EAAE,MAAM,IAAI,iBAAiB,SAAY,EAAE,aAAa,IAAI,CAAC;AAAA,IAClF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,SAAS,cAAc,OAA+C;AAC3E,SAAO,MAAM,YAAY;AAC3B;AAEO,SAAS,WACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU,YAAY;AAAA,MACtB;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,SAAS,YACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,UAAU,OAAO,GAAG,cAAc,IAAI;AAE1D,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,MAAM;AAAA,EACjB,CAAC;AACH;AACA,YAAY,cAAc;AAEnB,SAAS,gBACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AAEzC,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO,EAAE,GAAG,eAAe,aAAa,YAAY;AAAA,IACpD;AAAA,IACA,OAAO,CAAC;AAAA,EACV,CAAC;AACH;AACA,gBAAgB,cAAc;AAEvB,MAAM,SAAS;AAAA,EACpB,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,WAAW;AACb;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/select/Select.tsx"],"sourcesContent":["import type { ElementType, ReactElement, SyntheticEvent } from \"react\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type {\n SelectRootProps,\n SelectContentOwnProps,\n SelectItemProps,\n SelectGroupProps,\n SelectSeparatorProps,\n} from \"./types.js\";\n\nexport function SelectRoot<TAs extends ElementType = \"select\">(\n props: SelectRootProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n value,\n defaultValue,\n onValueChange,\n name,\n disabled = false,\n size,\n children: consumerChildren,\n ...consumerProps\n } = props as SelectRootProps<\"select\">;\n\n const isControlled = value !== undefined;\n\n const handleChange = (event: SyntheticEvent<HTMLSelectElement>): void => {\n onValueChange?.(event.currentTarget.value);\n };\n\n const consumerOnChange = (\n consumerProps as Record<string, unknown> & {\n onChange?: (event: SyntheticEvent<HTMLSelectElement>) => void;\n }\n ).onChange;\n\n return useRenderElement({\n as,\n defaultTag: \"select\",\n props: {\n ...consumerProps,\n children: consumerChildren,\n \"data-uiify-select\": \"\",\n ...(size !== undefined ? { \"data-size\": size } : {}),\n \"data-disabled\": disabled ? \"\" : undefined,\n disabled: disabled || undefined,\n name,\n onChange: onValueChange\n ? composeEventHandlers(consumerOnChange, handleChange)\n : consumerOnChange,\n ...(isControlled ? { value } : defaultValue !== undefined ? { defaultValue } : {}),\n },\n render,\n state: { disabled },\n });\n}\n\nexport function SelectContent(props: SelectContentOwnProps): React.ReactNode {\n return props.children ?? null;\n}\n\nexport function SelectItem<TAs extends ElementType = \"option\">(\n props: SelectItemProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n children,\n disabled = false,\n value,\n ...consumerProps\n } = props as SelectItemProps<\"option\">;\n\n return useRenderElement({\n as,\n defaultTag: \"option\",\n props: {\n ...consumerProps,\n disabled: disabled || undefined,\n value,\n children,\n },\n render,\n state: { disabled },\n });\n}\n\nexport function SelectGroup<TAs extends ElementType = \"optgroup\">(\n props: SelectGroupProps<TAs>,\n): ReactElement | null {\n const { as, render, children, label, ...consumerProps } = props as SelectGroupProps<\"optgroup\">;\n\n return useRenderElement({\n as,\n defaultTag: \"optgroup\",\n props: {\n ...consumerProps,\n label,\n children,\n },\n render,\n state: { label },\n });\n}\nSelectGroup.displayName = \"SelectGroup\";\n\nexport function SelectSeparator<TAs extends ElementType = \"hr\">(\n props: SelectSeparatorProps<TAs>,\n): ReactElement | null {\n const { as, render, ...consumerProps } = props as SelectSeparatorProps<\"hr\">;\n\n return useRenderElement({\n as,\n defaultTag: \"hr\",\n props: { ...consumerProps, \"data-part\": \"separator\" },\n render,\n state: {},\n });\n}\nSelectSeparator.displayName = \"SelectSeparator\";\n\nexport const Select = {\n Content: SelectContent,\n Group: SelectGroup,\n Item: SelectItem,\n Root: SelectRoot,\n Separator: SelectSeparator,\n};\n"],"mappings":"AACA,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AAS1B,SAAS,WACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,UAAU;AAAA,IACV,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,UAAU;AAE/B,QAAM,eAAe,CAAC,UAAmD;AACvE,oBAAgB,MAAM,cAAc,KAAK;AAAA,EAC3C;AAEA,QAAM,mBACJ,cAGA;AAEF,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU;AAAA,MACV,qBAAqB;AAAA,MACrB,GAAI,SAAS,SAAY,EAAE,aAAa,KAAK,IAAI,CAAC;AAAA,MAClD,iBAAiB,WAAW,KAAK;AAAA,MACjC,UAAU,YAAY;AAAA,MACtB;AAAA,MACA,UAAU,gBACN,qBAAqB,kBAAkB,YAAY,IACnD;AAAA,MACJ,GAAI,eAAe,EAAE,MAAM,IAAI,iBAAiB,SAAY,EAAE,aAAa,IAAI,CAAC;AAAA,IAClF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,SAAS,cAAc,OAA+C;AAC3E,SAAO,MAAM,YAAY;AAC3B;AAEO,SAAS,WACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,UAAU,YAAY;AAAA,MACtB;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,SAAS,YACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,UAAU,OAAO,GAAG,cAAc,IAAI;AAE1D,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,MAAM;AAAA,EACjB,CAAC;AACH;AACA,YAAY,cAAc;AAEnB,SAAS,gBACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AAEzC,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO,EAAE,GAAG,eAAe,aAAa,YAAY;AAAA,IACpD;AAAA,IACA,OAAO,CAAC;AAAA,EACV,CAAC;AACH;AACA,gBAAgB,cAAc;AAEvB,MAAM,SAAS;AAAA,EACpB,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,WAAW;AACb;","names":[]}
@@ -1,5 +1,6 @@
1
1
  import type { ElementType, ReactNode } from "react";
2
2
  import type { RenderableProps } from "@gunkin/uiify/core/render";
3
+ import type { ControlSize } from "../internal/control-size/types.js";
3
4
  export interface SelectRootOwnProps {
4
5
  readonly children?: ReactNode;
5
6
  readonly value?: string;
@@ -7,6 +8,8 @@ export interface SelectRootOwnProps {
7
8
  readonly onValueChange?: (value: string) => void;
8
9
  readonly name?: string;
9
10
  readonly disabled?: boolean;
11
+ /** Sets the control's height and text size; `md` is the default. */
12
+ readonly size?: ControlSize;
10
13
  }
11
14
  export type SelectRootProps<TAs extends ElementType = "select"> = RenderableProps<TAs, SelectRootOwnProps, SelectRootOwnProps, HTMLSelectElement>;
12
15
  export interface SelectContentOwnProps {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/select/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,eAAe,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,IAAI,eAAe,CAC/E,GAAG,EACH,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,CAClB,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,IAAI,eAAe,CAC/E,GAAG,EACH,kBAAkB,EAClB;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,EACrB,iBAAiB,CAClB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,UAAU,IAAI,eAAe,CAClF,GAAG,EACH,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,CACpB,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B;AAED,MAAM,MAAM,oBAAoB,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,IAAI,eAAe,CAChF,GAAG,EACH,uBAAuB,EACvB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,aAAa,CACd,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/select/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAErE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,MAAM,eAAe,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,IAAI,eAAe,CAC/E,GAAG,EACH,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,CAClB,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,IAAI,eAAe,CAC/E,GAAG,EACH,kBAAkB,EAClB;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,EACrB,iBAAiB,CAClB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,UAAU,IAAI,eAAe,CAClF,GAAG,EACH,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,CACpB,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B;AAED,MAAM,MAAM,oBAAoB,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,IAAI,eAAe,CAChF,GAAG,EACH,uBAAuB,EACvB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,aAAa,CACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../src/components/slider/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,WAAW,EAAE,YAAY,EAAkB,MAAM,OAAO,CAAC;AAGtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAO9C,wBAAgB,MAAM,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EACtD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GACtB,YAAY,GAAG,IAAI,CAwDrB"}
1
+ {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../src/components/slider/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,WAAW,EAAE,YAAY,EAAkB,MAAM,OAAO,CAAC;AAGtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAO9C,wBAAgB,MAAM,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EACtD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GACtB,YAAY,GAAG,IAAI,CA6DrB"}
@@ -20,14 +20,19 @@ function Slider(props) {
20
20
  const isControlled = value !== void 0;
21
21
  const progressValue = value ?? defaultValue ?? min + (max - min) / 2;
22
22
  const progress = getProgressPercentage(progressValue, min, max);
23
+ const consumerStyle = consumerProps.style;
23
24
  const style = {
24
- ...consumerProps.style,
25
- "--uiify-slider-progress": `${progress}%`
25
+ "--uiify-slider-progress": `${progress}%`,
26
+ ...consumerStyle
26
27
  };
27
28
  const handleChange = (event) => {
28
29
  if (!isControlled) {
29
30
  const nextProgress = getProgressPercentage(event.currentTarget.valueAsNumber, min, max);
30
- event.currentTarget.style.setProperty("--uiify-slider-progress", `${nextProgress}%`);
31
+ const nextStyle = { "--uiify-slider-progress": `${nextProgress}%`, ...consumerStyle };
32
+ const nextValue = nextStyle["--uiify-slider-progress"];
33
+ if (nextValue === void 0)
34
+ event.currentTarget.style.removeProperty("--uiify-slider-progress");
35
+ else event.currentTarget.style.setProperty("--uiify-slider-progress", nextValue);
31
36
  }
32
37
  onValueChange?.(event.currentTarget.valueAsNumber);
33
38
  };
@@ -36,8 +41,6 @@ function Slider(props) {
36
41
  as,
37
42
  defaultTag: "input",
38
43
  props: {
39
- ...consumerProps,
40
- style,
41
44
  type: "range",
42
45
  "data-uiify-slider": "",
43
46
  min,
@@ -46,8 +49,10 @@ function Slider(props) {
46
49
  disabled: disabled || void 0,
47
50
  "data-disabled": disabled ? "" : void 0,
48
51
  "data-state": isControlled ? String(value) : void 0,
49
- onChange: composeEventHandlers(consumerOnChange, handleChange),
50
- ...isControlled ? { value } : defaultValue !== void 0 ? { defaultValue } : {}
52
+ ...isControlled ? { value } : defaultValue !== void 0 ? { defaultValue } : {},
53
+ ...consumerProps,
54
+ style,
55
+ onChange: composeEventHandlers(consumerOnChange, handleChange)
51
56
  },
52
57
  render,
53
58
  state: { min, max, step, disabled }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/slider/Slider.tsx"],"sourcesContent":["import type { CSSProperties, ElementType, ReactElement, SyntheticEvent } from \"react\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type { SliderProps } from \"./types.js\";\n\nfunction getProgressPercentage(value: number, min: number, max: number): number {\n if (max <= min) return 0;\n return Number(Math.min(100, Math.max(0, ((value - min) / (max - min)) * 100)).toFixed(4));\n}\n\nexport function Slider<TAs extends ElementType = \"input\">(\n props: SliderProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n value,\n defaultValue,\n onValueChange,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n ...consumerProps\n } = props as SliderProps<\"input\">;\n\n const isControlled = value !== undefined;\n const progressValue = value ?? defaultValue ?? min + (max - min) / 2;\n const progress = getProgressPercentage(progressValue, min, max);\n const style = {\n ...(consumerProps as { style?: CSSProperties }).style,\n \"--uiify-slider-progress\": `${progress}%`,\n } as CSSProperties;\n\n const handleChange = (event: SyntheticEvent<HTMLInputElement>): void => {\n if (!isControlled) {\n const nextProgress = getProgressPercentage(event.currentTarget.valueAsNumber, min, max);\n event.currentTarget.style.setProperty(\"--uiify-slider-progress\", `${nextProgress}%`);\n }\n onValueChange?.(event.currentTarget.valueAsNumber);\n };\n\n const consumerOnChange = (\n consumerProps as Record<string, unknown> & {\n onChange?: (event: SyntheticEvent<HTMLInputElement>) => void;\n }\n ).onChange;\n\n return useRenderElement({\n as,\n defaultTag: \"input\",\n props: {\n ...consumerProps,\n style,\n type: \"range\",\n \"data-uiify-slider\": \"\",\n min,\n max,\n step,\n disabled: disabled || undefined,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-state\": isControlled ? String(value) : undefined,\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n ...(isControlled ? { value } : defaultValue !== undefined ? { defaultValue } : {}),\n },\n render,\n state: { min, max, step, disabled },\n });\n}\n"],"mappings":"AACA,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AAGjC,SAAS,sBAAsB,OAAe,KAAa,KAAqB;AAC9E,MAAI,OAAO,IAAK,QAAO;AACvB,SAAO,OAAO,KAAK,IAAI,KAAK,KAAK,IAAI,IAAK,QAAQ,QAAQ,MAAM,OAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC1F;AAEO,SAAS,OACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,UAAU;AAC/B,QAAM,gBAAgB,SAAS,gBAAgB,OAAO,MAAM,OAAO;AACnE,QAAM,WAAW,sBAAsB,eAAe,KAAK,GAAG;AAC9D,QAAM,QAAQ;AAAA,IACZ,GAAI,cAA4C;AAAA,IAChD,2BAA2B,GAAG,QAAQ;AAAA,EACxC;AAEA,QAAM,eAAe,CAAC,UAAkD;AACtE,QAAI,CAAC,cAAc;AACjB,YAAM,eAAe,sBAAsB,MAAM,cAAc,eAAe,KAAK,GAAG;AACtF,YAAM,cAAc,MAAM,YAAY,2BAA2B,GAAG,YAAY,GAAG;AAAA,IACrF;AACA,oBAAgB,MAAM,cAAc,aAAa;AAAA,EACnD;AAEA,QAAM,mBACJ,cAGA;AAEF,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA,MAAM;AAAA,MACN,qBAAqB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,YAAY;AAAA,MACtB,iBAAiB,WAAW,KAAK;AAAA,MACjC,cAAc,eAAe,OAAO,KAAK,IAAI;AAAA,MAC7C,UAAU,qBAAqB,kBAAkB,YAAY;AAAA,MAC7D,GAAI,eAAe,EAAE,MAAM,IAAI,iBAAiB,SAAY,EAAE,aAAa,IAAI,CAAC;AAAA,IAClF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,KAAK,KAAK,MAAM,SAAS;AAAA,EACpC,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/slider/Slider.tsx"],"sourcesContent":["import type { CSSProperties, ElementType, ReactElement, SyntheticEvent } from \"react\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type { SliderProps } from \"./types.js\";\n\nfunction getProgressPercentage(value: number, min: number, max: number): number {\n if (max <= min) return 0;\n return Number(Math.min(100, Math.max(0, ((value - min) / (max - min)) * 100)).toFixed(4));\n}\n\nexport function Slider<TAs extends ElementType = \"input\">(\n props: SliderProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n value,\n defaultValue,\n onValueChange,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n ...consumerProps\n } = props as SliderProps<\"input\">;\n\n const isControlled = value !== undefined;\n const progressValue = value ?? defaultValue ?? min + (max - min) / 2;\n const progress = getProgressPercentage(progressValue, min, max);\n const consumerStyle = (consumerProps as { style?: CSSProperties }).style;\n const style = {\n \"--uiify-slider-progress\": `${progress}%`,\n ...consumerStyle,\n } as CSSProperties;\n\n const handleChange = (event: SyntheticEvent<HTMLInputElement>): void => {\n if (!isControlled) {\n const nextProgress = getProgressPercentage(event.currentTarget.valueAsNumber, min, max);\n const nextStyle = { \"--uiify-slider-progress\": `${nextProgress}%`, ...consumerStyle };\n const nextValue = nextStyle[\"--uiify-slider-progress\"];\n if (nextValue === undefined)\n event.currentTarget.style.removeProperty(\"--uiify-slider-progress\");\n else event.currentTarget.style.setProperty(\"--uiify-slider-progress\", nextValue);\n }\n onValueChange?.(event.currentTarget.valueAsNumber);\n };\n\n const consumerOnChange = (\n consumerProps as Record<string, unknown> & {\n onChange?: (event: SyntheticEvent<HTMLInputElement>) => void;\n }\n ).onChange;\n\n return useRenderElement({\n as,\n defaultTag: \"input\",\n props: {\n type: \"range\",\n \"data-uiify-slider\": \"\",\n min,\n max,\n step,\n disabled: disabled || undefined,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-state\": isControlled ? String(value) : undefined,\n ...(isControlled ? { value } : defaultValue !== undefined ? { defaultValue } : {}),\n ...consumerProps,\n style,\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n },\n render,\n state: { min, max, step, disabled },\n });\n}\n"],"mappings":"AACA,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AAGjC,SAAS,sBAAsB,OAAe,KAAa,KAAqB;AAC9E,MAAI,OAAO,IAAK,QAAO;AACvB,SAAO,OAAO,KAAK,IAAI,KAAK,KAAK,IAAI,IAAK,QAAQ,QAAQ,MAAM,OAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC1F;AAEO,SAAS,OACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,UAAU;AAC/B,QAAM,gBAAgB,SAAS,gBAAgB,OAAO,MAAM,OAAO;AACnE,QAAM,WAAW,sBAAsB,eAAe,KAAK,GAAG;AAC9D,QAAM,gBAAiB,cAA4C;AACnE,QAAM,QAAQ;AAAA,IACZ,2BAA2B,GAAG,QAAQ;AAAA,IACtC,GAAG;AAAA,EACL;AAEA,QAAM,eAAe,CAAC,UAAkD;AACtE,QAAI,CAAC,cAAc;AACjB,YAAM,eAAe,sBAAsB,MAAM,cAAc,eAAe,KAAK,GAAG;AACtF,YAAM,YAAY,EAAE,2BAA2B,GAAG,YAAY,KAAK,GAAG,cAAc;AACpF,YAAM,YAAY,UAAU,yBAAyB;AACrD,UAAI,cAAc;AAChB,cAAM,cAAc,MAAM,eAAe,yBAAyB;AAAA,UAC/D,OAAM,cAAc,MAAM,YAAY,2BAA2B,SAAS;AAAA,IACjF;AACA,oBAAgB,MAAM,cAAc,aAAa;AAAA,EACnD;AAEA,QAAM,mBACJ,cAGA;AAEF,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,MAAM;AAAA,MACN,qBAAqB;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA,UAAU,YAAY;AAAA,MACtB,iBAAiB,WAAW,KAAK;AAAA,MACjC,cAAc,eAAe,OAAO,KAAK,IAAI;AAAA,MAC7C,GAAI,eAAe,EAAE,MAAM,IAAI,iBAAiB,SAAY,EAAE,aAAa,IAAI,CAAC;AAAA,MAChF,GAAG;AAAA,MACH;AAAA,MACA,UAAU,qBAAqB,kBAAkB,YAAY;AAAA,IAC/D;AAAA,IACA;AAAA,IACA,OAAO,EAAE,KAAK,KAAK,MAAM,SAAS;AAAA,EACpC,CAAC;AACH;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"SliderClient.d.ts","sourceRoot":"","sources":["../../../../src/components/slider/client/SliderClient.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,WAAW,EAEX,YAAY,EAEb,MAAM,OAAO,CAAC;AAYf,OAAO,KAAK,EACV,iBAAiB,EAIlB,MAAM,aAAa,CAAC;AAmErB,wBAAgB,YAAY,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC1D,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAC5B,YAAY,GAAG,IAAI,CA4OrB;yBA9Oe,YAAY"}
1
+ {"version":3,"file":"SliderClient.d.ts","sourceRoot":"","sources":["../../../../src/components/slider/client/SliderClient.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,WAAW,EAEX,YAAY,EAEb,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EACV,iBAAiB,EAIlB,MAAM,aAAa,CAAC;AAgErB,wBAAgB,YAAY,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EAC1D,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAC5B,YAAY,GAAG,IAAI,CA0MrB;yBA5Me,YAAY"}
@@ -1,15 +1,11 @@
1
1
  "use client";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import { createElement } from "react";
4
3
  import { useEffect, useState } from "react";
5
4
  import { useControllableState } from "@gunkin/uiify/hooks";
5
+ import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers";
6
6
  import { useRenderElement } from "@gunkin/uiify/core/render";
7
7
  import { resolveDirection } from "@gunkin/uiify/core/text-direction";
8
- import {
9
- mergeRepeatedSlotProps,
10
- omitProps,
11
- resolveRepeatedSlotProps
12
- } from "../../../core/slot-props.js";
8
+ import { mergeRepeatedSlotProps, resolveRepeatedSlotProps } from "../../../core/slot-props.js";
13
9
  import { getSliderStops, snapSliderToStops } from "../slider-values.js";
14
10
  const DEFAULT_SLIDER_LABELS = {
15
11
  minimum: "Minimum value",
@@ -39,12 +35,9 @@ function marksInRange(marks, min, max) {
39
35
  }
40
36
  function resolveMarkSlotProps(slotProps, markValue, index) {
41
37
  const { byItemValue, byItemIndex, ...commonProps } = slotProps ?? {};
42
- return omitProps(
43
- mergeRepeatedSlotProps(
44
- mergeRepeatedSlotProps(commonProps, byItemValue?.[String(markValue)]),
45
- byItemIndex?.[index]
46
- ),
47
- ["children", "dangerouslySetInnerHTML", "data-part"]
38
+ return mergeRepeatedSlotProps(
39
+ mergeRepeatedSlotProps(commonProps, byItemValue?.[String(markValue)]),
40
+ byItemIndex?.[index]
48
41
  );
49
42
  }
50
43
  function SliderClient(props) {
@@ -81,17 +74,16 @@ function SliderClient(props) {
81
74
  const values = typeof normalizedValue === "number" ? [normalizedValue] : [normalizedValue[0], normalizedValue[1]];
82
75
  const isRange = values.length === 2;
83
76
  const consumerStyle = "style" in consumerProps ? consumerProps.style : void 0;
84
- const consumerRole = "role" in consumerProps ? consumerProps.role : void 0;
85
77
  const positionStyles = values.map((currentValue) => ({
86
78
  "--uiify-slider-position": String(position(currentValue, min, max)) + "%"
87
79
  }));
88
80
  const rootStyle = {
89
- ...consumerStyle,
90
81
  "--uiify-slider-start": String(position(values[0], min, max)) + "%",
91
82
  "--uiify-slider-end": String(position(values[values.length - 1], min, max)) + "%",
92
83
  "--uiify-slider-middle": String(
93
84
  (position(values[0], min, max) + position(values[values.length - 1], min, max)) / 2
94
- ) + "%"
85
+ ) + "%",
86
+ ...consumerStyle
95
87
  };
96
88
  const visibleMarks = marksInRange(marks, min, max);
97
89
  const accessibleLabels = { ...DEFAULT_SLIDER_LABELS, ...labels };
@@ -128,30 +120,12 @@ function SliderClient(props) {
128
120
  const thumbKeys = isRange ? ["minimum", "maximum"] : ["value"];
129
121
  const inputNodes = values.map((currentValue, index) => {
130
122
  const thumbKey = thumbKeys[index];
131
- const inputProps = resolveRepeatedSlotProps(slotProps?.input, thumbKey, [
132
- "aria-label",
133
- "aria-labelledby",
134
- "aria-orientation",
135
- "data-disabled",
136
- "data-orientation",
137
- "data-part",
138
- "data-state",
139
- "defaultChecked",
140
- "defaultValue",
141
- "disabled",
142
- "max",
143
- "min",
144
- "step",
145
- "type",
146
- "value"
147
- ]);
123
+ const inputProps = resolveRepeatedSlotProps(slotProps?.input, thumbKey);
148
124
  const inputLabel = isRange ? thumbLabels?.[index] ?? (index === 0 ? accessibleLabels.minimum : accessibleLabels.maximum) : ariaLabel;
149
125
  const inputLabelledBy = isRange ? void 0 : ariaLabelledBy;
150
- return /* @__PURE__ */ createElement(
126
+ return /* @__PURE__ */ jsx(
151
127
  "input",
152
128
  {
153
- ...inputProps,
154
- key: index,
155
129
  type: "range",
156
130
  min,
157
131
  max,
@@ -165,23 +139,21 @@ function SliderClient(props) {
165
139
  "data-state": String(currentValue),
166
140
  "data-orientation": orientation,
167
141
  "data-disabled": disabled ? "" : void 0,
168
- onChange: (event) => {
169
- inputProps.onChange?.(event);
170
- if (!event.defaultPrevented) handleChange(index, event);
171
- },
172
- onKeyDown: (event) => {
173
- inputProps.onKeyDown?.(event);
174
- if (!event.defaultPrevented) handleKeyDown(index, event);
175
- }
176
- }
142
+ ...inputProps,
143
+ onChange: composeEventHandlers(inputProps.onChange, (event) => handleChange(index, event)),
144
+ onKeyDown: composeEventHandlers(
145
+ inputProps.onKeyDown,
146
+ (event) => handleKeyDown(index, event)
147
+ )
148
+ },
149
+ index
177
150
  );
178
151
  });
179
152
  return useRenderElement({
180
153
  as,
181
154
  defaultTag: "div",
182
155
  props: {
183
- ...consumerProps,
184
- role: isRange ? "group" : consumerRole,
156
+ role: isRange ? "group" : void 0,
185
157
  "aria-label": isRange ? ariaLabel : void 0,
186
158
  "aria-labelledby": isRange ? ariaLabelledBy : void 0,
187
159
  "data-uiify-slider-client": "",
@@ -191,62 +163,43 @@ function SliderClient(props) {
191
163
  "data-orientation": orientation,
192
164
  "data-disabled": disabled ? "" : void 0,
193
165
  "data-enhanced": enhanced ? "" : void 0,
166
+ ...consumerProps,
194
167
  style: rootStyle,
195
168
  children: /* @__PURE__ */ jsxs(Fragment, { children: [
196
- /* @__PURE__ */ jsxs(
197
- "div",
198
- {
199
- ...omitProps(slotProps?.track, [
200
- "aria-hidden",
201
- "children",
202
- "dangerouslySetInnerHTML",
203
- "data-part"
204
- ]),
205
- "data-part": "track",
206
- "aria-hidden": "true",
207
- children: [
208
- /* @__PURE__ */ jsx(
209
- "span",
210
- {
211
- ...omitProps(slotProps?.range, ["children", "dangerouslySetInnerHTML", "data-part"]),
212
- "data-part": "range"
213
- }
214
- ),
215
- visibleMarks.map((mark, index) => {
216
- const markProps = resolveMarkSlotProps(slotProps?.mark, mark.value, index);
217
- return /* @__PURE__ */ createElement(
218
- "span",
219
- {
220
- ...markProps,
221
- key: index,
222
- "data-part": "mark",
223
- style: {
224
- ...markProps.style,
225
- "--uiify-slider-position": String(position(mark.value, min, max)) + "%"
226
- }
227
- },
228
- mark.label
229
- );
230
- }),
231
- positionStyles.map((style, index) => {
232
- const thumbProps = resolveRepeatedSlotProps(
233
- slotProps?.visualThumb,
234
- thumbKeys[index],
235
- ["data-part"]
236
- );
237
- return /* @__PURE__ */ createElement(
238
- "span",
239
- {
240
- ...thumbProps,
241
- key: index,
242
- "data-part": "visual-thumb",
243
- style: { ...thumbProps.style, ...style }
244
- }
245
- );
246
- })
247
- ]
248
- }
249
- ),
169
+ /* @__PURE__ */ jsxs("div", { "data-part": "track", "aria-hidden": "true", ...slotProps?.track, children: [
170
+ /* @__PURE__ */ jsx("span", { "data-part": "range", ...slotProps?.range }),
171
+ visibleMarks.map((mark, index) => {
172
+ const markProps = resolveMarkSlotProps(slotProps?.mark, mark.value, index);
173
+ return /* @__PURE__ */ jsx(
174
+ "span",
175
+ {
176
+ "data-part": "mark",
177
+ ...markProps,
178
+ style: {
179
+ "--uiify-slider-position": String(position(mark.value, min, max)) + "%",
180
+ ...markProps.style
181
+ },
182
+ children: mark.label
183
+ },
184
+ index
185
+ );
186
+ }),
187
+ positionStyles.map((style, index) => {
188
+ const thumbProps = resolveRepeatedSlotProps(
189
+ slotProps?.visualThumb,
190
+ thumbKeys[index]
191
+ );
192
+ return /* @__PURE__ */ jsx(
193
+ "span",
194
+ {
195
+ "data-part": "visual-thumb",
196
+ ...thumbProps,
197
+ style: { ...style, ...thumbProps.style }
198
+ },
199
+ index
200
+ );
201
+ })
202
+ ] }),
250
203
  inputNodes
251
204
  ] })
252
205
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/slider/client/SliderClient.tsx"],"sourcesContent":["\"use client\";\n\nimport type {\n CSSProperties,\n ElementType,\n KeyboardEvent,\n ReactElement,\n SyntheticEvent,\n} from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { useControllableState } from \"@gunkin/uiify/hooks\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { resolveDirection } from \"@gunkin/uiify/core/text-direction\";\nimport {\n mergeRepeatedSlotProps,\n omitProps,\n resolveRepeatedSlotProps,\n} from \"../../../core/slot-props.js\";\n\nimport { getSliderStops, snapSliderToStops } from \"../slider-values.js\";\nimport type {\n SliderClientProps,\n SliderClientSlotProps,\n SliderClientValue,\n SliderMark,\n} from \"../types.js\";\n\nconst DEFAULT_SLIDER_LABELS = {\n minimum: \"Minimum value\",\n maximum: \"Maximum value\",\n} as const;\n\ntype SliderPositionStyle = CSSProperties & {\n readonly \"--uiify-slider-position\"?: string;\n readonly \"--uiify-slider-start\"?: string;\n readonly \"--uiify-slider-end\"?: string;\n readonly \"--uiify-slider-middle\"?: string;\n};\n\nfunction normalizeValue(value: SliderClientValue, min: number, max: number): SliderClientValue {\n if (typeof value === \"number\") return Math.max(min, Math.min(max, value));\n\n const first = Math.max(min, Math.min(max, value[0]));\n const second = Math.max(min, Math.min(max, value[1]));\n return first <= second ? [first, second] : [second, first];\n}\n\nfunction normalizeSelection(\n value: SliderClientValue,\n min: number,\n max: number,\n step: number | null,\n stops: readonly number[],\n): SliderClientValue {\n const normalized = normalizeValue(value, min, max);\n if (step !== null) return normalized;\n if (typeof normalized === \"number\") return snapSliderToStops(normalized, stops);\n\n const lowerStops = stops.filter((stop) => stop <= normalized[1]);\n const lower = snapSliderToStops(normalized[0], lowerStops);\n const upperStops = stops.filter((stop) => stop >= lower);\n return [lower, snapSliderToStops(normalized[1], upperStops)];\n}\n\nfunction position(value: number, min: number, max: number): number {\n if (max <= min) return 0;\n return Math.max(0, Math.min(100, ((value - min) / (max - min)) * 100));\n}\n\nfunction marksInRange(\n marks: readonly SliderMark[],\n min: number,\n max: number,\n): readonly SliderMark[] {\n return marks.filter(({ value }) => Number.isFinite(value) && value >= min && value <= max);\n}\n\nfunction resolveMarkSlotProps(\n slotProps: SliderClientSlotProps[\"mark\"],\n markValue: number,\n index: number,\n) {\n const { byItemValue, byItemIndex, ...commonProps } = slotProps ?? {};\n return omitProps(\n mergeRepeatedSlotProps(\n mergeRepeatedSlotProps(commonProps, byItemValue?.[String(markValue)]),\n byItemIndex?.[index],\n ),\n [\"children\", \"dangerouslySetInnerHTML\", \"data-part\"],\n );\n}\n\nexport function SliderClient<TAs extends ElementType = \"div\">(\n props: SliderClientProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n value: controlledValue,\n defaultValue,\n onValueChange,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n orientation = \"horizontal\",\n marks = [],\n labels,\n slotProps,\n thumbLabels,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n ...consumerProps\n } = props as SliderClientProps<\"div\">;\n\n const stops = getSliderStops(min, max, marks);\n const initialValue = normalizeSelection(defaultValue ?? min, min, max, step, stops);\n const safeControlledValue =\n controlledValue === undefined\n ? undefined\n : normalizeSelection(controlledValue, min, max, step, stops);\n const [value, setValue] = useControllableState<SliderClientValue>({\n defaultValue: initialValue,\n onChange: onValueChange,\n value: safeControlledValue,\n });\n const [enhanced, setEnhanced] = useState(false);\n useEffect(() => setEnhanced(true), []);\n\n const normalizedValue = normalizeValue(value, min, max);\n const values: readonly number[] =\n typeof normalizedValue === \"number\"\n ? [normalizedValue]\n : [normalizedValue[0], normalizedValue[1]];\n const isRange = values.length === 2;\n const consumerStyle = \"style\" in consumerProps ? consumerProps.style : undefined;\n const consumerRole = \"role\" in consumerProps ? consumerProps.role : undefined;\n const positionStyles: readonly SliderPositionStyle[] = values.map((currentValue) => ({\n \"--uiify-slider-position\": String(position(currentValue, min, max)) + \"%\",\n }));\n const rootStyle: SliderPositionStyle = {\n ...consumerStyle,\n \"--uiify-slider-start\": String(position(values[0]!, min, max)) + \"%\",\n \"--uiify-slider-end\": String(position(values[values.length - 1]!, min, max)) + \"%\",\n \"--uiify-slider-middle\":\n String(\n (position(values[0]!, min, max) + position(values[values.length - 1]!, min, max)) / 2,\n ) + \"%\",\n };\n const visibleMarks = marksInRange(marks, min, max);\n const accessibleLabels = { ...DEFAULT_SLIDER_LABELS, ...labels };\n\n const setThumbValue = (index: number, proposed: number): void => {\n if (disabled) return;\n\n if (!isRange) {\n const next = step === null ? snapSliderToStops(proposed, stops) : proposed;\n setValue(next);\n return;\n }\n\n const lower = index === 0 ? min : values[0]!;\n const upper = index === 0 ? values[1]! : max;\n const availableStops = stops.filter((stop) => stop >= lower && stop <= upper);\n const snapped = step === null ? snapSliderToStops(proposed, availableStops) : proposed;\n const nextValue =\n index === 0\n ? ([Math.min(snapped, values[1]!), values[1]!] as const)\n : ([values[0]!, Math.max(snapped, values[0]!)] as const);\n setValue(nextValue);\n };\n\n const handleChange = (index: number, event: SyntheticEvent<HTMLInputElement>): void => {\n setThumbValue(index, event.currentTarget.valueAsNumber);\n };\n\n const handleKeyDown = (index: number, event: KeyboardEvent<HTMLInputElement>): void => {\n if (disabled || step !== null) return;\n\n const horizontalKey = event.key === \"ArrowRight\" || event.key === \"ArrowLeft\";\n const mirror =\n horizontalKey && orientation !== \"vertical\" && resolveDirection(event.currentTarget) === \"rtl\"\n ? -1\n : 1;\n const direction =\n (event.key === \"ArrowRight\" || event.key === \"ArrowUp\"\n ? 1\n : event.key === \"ArrowLeft\" || event.key === \"ArrowDown\"\n ? -1\n : 0) * mirror;\n if (direction === 0) return;\n\n event.preventDefault();\n const currentValue = values[index]!;\n const availableStops = isRange\n ? stops.filter((stop) => (index === 0 ? stop <= values[1]! : stop >= values[0]!))\n : stops;\n const currentIndex = availableStops.indexOf(currentValue);\n const nextValue = availableStops[currentIndex + direction];\n if (nextValue !== undefined) setThumbValue(index, nextValue);\n };\n\n const thumbKeys = isRange ? ([\"minimum\", \"maximum\"] as const) : ([\"value\"] as const);\n const inputNodes = values.map((currentValue, index) => {\n const thumbKey = thumbKeys[index]!;\n const inputProps = resolveRepeatedSlotProps(slotProps?.input, thumbKey, [\n \"aria-label\",\n \"aria-labelledby\",\n \"aria-orientation\",\n \"data-disabled\",\n \"data-orientation\",\n \"data-part\",\n \"data-state\",\n \"defaultChecked\",\n \"defaultValue\",\n \"disabled\",\n \"max\",\n \"min\",\n \"step\",\n \"type\",\n \"value\",\n ]);\n const inputLabel = isRange\n ? (thumbLabels?.[index] ??\n (index === 0 ? accessibleLabels.minimum : accessibleLabels.maximum))\n : ariaLabel;\n const inputLabelledBy = isRange ? undefined : ariaLabelledBy;\n\n return (\n <input\n {...inputProps}\n key={index}\n type=\"range\"\n min={min}\n max={max}\n step={step === null ? \"any\" : step}\n value={currentValue}\n disabled={disabled}\n aria-label={inputLabel}\n aria-labelledby={inputLabelledBy}\n aria-orientation={orientation}\n data-part=\"thumb\"\n data-state={String(currentValue)}\n data-orientation={orientation}\n data-disabled={disabled ? \"\" : undefined}\n onChange={(event) => {\n inputProps.onChange?.(event);\n if (!event.defaultPrevented) handleChange(index, event);\n }}\n onKeyDown={(event) => {\n inputProps.onKeyDown?.(event);\n if (!event.defaultPrevented) handleKeyDown(index, event);\n }}\n />\n );\n });\n\n return useRenderElement({\n as,\n defaultTag: \"div\",\n props: {\n ...consumerProps,\n role: isRange ? \"group\" : consumerRole,\n \"aria-label\": isRange ? ariaLabel : undefined,\n \"aria-labelledby\": isRange ? ariaLabelledBy : undefined,\n \"data-uiify-slider-client\": \"\",\n \"data-part\": \"root\",\n \"data-range\": isRange ? \"\" : undefined,\n \"data-state\": isRange ? \"range\" : String(values[0]),\n \"data-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-enhanced\": enhanced ? \"\" : undefined,\n style: rootStyle,\n children: (\n <>\n <div\n {...omitProps(slotProps?.track, [\n \"aria-hidden\",\n \"children\",\n \"dangerouslySetInnerHTML\",\n \"data-part\",\n ])}\n data-part=\"track\"\n aria-hidden=\"true\"\n >\n <span\n {...omitProps(slotProps?.range, [\"children\", \"dangerouslySetInnerHTML\", \"data-part\"])}\n data-part=\"range\"\n />\n {visibleMarks.map((mark, index) => {\n const markProps = resolveMarkSlotProps(slotProps?.mark, mark.value, index);\n return (\n <span\n {...markProps}\n key={index}\n data-part=\"mark\"\n style={\n {\n ...markProps.style,\n \"--uiify-slider-position\": String(position(mark.value, min, max)) + \"%\",\n } as SliderPositionStyle\n }\n >\n {mark.label}\n </span>\n );\n })}\n {positionStyles.map((style, index) => {\n const thumbProps = resolveRepeatedSlotProps(\n slotProps?.visualThumb,\n thumbKeys[index]!,\n [\"data-part\"],\n );\n return (\n <span\n {...thumbProps}\n key={index}\n data-part=\"visual-thumb\"\n style={{ ...thumbProps.style, ...style }}\n />\n );\n })}\n </div>\n {inputNodes}\n </>\n ),\n },\n render,\n state: { disabled, orientation, value: normalizedValue },\n });\n}\n\nSliderClient.displayName = \"SliderClient\";\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/slider/client/SliderClient.tsx"],"sourcesContent":["\"use client\";\n\nimport type {\n CSSProperties,\n ElementType,\n KeyboardEvent,\n ReactElement,\n SyntheticEvent,\n} from \"react\";\nimport { useEffect, useState } from \"react\";\nimport { useControllableState } from \"@gunkin/uiify/hooks\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { resolveDirection } from \"@gunkin/uiify/core/text-direction\";\nimport { mergeRepeatedSlotProps, resolveRepeatedSlotProps } from \"../../../core/slot-props.js\";\n\nimport { getSliderStops, snapSliderToStops } from \"../slider-values.js\";\nimport type {\n SliderClientProps,\n SliderClientSlotProps,\n SliderClientValue,\n SliderMark,\n} from \"../types.js\";\n\nconst DEFAULT_SLIDER_LABELS = {\n minimum: \"Minimum value\",\n maximum: \"Maximum value\",\n} as const;\n\ntype SliderPositionStyle = CSSProperties & {\n readonly \"--uiify-slider-position\"?: string;\n readonly \"--uiify-slider-start\"?: string;\n readonly \"--uiify-slider-end\"?: string;\n readonly \"--uiify-slider-middle\"?: string;\n};\n\nfunction normalizeValue(value: SliderClientValue, min: number, max: number): SliderClientValue {\n if (typeof value === \"number\") return Math.max(min, Math.min(max, value));\n\n const first = Math.max(min, Math.min(max, value[0]));\n const second = Math.max(min, Math.min(max, value[1]));\n return first <= second ? [first, second] : [second, first];\n}\n\nfunction normalizeSelection(\n value: SliderClientValue,\n min: number,\n max: number,\n step: number | null,\n stops: readonly number[],\n): SliderClientValue {\n const normalized = normalizeValue(value, min, max);\n if (step !== null) return normalized;\n if (typeof normalized === \"number\") return snapSliderToStops(normalized, stops);\n\n const lowerStops = stops.filter((stop) => stop <= normalized[1]);\n const lower = snapSliderToStops(normalized[0], lowerStops);\n const upperStops = stops.filter((stop) => stop >= lower);\n return [lower, snapSliderToStops(normalized[1], upperStops)];\n}\n\nfunction position(value: number, min: number, max: number): number {\n if (max <= min) return 0;\n return Math.max(0, Math.min(100, ((value - min) / (max - min)) * 100));\n}\n\nfunction marksInRange(\n marks: readonly SliderMark[],\n min: number,\n max: number,\n): readonly SliderMark[] {\n return marks.filter(({ value }) => Number.isFinite(value) && value >= min && value <= max);\n}\n\nfunction resolveMarkSlotProps(\n slotProps: SliderClientSlotProps[\"mark\"],\n markValue: number,\n index: number,\n) {\n const { byItemValue, byItemIndex, ...commonProps } = slotProps ?? {};\n return mergeRepeatedSlotProps(\n mergeRepeatedSlotProps(commonProps, byItemValue?.[String(markValue)]),\n byItemIndex?.[index],\n );\n}\n\nexport function SliderClient<TAs extends ElementType = \"div\">(\n props: SliderClientProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n value: controlledValue,\n defaultValue,\n onValueChange,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n orientation = \"horizontal\",\n marks = [],\n labels,\n slotProps,\n thumbLabels,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n ...consumerProps\n } = props as SliderClientProps<\"div\">;\n\n const stops = getSliderStops(min, max, marks);\n const initialValue = normalizeSelection(defaultValue ?? min, min, max, step, stops);\n const safeControlledValue =\n controlledValue === undefined\n ? undefined\n : normalizeSelection(controlledValue, min, max, step, stops);\n const [value, setValue] = useControllableState<SliderClientValue>({\n defaultValue: initialValue,\n onChange: onValueChange,\n value: safeControlledValue,\n });\n const [enhanced, setEnhanced] = useState(false);\n useEffect(() => setEnhanced(true), []);\n\n const normalizedValue = normalizeValue(value, min, max);\n const values: readonly number[] =\n typeof normalizedValue === \"number\"\n ? [normalizedValue]\n : [normalizedValue[0], normalizedValue[1]];\n const isRange = values.length === 2;\n const consumerStyle = \"style\" in consumerProps ? consumerProps.style : undefined;\n const positionStyles: readonly SliderPositionStyle[] = values.map((currentValue) => ({\n \"--uiify-slider-position\": String(position(currentValue, min, max)) + \"%\",\n }));\n const rootStyle: SliderPositionStyle = {\n \"--uiify-slider-start\": String(position(values[0]!, min, max)) + \"%\",\n \"--uiify-slider-end\": String(position(values[values.length - 1]!, min, max)) + \"%\",\n \"--uiify-slider-middle\":\n String(\n (position(values[0]!, min, max) + position(values[values.length - 1]!, min, max)) / 2,\n ) + \"%\",\n ...consumerStyle,\n };\n const visibleMarks = marksInRange(marks, min, max);\n const accessibleLabels = { ...DEFAULT_SLIDER_LABELS, ...labels };\n\n const setThumbValue = (index: number, proposed: number): void => {\n if (disabled) return;\n\n if (!isRange) {\n const next = step === null ? snapSliderToStops(proposed, stops) : proposed;\n setValue(next);\n return;\n }\n\n const lower = index === 0 ? min : values[0]!;\n const upper = index === 0 ? values[1]! : max;\n const availableStops = stops.filter((stop) => stop >= lower && stop <= upper);\n const snapped = step === null ? snapSliderToStops(proposed, availableStops) : proposed;\n const nextValue =\n index === 0\n ? ([Math.min(snapped, values[1]!), values[1]!] as const)\n : ([values[0]!, Math.max(snapped, values[0]!)] as const);\n setValue(nextValue);\n };\n\n const handleChange = (index: number, event: SyntheticEvent<HTMLInputElement>): void => {\n setThumbValue(index, event.currentTarget.valueAsNumber);\n };\n\n const handleKeyDown = (index: number, event: KeyboardEvent<HTMLInputElement>): void => {\n if (disabled || step !== null) return;\n\n const horizontalKey = event.key === \"ArrowRight\" || event.key === \"ArrowLeft\";\n const mirror =\n horizontalKey && orientation !== \"vertical\" && resolveDirection(event.currentTarget) === \"rtl\"\n ? -1\n : 1;\n const direction =\n (event.key === \"ArrowRight\" || event.key === \"ArrowUp\"\n ? 1\n : event.key === \"ArrowLeft\" || event.key === \"ArrowDown\"\n ? -1\n : 0) * mirror;\n if (direction === 0) return;\n\n event.preventDefault();\n const currentValue = values[index]!;\n const availableStops = isRange\n ? stops.filter((stop) => (index === 0 ? stop <= values[1]! : stop >= values[0]!))\n : stops;\n const currentIndex = availableStops.indexOf(currentValue);\n const nextValue = availableStops[currentIndex + direction];\n if (nextValue !== undefined) setThumbValue(index, nextValue);\n };\n\n const thumbKeys = isRange ? ([\"minimum\", \"maximum\"] as const) : ([\"value\"] as const);\n const inputNodes = values.map((currentValue, index) => {\n const thumbKey = thumbKeys[index]!;\n const inputProps = resolveRepeatedSlotProps(slotProps?.input, thumbKey);\n const inputLabel = isRange\n ? (thumbLabels?.[index] ??\n (index === 0 ? accessibleLabels.minimum : accessibleLabels.maximum))\n : ariaLabel;\n const inputLabelledBy = isRange ? undefined : ariaLabelledBy;\n\n return (\n <input\n key={index}\n type=\"range\"\n min={min}\n max={max}\n step={step === null ? \"any\" : step}\n value={currentValue}\n disabled={disabled}\n aria-label={inputLabel}\n aria-labelledby={inputLabelledBy}\n aria-orientation={orientation}\n data-part=\"thumb\"\n data-state={String(currentValue)}\n data-orientation={orientation}\n data-disabled={disabled ? \"\" : undefined}\n {...inputProps}\n onChange={composeEventHandlers(inputProps.onChange, (event) => handleChange(index, event))}\n onKeyDown={composeEventHandlers(inputProps.onKeyDown, (event) =>\n handleKeyDown(index, event),\n )}\n />\n );\n });\n\n return useRenderElement({\n as,\n defaultTag: \"div\",\n props: {\n role: isRange ? \"group\" : undefined,\n \"aria-label\": isRange ? ariaLabel : undefined,\n \"aria-labelledby\": isRange ? ariaLabelledBy : undefined,\n \"data-uiify-slider-client\": \"\",\n \"data-part\": \"root\",\n \"data-range\": isRange ? \"\" : undefined,\n \"data-state\": isRange ? \"range\" : String(values[0]),\n \"data-orientation\": orientation,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-enhanced\": enhanced ? \"\" : undefined,\n ...consumerProps,\n style: rootStyle,\n children: (\n <>\n <div data-part=\"track\" aria-hidden=\"true\" {...slotProps?.track}>\n <span data-part=\"range\" {...slotProps?.range} />\n {visibleMarks.map((mark, index) => {\n const markProps = resolveMarkSlotProps(slotProps?.mark, mark.value, index);\n return (\n <span\n key={index}\n data-part=\"mark\"\n {...markProps}\n style={\n {\n \"--uiify-slider-position\": String(position(mark.value, min, max)) + \"%\",\n ...markProps.style,\n } as SliderPositionStyle\n }\n >\n {mark.label}\n </span>\n );\n })}\n {positionStyles.map((style, index) => {\n const thumbProps = resolveRepeatedSlotProps(\n slotProps?.visualThumb,\n thumbKeys[index]!,\n );\n return (\n <span\n key={index}\n data-part=\"visual-thumb\"\n {...thumbProps}\n style={{ ...style, ...thumbProps.style }}\n />\n );\n })}\n </div>\n {inputNodes}\n </>\n ),\n },\n render,\n state: { disabled, orientation, value: normalizedValue },\n });\n}\n\nSliderClient.displayName = \"SliderClient\";\n"],"mappings":";AA8MM,SAyCE,UAzCF,KA0CI,YA1CJ;AArMN,SAAS,WAAW,gBAAgB;AACpC,SAAS,4BAA4B;AACrC,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB,gCAAgC;AAEjE,SAAS,gBAAgB,yBAAyB;AAQlD,MAAM,wBAAwB;AAAA,EAC5B,SAAS;AAAA,EACT,SAAS;AACX;AASA,SAAS,eAAe,OAA0B,KAAa,KAAgC;AAC7F,MAAI,OAAO,UAAU,SAAU,QAAO,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC;AAExE,QAAM,QAAQ,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;AACnD,QAAM,SAAS,KAAK,IAAI,KAAK,KAAK,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;AACpD,SAAO,SAAS,SAAS,CAAC,OAAO,MAAM,IAAI,CAAC,QAAQ,KAAK;AAC3D;AAEA,SAAS,mBACP,OACA,KACA,KACA,MACA,OACmB;AACnB,QAAM,aAAa,eAAe,OAAO,KAAK,GAAG;AACjD,MAAI,SAAS,KAAM,QAAO;AAC1B,MAAI,OAAO,eAAe,SAAU,QAAO,kBAAkB,YAAY,KAAK;AAE9E,QAAM,aAAa,MAAM,OAAO,CAAC,SAAS,QAAQ,WAAW,CAAC,CAAC;AAC/D,QAAM,QAAQ,kBAAkB,WAAW,CAAC,GAAG,UAAU;AACzD,QAAM,aAAa,MAAM,OAAO,CAAC,SAAS,QAAQ,KAAK;AACvD,SAAO,CAAC,OAAO,kBAAkB,WAAW,CAAC,GAAG,UAAU,CAAC;AAC7D;AAEA,SAAS,SAAS,OAAe,KAAa,KAAqB;AACjE,MAAI,OAAO,IAAK,QAAO;AACvB,SAAO,KAAK,IAAI,GAAG,KAAK,IAAI,MAAO,QAAQ,QAAQ,MAAM,OAAQ,GAAG,CAAC;AACvE;AAEA,SAAS,aACP,OACA,KACA,KACuB;AACvB,SAAO,MAAM,OAAO,CAAC,EAAE,MAAM,MAAM,OAAO,SAAS,KAAK,KAAK,SAAS,OAAO,SAAS,GAAG;AAC3F;AAEA,SAAS,qBACP,WACA,WACA,OACA;AACA,QAAM,EAAE,aAAa,aAAa,GAAG,YAAY,IAAI,aAAa,CAAC;AACnE,SAAO;AAAA,IACL,uBAAuB,aAAa,cAAc,OAAO,SAAS,CAAC,CAAC;AAAA,IACpE,cAAc,KAAK;AAAA,EACrB;AACF;AAEO,SAAS,aACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,WAAW;AAAA,IACX,cAAc;AAAA,IACd,QAAQ,CAAC;AAAA,IACT;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,QAAQ,eAAe,KAAK,KAAK,KAAK;AAC5C,QAAM,eAAe,mBAAmB,gBAAgB,KAAK,KAAK,KAAK,MAAM,KAAK;AAClF,QAAM,sBACJ,oBAAoB,SAChB,SACA,mBAAmB,iBAAiB,KAAK,KAAK,MAAM,KAAK;AAC/D,QAAM,CAAC,OAAO,QAAQ,IAAI,qBAAwC;AAAA,IAChE,cAAc;AAAA,IACd,UAAU;AAAA,IACV,OAAO;AAAA,EACT,CAAC;AACD,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,YAAU,MAAM,YAAY,IAAI,GAAG,CAAC,CAAC;AAErC,QAAM,kBAAkB,eAAe,OAAO,KAAK,GAAG;AACtD,QAAM,SACJ,OAAO,oBAAoB,WACvB,CAAC,eAAe,IAChB,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC,CAAC;AAC7C,QAAM,UAAU,OAAO,WAAW;AAClC,QAAM,gBAAgB,WAAW,gBAAgB,cAAc,QAAQ;AACvE,QAAM,iBAAiD,OAAO,IAAI,CAAC,kBAAkB;AAAA,IACnF,2BAA2B,OAAO,SAAS,cAAc,KAAK,GAAG,CAAC,IAAI;AAAA,EACxE,EAAE;AACF,QAAM,YAAiC;AAAA,IACrC,wBAAwB,OAAO,SAAS,OAAO,CAAC,GAAI,KAAK,GAAG,CAAC,IAAI;AAAA,IACjE,sBAAsB,OAAO,SAAS,OAAO,OAAO,SAAS,CAAC,GAAI,KAAK,GAAG,CAAC,IAAI;AAAA,IAC/E,yBACE;AAAA,OACG,SAAS,OAAO,CAAC,GAAI,KAAK,GAAG,IAAI,SAAS,OAAO,OAAO,SAAS,CAAC,GAAI,KAAK,GAAG,KAAK;AAAA,IACtF,IAAI;AAAA,IACN,GAAG;AAAA,EACL;AACA,QAAM,eAAe,aAAa,OAAO,KAAK,GAAG;AACjD,QAAM,mBAAmB,EAAE,GAAG,uBAAuB,GAAG,OAAO;AAE/D,QAAM,gBAAgB,CAAC,OAAe,aAA2B;AAC/D,QAAI,SAAU;AAEd,QAAI,CAAC,SAAS;AACZ,YAAM,OAAO,SAAS,OAAO,kBAAkB,UAAU,KAAK,IAAI;AAClE,eAAS,IAAI;AACb;AAAA,IACF;AAEA,UAAM,QAAQ,UAAU,IAAI,MAAM,OAAO,CAAC;AAC1C,UAAM,QAAQ,UAAU,IAAI,OAAO,CAAC,IAAK;AACzC,UAAM,iBAAiB,MAAM,OAAO,CAAC,SAAS,QAAQ,SAAS,QAAQ,KAAK;AAC5E,UAAM,UAAU,SAAS,OAAO,kBAAkB,UAAU,cAAc,IAAI;AAC9E,UAAM,YACJ,UAAU,IACL,CAAC,KAAK,IAAI,SAAS,OAAO,CAAC,CAAE,GAAG,OAAO,CAAC,CAAE,IAC1C,CAAC,OAAO,CAAC,GAAI,KAAK,IAAI,SAAS,OAAO,CAAC,CAAE,CAAC;AACjD,aAAS,SAAS;AAAA,EACpB;AAEA,QAAM,eAAe,CAAC,OAAe,UAAkD;AACrF,kBAAc,OAAO,MAAM,cAAc,aAAa;AAAA,EACxD;AAEA,QAAM,gBAAgB,CAAC,OAAe,UAAiD;AACrF,QAAI,YAAY,SAAS,KAAM;AAE/B,UAAM,gBAAgB,MAAM,QAAQ,gBAAgB,MAAM,QAAQ;AAClE,UAAM,SACJ,iBAAiB,gBAAgB,cAAc,iBAAiB,MAAM,aAAa,MAAM,QACrF,KACA;AACN,UAAM,aACH,MAAM,QAAQ,gBAAgB,MAAM,QAAQ,YACzC,IACA,MAAM,QAAQ,eAAe,MAAM,QAAQ,cACzC,KACA,KAAK;AACb,QAAI,cAAc,EAAG;AAErB,UAAM,eAAe;AACrB,UAAM,eAAe,OAAO,KAAK;AACjC,UAAM,iBAAiB,UACnB,MAAM,OAAO,CAAC,SAAU,UAAU,IAAI,QAAQ,OAAO,CAAC,IAAK,QAAQ,OAAO,CAAC,CAAG,IAC9E;AACJ,UAAM,eAAe,eAAe,QAAQ,YAAY;AACxD,UAAM,YAAY,eAAe,eAAe,SAAS;AACzD,QAAI,cAAc,OAAW,eAAc,OAAO,SAAS;AAAA,EAC7D;AAEA,QAAM,YAAY,UAAW,CAAC,WAAW,SAAS,IAAe,CAAC,OAAO;AACzE,QAAM,aAAa,OAAO,IAAI,CAAC,cAAc,UAAU;AACrD,UAAM,WAAW,UAAU,KAAK;AAChC,UAAM,aAAa,yBAAyB,WAAW,OAAO,QAAQ;AACtE,UAAM,aAAa,UACd,cAAc,KAAK,MACnB,UAAU,IAAI,iBAAiB,UAAU,iBAAiB,WAC3D;AACJ,UAAM,kBAAkB,UAAU,SAAY;AAE9C,WACE;AAAA,MAAC;AAAA;AAAA,QAEC,MAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA,MAAM,SAAS,OAAO,QAAQ;AAAA,QAC9B,OAAO;AAAA,QACP;AAAA,QACA,cAAY;AAAA,QACZ,mBAAiB;AAAA,QACjB,oBAAkB;AAAA,QAClB,aAAU;AAAA,QACV,cAAY,OAAO,YAAY;AAAA,QAC/B,oBAAkB;AAAA,QAClB,iBAAe,WAAW,KAAK;AAAA,QAC9B,GAAG;AAAA,QACJ,UAAU,qBAAqB,WAAW,UAAU,CAAC,UAAU,aAAa,OAAO,KAAK,CAAC;AAAA,QACzF,WAAW;AAAA,UAAqB,WAAW;AAAA,UAAW,CAAC,UACrD,cAAc,OAAO,KAAK;AAAA,QAC5B;AAAA;AAAA,MAlBK;AAAA,IAmBP;AAAA,EAEJ,CAAC;AAED,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,MAAM,UAAU,UAAU;AAAA,MAC1B,cAAc,UAAU,YAAY;AAAA,MACpC,mBAAmB,UAAU,iBAAiB;AAAA,MAC9C,4BAA4B;AAAA,MAC5B,aAAa;AAAA,MACb,cAAc,UAAU,KAAK;AAAA,MAC7B,cAAc,UAAU,UAAU,OAAO,OAAO,CAAC,CAAC;AAAA,MAClD,oBAAoB;AAAA,MACpB,iBAAiB,WAAW,KAAK;AAAA,MACjC,iBAAiB,WAAW,KAAK;AAAA,MACjC,GAAG;AAAA,MACH,OAAO;AAAA,MACP,UACE,iCACE;AAAA,6BAAC,SAAI,aAAU,SAAQ,eAAY,QAAQ,GAAG,WAAW,OACvD;AAAA,8BAAC,UAAK,aAAU,SAAS,GAAG,WAAW,OAAO;AAAA,UAC7C,aAAa,IAAI,CAAC,MAAM,UAAU;AACjC,kBAAM,YAAY,qBAAqB,WAAW,MAAM,KAAK,OAAO,KAAK;AACzE,mBACE;AAAA,cAAC;AAAA;AAAA,gBAEC,aAAU;AAAA,gBACT,GAAG;AAAA,gBACJ,OACE;AAAA,kBACE,2BAA2B,OAAO,SAAS,KAAK,OAAO,KAAK,GAAG,CAAC,IAAI;AAAA,kBACpE,GAAG,UAAU;AAAA,gBACf;AAAA,gBAGD,eAAK;AAAA;AAAA,cAVD;AAAA,YAWP;AAAA,UAEJ,CAAC;AAAA,UACA,eAAe,IAAI,CAAC,OAAO,UAAU;AACpC,kBAAM,aAAa;AAAA,cACjB,WAAW;AAAA,cACX,UAAU,KAAK;AAAA,YACjB;AACA,mBACE;AAAA,cAAC;AAAA;AAAA,gBAEC,aAAU;AAAA,gBACT,GAAG;AAAA,gBACJ,OAAO,EAAE,GAAG,OAAO,GAAG,WAAW,MAAM;AAAA;AAAA,cAHlC;AAAA,YAIP;AAAA,UAEJ,CAAC;AAAA,WACH;AAAA,QACC;AAAA,SACH;AAAA,IAEJ;AAAA,IACA;AAAA,IACA,OAAO,EAAE,UAAU,aAAa,OAAO,gBAAgB;AAAA,EACzD,CAAC;AACH;AAEA,aAAa,cAAc;","names":[]}
@@ -1,6 +1,6 @@
1
- import type { ComponentPropsWithRef, ElementType, ReactNode } from "react";
1
+ import type { ElementType, ReactNode } from "react";
2
2
  import type { RenderableProps } from "@gunkin/uiify/core/render";
3
- import type { ConsumerDataAttributes, RepeatedSlotProps } from "../../core/slot-props.js";
3
+ import type { RepeatedSlotProps, SlotProps } from "../../core/slot-props.js";
4
4
  export interface SliderMark {
5
5
  readonly value: number;
6
6
  readonly label?: ReactNode;
@@ -31,48 +31,18 @@ export interface SliderClientOwnProps {
31
31
  readonly "aria-labelledby"?: string;
32
32
  readonly slotProps?: SliderClientSlotProps;
33
33
  }
34
- type SliderRepeatedSlotProps<TTag extends ElementType, TOwned extends object = object> = RepeatedSlotProps<Omit<ComponentPropsWithRef<TTag>, "children" | "dangerouslySetInnerHTML">, TOwned>;
35
- type SliderMarkNativeProps = Omit<ComponentPropsWithRef<"span">, "children" | "dangerouslySetInnerHTML"> & ConsumerDataAttributes & {
36
- readonly "data-part"?: never;
37
- };
38
- type SliderMarkSlotProps = Omit<SliderRepeatedSlotProps<"span", {
39
- readonly "data-part"?: never;
40
- }>, "byItemValue"> & {
41
- readonly byItemValue?: Readonly<Record<string, SliderMarkNativeProps>>;
34
+ type SliderMarkSlotProps = RepeatedSlotProps<SlotProps<"span">> & {
42
35
  /** Use the rendered mark index to customize records that share one numeric value. */
43
- readonly byItemIndex?: Readonly<Record<number, SliderMarkNativeProps>>;
36
+ readonly byItemIndex?: Readonly<Record<number, SlotProps<"span">>>;
44
37
  };
45
38
  export interface SliderClientSlotProps {
46
- readonly track?: Omit<ComponentPropsWithRef<"div">, "aria-hidden" | "children" | "dangerouslySetInnerHTML" | "data-part"> & ConsumerDataAttributes & {
47
- readonly "aria-hidden"?: never;
48
- readonly "data-part"?: never;
49
- };
39
+ readonly track?: SlotProps<"div">;
50
40
  readonly range?: SliderClientPartSlotProps<"span">;
51
41
  readonly mark?: SliderMarkSlotProps;
52
- readonly visualThumb?: SliderRepeatedSlotProps<"span", {
53
- readonly "data-part"?: never;
54
- }>;
55
- readonly input?: SliderRepeatedSlotProps<"input", {
56
- readonly "aria-label"?: never;
57
- readonly "aria-labelledby"?: never;
58
- readonly "aria-orientation"?: never;
59
- readonly "data-disabled"?: never;
60
- readonly "data-orientation"?: never;
61
- readonly "data-part"?: never;
62
- readonly "data-state"?: never;
63
- readonly defaultChecked?: never;
64
- readonly defaultValue?: never;
65
- readonly disabled?: never;
66
- readonly max?: never;
67
- readonly min?: never;
68
- readonly step?: never;
69
- readonly type?: never;
70
- readonly value?: never;
71
- }>;
42
+ readonly visualThumb?: RepeatedSlotProps<SlotProps<"span">>;
43
+ readonly input?: RepeatedSlotProps<SlotProps<"input">>;
72
44
  }
73
- export type SliderClientPartSlotProps<TTag extends ElementType> = Omit<ComponentPropsWithRef<TTag>, "children" | "dangerouslySetInnerHTML" | "data-part"> & ConsumerDataAttributes & {
74
- readonly "data-part"?: never;
75
- };
45
+ export type SliderClientPartSlotProps<TTag extends ElementType> = SlotProps<TTag>;
76
46
  export interface SliderLabels {
77
47
  readonly minimum: string;
78
48
  readonly maximum: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/slider/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/slider/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../src/components/spinner/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAIvD,OAAO,KAAK,EAAkC,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/E,wBAAgB,OAAO,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EACrD,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,GACvB,YAAY,GAAG,IAAI,CAuDrB;yBAzDe,OAAO"}
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../src/components/spinner/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAGvD,OAAO,KAAK,EAAkC,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/E,wBAAgB,OAAO,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EACrD,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,GACvB,YAAY,GAAG,IAAI,CAoDrB;yBAtDe,OAAO"}