@gunkin/uiify 0.0.12-alpha → 0.0.13-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 (219) hide show
  1. package/dist/components/behavior.css +9 -6
  2. package/dist/components/behavior.css.map +1 -1
  3. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -1
  4. package/dist/components/breadcrumb/Breadcrumb.js +5 -4
  5. package/dist/components/breadcrumb/Breadcrumb.js.map +1 -1
  6. package/dist/components/carousel/CarouselMarkup.d.ts.map +1 -1
  7. package/dist/components/carousel/CarouselMarkup.js +2 -1
  8. package/dist/components/carousel/CarouselMarkup.js.map +1 -1
  9. package/dist/components/carousel/client/CarouselClientView.d.ts.map +1 -1
  10. package/dist/components/carousel/client/CarouselClientView.js +1 -0
  11. package/dist/components/carousel/client/CarouselClientView.js.map +1 -1
  12. package/dist/components/carousel/client/carousel-controller.d.ts.map +1 -1
  13. package/dist/components/carousel/client/carousel-controller.js +25 -4
  14. package/dist/components/carousel/client/carousel-controller.js.map +1 -1
  15. package/dist/components/carousel/client/carousel-observer.d.ts.map +1 -1
  16. package/dist/components/carousel/client/carousel-observer.js +40 -0
  17. package/dist/components/carousel/client/carousel-observer.js.map +1 -1
  18. package/dist/components/carousel/fade/fade-controller.d.ts.map +1 -1
  19. package/dist/components/carousel/fade/fade-controller.js +3 -0
  20. package/dist/components/carousel/fade/fade-controller.js.map +1 -1
  21. package/dist/components/carousel/types.d.ts +2 -0
  22. package/dist/components/carousel/types.d.ts.map +1 -1
  23. package/dist/components/checkbox/Checkbox.d.ts +1 -6
  24. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  25. package/dist/components/checkbox/Checkbox.js +2 -52
  26. package/dist/components/checkbox/Checkbox.js.map +1 -1
  27. package/dist/components/drawer/Drawer.d.ts +1 -1
  28. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  29. package/dist/components/drawer/Drawer.js +46 -9
  30. package/dist/components/drawer/Drawer.js.map +1 -1
  31. package/dist/components/drawer/DrawerNative.d.ts +8 -16
  32. package/dist/components/drawer/DrawerNative.d.ts.map +1 -1
  33. package/dist/components/drawer/DrawerNative.js +80 -34
  34. package/dist/components/drawer/DrawerNative.js.map +1 -1
  35. package/dist/components/drawer/drawer-store.d.ts +1 -1
  36. package/dist/components/drawer/drawer-store.d.ts.map +1 -1
  37. package/dist/components/drawer/drawer-store.js +7 -3
  38. package/dist/components/drawer/drawer-store.js.map +1 -1
  39. package/dist/components/drawer/index.d.ts +3 -3
  40. package/dist/components/drawer/index.d.ts.map +1 -1
  41. package/dist/components/drawer/index.js +9 -1
  42. package/dist/components/drawer/index.js.map +1 -1
  43. package/dist/components/drawer/types.d.ts +114 -3
  44. package/dist/components/drawer/types.d.ts.map +1 -1
  45. package/dist/components/dropdown-menu/DropdownMenu.d.ts.map +1 -1
  46. package/dist/components/dropdown-menu/DropdownMenu.js +1 -0
  47. package/dist/components/dropdown-menu/DropdownMenu.js.map +1 -1
  48. package/dist/components/enhance/dialog-dismiss.d.ts +1 -1
  49. package/dist/components/enhance/dialog-dismiss.d.ts.map +1 -1
  50. package/dist/components/enhance/dialog-dismiss.js +19 -10
  51. package/dist/components/enhance/dialog-dismiss.js.map +1 -1
  52. package/dist/components/enhance/internal/box-observer.d.ts +4 -0
  53. package/dist/components/enhance/internal/box-observer.d.ts.map +1 -0
  54. package/dist/components/enhance/internal/box-observer.js +32 -0
  55. package/dist/components/enhance/internal/box-observer.js.map +1 -0
  56. package/dist/components/enhance/sheet-swipe.d.ts.map +1 -1
  57. package/dist/components/enhance/sheet-swipe.js +42 -14
  58. package/dist/components/enhance/sheet-swipe.js.map +1 -1
  59. package/dist/components/enhance/types.d.ts +5 -0
  60. package/dist/components/enhance/types.d.ts.map +1 -0
  61. package/dist/components/field/Field.d.ts.map +1 -1
  62. package/dist/components/field/Field.js +1 -0
  63. package/dist/components/field/Field.js.map +1 -1
  64. package/dist/components/file-upload/FileUpload.d.ts +4 -7
  65. package/dist/components/file-upload/FileUpload.d.ts.map +1 -1
  66. package/dist/components/file-upload/FileUpload.js +28 -122
  67. package/dist/components/file-upload/FileUpload.js.map +1 -1
  68. package/dist/components/file-upload/FileUploadInput.d.ts +7 -0
  69. package/dist/components/file-upload/FileUploadInput.d.ts.map +1 -0
  70. package/dist/components/file-upload/FileUploadInput.js +60 -0
  71. package/dist/components/file-upload/FileUploadInput.js.map +1 -0
  72. package/dist/components/file-upload/FileUploadRoot.d.ts +8 -0
  73. package/dist/components/file-upload/FileUploadRoot.d.ts.map +1 -0
  74. package/dist/components/file-upload/FileUploadRoot.js +70 -0
  75. package/dist/components/file-upload/FileUploadRoot.js.map +1 -0
  76. package/dist/components/file-upload/file-upload-context.d.ts +3 -0
  77. package/dist/components/file-upload/file-upload-context.d.ts.map +1 -0
  78. package/dist/components/file-upload/file-upload-context.js +8 -0
  79. package/dist/components/file-upload/file-upload-context.js.map +1 -0
  80. package/dist/components/file-upload/index.d.ts +1 -1
  81. package/dist/components/file-upload/index.d.ts.map +1 -1
  82. package/dist/components/file-upload/index.js.map +1 -1
  83. package/dist/components/file-upload/types.d.ts +8 -10
  84. package/dist/components/file-upload/types.d.ts.map +1 -1
  85. package/dist/components/form/Form.d.ts.map +1 -1
  86. package/dist/components/form/Form.js +2 -1
  87. package/dist/components/form/Form.js.map +1 -1
  88. package/dist/components/hover-card/HoverCard.js +1 -1
  89. package/dist/components/hover-card/HoverCard.js.map +1 -1
  90. package/dist/components/index.d.ts +0 -1
  91. package/dist/components/index.d.ts.map +1 -1
  92. package/dist/components/index.js +0 -1
  93. package/dist/components/index.js.map +1 -1
  94. package/dist/components/input/Input.d.ts.map +1 -1
  95. package/dist/components/input/Input.js +1 -1
  96. package/dist/components/input/Input.js.map +1 -1
  97. package/dist/components/internal/choice-family/ChoiceGroup.js +1 -1
  98. package/dist/components/internal/choice-family/ChoiceGroup.js.map +1 -1
  99. package/dist/components/internal/choice-family/types.d.ts +3 -3
  100. package/dist/components/internal/choice-family/types.d.ts.map +1 -1
  101. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts +7 -0
  102. package/dist/components/internal/native-check-control/NativeCheckControl.d.ts.map +1 -0
  103. package/dist/components/internal/native-check-control/NativeCheckControl.js +56 -0
  104. package/dist/components/internal/native-check-control/NativeCheckControl.js.map +1 -0
  105. package/dist/components/internal/native-check-control/types.d.ts +13 -0
  106. package/dist/components/internal/native-check-control/types.d.ts.map +1 -0
  107. package/dist/components/internal/native-check-control/types.js +1 -0
  108. package/dist/components/number-field/NumberField.d.ts.map +1 -1
  109. package/dist/components/number-field/NumberField.js +11 -2
  110. package/dist/components/number-field/NumberField.js.map +1 -1
  111. package/dist/components/number-field/format.d.ts +1 -0
  112. package/dist/components/number-field/format.d.ts.map +1 -1
  113. package/dist/components/number-field/format.js +18 -6
  114. package/dist/components/number-field/format.js.map +1 -1
  115. package/dist/components/popup/PopupParts.d.ts.map +1 -1
  116. package/dist/components/popup/PopupParts.js +2 -0
  117. package/dist/components/popup/PopupParts.js.map +1 -1
  118. package/dist/components/select/Select.d.ts.map +1 -1
  119. package/dist/components/select/Select.js +1 -1
  120. package/dist/components/select/Select.js.map +1 -1
  121. package/dist/components/skeleton/Skeleton.d.ts.map +1 -1
  122. package/dist/components/skeleton/Skeleton.js +14 -35
  123. package/dist/components/skeleton/Skeleton.js.map +1 -1
  124. package/dist/components/skeleton/types.d.ts +1 -8
  125. package/dist/components/skeleton/types.d.ts.map +1 -1
  126. package/dist/components/table/Table.d.ts +1 -40
  127. package/dist/components/table/Table.d.ts.map +1 -1
  128. package/dist/components/table/Table.js +9 -259
  129. package/dist/components/table/Table.js.map +1 -1
  130. package/dist/components/table/TableShell.d.ts +5 -1
  131. package/dist/components/table/TableShell.d.ts.map +1 -1
  132. package/dist/components/table/TableShell.js +63 -9
  133. package/dist/components/table/TableShell.js.map +1 -1
  134. package/dist/components/table/client/Table.d.ts +30 -0
  135. package/dist/components/table/client/Table.d.ts.map +1 -0
  136. package/dist/components/table/client/Table.js +135 -0
  137. package/dist/components/table/client/Table.js.map +1 -0
  138. package/dist/components/table/client/TableBody.d.ts +7 -0
  139. package/dist/components/table/client/TableBody.d.ts.map +1 -0
  140. package/dist/components/table/client/TableBody.js +35 -0
  141. package/dist/components/table/client/TableBody.js.map +1 -0
  142. package/dist/components/table/client/TableColumnHeader.d.ts +7 -0
  143. package/dist/components/table/client/TableColumnHeader.d.ts.map +1 -0
  144. package/dist/components/table/client/TableColumnHeader.js +69 -0
  145. package/dist/components/table/client/TableColumnHeader.js.map +1 -0
  146. package/dist/components/table/client/TableExpansion.d.ts +11 -0
  147. package/dist/components/table/client/TableExpansion.d.ts.map +1 -0
  148. package/dist/components/table/client/TableExpansion.js +43 -0
  149. package/dist/components/table/client/TableExpansion.js.map +1 -0
  150. package/dist/components/table/client/TableRow.d.ts +7 -0
  151. package/dist/components/table/client/TableRow.d.ts.map +1 -0
  152. package/dist/components/table/client/TableRow.js +95 -0
  153. package/dist/components/table/client/TableRow.js.map +1 -0
  154. package/dist/components/table/client/TableSelection.d.ts +11 -0
  155. package/dist/components/table/client/TableSelection.d.ts.map +1 -0
  156. package/dist/components/table/client/TableSelection.js +48 -0
  157. package/dist/components/table/client/TableSelection.js.map +1 -0
  158. package/dist/components/table/client/table-context.d.ts +3 -0
  159. package/dist/components/table/client/table-context.d.ts.map +1 -0
  160. package/dist/components/table/client/table-context.js +8 -0
  161. package/dist/components/table/client/table-context.js.map +1 -0
  162. package/dist/components/table/client.d.ts +4 -0
  163. package/dist/components/table/client.d.ts.map +1 -0
  164. package/dist/components/table/client.js +30 -0
  165. package/dist/components/table/client.js.map +1 -0
  166. package/dist/components/table/index.d.ts +2 -2
  167. package/dist/components/table/index.d.ts.map +1 -1
  168. package/dist/components/table/index.js +7 -7
  169. package/dist/components/table/index.js.map +1 -1
  170. package/dist/components/table/types.d.ts +42 -15
  171. package/dist/components/table/types.d.ts.map +1 -1
  172. package/dist/components/textarea/Textarea.d.ts.map +1 -1
  173. package/dist/components/textarea/Textarea.js +1 -1
  174. package/dist/components/textarea/Textarea.js.map +1 -1
  175. package/dist/components/tooltip/Tooltip.js +1 -1
  176. package/dist/components/tooltip/Tooltip.js.map +1 -1
  177. package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
  178. package/dist/components/virtual-scroll/VirtualScroll.js +54 -34
  179. package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
  180. package/dist/components/virtual-scroll/types.d.ts +2 -2
  181. package/dist/components/virtual-scroll/types.d.ts.map +1 -1
  182. package/dist/components/virtual-scroll/types.js.map +1 -1
  183. package/dist/components/virtual-scroll/virtual-scroll-scroll.d.ts.map +1 -1
  184. package/dist/components/virtual-scroll/virtual-scroll-scroll.js +0 -1
  185. package/dist/components/virtual-scroll/virtual-scroll-scroll.js.map +1 -1
  186. package/dist/core/roving-focus.d.ts +2 -1
  187. package/dist/core/roving-focus.d.ts.map +1 -1
  188. package/dist/core/roving-focus.js.map +1 -1
  189. package/dist/core/use-popover.d.ts.map +1 -1
  190. package/dist/core/use-popover.js +6 -1
  191. package/dist/core/use-popover.js.map +1 -1
  192. package/dist/elements/choice/types.d.ts +1 -1
  193. package/dist/elements/choice/types.d.ts.map +1 -1
  194. package/dist/styles/index.css +1 -1
  195. package/dist/styles/tailwind.css +1 -0
  196. package/dist/styles/tokens.css +1 -1
  197. package/package.json +1 -1
  198. package/dist/components/drawer/client-types.d.ts +0 -99
  199. package/dist/components/drawer/client-types.d.ts.map +0 -1
  200. package/dist/components/drawer/client-types.js +0 -1
  201. package/dist/components/enhance/internal/read-box.d.ts +0 -3
  202. package/dist/components/enhance/internal/read-box.d.ts.map +0 -1
  203. package/dist/components/enhance/internal/read-box.js +0 -7
  204. package/dist/components/enhance/internal/read-box.js.map +0 -1
  205. package/dist/components/stepper/Stepper.d.ts +0 -7
  206. package/dist/components/stepper/Stepper.d.ts.map +0 -1
  207. package/dist/components/stepper/Stepper.js +0 -35
  208. package/dist/components/stepper/Stepper.js.map +0 -1
  209. package/dist/components/stepper/index.d.ts +0 -3
  210. package/dist/components/stepper/index.d.ts.map +0 -1
  211. package/dist/components/stepper/index.js +0 -5
  212. package/dist/components/stepper/index.js.map +0 -1
  213. package/dist/components/stepper/types.d.ts +0 -14
  214. package/dist/components/stepper/types.d.ts.map +0 -1
  215. package/dist/components/stepper.d.ts +0 -1
  216. package/dist/components/stepper.js +0 -1
  217. /package/dist/components/{stepper → enhance}/types.js +0 -0
  218. /package/dist/components/{stepper → enhance}/types.js.map +0 -0
  219. /package/dist/components/{drawer/client-types.js.map → internal/native-check-control/types.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/carousel/fade/fade-controller.ts"],"sourcesContent":["import { attachCarouselCommands } from \"../commands.js\";\nimport type {\n CarouselController,\n CarouselControllerOptions,\n CarouselReason,\n CarouselSnapshot,\n} from \"../types.js\";\n\n/** One semantic page per slide; CSS owns the motion and its duration. */\nexport function createFadeController(\n root: HTMLElement,\n initialOptions: CarouselControllerOptions,\n): CarouselController {\n const viewport = root.querySelector<HTMLElement>(':scope > [data-part=\"viewport\"]');\n if (!viewport) throw new Error(\"Carousel viewport is missing\");\n const listeners = new Set<() => void>();\n let options = initialOptions;\n let slides: HTMLElement[] = [];\n let activeId: string | undefined;\n let destroyed = false;\n let token = 0;\n let frame = 0;\n let reconcile = false;\n let snapshot: CarouselSnapshot = {\n ready: false,\n index: 0,\n requestedIndex: null,\n settledChange: null,\n pages: [],\n visibleIndices: [],\n atStart: true,\n atEnd: true,\n moving: false,\n interacting: false,\n };\n function publish(next: CarouselSnapshot) {\n snapshot = next;\n listeners.forEach((listener) => listener());\n }\n function present(index: number) {\n for (const [i, slide] of slides.entries()) {\n slide.setAttribute(\"data-state\", i === index ? \"active\" : \"inactive\");\n slide.toggleAttribute(\"inert\", i !== index);\n if (i === index) slide.removeAttribute(\"aria-hidden\");\n else slide.setAttribute(\"aria-hidden\", \"true\");\n }\n }\n function request(index: number, reason: CarouselReason) {\n if (destroyed || snapshot.moving || !Number.isInteger(index) || index < 0 || !slides.length)\n return;\n const target = Math.min(index, slides.length - 1);\n if (\n target !== snapshot.index &&\n slides[snapshot.index]?.contains(root.ownerDocument.activeElement)\n )\n return;\n if (target === snapshot.index) {\n // A semantic no-op still releases an autoplay attempt at the finite boundary.\n publish({ ...snapshot, moving: true });\n publish({ ...snapshot, moving: false });\n return;\n }\n const detail = { previousIndex: snapshot.index, index: target, reason };\n const requestToken = ++token;\n options.beforeChange?.(detail);\n present(target);\n publish({ ...snapshot, requestedIndex: target, moving: true });\n frame = requestAnimationFrame(() => {\n frame = 0;\n if (destroyed || requestToken !== token) return;\n const animations = [slides[detail.previousIndex], slides[target]].flatMap(\n (slide) =>\n slide\n ?.getAnimations()\n .filter(\n (animation) =>\n \"transitionProperty\" in animation &&\n (animation.effect as KeyframeEffect | null)?.target === slide,\n ) ?? [],\n );\n function settle() {\n if (destroyed || requestToken !== token) return;\n activeId = slides[target]?.id;\n publish({\n ...snapshot,\n index: target,\n requestedIndex: null,\n moving: false,\n visibleIndices: [target],\n atStart: target === 0,\n atEnd: target === slides.length - 1,\n settledChange: detail,\n });\n if (reason !== \"controlled\") options.onSelect?.(target, detail);\n options.afterChange?.(detail);\n if (reason === \"drag\") options.onSwipe?.(detail);\n if (reconcile) {\n reconcile = false;\n if (options.value !== undefined && options.value !== target)\n request(options.value, \"controlled\");\n }\n }\n if (animations.length)\n void Promise.allSettled(animations.map((animation) => animation.finished)).then(settle);\n else settle();\n });\n }\n function refresh() {\n if (destroyed) return;\n const next = Array.from(viewport!.children).filter(\n (node): node is HTMLElement =>\n node instanceof HTMLElement && node.getAttribute(\"data-part\") === \"slide\",\n );\n if (\n snapshot.ready &&\n next.length === slides.length &&\n next.every((slide, i) => slide === slides[i])\n )\n return;\n ++token;\n cancelAnimationFrame(frame);\n slides = next;\n const focused = slides.findIndex((slide) => slide.contains(root.ownerDocument.activeElement));\n const retained = slides.findIndex((slide) => slide.id === activeId);\n const fragment = slides.findIndex(\n (slide) =>\n `#${encodeURIComponent(slide.id)}` === root.ownerDocument.defaultView?.location.hash,\n );\n const initial = options.value ?? (fragment >= 0 ? fragment : options.defaultValue);\n const target = Math.max(\n 0,\n Math.min(\n slides.length - 1,\n focused >= 0\n ? focused\n : snapshot.ready\n ? retained >= 0\n ? retained\n : snapshot.index\n : initial,\n ),\n );\n present(target);\n activeId = slides[target]?.id;\n root.toggleAttribute(\"data-fade-ready\", slides.length > 0);\n publish({\n ...snapshot,\n ready: slides.length > 0,\n index: target,\n requestedIndex: null,\n moving: false,\n pages: slides.map((_, index) => ({ index, offset: index })),\n visibleIndices: slides.length ? [target] : [],\n atStart: target === 0,\n atEnd: target === slides.length - 1,\n });\n }\n function step(direction: number, reason: CarouselReason) {\n let target = snapshot.index + direction;\n if (options.rewind && slides.length) target = (target + slides.length) % slides.length;\n request(Math.max(0, target), reason);\n }\n const detach = attachCarouselCommands(root, {\n next: () => step(1, \"command\"),\n previous: () => step(-1, \"command\"),\n });\n refresh();\n return {\n getSnapshot: () => snapshot,\n getGeometry: () => undefined,\n subscribe(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n goTo: request,\n next: (reason) => step(1, reason),\n previous: (reason) => step(-1, reason),\n setInteracting(interacting) {\n if (!destroyed && interacting !== snapshot.interacting) publish({ ...snapshot, interacting });\n },\n update(next) {\n const changedValue = next.value !== options.value;\n options = next;\n if (snapshot.moving) {\n reconcile ||= changedValue;\n return;\n }\n if (next.value !== undefined && next.value !== snapshot.index)\n request(next.value, \"controlled\");\n },\n refresh,\n destroy() {\n if (destroyed) return;\n destroyed = true;\n ++token;\n cancelAnimationFrame(frame);\n detach();\n listeners.clear();\n root.removeAttribute(\"data-fade-ready\");\n for (const slide of slides) {\n slide.removeAttribute(\"inert\");\n slide.removeAttribute(\"aria-hidden\");\n slide.removeAttribute(\"data-state\");\n }\n },\n };\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/components/carousel/fade/fade-controller.ts"],"sourcesContent":["import { attachCarouselCommands } from \"../commands.js\";\nimport type {\n CarouselController,\n CarouselControllerOptions,\n CarouselReason,\n CarouselSnapshot,\n} from \"../types.js\";\n\n/** One semantic page per slide; CSS owns the motion and its duration. */\nexport function createFadeController(\n root: HTMLElement,\n initialOptions: CarouselControllerOptions,\n): CarouselController {\n const viewport = root.querySelector<HTMLElement>(':scope > [data-part=\"viewport\"]');\n if (!viewport) throw new Error(\"Carousel viewport is missing\");\n const listeners = new Set<() => void>();\n let options = initialOptions;\n let slides: HTMLElement[] = [];\n let activeId: string | undefined;\n let destroyed = false;\n let token = 0;\n let frame = 0;\n let reconcile = false;\n let snapshot: CarouselSnapshot = {\n ready: false,\n index: 0,\n requestedIndex: null,\n settledChange: null,\n settledIndex: 0,\n pages: [],\n visibleIndices: [],\n atStart: true,\n atEnd: true,\n moving: false,\n interacting: false,\n };\n function publish(next: CarouselSnapshot) {\n snapshot = next;\n listeners.forEach((listener) => listener());\n }\n function present(index: number) {\n for (const [i, slide] of slides.entries()) {\n slide.setAttribute(\"data-state\", i === index ? \"active\" : \"inactive\");\n slide.toggleAttribute(\"inert\", i !== index);\n if (i === index) slide.removeAttribute(\"aria-hidden\");\n else slide.setAttribute(\"aria-hidden\", \"true\");\n }\n }\n function request(index: number, reason: CarouselReason) {\n if (destroyed || snapshot.moving || !Number.isInteger(index) || index < 0 || !slides.length)\n return;\n const target = Math.min(index, slides.length - 1);\n if (\n target !== snapshot.index &&\n slides[snapshot.index]?.contains(root.ownerDocument.activeElement)\n )\n return;\n if (target === snapshot.index) {\n // A semantic no-op still releases an autoplay attempt at the finite boundary.\n publish({ ...snapshot, moving: true });\n publish({ ...snapshot, moving: false });\n return;\n }\n const detail = { previousIndex: snapshot.index, index: target, reason };\n const requestToken = ++token;\n options.beforeChange?.(detail);\n present(target);\n publish({ ...snapshot, requestedIndex: target, moving: true });\n frame = requestAnimationFrame(() => {\n frame = 0;\n if (destroyed || requestToken !== token) return;\n const animations = [slides[detail.previousIndex], slides[target]].flatMap(\n (slide) =>\n slide\n ?.getAnimations()\n .filter(\n (animation) =>\n \"transitionProperty\" in animation &&\n (animation.effect as KeyframeEffect | null)?.target === slide,\n ) ?? [],\n );\n function settle() {\n if (destroyed || requestToken !== token) return;\n activeId = slides[target]?.id;\n publish({\n ...snapshot,\n index: target,\n settledIndex: target,\n requestedIndex: null,\n moving: false,\n visibleIndices: [target],\n atStart: target === 0,\n atEnd: target === slides.length - 1,\n settledChange: detail,\n });\n if (reason !== \"controlled\") options.onSelect?.(target, detail);\n options.afterChange?.(detail);\n if (reason === \"drag\") options.onSwipe?.(detail);\n if (reconcile) {\n reconcile = false;\n if (options.value !== undefined && options.value !== target)\n request(options.value, \"controlled\");\n }\n }\n if (animations.length)\n void Promise.allSettled(animations.map((animation) => animation.finished)).then(settle);\n else settle();\n });\n }\n function refresh() {\n if (destroyed) return;\n const next = Array.from(viewport!.children).filter(\n (node): node is HTMLElement =>\n node instanceof HTMLElement && node.getAttribute(\"data-part\") === \"slide\",\n );\n if (\n snapshot.ready &&\n next.length === slides.length &&\n next.every((slide, i) => slide === slides[i])\n )\n return;\n ++token;\n cancelAnimationFrame(frame);\n slides = next;\n const focused = slides.findIndex((slide) => slide.contains(root.ownerDocument.activeElement));\n const retained = slides.findIndex((slide) => slide.id === activeId);\n const fragment = slides.findIndex(\n (slide) =>\n `#${encodeURIComponent(slide.id)}` === root.ownerDocument.defaultView?.location.hash,\n );\n const initial = options.value ?? (fragment >= 0 ? fragment : options.defaultValue);\n const target = Math.max(\n 0,\n Math.min(\n slides.length - 1,\n focused >= 0\n ? focused\n : snapshot.ready\n ? retained >= 0\n ? retained\n : snapshot.index\n : initial,\n ),\n );\n present(target);\n activeId = slides[target]?.id;\n root.toggleAttribute(\"data-fade-ready\", slides.length > 0);\n publish({\n ...snapshot,\n ready: slides.length > 0,\n index: target,\n settledIndex: target,\n requestedIndex: null,\n moving: false,\n pages: slides.map((_, index) => ({ index, offset: index })),\n visibleIndices: slides.length ? [target] : [],\n atStart: target === 0,\n atEnd: target === slides.length - 1,\n });\n }\n function step(direction: number, reason: CarouselReason) {\n let target = snapshot.index + direction;\n if (options.rewind && slides.length) target = (target + slides.length) % slides.length;\n request(Math.max(0, target), reason);\n }\n const detach = attachCarouselCommands(root, {\n next: () => step(1, \"command\"),\n previous: () => step(-1, \"command\"),\n });\n refresh();\n return {\n getSnapshot: () => snapshot,\n getGeometry: () => undefined,\n subscribe(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n goTo: request,\n next: (reason) => step(1, reason),\n previous: (reason) => step(-1, reason),\n setInteracting(interacting) {\n if (!destroyed && interacting !== snapshot.interacting) publish({ ...snapshot, interacting });\n },\n update(next) {\n const changedValue = next.value !== options.value;\n options = next;\n if (snapshot.moving) {\n reconcile ||= changedValue;\n return;\n }\n if (next.value !== undefined && next.value !== snapshot.index)\n request(next.value, \"controlled\");\n },\n refresh,\n destroy() {\n if (destroyed) return;\n destroyed = true;\n ++token;\n cancelAnimationFrame(frame);\n detach();\n listeners.clear();\n root.removeAttribute(\"data-fade-ready\");\n for (const slide of slides) {\n slide.removeAttribute(\"inert\");\n slide.removeAttribute(\"aria-hidden\");\n slide.removeAttribute(\"data-state\");\n }\n },\n };\n}\n"],"mappings":"AAAA,SAAS,8BAA8B;AAShC,SAAS,qBACd,MACA,gBACoB;AACpB,QAAM,WAAW,KAAK,cAA2B,iCAAiC;AAClF,MAAI,CAAC,SAAU,OAAM,IAAI,MAAM,8BAA8B;AAC7D,QAAM,YAAY,oBAAI,IAAgB;AACtC,MAAI,UAAU;AACd,MAAI,SAAwB,CAAC;AAC7B,MAAI;AACJ,MAAI,YAAY;AAChB,MAAI,QAAQ;AACZ,MAAI,QAAQ;AACZ,MAAI,YAAY;AAChB,MAAI,WAA6B;AAAA,IAC/B,OAAO;AAAA,IACP,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,eAAe;AAAA,IACf,cAAc;AAAA,IACd,OAAO,CAAC;AAAA,IACR,gBAAgB,CAAC;AAAA,IACjB,SAAS;AAAA,IACT,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,aAAa;AAAA,EACf;AACA,WAAS,QAAQ,MAAwB;AACvC,eAAW;AACX,cAAU,QAAQ,CAAC,aAAa,SAAS,CAAC;AAAA,EAC5C;AACA,WAAS,QAAQ,OAAe;AAC9B,eAAW,CAAC,GAAG,KAAK,KAAK,OAAO,QAAQ,GAAG;AACzC,YAAM,aAAa,cAAc,MAAM,QAAQ,WAAW,UAAU;AACpE,YAAM,gBAAgB,SAAS,MAAM,KAAK;AAC1C,UAAI,MAAM,MAAO,OAAM,gBAAgB,aAAa;AAAA,UAC/C,OAAM,aAAa,eAAe,MAAM;AAAA,IAC/C;AAAA,EACF;AACA,WAAS,QAAQ,OAAe,QAAwB;AACtD,QAAI,aAAa,SAAS,UAAU,CAAC,OAAO,UAAU,KAAK,KAAK,QAAQ,KAAK,CAAC,OAAO;AACnF;AACF,UAAM,SAAS,KAAK,IAAI,OAAO,OAAO,SAAS,CAAC;AAChD,QACE,WAAW,SAAS,SACpB,OAAO,SAAS,KAAK,GAAG,SAAS,KAAK,cAAc,aAAa;AAEjE;AACF,QAAI,WAAW,SAAS,OAAO;AAE7B,cAAQ,EAAE,GAAG,UAAU,QAAQ,KAAK,CAAC;AACrC,cAAQ,EAAE,GAAG,UAAU,QAAQ,MAAM,CAAC;AACtC;AAAA,IACF;AACA,UAAM,SAAS,EAAE,eAAe,SAAS,OAAO,OAAO,QAAQ,OAAO;AACtE,UAAM,eAAe,EAAE;AACvB,YAAQ,eAAe,MAAM;AAC7B,YAAQ,MAAM;AACd,YAAQ,EAAE,GAAG,UAAU,gBAAgB,QAAQ,QAAQ,KAAK,CAAC;AAC7D,YAAQ,sBAAsB,MAAM;AAClC,cAAQ;AACR,UAAI,aAAa,iBAAiB,MAAO;AACzC,YAAM,aAAa,CAAC,OAAO,OAAO,aAAa,GAAG,OAAO,MAAM,CAAC,EAAE;AAAA,QAChE,CAAC,UACC,OACI,cAAc,EACf;AAAA,UACC,CAAC,cACC,wBAAwB,aACvB,UAAU,QAAkC,WAAW;AAAA,QAC5D,KAAK,CAAC;AAAA,MACZ;AACA,eAAS,SAAS;AAChB,YAAI,aAAa,iBAAiB,MAAO;AACzC,mBAAW,OAAO,MAAM,GAAG;AAC3B,gBAAQ;AAAA,UACN,GAAG;AAAA,UACH,OAAO;AAAA,UACP,cAAc;AAAA,UACd,gBAAgB;AAAA,UAChB,QAAQ;AAAA,UACR,gBAAgB,CAAC,MAAM;AAAA,UACvB,SAAS,WAAW;AAAA,UACpB,OAAO,WAAW,OAAO,SAAS;AAAA,UAClC,eAAe;AAAA,QACjB,CAAC;AACD,YAAI,WAAW,aAAc,SAAQ,WAAW,QAAQ,MAAM;AAC9D,gBAAQ,cAAc,MAAM;AAC5B,YAAI,WAAW,OAAQ,SAAQ,UAAU,MAAM;AAC/C,YAAI,WAAW;AACb,sBAAY;AACZ,cAAI,QAAQ,UAAU,UAAa,QAAQ,UAAU;AACnD,oBAAQ,QAAQ,OAAO,YAAY;AAAA,QACvC;AAAA,MACF;AACA,UAAI,WAAW;AACb,aAAK,QAAQ,WAAW,WAAW,IAAI,CAAC,cAAc,UAAU,QAAQ,CAAC,EAAE,KAAK,MAAM;AAAA,UACnF,QAAO;AAAA,IACd,CAAC;AAAA,EACH;AACA,WAAS,UAAU;AACjB,QAAI,UAAW;AACf,UAAM,OAAO,MAAM,KAAK,SAAU,QAAQ,EAAE;AAAA,MAC1C,CAAC,SACC,gBAAgB,eAAe,KAAK,aAAa,WAAW,MAAM;AAAA,IACtE;AACA,QACE,SAAS,SACT,KAAK,WAAW,OAAO,UACvB,KAAK,MAAM,CAAC,OAAO,MAAM,UAAU,OAAO,CAAC,CAAC;AAE5C;AACF,MAAE;AACF,yBAAqB,KAAK;AAC1B,aAAS;AACT,UAAM,UAAU,OAAO,UAAU,CAAC,UAAU,MAAM,SAAS,KAAK,cAAc,aAAa,CAAC;AAC5F,UAAM,WAAW,OAAO,UAAU,CAAC,UAAU,MAAM,OAAO,QAAQ;AAClE,UAAM,WAAW,OAAO;AAAA,MACtB,CAAC,UACC,IAAI,mBAAmB,MAAM,EAAE,CAAC,OAAO,KAAK,cAAc,aAAa,SAAS;AAAA,IACpF;AACA,UAAM,UAAU,QAAQ,UAAU,YAAY,IAAI,WAAW,QAAQ;AACrE,UAAM,SAAS,KAAK;AAAA,MAClB;AAAA,MACA,KAAK;AAAA,QACH,OAAO,SAAS;AAAA,QAChB,WAAW,IACP,UACA,SAAS,QACP,YAAY,IACV,WACA,SAAS,QACX;AAAA,MACR;AAAA,IACF;AACA,YAAQ,MAAM;AACd,eAAW,OAAO,MAAM,GAAG;AAC3B,SAAK,gBAAgB,mBAAmB,OAAO,SAAS,CAAC;AACzD,YAAQ;AAAA,MACN,GAAG;AAAA,MACH,OAAO,OAAO,SAAS;AAAA,MACvB,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,MAChB,QAAQ;AAAA,MACR,OAAO,OAAO,IAAI,CAAC,GAAG,WAAW,EAAE,OAAO,QAAQ,MAAM,EAAE;AAAA,MAC1D,gBAAgB,OAAO,SAAS,CAAC,MAAM,IAAI,CAAC;AAAA,MAC5C,SAAS,WAAW;AAAA,MACpB,OAAO,WAAW,OAAO,SAAS;AAAA,IACpC,CAAC;AAAA,EACH;AACA,WAAS,KAAK,WAAmB,QAAwB;AACvD,QAAI,SAAS,SAAS,QAAQ;AAC9B,QAAI,QAAQ,UAAU,OAAO,OAAQ,WAAU,SAAS,OAAO,UAAU,OAAO;AAChF,YAAQ,KAAK,IAAI,GAAG,MAAM,GAAG,MAAM;AAAA,EACrC;AACA,QAAM,SAAS,uBAAuB,MAAM;AAAA,IAC1C,MAAM,MAAM,KAAK,GAAG,SAAS;AAAA,IAC7B,UAAU,MAAM,KAAK,IAAI,SAAS;AAAA,EACpC,CAAC;AACD,UAAQ;AACR,SAAO;AAAA,IACL,aAAa,MAAM;AAAA,IACnB,aAAa,MAAM;AAAA,IACnB,UAAU,UAAU;AAClB,gBAAU,IAAI,QAAQ;AACtB,aAAO,MAAM;AACX,kBAAU,OAAO,QAAQ;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,MAAM;AAAA,IACN,MAAM,CAAC,WAAW,KAAK,GAAG,MAAM;AAAA,IAChC,UAAU,CAAC,WAAW,KAAK,IAAI,MAAM;AAAA,IACrC,eAAe,aAAa;AAC1B,UAAI,CAAC,aAAa,gBAAgB,SAAS,YAAa,SAAQ,EAAE,GAAG,UAAU,YAAY,CAAC;AAAA,IAC9F;AAAA,IACA,OAAO,MAAM;AACX,YAAM,eAAe,KAAK,UAAU,QAAQ;AAC5C,gBAAU;AACV,UAAI,SAAS,QAAQ;AACnB,sBAAc;AACd;AAAA,MACF;AACA,UAAI,KAAK,UAAU,UAAa,KAAK,UAAU,SAAS;AACtD,gBAAQ,KAAK,OAAO,YAAY;AAAA,IACpC;AAAA,IACA;AAAA,IACA,UAAU;AACR,UAAI,UAAW;AACf,kBAAY;AACZ,QAAE;AACF,2BAAqB,KAAK;AAC1B,aAAO;AACP,gBAAU,MAAM;AAChB,WAAK,gBAAgB,iBAAiB;AACtC,iBAAW,SAAS,QAAQ;AAC1B,cAAM,gBAAgB,OAAO;AAC7B,cAAM,gBAAgB,aAAa;AACnC,cAAM,gBAAgB,YAAY;AAAA,MACpC;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -82,6 +82,7 @@ export interface CarouselPage {
82
82
  readonly offset: number;
83
83
  }
84
84
  export interface CarouselSnapshot {
85
+ readonly settledIndex: number;
85
86
  readonly ready: boolean;
86
87
  readonly index: number;
87
88
  readonly requestedIndex: number | null;
@@ -127,6 +128,7 @@ export interface CarouselObservation {
127
128
  readonly visibleIndices: readonly number[];
128
129
  }
129
130
  export interface CarouselObserver {
131
+ readonly watch: (receive: (index: number, visible: readonly number[]) => void) => void;
130
132
  readonly measure: (receive: (value: CarouselObservation) => void) => void;
131
133
  readonly destroy: () => void;
132
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/carousel/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/carousel/types.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,2 @@
1
- import type { ReactElement } from "react";
2
- import type { CheckboxProps } from "./types.js";
3
- export declare function Checkbox(props: CheckboxProps): ReactElement;
4
- export declare namespace Checkbox {
5
- var displayName: string;
6
- }
1
+ export { NativeCheckControl as Checkbox } from "../internal/native-check-control/NativeCheckControl.js";
7
2
  //# sourceMappingURL=Checkbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/Checkbox.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,YAAY,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CA8D3D;yBA9De,QAAQ"}
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../src/components/checkbox/Checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,IAAI,QAAQ,EAAE,MAAM,wDAAwD,CAAC"}
@@ -1,56 +1,6 @@
1
1
  "use client";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
- import { useEffect, useRef, useState } from "react";
4
- function Checkbox(props) {
5
- const {
6
- checked,
7
- defaultChecked,
8
- disabled = false,
9
- id,
10
- label,
11
- onCheckedChange,
12
- className,
13
- "aria-label": ariaLabel
14
- } = props;
15
- const isControlled = checked !== void 0;
16
- const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked ?? false);
17
- const inputRef = useRef(null);
18
- const checkedValue = isControlled ? checked === true : uncontrolledChecked;
19
- useEffect(() => {
20
- if (inputRef.current) inputRef.current.indeterminate = checked === "indeterminate";
21
- }, [checked]);
22
- const handleChange = (event) => {
23
- if (checked === "indeterminate" && inputRef.current) {
24
- inputRef.current.indeterminate = true;
25
- }
26
- if (!isControlled) setUncontrolledChecked(event.currentTarget.checked);
27
- onCheckedChange?.(event.currentTarget.checked);
28
- };
29
- const input = /* @__PURE__ */ jsx(
30
- "input",
31
- {
32
- "aria-checked": checked === "indeterminate" ? "mixed" : void 0,
33
- "aria-label": label === void 0 ? ariaLabel : void 0,
34
- "aria-labelledby": label !== void 0 ? `${id}-label` : void 0,
35
- checked: isControlled ? checkedValue : void 0,
36
- "data-disabled": disabled ? "" : void 0,
37
- "data-state": isControlled ? checked === "indeterminate" ? "indeterminate" : checkedValue ? "checked" : "unchecked" : void 0,
38
- defaultChecked: !isControlled ? defaultChecked : void 0,
39
- disabled: disabled || void 0,
40
- id,
41
- onChange: handleChange,
42
- ref: inputRef,
43
- type: "checkbox",
44
- ...label === void 0 ? { "data-uiify-checkbox": "" } : { "data-part": "control" }
45
- }
46
- );
47
- return label === void 0 ? input : /* @__PURE__ */ jsxs("label", { className, "data-uiify-checkbox": "", id: `${id}-label`, children: [
48
- input,
49
- label
50
- ] });
51
- }
52
- Checkbox.displayName = "Checkbox";
2
+ import { NativeCheckControl } from "../internal/native-check-control/NativeCheckControl.js";
53
3
  export {
54
- Checkbox
4
+ NativeCheckControl as Checkbox
55
5
  };
56
6
  //# sourceMappingURL=Checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState } from \"react\";\nimport type { ChangeEvent, ReactElement } from \"react\";\nimport type { CheckboxProps } from \"./types.js\";\n\nexport function Checkbox(props: CheckboxProps): ReactElement {\n const {\n checked,\n defaultChecked,\n disabled = false,\n id,\n label,\n onCheckedChange,\n className,\n \"aria-label\": ariaLabel,\n } = props;\n const isControlled = checked !== undefined;\n const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked ?? false);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const checkedValue = isControlled ? checked === true : uncontrolledChecked;\n\n useEffect(() => {\n if (inputRef.current) inputRef.current.indeterminate = checked === \"indeterminate\";\n }, [checked]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (checked === \"indeterminate\" && inputRef.current) {\n inputRef.current.indeterminate = true;\n }\n if (!isControlled) setUncontrolledChecked(event.currentTarget.checked);\n onCheckedChange?.(event.currentTarget.checked);\n };\n\n const input = (\n <input\n aria-checked={checked === \"indeterminate\" ? \"mixed\" : undefined}\n aria-label={label === undefined ? ariaLabel : undefined}\n aria-labelledby={label !== undefined ? `${id}-label` : undefined}\n checked={isControlled ? checkedValue : undefined}\n data-disabled={disabled ? \"\" : undefined}\n data-state={\n isControlled\n ? checked === \"indeterminate\"\n ? \"indeterminate\"\n : checkedValue\n ? \"checked\"\n : \"unchecked\"\n : undefined\n }\n defaultChecked={!isControlled ? defaultChecked : undefined}\n disabled={disabled || undefined}\n id={id}\n onChange={handleChange}\n ref={inputRef}\n type=\"checkbox\"\n {...(label === undefined ? { \"data-uiify-checkbox\": \"\" } : { \"data-part\": \"control\" })}\n />\n );\n\n return label === undefined ? (\n input\n ) : (\n <label className={className} data-uiify-checkbox=\"\" id={`${id}-label`}>\n {input}\n {label}\n </label>\n );\n}\nCheckbox.displayName = \"Checkbox\";\n"],"mappings":";AAmCI,cA4BA,YA5BA;AAjCJ,SAAS,WAAW,QAAQ,gBAAgB;AAIrC,SAAS,SAAS,OAAoC;AAC3D,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,EAChB,IAAI;AACJ,QAAM,eAAe,YAAY;AACjC,QAAM,CAAC,qBAAqB,sBAAsB,IAAI,SAAS,kBAAkB,KAAK;AACtF,QAAM,WAAW,OAAgC,IAAI;AACrD,QAAM,eAAe,eAAe,YAAY,OAAO;AAEvD,YAAU,MAAM;AACd,QAAI,SAAS,QAAS,UAAS,QAAQ,gBAAgB,YAAY;AAAA,EACrE,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,eAAe,CAAC,UAAyC;AAC7D,QAAI,YAAY,mBAAmB,SAAS,SAAS;AACnD,eAAS,QAAQ,gBAAgB;AAAA,IACnC;AACA,QAAI,CAAC,aAAc,wBAAuB,MAAM,cAAc,OAAO;AACrE,sBAAkB,MAAM,cAAc,OAAO;AAAA,EAC/C;AAEA,QAAM,QACJ;AAAA,IAAC;AAAA;AAAA,MACC,gBAAc,YAAY,kBAAkB,UAAU;AAAA,MACtD,cAAY,UAAU,SAAY,YAAY;AAAA,MAC9C,mBAAiB,UAAU,SAAY,GAAG,EAAE,WAAW;AAAA,MACvD,SAAS,eAAe,eAAe;AAAA,MACvC,iBAAe,WAAW,KAAK;AAAA,MAC/B,cACE,eACI,YAAY,kBACV,kBACA,eACE,YACA,cACJ;AAAA,MAEN,gBAAgB,CAAC,eAAe,iBAAiB;AAAA,MACjD,UAAU,YAAY;AAAA,MACtB;AAAA,MACA,UAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAK;AAAA,MACJ,GAAI,UAAU,SAAY,EAAE,uBAAuB,GAAG,IAAI,EAAE,aAAa,UAAU;AAAA;AAAA,EACtF;AAGF,SAAO,UAAU,SACf,QAEA,qBAAC,WAAM,WAAsB,uBAAoB,IAAG,IAAI,GAAG,EAAE,UAC1D;AAAA;AAAA,IACA;AAAA,KACH;AAEJ;AACA,SAAS,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/checkbox/Checkbox.tsx"],"sourcesContent":["\"use client\";\nexport { NativeCheckControl as Checkbox } from \"../internal/native-check-control/NativeCheckControl.js\";\n"],"mappings":";AACA,SAA+B,0BAAgB;","names":[]}
@@ -1,5 +1,5 @@
1
1
  import type { ReactElement } from "react";
2
- import type { DrawerRootProps, DrawerTriggerProps, DrawerContentProps, DrawerTitleOwnProps, DrawerDescriptionOwnProps, DrawerCloseProps, DrawerHandleOwnProps } from "./client-types.js";
2
+ import type { DrawerRootProps, DrawerTriggerProps, DrawerContentProps, DrawerTitleOwnProps, DrawerDescriptionOwnProps, DrawerCloseProps, DrawerHandleOwnProps } from "./types.js";
3
3
  export declare function DrawerRoot(props: DrawerRootProps): ReactElement | null;
4
4
  export declare namespace DrawerRoot {
5
5
  var displayName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/Drawer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,YAAY,EAAkB,MAAM,OAAO,CAAC;AAYxE,OAAO,KAAK,EAGV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAI3B,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CAuFtE;yBAvFe,UAAU;;;AA0F1B,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CAuB5E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CA4E5E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,GAAG,IAAI,CAqB3E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,yBAAyB,GAAG,YAAY,GAAG,IAAI,CAqBvF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAqBxE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,GAAG,IAAI,CAsD7E;AAED,eAAO,MAAM,MAAM;;;;;;;;CAQlB,CAAC"}
1
+ {"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/Drawer.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,YAAY,EAAkB,MAAM,OAAO,CAAC;AAaxE,OAAO,KAAK,EAGV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EACzB,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAIpB,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,GAAG,IAAI,CA8FtE;yBA9Fe,UAAU;;;AAiG1B,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CAuB5E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,IAAI,CA0F5E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,mBAAmB,GAAG,YAAY,GAAG,IAAI,CAsB3E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,yBAAyB,GAAG,YAAY,GAAG,IAAI,CAsBvF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,YAAY,GAAG,IAAI,CAqBxE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,GAAG,IAAI,CAoE7E;AAED,eAAO,MAAM,MAAM;;;;;;;;CAQlB,CAAC"}
@@ -5,7 +5,8 @@ import {
5
5
  useId,
6
6
  useIsomorphicLayoutEffect,
7
7
  useMergedRefs,
8
- useResizeObserver
8
+ useResizeObserver,
9
+ useMediaQuery
9
10
  } from "@gunkin/uiify/hooks";
10
11
  import { createPartContext } from "@gunkin/uiify/core";
11
12
  import { composeEventHandlers } from "@gunkin/uiify/core/compose-event-handlers";
@@ -16,6 +17,7 @@ const [DrawerProvider, useDrawerContext] = createPartContext("Drawer");
16
17
  function DrawerRoot(props) {
17
18
  const {
18
19
  activeSnapPoint,
20
+ closeOnOverlayClick = true,
19
21
  children,
20
22
  defaultActiveSnapPoint,
21
23
  defaultOpen,
@@ -27,6 +29,8 @@ function DrawerRoot(props) {
27
29
  side = "bottom",
28
30
  snapPoints
29
31
  } = props;
32
+ const mobile = useMediaQuery("(width < 40rem)");
33
+ const effectiveSide = mobile ? "bottom" : side;
30
34
  const contentId = useId();
31
35
  const dialog = useDialog({
32
36
  modal,
@@ -40,7 +44,7 @@ function DrawerRoot(props) {
40
44
  const wasOpenRef = useRef(dialog.open);
41
45
  const storeRef = useRef(null);
42
46
  storeRef.current ??= createDrawerStore({
43
- side,
47
+ side: effectiveSide,
44
48
  dismissible,
45
49
  onDismiss: () => dialog.close(),
46
50
  ...snapPoints ? { snapPoints } : {},
@@ -58,6 +62,7 @@ function DrawerRoot(props) {
58
62
  }
59
63
  wasOpenRef.current = dialog.open;
60
64
  }, [dialog.open]);
65
+ useIsomorphicLayoutEffect(() => store.setSide(effectiveSide), [effectiveSide, store]);
61
66
  const snapEnabled = Boolean(snapPoints && snapPoints.length > 0);
62
67
  const contextValue = useMemo(
63
68
  () => ({
@@ -67,13 +72,14 @@ function DrawerRoot(props) {
67
72
  dialogProps: dialog.dialogProps,
68
73
  dialogRef: dialog.dialogRef,
69
74
  dismissible,
75
+ closeOnOverlayClick,
70
76
  labelId,
71
77
  modal,
72
78
  open: dialog.open,
73
79
  openDialog: dialog.openDialog,
74
80
  setDescriptionId,
75
81
  setLabelId,
76
- side,
82
+ side: effectiveSide,
77
83
  snapEnabled,
78
84
  store,
79
85
  triggerRef
@@ -87,9 +93,10 @@ function DrawerRoot(props) {
87
93
  dialog.open,
88
94
  dialog.openDialog,
89
95
  dismissible,
96
+ closeOnOverlayClick,
90
97
  labelId,
91
98
  modal,
92
- side,
99
+ effectiveSide,
93
100
  snapEnabled,
94
101
  store
95
102
  ]
@@ -121,12 +128,23 @@ function DrawerTrigger(props) {
121
128
  });
122
129
  }
123
130
  function DrawerContent(props) {
124
- const { children, className, ref, style: consumerStyle, ...consumerProps } = props;
131
+ const {
132
+ children,
133
+ className,
134
+ ref,
135
+ style: consumerStyle,
136
+ size: drawerSize,
137
+ dismiss,
138
+ backdrop,
139
+ ...consumerProps
140
+ } = props;
125
141
  const {
126
142
  contentId,
127
143
  descriptionId,
128
144
  dialogProps,
129
145
  dialogRef,
146
+ dismissible,
147
+ closeOnOverlayClick,
130
148
  labelId,
131
149
  modal,
132
150
  open,
@@ -165,6 +183,9 @@ function DrawerContent(props) {
165
183
  "aria-describedby": descriptionId,
166
184
  "aria-labelledby": labelId,
167
185
  "aria-modal": modal ? true : void 0,
186
+ "data-size": drawerSize,
187
+ "data-backdrop": backdrop,
188
+ closedby: dismiss ?? (dismissible ? closeOnOverlayClick ? "any" : "closerequest" : "none"),
168
189
  "data-part": "content",
169
190
  "data-side": side,
170
191
  "data-state": open ? "open" : "closed",
@@ -191,7 +212,7 @@ function DrawerContent(props) {
191
212
  return content;
192
213
  }
193
214
  function DrawerTitle(props) {
194
- const { children, className } = props;
215
+ const { children, className, ...consumerProps } = props;
195
216
  const id = useId();
196
217
  const { setLabelId } = useDrawerContext("Title");
197
218
  useIsomorphicLayoutEffect(() => {
@@ -201,6 +222,7 @@ function DrawerTitle(props) {
201
222
  return useRenderElement({
202
223
  defaultTag: "h2",
203
224
  props: {
225
+ ...consumerProps,
204
226
  id,
205
227
  "data-part": "title",
206
228
  "data-uiify-drawer": "",
@@ -211,7 +233,7 @@ function DrawerTitle(props) {
211
233
  });
212
234
  }
213
235
  function DrawerDescription(props) {
214
- const { children, className } = props;
236
+ const { children, className, ...consumerProps } = props;
215
237
  const id = useId();
216
238
  const { setDescriptionId } = useDrawerContext("Description");
217
239
  useIsomorphicLayoutEffect(() => {
@@ -221,6 +243,7 @@ function DrawerDescription(props) {
221
243
  return useRenderElement({
222
244
  defaultTag: "p",
223
245
  props: {
246
+ ...consumerProps,
224
247
  id,
225
248
  "data-part": "description",
226
249
  "data-uiify-drawer": "",
@@ -252,7 +275,14 @@ function DrawerClose(props) {
252
275
  });
253
276
  }
254
277
  function DrawerHandle(props) {
255
- const { className, onPointerCancel, onPointerDown, onPointerMove, onPointerUp } = props;
278
+ const {
279
+ className,
280
+ onPointerCancel,
281
+ onPointerDown,
282
+ onPointerMove,
283
+ onPointerUp,
284
+ ...consumerProps
285
+ } = props;
256
286
  const { side, snapEnabled, store } = useDrawerContext("Handle");
257
287
  const dragging = useSyncExternalStore(
258
288
  (listener) => store.subscribe(listener),
@@ -263,6 +293,7 @@ function DrawerHandle(props) {
263
293
  return useRenderElement({
264
294
  defaultTag: "div",
265
295
  props: snapEnabled ? {
296
+ ...consumerProps,
266
297
  "aria-hidden": true,
267
298
  "data-part": "handle",
268
299
  "data-uiify-drawer": "",
@@ -298,7 +329,13 @@ function DrawerHandle(props) {
298
329
  store.endDrag();
299
330
  }
300
331
  )
301
- } : { "aria-hidden": true, hidden: true },
332
+ } : {
333
+ ...consumerProps,
334
+ "aria-hidden": true,
335
+ "data-part": "handle",
336
+ "data-uiify-drawer": "",
337
+ ...className ? { className } : {}
338
+ },
302
339
  state: { dragging }
303
340
  });
304
341
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/drawer/Drawer.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, useRef, useState, useSyncExternalStore } from \"react\";\nimport type { PointerEvent, ReactElement, SyntheticEvent } from \"react\";\nimport {\n useId,\n useIsomorphicLayoutEffect,\n useMergedRefs,\n useResizeObserver,\n} from \"@gunkin/uiify/hooks\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { useDialog } from \"@gunkin/uiify/core/dialog\";\nimport { createDrawerStore } from \"./drawer-store.js\";\nimport type {\n DrawerStore,\n DrawerContextValue,\n DrawerRootProps,\n DrawerTriggerProps,\n DrawerContentProps,\n DrawerTitleOwnProps,\n DrawerDescriptionOwnProps,\n DrawerCloseProps,\n DrawerHandleOwnProps,\n} from \"./client-types.js\";\n\nconst [DrawerProvider, useDrawerContext] = createPartContext<DrawerContextValue>(\"Drawer\");\n\nexport function DrawerRoot(props: DrawerRootProps): ReactElement | null {\n const {\n activeSnapPoint,\n children,\n defaultActiveSnapPoint,\n defaultOpen,\n dismissible = true,\n modal = true,\n onOpenChange,\n onSnapChange,\n open,\n side = \"bottom\",\n snapPoints,\n } = props;\n const contentId = useId();\n const dialog = useDialog({\n modal,\n ...(defaultOpen !== undefined ? { defaultOpen } : {}),\n ...(open !== undefined ? { open } : {}),\n ...(onOpenChange ? { onOpenChange } : {}),\n });\n const [labelId, setLabelId] = useState<string | undefined>();\n const [descriptionId, setDescriptionId] = useState<string | undefined>();\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const wasOpenRef = useRef(dialog.open);\n const storeRef = useRef<DrawerStore | null>(null);\n storeRef.current ??= createDrawerStore({\n side,\n dismissible,\n onDismiss: () => dialog.close(),\n ...(snapPoints ? { snapPoints } : {}),\n ...(activeSnapPoint !== undefined ? { activeSnapPoint } : {}),\n ...(defaultActiveSnapPoint !== undefined ? { defaultActiveSnapPoint } : {}),\n ...(onSnapChange ? { onSnapChange } : {}),\n });\n const store = storeRef.current;\n\n useIsomorphicLayoutEffect(() => {\n if (activeSnapPoint !== undefined) store.syncActiveSnapPoint(activeSnapPoint);\n }, [activeSnapPoint, store]);\n\n useIsomorphicLayoutEffect(() => {\n if (wasOpenRef.current && !dialog.open) {\n queueMicrotask(() => triggerRef.current?.focus({ preventScroll: true }));\n }\n wasOpenRef.current = dialog.open;\n }, [dialog.open]);\n\n const snapEnabled = Boolean(snapPoints && snapPoints.length > 0);\n\n const contextValue = useMemo<DrawerContextValue>(\n () => ({\n close: dialog.close,\n contentId,\n descriptionId,\n dialogProps: dialog.dialogProps,\n dialogRef: dialog.dialogRef,\n dismissible,\n labelId,\n modal,\n open: dialog.open,\n openDialog: dialog.openDialog,\n setDescriptionId,\n setLabelId,\n side,\n snapEnabled,\n store,\n triggerRef,\n }),\n [\n contentId,\n descriptionId,\n dialog.close,\n dialog.dialogProps,\n dialog.dialogRef,\n dialog.open,\n dialog.openDialog,\n dismissible,\n labelId,\n modal,\n side,\n snapEnabled,\n store,\n ],\n );\n\n return <DrawerProvider value={contextValue}>{children}</DrawerProvider>;\n}\nDrawerRoot.displayName = \"DrawerRoot\";\n\nexport function DrawerTrigger(props: DrawerTriggerProps): ReactElement | null {\n const { children, className, ref, ...consumerProps } = props;\n const { contentId, open, openDialog, triggerRef } = useDrawerContext(\"Trigger\");\n const mergedRef = useMergedRefs(triggerRef, ref);\n\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n ref: mergedRef,\n type: \"button\",\n \"data-uiify-button\": \"\",\n \"data-part\": \"trigger\",\n \"data-uiify-drawer\": \"\",\n \"aria-controls\": contentId,\n \"aria-expanded\": open,\n \"aria-haspopup\": \"dialog\",\n onClick: composeEventHandlers(consumerProps.onClick, openDialog),\n ...(className ? { className } : {}),\n children,\n },\n state: {},\n });\n}\n\nexport function DrawerContent(props: DrawerContentProps): ReactElement | null {\n const { children, className, ref, style: consumerStyle, ...consumerProps } = props;\n const {\n contentId,\n descriptionId,\n dialogProps,\n dialogRef,\n labelId,\n modal,\n open,\n side,\n snapEnabled,\n store,\n } = useDrawerContext(\"Content\");\n const containerRef = useRef<HTMLDialogElement | null>(null);\n const mergedRef = useMergedRefs(dialogRef, containerRef, ref);\n const size = useResizeObserver(containerRef);\n const transform = useSyncExternalStore(\n (listener) => store.subscribe(listener),\n () => store.getTransform(),\n () => \"\",\n );\n const activeSnap = useSyncExternalStore(\n (listener) => store.subscribe(listener),\n () => store.getActiveSnapPoint(),\n () => 1,\n );\n\n useIsomorphicLayoutEffect(() => {\n if (!size) return;\n const vertical = side === \"top\" || side === \"bottom\";\n store.setContainerSize(vertical ? size.height : size.width);\n }, [side, size, store]);\n\n const styleVars =\n snapEnabled && transform\n ? ({\n \"--uiify-drawer-transform\": transform,\n \"--uiify-drawer-snap\": String(activeSnap),\n } as React.CSSProperties)\n : undefined;\n\n const content = useRenderElement({\n defaultTag: \"dialog\",\n props: {\n ...consumerProps,\n ref: mergedRef,\n id: contentId,\n \"aria-describedby\": descriptionId,\n \"aria-labelledby\": labelId,\n \"aria-modal\": modal ? true : undefined,\n \"data-part\": \"content\",\n \"data-side\": side,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-uiify-drawer\": \"\",\n \"data-snap-enabled\": snapEnabled ? \"\" : undefined,\n ...(className ? { className } : {}),\n ...(consumerStyle || styleVars ? { style: { ...consumerStyle, ...styleVars } } : {}),\n onCancel: composeEventHandlers(\n consumerProps.onCancel,\n (event: SyntheticEvent<HTMLDialogElement>) => {\n dialogProps.onCancel?.(event);\n },\n ),\n onClose: composeEventHandlers(\n consumerProps.onClose,\n (event: SyntheticEvent<HTMLDialogElement>) => {\n dialogProps.onClose?.(event);\n },\n ),\n children,\n },\n state: { open, side },\n });\n\n return content;\n}\n\nexport function DrawerTitle(props: DrawerTitleOwnProps): ReactElement | null {\n const { children, className } = props;\n const id = useId();\n const { setLabelId } = useDrawerContext(\"Title\");\n\n useIsomorphicLayoutEffect(() => {\n setLabelId(id);\n return () => setLabelId(undefined);\n }, [id, setLabelId]);\n\n return useRenderElement({\n defaultTag: \"h2\",\n props: {\n id,\n \"data-part\": \"title\",\n \"data-uiify-drawer\": \"\",\n ...(className ? { className } : {}),\n children,\n },\n state: {},\n });\n}\n\nexport function DrawerDescription(props: DrawerDescriptionOwnProps): ReactElement | null {\n const { children, className } = props;\n const id = useId();\n const { setDescriptionId } = useDrawerContext(\"Description\");\n\n useIsomorphicLayoutEffect(() => {\n setDescriptionId(id);\n return () => setDescriptionId(undefined);\n }, [id, setDescriptionId]);\n\n return useRenderElement({\n defaultTag: \"p\",\n props: {\n id,\n \"data-part\": \"description\",\n \"data-uiify-drawer\": \"\",\n ...(className ? { className } : {}),\n children,\n },\n state: {},\n });\n}\n\nexport function DrawerClose(props: DrawerCloseProps): ReactElement | null {\n const { children, className, ...consumerProps } = props;\n const { close } = useDrawerContext(\"Close\");\n\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n type: \"button\",\n \"data-uiify-button\": \"\",\n \"data-part\": \"close\",\n \"data-uiify-drawer\": \"\",\n \"data-variant\": \"ghost\",\n onClick: composeEventHandlers(consumerProps.onClick, () => {\n close();\n }),\n ...(className ? { className } : {}),\n children,\n },\n state: {},\n });\n}\n\nexport function DrawerHandle(props: DrawerHandleOwnProps): ReactElement | null {\n const { className, onPointerCancel, onPointerDown, onPointerMove, onPointerUp } = props;\n const { side, snapEnabled, store } = useDrawerContext(\"Handle\");\n const dragging = useSyncExternalStore(\n (listener) => store.subscribe(listener),\n () => store.isDragging(),\n () => false,\n );\n\n const axis = side === \"top\" || side === \"bottom\" ? \"clientY\" : \"clientX\";\n\n return useRenderElement({\n defaultTag: \"div\",\n props: snapEnabled\n ? {\n \"aria-hidden\": true,\n \"data-part\": \"handle\",\n \"data-uiify-drawer\": \"\",\n \"data-dragging\": dragging ? \"\" : undefined,\n \"data-side\": side,\n ...(className ? { className } : {}),\n onPointerDown: composeEventHandlers(\n onPointerDown,\n (event: PointerEvent<HTMLDivElement>) => {\n event.currentTarget.setPointerCapture(event.pointerId);\n store.startDrag(event[axis]);\n },\n ),\n onPointerMove: composeEventHandlers(\n onPointerMove,\n (event: PointerEvent<HTMLDivElement>) => {\n if (!store.isDragging()) return;\n store.moveDrag(event[axis]);\n },\n ),\n onPointerUp: composeEventHandlers(onPointerUp, (event: PointerEvent<HTMLDivElement>) => {\n if (event.currentTarget.hasPointerCapture(event.pointerId)) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n }\n store.endDrag();\n }),\n onPointerCancel: composeEventHandlers(\n onPointerCancel,\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.currentTarget.hasPointerCapture(event.pointerId)) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n }\n store.endDrag();\n },\n ),\n }\n : { \"aria-hidden\": true, hidden: true },\n state: { dragging },\n });\n}\n\nexport const Drawer = {\n Close: DrawerClose,\n Content: DrawerContent,\n Description: DrawerDescription,\n Handle: DrawerHandle,\n Root: DrawerRoot,\n Title: DrawerTitle,\n Trigger: DrawerTrigger,\n};\n"],"mappings":";AAmHS;AAjHT,SAAS,SAAS,QAAQ,UAAU,4BAA4B;AAEhE;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,yBAAyB;AAClC,SAAS,4BAA4B;AACrC,SAAS,wBAAwB;AACjC,SAAS,iBAAiB;AAC1B,SAAS,yBAAyB;AAalC,MAAM,CAAC,gBAAgB,gBAAgB,IAAI,kBAAsC,QAAQ;AAElF,SAAS,WAAW,OAA6C;AACtE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,EACF,IAAI;AACJ,QAAM,YAAY,MAAM;AACxB,QAAM,SAAS,UAAU;AAAA,IACvB;AAAA,IACA,GAAI,gBAAgB,SAAY,EAAE,YAAY,IAAI,CAAC;AAAA,IACnD,GAAI,SAAS,SAAY,EAAE,KAAK,IAAI,CAAC;AAAA,IACrC,GAAI,eAAe,EAAE,aAAa,IAAI,CAAC;AAAA,EACzC,CAAC;AACD,QAAM,CAAC,SAAS,UAAU,IAAI,SAA6B;AAC3D,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAA6B;AACvE,QAAM,aAAa,OAAiC,IAAI;AACxD,QAAM,aAAa,OAAO,OAAO,IAAI;AACrC,QAAM,WAAW,OAA2B,IAAI;AAChD,WAAS,YAAY,kBAAkB;AAAA,IACrC;AAAA,IACA;AAAA,IACA,WAAW,MAAM,OAAO,MAAM;AAAA,IAC9B,GAAI,aAAa,EAAE,WAAW,IAAI,CAAC;AAAA,IACnC,GAAI,oBAAoB,SAAY,EAAE,gBAAgB,IAAI,CAAC;AAAA,IAC3D,GAAI,2BAA2B,SAAY,EAAE,uBAAuB,IAAI,CAAC;AAAA,IACzE,GAAI,eAAe,EAAE,aAAa,IAAI,CAAC;AAAA,EACzC,CAAC;AACD,QAAM,QAAQ,SAAS;AAEvB,4BAA0B,MAAM;AAC9B,QAAI,oBAAoB,OAAW,OAAM,oBAAoB,eAAe;AAAA,EAC9E,GAAG,CAAC,iBAAiB,KAAK,CAAC;AAE3B,4BAA0B,MAAM;AAC9B,QAAI,WAAW,WAAW,CAAC,OAAO,MAAM;AACtC,qBAAe,MAAM,WAAW,SAAS,MAAM,EAAE,eAAe,KAAK,CAAC,CAAC;AAAA,IACzE;AACA,eAAW,UAAU,OAAO;AAAA,EAC9B,GAAG,CAAC,OAAO,IAAI,CAAC;AAEhB,QAAM,cAAc,QAAQ,cAAc,WAAW,SAAS,CAAC;AAE/D,QAAM,eAAe;AAAA,IACnB,OAAO;AAAA,MACL,OAAO,OAAO;AAAA,MACd;AAAA,MACA;AAAA,MACA,aAAa,OAAO;AAAA,MACpB,WAAW,OAAO;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM,OAAO;AAAA,MACb,YAAY,OAAO;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,SAAO,oBAAC,kBAAe,OAAO,cAAe,UAAS;AACxD;AACA,WAAW,cAAc;AAElB,SAAS,cAAc,OAAgD;AAC5E,QAAM,EAAE,UAAU,WAAW,KAAK,GAAG,cAAc,IAAI;AACvD,QAAM,EAAE,WAAW,MAAM,YAAY,WAAW,IAAI,iBAAiB,SAAS;AAC9E,QAAM,YAAY,cAAc,YAAY,GAAG;AAE/C,SAAO,iBAAiB;AAAA,IACtB,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,KAAK;AAAA,MACL,MAAM;AAAA,MACN,qBAAqB;AAAA,MACrB,aAAa;AAAA,MACb,qBAAqB;AAAA,MACrB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,SAAS,qBAAqB,cAAc,SAAS,UAAU;AAAA,MAC/D,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MACjC;AAAA,IACF;AAAA,IACA,OAAO,CAAC;AAAA,EACV,CAAC;AACH;AAEO,SAAS,cAAc,OAAgD;AAC5E,QAAM,EAAE,UAAU,WAAW,KAAK,OAAO,eAAe,GAAG,cAAc,IAAI;AAC7E,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI,iBAAiB,SAAS;AAC9B,QAAM,eAAe,OAAiC,IAAI;AAC1D,QAAM,YAAY,cAAc,WAAW,cAAc,GAAG;AAC5D,QAAM,OAAO,kBAAkB,YAAY;AAC3C,QAAM,YAAY;AAAA,IAChB,CAAC,aAAa,MAAM,UAAU,QAAQ;AAAA,IACtC,MAAM,MAAM,aAAa;AAAA,IACzB,MAAM;AAAA,EACR;AACA,QAAM,aAAa;AAAA,IACjB,CAAC,aAAa,MAAM,UAAU,QAAQ;AAAA,IACtC,MAAM,MAAM,mBAAmB;AAAA,IAC/B,MAAM;AAAA,EACR;AAEA,4BAA0B,MAAM;AAC9B,QAAI,CAAC,KAAM;AACX,UAAM,WAAW,SAAS,SAAS,SAAS;AAC5C,UAAM,iBAAiB,WAAW,KAAK,SAAS,KAAK,KAAK;AAAA,EAC5D,GAAG,CAAC,MAAM,MAAM,KAAK,CAAC;AAEtB,QAAM,YACJ,eAAe,YACV;AAAA,IACC,4BAA4B;AAAA,IAC5B,uBAAuB,OAAO,UAAU;AAAA,EAC1C,IACA;AAEN,QAAM,UAAU,iBAAiB;AAAA,IAC/B,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,KAAK;AAAA,MACL,IAAI;AAAA,MACJ,oBAAoB;AAAA,MACpB,mBAAmB;AAAA,MACnB,cAAc,QAAQ,OAAO;AAAA,MAC7B,aAAa;AAAA,MACb,aAAa;AAAA,MACb,cAAc,OAAO,SAAS;AAAA,MAC9B,qBAAqB;AAAA,MACrB,qBAAqB,cAAc,KAAK;AAAA,MACxC,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MACjC,GAAI,iBAAiB,YAAY,EAAE,OAAO,EAAE,GAAG,eAAe,GAAG,UAAU,EAAE,IAAI,CAAC;AAAA,MAClF,UAAU;AAAA,QACR,cAAc;AAAA,QACd,CAAC,UAA6C;AAC5C,sBAAY,WAAW,KAAK;AAAA,QAC9B;AAAA,MACF;AAAA,MACA,SAAS;AAAA,QACP,cAAc;AAAA,QACd,CAAC,UAA6C;AAC5C,sBAAY,UAAU,KAAK;AAAA,QAC7B;AAAA,MACF;AAAA,MACA;AAAA,IACF;AAAA,IACA,OAAO,EAAE,MAAM,KAAK;AAAA,EACtB,CAAC;AAED,SAAO;AACT;AAEO,SAAS,YAAY,OAAiD;AAC3E,QAAM,EAAE,UAAU,UAAU,IAAI;AAChC,QAAM,KAAK,MAAM;AACjB,QAAM,EAAE,WAAW,IAAI,iBAAiB,OAAO;AAE/C,4BAA0B,MAAM;AAC9B,eAAW,EAAE;AACb,WAAO,MAAM,WAAW,MAAS;AAAA,EACnC,GAAG,CAAC,IAAI,UAAU,CAAC;AAEnB,SAAO,iBAAiB;AAAA,IACtB,YAAY;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb,qBAAqB;AAAA,MACrB,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MACjC;AAAA,IACF;AAAA,IACA,OAAO,CAAC;AAAA,EACV,CAAC;AACH;AAEO,SAAS,kBAAkB,OAAuD;AACvF,QAAM,EAAE,UAAU,UAAU,IAAI;AAChC,QAAM,KAAK,MAAM;AACjB,QAAM,EAAE,iBAAiB,IAAI,iBAAiB,aAAa;AAE3D,4BAA0B,MAAM;AAC9B,qBAAiB,EAAE;AACnB,WAAO,MAAM,iBAAiB,MAAS;AAAA,EACzC,GAAG,CAAC,IAAI,gBAAgB,CAAC;AAEzB,SAAO,iBAAiB;AAAA,IACtB,YAAY;AAAA,IACZ,OAAO;AAAA,MACL;AAAA,MACA,aAAa;AAAA,MACb,qBAAqB;AAAA,MACrB,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MACjC;AAAA,IACF;AAAA,IACA,OAAO,CAAC;AAAA,EACV,CAAC;AACH;AAEO,SAAS,YAAY,OAA8C;AACxE,QAAM,EAAE,UAAU,WAAW,GAAG,cAAc,IAAI;AAClD,QAAM,EAAE,MAAM,IAAI,iBAAiB,OAAO;AAE1C,SAAO,iBAAiB;AAAA,IACtB,YAAY;AAAA,IACZ,OAAO;AAAA,MACL,GAAG;AAAA,MACH,MAAM;AAAA,MACN,qBAAqB;AAAA,MACrB,aAAa;AAAA,MACb,qBAAqB;AAAA,MACrB,gBAAgB;AAAA,MAChB,SAAS,qBAAqB,cAAc,SAAS,MAAM;AACzD,cAAM;AAAA,MACR,CAAC;AAAA,MACD,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MACjC;AAAA,IACF;AAAA,IACA,OAAO,CAAC;AAAA,EACV,CAAC;AACH;AAEO,SAAS,aAAa,OAAkD;AAC7E,QAAM,EAAE,WAAW,iBAAiB,eAAe,eAAe,YAAY,IAAI;AAClF,QAAM,EAAE,MAAM,aAAa,MAAM,IAAI,iBAAiB,QAAQ;AAC9D,QAAM,WAAW;AAAA,IACf,CAAC,aAAa,MAAM,UAAU,QAAQ;AAAA,IACtC,MAAM,MAAM,WAAW;AAAA,IACvB,MAAM;AAAA,EACR;AAEA,QAAM,OAAO,SAAS,SAAS,SAAS,WAAW,YAAY;AAE/D,SAAO,iBAAiB;AAAA,IACtB,YAAY;AAAA,IACZ,OAAO,cACH;AAAA,MACE,eAAe;AAAA,MACf,aAAa;AAAA,MACb,qBAAqB;AAAA,MACrB,iBAAiB,WAAW,KAAK;AAAA,MACjC,aAAa;AAAA,MACb,GAAI,YAAY,EAAE,UAAU,IAAI,CAAC;AAAA,MACjC,eAAe;AAAA,QACb;AAAA,QACA,CAAC,UAAwC;AACvC,gBAAM,cAAc,kBAAkB,MAAM,SAAS;AACrD,gBAAM,UAAU,MAAM,IAAI,CAAC;AAAA,QAC7B;AAAA,MACF;AAAA,MACA,eAAe;AAAA,QACb;AAAA,QACA,CAAC,UAAwC;AACvC,cAAI,CAAC,MAAM,WAAW,EAAG;AACzB,gBAAM,SAAS,MAAM,IAAI,CAAC;AAAA,QAC5B;AAAA,MACF;AAAA,MACA,aAAa,qBAAqB,aAAa,CAAC,UAAwC;AACtF,YAAI,MAAM,cAAc,kBAAkB,MAAM,SAAS,GAAG;AAC1D,gBAAM,cAAc,sBAAsB,MAAM,SAAS;AAAA,QAC3D;AACA,cAAM,QAAQ;AAAA,MAChB,CAAC;AAAA,MACD,iBAAiB;AAAA,QACf;AAAA,QACA,CAAC,UAAwC;AACvC,cAAI,MAAM,cAAc,kBAAkB,MAAM,SAAS,GAAG;AAC1D,kBAAM,cAAc,sBAAsB,MAAM,SAAS;AAAA,UAC3D;AACA,gBAAM,QAAQ;AAAA,QAChB;AAAA,MACF;AAAA,IACF,IACA,EAAE,eAAe,MAAM,QAAQ,KAAK;AAAA,IACxC,OAAO,EAAE,SAAS;AAAA,EACpB,CAAC;AACH;AAEO,MAAM,SAAS;AAAA,EACpB,OAAO;AAAA,EACP,SAAS;AAAA,EACT,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AACX;","names":[]}
1
+ {"version":3,"sources":["../../../src/components/drawer/Drawer.tsx"],"sourcesContent":["\"use client\";\n\nimport { useMemo, useRef, useState, useSyncExternalStore } from \"react\";\nimport type { PointerEvent, ReactElement, SyntheticEvent } from \"react\";\nimport {\n useId,\n useIsomorphicLayoutEffect,\n useMergedRefs,\n useResizeObserver,\n useMediaQuery,\n} from \"@gunkin/uiify/hooks\";\nimport { createPartContext } from \"@gunkin/uiify/core\";\nimport { composeEventHandlers } from \"@gunkin/uiify/core/compose-event-handlers\";\nimport { useRenderElement } from \"@gunkin/uiify/core/render\";\nimport { useDialog } from \"@gunkin/uiify/core/dialog\";\nimport { createDrawerStore } from \"./drawer-store.js\";\nimport type {\n DrawerStore,\n DrawerContextValue,\n DrawerRootProps,\n DrawerTriggerProps,\n DrawerContentProps,\n DrawerTitleOwnProps,\n DrawerDescriptionOwnProps,\n DrawerCloseProps,\n DrawerHandleOwnProps,\n} from \"./types.js\";\n\nconst [DrawerProvider, useDrawerContext] = createPartContext<DrawerContextValue>(\"Drawer\");\n\nexport function DrawerRoot(props: DrawerRootProps): ReactElement | null {\n const {\n activeSnapPoint,\n closeOnOverlayClick = true,\n children,\n defaultActiveSnapPoint,\n defaultOpen,\n dismissible = true,\n modal = true,\n onOpenChange,\n onSnapChange,\n open,\n side = \"bottom\",\n snapPoints,\n } = props;\n const mobile = useMediaQuery(\"(width < 40rem)\");\n const effectiveSide = mobile ? \"bottom\" : side;\n const contentId = useId();\n const dialog = useDialog({\n modal,\n ...(defaultOpen !== undefined ? { defaultOpen } : {}),\n ...(open !== undefined ? { open } : {}),\n ...(onOpenChange ? { onOpenChange } : {}),\n });\n const [labelId, setLabelId] = useState<string | undefined>();\n const [descriptionId, setDescriptionId] = useState<string | undefined>();\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const wasOpenRef = useRef(dialog.open);\n const storeRef = useRef<DrawerStore | null>(null);\n storeRef.current ??= createDrawerStore({\n side: effectiveSide,\n dismissible,\n onDismiss: () => dialog.close(),\n ...(snapPoints ? { snapPoints } : {}),\n ...(activeSnapPoint !== undefined ? { activeSnapPoint } : {}),\n ...(defaultActiveSnapPoint !== undefined ? { defaultActiveSnapPoint } : {}),\n ...(onSnapChange ? { onSnapChange } : {}),\n });\n const store = storeRef.current;\n\n useIsomorphicLayoutEffect(() => {\n if (activeSnapPoint !== undefined) store.syncActiveSnapPoint(activeSnapPoint);\n }, [activeSnapPoint, store]);\n\n useIsomorphicLayoutEffect(() => {\n if (wasOpenRef.current && !dialog.open) {\n queueMicrotask(() => triggerRef.current?.focus({ preventScroll: true }));\n }\n wasOpenRef.current = dialog.open;\n }, [dialog.open]);\n\n useIsomorphicLayoutEffect(() => store.setSide(effectiveSide), [effectiveSide, store]);\n\n const snapEnabled = Boolean(snapPoints && snapPoints.length > 0);\n\n const contextValue = useMemo<DrawerContextValue>(\n () => ({\n close: dialog.close,\n contentId,\n descriptionId,\n dialogProps: dialog.dialogProps,\n dialogRef: dialog.dialogRef,\n dismissible,\n closeOnOverlayClick,\n labelId,\n modal,\n open: dialog.open,\n openDialog: dialog.openDialog,\n setDescriptionId,\n setLabelId,\n side: effectiveSide,\n snapEnabled,\n store,\n triggerRef,\n }),\n [\n contentId,\n descriptionId,\n dialog.close,\n dialog.dialogProps,\n dialog.dialogRef,\n dialog.open,\n dialog.openDialog,\n dismissible,\n closeOnOverlayClick,\n labelId,\n modal,\n effectiveSide,\n snapEnabled,\n store,\n ],\n );\n\n return <DrawerProvider value={contextValue}>{children}</DrawerProvider>;\n}\nDrawerRoot.displayName = \"DrawerRoot\";\n\nexport function DrawerTrigger(props: DrawerTriggerProps): ReactElement | null {\n const { children, className, ref, ...consumerProps } = props;\n const { contentId, open, openDialog, triggerRef } = useDrawerContext(\"Trigger\");\n const mergedRef = useMergedRefs(triggerRef, ref);\n\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n ref: mergedRef,\n type: \"button\",\n \"data-uiify-button\": \"\",\n \"data-part\": \"trigger\",\n \"data-uiify-drawer\": \"\",\n \"aria-controls\": contentId,\n \"aria-expanded\": open,\n \"aria-haspopup\": \"dialog\",\n onClick: composeEventHandlers(consumerProps.onClick, openDialog),\n ...(className ? { className } : {}),\n children,\n },\n state: {},\n });\n}\n\nexport function DrawerContent(props: DrawerContentProps): ReactElement | null {\n const {\n children,\n className,\n ref,\n style: consumerStyle,\n size: drawerSize,\n dismiss,\n backdrop,\n ...consumerProps\n } = props;\n const {\n contentId,\n descriptionId,\n dialogProps,\n dialogRef,\n dismissible,\n closeOnOverlayClick,\n labelId,\n modal,\n open,\n side,\n snapEnabled,\n store,\n } = useDrawerContext(\"Content\");\n const containerRef = useRef<HTMLDialogElement | null>(null);\n const mergedRef = useMergedRefs(dialogRef, containerRef, ref);\n const size = useResizeObserver(containerRef);\n const transform = useSyncExternalStore(\n (listener) => store.subscribe(listener),\n () => store.getTransform(),\n () => \"\",\n );\n const activeSnap = useSyncExternalStore(\n (listener) => store.subscribe(listener),\n () => store.getActiveSnapPoint(),\n () => 1,\n );\n\n useIsomorphicLayoutEffect(() => {\n if (!size) return;\n const vertical = side === \"top\" || side === \"bottom\";\n store.setContainerSize(vertical ? size.height : size.width);\n }, [side, size, store]);\n\n const styleVars =\n snapEnabled && transform\n ? ({\n \"--uiify-drawer-transform\": transform,\n \"--uiify-drawer-snap\": String(activeSnap),\n } as React.CSSProperties)\n : undefined;\n\n const content = useRenderElement({\n defaultTag: \"dialog\",\n props: {\n ...consumerProps,\n ref: mergedRef,\n id: contentId,\n \"aria-describedby\": descriptionId,\n \"aria-labelledby\": labelId,\n \"aria-modal\": modal ? true : undefined,\n \"data-size\": drawerSize,\n \"data-backdrop\": backdrop,\n closedby: dismiss ?? (dismissible ? (closeOnOverlayClick ? \"any\" : \"closerequest\") : \"none\"),\n \"data-part\": \"content\",\n \"data-side\": side,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-uiify-drawer\": \"\",\n \"data-snap-enabled\": snapEnabled ? \"\" : undefined,\n ...(className ? { className } : {}),\n ...(consumerStyle || styleVars ? { style: { ...consumerStyle, ...styleVars } } : {}),\n onCancel: composeEventHandlers(\n consumerProps.onCancel,\n (event: SyntheticEvent<HTMLDialogElement>) => {\n dialogProps.onCancel?.(event);\n },\n ),\n onClose: composeEventHandlers(\n consumerProps.onClose,\n (event: SyntheticEvent<HTMLDialogElement>) => {\n dialogProps.onClose?.(event);\n },\n ),\n children,\n },\n state: { open, side },\n });\n\n return content;\n}\n\nexport function DrawerTitle(props: DrawerTitleOwnProps): ReactElement | null {\n const { children, className, ...consumerProps } = props;\n const id = useId();\n const { setLabelId } = useDrawerContext(\"Title\");\n\n useIsomorphicLayoutEffect(() => {\n setLabelId(id);\n return () => setLabelId(undefined);\n }, [id, setLabelId]);\n\n return useRenderElement({\n defaultTag: \"h2\",\n props: {\n ...consumerProps,\n id,\n \"data-part\": \"title\",\n \"data-uiify-drawer\": \"\",\n ...(className ? { className } : {}),\n children,\n },\n state: {},\n });\n}\n\nexport function DrawerDescription(props: DrawerDescriptionOwnProps): ReactElement | null {\n const { children, className, ...consumerProps } = props;\n const id = useId();\n const { setDescriptionId } = useDrawerContext(\"Description\");\n\n useIsomorphicLayoutEffect(() => {\n setDescriptionId(id);\n return () => setDescriptionId(undefined);\n }, [id, setDescriptionId]);\n\n return useRenderElement({\n defaultTag: \"p\",\n props: {\n ...consumerProps,\n id,\n \"data-part\": \"description\",\n \"data-uiify-drawer\": \"\",\n ...(className ? { className } : {}),\n children,\n },\n state: {},\n });\n}\n\nexport function DrawerClose(props: DrawerCloseProps): ReactElement | null {\n const { children, className, ...consumerProps } = props;\n const { close } = useDrawerContext(\"Close\");\n\n return useRenderElement({\n defaultTag: \"button\",\n props: {\n ...consumerProps,\n type: \"button\",\n \"data-uiify-button\": \"\",\n \"data-part\": \"close\",\n \"data-uiify-drawer\": \"\",\n \"data-variant\": \"ghost\",\n onClick: composeEventHandlers(consumerProps.onClick, () => {\n close();\n }),\n ...(className ? { className } : {}),\n children,\n },\n state: {},\n });\n}\n\nexport function DrawerHandle(props: DrawerHandleOwnProps): ReactElement | null {\n const {\n className,\n onPointerCancel,\n onPointerDown,\n onPointerMove,\n onPointerUp,\n ...consumerProps\n } = props;\n const { side, snapEnabled, store } = useDrawerContext(\"Handle\");\n const dragging = useSyncExternalStore(\n (listener) => store.subscribe(listener),\n () => store.isDragging(),\n () => false,\n );\n\n const axis = side === \"top\" || side === \"bottom\" ? \"clientY\" : \"clientX\";\n\n return useRenderElement({\n defaultTag: \"div\",\n props: snapEnabled\n ? {\n ...consumerProps,\n \"aria-hidden\": true,\n \"data-part\": \"handle\",\n \"data-uiify-drawer\": \"\",\n \"data-dragging\": dragging ? \"\" : undefined,\n \"data-side\": side,\n ...(className ? { className } : {}),\n onPointerDown: composeEventHandlers(\n onPointerDown,\n (event: PointerEvent<HTMLDivElement>) => {\n event.currentTarget.setPointerCapture(event.pointerId);\n store.startDrag(event[axis]);\n },\n ),\n onPointerMove: composeEventHandlers(\n onPointerMove,\n (event: PointerEvent<HTMLDivElement>) => {\n if (!store.isDragging()) return;\n store.moveDrag(event[axis]);\n },\n ),\n onPointerUp: composeEventHandlers(onPointerUp, (event: PointerEvent<HTMLDivElement>) => {\n if (event.currentTarget.hasPointerCapture(event.pointerId)) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n }\n store.endDrag();\n }),\n onPointerCancel: composeEventHandlers(\n onPointerCancel,\n (event: PointerEvent<HTMLDivElement>) => {\n if (event.currentTarget.hasPointerCapture(event.pointerId)) {\n event.currentTarget.releasePointerCapture(event.pointerId);\n }\n store.endDrag();\n },\n ),\n }\n : {\n ...consumerProps,\n \"aria-hidden\": true,\n \"data-part\": \"handle\",\n \"data-uiify-drawer\": \"\",\n ...(className ? { className } : {}),\n },\n state: { dragging },\n });\n}\n\nexport const Drawer = {\n Close: DrawerClose,\n Content: DrawerContent,\n Description: DrawerDescription,\n Handle: DrawerHandle,\n Root: DrawerRoot,\n Title: DrawerTitle,\n Trigger: DrawerTrigger,\n};\n"],"mappings":"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","names":[]}
@@ -1,20 +1,12 @@
1
1
  import type { ReactElement } from "react";
2
- import type { DrawerProps } from "./types.js";
3
- /**
4
- * Monolithic native shell: a `command="show-modal"` trigger opens a plain,
5
- * initially closed `<dialog>`; a `command="request-close"` invoker closes it.
6
- * Works before hydration, matching Modal and AlertModal's native shell — all
7
- * three are built on `@gunkin/uiify/elements/dialog`. Always a true modal — controlled
8
- * or initially open state needs a client adapter, which this Tier 0 shell does
9
- * not have.
10
- *
11
- * `title` is required, so `aria-labelledby={titleId}` always satisfies
12
- * `Dialog.Content`'s accessible-name requirement here — unlike `ModalContent`/
13
- * `AlertModalContent`, which are exported as generic parts in their own right
14
- * and so keep a looser prop type (see ModalParts.tsx), this shell has no
15
- * public "DrawerContent" part to keep loose.
16
- */
17
- export declare function DrawerPanel({ id, trigger, title, description, children, closeLabel, side, className, }: DrawerProps): ReactElement;
2
+ import type { DrawerProps, DrawerNativeContentProps, DrawerNativeInvokerProps } from "./types.js";
3
+ export declare function DrawerNativeTrigger({ target, ...props }: DrawerNativeInvokerProps): ReactElement;
4
+ export declare function DrawerNativeClose({ target, ...props }: DrawerNativeInvokerProps): ReactElement;
5
+ export declare function DrawerNativeContent({ size, dismiss, backdrop, side, ...props }: DrawerNativeContentProps): ReactElement;
6
+ export declare namespace DrawerNativeContent {
7
+ var displayName: string;
8
+ }
9
+ export declare function DrawerPanel({ id, trigger, title, description, children, closeLabel, side, className, footer, size, dismiss, backdrop, }: DrawerProps): ReactElement;
18
10
  export declare namespace DrawerPanel {
19
11
  var displayName: string;
20
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerNative.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/DrawerNative.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAAC,EAC1B,EAAE,EACF,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,UAAoB,EACpB,IAAe,EACf,SAAS,GACV,EAAE,WAAW,GAAG,YAAY,CA2C5B;yBApDe,WAAW"}
1
+ {"version":3,"file":"DrawerNative.d.ts","sourceRoot":"","sources":["../../../src/components/drawer/DrawerNative.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAElG,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,wBAAwB,GAAG,YAAY,CAUhG;AACD,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,EAAE,wBAAwB,GAAG,YAAY,CAU9F;AACD,wBAAgB,mBAAmB,CAAC,EAClC,IAAI,EACJ,OAAe,EACf,QAAQ,EACR,IAAe,EACf,GAAG,KAAK,EACT,EAAE,wBAAwB,GAAG,YAAY,CAYzC;yBAlBe,mBAAmB;;;AAqBnC,wBAAgB,WAAW,CAAC,EAC1B,EAAE,EACF,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAQ,EACR,UAAoB,EACpB,IAAe,EACf,SAAS,EACT,MAAM,EACN,IAAI,EACJ,OAAO,EACP,QAAQ,GACT,EAAE,WAAW,GAAG,YAAY,CAsD5B;yBAnEe,WAAW"}