@gunkin/uiify 0.0.1-alpha → 0.0.2-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 (207) hide show
  1. package/dist/components/accordion/Accordion.d.ts +2 -2
  2. package/dist/components/accordion/Accordion.d.ts.map +1 -1
  3. package/dist/components/accordion/Accordion.js +1 -2
  4. package/dist/components/accordion/Accordion.js.map +1 -1
  5. package/dist/components/alert-modal/AlertModal.d.ts +1 -1
  6. package/dist/components/alert-modal/AlertModal.d.ts.map +1 -1
  7. package/dist/components/alert-modal/AlertModal.js +5 -8
  8. package/dist/components/alert-modal/AlertModal.js.map +1 -1
  9. package/dist/components/alert-modal/AlertModalParts.d.ts +4 -29
  10. package/dist/components/alert-modal/AlertModalParts.d.ts.map +1 -1
  11. package/dist/components/alert-modal/AlertModalParts.js +29 -36
  12. package/dist/components/alert-modal/AlertModalParts.js.map +1 -1
  13. package/dist/components/alert-modal/types.d.ts +0 -3
  14. package/dist/components/alert-modal/types.d.ts.map +1 -1
  15. package/dist/components/behavior.css +91 -48
  16. package/dist/components/behavior.css.map +1 -1
  17. package/dist/components/breadcrumb/Breadcrumb.js +1 -1
  18. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  19. package/dist/components/button/Button.d.ts.map +1 -1
  20. package/dist/components/button/Button.js +1 -0
  21. package/dist/components/button/Button.js.map +1 -1
  22. package/dist/components/candle-chart/CandleChart.d.ts.map +1 -1
  23. package/dist/components/candle-chart/CandleChart.js +39 -55
  24. package/dist/components/candle-chart/CandleChart.js.map +1 -1
  25. package/dist/components/candle-chart/client/CandleChartClient.js.map +1 -1
  26. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  27. package/dist/components/carousel/CarouselMarkup.js +26 -45
  28. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  29. package/dist/components/carousel/carousel-markup.d.ts +0 -1
  30. package/dist/components/carousel/carousel-markup.d.ts.map +1 -1
  31. package/dist/components/carousel/carousel-markup.js +0 -5
  32. package/dist/components/carousel/carousel-markup.js.map +1 -1
  33. package/dist/components/carousel/client/carousel-controller.js +2 -2
  34. package/dist/components/carousel/client/carousel-controller.js.map +1 -1
  35. package/dist/components/carousel/client/carousel-controls.d.ts.map +1 -1
  36. package/dist/components/carousel/client/carousel-controls.js +3 -5
  37. package/dist/components/carousel/client/carousel-controls.js.map +1 -1
  38. package/dist/components/carousel/client/carousel-drag.js +1 -1
  39. package/dist/components/carousel/client/carousel-drag.js.map +1 -1
  40. package/dist/components/carousel/client/carousel-observer.js +2 -2
  41. package/dist/components/carousel/client/carousel-observer.js.map +1 -1
  42. package/dist/components/carousel/fade/fade-controller.js +2 -2
  43. package/dist/components/carousel/fade/fade-controller.js.map +1 -1
  44. package/dist/components/carousel/fade/fade-swipe.js +1 -1
  45. package/dist/components/carousel/fade/fade-swipe.js.map +1 -1
  46. package/dist/components/carousel/index.d.ts +1 -1
  47. package/dist/components/carousel/index.d.ts.map +1 -1
  48. package/dist/components/carousel/index.js.map +1 -1
  49. package/dist/components/carousel/types.d.ts +0 -13
  50. package/dist/components/carousel/types.d.ts.map +1 -1
  51. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  52. package/dist/components/checkbox/Checkbox.js +3 -2
  53. package/dist/components/checkbox/Checkbox.js.map +1 -1
  54. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  55. package/dist/components/combobox/Combobox.js +7 -1
  56. package/dist/components/combobox/Combobox.js.map +1 -1
  57. package/dist/components/combobox/types.d.ts +1 -0
  58. package/dist/components/combobox/types.d.ts.map +1 -1
  59. package/dist/components/context-menu/ContextMenu.d.ts.map +1 -1
  60. package/dist/components/context-menu/ContextMenu.js +21 -4
  61. package/dist/components/context-menu/ContextMenu.js.map +1 -1
  62. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  63. package/dist/components/drawer/Drawer.js +15 -0
  64. package/dist/components/drawer/Drawer.js.map +1 -1
  65. package/dist/components/drawer/DrawerNative.d.ts +1 -1
  66. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  67. package/dist/components/drawer/DrawerNative.js +28 -13
  68. package/dist/components/drawer/DrawerNative.js.map +1 -1
  69. package/dist/components/drawer/types.d.ts +0 -2
  70. package/dist/components/drawer/types.d.ts.map +1 -1
  71. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  72. package/dist/components/dropdown-menu/DropdownMenu.js +2 -1
  73. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  74. package/dist/components/dropdown-menu/DropdownMenuBar.d.ts +1 -1
  75. package/dist/components/dropdown-menu/DropdownMenuBar.d.ts.map +1 -1
  76. package/dist/components/dropdown-menu/DropdownMenuBar.js +12 -2
  77. package/dist/components/dropdown-menu/DropdownMenuBar.js.map +1 -1
  78. package/dist/components/dropdown-menu/types.d.ts +1 -0
  79. package/dist/components/dropdown-menu/types.d.ts.map +1 -1
  80. package/dist/components/enhance/listeners.js +1 -1
  81. package/dist/components/enhance/listeners.js.map +1 -1
  82. package/dist/components/enhance/sync.d.ts.map +1 -1
  83. package/dist/components/enhance/sync.js +7 -4
  84. package/dist/components/enhance/sync.js.map +1 -1
  85. package/dist/components/field/Field.d.ts.map +1 -1
  86. package/dist/components/field/Field.js +6 -0
  87. package/dist/components/field/Field.js.map +1 -1
  88. package/dist/components/file-upload/FileUpload.d.ts.map +1 -1
  89. package/dist/components/file-upload/FileUpload.js +8 -2
  90. package/dist/components/file-upload/FileUpload.js.map +1 -1
  91. package/dist/components/file-upload/types.d.ts +1 -0
  92. package/dist/components/file-upload/types.d.ts.map +1 -1
  93. package/dist/components/hover-card/HoverCard.d.ts.map +1 -1
  94. package/dist/components/hover-card/HoverCard.js +2 -0
  95. package/dist/components/hover-card/HoverCard.js.map +1 -1
  96. package/dist/components/input/Input.d.ts.map +1 -1
  97. package/dist/components/input/Input.js +1 -0
  98. package/dist/components/input/Input.js.map +1 -1
  99. package/dist/components/internal/choice-family/ChoiceGroup.d.ts +1 -2
  100. package/dist/components/internal/choice-family/ChoiceGroup.d.ts.map +1 -1
  101. package/dist/components/internal/choice-family/ChoiceGroup.js +5 -6
  102. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  103. package/dist/components/internal/choice-family/types.d.ts +0 -4
  104. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  105. package/dist/components/line-chart/LineChart.d.ts.map +1 -1
  106. package/dist/components/line-chart/LineChart.js +30 -38
  107. package/dist/components/line-chart/LineChart.js.map +1 -1
  108. package/dist/components/line-chart/client/LineChartClient.js.map +1 -1
  109. package/dist/components/modal/Modal.d.ts +1 -1
  110. package/dist/components/modal/Modal.d.ts.map +1 -1
  111. package/dist/components/modal/Modal.js +4 -6
  112. package/dist/components/modal/Modal.js.map +1 -1
  113. package/dist/components/modal/ModalParts.d.ts +3 -30
  114. package/dist/components/modal/ModalParts.d.ts.map +1 -1
  115. package/dist/components/modal/ModalParts.js +20 -17
  116. package/dist/components/modal/ModalParts.js.map +1 -1
  117. package/dist/components/modal/client/ModalClientContent.d.ts.map +1 -1
  118. package/dist/components/modal/client/ModalClientContent.js +5 -2
  119. package/dist/components/modal/client/ModalClientContent.js.map +1 -1
  120. package/dist/components/modal/types.d.ts +0 -2
  121. package/dist/components/modal/types.d.ts.map +1 -1
  122. package/dist/components/otp-input/OtpInput.d.ts.map +1 -1
  123. package/dist/components/otp-input/OtpInput.js +3 -0
  124. package/dist/components/otp-input/OtpInput.js.map +1 -1
  125. package/dist/components/popup/Popup.d.ts.map +1 -1
  126. package/dist/components/popup/Popup.js +8 -3
  127. package/dist/components/popup/Popup.js.map +1 -1
  128. package/dist/components/popup/PopupParts.d.ts +3 -26
  129. package/dist/components/popup/PopupParts.d.ts.map +1 -1
  130. package/dist/components/popup/PopupParts.js +27 -18
  131. package/dist/components/popup/PopupParts.js.map +1 -1
  132. package/dist/components/radio-group/RadioGroup.d.ts.map +1 -1
  133. package/dist/components/radio-group/RadioGroup.js +0 -1
  134. package/dist/components/radio-group/RadioGroup.js.map +1 -1
  135. package/dist/components/select/Select.d.ts.map +1 -1
  136. package/dist/components/select/Select.js +1 -0
  137. package/dist/components/select/Select.js.map +1 -1
  138. package/dist/components/slider/Slider.d.ts.map +1 -1
  139. package/dist/components/slider/Slider.js +1 -0
  140. package/dist/components/slider/Slider.js.map +1 -1
  141. package/dist/components/spinner/Spinner.d.ts.map +1 -1
  142. package/dist/components/spinner/Spinner.js +2 -2
  143. package/dist/components/spinner/Spinner.js.map +1 -1
  144. package/dist/components/spinner/types.d.ts +1 -1
  145. package/dist/components/spinner/types.d.ts.map +1 -1
  146. package/dist/components/stepper/Stepper.js +2 -2
  147. package/dist/components/stepper/Stepper.js.map +1 -1
  148. package/dist/components/switch/Switch.d.ts.map +1 -1
  149. package/dist/components/switch/Switch.js +1 -0
  150. package/dist/components/switch/Switch.js.map +1 -1
  151. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  152. package/dist/components/tabs/Tabs.js +1 -3
  153. package/dist/components/tabs/Tabs.js.map +1 -1
  154. package/dist/components/tags-input/TagsInput.d.ts.map +1 -1
  155. package/dist/components/tags-input/TagsInput.js +6 -1
  156. package/dist/components/tags-input/TagsInput.js.map +1 -1
  157. package/dist/components/tags-input/types.d.ts +1 -0
  158. package/dist/components/tags-input/types.d.ts.map +1 -1
  159. package/dist/components/textarea/Textarea.d.ts.map +1 -1
  160. package/dist/components/textarea/Textarea.js +1 -0
  161. package/dist/components/textarea/Textarea.js.map +1 -1
  162. package/dist/components/toast/Toast.d.ts.map +1 -1
  163. package/dist/components/toast/Toast.js +2 -1
  164. package/dist/components/toast/Toast.js.map +1 -1
  165. package/dist/components/toast/ToastElements.d.ts.map +1 -1
  166. package/dist/components/toast/ToastElements.js +4 -1
  167. package/dist/components/toast/ToastElements.js.map +1 -1
  168. package/dist/components/toggle/Toggle.d.ts.map +1 -1
  169. package/dist/components/toggle/Toggle.js +1 -0
  170. package/dist/components/toggle/Toggle.js.map +1 -1
  171. package/dist/components/toolbar/Toolbar.d.ts.map +1 -1
  172. package/dist/components/toolbar/Toolbar.js +5 -3
  173. package/dist/components/toolbar/Toolbar.js.map +1 -1
  174. package/dist/components/toolbar/ToolbarShell.d.ts.map +1 -1
  175. package/dist/components/toolbar/ToolbarShell.js +8 -5
  176. package/dist/components/toolbar/ToolbarShell.js.map +1 -1
  177. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  178. package/dist/components/tooltip/Tooltip.js +2 -0
  179. package/dist/components/tooltip/Tooltip.js.map +1 -1
  180. package/dist/components/virtual-scroll/VirtualScroll.js +2 -2
  181. package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
  182. package/dist/components/virtual-scroll/VirtualScrollRowShell.d.ts +1 -1
  183. package/dist/components/virtual-scroll/VirtualScrollRowShell.js +3 -3
  184. package/dist/components/virtual-scroll/VirtualScrollRowShell.js.map +1 -1
  185. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.js +2 -2
  186. package/dist/components/virtual-scroll/virtual-scroll-scroll-sync.js.map +1 -1
  187. package/dist/core/render-native-invoker.d.ts +6 -3
  188. package/dist/core/render-native-invoker.d.ts.map +1 -1
  189. package/dist/core/render-native-invoker.js +5 -3
  190. package/dist/core/render-native-invoker.js.map +1 -1
  191. package/dist/elements/choice/Choice.d.ts +2 -2
  192. package/dist/elements/choice/Choice.js +1 -1
  193. package/dist/elements/choice/Choice.js.map +1 -1
  194. package/dist/elements/choice/types.d.ts +1 -1
  195. package/dist/elements/choice/types.d.ts.map +1 -1
  196. package/dist/elements/dialog/Dialog.d.ts +3 -3
  197. package/dist/elements/dialog/Dialog.d.ts.map +1 -1
  198. package/dist/elements/dialog/Dialog.js +5 -3
  199. package/dist/elements/dialog/Dialog.js.map +1 -1
  200. package/dist/elements/popover/Popover.d.ts +6 -5
  201. package/dist/elements/popover/Popover.d.ts.map +1 -1
  202. package/dist/elements/popover/Popover.js +8 -4
  203. package/dist/elements/popover/Popover.js.map +1 -1
  204. package/dist/styles/index.css +1 -1
  205. package/dist/styles/tailwind.css +33 -35
  206. package/dist/styles/tokens.css +1 -1
  207. package/package.json +7 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/popup/PopupParts.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport {\n PopoverClose as ElementPopoverClose,\n PopoverSurface as ElementPopoverSurface,\n PopoverTrigger as ElementPopoverTrigger,\n} from \"../../elements/popover/index.js\";\nimport type {\n PopoverCloseProps,\n PopoverSurfaceProps,\n PopoverTriggerProps,\n} from \"../../elements/popover/index.js\";\nimport type { PopupCloseProps, PopupContentProps, PopupTriggerProps } from \"./types.js\";\n\n/**\n * Toggles `target`; light dismiss, Escape and nesting are handled by the browser.\n *\n * Built on `@gunkin/uiify/elements/popover`'s `Popover.Trigger`, which already emits\n * `data-uiify-popover-trigger` — the deprecated marker this component used to emit itself\n * now comes free from the element, so the\n * duplicate emission is deleted; this part adds only its own `data-uiify-popup-trigger`.\n * Calls the element as a plain function rather than rendering\n * `<ElementPopoverTrigger>`: Tier 0, no hooks (enforced by elements/architecture.test.ts), so\n * this is safe, and it skips a `jsx()` call — see ModalParts.tsx's `ModalTrigger` for the same\n * pattern and the byte-budget reasoning.\n */\nexport function PopupTrigger<TAs extends ElementType = \"button\">(\n props: PopupTriggerProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as PopupTriggerProps<\"button\">;\n return ElementPopoverTrigger({\n ...consumerProps,\n ...(as === undefined ? {} : { as }),\n \"data-uiify-popup-trigger\": \"\",\n target,\n } as unknown as PopoverTriggerProps<TAs>);\n}\nPopupTrigger.displayName = \"PopupTrigger\";\n\n/**\n * The popover surface. `data-side`/`data-align` drive the optional anchor CSS in @gunkin/uiify/styles.\n *\n * Built on `@gunkin/uiify/elements/popover`'s `Popover.Surface`, which already emits\n * `data-uiify-popover-surface`; this part adds its own `data-uiify-popup-content` and the\n * deprecated `data-uiify-popover-content` (a different string from the element's own marker,\n * so additive — unlike Trigger/Close above).\n */\nexport function PopupContent(props: PopupContentProps): ReactElement {\n return ElementPopoverSurface({\n ...props,\n \"data-uiify-popover-content\": \"\",\n \"data-uiify-popup-content\": \"\",\n } as unknown as PopoverSurfaceProps);\n}\nPopupContent.displayName = \"PopupContent\";\n\n/**\n * Hides `target`.\n *\n * Built on `@gunkin/uiify/elements/popover`'s `Popover.Close` (`action=\"hide\"`), which already emits\n * `data-uiify-popover-close`; this part adds its own `data-uiify-popup-close`.\n */\nexport function PopupClose<TAs extends ElementType = \"button\">(\n props: PopupCloseProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as PopupCloseProps<\"button\">;\n return ElementPopoverClose({\n ...consumerProps,\n ...(as === undefined ? {} : { as }),\n \"data-uiify-popup-close\": \"\",\n target,\n } as unknown as PopoverCloseProps<TAs>);\n}\nPopupClose.displayName = \"PopupClose\";\n"],"mappings":"AACA;AAAA,EACE,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,kBAAkB;AAAA,OACb;AAoBA,SAAS,aACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO,sBAAsB;AAAA,IAC3B,GAAG;AAAA,IACH,GAAI,OAAO,SAAY,CAAC,IAAI,EAAE,GAAG;AAAA,IACjC,4BAA4B;AAAA,IAC5B;AAAA,EACF,CAAwC;AAC1C;AACA,aAAa,cAAc;AAUpB,SAAS,aAAa,OAAwC;AACnE,SAAO,sBAAsB;AAAA,IAC3B,GAAG;AAAA,IACH,8BAA8B;AAAA,IAC9B,4BAA4B;AAAA,EAC9B,CAAmC;AACrC;AACA,aAAa,cAAc;AAQpB,SAAS,WACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO,oBAAoB;AAAA,IACzB,GAAG;AAAA,IACH,GAAI,OAAO,SAAY,CAAC,IAAI,EAAE,GAAG;AAAA,IACjC,0BAA0B;AAAA,IAC1B;AAAA,EACF,CAAsC;AACxC;AACA,WAAW,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/popup/PopupParts.tsx"],"sourcesContent":["import { createElement } from \"react\";\nimport type { ElementType, ReactElement } from \"react\";\nimport type { PopupCloseProps, PopupContentProps, PopupTriggerProps } from \"./types.js\";\n\n/** Native popover trigger with popup identity and trigger anatomy. */\nexport function PopupTrigger<TAs extends ElementType = \"button\">(\n props: PopupTriggerProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as PopupTriggerProps<\"button\">;\n return createElement(as ?? \"button\", {\n ...consumerProps,\n \"data-part\": \"trigger\",\n \"data-uiify-popup\": \"\",\n popoverTarget: target,\n popoverTargetAction: \"toggle\",\n type: \"button\",\n });\n}\nPopupTrigger.displayName = \"PopupTrigger\";\n\n/** Native popover surface with popup identity and content anatomy. */\nexport function PopupContent(props: PopupContentProps): ReactElement {\n const { align = \"center\", children, mode = \"auto\", side = \"bottom\", ...consumerProps } = props;\n return createElement(\n \"div\",\n {\n ...consumerProps,\n \"data-align\": align,\n \"data-part\": \"content\",\n \"data-positioning\": \"native\",\n \"data-side\": side,\n \"data-uiify-popup\": \"\",\n popover: mode,\n },\n children,\n );\n}\nPopupContent.displayName = \"PopupContent\";\n\n/** Native popover close invoker. */\nexport function PopupClose<TAs extends ElementType = \"button\">(\n props: PopupCloseProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as PopupCloseProps<\"button\">;\n return createElement(as ?? \"button\", {\n ...consumerProps,\n \"data-part\": \"close\",\n \"data-uiify-popup\": \"\",\n popoverTarget: target,\n popoverTargetAction: \"hide\",\n type: \"button\",\n });\n}\nPopupClose.displayName = \"PopupClose\";\n"],"mappings":"AAAA,SAAS,qBAAqB;AAKvB,SAAS,aACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO,cAAc,MAAM,UAAU;AAAA,IACnC,GAAG;AAAA,IACH,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR,CAAC;AACH;AACA,aAAa,cAAc;AAGpB,SAAS,aAAa,OAAwC;AACnE,QAAM,EAAE,QAAQ,UAAU,UAAU,OAAO,QAAQ,OAAO,UAAU,GAAG,cAAc,IAAI;AACzF,SAAO;AAAA,IACL;AAAA,IACA;AAAA,MACE,GAAG;AAAA,MACH,cAAc;AAAA,MACd,aAAa;AAAA,MACb,oBAAoB;AAAA,MACpB,aAAa;AAAA,MACb,oBAAoB;AAAA,MACpB,SAAS;AAAA,IACX;AAAA,IACA;AAAA,EACF;AACF;AACA,aAAa,cAAc;AAGpB,SAAS,WACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO,cAAc,MAAM,UAAU;AAAA,IACnC,GAAG;AAAA,IACH,aAAa;AAAA,IACb,oBAAoB;AAAA,IACpB,eAAe;AAAA,IACf,qBAAqB;AAAA,IACrB,MAAM;AAAA,EACR,CAAC;AACH;AACA,WAAW,cAAc;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../../src/components/radio-group/RadioGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE,wBAAgB,UAAU,CAAC,EACzB,EAAE,EACF,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,QAAgB,EAChB,WAAwB,EACxB,SAAS,EACT,YAAY,EAAE,SAAS,GACxB,EAAE,eAAe,GAAG,YAAY,CAqBhC;yBA9Be,UAAU"}
1
+ {"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["../../../src/components/radio-group/RadioGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,YAAY,CAAC;AAElE,wBAAgB,UAAU,CAAC,EACzB,EAAE,EACF,KAAK,EACL,YAAY,EACZ,IAAI,EACJ,QAAgB,EAChB,WAAwB,EACxB,SAAS,EACT,YAAY,EAAE,SAAS,GACxB,EAAE,eAAe,GAAG,YAAY,CAoBhC;yBA7Be,UAAU"}
@@ -24,7 +24,6 @@ function RadioGroup({
24
24
  isChecked: (item) => item.value === defaultValue,
25
25
  itemInputClassName: (item) => item.className,
26
26
  kind: "single",
27
- labelPart: true,
28
27
  namespace: "radio-group",
29
28
  orientation,
30
29
  rootAttributes: { "aria-label": ariaLabel, "data-disabled": disabled ? "" : void 0 }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/radio-group/RadioGroup.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { ChoiceGroup } from \"../internal/choice-family/ChoiceGroup.js\";\nimport type { RadioGroupItem, RadioGroupProps } from \"./types.js\";\n\nexport function RadioGroup({\n id,\n items,\n defaultValue,\n name,\n disabled = false,\n orientation = \"vertical\",\n className,\n \"aria-label\": ariaLabel,\n}: RadioGroupProps): ReactElement {\n const resolvedItems = items.map((item) => ({\n ...item,\n disabled: disabled || item.disabled === true,\n }));\n\n return (\n <ChoiceGroup<RadioGroupItem>\n {...(className !== undefined ? { className } : {})}\n {...(name !== undefined ? { name } : {})}\n id={id}\n items={resolvedItems}\n isChecked={(item) => item.value === defaultValue}\n itemInputClassName={(item) => item.className}\n kind=\"single\"\n labelPart\n namespace=\"radio-group\"\n orientation={orientation}\n rootAttributes={{ \"aria-label\": ariaLabel, \"data-disabled\": disabled ? \"\" : undefined }}\n />\n );\n}\nRadioGroup.displayName = \"RadioGroup\";\n"],"mappings":"AAoBI;AAnBJ,SAAS,mBAAmB;AAGrB,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd;AAAA,EACA,cAAc;AAChB,GAAkC;AAChC,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,MAC/C,GAAI,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC;AAAA,MACtC;AAAA,MACA,OAAO;AAAA,MACP,WAAW,CAAC,SAAS,KAAK,UAAU;AAAA,MACpC,oBAAoB,CAAC,SAAS,KAAK;AAAA,MACnC,MAAK;AAAA,MACL,WAAS;AAAA,MACT,WAAU;AAAA,MACV;AAAA,MACA,gBAAgB,EAAE,cAAc,WAAW,iBAAiB,WAAW,KAAK,OAAU;AAAA;AAAA,EACxF;AAEJ;AACA,WAAW,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/radio-group/RadioGroup.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { ChoiceGroup } from \"../internal/choice-family/ChoiceGroup.js\";\nimport type { RadioGroupItem, RadioGroupProps } from \"./types.js\";\n\nexport function RadioGroup({\n id,\n items,\n defaultValue,\n name,\n disabled = false,\n orientation = \"vertical\",\n className,\n \"aria-label\": ariaLabel,\n}: RadioGroupProps): ReactElement {\n const resolvedItems = items.map((item) => ({\n ...item,\n disabled: disabled || item.disabled === true,\n }));\n\n return (\n <ChoiceGroup<RadioGroupItem>\n {...(className !== undefined ? { className } : {})}\n {...(name !== undefined ? { name } : {})}\n id={id}\n items={resolvedItems}\n isChecked={(item) => item.value === defaultValue}\n itemInputClassName={(item) => item.className}\n kind=\"single\"\n namespace=\"radio-group\"\n orientation={orientation}\n rootAttributes={{ \"aria-label\": ariaLabel, \"data-disabled\": disabled ? \"\" : undefined }}\n />\n );\n}\nRadioGroup.displayName = \"RadioGroup\";\n"],"mappings":"AAoBI;AAnBJ,SAAS,mBAAmB;AAGrB,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,cAAc;AAAA,EACd;AAAA,EACA,cAAc;AAChB,GAAkC;AAChC,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,MAC/C,GAAI,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC;AAAA,MACtC;AAAA,MACA,OAAO;AAAA,MACP,WAAW,CAAC,SAAS,KAAK,UAAU;AAAA,MACpC,oBAAoB,CAAC,SAAS,KAAK;AAAA,MACnC,MAAK;AAAA,MACL,WAAU;AAAA,MACV;AAAA,MACA,gBAAgB,EAAE,cAAc,WAAW,iBAAiB,WAAW,KAAK,OAAU;AAAA;AAAA,EACxF;AAEJ;AACA,WAAW,cAAc;","names":[]}
@@ -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,CAwCrB;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,CAyCrB;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"}
@@ -23,6 +23,7 @@ function SelectRoot(props) {
23
23
  props: {
24
24
  ...consumerProps,
25
25
  children: consumerChildren,
26
+ "data-uiify-select": "",
26
27
  "data-disabled": disabled ? "" : void 0,
27
28
  disabled: disabled || void 0,
28
29
  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-disabled\": disabled ? \"\" : undefined,\n disabled: disabled || undefined,\n name,\n onChange: composeEventHandlers(consumerOnChange, handleChange),\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,iBAAiB,WAAW,KAAK;AAAA,MACjC,UAAU,YAAY;AAAA,MACtB;AAAA,MACA,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,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 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: composeEventHandlers(consumerOnChange, handleChange),\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,qBAAqB,kBAAkB,YAAY;AAAA,MAC7D,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 +1 @@
1
- {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../src/components/slider/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,OAAO,CAAC;AAGvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,MAAM,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EACtD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GACtB,YAAY,GAAG,IAAI,CA4CrB"}
1
+ {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../../src/components/slider/Slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,OAAO,CAAC;AAGvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,MAAM,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EACtD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GACtB,YAAY,GAAG,IAAI,CA6CrB"}
@@ -24,6 +24,7 @@ function Slider(props) {
24
24
  props: {
25
25
  ...consumerProps,
26
26
  type: "range",
27
+ "data-uiify-slider": "",
27
28
  min,
28
29
  max,
29
30
  step,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/slider/Slider.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 { SliderProps } from \"./types.js\";\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\n const handleChange = (event: SyntheticEvent<HTMLInputElement>): void => {\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 type: \"range\",\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;AAG1B,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;AAE/B,QAAM,eAAe,CAAC,UAAkD;AACtE,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,MAAM;AAAA,MACN;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 { 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\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\n const handleChange = (event: SyntheticEvent<HTMLInputElement>): void => {\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 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;AAG1B,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;AAE/B,QAAM,eAAe,CAAC,UAAkD;AACtE,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,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 +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;AAGvD,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhE,wBAAgB,OAAO,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EACrD,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,GACvB,YAAY,GAAG,IAAI,CA0CrB;yBA5Ce,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,EAAmB,YAAY,EAAE,MAAM,YAAY,CAAC;AAEhE,wBAAgB,OAAO,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,EACrD,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,GACvB,YAAY,GAAG,IAAI,CAsCrB;yBAxCe,OAAO"}
@@ -7,7 +7,7 @@ function Spinner(props) {
7
7
  render,
8
8
  delay = 0,
9
9
  label = "Loading",
10
- labelClassName,
10
+ showLabel = false,
11
11
  size = "default",
12
12
  children,
13
13
  ...consumerProps
@@ -27,7 +27,7 @@ function Spinner(props) {
27
27
  "data-uiify-spinner": "",
28
28
  role: "status",
29
29
  children: /* @__PURE__ */ jsxs(Fragment, { children: [
30
- labelClassName ? /* @__PURE__ */ jsx("span", { className: labelClassName, "data-part": "label", "data-uiify-spinner-label": "", children: label }) : null,
30
+ showLabel ? /* @__PURE__ */ jsx("span", { "data-part": "label", children: label }) : null,
31
31
  children
32
32
  ] })
33
33
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/spinner/Spinner.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type { PolymorphicProps } from \"@gunkin/uiify/core/render\";\nimport type { SpinnerOwnProps, SpinnerProps } from \"./types.js\";\n\nexport function Spinner<TAs extends ElementType = \"div\">(\n props: SpinnerProps<TAs>,\n): ReactElement | null {\n const {\n as,\n align,\n render,\n delay = 0,\n label = \"Loading\",\n labelClassName,\n size = \"default\",\n children,\n ...consumerProps\n } = props as PolymorphicProps<\"div\", SpinnerOwnProps>;\n\n const visible = delay === 0;\n\n return useRenderElement({\n as,\n defaultTag: \"div\",\n props: {\n ...consumerProps,\n \"aria-label\": label,\n \"aria-live\": \"polite\",\n \"data-align\": align,\n \"data-delay\": delay > 0 ? `${delay}ms` : undefined,\n \"data-size\": size,\n \"data-state\": visible ? \"visible\" : \"delayed\",\n \"data-uiify-spinner\": \"\",\n role: \"status\",\n children: (\n <>\n {labelClassName ? (\n <span className={labelClassName} data-part=\"label\" data-uiify-spinner-label=\"\">\n {label}\n </span>\n ) : null}\n {children}\n </>\n ),\n },\n render,\n state: { visible },\n });\n}\nSpinner.displayName = \"Spinner\";\n"],"mappings":"AAoCQ,mBAEI,KAFJ;AAnCR,SAAS,wBAAwB;AAI1B,SAAS,QACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,UAAU,UAAU;AAE1B,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,cAAc;AAAA,MACd,aAAa;AAAA,MACb,cAAc;AAAA,MACd,cAAc,QAAQ,IAAI,GAAG,KAAK,OAAO;AAAA,MACzC,aAAa;AAAA,MACb,cAAc,UAAU,YAAY;AAAA,MACpC,sBAAsB;AAAA,MACtB,MAAM;AAAA,MACN,UACE,iCACG;AAAA,yBACC,oBAAC,UAAK,WAAW,gBAAgB,aAAU,SAAQ,4BAAyB,IACzE,iBACH,IACE;AAAA,QACH;AAAA,SACH;AAAA,IAEJ;AAAA,IACA;AAAA,IACA,OAAO,EAAE,QAAQ;AAAA,EACnB,CAAC;AACH;AACA,QAAQ,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/spinner/Spinner.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport type { PolymorphicProps } from \"@gunkin/uiify/core/render\";\nimport type { SpinnerOwnProps, SpinnerProps } from \"./types.js\";\n\nexport function Spinner<TAs extends ElementType = \"div\">(\n props: SpinnerProps<TAs>,\n): ReactElement | null {\n const {\n as,\n align,\n render,\n delay = 0,\n label = \"Loading\",\n showLabel = false,\n size = \"default\",\n children,\n ...consumerProps\n } = props as PolymorphicProps<\"div\", SpinnerOwnProps>;\n\n const visible = delay === 0;\n\n return useRenderElement({\n as,\n defaultTag: \"div\",\n props: {\n ...consumerProps,\n \"aria-label\": label,\n \"aria-live\": \"polite\",\n \"data-align\": align,\n \"data-delay\": delay > 0 ? `${delay}ms` : undefined,\n \"data-size\": size,\n \"data-state\": visible ? \"visible\" : \"delayed\",\n \"data-uiify-spinner\": \"\",\n role: \"status\",\n children: (\n <>\n {showLabel ? <span data-part=\"label\">{label}</span> : null}\n {children}\n </>\n ),\n },\n render,\n state: { visible },\n });\n}\nSpinner.displayName = \"Spinner\";\n"],"mappings":"AAoCQ,mBACe,KADf;AAnCR,SAAS,wBAAwB;AAI1B,SAAS,QACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,UAAU,UAAU;AAE1B,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,cAAc;AAAA,MACd,aAAa;AAAA,MACb,cAAc;AAAA,MACd,cAAc,QAAQ,IAAI,GAAG,KAAK,OAAO;AAAA,MACzC,aAAa;AAAA,MACb,cAAc,UAAU,YAAY;AAAA,MACpC,sBAAsB;AAAA,MACtB,MAAM;AAAA,MACN,UACE,iCACG;AAAA,oBAAY,oBAAC,UAAK,aAAU,SAAS,iBAAM,IAAU;AAAA,QACrD;AAAA,SACH;AAAA,IAEJ;AAAA,IACA;AAAA,IACA,OAAO,EAAE,QAAQ;AAAA,EACnB,CAAC;AACH;AACA,QAAQ,cAAc;","names":[]}
@@ -7,7 +7,7 @@ export interface SpinnerOwnProps {
7
7
  readonly children?: ReactNode;
8
8
  readonly delay?: number;
9
9
  readonly label?: string;
10
- readonly labelClassName?: string;
10
+ readonly showLabel?: boolean;
11
11
  readonly size?: SpinnerSize;
12
12
  }
13
13
  export type SpinnerProps<TAs extends ElementType = "div"> = RenderableProps<TAs, SpinnerOwnProps, {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/spinner/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,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,MAAM,YAAY,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CACzE,GAAG,EACH,eAAe,EACf;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EACpB,WAAW,CACZ,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/spinner/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,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,MAAM,MAAM,YAAY,CAAC,GAAG,SAAS,WAAW,GAAG,KAAK,IAAI,eAAe,CACzE,GAAG,EACH,eAAe,EACf;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,EACpB,WAAW,CACZ,CAAC"}
@@ -17,14 +17,14 @@ function Stepper({
17
17
  itemPart: "step",
18
18
  itemWrapperAttributes: (item) => ({ "data-complete": item.complete ? "" : void 0 }),
19
19
  kind: "single",
20
+ labelPart: true,
20
21
  namespace: "stepper",
21
22
  orientation,
22
23
  renderLabel: (item) => /* @__PURE__ */ jsxs(Fragment, { children: [
23
24
  /* @__PURE__ */ jsx("span", { children: item.label }),
24
25
  item.description ? /* @__PURE__ */ jsx("small", { children: item.description }) : null
25
26
  ] }),
26
- renderPanel: (item) => item.panel,
27
- withInputAttribute: true
27
+ renderPanel: (item) => item.panel
28
28
  }
29
29
  );
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/stepper/Stepper.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { ChoiceGroup } from \"../internal/choice-family/ChoiceGroup.js\";\nimport type { StepperItem, StepperProps } from \"./types.js\";\n\nexport function Stepper({\n id,\n items,\n defaultValue,\n orientation = \"horizontal\",\n className,\n}: StepperProps): ReactElement {\n return (\n <ChoiceGroup<StepperItem>\n {...(className !== undefined ? { className } : {})}\n id={id}\n items={items}\n isChecked={(item) => item.value === defaultValue}\n itemPart=\"step\"\n itemWrapperAttributes={(item) => ({ \"data-complete\": item.complete ? \"\" : undefined })}\n kind=\"single\"\n namespace=\"stepper\"\n orientation={orientation}\n renderLabel={(item) => (\n <>\n <span>{item.label}</span>\n {item.description ? <small>{item.description}</small> : null}\n </>\n )}\n renderPanel={(item) => item.panel}\n withInputAttribute\n />\n );\n}\nStepper.displayName = \"Stepper\";\n"],"mappings":"AAuBQ,mBACE,KADF;AAtBR,SAAS,mBAAmB;AAGrB,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AACF,GAA+B;AAC7B,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAI,cAAc,SAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MAChD;AAAA,MACA;AAAA,MACA,WAAW,CAAC,SAAS,KAAK,UAAU;AAAA,MACpC,UAAS;AAAA,MACT,uBAAuB,CAAC,UAAU,EAAE,iBAAiB,KAAK,WAAW,KAAK,OAAU;AAAA,MACpF,MAAK;AAAA,MACL,WAAU;AAAA,MACV;AAAA,MACA,aAAa,CAAC,SACZ,iCACE;AAAA,4BAAC,UAAM,eAAK,OAAM;AAAA,QACjB,KAAK,cAAc,oBAAC,WAAO,eAAK,aAAY,IAAW;AAAA,SAC1D;AAAA,MAEF,aAAa,CAAC,SAAS,KAAK;AAAA,MAC5B,oBAAkB;AAAA;AAAA,EACpB;AAEJ;AACA,QAAQ,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/stepper/Stepper.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { ChoiceGroup } from \"../internal/choice-family/ChoiceGroup.js\";\nimport type { StepperItem, StepperProps } from \"./types.js\";\n\nexport function Stepper({\n id,\n items,\n defaultValue,\n orientation = \"horizontal\",\n className,\n}: StepperProps): ReactElement {\n return (\n <ChoiceGroup<StepperItem>\n {...(className !== undefined ? { className } : {})}\n id={id}\n items={items}\n isChecked={(item) => item.value === defaultValue}\n itemPart=\"step\"\n itemWrapperAttributes={(item) => ({ \"data-complete\": item.complete ? \"\" : undefined })}\n kind=\"single\"\n labelPart\n namespace=\"stepper\"\n orientation={orientation}\n renderLabel={(item) => (\n <>\n <span>{item.label}</span>\n {item.description ? <small>{item.description}</small> : null}\n </>\n )}\n renderPanel={(item) => item.panel}\n />\n );\n}\nStepper.displayName = \"Stepper\";\n"],"mappings":"AAwBQ,mBACE,KADF;AAvBR,SAAS,mBAAmB;AAGrB,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AACF,GAA+B;AAC7B,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAI,cAAc,SAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MAChD;AAAA,MACA;AAAA,MACA,WAAW,CAAC,SAAS,KAAK,UAAU;AAAA,MACpC,UAAS;AAAA,MACT,uBAAuB,CAAC,UAAU,EAAE,iBAAiB,KAAK,WAAW,KAAK,OAAU;AAAA,MACpF,MAAK;AAAA,MACL,WAAS;AAAA,MACT,WAAU;AAAA,MACV;AAAA,MACA,aAAa,CAAC,SACZ,iCACE;AAAA,4BAAC,UAAM,eAAK,OAAM;AAAA,QACjB,KAAK,cAAc,oBAAC,WAAO,eAAK,aAAY,IAAW;AAAA,SAC1D;AAAA,MAEF,aAAa,CAAC,SAAS,KAAK;AAAA;AAAA,EAC9B;AAEJ;AACA,QAAQ,cAAc;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/switch/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,OAAO,CAAC;AAGvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,MAAM,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EACtD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GACtB,YAAY,GAAG,IAAI,CAwCrB"}
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/components/switch/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,OAAO,CAAC;AAGvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,MAAM,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EACtD,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GACtB,YAAY,GAAG,IAAI,CAyCrB"}
@@ -26,6 +26,7 @@ function Switch(props) {
26
26
  disabled: disabled || void 0,
27
27
  "data-disabled": disabled ? "" : void 0,
28
28
  "data-state": isControlled ? checked ? "checked" : "unchecked" : void 0,
29
+ "data-uiify-switch": "",
29
30
  onChange: composeEventHandlers(consumerOnChange, handleChange),
30
31
  ...isControlled ? { checked } : defaultChecked !== void 0 ? { defaultChecked } : {}
31
32
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/switch/Switch.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 { SwitchProps } from \"./types.js\";\n\nexport function Switch<TAs extends ElementType = \"input\">(\n props: SwitchProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n checked,\n defaultChecked,\n onCheckedChange,\n disabled = false,\n ...consumerProps\n } = props as SwitchProps<\"input\">;\n\n const isControlled = checked !== undefined;\n\n const handleChange = (event: SyntheticEvent<HTMLInputElement>): void => {\n if (disabled) return;\n onCheckedChange?.(event.currentTarget.checked);\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 type: \"checkbox\",\n role: \"switch\",\n disabled: disabled || undefined,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-state\": isControlled ? (checked ? \"checked\" : \"unchecked\") : undefined,\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n ...(isControlled ? { checked } : defaultChecked !== undefined ? { defaultChecked } : {}),\n },\n render,\n state: { disabled, checked: checked ?? false },\n });\n}\n"],"mappings":"AACA,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AAG1B,SAAS,OACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,YAAY;AAEjC,QAAM,eAAe,CAAC,UAAkD;AACtE,QAAI,SAAU;AACd,sBAAkB,MAAM,cAAc,OAAO;AAAA,EAC/C;AAEA,QAAM,mBACJ,cAGA;AAEF,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU,YAAY;AAAA,MACtB,iBAAiB,WAAW,KAAK;AAAA,MACjC,cAAc,eAAgB,UAAU,YAAY,cAAe;AAAA,MACnE,UAAU,qBAAqB,kBAAkB,YAAY;AAAA,MAC7D,GAAI,eAAe,EAAE,QAAQ,IAAI,mBAAmB,SAAY,EAAE,eAAe,IAAI,CAAC;AAAA,IACxF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,UAAU,SAAS,WAAW,MAAM;AAAA,EAC/C,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/switch/Switch.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 { SwitchProps } from \"./types.js\";\n\nexport function Switch<TAs extends ElementType = \"input\">(\n props: SwitchProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n checked,\n defaultChecked,\n onCheckedChange,\n disabled = false,\n ...consumerProps\n } = props as SwitchProps<\"input\">;\n\n const isControlled = checked !== undefined;\n\n const handleChange = (event: SyntheticEvent<HTMLInputElement>): void => {\n if (disabled) return;\n onCheckedChange?.(event.currentTarget.checked);\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 type: \"checkbox\",\n role: \"switch\",\n disabled: disabled || undefined,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-state\": isControlled ? (checked ? \"checked\" : \"unchecked\") : undefined,\n \"data-uiify-switch\": \"\",\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n ...(isControlled ? { checked } : defaultChecked !== undefined ? { defaultChecked } : {}),\n },\n render,\n state: { disabled, checked: checked ?? false },\n });\n}\n"],"mappings":"AACA,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AAG1B,SAAS,OACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,YAAY;AAEjC,QAAM,eAAe,CAAC,UAAkD;AACtE,QAAI,SAAU;AACd,sBAAkB,MAAM,cAAc,OAAO;AAAA,EAC/C;AAEA,QAAM,mBACJ,cAGA;AAEF,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU,YAAY;AAAA,MACtB,iBAAiB,WAAW,KAAK;AAAA,MACjC,cAAc,eAAgB,UAAU,YAAY,cAAe;AAAA,MACnE,qBAAqB;AAAA,MACrB,UAAU,qBAAqB,kBAAkB,YAAY;AAAA,MAC7D,GAAI,eAAe,EAAE,QAAQ,IAAI,mBAAmB,SAAY,EAAE,eAAe,IAAI,CAAC;AAAA,IACxF;AAAA,IACA;AAAA,IACA,OAAO,EAAE,UAAU,SAAS,WAAW,MAAM;AAAA,EAC/C,CAAC;AACH;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,IAAI,CAAC,EACnB,EAAE,EACF,KAAK,EACL,YAAY,EACZ,WAA0B,EAC1B,SAAS,EACT,MAAM,GACP,EAAE,SAAS,GAAG,YAAY,CAiB1B;yBAxBe,IAAI"}
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAY,SAAS,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAgB,IAAI,CAAC,EACnB,EAAE,EACF,KAAK,EACL,YAAY,EACZ,WAA0B,EAC1B,SAAS,EACT,MAAM,GACP,EAAE,SAAS,GAAG,YAAY,CAe1B;yBAtBe,IAAI"}
@@ -20,9 +20,7 @@ function Tabs({
20
20
  labelPart: true,
21
21
  namespace: "tabs",
22
22
  orientation,
23
- renderPanel: (item) => item.panel,
24
- withInputAttribute: true,
25
- withTriggerAttribute: true
23
+ renderPanel: (item) => item.panel
26
24
  }
27
25
  );
28
26
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/tabs/Tabs.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { ChoiceGroup } from \"../internal/choice-family/ChoiceGroup.js\";\nimport type { TabsItem, TabsProps } from \"./types.js\";\n\nexport function Tabs({\n id,\n items,\n defaultValue,\n orientation = \"horizontal\",\n className,\n append,\n}: TabsProps): ReactElement {\n return (\n <ChoiceGroup<TabsItem>\n {...(className !== undefined ? { className } : {})}\n {...(append !== undefined ? { append } : {})}\n id={id}\n items={items}\n isChecked={(item) => item.value === defaultValue}\n kind=\"single\"\n labelPart\n namespace=\"tabs\"\n orientation={orientation}\n renderPanel={(item) => item.panel}\n withInputAttribute\n withTriggerAttribute\n />\n );\n}\nTabs.displayName = \"Tabs\";\n"],"mappings":"AAaI;AAZJ,SAAS,mBAAmB;AAGrB,SAAS,KAAK;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AACF,GAA4B;AAC1B,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAI,cAAc,SAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MAC/C,GAAI,WAAW,SAAY,EAAE,OAAO,IAAI,CAAC;AAAA,MAC1C;AAAA,MACA;AAAA,MACA,WAAW,CAAC,SAAS,KAAK,UAAU;AAAA,MACpC,MAAK;AAAA,MACL,WAAS;AAAA,MACT,WAAU;AAAA,MACV;AAAA,MACA,aAAa,CAAC,SAAS,KAAK;AAAA,MAC5B,oBAAkB;AAAA,MAClB,sBAAoB;AAAA;AAAA,EACtB;AAEJ;AACA,KAAK,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/tabs/Tabs.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { ChoiceGroup } from \"../internal/choice-family/ChoiceGroup.js\";\nimport type { TabsItem, TabsProps } from \"./types.js\";\n\nexport function Tabs({\n id,\n items,\n defaultValue,\n orientation = \"horizontal\",\n className,\n append,\n}: TabsProps): ReactElement {\n return (\n <ChoiceGroup<TabsItem>\n {...(className !== undefined ? { className } : {})}\n {...(append !== undefined ? { append } : {})}\n id={id}\n items={items}\n isChecked={(item) => item.value === defaultValue}\n kind=\"single\"\n labelPart\n namespace=\"tabs\"\n orientation={orientation}\n renderPanel={(item) => item.panel}\n />\n );\n}\nTabs.displayName = \"Tabs\";\n"],"mappings":"AAaI;AAZJ,SAAS,mBAAmB;AAGrB,SAAS,KAAK;AAAA,EACnB;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd;AAAA,EACA;AACF,GAA4B;AAC1B,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAI,cAAc,SAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MAC/C,GAAI,WAAW,SAAY,EAAE,OAAO,IAAI,CAAC;AAAA,MAC1C;AAAA,MACA;AAAA,MACA,WAAW,CAAC,SAAS,KAAK,UAAU;AAAA,MACpC,MAAK;AAAA,MACL,WAAS;AAAA,MACT,WAAU;AAAA,MACV;AAAA,MACA,aAAa,CAAC,SAAS,KAAK;AAAA;AAAA,EAC9B;AAEJ;AACA,KAAK,cAAc;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TagsInput.d.ts","sourceRoot":"","sources":["../../../src/components/tags-input/TagsInput.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAiB,YAAY,EAAkB,MAAM,OAAO,CAAC;AAOtF,OAAO,KAAK,EAGV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAKpB,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CA4F5E;yBA5Fe,aAAa;;;AA+F7B,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EAC9D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CA2ErB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CA8B/E;yBA9Be,aAAa;;;AAiC7B,wBAAgB,YAAY,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EACzD,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAC5B,YAAY,GAAG,IAAI,CA2CrB;yBA7Ce,YAAY;;;AAgD5B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,0BAA0B,GAAG,YAAY,GAAG,IAAI,CAezF;AAED,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC"}
1
+ {"version":3,"file":"TagsInput.d.ts","sourceRoot":"","sources":["../../../src/components/tags-input/TagsInput.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAiB,YAAY,EAAkB,MAAM,OAAO,CAAC;AAOtF,OAAO,KAAK,EAGV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAKpB,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CA+F5E;yBA/Fe,aAAa;;;AAkG7B,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,GAAG,OAAO,EAC9D,KAAK,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAC9B,YAAY,GAAG,IAAI,CA4ErB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CA+B/E;yBA/Be,aAAa;;;AAkC7B,wBAAgB,YAAY,CAAC,GAAG,SAAS,WAAW,GAAG,IAAI,EACzD,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAC5B,YAAY,GAAG,IAAI,CA4CrB;yBA9Ce,YAAY;;;AAiD5B,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,0BAA0B,GAAG,YAAY,GAAG,IAAI,CAgBzF;AAED,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC"}
@@ -21,6 +21,7 @@ function TagsInputRoot(props) {
21
21
  addOnPaste = true,
22
22
  allowDuplicates = false,
23
23
  children,
24
+ className,
24
25
  defaultValue = [],
25
26
  delimiters = [","],
26
27
  disabled = false,
@@ -96,7 +97,7 @@ function TagsInputRoot(props) {
96
97
  store
97
98
  ]
98
99
  );
99
- return /* @__PURE__ */ jsx(TagsInputProvider, { value: contextValue, children: /* @__PURE__ */ jsx("div", { "data-disabled": disabled ? "" : void 0, children }) });
100
+ return /* @__PURE__ */ jsx(TagsInputProvider, { value: contextValue, children: /* @__PURE__ */ jsx("div", { className, "data-disabled": disabled ? "" : void 0, "data-uiify-tags-input": "", children }) });
100
101
  }
101
102
  TagsInputRoot.displayName = "TagsInputRoot";
102
103
  function TagsInputInput(props) {
@@ -154,6 +155,7 @@ function TagsInputInput(props) {
154
155
  "aria-controls": listId,
155
156
  "aria-expanded": false,
156
157
  disabled: disabled || void 0,
158
+ "data-part": "input",
157
159
  value: inputValue,
158
160
  placeholder,
159
161
  ...className ? { className } : {},
@@ -176,6 +178,7 @@ function TagsInputList(props) {
176
178
  id: listId,
177
179
  orientation: "horizontal",
178
180
  ...className ? { className } : {},
181
+ "data-part": "list",
179
182
  children: [
180
183
  tags.map((tag, index) => /* @__PURE__ */ jsx("li", { "data-index": index, "data-value": tag, children: tag }, `${tag}-${index}`)),
181
184
  Children.map(
@@ -200,6 +203,7 @@ function TagsInputTag(props) {
200
203
  const tagProps = {
201
204
  ...consumerProps,
202
205
  role: "listitem",
206
+ "data-part": "tag",
203
207
  "data-value": value,
204
208
  ...className ? { className } : {},
205
209
  onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),
@@ -235,6 +239,7 @@ function TagsInputTagRemove(props) {
235
239
  props: {
236
240
  type: "button",
237
241
  "aria-label": "Remove tag",
242
+ "data-part": "tag-remove",
238
243
  disabled: disabled || void 0,
239
244
  ...className ? { className } : {},
240
245
  onClick: () => removeAt(index)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/tags-input/TagsInput.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n Children,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport type { ElementType, KeyboardEvent, ReactElement, SyntheticEvent } from \"react\";\nimport { useControllableState, useId, useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { RovingFocusItem, RovingFocusRoot } from \"@gunkin/uiify/core/roving-focus\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { createTagsInputStore, splitTags } from \"./tags-input-store.js\";\nimport type {\n TagsInputStore,\n TagsInputContextValue,\n TagsInputRootProps,\n TagsInputInputProps,\n TagsInputListOwnProps,\n TagsInputTagProps,\n TagsInputTagRemoveOwnProps,\n} from \"./types.js\";\n\nconst [TagsInputProvider, useTagsInputContext] =\n createPartContext<TagsInputContextValue>(\"TagsInput\");\n\nexport function TagsInputRoot(props: TagsInputRootProps): ReactElement | null {\n const {\n addOnPaste = true,\n allowDuplicates = false,\n children,\n defaultValue = [],\n delimiters = [\",\"],\n disabled = false,\n maxTags,\n onChange,\n validate,\n value: controlledValue,\n } = props;\n\n const listId = useId();\n const inputId = useId();\n const [inputValue, setInputValue] = useState(\"\");\n const [tags, setTags] = useControllableState<string[]>({\n defaultValue: [...defaultValue],\n ...(controlledValue !== undefined ? { value: [...controlledValue] } : {}),\n ...(onChange ? { onChange } : {}),\n });\n\n const storeRef = useRef<TagsInputStore | null>(null);\n storeRef.current ??= createTagsInputStore(tags, {\n allowDuplicates,\n ...(maxTags !== undefined ? { maxTags } : {}),\n ...(validate ? { validate } : {}),\n });\n const store = storeRef.current;\n\n useIsomorphicLayoutEffect(() => {\n store.setTags(tags);\n store.updateOptions({\n allowDuplicates,\n ...(maxTags !== undefined ? { maxTags } : {}),\n ...(validate ? { validate } : {}),\n });\n }, [allowDuplicates, maxTags, store, tags, validate]);\n\n const addTag = useCallback(\n (tag: string) => {\n if (disabled) return;\n if (store.addTag(tag)) {\n setTags(store.getTags());\n setInputValue(\"\");\n }\n },\n [disabled, setTags, store],\n );\n\n const removeAt = useCallback(\n (index: number) => {\n if (disabled) return;\n store.removeAt(index);\n setTags(store.getTags());\n },\n [disabled, setTags, store],\n );\n\n const contextValue = useMemo(\n () => ({\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n }),\n [\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n ],\n );\n\n return (\n <TagsInputProvider value={contextValue}>\n <div data-disabled={disabled ? \"\" : undefined}>{children}</div>\n </TagsInputProvider>\n );\n}\nTagsInputRoot.displayName = \"TagsInputRoot\";\n\nexport function TagsInputInput<TAs extends ElementType = \"input\">(\n props: TagsInputInputProps<TAs>,\n): ReactElement | null {\n const { as, render, className, placeholder, ...consumerProps } =\n props as TagsInputInputProps<\"input\">;\n const {\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n } = useTagsInputContext(\"Input\");\n const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);\n const {\n onChange: consumerOnChange,\n onKeyDown: consumerOnKeyDown,\n onPaste: consumerOnPaste,\n } = consumerProps as {\n onChange?: (event: SyntheticEvent<HTMLInputElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n onPaste?: (event: React.ClipboardEvent<HTMLInputElement>) => void;\n };\n\n const commitInput = () => {\n if (inputValue.trim()) addTag(inputValue);\n };\n\n const handleChange = (event: SyntheticEvent<HTMLInputElement>) => {\n setInputValue(event.currentTarget.value);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\" || delimiters.includes(event.key)) {\n event.preventDefault();\n commitInput();\n } else if (event.key === \"Backspace\" && !inputValue && tags.length > 0) {\n event.preventDefault();\n removeAt(tags.length - 1);\n }\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (!addOnPaste) return;\n const text = event.clipboardData.getData(\"text\");\n const splitChars = [...delimiters, \"\\n\", \"\\t\"];\n if (!splitChars.some((delimiter) => text.includes(delimiter))) return;\n event.preventDefault();\n const parts = splitTags(text, splitChars);\n for (const part of parts) addTag(part);\n };\n\n return useRenderElement({\n as,\n defaultTag: \"input\",\n props: {\n ...consumerProps,\n id: inputId,\n type: \"text\",\n role: \"combobox\",\n \"aria-controls\": listId,\n \"aria-expanded\": false,\n disabled: disabled || undefined,\n value: inputValue,\n placeholder,\n ...(className ? { className } : {}),\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n onPaste: composeEventHandlers(consumerOnPaste, handlePaste),\n },\n render,\n state: { disabled },\n });\n}\n\nexport function TagsInputList(props: TagsInputListOwnProps): ReactElement | null {\n const { children, className } = props;\n const { listId, store } = useTagsInputContext(\"List\");\n const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);\n\n return (\n <RovingFocusRoot\n as=\"ul\"\n id={listId}\n orientation=\"horizontal\"\n {...(className ? { className } : {})}\n >\n {tags.map((tag, index) => (\n <li data-index={index} data-value={tag} key={`${tag}-${index}`}>\n {tag}\n </li>\n ))}\n {/* A <ul> may only contain <li>, so a non-<li> child (typically TagsInput.Input)\n needs one too — leaving it bare made the list malformed, a serious axe\n violation. TagsInputTag already renders its own <li>; wrapping it again\n would nest <li> inside <li>, an invalid, hydration-breaking tree. */}\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === TagsInputTag ? (\n child\n ) : (\n <li data-part=\"input-slot\">{child}</li>\n ),\n )}\n </RovingFocusRoot>\n );\n}\nTagsInputList.displayName = \"TagsInputList\";\n\nexport function TagsInputTag<TAs extends ElementType = \"li\">(\n props: TagsInputTagProps<TAs>,\n): ReactElement | null {\n const { as, render, children, className, index, value, ...consumerProps } =\n props as TagsInputTagProps<\"li\">;\n const { disabled, removeAt } = useTagsInputContext(\"Tag\");\n const { onKeyDown: consumerOnKeyDown } = consumerProps as {\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === \"Backspace\" || event.key === \"Delete\") {\n event.preventDefault();\n removeAt(index);\n }\n };\n\n const tagProps = {\n ...consumerProps,\n role: \"listitem\",\n \"data-value\": value,\n ...(className ? { className } : {}),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n children,\n };\n\n if (render) {\n return (\n <RovingFocusItem\n disabled={disabled}\n render={(renderProps, state) => render(renderProps, { current: state.current })}\n textValue={value}\n {...(tagProps as object)}\n />\n );\n }\n\n return (\n <RovingFocusItem\n as={as ?? \"li\"}\n disabled={disabled}\n textValue={value}\n {...(tagProps as object)}\n />\n );\n}\nTagsInputTag.displayName = \"TagsInputTag\";\n\nexport function TagsInputTagRemove(props: TagsInputTagRemoveOwnProps): ReactElement | null {\n const { className, index } = props;\n const { disabled, removeAt } = useTagsInputContext(\"TagRemove\");\n\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n type: \"button\",\n \"aria-label\": \"Remove tag\",\n disabled: disabled || undefined,\n ...(className ? { className } : {}),\n onClick: () => removeAt(index),\n },\n state: { disabled },\n });\n}\n\nexport const TagsInput = {\n Input: TagsInputInput,\n List: TagsInputList,\n Root: TagsInputRoot,\n Tag: TagsInputTag,\n TagRemove: TagsInputTagRemove,\n};\n"],"mappings":";AAwHM,cA2FF,YA3FE;AAtHN;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAEP,SAAS,sBAAsB,OAAO,iCAAiC;AACvE,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,iBAAiB,uBAAuB;AACjD,SAAS,wBAAwB;AACjC,SAAS,sBAAsB,iBAAiB;AAWhD,MAAM,CAAC,mBAAmB,mBAAmB,IAC3C,kBAAyC,WAAW;AAE/C,SAAS,cAAc,OAAgD;AAC5E,QAAM;AAAA,IACJ,aAAa;AAAA,IACb,kBAAkB;AAAA,IAClB;AAAA,IACA,eAAe,CAAC;AAAA,IAChB,aAAa,CAAC,GAAG;AAAA,IACjB,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,EACT,IAAI;AAEJ,QAAM,SAAS,MAAM;AACrB,QAAM,UAAU,MAAM;AACtB,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,EAAE;AAC/C,QAAM,CAAC,MAAM,OAAO,IAAI,qBAA+B;AAAA,IACrD,cAAc,CAAC,GAAG,YAAY;AAAA,IAC9B,GAAI,oBAAoB,SAAY,EAAE,OAAO,CAAC,GAAG,eAAe,EAAE,IAAI,CAAC;AAAA,IACvE,GAAI,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,EACjC,CAAC;AAED,QAAM,WAAW,OAA8B,IAAI;AACnD,WAAS,YAAY,qBAAqB,MAAM;AAAA,IAC9C;AAAA,IACA,GAAI,YAAY,SAAY,EAAE,QAAQ,IAAI,CAAC;AAAA,IAC3C,GAAI,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,EACjC,CAAC;AACD,QAAM,QAAQ,SAAS;AAEvB,4BAA0B,MAAM;AAC9B,UAAM,QAAQ,IAAI;AAClB,UAAM,cAAc;AAAA,MAClB;AAAA,MACA,GAAI,YAAY,SAAY,EAAE,QAAQ,IAAI,CAAC;AAAA,MAC3C,GAAI,WAAW,EAAE,SAAS,IAAI,CAAC;AAAA,IACjC,CAAC;AAAA,EACH,GAAG,CAAC,iBAAiB,SAAS,OAAO,MAAM,QAAQ,CAAC;AAEpD,QAAM,SAAS;AAAA,IACb,CAAC,QAAgB;AACf,UAAI,SAAU;AACd,UAAI,MAAM,OAAO,GAAG,GAAG;AACrB,gBAAQ,MAAM,QAAQ,CAAC;AACvB,sBAAc,EAAE;AAAA,MAClB;AAAA,IACF;AAAA,IACA,CAAC,UAAU,SAAS,KAAK;AAAA,EAC3B;AAEA,QAAM,WAAW;AAAA,IACf,CAAC,UAAkB;AACjB,UAAI,SAAU;AACd,YAAM,SAAS,KAAK;AACpB,cAAQ,MAAM,QAAQ,CAAC;AAAA,IACzB;AAAA,IACA,CAAC,UAAU,SAAS,KAAK;AAAA,EAC3B;AAEA,QAAM,eAAe;AAAA,IACnB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SACE,oBAAC,qBAAkB,OAAO,cACxB,8BAAC,SAAI,iBAAe,WAAW,KAAK,QAAY,UAAS,GAC3D;AAEJ;AACA,cAAc,cAAc;AAErB,SAAS,eACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,WAAW,aAAa,GAAG,cAAc,IAC3D;AACF,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,oBAAoB,OAAO;AAC/B,QAAM,OAAO,qBAAqB,MAAM,WAAW,MAAM,SAAS,MAAM,OAAO;AAC/E,QAAM;AAAA,IACJ,UAAU;AAAA,IACV,WAAW;AAAA,IACX,SAAS;AAAA,EACX,IAAI;AAMJ,QAAM,cAAc,MAAM;AACxB,QAAI,WAAW,KAAK,EAAG,QAAO,UAAU;AAAA,EAC1C;AAEA,QAAM,eAAe,CAAC,UAA4C;AAChE,kBAAc,MAAM,cAAc,KAAK;AAAA,EACzC;AAEA,QAAM,gBAAgB,CAAC,UAA2C;AAChE,QAAI,MAAM,QAAQ,WAAW,WAAW,SAAS,MAAM,GAAG,GAAG;AAC3D,YAAM,eAAe;AACrB,kBAAY;AAAA,IACd,WAAW,MAAM,QAAQ,eAAe,CAAC,cAAc,KAAK,SAAS,GAAG;AACtE,YAAM,eAAe;AACrB,eAAS,KAAK,SAAS,CAAC;AAAA,IAC1B;AAAA,EACF;AAEA,QAAM,cAAc,CAAC,UAAkD;AACrE,QAAI,CAAC,WAAY;AACjB,UAAM,OAAO,MAAM,cAAc,QAAQ,MAAM;AAC/C,UAAM,aAAa,CAAC,GAAG,YAAY,MAAM,GAAI;AAC7C,QAAI,CAAC,WAAW,KAAK,CAAC,cAAc,KAAK,SAAS,SAAS,CAAC,EAAG;AAC/D,UAAM,eAAe;AACrB,UAAM,QAAQ,UAAU,MAAM,UAAU;AACxC,eAAW,QAAQ,MAAO,QAAO,IAAI;AAAA,EACvC;AAEA,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,MAAM;AAAA,MACN,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,UAAU,YAAY;AAAA,MACtB,OAAO;AAAA,MACP;AAAA,MACA,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MACjC,UAAU,qBAAqB,kBAAkB,YAAY;AAAA,MAC7D,WAAW,qBAAqB,mBAAmB,aAAa;AAAA,MAChE,SAAS,qBAAqB,iBAAiB,WAAW;AAAA,IAC5D;AAAA,IACA;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,SAAS,cAAc,OAAmD;AAC/E,QAAM,EAAE,UAAU,UAAU,IAAI;AAChC,QAAM,EAAE,QAAQ,MAAM,IAAI,oBAAoB,MAAM;AACpD,QAAM,OAAO,qBAAqB,MAAM,WAAW,MAAM,SAAS,MAAM,OAAO;AAE/E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,IAAG;AAAA,MACH,IAAI;AAAA,MACJ,aAAY;AAAA,MACX,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MAEjC;AAAA,aAAK,IAAI,CAAC,KAAK,UACd,oBAAC,QAAG,cAAY,OAAO,cAAY,KAChC,iBAD0C,GAAG,GAAG,IAAI,KAAK,EAE5D,CACD;AAAA,QAKA,SAAS;AAAA,UAAI;AAAA,UAAU,CAAC,UACvB,eAAe,KAAK,KAAK,MAAM,SAAS,eACtC,QAEA,oBAAC,QAAG,aAAU,cAAc,iBAAM;AAAA,QAEtC;AAAA;AAAA;AAAA,EACF;AAEJ;AACA,cAAc,cAAc;AAErB,SAAS,aACd,OACqB;AACrB,QAAM,EAAE,IAAI,QAAQ,UAAU,WAAW,OAAO,OAAO,GAAG,cAAc,IACtE;AACF,QAAM,EAAE,UAAU,SAAS,IAAI,oBAAoB,KAAK;AACxD,QAAM,EAAE,WAAW,kBAAkB,IAAI;AAIzC,QAAM,gBAAgB,CAAC,UAAsC;AAC3D,QAAI,MAAM,QAAQ,eAAe,MAAM,QAAQ,UAAU;AACvD,YAAM,eAAe;AACrB,eAAS,KAAK;AAAA,IAChB;AAAA,EACF;AAEA,QAAM,WAAW;AAAA,IACf,GAAG;AAAA,IACH,MAAM;AAAA,IACN,cAAc;AAAA,IACd,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,IACjC,WAAW,qBAAqB,mBAAmB,aAAa;AAAA,IAChE;AAAA,EACF;AAEA,MAAI,QAAQ;AACV,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,QAAQ,CAAC,aAAa,UAAU,OAAO,aAAa,EAAE,SAAS,MAAM,QAAQ,CAAC;AAAA,QAC9E,WAAW;AAAA,QACV,GAAI;AAAA;AAAA,IACP;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,IAAI,MAAM;AAAA,MACV;AAAA,MACA,WAAW;AAAA,MACV,GAAI;AAAA;AAAA,EACP;AAEJ;AACA,aAAa,cAAc;AAEpB,SAAS,mBAAmB,OAAwD;AACzF,QAAM,EAAE,WAAW,MAAM,IAAI;AAC7B,QAAM,EAAE,UAAU,SAAS,IAAI,oBAAoB,WAAW;AAE9D,SAAO,iBAAiB;AAAA,IACtB,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,MAAM;AAAA,MACN,cAAc;AAAA,MACd,UAAU,YAAY;AAAA,MACtB,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MACjC,SAAS,MAAM,SAAS,KAAK;AAAA,IAC/B;AAAA,IACA,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,MAAM,YAAY;AAAA,EACvB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,WAAW;AACb;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/tags-input/TagsInput.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n Children,\n isValidElement,\n useCallback,\n useMemo,\n useRef,\n useState,\n useSyncExternalStore,\n} from \"react\";\nimport type { ElementType, KeyboardEvent, ReactElement, SyntheticEvent } from \"react\";\nimport { useControllableState, useId, useIsomorphicLayoutEffect } from \"@gunkin/uiify/hooks\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { RovingFocusItem, RovingFocusRoot } from \"@gunkin/uiify/core/roving-focus\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { createTagsInputStore, splitTags } from \"./tags-input-store.js\";\nimport type {\n TagsInputStore,\n TagsInputContextValue,\n TagsInputRootProps,\n TagsInputInputProps,\n TagsInputListOwnProps,\n TagsInputTagProps,\n TagsInputTagRemoveOwnProps,\n} from \"./types.js\";\n\nconst [TagsInputProvider, useTagsInputContext] =\n createPartContext<TagsInputContextValue>(\"TagsInput\");\n\nexport function TagsInputRoot(props: TagsInputRootProps): ReactElement | null {\n const {\n addOnPaste = true,\n allowDuplicates = false,\n children,\n className,\n defaultValue = [],\n delimiters = [\",\"],\n disabled = false,\n maxTags,\n onChange,\n validate,\n value: controlledValue,\n } = props;\n\n const listId = useId();\n const inputId = useId();\n const [inputValue, setInputValue] = useState(\"\");\n const [tags, setTags] = useControllableState<string[]>({\n defaultValue: [...defaultValue],\n ...(controlledValue !== undefined ? { value: [...controlledValue] } : {}),\n ...(onChange ? { onChange } : {}),\n });\n\n const storeRef = useRef<TagsInputStore | null>(null);\n storeRef.current ??= createTagsInputStore(tags, {\n allowDuplicates,\n ...(maxTags !== undefined ? { maxTags } : {}),\n ...(validate ? { validate } : {}),\n });\n const store = storeRef.current;\n\n useIsomorphicLayoutEffect(() => {\n store.setTags(tags);\n store.updateOptions({\n allowDuplicates,\n ...(maxTags !== undefined ? { maxTags } : {}),\n ...(validate ? { validate } : {}),\n });\n }, [allowDuplicates, maxTags, store, tags, validate]);\n\n const addTag = useCallback(\n (tag: string) => {\n if (disabled) return;\n if (store.addTag(tag)) {\n setTags(store.getTags());\n setInputValue(\"\");\n }\n },\n [disabled, setTags, store],\n );\n\n const removeAt = useCallback(\n (index: number) => {\n if (disabled) return;\n store.removeAt(index);\n setTags(store.getTags());\n },\n [disabled, setTags, store],\n );\n\n const contextValue = useMemo(\n () => ({\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n }),\n [\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n ],\n );\n\n return (\n <TagsInputProvider value={contextValue}>\n <div className={className} data-disabled={disabled ? \"\" : undefined} data-uiify-tags-input=\"\">\n {children}\n </div>\n </TagsInputProvider>\n );\n}\nTagsInputRoot.displayName = \"TagsInputRoot\";\n\nexport function TagsInputInput<TAs extends ElementType = \"input\">(\n props: TagsInputInputProps<TAs>,\n): ReactElement | null {\n const { as, render, className, placeholder, ...consumerProps } =\n props as TagsInputInputProps<\"input\">;\n const {\n addOnPaste,\n addTag,\n delimiters,\n disabled,\n inputId,\n inputValue,\n listId,\n removeAt,\n setInputValue,\n store,\n } = useTagsInputContext(\"Input\");\n const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);\n const {\n onChange: consumerOnChange,\n onKeyDown: consumerOnKeyDown,\n onPaste: consumerOnPaste,\n } = consumerProps as {\n onChange?: (event: SyntheticEvent<HTMLInputElement>) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n onPaste?: (event: React.ClipboardEvent<HTMLInputElement>) => void;\n };\n\n const commitInput = () => {\n if (inputValue.trim()) addTag(inputValue);\n };\n\n const handleChange = (event: SyntheticEvent<HTMLInputElement>) => {\n setInputValue(event.currentTarget.value);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === \"Enter\" || delimiters.includes(event.key)) {\n event.preventDefault();\n commitInput();\n } else if (event.key === \"Backspace\" && !inputValue && tags.length > 0) {\n event.preventDefault();\n removeAt(tags.length - 1);\n }\n };\n\n const handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (!addOnPaste) return;\n const text = event.clipboardData.getData(\"text\");\n const splitChars = [...delimiters, \"\\n\", \"\\t\"];\n if (!splitChars.some((delimiter) => text.includes(delimiter))) return;\n event.preventDefault();\n const parts = splitTags(text, splitChars);\n for (const part of parts) addTag(part);\n };\n\n return useRenderElement({\n as,\n defaultTag: \"input\",\n props: {\n ...consumerProps,\n id: inputId,\n type: \"text\",\n role: \"combobox\",\n \"aria-controls\": listId,\n \"aria-expanded\": false,\n disabled: disabled || undefined,\n \"data-part\": \"input\",\n value: inputValue,\n placeholder,\n ...(className ? { className } : {}),\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n onPaste: composeEventHandlers(consumerOnPaste, handlePaste),\n },\n render,\n state: { disabled },\n });\n}\n\nexport function TagsInputList(props: TagsInputListOwnProps): ReactElement | null {\n const { children, className } = props;\n const { listId, store } = useTagsInputContext(\"List\");\n const tags = useSyncExternalStore(store.subscribe, store.getTags, store.getTags);\n\n return (\n <RovingFocusRoot\n as=\"ul\"\n id={listId}\n orientation=\"horizontal\"\n {...(className ? { className } : {})}\n data-part=\"list\"\n >\n {tags.map((tag, index) => (\n <li data-index={index} data-value={tag} key={`${tag}-${index}`}>\n {tag}\n </li>\n ))}\n {/* A <ul> may only contain <li>, so a non-<li> child (typically TagsInput.Input)\n needs one too — leaving it bare made the list malformed, a serious axe\n violation. TagsInputTag already renders its own <li>; wrapping it again\n would nest <li> inside <li>, an invalid, hydration-breaking tree. */}\n {Children.map(children, (child) =>\n isValidElement(child) && child.type === TagsInputTag ? (\n child\n ) : (\n <li data-part=\"input-slot\">{child}</li>\n ),\n )}\n </RovingFocusRoot>\n );\n}\nTagsInputList.displayName = \"TagsInputList\";\n\nexport function TagsInputTag<TAs extends ElementType = \"li\">(\n props: TagsInputTagProps<TAs>,\n): ReactElement | null {\n const { as, render, children, className, index, value, ...consumerProps } =\n props as TagsInputTagProps<\"li\">;\n const { disabled, removeAt } = useTagsInputContext(\"Tag\");\n const { onKeyDown: consumerOnKeyDown } = consumerProps as {\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === \"Backspace\" || event.key === \"Delete\") {\n event.preventDefault();\n removeAt(index);\n }\n };\n\n const tagProps = {\n ...consumerProps,\n role: \"listitem\",\n \"data-part\": \"tag\",\n \"data-value\": value,\n ...(className ? { className } : {}),\n onKeyDown: composeEventHandlers(consumerOnKeyDown, handleKeyDown),\n children,\n };\n\n if (render) {\n return (\n <RovingFocusItem\n disabled={disabled}\n render={(renderProps, state) => render(renderProps, { current: state.current })}\n textValue={value}\n {...(tagProps as object)}\n />\n );\n }\n\n return (\n <RovingFocusItem\n as={as ?? \"li\"}\n disabled={disabled}\n textValue={value}\n {...(tagProps as object)}\n />\n );\n}\nTagsInputTag.displayName = \"TagsInputTag\";\n\nexport function TagsInputTagRemove(props: TagsInputTagRemoveOwnProps): ReactElement | null {\n const { className, index } = props;\n const { disabled, removeAt } = useTagsInputContext(\"TagRemove\");\n\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n type: \"button\",\n \"aria-label\": \"Remove tag\",\n \"data-part\": \"tag-remove\",\n disabled: disabled || undefined,\n ...(className ? { className } : {}),\n onClick: () => removeAt(index),\n },\n state: { disabled },\n });\n}\n\nexport const TagsInput = {\n Input: TagsInputInput,\n List: TagsInputList,\n Root: TagsInputRoot,\n Tag: TagsInputTag,\n TagRemove: TagsInputTagRemove,\n};\n"],"mappings":"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","names":[]}
@@ -28,6 +28,7 @@ export interface TagsInputContextValue {
28
28
  readonly store: TagsInputStore;
29
29
  }
30
30
  export interface TagsInputRootShellOwnProps {
31
+ readonly className?: string;
31
32
  readonly addOnPaste?: boolean;
32
33
  readonly allowDuplicates?: boolean;
33
34
  readonly defaultValue?: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/tags-input/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/tags-input/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/textarea/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,OAAO,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,QAAQ,CAAC,GAAG,SAAS,WAAW,GAAG,UAAU,EAC3D,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GACxB,YAAY,GAAG,IAAI,CA4CrB"}
1
+ {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../src/components/textarea/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAkB,MAAM,OAAO,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,QAAQ,CAAC,GAAG,SAAS,WAAW,GAAG,UAAU,EAC3D,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,GACxB,YAAY,GAAG,IAAI,CA6CrB"}
@@ -23,6 +23,7 @@ function Textarea(props) {
23
23
  defaultTag: "textarea",
24
24
  props: {
25
25
  ...consumerProps,
26
+ "data-uiify-textarea": "",
26
27
  "aria-invalid": invalid || void 0,
27
28
  "data-autosize": autoSize ? "" : void 0,
28
29
  "data-disabled": disabled ? "" : void 0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/textarea/Textarea.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 { TextareaProps } from \"./types.js\";\n\nexport function Textarea<TAs extends ElementType = \"textarea\">(\n props: TextareaProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n value,\n defaultValue,\n onValueChange,\n autoSize = false,\n disabled = false,\n readOnly = false,\n invalid = false,\n ...consumerProps\n } = props as TextareaProps<\"textarea\">;\n\n const isControlled = value !== undefined;\n\n const handleChange = (event: SyntheticEvent<HTMLTextAreaElement>): void => {\n onValueChange?.(event.currentTarget.value);\n };\n\n const consumerOnChange = (\n consumerProps as Record<string, unknown> & {\n onChange?: (event: SyntheticEvent<HTMLTextAreaElement>) => void;\n }\n ).onChange;\n\n return useRenderElement({\n as,\n defaultTag: \"textarea\",\n props: {\n ...consumerProps,\n \"aria-invalid\": invalid || undefined,\n \"data-autosize\": autoSize ? \"\" : undefined,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-readonly\": readOnly ? \"\" : undefined,\n \"data-invalid\": invalid ? \"\" : undefined,\n disabled: disabled || undefined,\n readOnly: readOnly || undefined,\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n ...(isControlled ? { value } : defaultValue !== undefined ? { defaultValue } : {}),\n },\n render,\n state: { autoSize, disabled, readOnly, invalid },\n });\n}\n"],"mappings":"AACA,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AAG1B,SAAS,SACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,UAAU;AAAA,IACV,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,UAAU;AAE/B,QAAM,eAAe,CAAC,UAAqD;AACzE,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,gBAAgB,WAAW;AAAA,MAC3B,iBAAiB,WAAW,KAAK;AAAA,MACjC,iBAAiB,WAAW,KAAK;AAAA,MACjC,iBAAiB,WAAW,KAAK;AAAA,MACjC,gBAAgB,UAAU,KAAK;AAAA,MAC/B,UAAU,YAAY;AAAA,MACtB,UAAU,YAAY;AAAA,MACtB,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,UAAU,UAAU,UAAU,QAAQ;AAAA,EACjD,CAAC;AACH;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/textarea/Textarea.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 { TextareaProps } from \"./types.js\";\n\nexport function Textarea<TAs extends ElementType = \"textarea\">(\n props: TextareaProps<TAs>,\n): ReactElement | null {\n const {\n as,\n render,\n value,\n defaultValue,\n onValueChange,\n autoSize = false,\n disabled = false,\n readOnly = false,\n invalid = false,\n ...consumerProps\n } = props as TextareaProps<\"textarea\">;\n\n const isControlled = value !== undefined;\n\n const handleChange = (event: SyntheticEvent<HTMLTextAreaElement>): void => {\n onValueChange?.(event.currentTarget.value);\n };\n\n const consumerOnChange = (\n consumerProps as Record<string, unknown> & {\n onChange?: (event: SyntheticEvent<HTMLTextAreaElement>) => void;\n }\n ).onChange;\n\n return useRenderElement({\n as,\n defaultTag: \"textarea\",\n props: {\n ...consumerProps,\n \"data-uiify-textarea\": \"\",\n \"aria-invalid\": invalid || undefined,\n \"data-autosize\": autoSize ? \"\" : undefined,\n \"data-disabled\": disabled ? \"\" : undefined,\n \"data-readonly\": readOnly ? \"\" : undefined,\n \"data-invalid\": invalid ? \"\" : undefined,\n disabled: disabled || undefined,\n readOnly: readOnly || undefined,\n onChange: composeEventHandlers(consumerOnChange, handleChange),\n ...(isControlled ? { value } : defaultValue !== undefined ? { defaultValue } : {}),\n },\n render,\n state: { autoSize, disabled, readOnly, invalid },\n });\n}\n"],"mappings":"AACA,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AAG1B,SAAS,SACd,OACqB;AACrB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,WAAW;AAAA,IACX,WAAW;AAAA,IACX,UAAU;AAAA,IACV,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,eAAe,UAAU;AAE/B,QAAM,eAAe,CAAC,UAAqD;AACzE,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,uBAAuB;AAAA,MACvB,gBAAgB,WAAW;AAAA,MAC3B,iBAAiB,WAAW,KAAK;AAAA,MACjC,iBAAiB,WAAW,KAAK;AAAA,MACjC,iBAAiB,WAAW,KAAK;AAAA,MACjC,gBAAgB,UAAU,KAAK;AAAA,MAC/B,UAAU,YAAY;AAAA,MACtB,UAAU,YAAY;AAAA,MACtB,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,UAAU,UAAU,UAAU,QAAQ;AAAA,EACjD,CAAC;AACH;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/toast/Toast.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA2C,YAAY,EAAE,MAAM,OAAO,CAAC;AAKnF,OAAO,EAGL,gBAAgB,EAChB,UAAU,EAEX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,UAAU,EAGV,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AASpB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAExC,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAoC/E;yBApCe,aAAa;;;AAuC7B,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CA8B/E;yBA9Be,aAAa;;;AAiC7B,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI,CAgEvE;yBAhEe,SAAS;;;AAmEzB,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAExE;yBAFe,WAAW;;;AAK3B,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAEtE;yBAFe,UAAU;;;AAK1B,wBAAgB,QAAQ;;iBAIP,UAAU;EAI1B;AAED,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAC"}
1
+ {"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/toast/Toast.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA2C,YAAY,EAAE,MAAM,OAAO,CAAC;AAKnF,OAAO,EAGL,gBAAgB,EAChB,UAAU,EAEX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,UAAU,EAGV,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AASpB,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAExC,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAoC/E;yBApCe,aAAa;;;AAuC7B,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CA8B/E;yBA9Be,aAAa;;;AAiC7B,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI,CAiEvE;yBAjEe,SAAS;;;AAoEzB,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAExE;yBAFe,WAAW;;;AAK3B,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAEtE;yBAFe,UAAU;;;AAK1B,wBAAgB,QAAQ;;iBAIP,UAAU;EAI1B;AAED,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAC"}
@@ -76,7 +76,8 @@ function ToastRoot(props) {
76
76
  {
77
77
  "aria-label": typeof toast.title === "string" ? toast.title : "Notification",
78
78
  "data-state": "open",
79
- "data-uiify-toast-root": "",
79
+ "data-part": "item",
80
+ "data-uiify-toast": "",
80
81
  role: "group",
81
82
  tabIndex: 0,
82
83
  onFocus: () => pause(toast.id),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo, useRef, useSyncExternalStore } from \"react\";\nimport type { FocusEvent, KeyboardEvent, PointerEvent, ReactElement } from \"react\";\nimport { useIsomorphicLayoutEffect, useMergedRefs } from \"@gunkin/uiify/hooks\";\nimport { createPartContext, splitRef } from \"@gunkin/uiify/core\";\nimport { VisuallyHidden } from \"@gunkin/uiify/core/visually-hidden\";\nimport { createToastStore } from \"./toast-store.js\";\nimport {\n ToastAction as ToastActionElement,\n ToastClose as ToastCloseElement,\n ToastDescription,\n ToastTitle,\n ToastViewport as ToastViewportElement,\n} from \"./ToastElements.js\";\nimport type {\n ToastInput,\n ToastStore,\n ToastContextValue,\n ToastProviderOwnProps,\n ToastViewportOwnProps,\n ToastRootOwnProps,\n ToastActionProps,\n ToastCloseProps,\n} from \"./types.js\";\n\nexport type {\n ToastActionProps,\n ToastCloseProps,\n ToastDescriptionOwnProps,\n ToastInput,\n ToastPriority,\n ToastProviderOwnProps,\n ToastRecord,\n ToastRootOwnProps,\n ToastStore,\n ToastTitleOwnProps,\n ToastViewportOwnProps,\n} from \"./types.js\";\n\nconst SWIPE_DISMISS_THRESHOLD = 80;\n\nconst [ToastStoreProvider, useToastStoreContext] = createPartContext<ToastContextValue>(\n \"Toast\",\n \"Provider\",\n);\n\nexport { ToastDescription, ToastTitle };\n\nexport function ToastProvider(props: ToastProviderOwnProps): ReactElement | null {\n const { children, limit = 3 } = props;\n const storeRef = useRef<ToastStore | null>(null);\n storeRef.current ??= createToastStore({ limit });\n const store = storeRef.current;\n\n const dismiss = useCallback((id: string) => store.dismiss(id), [store]);\n const pause = useCallback((id: string) => store.pause(id), [store]);\n const resume = useCallback((id: string) => store.resume(id), [store]);\n\n const announcement = useSyncExternalStore(\n store.subscribe,\n () => store.getAnnouncement(),\n () => \"\",\n );\n const assertiveAnnouncement = useSyncExternalStore(\n store.subscribe,\n () => store.getAssertiveAnnouncement(),\n () => \"\",\n );\n const contextValue = useMemo(\n () => ({ dismiss, pause, resume, store }),\n [dismiss, pause, resume, store],\n );\n\n return (\n <ToastStoreProvider value={contextValue}>\n {children}\n <VisuallyHidden aria-atomic=\"true\" aria-live=\"polite\">\n {announcement}\n </VisuallyHidden>\n <VisuallyHidden aria-atomic=\"true\" aria-live=\"assertive\">\n {assertiveAnnouncement}\n </VisuallyHidden>\n </ToastStoreProvider>\n );\n}\nToastProvider.displayName = \"ToastProvider\";\n\nexport function ToastViewport(props: ToastViewportOwnProps): ReactElement | null {\n const { store } = useToastStoreContext(\"Viewport\");\n const toasts = useSyncExternalStore(store.subscribe, store.getSnapshot, store.getServerSnapshot);\n const [consumerRef, domProps] = splitRef<HTMLElement, ToastViewportOwnProps>(props);\n const viewportRef = useRef<HTMLElement | null>(null);\n const mergedRef = useMergedRefs(viewportRef, consumerRef);\n const hasToasts = toasts.length > 0;\n\n // Same technique as core/use-popover.ts: guard with .matches(\":popover-open\")\n // so a StrictMode double-invoke or an unrelated re-run doesn't call\n // showPopover/hidePopover on a popover already in that state (both throw).\n // try/catch covers the node having disconnected between render and effect.\n useIsomorphicLayoutEffect(() => {\n const viewport = viewportRef.current;\n if (!viewport) return;\n try {\n if (hasToasts && !viewport.matches(\":popover-open\")) viewport.showPopover();\n if (!hasToasts && viewport.matches(\":popover-open\")) viewport.hidePopover();\n } catch {\n // The node may have disconnected between render and layout effect.\n }\n }, [hasToasts]);\n\n return (\n <ToastViewportElement {...domProps} popover=\"manual\" ref={mergedRef}>\n {toasts.map((toast) => (\n <ToastRoot key={toast.id} toast={toast} />\n ))}\n </ToastViewportElement>\n );\n}\nToastViewport.displayName = \"ToastViewport\";\n\nexport function ToastRoot(props: ToastRootOwnProps): ReactElement | null {\n const { toast } = props;\n const { dismiss, pause, resume } = useToastStoreContext(\"Root\");\n const startXRef = useRef(0);\n const startYRef = useRef(0);\n const swipingRef = useRef(false);\n\n /* oxlint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/no-noninteractive-tabindex, jsx-a11y/prefer-tag-over-role -- pause/swipe on toast card */\n return (\n <div\n aria-label={typeof toast.title === \"string\" ? toast.title : \"Notification\"}\n data-state=\"open\"\n data-uiify-toast-root=\"\"\n role=\"group\"\n tabIndex={0}\n onFocus={() => pause(toast.id)}\n onBlur={(event: FocusEvent<HTMLDivElement>) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) resume(toast.id);\n }}\n onKeyDown={(event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n dismiss(toast.id);\n }\n }}\n onPointerEnter={() => pause(toast.id)}\n onPointerLeave={() => resume(toast.id)}\n onPointerCancel={() => {\n swipingRef.current = false;\n }}\n onPointerDown={(event: PointerEvent<HTMLDivElement>) => {\n startXRef.current = event.clientX;\n startYRef.current = event.clientY;\n swipingRef.current = true;\n }}\n onPointerMove={(event: PointerEvent<HTMLDivElement>) => {\n if (!swipingRef.current) return;\n const deltaX = event.clientX - startXRef.current;\n const deltaY = event.clientY - startYRef.current;\n if (Math.abs(deltaX) > Math.abs(deltaY) && Math.abs(deltaX) > SWIPE_DISMISS_THRESHOLD) {\n swipingRef.current = false;\n dismiss(toast.id);\n }\n }}\n onPointerUp={() => {\n swipingRef.current = false;\n }}\n >\n {toast.title ? <ToastTitle>{toast.title}</ToastTitle> : null}\n {toast.description ? <ToastDescription>{toast.description}</ToastDescription> : null}\n {toast.action ? (\n <ToastAction\n onClick={() => {\n toast.action?.onClick();\n dismiss(toast.id);\n }}\n >\n {toast.action.label}\n </ToastAction>\n ) : null}\n <ToastClose onClick={() => dismiss(toast.id)} />\n </div>\n );\n /* oxlint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/no-noninteractive-tabindex, jsx-a11y/prefer-tag-over-role */\n}\nToastRoot.displayName = \"ToastRoot\";\n\nexport function ToastAction(props: ToastActionProps): ReactElement | null {\n return <ToastActionElement {...props} />;\n}\nToastAction.displayName = \"ToastAction\";\n\nexport function ToastClose(props: ToastCloseProps): ReactElement | null {\n return <ToastCloseElement {...props} />;\n}\nToastClose.displayName = \"ToastClose\";\n\nexport function useToast() {\n const { dismiss, store } = useToastStoreContext(\"useToast\");\n return {\n dismiss,\n toast(input: ToastInput) {\n return store.enqueue(input);\n },\n };\n}\n\nexport const Toast = {\n Action: ToastAction,\n Close: ToastClose,\n Description: ToastDescription,\n Provider: ToastProvider,\n Root: ToastRoot,\n Title: ToastTitle,\n Viewport: ToastViewport,\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/components/toast/Toast.tsx"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useMemo, useRef, useSyncExternalStore } from \"react\";\nimport type { FocusEvent, KeyboardEvent, PointerEvent, ReactElement } from \"react\";\nimport { useIsomorphicLayoutEffect, useMergedRefs } from \"@gunkin/uiify/hooks\";\nimport { createPartContext, splitRef } from \"@gunkin/uiify/core\";\nimport { VisuallyHidden } from \"@gunkin/uiify/core/visually-hidden\";\nimport { createToastStore } from \"./toast-store.js\";\nimport {\n ToastAction as ToastActionElement,\n ToastClose as ToastCloseElement,\n ToastDescription,\n ToastTitle,\n ToastViewport as ToastViewportElement,\n} from \"./ToastElements.js\";\nimport type {\n ToastInput,\n ToastStore,\n ToastContextValue,\n ToastProviderOwnProps,\n ToastViewportOwnProps,\n ToastRootOwnProps,\n ToastActionProps,\n ToastCloseProps,\n} from \"./types.js\";\n\nexport type {\n ToastActionProps,\n ToastCloseProps,\n ToastDescriptionOwnProps,\n ToastInput,\n ToastPriority,\n ToastProviderOwnProps,\n ToastRecord,\n ToastRootOwnProps,\n ToastStore,\n ToastTitleOwnProps,\n ToastViewportOwnProps,\n} from \"./types.js\";\n\nconst SWIPE_DISMISS_THRESHOLD = 80;\n\nconst [ToastStoreProvider, useToastStoreContext] = createPartContext<ToastContextValue>(\n \"Toast\",\n \"Provider\",\n);\n\nexport { ToastDescription, ToastTitle };\n\nexport function ToastProvider(props: ToastProviderOwnProps): ReactElement | null {\n const { children, limit = 3 } = props;\n const storeRef = useRef<ToastStore | null>(null);\n storeRef.current ??= createToastStore({ limit });\n const store = storeRef.current;\n\n const dismiss = useCallback((id: string) => store.dismiss(id), [store]);\n const pause = useCallback((id: string) => store.pause(id), [store]);\n const resume = useCallback((id: string) => store.resume(id), [store]);\n\n const announcement = useSyncExternalStore(\n store.subscribe,\n () => store.getAnnouncement(),\n () => \"\",\n );\n const assertiveAnnouncement = useSyncExternalStore(\n store.subscribe,\n () => store.getAssertiveAnnouncement(),\n () => \"\",\n );\n const contextValue = useMemo(\n () => ({ dismiss, pause, resume, store }),\n [dismiss, pause, resume, store],\n );\n\n return (\n <ToastStoreProvider value={contextValue}>\n {children}\n <VisuallyHidden aria-atomic=\"true\" aria-live=\"polite\">\n {announcement}\n </VisuallyHidden>\n <VisuallyHidden aria-atomic=\"true\" aria-live=\"assertive\">\n {assertiveAnnouncement}\n </VisuallyHidden>\n </ToastStoreProvider>\n );\n}\nToastProvider.displayName = \"ToastProvider\";\n\nexport function ToastViewport(props: ToastViewportOwnProps): ReactElement | null {\n const { store } = useToastStoreContext(\"Viewport\");\n const toasts = useSyncExternalStore(store.subscribe, store.getSnapshot, store.getServerSnapshot);\n const [consumerRef, domProps] = splitRef<HTMLElement, ToastViewportOwnProps>(props);\n const viewportRef = useRef<HTMLElement | null>(null);\n const mergedRef = useMergedRefs(viewportRef, consumerRef);\n const hasToasts = toasts.length > 0;\n\n // Same technique as core/use-popover.ts: guard with .matches(\":popover-open\")\n // so a StrictMode double-invoke or an unrelated re-run doesn't call\n // showPopover/hidePopover on a popover already in that state (both throw).\n // try/catch covers the node having disconnected between render and effect.\n useIsomorphicLayoutEffect(() => {\n const viewport = viewportRef.current;\n if (!viewport) return;\n try {\n if (hasToasts && !viewport.matches(\":popover-open\")) viewport.showPopover();\n if (!hasToasts && viewport.matches(\":popover-open\")) viewport.hidePopover();\n } catch {\n // The node may have disconnected between render and layout effect.\n }\n }, [hasToasts]);\n\n return (\n <ToastViewportElement {...domProps} popover=\"manual\" ref={mergedRef}>\n {toasts.map((toast) => (\n <ToastRoot key={toast.id} toast={toast} />\n ))}\n </ToastViewportElement>\n );\n}\nToastViewport.displayName = \"ToastViewport\";\n\nexport function ToastRoot(props: ToastRootOwnProps): ReactElement | null {\n const { toast } = props;\n const { dismiss, pause, resume } = useToastStoreContext(\"Root\");\n const startXRef = useRef(0);\n const startYRef = useRef(0);\n const swipingRef = useRef(false);\n\n /* oxlint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/no-noninteractive-tabindex, jsx-a11y/prefer-tag-over-role -- pause/swipe on toast card */\n return (\n <div\n aria-label={typeof toast.title === \"string\" ? toast.title : \"Notification\"}\n data-state=\"open\"\n data-part=\"item\"\n data-uiify-toast=\"\"\n role=\"group\"\n tabIndex={0}\n onFocus={() => pause(toast.id)}\n onBlur={(event: FocusEvent<HTMLDivElement>) => {\n if (!event.currentTarget.contains(event.relatedTarget as Node | null)) resume(toast.id);\n }}\n onKeyDown={(event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"Escape\") {\n event.preventDefault();\n dismiss(toast.id);\n }\n }}\n onPointerEnter={() => pause(toast.id)}\n onPointerLeave={() => resume(toast.id)}\n onPointerCancel={() => {\n swipingRef.current = false;\n }}\n onPointerDown={(event: PointerEvent<HTMLDivElement>) => {\n startXRef.current = event.clientX;\n startYRef.current = event.clientY;\n swipingRef.current = true;\n }}\n onPointerMove={(event: PointerEvent<HTMLDivElement>) => {\n if (!swipingRef.current) return;\n const deltaX = event.clientX - startXRef.current;\n const deltaY = event.clientY - startYRef.current;\n if (Math.abs(deltaX) > Math.abs(deltaY) && Math.abs(deltaX) > SWIPE_DISMISS_THRESHOLD) {\n swipingRef.current = false;\n dismiss(toast.id);\n }\n }}\n onPointerUp={() => {\n swipingRef.current = false;\n }}\n >\n {toast.title ? <ToastTitle>{toast.title}</ToastTitle> : null}\n {toast.description ? <ToastDescription>{toast.description}</ToastDescription> : null}\n {toast.action ? (\n <ToastAction\n onClick={() => {\n toast.action?.onClick();\n dismiss(toast.id);\n }}\n >\n {toast.action.label}\n </ToastAction>\n ) : null}\n <ToastClose onClick={() => dismiss(toast.id)} />\n </div>\n );\n /* oxlint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/no-noninteractive-tabindex, jsx-a11y/prefer-tag-over-role */\n}\nToastRoot.displayName = \"ToastRoot\";\n\nexport function ToastAction(props: ToastActionProps): ReactElement | null {\n return <ToastActionElement {...props} />;\n}\nToastAction.displayName = \"ToastAction\";\n\nexport function ToastClose(props: ToastCloseProps): ReactElement | null {\n return <ToastCloseElement {...props} />;\n}\nToastClose.displayName = \"ToastClose\";\n\nexport function useToast() {\n const { dismiss, store } = useToastStoreContext(\"useToast\");\n return {\n dismiss,\n toast(input: ToastInput) {\n return store.enqueue(input);\n },\n };\n}\n\nexport const Toast = {\n Action: ToastAction,\n Close: ToastClose,\n Description: ToastDescription,\n Provider: ToastProvider,\n Root: ToastRoot,\n Title: ToastTitle,\n Viewport: ToastViewport,\n};\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ToastElements.d.ts","sourceRoot":"","sources":["../../../src/components/toast/ToastElements.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAE/E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAc/E;yBAde,aAAa;;;AAiB7B,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI,CAevE;yBAfe,SAAS;;;AAkBzB,wBAAgB,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CAUzE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,GAAG,IAAI,CAUrF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAaxE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CActE;AAED,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAC"}
1
+ {"version":3,"file":"ToastElements.d.ts","sourceRoot":"","sources":["../../../src/components/toast/ToastElements.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAE/E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CAgB/E;yBAhBe,aAAa;;;AAmB7B,wBAAgB,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,IAAI,CAgBvE;yBAhBe,SAAS;;;AAmBzB,wBAAgB,UAAU,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CAUzE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,wBAAwB,GAAG,YAAY,GAAG,IAAI,CAUrF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAaxE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CActE;AAED,eAAO,MAAM,KAAK;;;;;;;;CAQjB,CAAC"}
@@ -9,7 +9,9 @@ function ToastViewport(props) {
9
9
  "section",
10
10
  {
11
11
  "aria-label": ariaLabel,
12
+ "data-part": "viewport",
12
13
  "data-testid": "toast-viewport",
14
+ "data-uiify-toast": "",
13
15
  ref,
14
16
  ...popover ? { popover } : {},
15
17
  ...className ? { className } : {},
@@ -24,8 +26,9 @@ function ToastRoot(props) {
24
26
  "fieldset",
25
27
  {
26
28
  "aria-label": typeof toast.title === "string" ? toast.title : "Notification",
29
+ "data-part": "item",
27
30
  "data-state": "open",
28
- "data-uiify-toast-root": "",
31
+ "data-uiify-toast": "",
29
32
  children: [
30
33
  toast.title ? /* @__PURE__ */ jsx(ToastTitle, { children: toast.title }) : null,
31
34
  toast.description ? /* @__PURE__ */ jsx(ToastDescription, { children: toast.description }) : null,