@jfrader/ui 0.5.0 → 0.6.0

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 (314) hide show
  1. package/README.md +18 -1
  2. package/dist/accordion-D6myONB9.js +206 -0
  3. package/dist/accordion.js +1 -1
  4. package/dist/activity-rings-Uszvwqdl.js +528 -0
  5. package/dist/activity-rings.js +2 -0
  6. package/dist/{alert-DS_einpy.js → alert-Bhj-qSMs.js} +15 -14
  7. package/dist/alert.js +1 -1
  8. package/dist/{announcement-bar-B58xempt.js → announcement-bar-B5J33QUh.js} +132 -131
  9. package/dist/announcement-bar.js +1 -1
  10. package/dist/avatar-B6idYC59.js +146 -0
  11. package/dist/{avatar-group-DOQQuV51.js → avatar-group-DvP8mAE-.js} +10 -9
  12. package/dist/avatar-group.js +1 -1
  13. package/dist/avatar.js +1 -1
  14. package/dist/badge-CfhTcA-Z.js +120 -0
  15. package/dist/badge.js +1 -1
  16. package/dist/billing-toggle-CgC7yxxo.js +349 -0
  17. package/dist/billing-toggle.js +2 -0
  18. package/dist/{bottom-sheet-DPJBFkie.js → bottom-sheet-BFQKO0Wo.js} +287 -268
  19. package/dist/bottom-sheet.js +1 -1
  20. package/dist/{breadcrumbs-Cfw_hgt2.js → breadcrumbs-CG3akw-b.js} +28 -20
  21. package/dist/breadcrumbs.js +1 -1
  22. package/dist/{button-C92uYFJW.js → button-C6OV0C7J.js} +21 -20
  23. package/dist/button-group-B9wP2ddS.js +611 -0
  24. package/dist/button-group.js +2 -0
  25. package/dist/button.js +1 -1
  26. package/dist/calendar-Bg6D2sul.js +377 -0
  27. package/dist/calendar.js +1 -1
  28. package/dist/calendar.utils-azmB4Ej7.js +79 -0
  29. package/dist/card-C008OQCp.js +164 -0
  30. package/dist/card.js +1 -1
  31. package/dist/carousel-lTH4Foke.js +475 -0
  32. package/dist/carousel.js +1 -1
  33. package/dist/chat-thread-DVa17BRC.js +864 -0
  34. package/dist/chat-thread.js +2 -0
  35. package/dist/{checkbox-cFquiSdy.js → checkbox-CClE61GV.js} +23 -21
  36. package/dist/checkbox.js +1 -1
  37. package/dist/{chip-group-DTQd_M-G.js → chip-group-BZUX9KPF.js} +19 -17
  38. package/dist/chip-group.js +1 -1
  39. package/dist/{choice-control-5kJkLXgv.js → choice-control-BsWOZPc9.js} +1 -1
  40. package/dist/{code-block-ahnRi-g8.js → code-block-CYP89_6h.js} +99 -97
  41. package/dist/code-block.js +1 -1
  42. package/dist/{combobox-Bhzvu9ma.js → combobox-D2Oc-co7.js} +131 -125
  43. package/dist/combobox.js +1 -1
  44. package/dist/command-palette-BrT1n9bb.js +394 -0
  45. package/dist/command-palette.js +1 -1
  46. package/dist/comment-thread-BnUHxviq.js +772 -0
  47. package/dist/comment-thread.js +2 -0
  48. package/dist/{container-BOaSptJa.js → container-BxtwJSSD.js} +3 -2
  49. package/dist/container.js +1 -1
  50. package/dist/context-menu-I4i0LRpm.js +371 -0
  51. package/dist/context-menu.js +2 -0
  52. package/dist/{copy-button-ByiA6D3R.js → copy-button-C0p_qrgf.js} +4 -4
  53. package/dist/copy-button.js +1 -1
  54. package/dist/{countdown-Dp_TD1VP.js → countdown-EcpV6rXy.js} +18 -17
  55. package/dist/countdown.js +1 -1
  56. package/dist/css-BYJhdGh-.js +2 -0
  57. package/dist/{date-picker-5zKSSuFF.js → date-picker-D-bn-iHs.js} +15 -14
  58. package/dist/date-picker.js +1 -1
  59. package/dist/date-range-picker-rXcZsI1Y.js +589 -0
  60. package/dist/date-range-picker.js +1 -1
  61. package/dist/dialog-CR1xdkrC.js +222 -0
  62. package/dist/dialog.js +1 -1
  63. package/dist/{divider-DYoJf0I_.js → divider-zOJzkcHh.js} +23 -21
  64. package/dist/divider.js +1 -1
  65. package/dist/drawer-CceaEhCr.js +590 -0
  66. package/dist/drawer.js +1 -1
  67. package/dist/{empty-state-CDgrjPPf.js → empty-state-DO0ApylK.js} +2 -1
  68. package/dist/empty-state.js +1 -1
  69. package/dist/{expandable-card-C-qJcZ14.js → expandable-card-W97vjix9.js} +59 -51
  70. package/dist/expandable-card.js +1 -1
  71. package/dist/expanding-search-Bb2_YfNx.js +239 -0
  72. package/dist/expanding-search.js +2 -0
  73. package/dist/{field-anatomy-COVdNpf5.js → field-anatomy-BDIP42MI.js} +2 -1
  74. package/dist/file-dropzone-Bi5ikRIz.js +458 -0
  75. package/dist/file-dropzone.js +1 -1
  76. package/dist/{filter-toolbar-D5KEKTSe.js → filter-toolbar-QRnC4S_H.js} +36 -33
  77. package/dist/filter-toolbar.js +1 -1
  78. package/dist/{flex-Dh-_J5-U.js → flex-CS7eMRcK.js} +2 -2
  79. package/dist/flex.js +1 -1
  80. package/dist/{hold-to-confirm-DjB2EVjM.js → hold-to-confirm-CVBA0wNT.js} +18 -17
  81. package/dist/hold-to-confirm.js +1 -1
  82. package/dist/{hover-card-B-nrCIy2.js → hover-card-DN1EAlQA.js} +26 -25
  83. package/dist/hover-card.js +1 -1
  84. package/dist/{icon-wrapper-stN8sD7R.js → icon-wrapper-C-zMD0uL.js} +1 -1
  85. package/dist/{image-compare-ciuhPtQZ.js → image-compare-Ln2UUqTU.js} +20 -19
  86. package/dist/image-compare.js +1 -1
  87. package/dist/index.js +98 -78
  88. package/dist/{inline-edit-C0eeml65.js → inline-edit-D-pR2RPC.js} +22 -21
  89. package/dist/inline-edit.js +1 -1
  90. package/dist/{input-control-DmMuAuPS.js → input-control-B6HVBgwl.js} +1 -1
  91. package/dist/{json-viewer-BcySQfjZ.js → json-viewer-Dro3WrjS.js} +34 -29
  92. package/dist/json-viewer.js +1 -1
  93. package/dist/{kbd-C3ACoMoE.js → kbd-BI_9qzYr.js} +2 -1
  94. package/dist/kbd.js +1 -1
  95. package/dist/keycap-keyboard-Cdx-OAS1.js +311 -0
  96. package/dist/keycap-keyboard.js +2 -0
  97. package/dist/{layout-style-Cbd1Vilw.js → layout-style-BE0gSqrH.js} +1 -1
  98. package/dist/lightbox-gallery-D0YaSTut.js +777 -0
  99. package/dist/lightbox-gallery.js +2 -0
  100. package/dist/link-unfurl-CReyIjyy.js +695 -0
  101. package/dist/link-unfurl.js +2 -0
  102. package/dist/{listbox-style-WX-RASp1.js → listbox-style-DNOxAulu.js} +1 -1
  103. package/dist/{loading-ring-B8-30Dl1.js → loading-ring-D0lGrK8z.js} +1 -1
  104. package/dist/locale-switcher-CZF7XNYG.js +295 -0
  105. package/dist/locale-switcher.js +2 -0
  106. package/dist/mention-input-BjjAbJCf.js +600 -0
  107. package/dist/mention-input.js +1 -1
  108. package/dist/menu-CVzpsyXn.js +312 -0
  109. package/dist/menu.js +1 -1
  110. package/dist/{metric-card-Bh9K4fZs.js → metric-card-BnFssTXj.js} +12 -11
  111. package/dist/metric-card.js +1 -1
  112. package/dist/{multi-select-Pce_IYnz.js → multi-select-B3puEVo0.js} +78 -69
  113. package/dist/multi-select.js +1 -1
  114. package/dist/{navigation-sP5fiuQS.js → navigation-C_JD43gA.js} +56 -49
  115. package/dist/navigation.js +1 -1
  116. package/dist/next.js +65 -0
  117. package/dist/now-playing-DjVm1Phm.js +439 -0
  118. package/dist/now-playing.js +2 -0
  119. package/dist/{overlay-layer-SeUyyEPD.js → overlay-layer-qEbpEtb8.js} +16 -2
  120. package/dist/overlay-motion-Cr77ihn2.js +90 -0
  121. package/dist/{overlay-portal-C4JZFq2M.js → overlay-portal-C9igMHnC.js} +1 -1
  122. package/dist/{pagination-DmXZ8E85.js → pagination-Dkh4bJQh.js} +31 -29
  123. package/dist/pagination.js +1 -1
  124. package/dist/{password-field-03pWRkuY.js → password-field-Da58GP1g.js} +4 -4
  125. package/dist/password-field.js +1 -1
  126. package/dist/photo-grid-Dtl17D74.js +830 -0
  127. package/dist/photo-grid.js +2 -0
  128. package/dist/pill-Dd7pog19.js +59 -0
  129. package/dist/pill.js +1 -1
  130. package/dist/popover-CUMOcMtj.js +126 -0
  131. package/dist/popover.js +1 -1
  132. package/dist/presence-spring-4zwtUDQN.js +12 -0
  133. package/dist/{progress-CbOWBUdA.js → progress-Bcuz3Ob4.js} +12 -11
  134. package/dist/progress.js +1 -1
  135. package/dist/{radio-cards-D2QZENI_.js → radio-cards-FkAhESb5.js} +65 -63
  136. package/dist/radio-cards.js +1 -1
  137. package/dist/{radio-group-E6mMRgo7.js → radio-group-DItMf2YM.js} +32 -28
  138. package/dist/radio-group.js +1 -1
  139. package/dist/{resizable-panels-BhjUVXZZ.js → resizable-panels-61h9hA3B.js} +16 -14
  140. package/dist/resizable-panels.js +1 -1
  141. package/dist/{scroll-area-CcZyiSOQ.js → scroll-area-B8KkCPOM.js} +16 -15
  142. package/dist/scroll-area.js +1 -1
  143. package/dist/{search-field-IxF0IJXm.js → search-field-CbsajaZb.js} +94 -93
  144. package/dist/search-field.js +1 -1
  145. package/dist/{segmented-control-yO1K1nbi.js → segmented-control-DCh-4ca-.js} +28 -26
  146. package/dist/segmented-control.js +1 -1
  147. package/dist/{select-n_H52W1Z.js → select-SrcQqZjo.js} +29 -27
  148. package/dist/select.js +1 -1
  149. package/dist/sheet-stack-DYX1SGSB.js +820 -0
  150. package/dist/sheet-stack.js +2 -0
  151. package/dist/shortcut-recorder-VgTQdjjn.js +688 -0
  152. package/dist/shortcut-recorder.js +2 -0
  153. package/dist/signature-pad-khL2yhQI.js +646 -0
  154. package/dist/signature-pad.js +1 -1
  155. package/dist/{skeleton-XQQDkCHd.js → skeleton-LJsQsveI.js} +9 -8
  156. package/dist/skeleton.js +1 -1
  157. package/dist/slider-DjAnGmlC.js +535 -0
  158. package/dist/slider.js +1 -1
  159. package/dist/{sortable-data-table-tirqlLY2.js → sortable-data-table-Bpitup_d.js} +29 -28
  160. package/dist/sortable-data-table.js +1 -1
  161. package/dist/{spinner-DtxvDPdM.js → spinner-CvzajSg9.js} +11 -10
  162. package/dist/spinner.js +1 -1
  163. package/dist/{split-button-Cb3EHs64.js → split-button-Bu41f2AY.js} +88 -93
  164. package/dist/split-button.js +1 -1
  165. package/dist/{stack-DC3IbtWk.js → stack-Bac4sJeI.js} +2 -2
  166. package/dist/stack.js +1 -1
  167. package/dist/{stepper-CruHbXxX.js → stepper-C8Ncavbr.js} +22 -21
  168. package/dist/stepper.js +1 -1
  169. package/dist/stretch-refresh-OrnTEj7P.js +349 -0
  170. package/dist/stretch-refresh.js +2 -0
  171. package/dist/{surface-DZ4d-2aL.js → surface-C69kwSuk.js} +13 -3
  172. package/dist/{swipe-actions-DiZC57-3.js → swipe-actions-1H5UOZKE.js} +29 -26
  173. package/dist/swipe-actions.js +1 -1
  174. package/dist/switch-79-hkQqg.js +146 -0
  175. package/dist/switch.js +1 -1
  176. package/dist/sx-BJXJ2xJK.js +23 -0
  177. package/dist/tabs-Bb5-noYE.js +211 -0
  178. package/dist/tabs.js +1 -1
  179. package/dist/{tag-input-DSRCyrX2.js → tag-input-BQaueKEb.js} +5 -5
  180. package/dist/tag-input.js +1 -1
  181. package/dist/{text-field-C8TWG-tY.js → text-field-D0VP7b4P.js} +18 -16
  182. package/dist/text-field.js +1 -1
  183. package/dist/{textarea-BrW0XcG_.js → textarea-D1YwEPmn.js} +21 -19
  184. package/dist/textarea.js +1 -1
  185. package/dist/theme-provider-BvcY-iJu.js +20 -0
  186. package/dist/theme-root-BrYVcTzt.js +163 -0
  187. package/dist/theme-root.js +1 -1
  188. package/dist/theme-scope-DGWy4H0C.js +62 -0
  189. package/dist/theme-switch-CP42mVDb.js +167 -0
  190. package/dist/theme-switch.js +2 -0
  191. package/dist/thread-parts-DfZNz70v.js +683 -0
  192. package/dist/{time-picker-Db8D49cP.js → time-picker-Tnd-JBLC.js} +39 -32
  193. package/dist/time-picker.js +1 -1
  194. package/dist/{timeline-k3nURuCP.js → timeline-DaldDMX7.js} +28 -21
  195. package/dist/timeline.js +1 -1
  196. package/dist/{toast-BHxI32ZA.js → toast-CSAbl5yK.js} +107 -87
  197. package/dist/{toast-stack-DqrAzdg5.js → toast-stack-BCR4Cu7V.js} +25 -10
  198. package/dist/toast-stack.js +1 -1
  199. package/dist/toast.js +1 -1
  200. package/dist/{toggle-group-fcjzpifI.js → toggle-group-C7ye1v4s.js} +24 -23
  201. package/dist/toggle-group.js +1 -1
  202. package/dist/tooltip-IajLwdUb.js +129 -0
  203. package/dist/tooltip.js +1 -1
  204. package/dist/{tree-view-C2liIxqy.js → tree-view-CoW4oJIZ.js} +18 -13
  205. package/dist/tree-view.js +1 -1
  206. package/dist/{trigger-style-B1KVC8O1.js → trigger-style-CtOrdPk4.js} +1 -1
  207. package/dist/types/components/activity-rings/activity-rings.d.ts +115 -0
  208. package/dist/types/components/activity-rings/index.d.ts +2 -0
  209. package/dist/types/components/billing-toggle/billing-toggle.d.ts +57 -0
  210. package/dist/types/components/billing-toggle/index.d.ts +2 -0
  211. package/dist/types/components/button-group/button-group.d.ts +72 -0
  212. package/dist/types/components/button-group/index.d.ts +2 -0
  213. package/dist/types/components/card/card.d.ts +4 -1
  214. package/dist/types/components/chat-thread/chat-thread.d.ts +130 -0
  215. package/dist/types/components/chat-thread/index.d.ts +2 -0
  216. package/dist/types/components/checkbox/checkbox.d.ts +1 -1
  217. package/dist/types/components/command-palette/command-palette.d.ts +1 -1
  218. package/dist/types/components/comment-thread/comment-thread.d.ts +118 -0
  219. package/dist/types/components/comment-thread/index.d.ts +1 -0
  220. package/dist/types/components/context-menu/context-menu.d.ts +55 -0
  221. package/dist/types/components/context-menu/index.d.ts +2 -0
  222. package/dist/types/components/date-range-picker/date-range-picker.d.ts +1 -1
  223. package/dist/types/components/drawer/drawer.d.ts +7 -1
  224. package/dist/types/components/expanding-search/expanding-search.d.ts +22 -0
  225. package/dist/types/components/expanding-search/index.d.ts +1 -0
  226. package/dist/types/components/keycap-keyboard/index.d.ts +2 -0
  227. package/dist/types/components/keycap-keyboard/keycap-keyboard.d.ts +32 -0
  228. package/dist/types/components/lightbox-gallery/index.d.ts +2 -0
  229. package/dist/types/components/lightbox-gallery/lightbox-gallery.d.ts +74 -0
  230. package/dist/types/components/link-unfurl/index.d.ts +2 -0
  231. package/dist/types/components/link-unfurl/link-unfurl.d.ts +94 -0
  232. package/dist/types/components/locale-switcher/index.d.ts +2 -0
  233. package/dist/types/components/locale-switcher/locale-switcher.d.ts +58 -0
  234. package/dist/types/components/menu/menu.d.ts +74 -7
  235. package/dist/types/components/next/emotion-registry.d.ts +16 -0
  236. package/dist/types/components/next/index.d.ts +2 -0
  237. package/dist/types/components/next/registry.d.ts +21 -0
  238. package/dist/types/components/now-playing/index.d.ts +1 -0
  239. package/dist/types/components/now-playing/now-playing.d.ts +88 -0
  240. package/dist/types/components/pagination/pagination.d.ts +1 -1
  241. package/dist/types/components/photo-grid/index.d.ts +2 -0
  242. package/dist/types/components/photo-grid/photo-grid.d.ts +82 -0
  243. package/dist/types/components/radio-cards/radio-cards.d.ts +1 -1
  244. package/dist/types/components/radio-group/radio-group.d.ts +1 -1
  245. package/dist/types/components/sheet-stack/index.d.ts +2 -0
  246. package/dist/types/components/sheet-stack/sheet-stack.d.ts +78 -0
  247. package/dist/types/components/shortcut-recorder/index.d.ts +2 -0
  248. package/dist/types/components/shortcut-recorder/shortcut-recorder.d.ts +117 -0
  249. package/dist/types/components/slider/slider-style.d.ts +14 -0
  250. package/dist/types/components/slider/slider.d.ts +2 -10
  251. package/dist/types/components/slider/use-slider-interaction.d.ts +79 -0
  252. package/dist/types/components/split-button/split-button.d.ts +2 -2
  253. package/dist/types/components/stretch-refresh/index.d.ts +1 -0
  254. package/dist/types/components/stretch-refresh/stretch-refresh.d.ts +49 -0
  255. package/dist/types/components/tabs/tabs.d.ts +1 -1
  256. package/dist/types/components/text-field/text-field.d.ts +1 -1
  257. package/dist/types/components/textarea/textarea.d.ts +1 -1
  258. package/dist/types/components/theme-root/index.d.ts +1 -0
  259. package/dist/types/components/theme-root/theme-root.d.ts +9 -1
  260. package/dist/types/components/theme-switch/index.d.ts +1 -0
  261. package/dist/types/components/theme-switch/theme-switch.d.ts +33 -0
  262. package/dist/types/components/thread/thread-core.d.ts +96 -0
  263. package/dist/types/components/thread/thread-parts.d.ts +119 -0
  264. package/dist/types/components/tooltip/tooltip.d.ts +9 -2
  265. package/dist/types/components/usage-meter/usage-meter.d.ts +2 -12
  266. package/dist/types/components/usage-meter/usage-model.d.ts +30 -0
  267. package/dist/types/components/user-menu/index.d.ts +2 -0
  268. package/dist/types/components/user-menu/user-menu.d.ts +119 -0
  269. package/dist/types/index.d.ts +18 -0
  270. package/dist/types/overlay/exit-motion.d.ts +24 -0
  271. package/dist/types/overlay/overlay-layer.d.ts +20 -0
  272. package/dist/types/overlay/presence-spring.d.ts +12 -0
  273. package/dist/types/overlay/use-native-dialog.d.ts +10 -1
  274. package/dist/types/overlay/use-overlay-floating.d.ts +9 -2
  275. package/dist/types/styling/create-theme.d.ts +24 -0
  276. package/dist/types/styling/css.d.ts +1 -1
  277. package/dist/types/styling/overlay-motion.d.ts +95 -0
  278. package/dist/types/styling/surface.d.ts +7 -0
  279. package/dist/types/styling/theme-scope.d.ts +29 -3
  280. package/dist/types/styling/theme.d.ts +5 -0
  281. package/dist/{usage-meter-qyQ3rYVv.js → usage-meter-CYvlB6l3.js} +165 -175
  282. package/dist/usage-meter.js +1 -1
  283. package/dist/usage-model-C0fS47w4.js +32 -0
  284. package/dist/use-native-dialog-FB0p7lkg.js +93 -0
  285. package/dist/{use-overlay-floating-DvJifLpF.js → use-overlay-floating-Bx2jBKAA.js} +8 -6
  286. package/dist/use-scroll-lock-40gXwwAy.js +23 -0
  287. package/dist/user-menu-DzELTg1x.js +757 -0
  288. package/dist/user-menu.js +2 -0
  289. package/dist/{visually-hidden-BJdvqqvn.js → visually-hidden-DgVO3NaB.js} +1 -1
  290. package/package.json +88 -2
  291. package/dist/accordion-xCI_u0BV.js +0 -198
  292. package/dist/avatar-BahDVO9t.js +0 -132
  293. package/dist/badge-B_sLygxU.js +0 -108
  294. package/dist/calendar-B3Svu0X2.js +0 -447
  295. package/dist/card-D-aI2QHx.js +0 -158
  296. package/dist/carousel-IvPqN-oM.js +0 -472
  297. package/dist/command-palette-BQ5LleGb.js +0 -384
  298. package/dist/date-range-picker-B5uFWsm-.js +0 -562
  299. package/dist/dialog-ciiv9H2b.js +0 -218
  300. package/dist/drawer-DsASTiP-.js +0 -553
  301. package/dist/file-dropzone-pR4v7owg.js +0 -457
  302. package/dist/mention-input-BcQKX2EJ.js +0 -599
  303. package/dist/menu-xwOOUtWP.js +0 -275
  304. package/dist/pill-DO2gHzMb.js +0 -56
  305. package/dist/popover-QHcEvf9c.js +0 -119
  306. package/dist/signature-pad-q2SAsrdD.js +0 -640
  307. package/dist/slider-t0B5cecO.js +0 -477
  308. package/dist/switch-qwv8jQnR.js +0 -142
  309. package/dist/sx-Dx9JUKp5.js +0 -23
  310. package/dist/tabs-CAVJndX1.js +0 -203
  311. package/dist/theme-root-BbTBuLMQ.js +0 -46
  312. package/dist/theme-scope-t7nAKc2c.js +0 -27
  313. package/dist/tooltip-CkeiW9C1.js +0 -113
  314. package/dist/use-native-dialog-DWpIUVO1.js +0 -84
@@ -0,0 +1,820 @@
1
+ 'use client';
2
+ import { a as e, i as t } from "./css-BYJhdGh-.js";
3
+ import { n, t as r } from "./focus-ring-BK5W5_NY.js";
4
+ import { n as i, r as a } from "./media-8yrN85VT.js";
5
+ import { t as o } from "./sx-BJXJ2xJK.js";
6
+ import { t as s } from "./use-controlled-state-DpeVQZNR.js";
7
+ import { t as c } from "./renderable-DzcIj1Lo.js";
8
+ import { n as l, t as u } from "./surface-C69kwSuk.js";
9
+ import { t as d } from "./trigger-style-CtOrdPk4.js";
10
+ import { i as f, r as p } from "./use-native-dialog-FB0p7lkg.js";
11
+ import { createContext as m, useCallback as h, useContext as g, useEffect as _, useId as v, useLayoutEffect as y, useMemo as b, useRef as x, useState as S } from "react";
12
+ import { vars as C } from "@jfrader/tokens/vars";
13
+ import { jsx as w, jsxs as T } from "@emotion/react/jsx-runtime";
14
+ import { animate as E } from "motion/react";
15
+ import { base as D } from "@jfrader/tokens";
16
+ import { FloatingFocusManager as O, useFloating as k, useMergeRefs as A } from "@floating-ui/react";
17
+ import { createPortal as j } from "react-dom";
18
+ //#region src/components/sheet-stack/sheet-stack.tsx
19
+ var M = m(null), ee = m(null);
20
+ function N(e) {
21
+ let t = g(M);
22
+ if (!t) throw Error(`SheetStack.${e} must be rendered inside <SheetStack>.`);
23
+ return t;
24
+ }
25
+ function P(e) {
26
+ let t = g(ee);
27
+ if (!t) throw Error(`SheetStack.${e} must be rendered inside <SheetStack.Content>.`);
28
+ return t;
29
+ }
30
+ function F() {
31
+ let { value: e, push: t, pop: n, popTo: r, close: i } = N("useSheetStack");
32
+ return b(() => ({
33
+ value: e,
34
+ push: t,
35
+ pop: n,
36
+ popTo: r,
37
+ close: i
38
+ }), [
39
+ e,
40
+ t,
41
+ n,
42
+ r,
43
+ i
44
+ ]);
45
+ }
46
+ var I = {
47
+ distanceRatio: .35,
48
+ velocity: 450,
49
+ opposingResistance: .2,
50
+ velocityWindowMs: 100,
51
+ releaseSpring: {
52
+ type: "spring",
53
+ stiffness: 400,
54
+ damping: 40,
55
+ mass: 1
56
+ }
57
+ }, L = "(prefers-reduced-motion: reduce)", R = "[data-sheet-no-drag]", te = "[data-floating-ui-portal]:not(:empty), dialog[open]", z = Number.parseFloat(D.size.sheetStackBreakpoint), B = [], V = C.space[4], H = `calc(${C.space[6]} + env(safe-area-inset-top, 0px))`, ne = "32rem", U = "12rem", W = .05, G = "var(--sheet-stack-depth, 0)", K = "var(--sheet-stack-index, 0)", q = "var(--sheet-stack-active-size, 0px)", J = e({ from: {
58
+ opacity: 0,
59
+ transform: "translateY(100%)"
60
+ } }), Y = e({ from: {
61
+ opacity: 0,
62
+ transform: "scale(0.96)"
63
+ } }), X = t({
64
+ ...u,
65
+ position: "fixed",
66
+ inset: 0,
67
+ margin: 0,
68
+ inlineSize: "100%",
69
+ blockSize: "100%",
70
+ maxInlineSize: "none",
71
+ maxBlockSize: "none",
72
+ overflow: "hidden",
73
+ "&[open]": { display: "block" }
74
+ }), Z = t({
75
+ position: "absolute",
76
+ inset: 0,
77
+ overflow: "hidden",
78
+ borderRadius: "inherit"
79
+ }), re = t({
80
+ position: "absolute",
81
+ inset: 0,
82
+ backgroundColor: C.color.scrim
83
+ }), ie = t({
84
+ position: "absolute",
85
+ inset: 0,
86
+ pointerEvents: "none"
87
+ }), ae = t({
88
+ ...l,
89
+ position: "absolute",
90
+ zIndex: K,
91
+ display: "flex",
92
+ flexDirection: "column",
93
+ minBlockSize: 0,
94
+ boxShadow: C.shadow.floating,
95
+ pointerEvents: "auto",
96
+ overflow: "hidden",
97
+ "&:focus-visible": { ...r },
98
+ transformOrigin: "top center",
99
+ transitionProperty: "transform, min-block-size",
100
+ transitionDuration: C.motion.duration.slow,
101
+ transitionTimingFunction: C.motion.easeStandard,
102
+ animationDuration: C.motion.duration.slow,
103
+ animationTimingFunction: C.motion.easeStandard,
104
+ animationFillMode: "backwards",
105
+ [a]: {
106
+ animation: "none",
107
+ transitionDuration: "0s"
108
+ },
109
+ [i]: {
110
+ boxShadow: "none",
111
+ borderColor: "CanvasText"
112
+ }
113
+ });
114
+ function Q(e, t) {
115
+ return `min(100%, max(${U}, calc(100% - ${e} - ${K} * ${t})))`;
116
+ }
117
+ var oe = {
118
+ sheet: t({
119
+ insetInline: 0,
120
+ insetBlockEnd: 0,
121
+ marginInline: "auto",
122
+ inlineSize: "100%",
123
+ maxInlineSize: C.size.sheetStackBreakpoint,
124
+ maxBlockSize: Q(H, C.size.sheetStackSheetPeek),
125
+ borderBlockEndWidth: 0,
126
+ borderStartStartRadius: C.radius.xl,
127
+ borderStartEndRadius: C.radius.xl,
128
+ paddingBlockEnd: "env(safe-area-inset-bottom, 0px)",
129
+ animationName: J,
130
+ [i]: { borderBlockEndWidth: "1px" }
131
+ }),
132
+ dialog: t({
133
+ inset: 0,
134
+ margin: "auto",
135
+ inlineSize: `min(${ne}, calc(100% - 2 * ${V}))`,
136
+ blockSize: "fit-content",
137
+ maxBlockSize: Q(`2 * ${V}`, C.size.sheetStackDialogPeek),
138
+ borderRadius: C.radius.lg,
139
+ animationName: Y
140
+ })
141
+ }, se = `scale(calc(1 - ${G} * ${W}))`, ce = {
142
+ sheet: t({
143
+ animationName: "none",
144
+ minBlockSize: `calc(${q} + ${G} * ${C.size.sheetStackSheetPeek})`,
145
+ transform: se
146
+ }),
147
+ dialog: t({
148
+ animationName: "none",
149
+ minBlockSize: q,
150
+ transform: `translateY(calc(-1 * ${G} * ${C.size.sheetStackDialogPeek})) ${se}`
151
+ })
152
+ }, le = t({
153
+ flexShrink: 0,
154
+ display: "flex",
155
+ justifyContent: "center",
156
+ alignItems: "center",
157
+ blockSize: C.space[8],
158
+ cursor: "grab",
159
+ touchAction: "none",
160
+ "&::before": {
161
+ content: "\"\"",
162
+ inlineSize: C.space[10],
163
+ blockSize: C.space[1],
164
+ borderRadius: C.radius.full,
165
+ backgroundColor: C.color.borderControl
166
+ },
167
+ "&[data-dragging]": { cursor: "grabbing" },
168
+ "[data-variant=\"dialog\"] > &": { display: "none" },
169
+ "[data-sheet-no-drag] > &": {
170
+ cursor: "auto",
171
+ touchAction: "auto"
172
+ },
173
+ [a]: {
174
+ cursor: "auto",
175
+ touchAction: "auto"
176
+ },
177
+ [i]: { "&::before": { backgroundColor: "CanvasText" } }
178
+ }), ue = t({
179
+ flex: "1 1 auto",
180
+ minBlockSize: 0,
181
+ overflow: "auto",
182
+ overscrollBehavior: "contain",
183
+ display: "flex",
184
+ flexDirection: "column",
185
+ gap: C.space[2],
186
+ paddingInline: C.space[5],
187
+ paddingBlockStart: C.space[4],
188
+ fontSize: C.textSize.sm,
189
+ "[data-variant=\"sheet\"] > &": { paddingBlockStart: C.space[1] },
190
+ "&:not(:has(> [data-ui~=\"sheet-stack-footer\"]))": { paddingBlockEnd: C.space[5] }
191
+ }), de = t({
192
+ position: "sticky",
193
+ insetBlockEnd: 0,
194
+ marginBlockStart: "auto",
195
+ marginInline: `calc(-1 * ${C.space[5]})`,
196
+ display: "flex",
197
+ flexWrap: "wrap",
198
+ justifyContent: "flex-end",
199
+ alignItems: "center",
200
+ gap: C.space[3],
201
+ paddingInline: C.space[5],
202
+ paddingBlock: C.space[4],
203
+ backgroundColor: C.color.surfaceRaised,
204
+ borderBlockStart: `1px solid ${C.color.border}`
205
+ }), fe = t({
206
+ margin: 0,
207
+ fontSize: C.textSize.lg,
208
+ fontWeight: C.fontWeight.semibold,
209
+ lineHeight: C.lineHeight.tight,
210
+ borderRadius: C.radius.sm,
211
+ "&:focus": { outline: "none" },
212
+ "&:focus-visible": { ...n },
213
+ [i]: { "&:focus-visible": { outlineColor: "Highlight" } }
214
+ }), pe = t({
215
+ margin: 0,
216
+ color: C.color.textMuted
217
+ }), $ = t({
218
+ appearance: "none",
219
+ display: "inline-flex",
220
+ alignItems: "center",
221
+ justifyContent: "center",
222
+ gap: C.space[1],
223
+ alignSelf: "flex-start",
224
+ boxSizing: "border-box",
225
+ minBlockSize: C.space[8],
226
+ minInlineSize: C.space[8],
227
+ border: "1px solid transparent",
228
+ borderRadius: C.radius.md,
229
+ backgroundColor: "transparent",
230
+ paddingBlock: C.space[1],
231
+ paddingInline: C.space[2],
232
+ font: "inherit",
233
+ fontSize: C.textSize.sm,
234
+ fontWeight: C.fontWeight.medium,
235
+ color: C.color.textMuted,
236
+ cursor: "pointer",
237
+ transitionProperty: "background-color, color",
238
+ transitionDuration: C.motion.duration.fast,
239
+ transitionTimingFunction: C.motion.easeStandard,
240
+ "& > svg": {
241
+ inlineSize: "1em",
242
+ blockSize: "1em",
243
+ flexShrink: 0
244
+ },
245
+ "&:hover:not(:disabled)": {
246
+ backgroundColor: C.color.surfaceHover,
247
+ color: C.color.text
248
+ },
249
+ "&:focus-visible": { ...n },
250
+ "&:disabled": {
251
+ opacity: .55,
252
+ cursor: "not-allowed"
253
+ },
254
+ [a]: { transitionDuration: "0s" },
255
+ [i]: {
256
+ borderColor: "ButtonBorder",
257
+ "&:focus-visible": { outlineColor: "Highlight" }
258
+ }
259
+ }), me = t({ "&:dir(rtl)": { transform: "scaleX(-1)" } });
260
+ function he(e) {
261
+ return c(e) && e !== "";
262
+ }
263
+ function ge(e, t) {
264
+ return e.length === t.length && e.every((e, n) => e === t[n]);
265
+ }
266
+ function _e(...e) {
267
+ return e.filter(Boolean).join(" ") || void 0;
268
+ }
269
+ function ve(e) {
270
+ process.env.NODE_ENV !== "production" && console.warn(`SheetStack: ${e}`);
271
+ }
272
+ function ye(e, t) {
273
+ let n = /* @__PURE__ */ new Set();
274
+ return e.filter((e) => !t.has(e) || n.has(e) ? !1 : (n.add(e), !0));
275
+ }
276
+ function be(e) {
277
+ return !!(e?.isConnected && typeof e.focus == "function");
278
+ }
279
+ function xe(e) {
280
+ let t = e.getBoundingClientRect().width;
281
+ return t > 0 || !(e instanceof HTMLDialogElement) ? t : e.ownerDocument.documentElement.clientWidth;
282
+ }
283
+ function Se(e, t, n, r) {
284
+ let [i, a] = S(!1);
285
+ return y(() => {
286
+ if (n !== "auto" || !e || !t) return;
287
+ let i = (e) => {
288
+ e > 0 && a(e >= r);
289
+ };
290
+ i(xe(e));
291
+ let o = e.ownerDocument.defaultView;
292
+ if (!o || o.ResizeObserver === void 0) return;
293
+ let s = new o.ResizeObserver(([e]) => i(e?.contentRect.width ?? 0));
294
+ return s.observe(e), () => s.disconnect();
295
+ }, [
296
+ e,
297
+ t,
298
+ n,
299
+ r
300
+ ]), n === "auto" ? i ? "dialog" : "sheet" : n;
301
+ }
302
+ function Ce({ value: e, defaultValue: t, onValueChange: n, variant: r = "auto", breakpoint: i = z, contained: a = !1, children: o }) {
303
+ let [c = B, l] = s(e, t ?? B, n), u = x(/* @__PURE__ */ new Map()), [d, p] = S(0), [m, g] = S(null), [v, y] = S(null), [C, E] = S({
304
+ label: void 0,
305
+ labelledBy: void 0,
306
+ describedBy: void 0
307
+ }), D = x(!1), O = b(() => ye(c, u.current), [c, d]), k = x(O);
308
+ k.current = O;
309
+ let A = O.length > 0, j = Se(v, A, r, i), ee = x("");
310
+ _(() => {
311
+ let e = u.current, t = c.filter((t) => !e.has(t)), n = [t.length > 0 && `unknown sheet keys ${JSON.stringify(t)}`, new Set(c).size !== c.length && `duplicate sheet keys in ${JSON.stringify(c)}`].filter(Boolean), r = n.length > 0 ? `ignoring ${n.join(" and ")}.` : "";
312
+ r && r !== ee.current && ve(r), ee.current = r;
313
+ }, [c, d]);
314
+ let N = h((e, t) => {
315
+ let n = u.current;
316
+ n.has(e) && n.get(e) !== t && ve(`more than one Content declares "${e}".`), n.set(e, t), p((e) => e + 1);
317
+ }, []), P = h((e, t) => {
318
+ u.current.get(e) === t && (u.current.delete(e), p((e) => e + 1));
319
+ }, []), F = h((e) => {
320
+ E((t) => t.label === e.label && t.labelledBy === e.labelledBy && t.describedBy === e.describedBy ? t : e);
321
+ }, []), I = h((e) => {
322
+ e || l([]);
323
+ }, [l]), L = f(A, I), { setOpen: R } = L, te = x(null), V = h((e) => {
324
+ let t = k.current;
325
+ if (e.length > 0 && !a && R(!0), ge(e, t)) return;
326
+ let n = v?.ownerDocument ?? (typeof document > "u" ? void 0 : document);
327
+ te.current = n?.activeElement ?? null, l([...e]);
328
+ }, [
329
+ a,
330
+ R,
331
+ v,
332
+ l
333
+ ]), H = h((e) => {
334
+ if (!u.current.has(e)) {
335
+ ve(`push("${e}") ignored: no Content declares it.`);
336
+ return;
337
+ }
338
+ let t = k.current, n = t.indexOf(e);
339
+ V(n === -1 ? [...t, e] : t.slice(0, n + 1));
340
+ }, [V]), ne = h((e) => {
341
+ let t = k.current.indexOf(e);
342
+ t === -1 ? ve(`popTo("${e}") ignored: the sheet is not open.`) : V(k.current.slice(0, t + 1));
343
+ }, [V]), U = h(() => {
344
+ k.current.length > 0 && V(k.current.slice(0, -1));
345
+ }, [V]), W = h(() => {
346
+ k.current.length > 0 && V(B);
347
+ }, [V]), G = h(() => {
348
+ let e = k.current.at(-1), t = e === void 0 ? void 0 : u.current.get(e);
349
+ if (!t?.dismissible) return;
350
+ let n = new Event("cancel", { cancelable: !0 });
351
+ t.onCancel?.(n), n.defaultPrevented || U();
352
+ }, [U]);
353
+ we(O, u, te, a);
354
+ let K = b(() => ({
355
+ value: O,
356
+ push: H,
357
+ pop: U,
358
+ popTo: ne,
359
+ close: W,
360
+ contained: a,
361
+ variant: j,
362
+ stage: m,
363
+ setStage: g,
364
+ setLayer: y,
365
+ register: N,
366
+ unregister: P,
367
+ setNaming: F,
368
+ dismissTop: G,
369
+ escapeOwnedByChildRef: D
370
+ }), [
371
+ O,
372
+ H,
373
+ U,
374
+ ne,
375
+ W,
376
+ a,
377
+ j,
378
+ m,
379
+ N,
380
+ P,
381
+ F,
382
+ G
383
+ ]);
384
+ return /* @__PURE__ */ T(M.Provider, {
385
+ value: K,
386
+ children: [o, a ? /* @__PURE__ */ w(De, {
387
+ open: A,
388
+ variant: j
389
+ }) : /* @__PURE__ */ w(Ee, {
390
+ native: {
391
+ ...L,
392
+ open: A
393
+ },
394
+ naming: C,
395
+ variant: j
396
+ })]
397
+ });
398
+ }
399
+ Ce.displayName = "SheetStack";
400
+ function we(e, t, n, r) {
401
+ let i = x(B), a = x(/* @__PURE__ */ new Map()), o = x(null);
402
+ y(() => {
403
+ let r = i.current;
404
+ if (ge(r, e)) return;
405
+ let s = e.at(-1), c = s === void 0 ? null : t.current.get(s)?.panel ?? null, l = c?.ownerDocument.activeElement;
406
+ o.current = c && l && c.contains(l) && l !== c ? l : null;
407
+ let u = n.current ?? (o.current ? null : l ?? null);
408
+ n.current = null;
409
+ for (let t of e) r.includes(t) || a.current.set(t, u);
410
+ }, [
411
+ e,
412
+ t,
413
+ n
414
+ ]), _(() => {
415
+ let n = i.current;
416
+ if (i.current = e, ge(n, e)) return;
417
+ let r = a.current, s = e.at(-1);
418
+ if (s === void 0) {
419
+ let e = n[0] === void 0 ? void 0 : r.get(n[0]);
420
+ be(e) && e.focus();
421
+ } else {
422
+ let e = t.current.get(s)?.panel;
423
+ if (e) {
424
+ let t = n.includes(s), i = t ? n[n.indexOf(s) + 1] : void 0, a = i === void 0 ? void 0 : r.get(i);
425
+ (t ? be(a) && e.contains(a) ? a : Te(e) : o.current ?? e.querySelector("[autofocus]") ?? Te(e)).focus();
426
+ }
427
+ }
428
+ o.current = null;
429
+ for (let t of r.keys()) e.includes(t) || r.delete(t);
430
+ }, [e, t]), _(() => () => {
431
+ if (!r) return;
432
+ let e = i.current[0], t = e === void 0 ? void 0 : a.current.get(e);
433
+ be(t) && t.focus();
434
+ }, [r]);
435
+ }
436
+ function Te(e) {
437
+ return e.querySelector("[data-ui~=\"sheet-stack-title\"]") ?? e.querySelector("[data-ui~=\"sheet-stack-back\"]:not(:disabled)") ?? e;
438
+ }
439
+ function Ee({ native: e, naming: t, variant: n }) {
440
+ let { setStage: r, setLayer: i, dismissTop: a, escapeOwnedByChildRef: o } = N("Layer"), s = x(null), c = (e) => {
441
+ e.target === s.current && (e.preventDefault(), o.current ? o.current = !1 : e.nativeEvent.cancelable && a());
442
+ }, l = p({
443
+ ...e,
444
+ requestClose: a
445
+ }, { onCancel: c }, void 0, s), u = A([l.ref, i]);
446
+ return /* @__PURE__ */ w("dialog", {
447
+ ...l,
448
+ ref: u,
449
+ "data-ui": "sheet-stack-layer",
450
+ "data-variant": n,
451
+ "aria-modal": "true",
452
+ "aria-label": t.label,
453
+ "aria-labelledby": t.labelledBy,
454
+ "aria-describedby": t.describedBy,
455
+ css: X,
456
+ children: /* @__PURE__ */ w("div", {
457
+ ref: r,
458
+ "data-ui": "sheet-stack-stage",
459
+ css: ie
460
+ })
461
+ });
462
+ }
463
+ Ee.displayName = "SheetStack.Layer";
464
+ function De({ open: e, variant: t }) {
465
+ let { setStage: n, setLayer: r, dismissTop: i } = N("Layer"), [a, o] = S(null), { context: s } = k({
466
+ open: e,
467
+ elements: { floating: a }
468
+ }), c = A([o, r]);
469
+ return /* @__PURE__ */ w(O, {
470
+ context: s,
471
+ disabled: !e || !a,
472
+ modal: !0,
473
+ outsideElementsInert: !0,
474
+ initialFocus: -1,
475
+ returnFocus: !1,
476
+ closeOnFocusOut: !1,
477
+ children: /* @__PURE__ */ T("div", {
478
+ ref: c,
479
+ "data-ui": "sheet-stack-layer",
480
+ "data-contained": "",
481
+ "data-variant": t,
482
+ hidden: !e,
483
+ css: Z,
484
+ children: [/* @__PURE__ */ w("div", {
485
+ "data-ui": "sheet-stack-scrim",
486
+ "aria-hidden": "true",
487
+ css: re,
488
+ onClick: i
489
+ }), /* @__PURE__ */ w("div", {
490
+ ref: n,
491
+ "data-ui": "sheet-stack-stage",
492
+ css: ie
493
+ })]
494
+ })
495
+ });
496
+ }
497
+ De.displayName = "SheetStack.Layer";
498
+ function Oe({ ref: e, value: t, onClick: n, className: r, sx: i, ...a }) {
499
+ let { value: s, push: c } = N("Trigger"), l = (e) => {
500
+ n?.(e), e.defaultPrevented || c(t);
501
+ };
502
+ return /* @__PURE__ */ w(o, {
503
+ className: r,
504
+ styles: d,
505
+ sx: i,
506
+ children: (n) => /* @__PURE__ */ w("button", {
507
+ type: "button",
508
+ ...a,
509
+ ref: e,
510
+ "data-ui": "sheet-stack-trigger",
511
+ "aria-haspopup": "dialog",
512
+ "aria-expanded": s.includes(t),
513
+ onClick: l,
514
+ className: n
515
+ })
516
+ });
517
+ }
518
+ Oe.displayName = "SheetStack.Trigger";
519
+ function ke(e, t, n) {
520
+ let r = x(null), i = x(null), a = x(0), o = h(() => {
521
+ i.current?.stop(), i.current = null, r.current = null, a.current = 0, t.current && (t.current.style.translate = "");
522
+ }, [t]);
523
+ return _(() => o, [o]), b(() => {
524
+ if (!e) return null;
525
+ let o = (e, t) => {
526
+ a.current = t, e.style.translate = t === 0 ? "" : `0 ${t}px`;
527
+ }, s = (e, a) => {
528
+ let s = r.current, c = t.current;
529
+ if (!s || s.pointerId !== e.pointerId) return;
530
+ r.current = null, e.currentTarget.removeAttribute("data-dragging");
531
+ let l = [...s.samples, {
532
+ position: e.clientY,
533
+ time: e.timeStamp
534
+ }].filter((t) => e.timeStamp - t.time <= I.velocityWindowMs), u = l[0], d = l.at(-1), f = u && d ? (d.time - u.time) / 1e3 : 0, p = u && d && f > 0 ? (d.position - u.position) / f : 0;
535
+ a && (s.offset >= s.extent * I.distanceRatio || p >= I.velocity) && n(), c && c.isConnected && s.offset !== 0 && (i.current = E(s.offset, 0, {
536
+ ...I.releaseSpring,
537
+ velocity: p,
538
+ onUpdate: (e) => o(c, e)
539
+ }));
540
+ };
541
+ return {
542
+ onPointerDown: (e) => {
543
+ let n = t.current;
544
+ if (!e.isPrimary || e.button !== 0 || !n || e.target instanceof Element && e.target.closest(R) || n.ownerDocument.defaultView?.matchMedia(L).matches) return;
545
+ i.current?.stop();
546
+ let o = a.current;
547
+ r.current = {
548
+ pointerId: e.pointerId,
549
+ start: e.clientY - o,
550
+ extent: n.getBoundingClientRect().height,
551
+ offset: o,
552
+ samples: [{
553
+ position: e.clientY,
554
+ time: e.timeStamp
555
+ }]
556
+ }, e.currentTarget.setPointerCapture?.(e.pointerId), e.currentTarget.setAttribute("data-dragging", "");
557
+ },
558
+ onPointerMove: (e) => {
559
+ let n = r.current, i = t.current;
560
+ if (!n || n.pointerId !== e.pointerId || !i) return;
561
+ let a = e.clientY - n.start;
562
+ n.offset = a >= 0 ? a : a * I.opposingResistance, n.samples = [...n.samples, {
563
+ position: e.clientY,
564
+ time: e.timeStamp
565
+ }].filter((t) => e.timeStamp - t.time <= I.velocityWindowMs), o(i, n.offset);
566
+ },
567
+ onPointerUp: (e) => s(e, !0),
568
+ onPointerCancel: (e) => s(e, !1),
569
+ onLostPointerCapture: (e) => s(e, !1)
570
+ };
571
+ }, [
572
+ e,
573
+ t,
574
+ n
575
+ ]);
576
+ }
577
+ function Ae({ ref: e, value: t, className: n, sx: r, ...i }) {
578
+ let { children: a, dismissible: s = !0, onCancel: c, withDescription: l = !0, onKeyDown: u, onKeyDownCapture: d, onKeyUp: f, style: p, "aria-label": m, "aria-labelledby": g, "aria-describedby": _, ...C } = i, E = N("Content"), { contained: D, variant: O, stage: k, register: M, unregister: P, setNaming: F, dismissTop: I, escapeOwnedByChildRef: L } = E, R = v(), z = `${R}-title`, B = `${R}-description`, [V, H] = S(!1), [ne, U] = S(!1), W = x(null), G = E.value.indexOf(t), K = G !== -1, q = E.value.length - 1 - G, J = K && q === 0, [Y] = S(() => ({
579
+ dismissible: s,
580
+ onCancel: c,
581
+ panel: null
582
+ }));
583
+ y(() => {
584
+ Y.dismissible = s, Y.onCancel = c;
585
+ }), y(() => (M(t, Y), () => P(t, Y)), [
586
+ t,
587
+ Y,
588
+ M,
589
+ P
590
+ ]);
591
+ let X = _e(g, V && z), Z = _e(_, l && ne && B);
592
+ y(() => {
593
+ J && !D && F({
594
+ label: m,
595
+ labelledBy: X,
596
+ describedBy: Z
597
+ });
598
+ }, [
599
+ J,
600
+ D,
601
+ m,
602
+ X,
603
+ Z,
604
+ F
605
+ ]), y(() => {
606
+ let e = W.current, t = e?.ownerDocument.defaultView;
607
+ if (!J || !e || !k || !t || t.ResizeObserver === void 0) return;
608
+ let n = new t.ResizeObserver(() => {
609
+ k.style.setProperty("--sheet-stack-active-size", `${e.offsetHeight}px`);
610
+ });
611
+ return n.observe(e), () => n.disconnect();
612
+ }, [J, k]);
613
+ let re = h((e) => {
614
+ Y.panel = e;
615
+ }, [Y]), ie = A([
616
+ W,
617
+ e,
618
+ re
619
+ ]), Q = ke(J && s && !("data-sheet-no-drag" in C), W, I), se = b(() => ({
620
+ titleId: z,
621
+ descriptionId: B,
622
+ setHasTitle: H,
623
+ setHasDescription: U
624
+ }), [z, B]), de = (e) => {
625
+ d?.(e), e.key === "Escape" && (L.current = !!W.current?.querySelector(te));
626
+ }, fe = (e) => {
627
+ u?.(e), D && J && e.key === "Escape" && !e.nativeEvent.isComposing && (e.defaultPrevented || L.current || (e.preventDefault(), I()));
628
+ }, pe = (e) => {
629
+ f?.(e), e.key === "Escape" && (L.current = !1);
630
+ };
631
+ if (!K || !k) return null;
632
+ let $ = D && J, me = {
633
+ ...p,
634
+ "--sheet-stack-index": G,
635
+ "--sheet-stack-depth": q
636
+ };
637
+ return j(/* @__PURE__ */ w(ee.Provider, {
638
+ value: se,
639
+ children: /* @__PURE__ */ w(o, {
640
+ className: n,
641
+ styles: [
642
+ ae,
643
+ oe[O],
644
+ !J && ce[O]
645
+ ],
646
+ sx: r,
647
+ children: (e) => /* @__PURE__ */ T("div", {
648
+ ...C,
649
+ ref: ie,
650
+ "data-ui": "sheet-stack",
651
+ "data-state": J ? "active" : "parent",
652
+ "data-variant": O,
653
+ "data-depth": q,
654
+ role: $ ? "dialog" : void 0,
655
+ "aria-modal": $ ? "true" : void 0,
656
+ "aria-label": $ ? m : void 0,
657
+ "aria-labelledby": $ ? X : void 0,
658
+ "aria-describedby": $ ? Z : void 0,
659
+ "aria-hidden": J ? void 0 : "true",
660
+ inert: !J,
661
+ tabIndex: -1,
662
+ style: me,
663
+ onKeyDownCapture: de,
664
+ onKeyDown: fe,
665
+ onKeyUp: pe,
666
+ className: e,
667
+ children: [/* @__PURE__ */ w("div", {
668
+ ...Q,
669
+ "data-ui": "sheet-stack-handle",
670
+ "data-draggable": Q ? "" : void 0,
671
+ "aria-hidden": "true",
672
+ css: le
673
+ }), /* @__PURE__ */ w("div", {
674
+ "data-ui": "sheet-stack-body",
675
+ css: ue,
676
+ children: a
677
+ })]
678
+ })
679
+ })
680
+ }), k);
681
+ }
682
+ Ae.displayName = "SheetStack.Content";
683
+ function je({ ref: e, level: t = 2, className: n, sx: r, children: i, ...a }) {
684
+ let { titleId: s, setHasTitle: c } = P("Title"), l = he(i);
685
+ if (_(() => {
686
+ if (l) return c(!0), () => c(!1);
687
+ }, [l, c]), !l) return null;
688
+ let u = `h${t}`;
689
+ return /* @__PURE__ */ w(o, {
690
+ className: n,
691
+ styles: fe,
692
+ sx: r,
693
+ children: (t) => /* @__PURE__ */ w(u, {
694
+ tabIndex: -1,
695
+ ...a,
696
+ ref: e,
697
+ id: s,
698
+ "data-ui": "sheet-stack-title",
699
+ className: t,
700
+ children: i
701
+ })
702
+ });
703
+ }
704
+ je.displayName = "SheetStack.Title";
705
+ function Me({ ref: e, className: t, sx: n, children: r, ...i }) {
706
+ let { descriptionId: a, setHasDescription: s } = P("Description"), c = he(r);
707
+ return _(() => {
708
+ if (c) return s(!0), () => s(!1);
709
+ }, [c, s]), c ? /* @__PURE__ */ w(o, {
710
+ className: t,
711
+ styles: pe,
712
+ sx: n,
713
+ children: (t) => /* @__PURE__ */ w("p", {
714
+ ...i,
715
+ ref: e,
716
+ id: a,
717
+ "data-ui": "sheet-stack-description",
718
+ className: t,
719
+ children: r
720
+ })
721
+ }) : null;
722
+ }
723
+ Me.displayName = "SheetStack.Description";
724
+ function Ne({ ref: e, className: t, sx: n, ...r }) {
725
+ return P("Footer"), /* @__PURE__ */ w(o, {
726
+ className: t,
727
+ styles: de,
728
+ sx: n,
729
+ children: (t) => /* @__PURE__ */ w("div", {
730
+ ...r,
731
+ ref: e,
732
+ "data-ui": "sheet-stack-footer",
733
+ className: t
734
+ })
735
+ });
736
+ }
737
+ Ne.displayName = "SheetStack.Footer";
738
+ function Pe() {
739
+ return /* @__PURE__ */ w("svg", {
740
+ viewBox: "0 0 16 16",
741
+ fill: "none",
742
+ stroke: "currentColor",
743
+ strokeWidth: "1.5",
744
+ "aria-hidden": "true",
745
+ css: me,
746
+ children: /* @__PURE__ */ w("path", {
747
+ d: "M10 3 5 8l5 5",
748
+ strokeLinecap: "round",
749
+ strokeLinejoin: "round"
750
+ })
751
+ });
752
+ }
753
+ function Fe() {
754
+ return /* @__PURE__ */ w("svg", {
755
+ viewBox: "0 0 16 16",
756
+ fill: "none",
757
+ stroke: "currentColor",
758
+ strokeWidth: "1.5",
759
+ "aria-hidden": "true",
760
+ children: /* @__PURE__ */ w("path", {
761
+ d: "m4 4 8 8M12 4l-8 8",
762
+ strokeLinecap: "round"
763
+ })
764
+ });
765
+ }
766
+ function Ie({ ref: e, label: t, onClick: n, className: r, sx: i, children: a, ...s }) {
767
+ let { pop: c } = N("Back");
768
+ P("Back");
769
+ let l = (e) => {
770
+ n?.(e), e.defaultPrevented || c();
771
+ };
772
+ return /* @__PURE__ */ w(o, {
773
+ className: r,
774
+ styles: $,
775
+ sx: i,
776
+ children: (n) => /* @__PURE__ */ T("button", {
777
+ type: "button",
778
+ ...s,
779
+ ref: e,
780
+ "aria-label": t,
781
+ "data-ui": "sheet-stack-back",
782
+ onClick: l,
783
+ className: n,
784
+ children: [/* @__PURE__ */ w(Pe, {}), a]
785
+ })
786
+ });
787
+ }
788
+ Ie.displayName = "SheetStack.Back";
789
+ function Le({ ref: e, label: t, onClick: n, className: r, sx: i, children: a, ...s }) {
790
+ let { close: l } = N("Close"), u = (e) => {
791
+ n?.(e), e.defaultPrevented || l();
792
+ };
793
+ return /* @__PURE__ */ w(o, {
794
+ className: r,
795
+ styles: $,
796
+ sx: i,
797
+ children: (n) => /* @__PURE__ */ w("button", {
798
+ type: "button",
799
+ ...s,
800
+ ref: e,
801
+ "aria-label": t,
802
+ "data-ui": "sheet-stack-close",
803
+ onClick: u,
804
+ className: n,
805
+ children: c(a) ? a : /* @__PURE__ */ w(Fe, {})
806
+ })
807
+ });
808
+ }
809
+ Le.displayName = "SheetStack.Close";
810
+ var Re = Object.assign(Ce, {
811
+ Trigger: Oe,
812
+ Content: Ae,
813
+ Title: je,
814
+ Description: Me,
815
+ Footer: Ne,
816
+ Back: Ie,
817
+ Close: Le
818
+ });
819
+ //#endregion
820
+ export { F as n, Re as t };