@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
@@ -3,8 +3,8 @@ import type { AccordionProps } from "./types.js";
3
3
  /**
4
4
  * Built on `@gunkin/uiify/elements/details`: `Details.Root` already owns `data-disabled` (from its own
5
5
  * `disabled` prop) and `data-uiify-details`; `Details.Summary`'s `disabled` prop already owns
6
- * `aria-disabled`/`tabIndex`. This component adds its own `data-part`/`data-uiify-accordion-*`
7
- * markers and the `name`/`defaultOpen` wiring that makes single-select exclusive.
6
+ * `aria-disabled`/`tabIndex`. This component adds its own identity/anatomy markers and the
7
+ * `name`/`defaultOpen` wiring that makes single-select exclusive.
8
8
  */
9
9
  export declare function Accordion({ id, items, type, defaultValue, className, }: AccordionProps): ReactElement;
10
10
  export declare namespace Accordion {
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../src/components/accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAWhE;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EACxB,EAAE,EACF,KAAK,EACL,IAAe,EACf,YAAY,EACZ,SAAS,GACV,EAAE,cAAc,GAAG,YAAY,CAoB/B;yBA1Be,SAAS"}
1
+ {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../src/components/accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,YAAY,CAAC;AAWhE;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EACxB,EAAE,EACF,KAAK,EACL,IAAe,EACf,YAAY,EACZ,SAAS,GACV,EAAE,cAAc,GAAG,YAAY,CAmB/B;yBAzBe,SAAS"}
@@ -11,11 +11,10 @@ function Accordion({
11
11
  defaultValue,
12
12
  className
13
13
  }) {
14
- return /* @__PURE__ */ jsx("div", { className, "data-uiify-accordion": "", "data-uiify-choice-kind": type, children: items.map((item) => /* @__PURE__ */ jsxs(
14
+ return /* @__PURE__ */ jsx("div", { className, "data-kind": type, "data-uiify-accordion": "", children: items.map((item) => /* @__PURE__ */ jsxs(
15
15
  DetailsRoot,
16
16
  {
17
17
  "data-part": "item",
18
- "data-uiify-accordion-item": "",
19
18
  defaultOpen: isDefaultOpen(type, defaultValue, item.value),
20
19
  disabled: item.disabled ?? false,
21
20
  ...type === "single" ? { name: id } : {},
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { DetailsContent, DetailsRoot, DetailsSummary } from \"../../elements/details/index.js\";\nimport type { AccordionProps, AccordionType } from \"./types.js\";\n\nfunction isDefaultOpen(\n type: AccordionType,\n defaultValue: string | readonly string[] | undefined,\n itemValue: string,\n): boolean {\n if (type === \"single\") return defaultValue === itemValue;\n return Array.isArray(defaultValue) && defaultValue.includes(itemValue);\n}\n\n/**\n * Built on `@gunkin/uiify/elements/details`: `Details.Root` already owns `data-disabled` (from its own\n * `disabled` prop) and `data-uiify-details`; `Details.Summary`'s `disabled` prop already owns\n * `aria-disabled`/`tabIndex`. This component adds its own `data-part`/`data-uiify-accordion-*`\n * markers and the `name`/`defaultOpen` wiring that makes single-select exclusive.\n */\nexport function Accordion({\n id,\n items,\n type = \"single\",\n defaultValue,\n className,\n}: AccordionProps): ReactElement {\n return (\n <div className={className} data-uiify-accordion=\"\" data-uiify-choice-kind={type}>\n {items.map((item) => (\n <DetailsRoot\n data-part=\"item\"\n data-uiify-accordion-item=\"\"\n defaultOpen={isDefaultOpen(type, defaultValue, item.value)}\n disabled={item.disabled ?? false}\n key={item.value}\n {...(type === \"single\" ? { name: id } : {})}\n >\n <DetailsSummary disabled={item.disabled ?? false} part=\"trigger\">\n {item.label}\n </DetailsSummary>\n <DetailsContent part=\"panel\">{item.panel}</DetailsContent>\n </DetailsRoot>\n ))}\n </div>\n );\n}\nAccordion.displayName = \"Accordion\";\n"],"mappings":"AA6BQ,SAQE,KARF;AA5BR,SAAS,gBAAgB,aAAa,sBAAsB;AAG5D,SAAS,cACP,MACA,cACA,WACS;AACT,MAAI,SAAS,SAAU,QAAO,iBAAiB;AAC/C,SAAO,MAAM,QAAQ,YAAY,KAAK,aAAa,SAAS,SAAS;AACvE;AAQO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAAiC;AAC/B,SACE,oBAAC,SAAI,WAAsB,wBAAqB,IAAG,0BAAwB,MACxE,gBAAM,IAAI,CAAC,SACV;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,6BAA0B;AAAA,MAC1B,aAAa,cAAc,MAAM,cAAc,KAAK,KAAK;AAAA,MACzD,UAAU,KAAK,YAAY;AAAA,MAE1B,GAAI,SAAS,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;AAAA,MAEzC;AAAA,4BAAC,kBAAe,UAAU,KAAK,YAAY,OAAO,MAAK,WACpD,eAAK,OACR;AAAA,QACA,oBAAC,kBAAe,MAAK,SAAS,eAAK,OAAM;AAAA;AAAA;AAAA,IANpC,KAAK;AAAA,EAOZ,CACD,GACH;AAEJ;AACA,UAAU,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/accordion/Accordion.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport { DetailsContent, DetailsRoot, DetailsSummary } from \"../../elements/details/index.js\";\nimport type { AccordionProps, AccordionType } from \"./types.js\";\n\nfunction isDefaultOpen(\n type: AccordionType,\n defaultValue: string | readonly string[] | undefined,\n itemValue: string,\n): boolean {\n if (type === \"single\") return defaultValue === itemValue;\n return Array.isArray(defaultValue) && defaultValue.includes(itemValue);\n}\n\n/**\n * Built on `@gunkin/uiify/elements/details`: `Details.Root` already owns `data-disabled` (from its own\n * `disabled` prop) and `data-uiify-details`; `Details.Summary`'s `disabled` prop already owns\n * `aria-disabled`/`tabIndex`. This component adds its own identity/anatomy markers and the\n * `name`/`defaultOpen` wiring that makes single-select exclusive.\n */\nexport function Accordion({\n id,\n items,\n type = \"single\",\n defaultValue,\n className,\n}: AccordionProps): ReactElement {\n return (\n <div className={className} data-kind={type} data-uiify-accordion=\"\">\n {items.map((item) => (\n <DetailsRoot\n data-part=\"item\"\n defaultOpen={isDefaultOpen(type, defaultValue, item.value)}\n disabled={item.disabled ?? false}\n key={item.value}\n {...(type === \"single\" ? { name: id } : {})}\n >\n <DetailsSummary disabled={item.disabled ?? false} part=\"trigger\">\n {item.label}\n </DetailsSummary>\n <DetailsContent part=\"panel\">{item.panel}</DetailsContent>\n </DetailsRoot>\n ))}\n </div>\n );\n}\nAccordion.displayName = \"Accordion\";\n"],"mappings":"AA6BQ,SAOE,KAPF;AA5BR,SAAS,gBAAgB,aAAa,sBAAsB;AAG5D,SAAS,cACP,MACA,cACA,WACS;AACT,MAAI,SAAS,SAAU,QAAO,iBAAiB;AAC/C,SAAO,MAAM,QAAQ,YAAY,KAAK,aAAa,SAAS,SAAS;AACvE;AAQO,SAAS,UAAU;AAAA,EACxB;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAAiC;AAC/B,SACE,oBAAC,SAAI,WAAsB,aAAW,MAAM,wBAAqB,IAC9D,gBAAM,IAAI,CAAC,SACV;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,aAAa,cAAc,MAAM,cAAc,KAAK,KAAK;AAAA,MACzD,UAAU,KAAK,YAAY;AAAA,MAE1B,GAAI,SAAS,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;AAAA,MAEzC;AAAA,4BAAC,kBAAe,UAAU,KAAK,YAAY,OAAO,MAAK,WACpD,eAAK,OACR;AAAA,QACA,oBAAC,kBAAe,MAAK,SAAS,eAAK,OAAM;AAAA;AAAA;AAAA,IANpC,KAAK;AAAA,EAOZ,CACD,GACH;AAEJ;AACA,UAAU,cAAc;","names":[]}
@@ -1,7 +1,7 @@
1
1
  import type { ReactElement } from "react";
2
2
  import type { AlertModalProps } from "./types.js";
3
3
  /** Convenience shell over the native parts: one trigger, one modal alertdialog, cancel and action. */
4
- export declare function AlertModal({ id, trigger, title, description, children, actionLabel, cancelLabel, triggerClassName, className, actionClassName, cancelClassName, }: AlertModalProps): ReactElement;
4
+ export declare function AlertModal({ id, trigger, title, description, children, actionLabel, cancelLabel, className, }: AlertModalProps): ReactElement;
5
5
  export declare namespace AlertModal {
6
6
  var displayName: string;
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AlertModal.d.ts","sourceRoot":"","sources":["../../../src/components/alert-modal/AlertModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAO1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,sGAAsG;AACtG,wBAAgB,UAAU,CAAC,EACzB,EAAE,EACF,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,WAAuB,EACvB,WAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,eAAe,GAChB,EAAE,eAAe,GAAG,YAAY,CA2BhC;yBAvCe,UAAU"}
1
+ {"version":3,"file":"AlertModal.d.ts","sourceRoot":"","sources":["../../../src/components/alert-modal/AlertModal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAO1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,sGAAsG;AACtG,wBAAgB,UAAU,CAAC,EACzB,EAAE,EACF,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,WAAuB,EACvB,WAAsB,EACtB,SAAS,GACV,EAAE,eAAe,GAAG,YAAY,CAyBhC;yBAlCe,UAAU"}
@@ -13,15 +13,12 @@ function AlertModal({
13
13
  children,
14
14
  actionLabel = "Confirm",
15
15
  cancelLabel = "Cancel",
16
- triggerClassName,
17
- className,
18
- actionClassName,
19
- cancelClassName
16
+ className
20
17
  }) {
21
18
  const titleId = `${id}-title`;
22
19
  const descriptionId = `${id}-description`;
23
- return /* @__PURE__ */ jsxs("div", { "data-uiify-alert-dialog-scope": "", "data-uiify-alert-modal-scope": "", children: [
24
- /* @__PURE__ */ jsx(AlertModalTrigger, { className: triggerClassName, target: id, children: trigger }),
20
+ return /* @__PURE__ */ jsxs("div", { "data-part": "root", "data-uiify-alert-modal": "", children: [
21
+ /* @__PURE__ */ jsx(AlertModalTrigger, { target: id, children: trigger }),
25
22
  /* @__PURE__ */ jsxs(
26
23
  AlertModalContent,
27
24
  {
@@ -33,8 +30,8 @@ function AlertModal({
33
30
  /* @__PURE__ */ jsx("h2", { id: titleId, children: title }),
34
31
  description === void 0 ? null : /* @__PURE__ */ jsx("p", { id: descriptionId, children: description }),
35
32
  children,
36
- /* @__PURE__ */ jsx(AlertModalCancel, { className: cancelClassName, target: id, value: "cancel", children: cancelLabel }),
37
- /* @__PURE__ */ jsx(AlertModalAction, { className: actionClassName, target: id, value: "confirm", children: actionLabel })
33
+ /* @__PURE__ */ jsx(AlertModalCancel, { target: id, value: "cancel", children: cancelLabel }),
34
+ /* @__PURE__ */ jsx(AlertModalAction, { target: id, value: "confirm", children: actionLabel })
38
35
  ]
39
36
  }
40
37
  )
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/alert-modal/AlertModal.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport {\n AlertModalAction,\n AlertModalCancel,\n AlertModalContent,\n AlertModalTrigger,\n} from \"./AlertModalParts.js\";\nimport type { AlertModalProps } from \"./types.js\";\n\n/** Convenience shell over the native parts: one trigger, one modal alertdialog, cancel and action. */\nexport function AlertModal({\n id,\n trigger,\n title,\n description,\n children,\n actionLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n triggerClassName,\n className,\n actionClassName,\n cancelClassName,\n}: AlertModalProps): ReactElement {\n const titleId = `${id}-title`;\n const descriptionId = `${id}-description`;\n\n return (\n <div data-uiify-alert-dialog-scope=\"\" data-uiify-alert-modal-scope=\"\">\n <AlertModalTrigger className={triggerClassName} target={id}>\n {trigger}\n </AlertModalTrigger>\n <AlertModalContent\n aria-describedby={description === undefined ? undefined : descriptionId}\n aria-labelledby={titleId}\n className={className}\n id={id}\n >\n <h2 id={titleId}>{title}</h2>\n {description === undefined ? null : <p id={descriptionId}>{description}</p>}\n {children}\n <AlertModalCancel className={cancelClassName} target={id} value=\"cancel\">\n {cancelLabel}\n </AlertModalCancel>\n <AlertModalAction className={actionClassName} target={id} value=\"confirm\">\n {actionLabel}\n </AlertModalAction>\n </AlertModalContent>\n </div>\n );\n}\nAlertModal.displayName = \"AlertModal\";\n"],"mappings":"AA4BM,cAGA,YAHA;AA3BN;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIA,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAkC;AAChC,QAAM,UAAU,GAAG,EAAE;AACrB,QAAM,gBAAgB,GAAG,EAAE;AAE3B,SACE,qBAAC,SAAI,iCAA8B,IAAG,gCAA6B,IACjE;AAAA,wBAAC,qBAAkB,WAAW,kBAAkB,QAAQ,IACrD,mBACH;AAAA,IACA;AAAA,MAAC;AAAA;AAAA,QACC,oBAAkB,gBAAgB,SAAY,SAAY;AAAA,QAC1D,mBAAiB;AAAA,QACjB;AAAA,QACA;AAAA,QAEA;AAAA,8BAAC,QAAG,IAAI,SAAU,iBAAM;AAAA,UACvB,gBAAgB,SAAY,OAAO,oBAAC,OAAE,IAAI,eAAgB,uBAAY;AAAA,UACtE;AAAA,UACD,oBAAC,oBAAiB,WAAW,iBAAiB,QAAQ,IAAI,OAAM,UAC7D,uBACH;AAAA,UACA,oBAAC,oBAAiB,WAAW,iBAAiB,QAAQ,IAAI,OAAM,WAC7D,uBACH;AAAA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AACA,WAAW,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/alert-modal/AlertModal.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport {\n AlertModalAction,\n AlertModalCancel,\n AlertModalContent,\n AlertModalTrigger,\n} from \"./AlertModalParts.js\";\nimport type { AlertModalProps } from \"./types.js\";\n\n/** Convenience shell over the native parts: one trigger, one modal alertdialog, cancel and action. */\nexport function AlertModal({\n id,\n trigger,\n title,\n description,\n children,\n actionLabel = \"Confirm\",\n cancelLabel = \"Cancel\",\n className,\n}: AlertModalProps): ReactElement {\n const titleId = `${id}-title`;\n const descriptionId = `${id}-description`;\n\n return (\n <div data-part=\"root\" data-uiify-alert-modal=\"\">\n <AlertModalTrigger target={id}>{trigger}</AlertModalTrigger>\n <AlertModalContent\n aria-describedby={description === undefined ? undefined : descriptionId}\n aria-labelledby={titleId}\n className={className}\n id={id}\n >\n <h2 id={titleId}>{title}</h2>\n {description === undefined ? null : <p id={descriptionId}>{description}</p>}\n {children}\n <AlertModalCancel target={id} value=\"cancel\">\n {cancelLabel}\n </AlertModalCancel>\n <AlertModalAction target={id} value=\"confirm\">\n {actionLabel}\n </AlertModalAction>\n </AlertModalContent>\n </div>\n );\n}\nAlertModal.displayName = \"AlertModal\";\n"],"mappings":"AAyBM,cACA,YADA;AAxBN;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIA,SAAS,WAAW;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,cAAc;AAAA,EACd;AACF,GAAkC;AAChC,QAAM,UAAU,GAAG,EAAE;AACrB,QAAM,gBAAgB,GAAG,EAAE;AAE3B,SACE,qBAAC,SAAI,aAAU,QAAO,0BAAuB,IAC3C;AAAA,wBAAC,qBAAkB,QAAQ,IAAK,mBAAQ;AAAA,IACxC;AAAA,MAAC;AAAA;AAAA,QACC,oBAAkB,gBAAgB,SAAY,SAAY;AAAA,QAC1D,mBAAiB;AAAA,QACjB;AAAA,QACA;AAAA,QAEA;AAAA,8BAAC,QAAG,IAAI,SAAU,iBAAM;AAAA,UACvB,gBAAgB,SAAY,OAAO,oBAAC,OAAE,IAAI,eAAgB,uBAAY;AAAA,UACtE;AAAA,UACD,oBAAC,oBAAiB,QAAQ,IAAI,OAAM,UACjC,uBACH;AAAA,UACA,oBAAC,oBAAiB,QAAQ,IAAI,OAAM,WACjC,uBACH;AAAA;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;AACA,WAAW,cAAc;","names":[]}
@@ -1,46 +1,21 @@
1
1
  import type { ElementType, ReactElement } from "react";
2
2
  import type { AlertModalActionProps, AlertModalCancelProps, AlertModalContentProps, AlertModalTriggerProps } from "./types.js";
3
- /**
4
- * Built on `@gunkin/uiify/elements/dialog`'s `Dialog.Trigger`, which already emits
5
- * `data-uiify-dialog-trigger` — additive, since this component's own markers are a
6
- * different string. Also emits `data-uiify-alert-modal-trigger` and the deprecated
7
- * `data-uiify-alert-dialog-trigger` during the compatibility window.
8
- *
9
- * Calls the element directly as a function rather than rendering `<ElementDialogTrigger>` —
10
- * see ModalParts.tsx's `ModalTrigger` for why (Tier 0, no hooks, skips a `jsx()` call).
11
- */
3
+ /** Native alert modal invoker with alert-modal identity and trigger anatomy. */
12
4
  export declare function AlertModalTrigger<TAs extends ElementType = "button">(props: AlertModalTriggerProps<TAs>): ReactElement;
13
5
  export declare namespace AlertModalTrigger {
14
6
  var displayName: string;
15
7
  }
16
- /**
17
- * A modal `<dialog role="alertdialog">`; Escape and the parts close it, the backdrop does not.
18
- *
19
- * Mirrors `@gunkin/uiify/elements/dialog`'s `Dialog.Content` markup and marker
20
- * (`data-uiify-dialog-content`) plus `role="alertdialog"` and this component's own
21
- * `data-uiify-alert-modal-content` / deprecated `data-uiify-alert-dialog-content`. Written
22
- * inline rather than rendered through the element for the same reason as `ModalContent`:
23
- * `Dialog.Content`'s type requires an accessible name and `AlertModalContentProps`
24
- * deliberately does not tighten to match (see ModalParts.tsx).
25
- */
8
+ /** Native alert dialog content with alert-modal identity and content anatomy. */
26
9
  export declare function AlertModalContent(props: AlertModalContentProps): ReactElement;
27
10
  export declare namespace AlertModalContent {
28
11
  var displayName: string;
29
12
  }
30
- /**
31
- * Built on `@gunkin/uiify/elements/dialog`'s `Dialog.Close`. Also emits
32
- * `data-uiify-alert-modal-action` and the deprecated `data-uiify-alert-dialog-action`
33
- * for one major.
34
- */
13
+ /** Native alert modal action invoker. */
35
14
  export declare function AlertModalAction<TAs extends ElementType = "button">(props: AlertModalActionProps<TAs>): ReactElement;
36
15
  export declare namespace AlertModalAction {
37
16
  var displayName: string;
38
17
  }
39
- /**
40
- * Built on `@gunkin/uiify/elements/dialog`'s `Dialog.Close`. Also emits
41
- * `data-uiify-alert-modal-cancel` and the deprecated `data-uiify-alert-dialog-cancel`
42
- * for one major.
43
- */
18
+ /** Native alert modal cancel invoker. */
44
19
  export declare function AlertModalCancel<TAs extends ElementType = "button">(props: AlertModalCancelProps<TAs>): ReactElement;
45
20
  export declare namespace AlertModalCancel {
46
21
  var displayName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AlertModalParts.d.ts","sourceRoot":"","sources":["../../../src/components/alert-modal/AlertModalParts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAMvD,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAClE,KAAK,EAAE,sBAAsB,CAAC,GAAG,CAAC,GACjC,YAAY,CASd;yBAXe,iBAAiB;;;AAcjC;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CAa7E;yBAbe,iBAAiB;;;AAgBjC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EACjE,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAChC,YAAY,CASd;yBAXe,gBAAgB;;;AAchC;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EACjE,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAChC,YAAY,CASd;yBAXe,gBAAgB"}
1
+ {"version":3,"file":"AlertModalParts.d.ts","sourceRoot":"","sources":["../../../src/components/alert-modal/AlertModalParts.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,KAAK,EACV,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAEpB,gFAAgF;AAChF,wBAAgB,iBAAiB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EAClE,KAAK,EAAE,sBAAsB,CAAC,GAAG,CAAC,GACjC,YAAY,CAWd;yBAbe,iBAAiB;;;AAgBjC,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,YAAY,CAO7E;yBAPe,iBAAiB;;;AAUjC,yCAAyC;AACzC,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EACjE,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAChC,YAAY,CAWd;yBAbe,gBAAgB;;;AAgBhC,yCAAyC;AACzC,wBAAgB,gBAAgB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,EACjE,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,GAChC,YAAY,CAWd;yBAbe,gBAAgB"}
@@ -1,54 +1,47 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import {
3
- DialogClose as ElementDialogClose,
4
- DialogTrigger as ElementDialogTrigger
5
- } from "../../elements/dialog/index.js";
2
+ import { renderNativeInvoker } from "@gunkin/uiify/core/render";
6
3
  function AlertModalTrigger(props) {
7
4
  const { as, target, ...consumerProps } = props;
8
- return ElementDialogTrigger({
9
- ...consumerProps,
10
- ...as === void 0 ? {} : { as },
11
- "data-uiify-alert-dialog-trigger": "",
12
- "data-uiify-alert-modal-trigger": "",
13
- target
14
- });
5
+ return renderNativeInvoker(
6
+ as,
7
+ "data-uiify-alert-modal",
8
+ "trigger",
9
+ "show-modal",
10
+ target,
11
+ consumerProps,
12
+ { button: true }
13
+ );
15
14
  }
16
15
  AlertModalTrigger.displayName = "AlertModalTrigger";
17
16
  function AlertModalContent(props) {
18
17
  const { children, ...dialogProps } = props;
19
- return /* @__PURE__ */ jsx(
20
- "dialog",
21
- {
22
- ...dialogProps,
23
- "data-uiify-alert-dialog-content": "",
24
- "data-uiify-alert-modal-content": "",
25
- "data-uiify-dialog-content": "",
26
- role: "alertdialog",
27
- children
28
- }
29
- );
18
+ return /* @__PURE__ */ jsx("dialog", { ...dialogProps, "data-part": "content", "data-uiify-alert-modal": "", role: "alertdialog", children });
30
19
  }
31
20
  AlertModalContent.displayName = "AlertModalContent";
32
21
  function AlertModalAction(props) {
33
22
  const { as, target, ...consumerProps } = props;
34
- return ElementDialogClose({
35
- ...consumerProps,
36
- ...as === void 0 ? {} : { as },
37
- "data-uiify-alert-dialog-action": "",
38
- "data-uiify-alert-modal-action": "",
39
- target
40
- });
23
+ return renderNativeInvoker(
24
+ as,
25
+ "data-uiify-alert-modal",
26
+ "action",
27
+ "request-close",
28
+ target,
29
+ consumerProps,
30
+ { button: true, variant: "danger" }
31
+ );
41
32
  }
42
33
  AlertModalAction.displayName = "AlertModalAction";
43
34
  function AlertModalCancel(props) {
44
35
  const { as, target, ...consumerProps } = props;
45
- return ElementDialogClose({
46
- ...consumerProps,
47
- ...as === void 0 ? {} : { as },
48
- "data-uiify-alert-dialog-cancel": "",
49
- "data-uiify-alert-modal-cancel": "",
50
- target
51
- });
36
+ return renderNativeInvoker(
37
+ as,
38
+ "data-uiify-alert-modal",
39
+ "cancel",
40
+ "request-close",
41
+ target,
42
+ consumerProps,
43
+ { button: true, variant: "ghost" }
44
+ );
52
45
  }
53
46
  AlertModalCancel.displayName = "AlertModalCancel";
54
47
  export {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/alert-modal/AlertModalParts.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport {\n DialogClose as ElementDialogClose,\n DialogTrigger as ElementDialogTrigger,\n} from \"../../elements/dialog/index.js\";\nimport type { DialogCloseProps, DialogTriggerProps } from \"../../elements/dialog/index.js\";\nimport type {\n AlertModalActionProps,\n AlertModalCancelProps,\n AlertModalContentProps,\n AlertModalTriggerProps,\n} from \"./types.js\";\n\n/**\n * Built on `@gunkin/uiify/elements/dialog`'s `Dialog.Trigger`, which already emits\n * `data-uiify-dialog-trigger` — additive, since this component's own markers are a\n * different string. Also emits `data-uiify-alert-modal-trigger` and the deprecated\n * `data-uiify-alert-dialog-trigger` during the compatibility window.\n *\n * Calls the element directly as a function rather than rendering `<ElementDialogTrigger>` —\n * see ModalParts.tsx's `ModalTrigger` for why (Tier 0, no hooks, skips a `jsx()` call).\n */\nexport function AlertModalTrigger<TAs extends ElementType = \"button\">(\n props: AlertModalTriggerProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as AlertModalTriggerProps<\"button\">;\n return ElementDialogTrigger({\n ...consumerProps,\n ...(as === undefined ? {} : { as }),\n \"data-uiify-alert-dialog-trigger\": \"\",\n \"data-uiify-alert-modal-trigger\": \"\",\n target,\n } as unknown as DialogTriggerProps<TAs>);\n}\nAlertModalTrigger.displayName = \"AlertModalTrigger\";\n\n/**\n * A modal `<dialog role=\"alertdialog\">`; Escape and the parts close it, the backdrop does not.\n *\n * Mirrors `@gunkin/uiify/elements/dialog`'s `Dialog.Content` markup and marker\n * (`data-uiify-dialog-content`) plus `role=\"alertdialog\"` and this component's own\n * `data-uiify-alert-modal-content` / deprecated `data-uiify-alert-dialog-content`. Written\n * inline rather than rendered through the element for the same reason as `ModalContent`:\n * `Dialog.Content`'s type requires an accessible name and `AlertModalContentProps`\n * deliberately does not tighten to match (see ModalParts.tsx).\n */\nexport function AlertModalContent(props: AlertModalContentProps): ReactElement {\n const { children, ...dialogProps } = props;\n return (\n <dialog\n {...dialogProps}\n data-uiify-alert-dialog-content=\"\"\n data-uiify-alert-modal-content=\"\"\n data-uiify-dialog-content=\"\"\n role=\"alertdialog\"\n >\n {children}\n </dialog>\n );\n}\nAlertModalContent.displayName = \"AlertModalContent\";\n\n/**\n * Built on `@gunkin/uiify/elements/dialog`'s `Dialog.Close`. Also emits\n * `data-uiify-alert-modal-action` and the deprecated `data-uiify-alert-dialog-action`\n * for one major.\n */\nexport function AlertModalAction<TAs extends ElementType = \"button\">(\n props: AlertModalActionProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as AlertModalActionProps<\"button\">;\n return ElementDialogClose({\n ...consumerProps,\n ...(as === undefined ? {} : { as }),\n \"data-uiify-alert-dialog-action\": \"\",\n \"data-uiify-alert-modal-action\": \"\",\n target,\n } as unknown as DialogCloseProps<TAs>);\n}\nAlertModalAction.displayName = \"AlertModalAction\";\n\n/**\n * Built on `@gunkin/uiify/elements/dialog`'s `Dialog.Close`. Also emits\n * `data-uiify-alert-modal-cancel` and the deprecated `data-uiify-alert-dialog-cancel`\n * for one major.\n */\nexport function AlertModalCancel<TAs extends ElementType = \"button\">(\n props: AlertModalCancelProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as AlertModalCancelProps<\"button\">;\n return ElementDialogClose({\n ...consumerProps,\n ...(as === undefined ? {} : { as }),\n \"data-uiify-alert-dialog-cancel\": \"\",\n \"data-uiify-alert-modal-cancel\": \"\",\n target,\n } as unknown as DialogCloseProps<TAs>);\n}\nAlertModalCancel.displayName = \"AlertModalCancel\";\n"],"mappings":"AAiDI;AAhDJ;AAAA,EACE,eAAe;AAAA,EACf,iBAAiB;AAAA,OACZ;AAkBA,SAAS,kBACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO,qBAAqB;AAAA,IAC1B,GAAG;AAAA,IACH,GAAI,OAAO,SAAY,CAAC,IAAI,EAAE,GAAG;AAAA,IACjC,mCAAmC;AAAA,IACnC,kCAAkC;AAAA,IAClC;AAAA,EACF,CAAuC;AACzC;AACA,kBAAkB,cAAc;AAYzB,SAAS,kBAAkB,OAA6C;AAC7E,QAAM,EAAE,UAAU,GAAG,YAAY,IAAI;AACrC,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,mCAAgC;AAAA,MAChC,kCAA+B;AAAA,MAC/B,6BAA0B;AAAA,MAC1B,MAAK;AAAA,MAEJ;AAAA;AAAA,EACH;AAEJ;AACA,kBAAkB,cAAc;AAOzB,SAAS,iBACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO,mBAAmB;AAAA,IACxB,GAAG;AAAA,IACH,GAAI,OAAO,SAAY,CAAC,IAAI,EAAE,GAAG;AAAA,IACjC,kCAAkC;AAAA,IAClC,iCAAiC;AAAA,IACjC;AAAA,EACF,CAAqC;AACvC;AACA,iBAAiB,cAAc;AAOxB,SAAS,iBACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO,mBAAmB;AAAA,IACxB,GAAG;AAAA,IACH,GAAI,OAAO,SAAY,CAAC,IAAI,EAAE,GAAG;AAAA,IACjC,kCAAkC;AAAA,IAClC,iCAAiC;AAAA,IACjC;AAAA,EACF,CAAqC;AACvC;AACA,iBAAiB,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/alert-modal/AlertModalParts.tsx"],"sourcesContent":["import type { ElementType, ReactElement } from \"react\";\nimport { renderNativeInvoker } from \"@gunkin/uiify/core/render\";\nimport type {\n AlertModalActionProps,\n AlertModalCancelProps,\n AlertModalContentProps,\n AlertModalTriggerProps,\n} from \"./types.js\";\n\n/** Native alert modal invoker with alert-modal identity and trigger anatomy. */\nexport function AlertModalTrigger<TAs extends ElementType = \"button\">(\n props: AlertModalTriggerProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as AlertModalTriggerProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-alert-modal\",\n \"trigger\",\n \"show-modal\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true },\n );\n}\nAlertModalTrigger.displayName = \"AlertModalTrigger\";\n\n/** Native alert dialog content with alert-modal identity and content anatomy. */\nexport function AlertModalContent(props: AlertModalContentProps): ReactElement {\n const { children, ...dialogProps } = props;\n return (\n <dialog {...dialogProps} data-part=\"content\" data-uiify-alert-modal=\"\" role=\"alertdialog\">\n {children}\n </dialog>\n );\n}\nAlertModalContent.displayName = \"AlertModalContent\";\n\n/** Native alert modal action invoker. */\nexport function AlertModalAction<TAs extends ElementType = \"button\">(\n props: AlertModalActionProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as AlertModalActionProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-alert-modal\",\n \"action\",\n \"request-close\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true, variant: \"danger\" },\n );\n}\nAlertModalAction.displayName = \"AlertModalAction\";\n\n/** Native alert modal cancel invoker. */\nexport function AlertModalCancel<TAs extends ElementType = \"button\">(\n props: AlertModalCancelProps<TAs>,\n): ReactElement {\n const { as, target, ...consumerProps } = props as AlertModalCancelProps<\"button\">;\n return renderNativeInvoker(\n as,\n \"data-uiify-alert-modal\",\n \"cancel\",\n \"request-close\",\n target,\n consumerProps as Record<string, unknown>,\n { button: true, variant: \"ghost\" },\n );\n}\nAlertModalCancel.displayName = \"AlertModalCancel\";\n"],"mappings":"AA8BI;AA7BJ,SAAS,2BAA2B;AAS7B,SAAS,kBACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,QAAQ,KAAK;AAAA,EACjB;AACF;AACA,kBAAkB,cAAc;AAGzB,SAAS,kBAAkB,OAA6C;AAC7E,QAAM,EAAE,UAAU,GAAG,YAAY,IAAI;AACrC,SACE,oBAAC,YAAQ,GAAG,aAAa,aAAU,WAAU,0BAAuB,IAAG,MAAK,eACzE,UACH;AAEJ;AACA,kBAAkB,cAAc;AAGzB,SAAS,iBACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,QAAQ,MAAM,SAAS,SAAS;AAAA,EACpC;AACF;AACA,iBAAiB,cAAc;AAGxB,SAAS,iBACd,OACc;AACd,QAAM,EAAE,IAAI,QAAQ,GAAG,cAAc,IAAI;AACzC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,EAAE,QAAQ,MAAM,SAAS,QAAQ;AAAA,EACnC;AACF;AACA,iBAAiB,cAAc;","names":[]}
@@ -8,10 +8,7 @@ export interface AlertModalProps {
8
8
  readonly children?: ReactNode;
9
9
  readonly actionLabel?: ReactNode;
10
10
  readonly cancelLabel?: ReactNode;
11
- readonly triggerClassName?: string;
12
11
  readonly className?: string;
13
- readonly actionClassName?: string;
14
- readonly cancelClassName?: string;
15
12
  }
16
13
  export interface AlertModalTriggerOwnProps {
17
14
  readonly children?: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/alert-modal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,sBAAsB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,IAAI,iBAAiB,CACxF,GAAG,EACH,yBAAyB,CAC1B,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,qBAAqB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,IAAI,iBAAiB,CACvF,GAAG,EACH,wBAAwB,CACzB,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,qBAAqB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,IAAI,iBAAiB,CACvF,GAAG,EACH,wBAAwB,CACzB,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,sFAAsF;AACtF,MAAM,MAAM,sBAAsB,GAAG,yBAAyB,GAC5D,IAAI,CACF,qBAAqB,CAAC,QAAQ,CAAC,EAC/B,MAAM,yBAAyB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAC9D,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/alert-modal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,sBAAsB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,IAAI,iBAAiB,CACxF,GAAG,EACH,yBAAyB,CAC1B,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,qBAAqB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,IAAI,iBAAiB,CACvF,GAAG,EACH,wBAAwB,CACzB,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,qBAAqB,CAAC,GAAG,SAAS,WAAW,GAAG,QAAQ,IAAI,iBAAiB,CACvF,GAAG,EACH,wBAAwB,CACzB,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,sFAAsF;AACtF,MAAM,MAAM,sBAAsB,GAAG,yBAAyB,GAC5D,IAAI,CACF,qBAAqB,CAAC,QAAQ,CAAC,EAC/B,MAAM,yBAAyB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAC9D,CAAC"}
@@ -6,41 +6,84 @@
6
6
  dialog:modal {
7
7
  overscroll-behavior: contain;
8
8
  }
9
- [data-uiify-modal-scope]:has(> dialog[open]) > [data-uiify-modal-trigger],
10
- [data-uiify-alert-modal-scope]:has(> dialog[open]) > [data-uiify-alert-modal-trigger],
11
- [data-uiify-popup-scope]:has(> :popover-open) > [data-uiify-popup-trigger],
12
- [data-uiify-popover-scope]:has(> :popover-open) > [data-uiify-popover-trigger] {
9
+ dialog:not([open]) {
10
+ display: none;
11
+ }
12
+ [data-anchor]:not([data-positioning]) {
13
+ anchor-name: var(--uiify-anchor, attr(data-anchor type(<custom-ident>)));
14
+ }
15
+ [data-positioning=native] {
16
+ position: fixed;
17
+ inset: auto;
18
+ margin: 0;
19
+ position-try-fallbacks: flip-block, flip-inline;
20
+ }
21
+ [data-positioning=native][data-anchor] {
22
+ position-anchor: var(--uiify-anchor, attr(data-anchor type(<custom-ident>)));
23
+ }
24
+ [data-positioning=native][data-side=top] {
25
+ position-area: top;
26
+ margin-block-end: var(--uiify-anchor-offset, 0);
27
+ }
28
+ [data-positioning=native][data-side=right] {
29
+ position-area: right;
30
+ margin-inline-start: var(--uiify-anchor-offset, 0);
31
+ }
32
+ [data-positioning=native][data-side=bottom] {
33
+ position-area: bottom;
34
+ margin-block-start: var(--uiify-anchor-offset, 0);
35
+ }
36
+ [data-positioning=native][data-side=left] {
37
+ position-area: left;
38
+ margin-inline-end: var(--uiify-anchor-offset, 0);
39
+ }
40
+ [data-positioning=native][data-side=top][data-align=start] {
41
+ position-area: top span-right;
42
+ justify-self: start;
43
+ }
44
+ [data-positioning=native][data-side=top][data-align=end] {
45
+ position-area: top span-left;
46
+ justify-self: end;
47
+ }
48
+ [data-positioning=native][data-side=bottom][data-align=start] {
49
+ position-area: bottom span-right;
50
+ justify-self: start;
51
+ }
52
+ [data-positioning=native][data-side=bottom][data-align=end] {
53
+ position-area: bottom span-left;
54
+ justify-self: end;
55
+ }
56
+ [data-positioning=native][data-side=right][data-align=start] {
57
+ align-self: start;
58
+ position-area: right span-bottom;
59
+ }
60
+ [data-positioning=native][data-side=right][data-align=end] {
61
+ align-self: end;
62
+ position-area: right span-top;
63
+ }
64
+ [data-positioning=native][data-side=left][data-align=start] {
65
+ align-self: start;
66
+ position-area: left span-bottom;
67
+ }
68
+ [data-positioning=native][data-side=left][data-align=end] {
69
+ align-self: end;
70
+ position-area: left span-top;
71
+ }
72
+ [data-uiify-modal][data-part=root]:has(> [data-uiify-modal][data-part=content][open]) > [data-uiify-modal][data-part=trigger],
73
+ [data-uiify-alert-modal][data-part=root]:has(> [data-uiify-alert-modal][data-part=content][open]) > [data-uiify-alert-modal][data-part=trigger],
74
+ [data-uiify-popup][data-part=root]:has(> [data-uiify-popup][data-part=content]:popover-open) > [data-uiify-popup][data-part=trigger] {
13
75
  --uiify-trigger-open: 1;
14
76
  }
15
- [data-uiify-accordion-item][data-disabled] > summary,
77
+ [data-uiify-accordion] > [data-part=item][data-disabled] > summary,
16
78
  [data-uiify-collapsible][data-disabled] > summary {
17
79
  cursor: not-allowed;
18
80
  pointer-events: none;
19
81
  }
20
- .uiify-select,
21
- .uiify-select::picker(select) {
82
+ [data-uiify-select],
83
+ [data-uiify-select]::picker(select) {
22
84
  appearance: base-select;
23
85
  }
24
- @media (prefers-reduced-motion: no-preference) {
25
- @starting-style {
26
- [popover]:popover-open {
27
- opacity: 0;
28
- scale: 0.96;
29
- }
30
- }
31
- [popover] {
32
- transition:
33
- opacity var(--duration-fast, 150ms) ease-out,
34
- scale var(--duration-fast, 150ms) ease-out,
35
- display var(--duration-fast, 150ms) allow-discrete,
36
- overlay var(--duration-fast, 150ms) allow-discrete;
37
- }
38
- [popover]:popover-open {
39
- opacity: 1;
40
- scale: 1;
41
- }
42
- }
43
- [data-uiify-tabs-input] {
86
+ [data-uiify-tabs] > [data-part=item] > [data-part=control] {
44
87
  position: absolute;
45
88
  width: 1px;
46
89
  height: 1px;
@@ -52,19 +95,19 @@
52
95
  white-space: nowrap;
53
96
  border: 0;
54
97
  }
55
- [data-uiify-tabs-panel] {
98
+ [data-uiify-tabs] > [data-part=item] > [data-part=panel] {
56
99
  display: none;
57
100
  }
58
- [data-uiify-tabs-input]:checked ~ [data-uiify-tabs-panel] {
101
+ [data-uiify-tabs] > [data-part=item] > [data-part=control]:checked ~ [data-part=panel] {
59
102
  display: block;
60
103
  }
61
- [data-uiify-stepper-panel] {
104
+ [data-uiify-stepper] > [data-part=step] > [data-part=panel] {
62
105
  display: none;
63
106
  }
64
- [data-uiify-stepper-input]:checked ~ [data-uiify-stepper-panel] {
107
+ [data-uiify-stepper] > [data-part=step] > [data-part=control]:checked ~ [data-part=panel] {
65
108
  display: block;
66
109
  }
67
- [data-uiify-tabs-trigger][data-disabled] {
110
+ [data-uiify-tabs] [data-part=trigger][data-disabled] {
68
111
  cursor: not-allowed;
69
112
  pointer-events: none;
70
113
  }
@@ -80,52 +123,52 @@
80
123
  visibility: visible;
81
124
  }
82
125
  }
83
- [data-uiify-breadcrumb-ellipsis] > ol {
126
+ [data-uiify-breadcrumb] [data-part=ellipsis] > ol {
84
127
  list-style: none;
85
128
  margin: 0;
86
129
  padding: 0;
87
130
  }
88
- [data-uiify-carousel] > [data-uiify-carousel-viewport] {
131
+ [data-uiify-carousel] > [data-part=viewport] {
89
132
  display: grid;
90
133
  min-inline-size: 0;
91
134
  min-block-size: 0;
92
135
  gap: var(--uiify-carousel-gap, 0);
93
136
  scroll-behavior: auto;
94
137
  }
95
- [data-uiify-carousel][data-axis=inline] > [data-uiify-carousel-viewport] {
138
+ [data-uiify-carousel][data-axis=inline] > [data-part=viewport] {
96
139
  grid-auto-flow: column;
97
140
  grid-auto-columns: var(--uiify-carousel-slide-size, 100%);
98
141
  overflow-inline: auto;
99
142
  overflow-block: hidden;
100
143
  scroll-snap-type: inline mandatory;
101
144
  }
102
- [data-uiify-carousel][data-axis=block] > [data-uiify-carousel-viewport] {
145
+ [data-uiify-carousel][data-axis=block] > [data-part=viewport] {
103
146
  grid-auto-flow: row;
104
147
  grid-auto-rows: var(--uiify-carousel-slide-size, 100%);
105
148
  overflow-block: auto;
106
149
  overflow-inline: hidden;
107
150
  scroll-snap-type: block mandatory;
108
151
  }
109
- [data-uiify-carousel] > [data-uiify-carousel-viewport] > [data-uiify-carousel-slide] {
152
+ [data-uiify-carousel] > [data-part=viewport] > [data-part=slide] {
110
153
  min-inline-size: 0;
111
154
  min-block-size: 0;
112
155
  scroll-snap-align: start;
113
156
  }
114
- [data-uiify-carousel] > [data-uiify-carousel-viewport]:focus-visible,
115
- [data-uiify-carousel] > button[data-uiify-carousel-controls]:focus-visible,
116
- [data-uiify-carousel] > [data-uiify-carousel-dots] > a:focus-visible {
157
+ [data-uiify-carousel] > [data-part=viewport]:focus-visible,
158
+ [data-uiify-carousel] > button[data-part=controls]:focus-visible,
159
+ [data-uiify-carousel] > [data-part=dots] > a:focus-visible {
117
160
  outline: auto;
118
161
  }
119
162
  @media (prefers-reduced-motion: no-preference) {
120
- [data-uiify-carousel] > [data-uiify-carousel-viewport] {
163
+ [data-uiify-carousel] > [data-part=viewport] {
121
164
  scroll-behavior: smooth;
122
165
  }
123
166
  }
124
- [data-uiify-carousel] > [data-uiify-carousel-viewport][data-dragging] {
167
+ [data-uiify-carousel] > [data-part=viewport][data-dragging] {
125
168
  scroll-behavior: auto;
126
169
  scroll-snap-type: none;
127
170
  }
128
- [data-uiify-carousel][data-mode=fade][data-enhanced] > [data-uiify-carousel-viewport] {
171
+ [data-uiify-carousel][data-mode=fade][data-enhanced] > [data-part=viewport] {
129
172
  grid-auto-flow: row;
130
173
  grid-template-columns: 100%;
131
174
  grid-auto-columns: auto;
@@ -133,17 +176,17 @@
133
176
  scroll-snap-type: none;
134
177
  touch-action: pan-y pinch-zoom;
135
178
  }
136
- [data-uiify-carousel][data-mode=fade][data-enhanced] > [data-uiify-carousel-viewport] > [data-uiify-carousel-slide] {
179
+ [data-uiify-carousel][data-mode=fade][data-enhanced] > [data-part=viewport] > [data-part=slide] {
137
180
  grid-area: 1 / 1;
138
181
  opacity: 0;
139
182
  pointer-events: none;
140
183
  }
141
- [data-uiify-carousel][data-mode=fade][data-enhanced] > [data-uiify-carousel-viewport] > [data-uiify-carousel-slide][data-state=active] {
184
+ [data-uiify-carousel][data-mode=fade][data-enhanced] > [data-part=viewport] > [data-part=slide][data-state=active] {
142
185
  opacity: 1;
143
186
  pointer-events: auto;
144
187
  }
145
188
  @media (prefers-reduced-motion: no-preference) {
146
- [data-uiify-carousel][data-mode=fade][data-enhanced] > [data-uiify-carousel-viewport] > [data-uiify-carousel-slide] {
189
+ [data-uiify-carousel][data-mode=fade][data-enhanced] > [data-part=viewport] > [data-part=slide] {
147
190
  transition: opacity var(--uiify-carousel-fade-duration, 300ms) ease;
148
191
  }
149
192
  }
@@ -151,11 +194,11 @@
151
194
  --uiify-virtual-scroll-row-height: 64px;
152
195
  overflow-y: auto;
153
196
  }
154
- [data-uiify-virtual-scroll] [data-uiify-virtual-scroll-spacer] {
197
+ [data-uiify-virtual-scroll] > [data-part=spacer] {
155
198
  position: relative;
156
199
  block-size: var( --uiify-virtual-scroll-total-size, calc(var(--uiify-virtual-scroll-count, 0) * var(--uiify-virtual-scroll-row-height)) );
157
200
  }
158
- [data-uiify-virtual-scroll] [data-uiify-virtual-scroll-row] {
201
+ [data-uiify-virtual-scroll] [data-part=row] {
159
202
  position: absolute;
160
203
  inset-inline: 0;
161
204
  block-size: var(--uiify-row-height, var(--uiify-virtual-scroll-row-height));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/behavior.css"],"sourcesContent":["/* Behavioral rules for @gunkin/uiify/components — zero visual opinion.\n * Import is required: @import \"@gunkin/uiify/components/behavior.css\";\n * Cascade order: consumer app layer wins without specificity fights. */\n@layer ui.reset, ui.behavior, ui.tokens, ui.theme, app;\n\n@layer ui.behavior {\n [popover]:not(:popover-open) {\n display: none;\n }\n\n /* Native modal dialogs: wheel/touch scrolling inside the dialog must not chain to the page behind it. */\n dialog:modal {\n overscroll-behavior: contain;\n }\n\n /*\n * Local open-state hooks. Top layer does not change DOM ancestry, so a scope\n * that directly contains its surface can read the native state. Consumers\n * style with the selector or with the variable; neither is a second source of truth.\n *\n * `modal`/`alert-modal` (formerly `dialog`/`alert-dialog`) emit both their\n * new scope attribute and the deprecated one for one major, so selecting on\n * the new name alone is enough. `popup`'s scope div is consumer-authored\n * (there is no Root wrapper for the native parts — see\n * docs/guides/native-composition.md), so existing markup keeps writing the\n * deprecated `data-uiify-popover-scope`; both selectors stay until that\n * compatibility window.\n */\n [data-uiify-modal-scope]:has(> dialog[open]) > [data-uiify-modal-trigger],\n [data-uiify-alert-modal-scope]:has(> dialog[open]) > [data-uiify-alert-modal-trigger],\n [data-uiify-popup-scope]:has(> :popover-open) > [data-uiify-popup-trigger],\n [data-uiify-popover-scope]:has(> :popover-open) > [data-uiify-popover-trigger] {\n --uiify-trigger-open: 1;\n }\n\n [data-uiify-accordion-item][data-disabled] > summary,\n [data-uiify-collapsible][data-disabled] > summary {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* Customizable select: opts the control and its picker into the browser's\n base styles so the picker becomes a styleable, top-layer popover with\n implicit anchor positioning. Behavior only — no visual opinion. Engines\n without support ignore this and keep the classic OS picker, which stays\n fully functional. */\n .uiify-select,\n .uiify-select::picker(select) {\n appearance: base-select;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n @starting-style {\n [popover]:popover-open {\n opacity: 0;\n scale: 0.96;\n }\n }\n\n [popover] {\n transition:\n opacity var(--duration-fast, 150ms) ease-out,\n scale var(--duration-fast, 150ms) ease-out,\n display var(--duration-fast, 150ms) allow-discrete,\n overlay var(--duration-fast, 150ms) allow-discrete;\n }\n\n [popover]:popover-open {\n opacity: 1;\n scale: 1;\n }\n }\n\n [data-uiify-tabs-input] {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n /* stylelint-disable-next-line property-no-deprecated -- kept for older browser support alongside clip-path */\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n [data-uiify-tabs-panel] {\n display: none;\n }\n\n [data-uiify-tabs-input]:checked ~ [data-uiify-tabs-panel] {\n display: block;\n }\n\n [data-uiify-stepper-panel] {\n display: none;\n }\n\n [data-uiify-stepper-input]:checked ~ [data-uiify-stepper-panel] {\n display: block;\n }\n\n [data-uiify-tabs-trigger][data-disabled] {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n [data-uiify-spinner][data-state=\"delayed\"] {\n animation-name: uiify-spinner-show;\n animation-duration: 0s;\n animation-delay: attr(data-delay type(<time>), 0s);\n animation-fill-mode: forwards;\n visibility: hidden;\n }\n\n @keyframes uiify-spinner-show {\n to {\n visibility: visible;\n }\n }\n\n [data-uiify-breadcrumb-ellipsis] > ol {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n [data-uiify-carousel] > [data-uiify-carousel-viewport] {\n display: grid;\n min-inline-size: 0;\n min-block-size: 0;\n gap: var(--uiify-carousel-gap, 0);\n scroll-behavior: auto;\n }\n\n [data-uiify-carousel][data-axis=\"inline\"] > [data-uiify-carousel-viewport] {\n grid-auto-flow: column;\n grid-auto-columns: var(--uiify-carousel-slide-size, 100%);\n overflow-inline: auto;\n overflow-block: hidden;\n scroll-snap-type: inline mandatory;\n }\n\n [data-uiify-carousel][data-axis=\"block\"] > [data-uiify-carousel-viewport] {\n grid-auto-flow: row;\n grid-auto-rows: var(--uiify-carousel-slide-size, 100%);\n overflow-block: auto;\n overflow-inline: hidden;\n scroll-snap-type: block mandatory;\n }\n\n [data-uiify-carousel] > [data-uiify-carousel-viewport] > [data-uiify-carousel-slide] {\n min-inline-size: 0;\n min-block-size: 0;\n scroll-snap-align: start;\n }\n\n [data-uiify-carousel] > [data-uiify-carousel-viewport]:focus-visible,\n [data-uiify-carousel] > button[data-uiify-carousel-controls]:focus-visible,\n [data-uiify-carousel] > [data-uiify-carousel-dots] > a:focus-visible {\n outline: auto;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n [data-uiify-carousel] > [data-uiify-carousel-viewport] {\n scroll-behavior: smooth;\n }\n }\n\n [data-uiify-carousel] > [data-uiify-carousel-viewport][data-dragging] {\n scroll-behavior: auto;\n scroll-snap-type: none;\n }\n\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced] > [data-uiify-carousel-viewport] {\n grid-auto-flow: row;\n grid-template-columns: 100%;\n grid-auto-columns: auto;\n overflow: hidden;\n scroll-snap-type: none;\n touch-action: pan-y pinch-zoom;\n }\n\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced]\n > [data-uiify-carousel-viewport]\n > [data-uiify-carousel-slide] {\n grid-area: 1 / 1;\n opacity: 0;\n pointer-events: none;\n }\n\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced]\n > [data-uiify-carousel-viewport]\n > [data-uiify-carousel-slide][data-state=\"active\"] {\n opacity: 1;\n pointer-events: auto;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced]\n > [data-uiify-carousel-viewport]\n > [data-uiify-carousel-slide] {\n transition: opacity var(--uiify-carousel-fade-duration, 300ms) ease;\n }\n }\n\n [data-uiify-virtual-scroll] {\n --uiify-virtual-scroll-row-height: 64px;\n\n overflow-y: auto;\n }\n\n [data-uiify-virtual-scroll] [data-uiify-virtual-scroll-spacer] {\n position: relative;\n block-size: var(\n --uiify-virtual-scroll-total-size,\n calc(var(--uiify-virtual-scroll-count, 0) * var(--uiify-virtual-scroll-row-height))\n );\n }\n\n [data-uiify-virtual-scroll] [data-uiify-virtual-scroll-row] {\n position: absolute;\n inset-inline: 0;\n block-size: var(--uiify-row-height, var(--uiify-virtual-scroll-row-height));\n translate: 0\n var(\n --uiify-row-offset,\n calc(\n (var(--uiify-range-start, 0) + var(--uiify-slot-index, 0)) *\n var(--uiify-virtual-scroll-row-height)\n )\n );\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/components/behavior.css"],"sourcesContent":["/* Behavioral rules for @gunkin/uiify/components — zero visual opinion.\n * Import is required: @import \"@gunkin/uiify/components/behavior.css\";\n * Cascade order: consumer app layer wins without specificity fights. */\n@layer ui.reset, ui.behavior, ui.tokens, ui.theme, app;\n\n@layer ui.behavior {\n [popover]:not(:popover-open) {\n display: none;\n }\n\n /* Native modal dialogs: wheel/touch scrolling inside the dialog must not chain to the page behind it. */\n dialog:modal {\n overscroll-behavior: contain;\n }\n\n /* Closed dialogs stay hidden even when author CSS sets display. */\n dialog:not([open]) {\n display: none;\n }\n\n [data-anchor]:not([data-positioning]) {\n anchor-name: var(--uiify-anchor, attr(data-anchor type(<custom-ident>)));\n }\n\n [data-positioning=\"native\"] {\n position: fixed;\n inset: auto;\n margin: 0;\n position-try-fallbacks: flip-block, flip-inline;\n }\n\n [data-positioning=\"native\"][data-anchor] {\n position-anchor: var(--uiify-anchor, attr(data-anchor type(<custom-ident>)));\n }\n\n [data-positioning=\"native\"][data-side=\"top\"] {\n position-area: top;\n margin-block-end: var(--uiify-anchor-offset, 0);\n }\n\n [data-positioning=\"native\"][data-side=\"right\"] {\n position-area: right;\n margin-inline-start: var(--uiify-anchor-offset, 0);\n }\n\n [data-positioning=\"native\"][data-side=\"bottom\"] {\n position-area: bottom;\n margin-block-start: var(--uiify-anchor-offset, 0);\n }\n\n [data-positioning=\"native\"][data-side=\"left\"] {\n position-area: left;\n margin-inline-end: var(--uiify-anchor-offset, 0);\n }\n\n [data-positioning=\"native\"][data-side=\"top\"][data-align=\"start\"] {\n position-area: top span-right;\n justify-self: start;\n }\n\n [data-positioning=\"native\"][data-side=\"top\"][data-align=\"end\"] {\n position-area: top span-left;\n justify-self: end;\n }\n\n [data-positioning=\"native\"][data-side=\"bottom\"][data-align=\"start\"] {\n position-area: bottom span-right;\n justify-self: start;\n }\n\n [data-positioning=\"native\"][data-side=\"bottom\"][data-align=\"end\"] {\n position-area: bottom span-left;\n justify-self: end;\n }\n\n [data-positioning=\"native\"][data-side=\"right\"][data-align=\"start\"] {\n align-self: start;\n position-area: right span-bottom;\n }\n\n [data-positioning=\"native\"][data-side=\"right\"][data-align=\"end\"] {\n align-self: end;\n position-area: right span-top;\n }\n\n [data-positioning=\"native\"][data-side=\"left\"][data-align=\"start\"] {\n align-self: start;\n position-area: left span-bottom;\n }\n\n [data-positioning=\"native\"][data-side=\"left\"][data-align=\"end\"] {\n align-self: end;\n position-area: left span-top;\n }\n\n /*\n * Local open-state hooks. Top layer does not change DOM ancestry, so a scope\n * that directly contains its surface can read the native state. Consumers\n * style with the selector or with the variable; neither is a second source of truth.\n *\n * Compound roots and their public trigger parts share one component identity plus\n * `data-part`, so native state stays readable without a second scope convention.\n */\n [data-uiify-modal][data-part=\"root\"]:has(> [data-uiify-modal][data-part=\"content\"][open])\n > [data-uiify-modal][data-part=\"trigger\"],\n [data-uiify-alert-modal][data-part=\"root\"]:has(\n > [data-uiify-alert-modal][data-part=\"content\"][open]\n )\n > [data-uiify-alert-modal][data-part=\"trigger\"],\n [data-uiify-popup][data-part=\"root\"]:has(> [data-uiify-popup][data-part=\"content\"]:popover-open)\n > [data-uiify-popup][data-part=\"trigger\"] {\n --uiify-trigger-open: 1;\n }\n\n [data-uiify-accordion] > [data-part=\"item\"][data-disabled] > summary,\n [data-uiify-collapsible][data-disabled] > summary {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* Customizable select: opts the control and its picker into the browser's\n base styles so the picker becomes a styleable, top-layer popover with\n implicit anchor positioning. Behavior only — no visual opinion. Engines\n without support ignore this and keep the classic OS picker, which stays\n fully functional. */\n [data-uiify-select],\n [data-uiify-select]::picker(select) {\n appearance: base-select;\n }\n\n [data-uiify-tabs] > [data-part=\"item\"] > [data-part=\"control\"] {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n /* stylelint-disable-next-line property-no-deprecated -- kept for older browser support alongside clip-path */\n clip: rect(0, 0, 0, 0);\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n [data-uiify-tabs] > [data-part=\"item\"] > [data-part=\"panel\"] {\n display: none;\n }\n\n [data-uiify-tabs] > [data-part=\"item\"] > [data-part=\"control\"]:checked ~ [data-part=\"panel\"] {\n display: block;\n }\n\n [data-uiify-stepper] > [data-part=\"step\"] > [data-part=\"panel\"] {\n display: none;\n }\n\n [data-uiify-stepper] > [data-part=\"step\"] > [data-part=\"control\"]:checked ~ [data-part=\"panel\"] {\n display: block;\n }\n\n [data-uiify-tabs] [data-part=\"trigger\"][data-disabled] {\n cursor: not-allowed;\n pointer-events: none;\n }\n\n [data-uiify-spinner][data-state=\"delayed\"] {\n animation-name: uiify-spinner-show;\n animation-duration: 0s;\n animation-delay: attr(data-delay type(<time>), 0s);\n animation-fill-mode: forwards;\n visibility: hidden;\n }\n\n @keyframes uiify-spinner-show {\n to {\n visibility: visible;\n }\n }\n\n [data-uiify-breadcrumb] [data-part=\"ellipsis\"] > ol {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n [data-uiify-carousel] > [data-part=\"viewport\"] {\n display: grid;\n min-inline-size: 0;\n min-block-size: 0;\n gap: var(--uiify-carousel-gap, 0);\n scroll-behavior: auto;\n }\n\n [data-uiify-carousel][data-axis=\"inline\"] > [data-part=\"viewport\"] {\n grid-auto-flow: column;\n grid-auto-columns: var(--uiify-carousel-slide-size, 100%);\n overflow-inline: auto;\n overflow-block: hidden;\n scroll-snap-type: inline mandatory;\n }\n\n [data-uiify-carousel][data-axis=\"block\"] > [data-part=\"viewport\"] {\n grid-auto-flow: row;\n grid-auto-rows: var(--uiify-carousel-slide-size, 100%);\n overflow-block: auto;\n overflow-inline: hidden;\n scroll-snap-type: block mandatory;\n }\n\n [data-uiify-carousel] > [data-part=\"viewport\"] > [data-part=\"slide\"] {\n min-inline-size: 0;\n min-block-size: 0;\n scroll-snap-align: start;\n }\n\n [data-uiify-carousel] > [data-part=\"viewport\"]:focus-visible,\n [data-uiify-carousel] > button[data-part=\"controls\"]:focus-visible,\n [data-uiify-carousel] > [data-part=\"dots\"] > a:focus-visible {\n outline: auto;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n [data-uiify-carousel] > [data-part=\"viewport\"] {\n scroll-behavior: smooth;\n }\n }\n\n [data-uiify-carousel] > [data-part=\"viewport\"][data-dragging] {\n scroll-behavior: auto;\n scroll-snap-type: none;\n }\n\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced] > [data-part=\"viewport\"] {\n grid-auto-flow: row;\n grid-template-columns: 100%;\n grid-auto-columns: auto;\n overflow: hidden;\n scroll-snap-type: none;\n touch-action: pan-y pinch-zoom;\n }\n\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced]\n > [data-part=\"viewport\"]\n > [data-part=\"slide\"] {\n grid-area: 1 / 1;\n opacity: 0;\n pointer-events: none;\n }\n\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced]\n > [data-part=\"viewport\"]\n > [data-part=\"slide\"][data-state=\"active\"] {\n opacity: 1;\n pointer-events: auto;\n }\n\n @media (prefers-reduced-motion: no-preference) {\n [data-uiify-carousel][data-mode=\"fade\"][data-enhanced]\n > [data-part=\"viewport\"]\n > [data-part=\"slide\"] {\n transition: opacity var(--uiify-carousel-fade-duration, 300ms) ease;\n }\n }\n\n [data-uiify-virtual-scroll] {\n --uiify-virtual-scroll-row-height: 64px;\n\n overflow-y: auto;\n }\n\n [data-uiify-virtual-scroll] > [data-part=\"spacer\"] {\n position: relative;\n block-size: var(\n --uiify-virtual-scroll-total-size,\n calc(var(--uiify-virtual-scroll-count, 0) * var(--uiify-virtual-scroll-row-height))\n );\n }\n\n [data-uiify-virtual-scroll] [data-part=\"row\"] {\n position: absolute;\n inset-inline: 0;\n block-size: var(--uiify-row-height, var(--uiify-virtual-scroll-row-height));\n translate: 0\n var(\n --uiify-row-offset,\n calc(\n (var(--uiify-range-start, 0) + var(--uiify-slot-index, 0)) *\n var(--uiify-virtual-scroll-row-height)\n )\n );\n }\n}\n"],"mappings":"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","names":[]}
@@ -126,7 +126,7 @@ function BreadcrumbSeparator(props) {
126
126
  }
127
127
  function BreadcrumbEllipsis({ hiddenItems, separator }) {
128
128
  return /* @__PURE__ */ jsxs(BreadcrumbItem, { children: [
129
- /* @__PURE__ */ jsxs(DetailsRoot, { "data-uiify-breadcrumb-ellipsis": "", children: [
129
+ /* @__PURE__ */ jsxs(DetailsRoot, { "data-part": "ellipsis", "data-uiify-breadcrumb": "", children: [
130
130
  /* @__PURE__ */ jsx(DetailsSummary, { "aria-label": "Show collapsed breadcrumbs", children: "\u2026" }),
131
131
  /* @__PURE__ */ jsx(DetailsContent, { as: "ol", children: hiddenItems.map((item) => /* @__PURE__ */ jsx(
132
132
  BreadcrumbLink,