@jfrader/ui 0.4.0 → 0.5.1

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 (307) hide show
  1. package/README.md +2 -0
  2. package/dist/accordion-DLul6vIl.js +205 -0
  3. package/dist/accordion.js +1 -1
  4. package/dist/{alert-BBqaKI4k.js → alert-DS_einpy.js} +1 -1
  5. package/dist/alert.js +1 -1
  6. package/dist/announcement-bar-Dlbq5-9D.js +382 -0
  7. package/dist/announcement-bar.js +2 -0
  8. package/dist/avatar-CaGJHy1N.js +145 -0
  9. package/dist/avatar-group-M1opAQEG.js +138 -0
  10. package/dist/avatar-group.js +2 -0
  11. package/dist/avatar.js +1 -1
  12. package/dist/badge-CjM5Agqk.js +119 -0
  13. package/dist/badge.js +1 -1
  14. package/dist/bottom-sheet-DjZOPq4k.js +674 -0
  15. package/dist/bottom-sheet.js +2 -0
  16. package/dist/{breadcrumbs-DVAOxfvL.js → breadcrumbs-BDK_LiwH.js} +11 -4
  17. package/dist/breadcrumbs.js +1 -1
  18. package/dist/{button-P2e7_44z.js → button-NLY0h6EJ.js} +8 -8
  19. package/dist/button.js +1 -1
  20. package/dist/calendar-BzJdv_SZ.js +449 -0
  21. package/dist/calendar.js +1 -1
  22. package/dist/card-Ca4KQKYQ.js +154 -0
  23. package/dist/card.js +1 -1
  24. package/dist/carousel-B7OrvD6J.js +474 -0
  25. package/dist/carousel.js +2 -0
  26. package/dist/{checkbox-COYG6L7d.js → checkbox-DKSzExj2.js} +17 -16
  27. package/dist/checkbox.js +1 -1
  28. package/dist/chip-group-DjQ0_6Y9.js +290 -0
  29. package/dist/chip-group.js +2 -0
  30. package/dist/code-block/shiki.js +147 -0
  31. package/dist/code-block-B5we2lZa.js +293 -0
  32. package/dist/code-block.js +2 -0
  33. package/dist/collection-registry-k6JcD3Jr.js +44 -0
  34. package/dist/combobox-DFFqOBCi.js +339 -0
  35. package/dist/combobox.js +1 -1
  36. package/dist/command-palette-BmQu2w4H.js +391 -0
  37. package/dist/command-palette.js +1 -1
  38. package/dist/comment-thread-ASaXDcGo.js +1410 -0
  39. package/dist/comment-thread.js +2 -0
  40. package/dist/context-menu-__1c2Dk9.js +370 -0
  41. package/dist/context-menu.js +2 -0
  42. package/dist/copy-button-DCSLcYS-.js +252 -0
  43. package/dist/copy-button.js +2 -0
  44. package/dist/countdown-Dp_TD1VP.js +293 -0
  45. package/dist/countdown.js +2 -0
  46. package/dist/date-picker-BiPN7yeK.js +255 -0
  47. package/dist/date-picker.js +1 -1
  48. package/dist/date-range-picker-DQpUeKqV.js +570 -0
  49. package/dist/date-range-picker.js +2 -0
  50. package/dist/{dialog-xaydbXl2.js → dialog-BX1zYMs-.js} +21 -20
  51. package/dist/dialog.js +1 -1
  52. package/dist/{divider-DYoJf0I_.js → divider-Cp7aNbhM.js} +21 -20
  53. package/dist/divider.js +1 -1
  54. package/dist/drawer-DsASTiP-.js +553 -0
  55. package/dist/drawer.js +2 -0
  56. package/dist/elastic-slider-BG6K019r.js +395 -0
  57. package/dist/elastic-slider.js +2 -0
  58. package/dist/empty-state-CDgrjPPf.js +142 -0
  59. package/dist/empty-state.js +2 -0
  60. package/dist/expandable-card-rUATve0o.js +347 -0
  61. package/dist/expandable-card.js +2 -0
  62. package/dist/expanding-search-BxOwtdwt.js +238 -0
  63. package/dist/expanding-search.js +2 -0
  64. package/dist/field-anatomy-COVdNpf5.js +84 -0
  65. package/dist/file-dropzone-BuXm3Tea.js +457 -0
  66. package/dist/file-dropzone.js +2 -0
  67. package/dist/filter-toolbar-Cy5Hqur-.js +314 -0
  68. package/dist/filter-toolbar.js +2 -0
  69. package/dist/hold-to-confirm-DjB2EVjM.js +294 -0
  70. package/dist/hold-to-confirm.js +2 -0
  71. package/dist/hover-card-CoMJKg1g.js +347 -0
  72. package/dist/hover-card.js +2 -0
  73. package/dist/image-compare-BxY8Ykzt.js +415 -0
  74. package/dist/image-compare.js +2 -0
  75. package/dist/index.js +84 -38
  76. package/dist/inline-edit-C0eeml65.js +535 -0
  77. package/dist/inline-edit.js +2 -0
  78. package/dist/input-control-DmMuAuPS.js +34 -0
  79. package/dist/json-viewer-DgWqyU75.js +802 -0
  80. package/dist/json-viewer.js +2 -0
  81. package/dist/listbox-style-WX-RASp1.js +59 -0
  82. package/dist/{media-D_eA_I-e.js → media-8yrN85VT.js} +2 -2
  83. package/dist/mention-input-sq61si9L.js +600 -0
  84. package/dist/mention-input.js +2 -0
  85. package/dist/menu-DDKgmK2F.js +295 -0
  86. package/dist/menu.js +1 -1
  87. package/dist/metric-card--lVTz5Wn.js +118 -0
  88. package/dist/metric-card.js +2 -0
  89. package/dist/multi-select-DG1BCFX7.js +598 -0
  90. package/dist/multi-select.js +2 -0
  91. package/dist/{navigation-DhnKriOp.js → navigation-CC26JDr-.js} +24 -18
  92. package/dist/navigation.js +1 -1
  93. package/dist/overlay-layer-qEbpEtb8.js +78 -0
  94. package/dist/overlay-portal-C4JZFq2M.js +15 -0
  95. package/dist/{pagination-DYdwsxwe.js → pagination-BfkeWbmP.js} +24 -23
  96. package/dist/pagination.js +1 -1
  97. package/dist/password-field-03pWRkuY.js +250 -0
  98. package/dist/password-field.js +2 -0
  99. package/dist/pill-BaS-uIbn.js +58 -0
  100. package/dist/pill.js +1 -1
  101. package/dist/popover-CErIw2q3.js +125 -0
  102. package/dist/popover.js +1 -1
  103. package/dist/{progress-BpJswTG4.js → progress-DAQkfhPd.js} +5 -5
  104. package/dist/progress.js +1 -1
  105. package/dist/radio-cards-Cu9cBssN.js +456 -0
  106. package/dist/radio-cards.js +2 -0
  107. package/dist/{radio-group-Ce0_IWQr.js → radio-group-TIK0-iPX.js} +22 -19
  108. package/dist/radio-group.js +1 -1
  109. package/dist/resizable-panels-DUpQEpwG.js +520 -0
  110. package/dist/resizable-panels.js +2 -0
  111. package/dist/scroll-area-CcZyiSOQ.js +371 -0
  112. package/dist/scroll-area.js +2 -0
  113. package/dist/search-field-DMvho0KQ.js +274 -0
  114. package/dist/search-field.js +2 -0
  115. package/dist/segmented-control-8ZUGnsZm.js +327 -0
  116. package/dist/segmented-control.js +2 -0
  117. package/dist/select-D5rhJ8gi.js +293 -0
  118. package/dist/select.js +1 -1
  119. package/dist/signature-pad-_bTeguN9.js +645 -0
  120. package/dist/signature-pad.js +2 -0
  121. package/dist/{skeleton-OoFlOEXO.js → skeleton-XQQDkCHd.js} +1 -1
  122. package/dist/skeleton.js +1 -1
  123. package/dist/slider-DVG6-Awh.js +308 -0
  124. package/dist/slider.js +2 -0
  125. package/dist/sortable-data-table-CYKT_Ng7.js +365 -0
  126. package/dist/sortable-data-table.js +2 -0
  127. package/dist/{spinner-C2YDoiMn.js → spinner-DtxvDPdM.js} +1 -1
  128. package/dist/spinner.js +1 -1
  129. package/dist/split-button-BCw4zZom.js +262 -0
  130. package/dist/split-button.js +2 -0
  131. package/dist/stepper-CruHbXxX.js +480 -0
  132. package/dist/stepper.js +2 -0
  133. package/dist/swipe-actions-CBuJREU1.js +420 -0
  134. package/dist/swipe-actions.js +2 -0
  135. package/dist/switch-C1WrKrf-.js +145 -0
  136. package/dist/switch.js +1 -1
  137. package/dist/tabs-XluwRjgg.js +210 -0
  138. package/dist/tabs.js +1 -1
  139. package/dist/tag-input-DSRCyrX2.js +418 -0
  140. package/dist/tag-input.js +2 -0
  141. package/dist/{text-field-D60ok14S.js → text-field-hU72iSVS.js} +20 -17
  142. package/dist/text-field.js +1 -1
  143. package/dist/{textarea-DyfjtP0A.js → textarea-3k4Y0QQ3.js} +23 -20
  144. package/dist/textarea.js +1 -1
  145. package/dist/theme-root.js +1 -1
  146. package/dist/theme-switch-C505TtU8.js +166 -0
  147. package/dist/theme-switch.js +2 -0
  148. package/dist/time-picker-CPlhW0tr.js +311 -0
  149. package/dist/time-picker.js +2 -0
  150. package/dist/timeline-B0uAAVfT.js +624 -0
  151. package/dist/timeline.js +2 -0
  152. package/dist/toast-B7wo3sX1.js +371 -0
  153. package/dist/toast-stack-B40VpS4M.js +197 -0
  154. package/dist/toast-stack.js +2 -0
  155. package/dist/toast.js +1 -1
  156. package/dist/{toggle-group-CI0e7hFm.js → toggle-group-B2fpFZwV.js} +5 -5
  157. package/dist/toggle-group.js +1 -1
  158. package/dist/tooltip-BvgVTCTN.js +120 -0
  159. package/dist/tooltip.js +1 -1
  160. package/dist/tree-view-j8qLqkb_.js +364 -0
  161. package/dist/tree-view.js +2 -0
  162. package/dist/types/components/announcement-bar/announcement-bar.d.ts +75 -0
  163. package/dist/types/components/announcement-bar/index.d.ts +2 -0
  164. package/dist/types/components/avatar-group/avatar-group.d.ts +43 -0
  165. package/dist/types/components/avatar-group/index.d.ts +2 -0
  166. package/dist/types/components/bottom-sheet/bottom-sheet.d.ts +60 -0
  167. package/dist/types/components/bottom-sheet/index.d.ts +2 -0
  168. package/dist/types/components/calendar/calendar.d.ts +25 -1
  169. package/dist/types/components/calendar/index.d.ts +1 -1
  170. package/dist/types/components/carousel/carousel.d.ts +73 -0
  171. package/dist/types/components/carousel/index.d.ts +2 -0
  172. package/dist/types/components/checkbox/checkbox.d.ts +1 -1
  173. package/dist/types/components/chip-group/chip-group.d.ts +54 -0
  174. package/dist/types/components/chip-group/index.d.ts +1 -0
  175. package/dist/types/components/code-block/code-block.d.ts +58 -0
  176. package/dist/types/components/code-block/index.d.ts +1 -0
  177. package/dist/types/components/code-block/shiki.d.ts +3 -0
  178. package/dist/types/components/combobox/combobox.d.ts +1 -1
  179. package/dist/types/components/command-palette/command-palette.d.ts +2 -2
  180. package/dist/types/components/comment-thread/comment-thread.d.ts +118 -0
  181. package/dist/types/components/comment-thread/index.d.ts +1 -0
  182. package/dist/types/components/comment-thread/thread-core.d.ts +96 -0
  183. package/dist/types/components/comment-thread/thread-parts.d.ts +114 -0
  184. package/dist/types/components/context-menu/context-menu.d.ts +55 -0
  185. package/dist/types/components/context-menu/index.d.ts +2 -0
  186. package/dist/types/components/copy-button/copy-button.d.ts +49 -0
  187. package/dist/types/components/copy-button/index.d.ts +2 -0
  188. package/dist/types/components/countdown/countdown.d.ts +37 -0
  189. package/dist/types/components/countdown/index.d.ts +1 -0
  190. package/dist/types/components/date-picker/date-picker.d.ts +1 -1
  191. package/dist/types/components/date-range-picker/date-range-picker.d.ts +103 -0
  192. package/dist/types/components/date-range-picker/index.d.ts +2 -0
  193. package/dist/types/components/drawer/drawer.d.ts +59 -0
  194. package/dist/types/components/drawer/index.d.ts +2 -0
  195. package/dist/types/components/elastic-slider/elastic-slider.d.ts +53 -0
  196. package/dist/types/components/elastic-slider/index.d.ts +1 -0
  197. package/dist/types/components/empty-state/empty-state.d.ts +36 -0
  198. package/dist/types/components/empty-state/index.d.ts +2 -0
  199. package/dist/types/components/expandable-card/expandable-card.d.ts +28 -0
  200. package/dist/types/components/expandable-card/index.d.ts +2 -0
  201. package/dist/types/components/expanding-search/expanding-search.d.ts +22 -0
  202. package/dist/types/components/expanding-search/index.d.ts +1 -0
  203. package/dist/types/components/field/field-anatomy.d.ts +4 -2
  204. package/dist/types/components/file-dropzone/file-dropzone.d.ts +93 -0
  205. package/dist/types/components/file-dropzone/index.d.ts +2 -0
  206. package/dist/types/components/filter-toolbar/filter-toolbar.d.ts +70 -0
  207. package/dist/types/components/filter-toolbar/index.d.ts +1 -0
  208. package/dist/types/components/hold-to-confirm/hold-to-confirm.d.ts +32 -0
  209. package/dist/types/components/hold-to-confirm/index.d.ts +2 -0
  210. package/dist/types/components/hover-card/hover-card.d.ts +97 -0
  211. package/dist/types/components/hover-card/index.d.ts +2 -0
  212. package/dist/types/components/image-compare/image-compare.d.ts +54 -0
  213. package/dist/types/components/image-compare/index.d.ts +1 -0
  214. package/dist/types/components/inline-edit/index.d.ts +2 -0
  215. package/dist/types/components/inline-edit/inline-edit.d.ts +93 -0
  216. package/dist/types/components/json-viewer/index.d.ts +2 -0
  217. package/dist/types/components/json-viewer/json-viewer.d.ts +82 -0
  218. package/dist/types/components/mention-input/index.d.ts +2 -0
  219. package/dist/types/components/mention-input/mention-input.d.ts +87 -0
  220. package/dist/types/components/menu/menu.d.ts +68 -7
  221. package/dist/types/components/metric-card/index.d.ts +1 -0
  222. package/dist/types/components/metric-card/metric-card.d.ts +37 -0
  223. package/dist/types/components/multi-select/index.d.ts +2 -0
  224. package/dist/types/components/multi-select/multi-select.d.ts +73 -0
  225. package/dist/types/components/pagination/pagination.d.ts +1 -1
  226. package/dist/types/components/password-field/index.d.ts +2 -0
  227. package/dist/types/components/password-field/password-field.d.ts +34 -0
  228. package/dist/types/components/popover/popover.d.ts +1 -1
  229. package/dist/types/components/radio-cards/index.d.ts +1 -0
  230. package/dist/types/components/radio-cards/radio-cards.d.ts +42 -0
  231. package/dist/types/components/radio-group/radio-group.d.ts +1 -1
  232. package/dist/types/components/resizable-panels/index.d.ts +2 -0
  233. package/dist/types/components/resizable-panels/resizable-panels.d.ts +42 -0
  234. package/dist/types/components/scroll-area/index.d.ts +2 -0
  235. package/dist/types/components/scroll-area/scroll-area.d.ts +34 -0
  236. package/dist/types/components/search-field/index.d.ts +1 -0
  237. package/dist/types/components/search-field/search-field.d.ts +31 -0
  238. package/dist/types/components/segmented-control/index.d.ts +2 -0
  239. package/dist/types/components/segmented-control/segmented-control.d.ts +32 -0
  240. package/dist/types/components/select/select.d.ts +1 -1
  241. package/dist/types/components/signature-pad/index.d.ts +2 -0
  242. package/dist/types/components/signature-pad/signature-pad.d.ts +104 -0
  243. package/dist/types/components/slider/index.d.ts +1 -0
  244. package/dist/types/components/slider/slider-style.d.ts +14 -0
  245. package/dist/types/components/slider/slider.d.ts +62 -0
  246. package/dist/types/components/slider/use-slider-interaction.d.ts +79 -0
  247. package/dist/types/components/sortable-data-table/index.d.ts +1 -0
  248. package/dist/types/components/sortable-data-table/sortable-data-table.d.ts +76 -0
  249. package/dist/types/components/split-button/index.d.ts +2 -0
  250. package/dist/types/components/split-button/split-button.d.ts +55 -0
  251. package/dist/types/components/stepper/index.d.ts +2 -0
  252. package/dist/types/components/stepper/stepper.d.ts +85 -0
  253. package/dist/types/components/swipe-actions/index.d.ts +2 -0
  254. package/dist/types/components/swipe-actions/swipe-actions.d.ts +44 -0
  255. package/dist/types/components/tabs/tabs.d.ts +1 -1
  256. package/dist/types/components/tag-input/index.d.ts +2 -0
  257. package/dist/types/components/tag-input/tag-input.d.ts +66 -0
  258. package/dist/types/components/text-field/text-field.d.ts +1 -1
  259. package/dist/types/components/textarea/textarea.d.ts +1 -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/time-picker/index.d.ts +2 -0
  263. package/dist/types/components/time-picker/time-picker.d.ts +48 -0
  264. package/dist/types/components/timeline/index.d.ts +2 -0
  265. package/dist/types/components/timeline/timeline.d.ts +66 -0
  266. package/dist/types/components/toast/toast.d.ts +37 -2
  267. package/dist/types/components/toast-stack/index.d.ts +2 -0
  268. package/dist/types/components/toast-stack/toast-stack.d.ts +28 -0
  269. package/dist/types/components/tooltip/tooltip.d.ts +2 -2
  270. package/dist/types/components/tree-view/index.d.ts +1 -0
  271. package/dist/types/components/tree-view/tree-view.d.ts +47 -0
  272. package/dist/types/components/usage-meter/index.d.ts +2 -0
  273. package/dist/types/components/usage-meter/usage-meter.d.ts +83 -0
  274. package/dist/types/index.d.ts +45 -0
  275. package/dist/types/overlay/overlay-layer.d.ts +53 -0
  276. package/dist/types/overlay/use-overlay-floating.d.ts +19 -2
  277. package/dist/types/styling/media.d.ts +1 -0
  278. package/dist/types/styling/theme.d.ts +12 -0
  279. package/dist/types/utils/use-controlled-state.d.ts +2 -1
  280. package/dist/usage-meter-qyQ3rYVv.js +463 -0
  281. package/dist/usage-meter.js +2 -0
  282. package/dist/use-controlled-state-DpeVQZNR.js +20 -0
  283. package/dist/use-latest-callback-cj1OOQL6.js +11 -0
  284. package/dist/use-overlay-floating-Bx2jBKAA.js +33 -0
  285. package/dist/use-slider-interaction-ChL-208h.js +234 -0
  286. package/package.json +195 -3
  287. package/dist/accordion-Bd-j04hW.js +0 -198
  288. package/dist/avatar-BahDVO9t.js +0 -132
  289. package/dist/badge-B_sLygxU.js +0 -108
  290. package/dist/calendar-C9Yad_-w.js +0 -394
  291. package/dist/card-D-aI2QHx.js +0 -158
  292. package/dist/collection-registry-BTYi6zGh.js +0 -98
  293. package/dist/combobox-DiMC2g_u.js +0 -327
  294. package/dist/command-palette-V_2pEay7.js +0 -379
  295. package/dist/date-picker-C29Uo4Tx.js +0 -250
  296. package/dist/field-anatomy-D2ToMeRa.js +0 -109
  297. package/dist/menu-CGPTNRnF.js +0 -216
  298. package/dist/pill-DO2gHzMb.js +0 -56
  299. package/dist/popover-CdRXjQqI.js +0 -113
  300. package/dist/select-BgG7WgSh.js +0 -286
  301. package/dist/switch-Dr-qjmT4.js +0 -142
  302. package/dist/tabs-CK_g1RKa.js +0 -203
  303. package/dist/toast-CjmELMZZ.js +0 -283
  304. package/dist/tooltip-CaL3rKbV.js +0 -108
  305. package/dist/use-controlled-state-CVXDa-qM.js +0 -21
  306. package/dist/use-overlay-floating-Bit-f0FU.js +0 -31
  307. package/dist/{theme-root-BbTBuLMQ.js → theme-root-Bs1U3uPA.js} +2 -2
@@ -0,0 +1,674 @@
1
+ 'use client';
2
+ import { r as e, t } from "./sx-Dx9JUKp5.js";
3
+ import { n } from "./focus-ring-BK5W5_NY.js";
4
+ import { n as r, r as i } from "./media-8yrN85VT.js";
5
+ import { t as a } from "./use-controlled-state-DpeVQZNR.js";
6
+ import { t as o } from "./visually-hidden-BJdvqqvn.js";
7
+ import { t as s } from "./renderable-DzcIj1Lo.js";
8
+ import { n as c, t as l } from "./surface-DZ4d-2aL.js";
9
+ import { t as u } from "./trigger-style-B1KVC8O1.js";
10
+ import { a as d, i as f } from "./overlay-layer-qEbpEtb8.js";
11
+ import { i as p, r as m, t as h } from "./use-native-dialog-DWpIUVO1.js";
12
+ import { createContext as g, useCallback as _, useContext as v, useEffect as y, useId as b, useMemo as x, useRef as S, useState as C } from "react";
13
+ import { vars as w } from "@jfrader/tokens/vars";
14
+ import { jsx as T, jsxs as E } from "@emotion/react/jsx-runtime";
15
+ import { useFloating as D, useFloatingTree as O, useInteractions as k, useMergeRefs as A } from "@floating-ui/react";
16
+ import { getDeepestNode as j } from "@floating-ui/react/utils";
17
+ import { MotionConfig as M, animate as N, useMotionValue as P, useReducedMotion as F } from "motion/react";
18
+ //#region src/components/bottom-sheet/bottom-sheet.tsx
19
+ var I = [.45, .92], L = "36rem", R = {
20
+ type: "spring",
21
+ stiffness: 400,
22
+ damping: 40,
23
+ mass: 1
24
+ }, z = .2, ee = 320, B = 80, V = 120, H = 8, U = [
25
+ "button:not([data-ui=\"bottom-sheet-handle\"])",
26
+ "a[href]",
27
+ "input",
28
+ "select",
29
+ "textarea",
30
+ "label",
31
+ "[contenteditable]:not([contenteditable=\"false\"])",
32
+ "[data-ui=\"bottom-sheet-title\"]",
33
+ "[data-ui=\"bottom-sheet-description\"]"
34
+ ].join(", "), te = "button, a[href], input, select, textarea, [contenteditable]:not([contenteditable=\"false\"])", ne = e({
35
+ ...l,
36
+ position: "fixed",
37
+ inset: 0,
38
+ margin: 0,
39
+ inlineSize: "100%",
40
+ blockSize: "100dvh",
41
+ maxInlineSize: "none",
42
+ maxBlockSize: "none",
43
+ overflow: "hidden",
44
+ "&::backdrop": { backgroundColor: "transparent" }
45
+ }), re = e({
46
+ position: "absolute",
47
+ inset: 0,
48
+ backgroundColor: w.color.scrim,
49
+ pointerEvents: "none",
50
+ opacity: "var(--sheet-scrim, 1)"
51
+ }), ie = e({
52
+ ...c,
53
+ position: "absolute",
54
+ insetBlockStart: 0,
55
+ insetInline: 0,
56
+ marginInline: "auto",
57
+ inlineSize: "100%",
58
+ maxInlineSize: L,
59
+ blockSize: "var(--sheet-height, 45dvh)",
60
+ display: "flex",
61
+ flexDirection: "column",
62
+ minBlockSize: 0,
63
+ borderStartStartRadius: w.radius.lg,
64
+ borderStartEndRadius: w.radius.lg,
65
+ boxShadow: w.shadow.floating,
66
+ paddingBlockEnd: "env(safe-area-inset-bottom, 0px)",
67
+ "&:focus-visible": n,
68
+ [r]: {
69
+ boxShadow: "none",
70
+ borderColor: "CanvasText"
71
+ }
72
+ }), ae = e({
73
+ flexShrink: 0,
74
+ display: "grid",
75
+ gridTemplateColumns: "minmax(0, 1fr) auto",
76
+ gap: w.space[2],
77
+ paddingInline: w.space[6],
78
+ paddingBlock: w.space[2],
79
+ "&[data-dragging]": { userSelect: "none" },
80
+ "& > [data-ui=\"bottom-sheet-handle\"]": {
81
+ gridColumn: "1 / -1",
82
+ justifySelf: "center",
83
+ touchAction: "none"
84
+ },
85
+ "& > [data-ui=\"bottom-sheet-close\"]": {
86
+ gridColumn: 2,
87
+ gridRow: 2
88
+ }
89
+ }), oe = e({
90
+ flex: "1 1 auto",
91
+ minBlockSize: 0,
92
+ overflow: "auto",
93
+ overscrollBehavior: "contain",
94
+ paddingInline: w.space[6],
95
+ paddingBlock: w.space[4],
96
+ fontSize: w.textSize.sm,
97
+ "&:focus-visible": n
98
+ }), se = e({
99
+ flexShrink: 0,
100
+ display: "flex",
101
+ flexWrap: "wrap",
102
+ gap: w.space[2],
103
+ paddingInline: w.space[6],
104
+ paddingBlock: w.space[4],
105
+ borderBlockStart: `1px solid ${w.color.border}`
106
+ }), ce = e({
107
+ margin: 0,
108
+ fontSize: w.textSize.lg,
109
+ lineHeight: w.lineHeight.tight,
110
+ fontWeight: w.fontWeight.semibold
111
+ }), le = e({
112
+ margin: 0,
113
+ color: w.color.textMuted,
114
+ fontSize: w.textSize.sm
115
+ }), W = e({
116
+ appearance: "none",
117
+ minInlineSize: w.space[8],
118
+ minBlockSize: w.space[8],
119
+ display: "inline-flex",
120
+ alignItems: "center",
121
+ justifyContent: "center",
122
+ paddingInline: w.space[3],
123
+ paddingBlock: w.space[1],
124
+ border: "1px solid transparent",
125
+ borderRadius: w.radius.md,
126
+ color: w.color.textMuted,
127
+ backgroundColor: "transparent",
128
+ font: "inherit",
129
+ cursor: "pointer",
130
+ "&:focus-visible": n,
131
+ "&:disabled": { cursor: "not-allowed" },
132
+ [r]: { borderColor: "ButtonText" },
133
+ [i]: { transition: "none" }
134
+ }), ue = e({
135
+ "&::after": {
136
+ content: "\"\"",
137
+ inlineSize: w.space[10],
138
+ blockSize: w.space[1],
139
+ borderRadius: w.radius.full,
140
+ backgroundColor: w.color.borderControl
141
+ },
142
+ [r]: { "&::after": {
143
+ backgroundColor: "ButtonText",
144
+ outline: "1px solid ButtonText"
145
+ } }
146
+ }), G = o, K = g(null), q = g(null);
147
+ function J(e) {
148
+ let t = v(K);
149
+ if (!t) throw Error(`BottomSheet.${e} must be rendered inside <BottomSheet>.`);
150
+ return t;
151
+ }
152
+ function de(e) {
153
+ if (!e.length || e.some((t, n) => !Number.isFinite(t) || t <= 0 || t > 1 || n > 0 && t <= e[n - 1])) throw Error("BottomSheet.detents must be nonempty, finite, strictly ascending unique fractions in (0, 1].");
154
+ }
155
+ function fe({ nodeId: e, open: t, defaultOpen: n = !1, onOpenChange: r, detents: i = I, value: o, defaultValue: s = 0, onValueChange: c, locale: l, getValueText: u, children: f }) {
156
+ de(i);
157
+ let m = S([...i]);
158
+ if (i.length !== m.current.length || i.some((e, t) => e !== m.current[t])) throw Error("BottomSheet.detents numeric contents require remount to change.");
159
+ let [h = 0, g] = a(o, s, c);
160
+ if (!Number.isInteger(h) || h < 0 || h >= i.length || !Number.isInteger(s) || s < 0 || s >= i.length) throw Error("BottomSheet value/defaultValue must be valid detent indices.");
161
+ let [v = !1, w] = a(t, n, r), E = p(v, w), [O, A] = C(null), [j, M] = C(!1), N = _((e) => {
162
+ E.setDialogElement(e), A(e);
163
+ }, [E.setDialogElement]);
164
+ y(() => {
165
+ let e = () => M(O?.open ?? !1);
166
+ if (e(), !O) return;
167
+ let t = O.ownerDocument.defaultView?.MutationObserver;
168
+ if (!t) return;
169
+ let n = new t(e);
170
+ return n.observe(O, {
171
+ attributes: !0,
172
+ attributeFilter: ["open"]
173
+ }), () => n.disconnect();
174
+ }, [O]);
175
+ let P = D({
176
+ nodeId: e,
177
+ open: v && j,
178
+ onOpenChange: (e) => e ? E.setOpen(!0) : E.requestClose()
179
+ }), F = d(P.context, "container"), L = k(F), R = b(), [z, ee] = C(!1), [B, V] = C(!1), H = x(() => {
180
+ let e = m.current[h];
181
+ return u?.(e, h) ?? new Intl.NumberFormat(l, { style: "percent" }).format(e);
182
+ }, [
183
+ u,
184
+ l,
185
+ h
186
+ ]), U = x(() => ({
187
+ ...E,
188
+ setDialogElement: N,
189
+ open: v,
190
+ detents: m.current,
191
+ value: h,
192
+ requestValue: g,
193
+ valueText: H,
194
+ panelId: `${R}-panel`,
195
+ valueTextId: `${R}-value`,
196
+ titleId: `${R}-title`,
197
+ descriptionId: `${R}-description`,
198
+ hasTitle: z,
199
+ hasDescription: B,
200
+ setHasTitle: ee,
201
+ setHasDescription: V,
202
+ floating: P,
203
+ interactions: L
204
+ }), [
205
+ E.setOpen,
206
+ E.requestClose,
207
+ E.repairToken,
208
+ N,
209
+ v,
210
+ h,
211
+ g,
212
+ H,
213
+ R,
214
+ z,
215
+ B,
216
+ P,
217
+ L
218
+ ]);
219
+ return /* @__PURE__ */ T(K.Provider, {
220
+ value: U,
221
+ children: f
222
+ });
223
+ }
224
+ function Y(e) {
225
+ return /* @__PURE__ */ T(M, {
226
+ reducedMotion: "user",
227
+ children: /* @__PURE__ */ T(f, { children: (t) => /* @__PURE__ */ T(fe, {
228
+ ...e,
229
+ nodeId: t
230
+ }) })
231
+ });
232
+ }
233
+ Y.displayName = "BottomSheet";
234
+ function X({ ref: e, onClick: n, className: r, sx: i, ...a }) {
235
+ let o = J("Trigger"), s = A([e, o.floating.refs.setReference]);
236
+ return /* @__PURE__ */ T(t, {
237
+ className: r,
238
+ styles: u,
239
+ sx: i,
240
+ children: (e) => /* @__PURE__ */ T("button", {
241
+ type: "button",
242
+ ...a,
243
+ ref: s,
244
+ "data-ui": "bottom-sheet-trigger",
245
+ "aria-haspopup": "dialog",
246
+ "aria-expanded": o.open,
247
+ className: e,
248
+ onClick: (e) => {
249
+ n?.(e), e.defaultPrevented || o.setOpen(!0);
250
+ }
251
+ })
252
+ });
253
+ }
254
+ X.displayName = "BottomSheet.Trigger";
255
+ function pe(e, t) {
256
+ let n = S(null), r = S(null), i = P(0), a = S(0), o = S(0), s = S(null), c = S(null), l = S(!1), u = F(), d = S({
257
+ context: e,
258
+ reduced: u
259
+ });
260
+ d.current = {
261
+ context: e,
262
+ reduced: u
263
+ };
264
+ let f = () => a.current * (1 - d.current.context.detents[d.current.context.value]), p = _(() => {
265
+ s.current?.stop(), d.current.reduced ? i.set(f()) : s.current = N(i, f(), R);
266
+ }, [i]), m = _(() => {
267
+ let e = c.current;
268
+ return e ? (c.current = null, e.capture?.removeAttribute("data-dragging"), e.capture?.hasPointerCapture(e.id) && e.capture.releasePointerCapture(e.id), l.current = !0, p(), !0) : !1;
269
+ }, [p]);
270
+ y(() => {
271
+ let e = t.current, r = n.current, l = e?.ownerDocument.defaultView;
272
+ if (!e || !r || !l) return;
273
+ let u = (t) => {
274
+ r.style.transform = `translateY(${t}px)`, r.style.setProperty("--sheet-height", `${Math.max(0, a.current - t) + o.current}px`), e.style.setProperty("--sheet-scrim", String(Math.min(1, Math.max(0, (a.current - t) / Math.max(1, a.current)))));
275
+ }, d = () => {
276
+ let t = l.visualViewport;
277
+ m();
278
+ let n = t?.height ?? l.innerHeight;
279
+ o.current = Number.parseFloat(l.getComputedStyle(r).paddingBottom) || 0, a.current = Math.max(1, n - o.current), e.style.blockSize = `${n}px`, e.style.insetBlockStart = `${t?.offsetTop ?? 0}px`, s.current?.stop(), c.current = null, i.set(f()), u(i.get());
280
+ };
281
+ d();
282
+ let p = i.on("change", u), h = (e) => {
283
+ c.current && c.current.id !== e.pointerId && m();
284
+ };
285
+ return l.addEventListener("pointerdown", h, !0), l.addEventListener("resize", d), l.visualViewport?.addEventListener("resize", d), l.visualViewport?.addEventListener("scroll", d), () => {
286
+ p(), s.current?.stop();
287
+ let e = c.current;
288
+ c.current = null, e?.capture?.removeAttribute("data-dragging"), e?.capture?.hasPointerCapture(e.id) && e.capture.releasePointerCapture(e.id), l.removeEventListener("pointerdown", h, !0), l.removeEventListener("resize", d), l.visualViewport?.removeEventListener("resize", d), l.visualViewport?.removeEventListener("scroll", d);
289
+ };
290
+ }, [
291
+ t,
292
+ i,
293
+ m
294
+ ]), y(() => {
295
+ m(), p();
296
+ }, [
297
+ e.value,
298
+ e.open,
299
+ p,
300
+ u,
301
+ m
302
+ ]);
303
+ let h = (e, t, n, r = null) => {
304
+ s.current?.stop(), l.current = !1, r?.setAttribute("data-dragging", ""), c.current = {
305
+ id: e,
306
+ start: t,
307
+ origin: i.get(),
308
+ samples: [{
309
+ position: t,
310
+ time: n
311
+ }],
312
+ moved: !1,
313
+ capture: r
314
+ };
315
+ }, g = (e, t) => {
316
+ let n = c.current;
317
+ if (!n) return;
318
+ let r = e - n.start;
319
+ n.moved ||= Math.abs(r) > H;
320
+ let o = n.origin + r, s = a.current * (1 - d.current.context.detents.at(-1)), l = s - o;
321
+ i.set(o < s ? d.current.reduced ? s : s - V * l / (V + l) : o), n.samples = [...n.samples, {
322
+ position: e,
323
+ time: t
324
+ }].filter((e) => t - e.time <= B);
325
+ }, v = (e, t) => {
326
+ let n = c.current;
327
+ if (!n) return;
328
+ c.current = null, n.capture?.removeAttribute("data-dragging"), l.current = n.moved;
329
+ let r = [...n.samples, {
330
+ position: e,
331
+ time: t
332
+ }].filter((e) => t - e.time <= B)[0], o = r ? (t - r.time) / 1e3 : 0, s = r && o > 0 ? (e - r.position) / o : 0, u = i.get() + s * z, { detents: f, requestClose: m, requestValue: h } = d.current.context, g = a.current * f[0], _ = a.current - g / 2;
333
+ n.moved && (u > _ || s >= ee && i.get() > a.current * (1 - f[0])) ? m() : n.moved && h(f.reduce((e, t, n) => Math.abs(a.current * (1 - t) - u) < Math.abs(a.current * (1 - f[e]) - u) ? n : e, 0)), p();
334
+ };
335
+ return y(() => {
336
+ let e = r.current, t = e?.ownerDocument.defaultView;
337
+ if (!e || !t) return;
338
+ let n = null, i = !1, a = () => {
339
+ e.removeEventListener("touchmove", o), i = !1;
340
+ }, o = (t) => {
341
+ if (!n || t.touches.length !== 1) {
342
+ m(), a();
343
+ return;
344
+ }
345
+ let r = t.touches[0], i = r.clientX - n.x, o = r.clientY - n.y;
346
+ if (Math.abs(i) > Math.abs(o)) {
347
+ a(), n = null;
348
+ return;
349
+ }
350
+ if (Math.abs(o) < H) return;
351
+ if (c.current) {
352
+ t.cancelable && t.preventDefault(), g(r.clientY, t.timeStamp);
353
+ return;
354
+ }
355
+ let s = d.current.context;
356
+ s.value < s.detents.length - 1 ? (s.requestValue(s.detents.length - 1), a()) : o > 0 && e.scrollTop <= 0 && (h(n.id, n.y, t.timeStamp), t.cancelable && t.preventDefault(), g(r.clientY, t.timeStamp));
357
+ }, s = (r) => {
358
+ if (a(), r.touches.length !== 1) {
359
+ m();
360
+ return;
361
+ }
362
+ let s = r.target;
363
+ if (s.closest(te) || t.getSelection()?.toString()) return;
364
+ for (let n = s; n && n !== e; n = n.parentElement) {
365
+ let e = t.getComputedStyle(n);
366
+ if (n.scrollWidth > n.clientWidth && /auto|scroll/.test(e.overflowX) || n.scrollHeight > n.clientHeight && /auto|scroll/.test(e.overflowY)) return;
367
+ }
368
+ let c = r.touches[0];
369
+ n = {
370
+ x: c.clientX,
371
+ y: c.clientY,
372
+ id: c.identifier,
373
+ target: s
374
+ }, e.addEventListener("touchmove", o, { passive: !1 }), i = !0;
375
+ }, l = (e) => {
376
+ let t = e.changedTouches[0];
377
+ c.current && t && v(t.clientY, e.timeStamp), a(), n = null;
378
+ }, u = () => {
379
+ m(), a(), n = null;
380
+ };
381
+ return e.addEventListener("touchstart", s, { passive: !0 }), e.addEventListener("touchend", l), e.addEventListener("touchcancel", u), () => {
382
+ i && a(), e.removeEventListener("touchstart", s), e.removeEventListener("touchend", l), e.removeEventListener("touchcancel", u);
383
+ };
384
+ }, [m]), {
385
+ panelRef: n,
386
+ bodyRef: r,
387
+ gesture: {
388
+ onPointerDown: (e) => {
389
+ c.current || !e.isPrimary ? m() : e.button !== 0 || e.defaultPrevented || e.target.closest(U) || (h(e.pointerId, e.clientY, e.timeStamp, e.currentTarget), e.currentTarget.setPointerCapture?.(e.pointerId));
390
+ },
391
+ onPointerMove: (e) => {
392
+ c.current?.id === e.pointerId && g(e.clientY, e.timeStamp);
393
+ },
394
+ onPointerUp: (e) => {
395
+ c.current?.id === e.pointerId && (v(e.clientY, e.timeStamp), e.currentTarget.hasPointerCapture?.(e.pointerId) && e.currentTarget.releasePointerCapture(e.pointerId));
396
+ },
397
+ onPointerCancel: (e) => {
398
+ c.current?.id === e.pointerId && m();
399
+ },
400
+ onLostPointerCapture: (e) => {
401
+ c.current?.id === e.pointerId && m();
402
+ }
403
+ },
404
+ cancelDrag: m,
405
+ suppressClick: l
406
+ };
407
+ }
408
+ function Z({ ref: e, sx: n, className: r, ...i }) {
409
+ let { children: a, withDescription: o = !0, onCancel: s, onClose: c, onClick: l, onKeyDownCapture: u, onPointerDownCapture: d, "aria-labelledby": f, "aria-describedby": p, ...g } = h(i), _ = J("Content"), v = S(null), b = pe(_, v), x = O(), w = S(!1), D = m(_, {
410
+ onCancel: s,
411
+ onClick: (e) => {
412
+ l?.(e), w.current && (w.current = !1, e.preventDefault());
413
+ },
414
+ onClose: c
415
+ }, e, v), k = A([D.ref, _.floating.refs.setFloating]), M = S(_.value), [N, P] = C("");
416
+ y(() => {
417
+ M.current !== _.value && (M.current = _.value, P(_.valueText));
418
+ }, [_.value, _.valueText]);
419
+ let F = {
420
+ ...g,
421
+ ...D,
422
+ onCancel: (e) => {
423
+ e.target === v.current ? D.onCancel(e) : s?.(e);
424
+ },
425
+ onClose: (e) => {
426
+ e.target === v.current ? D.onClose(e) : c?.(e);
427
+ },
428
+ onPointerDownCapture: (e) => {
429
+ d?.(e);
430
+ let t = x && j(x.nodesRef.current, _.floating.context.nodeId);
431
+ w.current = !!(t && t.id !== _.floating.context.nodeId);
432
+ },
433
+ onKeyDownCapture: (e) => {
434
+ if (u?.(e), e.key !== "Escape" || e.defaultPrevented || e.nativeEvent.isComposing) return;
435
+ e.preventDefault();
436
+ let t = x && j(x.nodesRef.current, _.floating.context.nodeId);
437
+ (!t || t.id === _.floating.context.nodeId) && b.cancelDrag() && e.stopPropagation();
438
+ }
439
+ }, I = _.interactions.getFloatingProps(F);
440
+ return /* @__PURE__ */ T(t, {
441
+ className: r,
442
+ styles: ne,
443
+ sx: n,
444
+ children: (e) => /* @__PURE__ */ E("dialog", {
445
+ ...I,
446
+ ref: k,
447
+ className: e,
448
+ "data-ui": "bottom-sheet",
449
+ "aria-modal": "true",
450
+ "aria-labelledby": [f, _.hasTitle && _.titleId].filter(Boolean).join(" ") || void 0,
451
+ "aria-describedby": [p, o && _.hasDescription && _.descriptionId].filter(Boolean).join(" ") || void 0,
452
+ children: [
453
+ /* @__PURE__ */ T("div", {
454
+ css: re,
455
+ "aria-hidden": "true"
456
+ }),
457
+ /* @__PURE__ */ T(q.Provider, {
458
+ value: b,
459
+ children: a
460
+ }),
461
+ /* @__PURE__ */ T("span", {
462
+ css: G,
463
+ role: "status",
464
+ "aria-live": "polite",
465
+ "aria-atomic": "true",
466
+ children: N
467
+ }),
468
+ /* @__PURE__ */ T("span", {
469
+ css: G,
470
+ id: _.valueTextId,
471
+ children: _.valueText
472
+ })
473
+ ]
474
+ })
475
+ });
476
+ }
477
+ Z.displayName = "BottomSheet.Content";
478
+ function Q({ ref: e, sx: n, className: r, autoFocus: i = !0, ...a }) {
479
+ let o = J("Panel"), s = v(q), c = _((e) => {
480
+ i && e && !e.querySelector("[autofocus]") && e.setAttribute("autofocus", "");
481
+ }, [i]), l = A([
482
+ e,
483
+ s?.panelRef,
484
+ c
485
+ ]);
486
+ return /* @__PURE__ */ T(t, {
487
+ className: r,
488
+ styles: ie,
489
+ sx: n,
490
+ children: (e) => /* @__PURE__ */ T("div", {
491
+ tabIndex: -1,
492
+ ...a,
493
+ ref: l,
494
+ id: o.panelId,
495
+ "data-ui": "bottom-sheet-panel",
496
+ className: e
497
+ })
498
+ });
499
+ }
500
+ Q.displayName = "BottomSheet.Panel";
501
+ function $({ ref: e, sx: n, className: r, ...i }) {
502
+ J("Header");
503
+ let a = v(q), o = Object.fromEntries(Object.entries(a?.gesture ?? {}).map(([e, t]) => [e, (n) => {
504
+ i[e]?.(n), n.defaultPrevented || t?.(n);
505
+ }]));
506
+ return /* @__PURE__ */ T(t, {
507
+ className: r,
508
+ styles: ae,
509
+ sx: n,
510
+ children: (t) => /* @__PURE__ */ T("div", {
511
+ ...i,
512
+ ...o,
513
+ ref: e,
514
+ "data-ui": "bottom-sheet-header",
515
+ className: t
516
+ })
517
+ });
518
+ }
519
+ $.displayName = "BottomSheet.Header";
520
+ function me({ ref: e, sx: n, className: r, onKeyDown: i, onFocusCapture: a, ...o }) {
521
+ let s = J("Body"), c = v(q), l = A([e, c?.bodyRef]), u = S(null);
522
+ return y(() => () => {
523
+ let e = u.current;
524
+ e && e.window.cancelAnimationFrame(e.id);
525
+ }, []), /* @__PURE__ */ T(t, {
526
+ className: r,
527
+ styles: oe,
528
+ sx: n,
529
+ children: (e) => /* @__PURE__ */ T("div", {
530
+ ...o,
531
+ ref: l,
532
+ "data-ui": "bottom-sheet-body",
533
+ className: e,
534
+ onKeyDown: (e) => {
535
+ i?.(e), !e.defaultPrevented && e.target === e.currentTarget && (e.key === "PageDown" || e.key === " " && !e.shiftKey) && s.value < s.detents.length - 1 && (e.preventDefault(), s.requestValue(s.detents.length - 1));
536
+ },
537
+ onFocusCapture: (e) => {
538
+ if (a?.(e), e.defaultPrevented || e.target === e.currentTarget) return;
539
+ s.requestValue(s.detents.length - 1);
540
+ let t = e.target, n = e.currentTarget, r = n.ownerDocument.defaultView;
541
+ if (!r) return;
542
+ let i = u.current;
543
+ i && i.window.cancelAnimationFrame(i.id), u.current = {
544
+ window: r,
545
+ id: r.requestAnimationFrame(() => {
546
+ if (u.current = null, !t.isConnected) return;
547
+ let e = n.getBoundingClientRect(), r = t.getBoundingClientRect();
548
+ r.top < e.top ? n.scrollTop += r.top - e.top : r.bottom > e.bottom && (n.scrollTop += r.bottom - e.bottom);
549
+ })
550
+ };
551
+ }
552
+ })
553
+ });
554
+ }
555
+ me.displayName = "BottomSheet.Body";
556
+ function he({ ref: e, sx: n, className: r, ...i }) {
557
+ return J("Footer"), /* @__PURE__ */ T(t, {
558
+ className: r,
559
+ styles: se,
560
+ sx: n,
561
+ children: (t) => /* @__PURE__ */ T("div", {
562
+ ...i,
563
+ ref: e,
564
+ "data-ui": "bottom-sheet-footer",
565
+ className: t
566
+ })
567
+ });
568
+ }
569
+ he.displayName = "BottomSheet.Footer";
570
+ function ge({ ref: e, sx: n, className: r, children: i, ...a }) {
571
+ let { titleId: o, setHasTitle: c } = J("Title"), l = s(i) && i !== "";
572
+ return y(() => {
573
+ if (l) return c(!0), () => c(!1);
574
+ }, [l, c]), l ? /* @__PURE__ */ T(t, {
575
+ className: r,
576
+ styles: ce,
577
+ sx: n,
578
+ children: (t) => /* @__PURE__ */ T("h2", {
579
+ ...a,
580
+ ref: e,
581
+ id: o,
582
+ "data-ui": "bottom-sheet-title",
583
+ className: t,
584
+ children: i
585
+ })
586
+ }) : null;
587
+ }
588
+ ge.displayName = "BottomSheet.Title";
589
+ function _e({ ref: e, sx: n, className: r, children: i, ...a }) {
590
+ let { descriptionId: o, setHasDescription: c } = J("Description"), l = s(i) && i !== "";
591
+ return y(() => {
592
+ if (l) return c(!0), () => c(!1);
593
+ }, [l, c]), l ? /* @__PURE__ */ T(t, {
594
+ className: r,
595
+ styles: le,
596
+ sx: n,
597
+ children: (t) => /* @__PURE__ */ T("p", {
598
+ ...a,
599
+ ref: e,
600
+ id: o,
601
+ "data-ui": "bottom-sheet-description",
602
+ className: t,
603
+ children: i
604
+ })
605
+ }) : null;
606
+ }
607
+ _e.displayName = "BottomSheet.Description";
608
+ function ve({ ref: e, sx: n, className: r, onClick: i, onKeyDown: a, "aria-describedby": o, ...s }) {
609
+ let c = J("Handle"), l = v(q), u = c.detents.length - 1;
610
+ return /* @__PURE__ */ T(t, {
611
+ className: r,
612
+ styles: [W, ue],
613
+ sx: n,
614
+ children: (t) => /* @__PURE__ */ T("button", {
615
+ type: "button",
616
+ ...s,
617
+ ref: e,
618
+ disabled: s.disabled || u === 0,
619
+ className: t,
620
+ "data-ui": "bottom-sheet-handle",
621
+ "aria-controls": c.panelId,
622
+ "aria-expanded": c.value === u,
623
+ "aria-describedby": [o, c.valueTextId].filter(Boolean).join(" "),
624
+ onClick: (e) => {
625
+ i?.(e), l?.suppressClick.current ? l.suppressClick.current = !1 : e.defaultPrevented || c.requestValue(c.value === u ? 0 : u);
626
+ },
627
+ onKeyDown: (e) => {
628
+ if (a?.(e), e.defaultPrevented) return;
629
+ (e.key === "Enter" || e.key === " ") && l && (l.suppressClick.current = !1);
630
+ let t = {
631
+ ArrowUp: Math.min(u, c.value + 1),
632
+ ArrowDown: Math.max(0, c.value - 1),
633
+ Home: u,
634
+ End: 0
635
+ }[e.key];
636
+ t !== void 0 && (e.preventDefault(), c.requestValue(t));
637
+ }
638
+ })
639
+ });
640
+ }
641
+ ve.displayName = "BottomSheet.Handle";
642
+ function ye({ ref: e, sx: n, className: r, onClick: i, ...a }) {
643
+ let o = J("Close");
644
+ return /* @__PURE__ */ T(t, {
645
+ className: r,
646
+ styles: W,
647
+ sx: n,
648
+ children: (t) => /* @__PURE__ */ T("button", {
649
+ type: "button",
650
+ ...a,
651
+ ref: e,
652
+ "data-ui": "bottom-sheet-close",
653
+ className: t,
654
+ onClick: (e) => {
655
+ i?.(e), e.defaultPrevented || o.requestClose();
656
+ }
657
+ })
658
+ });
659
+ }
660
+ ye.displayName = "BottomSheet.Close";
661
+ var be = Object.assign(Y, {
662
+ Trigger: X,
663
+ Content: Z,
664
+ Panel: Q,
665
+ Header: $,
666
+ Body: me,
667
+ Footer: he,
668
+ Title: ge,
669
+ Description: _e,
670
+ Handle: ve,
671
+ Close: ye
672
+ });
673
+ //#endregion
674
+ export { be as t };
@@ -0,0 +1,2 @@
1
+ 'use client';
2
+ export { t as BottomSheet } from "./bottom-sheet-DjZOPq4k.js";