@jfrader/ui 0.5.1 → 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 (283) hide show
  1. package/README.md +18 -1
  2. package/dist/{accordion-DLul6vIl.js → accordion-D6myONB9.js} +36 -35
  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-Dlbq5-9D.js → announcement-bar-B5J33QUh.js} +132 -131
  9. package/dist/announcement-bar.js +1 -1
  10. package/dist/{avatar-CaGJHy1N.js → avatar-B6idYC59.js} +11 -10
  11. package/dist/{avatar-group-M1opAQEG.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-CjM5Agqk.js → badge-CfhTcA-Z.js} +10 -9
  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-DjZOPq4k.js → bottom-sheet-BFQKO0Wo.js} +282 -264
  19. package/dist/bottom-sheet.js +1 -1
  20. package/dist/{breadcrumbs-BDK_LiwH.js → breadcrumbs-CG3akw-b.js} +19 -18
  21. package/dist/breadcrumbs.js +1 -1
  22. package/dist/{button-NLY0h6EJ.js → button-C6OV0C7J.js} +14 -13
  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-B7OrvD6J.js → carousel-lTH4Foke.js} +13 -12
  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-DKSzExj2.js → checkbox-CClE61GV.js} +9 -8
  36. package/dist/checkbox.js +1 -1
  37. package/dist/{chip-group-DjQ0_6Y9.js → chip-group-BZUX9KPF.js} +17 -16
  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-B5we2lZa.js → code-block-CYP89_6h.js} +35 -34
  41. package/dist/code-block.js +1 -1
  42. package/dist/{combobox-DFFqOBCi.js → combobox-D2Oc-co7.js} +21 -20
  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 +1 -1
  48. package/dist/{container-BOaSptJa.js → container-BxtwJSSD.js} +3 -2
  49. package/dist/container.js +1 -1
  50. package/dist/{context-menu-__1c2Dk9.js → context-menu-I4i0LRpm.js} +52 -51
  51. package/dist/context-menu.js +1 -1
  52. package/dist/{copy-button-DCSLcYS-.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-BiPN7yeK.js → date-picker-D-bn-iHs.js} +14 -13
  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-Cp7aNbhM.js → divider-zOJzkcHh.js} +7 -6
  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-rUATve0o.js → expandable-card-W97vjix9.js} +52 -51
  70. package/dist/expandable-card.js +1 -1
  71. package/dist/{expanding-search-BxOwtdwt.js → expanding-search-Bb2_YfNx.js} +16 -15
  72. package/dist/expanding-search.js +1 -1
  73. package/dist/{field-anatomy-COVdNpf5.js → field-anatomy-BDIP42MI.js} +2 -1
  74. package/dist/{file-dropzone-BuXm3Tea.js → file-dropzone-Bi5ikRIz.js} +14 -13
  75. package/dist/file-dropzone.js +1 -1
  76. package/dist/{filter-toolbar-Cy5Hqur-.js → filter-toolbar-QRnC4S_H.js} +33 -32
  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-CoMJKg1g.js → hover-card-DN1EAlQA.js} +20 -19
  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-BxY8Ykzt.js → image-compare-Ln2UUqTU.js} +20 -19
  86. package/dist/image-compare.js +1 -1
  87. package/dist/index.js +98 -83
  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-DgWqyU75.js → json-viewer-Dro3WrjS.js} +31 -30
  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-sq61si9L.js → mention-input-BjjAbJCf.js} +6 -6
  107. package/dist/mention-input.js +1 -1
  108. package/dist/{menu-DDKgmK2F.js → menu-CVzpsyXn.js} +113 -96
  109. package/dist/menu.js +1 -1
  110. package/dist/{metric-card--lVTz5Wn.js → metric-card-BnFssTXj.js} +12 -11
  111. package/dist/metric-card.js +1 -1
  112. package/dist/{multi-select-DG1BCFX7.js → multi-select-B3puEVo0.js} +67 -66
  113. package/dist/multi-select.js +1 -1
  114. package/dist/{navigation-CC26JDr-.js → navigation-C_JD43gA.js} +41 -40
  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-motion-Cr77ihn2.js +90 -0
  120. package/dist/{overlay-portal-C4JZFq2M.js → overlay-portal-C9igMHnC.js} +1 -1
  121. package/dist/{pagination-BfkeWbmP.js → pagination-Dkh4bJQh.js} +10 -9
  122. package/dist/pagination.js +1 -1
  123. package/dist/{password-field-03pWRkuY.js → password-field-Da58GP1g.js} +4 -4
  124. package/dist/password-field.js +1 -1
  125. package/dist/photo-grid-Dtl17D74.js +830 -0
  126. package/dist/photo-grid.js +2 -0
  127. package/dist/{pill-BaS-uIbn.js → pill-Dd7pog19.js} +10 -9
  128. package/dist/pill.js +1 -1
  129. package/dist/{popover-CErIw2q3.js → popover-CUMOcMtj.js} +5 -4
  130. package/dist/popover.js +1 -1
  131. package/dist/presence-spring-4zwtUDQN.js +12 -0
  132. package/dist/{progress-DAQkfhPd.js → progress-Bcuz3Ob4.js} +11 -10
  133. package/dist/progress.js +1 -1
  134. package/dist/{radio-cards-Cu9cBssN.js → radio-cards-FkAhESb5.js} +35 -34
  135. package/dist/radio-cards.js +1 -1
  136. package/dist/{radio-group-TIK0-iPX.js → radio-group-DItMf2YM.js} +18 -17
  137. package/dist/radio-group.js +1 -1
  138. package/dist/{resizable-panels-DUpQEpwG.js → resizable-panels-61h9hA3B.js} +13 -12
  139. package/dist/resizable-panels.js +1 -1
  140. package/dist/{scroll-area-CcZyiSOQ.js → scroll-area-B8KkCPOM.js} +16 -15
  141. package/dist/scroll-area.js +1 -1
  142. package/dist/{search-field-DMvho0KQ.js → search-field-CbsajaZb.js} +93 -92
  143. package/dist/search-field.js +1 -1
  144. package/dist/{segmented-control-8ZUGnsZm.js → segmented-control-DCh-4ca-.js} +26 -25
  145. package/dist/segmented-control.js +1 -1
  146. package/dist/{select-D5rhJ8gi.js → select-SrcQqZjo.js} +27 -26
  147. package/dist/select.js +1 -1
  148. package/dist/sheet-stack-DYX1SGSB.js +820 -0
  149. package/dist/sheet-stack.js +2 -0
  150. package/dist/shortcut-recorder-VgTQdjjn.js +688 -0
  151. package/dist/shortcut-recorder.js +2 -0
  152. package/dist/{signature-pad-_bTeguN9.js → signature-pad-khL2yhQI.js} +15 -14
  153. package/dist/signature-pad.js +1 -1
  154. package/dist/{skeleton-XQQDkCHd.js → skeleton-LJsQsveI.js} +9 -8
  155. package/dist/skeleton.js +1 -1
  156. package/dist/slider-DjAnGmlC.js +535 -0
  157. package/dist/slider.js +1 -1
  158. package/dist/{sortable-data-table-CYKT_Ng7.js → sortable-data-table-Bpitup_d.js} +29 -28
  159. package/dist/sortable-data-table.js +1 -1
  160. package/dist/{spinner-DtxvDPdM.js → spinner-CvzajSg9.js} +11 -10
  161. package/dist/spinner.js +1 -1
  162. package/dist/{split-button-BCw4zZom.js → split-button-Bu41f2AY.js} +20 -19
  163. package/dist/split-button.js +1 -1
  164. package/dist/{stack-DC3IbtWk.js → stack-Bac4sJeI.js} +2 -2
  165. package/dist/stack.js +1 -1
  166. package/dist/{stepper-CruHbXxX.js → stepper-C8Ncavbr.js} +22 -21
  167. package/dist/stepper.js +1 -1
  168. package/dist/stretch-refresh-OrnTEj7P.js +349 -0
  169. package/dist/stretch-refresh.js +2 -0
  170. package/dist/{surface-DZ4d-2aL.js → surface-C69kwSuk.js} +13 -3
  171. package/dist/{swipe-actions-CBuJREU1.js → swipe-actions-1H5UOZKE.js} +26 -25
  172. package/dist/swipe-actions.js +1 -1
  173. package/dist/{switch-C1WrKrf-.js → switch-79-hkQqg.js} +15 -14
  174. package/dist/switch.js +1 -1
  175. package/dist/sx-BJXJ2xJK.js +23 -0
  176. package/dist/{tabs-XluwRjgg.js → tabs-Bb5-noYE.js} +43 -42
  177. package/dist/tabs.js +1 -1
  178. package/dist/{tag-input-DSRCyrX2.js → tag-input-BQaueKEb.js} +5 -5
  179. package/dist/tag-input.js +1 -1
  180. package/dist/{text-field-hU72iSVS.js → text-field-D0VP7b4P.js} +3 -3
  181. package/dist/text-field.js +1 -1
  182. package/dist/{textarea-3k4Y0QQ3.js → textarea-D1YwEPmn.js} +3 -3
  183. package/dist/textarea.js +1 -1
  184. package/dist/theme-provider-BvcY-iJu.js +20 -0
  185. package/dist/theme-root-BrYVcTzt.js +163 -0
  186. package/dist/theme-root.js +1 -1
  187. package/dist/theme-scope-DGWy4H0C.js +62 -0
  188. package/dist/{theme-switch-C505TtU8.js → theme-switch-CP42mVDb.js} +12 -11
  189. package/dist/theme-switch.js +1 -1
  190. package/dist/thread-parts-DfZNz70v.js +683 -0
  191. package/dist/{time-picker-CPlhW0tr.js → time-picker-Tnd-JBLC.js} +16 -15
  192. package/dist/time-picker.js +1 -1
  193. package/dist/{timeline-B0uAAVfT.js → timeline-DaldDMX7.js} +22 -21
  194. package/dist/timeline.js +1 -1
  195. package/dist/{toast-B7wo3sX1.js → toast-CSAbl5yK.js} +12 -11
  196. package/dist/{toast-stack-B40VpS4M.js → toast-stack-BCR4Cu7V.js} +10 -9
  197. package/dist/toast-stack.js +1 -1
  198. package/dist/toast.js +1 -1
  199. package/dist/{toggle-group-B2fpFZwV.js → toggle-group-C7ye1v4s.js} +23 -22
  200. package/dist/toggle-group.js +1 -1
  201. package/dist/{tooltip-BvgVTCTN.js → tooltip-IajLwdUb.js} +48 -39
  202. package/dist/tooltip.js +1 -1
  203. package/dist/{tree-view-j8qLqkb_.js → tree-view-CoW4oJIZ.js} +15 -14
  204. package/dist/tree-view.js +1 -1
  205. package/dist/{trigger-style-B1KVC8O1.js → trigger-style-CtOrdPk4.js} +1 -1
  206. package/dist/types/components/activity-rings/activity-rings.d.ts +115 -0
  207. package/dist/types/components/activity-rings/index.d.ts +2 -0
  208. package/dist/types/components/billing-toggle/billing-toggle.d.ts +57 -0
  209. package/dist/types/components/billing-toggle/index.d.ts +2 -0
  210. package/dist/types/components/button-group/button-group.d.ts +72 -0
  211. package/dist/types/components/button-group/index.d.ts +2 -0
  212. package/dist/types/components/card/card.d.ts +4 -1
  213. package/dist/types/components/chat-thread/chat-thread.d.ts +130 -0
  214. package/dist/types/components/chat-thread/index.d.ts +2 -0
  215. package/dist/types/components/comment-thread/comment-thread.d.ts +3 -3
  216. package/dist/types/components/drawer/drawer.d.ts +7 -1
  217. package/dist/types/components/keycap-keyboard/index.d.ts +2 -0
  218. package/dist/types/components/keycap-keyboard/keycap-keyboard.d.ts +32 -0
  219. package/dist/types/components/lightbox-gallery/index.d.ts +2 -0
  220. package/dist/types/components/lightbox-gallery/lightbox-gallery.d.ts +74 -0
  221. package/dist/types/components/link-unfurl/index.d.ts +2 -0
  222. package/dist/types/components/link-unfurl/link-unfurl.d.ts +94 -0
  223. package/dist/types/components/locale-switcher/index.d.ts +2 -0
  224. package/dist/types/components/locale-switcher/locale-switcher.d.ts +58 -0
  225. package/dist/types/components/menu/menu.d.ts +29 -5
  226. package/dist/types/components/next/emotion-registry.d.ts +16 -0
  227. package/dist/types/components/next/index.d.ts +2 -0
  228. package/dist/types/components/next/registry.d.ts +21 -0
  229. package/dist/types/components/now-playing/index.d.ts +1 -0
  230. package/dist/types/components/now-playing/now-playing.d.ts +88 -0
  231. package/dist/types/components/photo-grid/index.d.ts +2 -0
  232. package/dist/types/components/photo-grid/photo-grid.d.ts +82 -0
  233. package/dist/types/components/sheet-stack/index.d.ts +2 -0
  234. package/dist/types/components/sheet-stack/sheet-stack.d.ts +78 -0
  235. package/dist/types/components/shortcut-recorder/index.d.ts +2 -0
  236. package/dist/types/components/shortcut-recorder/shortcut-recorder.d.ts +117 -0
  237. package/dist/types/components/stretch-refresh/index.d.ts +1 -0
  238. package/dist/types/components/stretch-refresh/stretch-refresh.d.ts +49 -0
  239. package/dist/types/components/theme-root/index.d.ts +1 -0
  240. package/dist/types/components/theme-root/theme-root.d.ts +9 -1
  241. package/dist/types/components/{comment-thread → thread}/thread-parts.d.ts +7 -2
  242. package/dist/types/components/tooltip/tooltip.d.ts +8 -1
  243. package/dist/types/components/usage-meter/usage-meter.d.ts +2 -12
  244. package/dist/types/components/usage-meter/usage-model.d.ts +30 -0
  245. package/dist/types/components/user-menu/index.d.ts +2 -0
  246. package/dist/types/components/user-menu/user-menu.d.ts +119 -0
  247. package/dist/types/index.d.ts +14 -1
  248. package/dist/types/overlay/exit-motion.d.ts +24 -0
  249. package/dist/types/overlay/presence-spring.d.ts +12 -0
  250. package/dist/types/overlay/use-native-dialog.d.ts +10 -1
  251. package/dist/types/styling/create-theme.d.ts +24 -0
  252. package/dist/types/styling/css.d.ts +1 -1
  253. package/dist/types/styling/overlay-motion.d.ts +95 -0
  254. package/dist/types/styling/surface.d.ts +7 -0
  255. package/dist/types/styling/theme-scope.d.ts +29 -3
  256. package/dist/types/styling/theme.d.ts +5 -0
  257. package/dist/{usage-meter-qyQ3rYVv.js → usage-meter-CYvlB6l3.js} +165 -175
  258. package/dist/usage-meter.js +1 -1
  259. package/dist/usage-model-C0fS47w4.js +32 -0
  260. package/dist/use-native-dialog-FB0p7lkg.js +93 -0
  261. package/dist/use-scroll-lock-40gXwwAy.js +23 -0
  262. package/dist/user-menu-DzELTg1x.js +757 -0
  263. package/dist/user-menu.js +2 -0
  264. package/dist/{visually-hidden-BJdvqqvn.js → visually-hidden-DgVO3NaB.js} +1 -1
  265. package/package.json +72 -6
  266. package/dist/calendar-BzJdv_SZ.js +0 -449
  267. package/dist/card-Ca4KQKYQ.js +0 -154
  268. package/dist/command-palette-BmQu2w4H.js +0 -391
  269. package/dist/comment-thread-ASaXDcGo.js +0 -1410
  270. package/dist/date-range-picker-DQpUeKqV.js +0 -570
  271. package/dist/dialog-BX1zYMs-.js +0 -219
  272. package/dist/drawer-DsASTiP-.js +0 -553
  273. package/dist/elastic-slider-BG6K019r.js +0 -395
  274. package/dist/elastic-slider.js +0 -2
  275. package/dist/slider-DVG6-Awh.js +0 -308
  276. package/dist/sx-Dx9JUKp5.js +0 -23
  277. package/dist/theme-root-Bs1U3uPA.js +0 -46
  278. package/dist/theme-scope-t7nAKc2c.js +0 -27
  279. package/dist/types/components/elastic-slider/elastic-slider.d.ts +0 -53
  280. package/dist/types/components/elastic-slider/index.d.ts +0 -1
  281. package/dist/use-native-dialog-DWpIUVO1.js +0 -84
  282. package/dist/use-slider-interaction-ChL-208h.js +0 -234
  283. /package/dist/types/components/{comment-thread → thread}/thread-core.d.ts +0 -0
@@ -0,0 +1,777 @@
1
+ 'use client';
2
+ import { i as e } from "./css-BYJhdGh-.js";
3
+ import { n as t } from "./focus-ring-BK5W5_NY.js";
4
+ import { n, r } from "./media-8yrN85VT.js";
5
+ import { t as i } from "./sx-BJXJ2xJK.js";
6
+ import { t as a } from "./use-controlled-state-DpeVQZNR.js";
7
+ import { t as o } from "./renderable-DzcIj1Lo.js";
8
+ import { t as s } from "./button-C6OV0C7J.js";
9
+ import { i as c, r as ee, t as te } from "./use-native-dialog-FB0p7lkg.js";
10
+ import { c as ne, i as l, o as u, r as d, t as f } from "./overlay-motion-Cr77ihn2.js";
11
+ import { useEffect as p, useId as re, useLayoutEffect as ie, useMemo as ae, useRef as m, useState as h } from "react";
12
+ import { vars as g } from "@jfrader/tokens/vars";
13
+ import { Fragment as _, jsx as v, jsxs as y } from "@emotion/react/jsx-runtime";
14
+ import { MotionConfig as oe, animate as b, motion as se, useMotionValue as x, useReducedMotion as S } from "motion/react";
15
+ import { useMergeRefs as ce } from "@floating-ui/react";
16
+ //#region src/components/lightbox-gallery/lightbox-gallery.tsx
17
+ var le = 150, ue = 4, C = .5, w = .1, T = .25, de = .2, fe = 800, pe = 8, me = .002, he = {
18
+ type: "spring",
19
+ stiffness: 360,
20
+ damping: 36
21
+ }, E = {
22
+ open: "Open image",
23
+ close: "Close viewer",
24
+ previous: "Previous image",
25
+ next: "Next image",
26
+ zoom: "Toggle zoom",
27
+ zoomIn: "Zoom in",
28
+ zoomOut: "Zoom out",
29
+ reset: "Reset zoom",
30
+ panLeft: "Pan left",
31
+ panRight: "Pan right",
32
+ panUp: "Pan up",
33
+ panDown: "Pan down",
34
+ empty: "No images",
35
+ unavailable: "Image unavailable",
36
+ imageUnavailable: "Image unavailable",
37
+ loading: "Loading image",
38
+ thumbnails: "Choose image",
39
+ position: (e, t) => `${e} / ${t}`,
40
+ zoomPercent: (e) => e
41
+ }, ge = e({
42
+ label: "lightbox-gallery",
43
+ minInlineSize: 0,
44
+ color: g.color.text,
45
+ fontFamily: g.font.sans,
46
+ "&:focus-visible": t
47
+ }), _e = e({
48
+ display: "grid",
49
+ gridTemplateColumns: "repeat(var(--lightbox-columns, 1), minmax(0, 1fr))",
50
+ gridAutoRows: "1px",
51
+ gap: "var(--lightbox-gap)",
52
+ padding: 0,
53
+ margin: 0,
54
+ listStyle: "none"
55
+ }), D = e({
56
+ position: "relative",
57
+ display: "block",
58
+ inlineSize: "100%",
59
+ minBlockSize: g.space[8],
60
+ padding: 0,
61
+ border: `1px solid ${g.color.borderControl}`,
62
+ borderRadius: g.radius.md,
63
+ background: "transparent",
64
+ cursor: "pointer",
65
+ overflow: "hidden",
66
+ "&:focus-visible": t
67
+ }), ve = e({
68
+ position: "relative",
69
+ display: "block",
70
+ inlineSize: "100%",
71
+ blockSize: "100%",
72
+ objectFit: "contain",
73
+ userSelect: "none"
74
+ }), O = {
75
+ backgroundColor: "transparent",
76
+ borderColor: "transparent"
77
+ }, k = {
78
+ opacity: 0,
79
+ scale: String(f)
80
+ }, ye = e({
81
+ boxSizing: "border-box",
82
+ inlineSize: "100%",
83
+ maxInlineSize: "100%",
84
+ blockSize: "100dvh",
85
+ maxBlockSize: "100dvh",
86
+ margin: 0,
87
+ border: `1px solid ${g.color.borderControl}`,
88
+ background: g.color.bg,
89
+ color: g.color.text,
90
+ padding: `max(${g.space[4]}, env(safe-area-inset-top)) max(${g.space[4]}, env(safe-area-inset-right)) max(${g.space[4]}, env(safe-area-inset-bottom)) max(${g.space[4]}, env(safe-area-inset-left))`,
91
+ overflow: "auto",
92
+ fontFamily: g.font.sans,
93
+ "&::backdrop": { background: g.color.scrim },
94
+ transitionProperty: "background-color, border-color",
95
+ ...d,
96
+ "@starting-style": O,
97
+ "&[data-state=\"closing\"]": {
98
+ ...O,
99
+ ...l
100
+ },
101
+ [r]: { "&, &[data-state=\"closing\"]": { transitionDuration: "0s" } },
102
+ [n]: { boxShadow: "none" }
103
+ }, u), A = ":not([data-ui=\"lightbox-gallery-stage\"])", be = e({
104
+ display: "flex",
105
+ flexDirection: "column",
106
+ gap: g.space[3],
107
+ minBlockSize: "100%",
108
+ [`& > ${A}`]: {
109
+ transitionProperty: "opacity",
110
+ ...d,
111
+ "@starting-style": { opacity: 0 }
112
+ },
113
+ [`&[data-state="closing"] > ${A}`]: {
114
+ opacity: 0,
115
+ ...l
116
+ },
117
+ [r]: { [`& > ${A}, &[data-state="closing"] > ${A}`]: { transitionDuration: "0s" } }
118
+ }), xe = e({
119
+ display: "flex",
120
+ alignItems: "center",
121
+ justifyContent: "space-between",
122
+ gap: g.space[3]
123
+ }), Se = e({
124
+ margin: 0,
125
+ fontSize: g.textSize.lg,
126
+ overflowWrap: "anywhere"
127
+ }), j = e({
128
+ position: "relative",
129
+ display: "grid",
130
+ placeItems: "center",
131
+ flex: "1 0 auto",
132
+ blockSize: "50dvh",
133
+ minBlockSize: g.space[12],
134
+ overflow: "hidden",
135
+ touchAction: "none",
136
+ borderRadius: g.radius.md,
137
+ "&:focus-visible": t
138
+ }), Ce = e({
139
+ position: "absolute",
140
+ pointerEvents: "none",
141
+ display: "grid",
142
+ placeItems: "center",
143
+ transitionProperty: "opacity, scale",
144
+ ...d,
145
+ "@starting-style": k,
146
+ "&[data-exit=\"fade\"]": {
147
+ ...k,
148
+ ...l
149
+ },
150
+ [r]: { "&, &[data-exit=\"fade\"]": { transitionDuration: "0s" } }
151
+ }), we = e({
152
+ display: "flex",
153
+ flexWrap: "wrap",
154
+ gap: g.space[2],
155
+ alignItems: "center",
156
+ background: g.color.bg
157
+ }), M = e({
158
+ whiteSpace: "normal",
159
+ blockSize: "auto",
160
+ minBlockSize: g.space[8],
161
+ overflowWrap: "anywhere"
162
+ }), Te = e({
163
+ margin: 0,
164
+ fontSize: g.textSize.sm,
165
+ color: g.color.textMuted,
166
+ overflowWrap: "anywhere"
167
+ }), Ee = e({
168
+ display: "flex",
169
+ flexWrap: "wrap",
170
+ gap: g.space[2]
171
+ }), De = e({
172
+ ...t,
173
+ outline: "none",
174
+ inlineSize: g.space[12],
175
+ blockSize: g.space[12],
176
+ padding: 0,
177
+ border: `1px solid ${g.color.borderControl}`,
178
+ borderRadius: g.radius.md,
179
+ background: "transparent",
180
+ "&:focus-visible": t,
181
+ "&[aria-current=\"true\"]": {
182
+ outline: `2px solid ${g.color.accentText}`,
183
+ outlineOffset: "2px"
184
+ },
185
+ [n]: { "&[aria-current=\"true\"]": { outlineColor: "Highlight" } }
186
+ }), N = e({
187
+ position: "absolute",
188
+ inset: 0,
189
+ display: "grid",
190
+ placeItems: "center",
191
+ padding: g.space[3],
192
+ color: g.color.textMuted,
193
+ textAlign: "center",
194
+ overflowWrap: "anywhere"
195
+ }), Oe = e({
196
+ fontSize: g.textSize.sm,
197
+ color: g.color.textMuted,
198
+ overflowWrap: "anywhere"
199
+ }), P = e({
200
+ opacity: 0,
201
+ transitionProperty: "opacity",
202
+ transitionDuration: g.motion.duration.base,
203
+ "&[data-image-state=\"loaded\"]": { opacity: 1 },
204
+ [r]: { transitionDuration: "0s" }
205
+ }), ke = e({
206
+ position: "fixed",
207
+ pointerEvents: "none",
208
+ transformOrigin: "top left",
209
+ zIndex: 1,
210
+ overflow: "hidden",
211
+ borderRadius: g.radius.md
212
+ });
213
+ function F(...e) {
214
+ return e.filter(Boolean).join(" ") || void 0;
215
+ }
216
+ function I(e, t, n) {
217
+ return Math.min(n, Math.max(t, e));
218
+ }
219
+ function L(e, t) {
220
+ return Number.isFinite(e) && e > 0 ? e : t;
221
+ }
222
+ function Ae({ image: e, decorative: t = !1, labels: n, slot: r }) {
223
+ let [i, a] = h(e.src ? "loading" : "error"), { onLoad: o, onError: s, ...c } = r ?? {};
224
+ return /* @__PURE__ */ y(_, { children: [i !== "loaded" && /* @__PURE__ */ v("span", {
225
+ css: N,
226
+ "aria-hidden": t || void 0,
227
+ "data-image-state": i,
228
+ children: t ? "▧" : i === "error" ? n.imageUnavailable : n.loading
229
+ }), i !== "error" && /* @__PURE__ */ v("img", {
230
+ ...c,
231
+ css: [
232
+ ve,
233
+ P,
234
+ r?.css
235
+ ],
236
+ src: e.src,
237
+ srcSet: e.srcSet,
238
+ sizes: e.sizes,
239
+ alt: t ? "" : e.alt,
240
+ "aria-hidden": t || c["aria-hidden"],
241
+ width: e.width,
242
+ height: e.height,
243
+ loading: t ? "lazy" : "eager",
244
+ decoding: "async",
245
+ draggable: !1,
246
+ "data-image-state": i,
247
+ onLoad: (e) => {
248
+ o?.(e), a("loaded");
249
+ },
250
+ onError: (e) => {
251
+ s?.(e), a("error");
252
+ }
253
+ })] });
254
+ }
255
+ function R({ ref: e, register: t, ...n }) {
256
+ let r = ce([e, t]);
257
+ return /* @__PURE__ */ v("button", {
258
+ ...n,
259
+ ref: r
260
+ });
261
+ }
262
+ function z({ images: e, selected: t, label: n, controller: r, select: i, restore: a, launch: c, labels: l, locale: u, maxZoom: d, slots: f, returnFlight: g, reduced: _ }) {
263
+ let oe = re(), S = ae(() => new Intl.NumberFormat(u), [u]), le = ae(() => new Intl.NumberFormat(u, {
264
+ style: "percent",
265
+ maximumFractionDigits: 0
266
+ }), [u]), ue = m(null), E = m(null), ge = ce([E, f?.stage?.ref]), { withDescription: _e = !0, ...D } = te(f?.viewer ?? {}), O = m(null), k = () => {
267
+ let e = c.current, t = O.current;
268
+ if (!_ && R && e?.isConnected && t?.width && V.width && V.height) {
269
+ let n = e.getBoundingClientRect();
270
+ n.width && n.height && g({
271
+ image: R,
272
+ from: {
273
+ left: t.left + (t.width - V.width) / 2,
274
+ top: t.top + (t.height - V.height) / 2,
275
+ ...V
276
+ },
277
+ to: n
278
+ });
279
+ }
280
+ a();
281
+ }, A = ee(r, {
282
+ onCancel: D.onCancel,
283
+ onClick: D.onClick,
284
+ onClose: (e) => {
285
+ D.onClose?.(e), k();
286
+ }
287
+ }, D.ref, ue, ne), N = A["data-state"], [P, ke] = h(!1), L = e.findIndex((e) => e.id === t), R = e[L], [z, B] = h(1), [V, je] = h({
288
+ width: 0,
289
+ height: 0
290
+ }), H = x(0), U = x(0), W = x(1), G = x(0), K = x(0), q = x(1), J = m(/* @__PURE__ */ new Map()), Y = m(null), X = m(!1), Me = f?.title?.id ?? `${oe}-title`, Ne = f?.caption?.id ?? `${oe}-caption`, Pe = R && o(R.caption) && R.caption !== "", Fe = R ? l.position(S.format(L + 1), S.format(e.length)) : l.unavailable, Ie = l.zoomPercent(le.format(z)), Le = (e = W.get()) => ({
291
+ x: Math.max(0, (V.width * e - (E.current?.clientWidth ?? 0)) / 2),
292
+ y: Math.max(0, (V.height * e - (E.current?.clientHeight ?? 0)) / 2)
293
+ }), Z = (e, t, n = W.get()) => {
294
+ let r = Le(n);
295
+ H.set(I(e, -r.x, r.x)), U.set(I(t, -r.y, r.y));
296
+ }, Q = (e, t = 0, n = 0) => {
297
+ let r = I(e, 1, d), i = r / W.get(), a = t - (t - H.get()) * i, o = n - (n - U.get()) * i;
298
+ W.set(r), B(r), Z(a, o, r);
299
+ }, Re = (t) => {
300
+ let n = e[t];
301
+ n && i(n.id);
302
+ };
303
+ ie(() => {
304
+ let e = E.current;
305
+ if (!e || !R || !r.open) return;
306
+ let t = () => {
307
+ e.clientWidth && e.clientHeight && (O.current = e.getBoundingClientRect());
308
+ let t = Math.min(e.clientWidth / R.width, e.clientHeight / R.height), n = R.width * t, r = R.height * t;
309
+ je({
310
+ width: n,
311
+ height: r
312
+ }), H.set(I(H.get(), -Math.max(0, (n * W.get() - e.clientWidth) / 2), Math.max(0, (n * W.get() - e.clientWidth) / 2))), U.set(I(U.get(), -Math.max(0, (r * W.get() - e.clientHeight) / 2), Math.max(0, (r * W.get() - e.clientHeight) / 2)));
313
+ };
314
+ t();
315
+ let n = new ResizeObserver(t);
316
+ n.observe(e);
317
+ let i = ue.current, a = () => {
318
+ O.current = e.getBoundingClientRect();
319
+ };
320
+ i?.addEventListener("scroll", a);
321
+ let o = e.ownerDocument.defaultView?.visualViewport;
322
+ return o?.addEventListener("resize", t), () => {
323
+ n.disconnect(), i?.removeEventListener("scroll", a), o?.removeEventListener("resize", t);
324
+ };
325
+ }, [
326
+ r.open,
327
+ R,
328
+ H,
329
+ U,
330
+ W
331
+ ]), p(() => {
332
+ B(1), H.jump(0), U.jump(0), W.jump(1), J.current.clear(), Y.current = null;
333
+ }, [
334
+ t,
335
+ r.open,
336
+ H,
337
+ U,
338
+ W
339
+ ]), p(() => {
340
+ W.get() > d && Q(d);
341
+ }, [d]), p(() => {
342
+ if (G.jump(0), K.jump(0), q.jump(1), !r.open || _ || !c.current?.isConnected || c.current.dataset.imageId !== t) return;
343
+ let e = E.current?.getBoundingClientRect(), n = c.current.getBoundingClientRect();
344
+ if (!e?.width || !e.height || !n.width || !R) return;
345
+ let i = Math.min(e.width / R.width, e.height / R.height);
346
+ G.set(n.left + n.width / 2 - e.left - e.width / 2), K.set(n.top + n.height / 2 - e.top - e.height / 2), q.set(n.width / (R.width * i));
347
+ let a = [
348
+ b(G, 0, he),
349
+ b(K, 0, he),
350
+ b(q, 1, he)
351
+ ];
352
+ return () => a.forEach((e) => e.stop());
353
+ }, [
354
+ r.open,
355
+ r.repairToken,
356
+ _,
357
+ G,
358
+ K,
359
+ q
360
+ ]), p(() => {
361
+ r.open && ke(!_ && !!c.current?.isConnected);
362
+ }, [
363
+ r.open,
364
+ _,
365
+ c
366
+ ]), p(() => {
367
+ let e = E.current;
368
+ if (!e || !r.open || !R) return;
369
+ let t = (t) => {
370
+ if (!t.ctrlKey || t.defaultPrevented) return;
371
+ t.preventDefault();
372
+ let n = e.getBoundingClientRect();
373
+ Q(W.get() * Math.exp(-t.deltaY * me), t.clientX - n.left - n.width / 2, t.clientY - n.top - n.height / 2);
374
+ };
375
+ return e.addEventListener("wheel", t, { passive: !1 }), () => e.removeEventListener("wheel", t);
376
+ }, [
377
+ r.open,
378
+ R,
379
+ d
380
+ ]);
381
+ let ze = (t) => {
382
+ if (t.defaultPrevented || t.target !== t.currentTarget || !R) return;
383
+ let n = t.currentTarget.matches(":dir(rtl)") ? -1 : 1, r = {
384
+ ArrowLeft: [1, 0],
385
+ ArrowRight: [-1, 0],
386
+ ArrowUp: [0, 1],
387
+ ArrowDown: [0, -1]
388
+ }[t.key];
389
+ if (z > 1 && r) {
390
+ t.preventDefault(), Z(H.get() + r[0] * t.currentTarget.clientWidth * w, U.get() + r[1] * t.currentTarget.clientHeight * w);
391
+ return;
392
+ }
393
+ let i = {
394
+ ArrowLeft: L - n,
395
+ ArrowRight: L + n,
396
+ Home: 0,
397
+ End: e.length - 1
398
+ };
399
+ i[t.key] !== void 0 && (z === 1 || t.key === "Home" || t.key === "End") && (t.preventDefault(), Re(i[t.key])), (t.key === "+" || t.key === "=") && (t.preventDefault(), Q(z + C)), t.key === "-" && (t.preventDefault(), Q(z - C)), t.key === "0" && (t.preventDefault(), Q(1));
400
+ }, Be = () => {
401
+ J.current.clear(), Y.current = null, W.set(z), Z(H.get(), U.get(), z);
402
+ }, Ve = (e) => {
403
+ if (e.defaultPrevented || !R || e.button !== 0) return;
404
+ J.current.size || (X.current = !1), J.current.set(e.pointerId, {
405
+ x: e.clientX,
406
+ y: e.clientY
407
+ }), e.currentTarget.setPointerCapture(e.pointerId);
408
+ let t = [...J.current.values()], n = e.currentTarget.getBoundingClientRect();
409
+ Y.current = {
410
+ originX: e.clientX,
411
+ originY: e.clientY,
412
+ x: H.get(),
413
+ y: U.get(),
414
+ time: e.timeStamp,
415
+ zoom: W.get(),
416
+ pinched: t.length > 1,
417
+ distance: t.length === 2 ? Math.hypot(t[1].x - t[0].x, t[1].y - t[0].y) : void 0,
418
+ focalX: t.reduce((e, t) => e + t.x, 0) / t.length - n.left - n.width / 2,
419
+ focalY: t.reduce((e, t) => e + t.y, 0) / t.length - n.top - n.height / 2
420
+ };
421
+ }, He = (e) => {
422
+ let t = Y.current;
423
+ if (e.defaultPrevented || !t || !J.current.has(e.pointerId)) return;
424
+ J.current.set(e.pointerId, {
425
+ x: e.clientX,
426
+ y: e.clientY
427
+ });
428
+ let n = [...J.current.values()], r = e.clientX - t.originX, i = e.clientY - t.originY;
429
+ if ((Math.hypot(r, i) > pe || n.length > 1) && (X.current = !0), n.length === 2 && t.distance) {
430
+ let e = I(t.zoom * Math.hypot(n[1].x - n[0].x, n[1].y - n[0].y) / t.distance, 1, d);
431
+ W.set(e), Z(t.focalX - (t.focalX - t.x) * e / t.zoom, t.focalY - (t.focalY - t.y) * e / t.zoom, e);
432
+ } else t.zoom > 1 ? Z(t.x + r, t.y + i) : !_ && !t.pinched && (H.set(r), U.set(i));
433
+ }, Ue = (e) => {
434
+ let t = Y.current;
435
+ if (J.current.delete(e.pointerId), t) {
436
+ if (t.pinched) B(W.get()), J.current.size || (Y.current = null);
437
+ else {
438
+ if (Y.current = null, !e.defaultPrevented && t.zoom === 1) {
439
+ let n = e.clientX - t.originX, i = e.clientY - t.originY, a = i / Math.max(1, e.timeStamp - t.time) * 1e3;
440
+ i > 0 && Math.abs(i) > Math.abs(n) && (i > e.currentTarget.clientHeight * T || a > fe) ? r.requestClose() : Math.abs(n) > e.currentTarget.clientWidth * de && Math.abs(n) > Math.abs(i) && Re(L + (n < 0 ? 1 : -1) * (e.currentTarget.matches(":dir(rtl)") ? -1 : 1));
441
+ }
442
+ Z(H.get(), U.get());
443
+ }
444
+ }
445
+ }, $ = (e, t, n = !1) => /* @__PURE__ */ v(s, {
446
+ size: "sm",
447
+ css: M,
448
+ disabled: n,
449
+ onClick: t,
450
+ children: e
451
+ });
452
+ return /* @__PURE__ */ v("dialog", {
453
+ ...D,
454
+ ...A,
455
+ "data-ui": "lightbox-gallery-viewer",
456
+ "aria-modal": "true",
457
+ "aria-label": D["aria-label"] ?? n,
458
+ "aria-labelledby": F(D["aria-labelledby"], Me),
459
+ "aria-describedby": F(D["aria-describedby"], _e && !!Pe && Ne),
460
+ css: [ye, D.css],
461
+ onCancel: (e) => {
462
+ e.target === e.currentTarget && A.onCancel(e);
463
+ },
464
+ onClose: (e) => {
465
+ e.target === e.currentTarget && A.onClose(e);
466
+ },
467
+ children: /* @__PURE__ */ y("div", {
468
+ css: be,
469
+ "data-state": N,
470
+ children: [
471
+ /* @__PURE__ */ y("div", {
472
+ css: xe,
473
+ children: [/* @__PURE__ */ y("h2", {
474
+ ...f?.title,
475
+ id: Me,
476
+ css: [Se, f?.title?.css],
477
+ children: [n, R?.title ? ` — ${R.title}` : ""]
478
+ }), /* @__PURE__ */ v(s, {
479
+ size: "sm",
480
+ css: M,
481
+ ref: (e) => {
482
+ e?.setAttribute("autofocus", "");
483
+ },
484
+ onClick: r.requestClose,
485
+ children: l.close
486
+ })]
487
+ }),
488
+ /* @__PURE__ */ v("div", {
489
+ ...f?.stage,
490
+ ref: ge,
491
+ role: "group",
492
+ "aria-label": f?.stage?.["aria-label"] ?? R?.alt ?? l.unavailable,
493
+ tabIndex: 0,
494
+ "data-ui": "lightbox-gallery-stage",
495
+ "data-zoom": z,
496
+ "data-reduced-motion": _,
497
+ css: [j, f?.stage?.css],
498
+ onKeyDown: (e) => {
499
+ f?.stage?.onKeyDown?.(e), ze(e);
500
+ },
501
+ onPointerDown: (e) => {
502
+ f?.stage?.onPointerDown?.(e), Ve(e);
503
+ },
504
+ onPointerMove: (e) => {
505
+ f?.stage?.onPointerMove?.(e), He(e);
506
+ },
507
+ onPointerUp: (e) => {
508
+ f?.stage?.onPointerUp?.(e), Ue(e);
509
+ },
510
+ onPointerCancel: (e) => {
511
+ f?.stage?.onPointerCancel?.(e), Be();
512
+ },
513
+ onLostPointerCapture: (e) => {
514
+ f?.stage?.onLostPointerCapture?.(e), J.current.has(e.pointerId) && Be();
515
+ },
516
+ onClick: (e) => {
517
+ X.current ? (e.preventDefault(), e.stopPropagation(), X.current = !1) : f?.stage?.onClick?.(e);
518
+ },
519
+ onDoubleClick: (e) => {
520
+ f?.stage?.onDoubleClick?.(e), !e.defaultPrevented && !X.current && Q(z > 1 ? 1 : 2);
521
+ },
522
+ children: N !== "closed" && R && /* @__PURE__ */ v(se.div, {
523
+ css: Ce,
524
+ "data-exit": N === "closing" ? P ? "home" : "fade" : void 0,
525
+ style: {
526
+ width: V.width,
527
+ height: V.height,
528
+ x: G,
529
+ y: K,
530
+ scale: q
531
+ },
532
+ children: /* @__PURE__ */ v(se.div, {
533
+ css: ve,
534
+ style: {
535
+ x: H,
536
+ y: U,
537
+ scale: W
538
+ },
539
+ children: /* @__PURE__ */ v(Ae, {
540
+ image: R,
541
+ labels: l,
542
+ slot: f?.image
543
+ }, `${R.id}\u0000${R.src}\u0000${R.srcSet ?? ""}`)
544
+ })
545
+ })
546
+ }),
547
+ /* @__PURE__ */ y("div", {
548
+ ...f?.controls,
549
+ css: [we, f?.controls?.css],
550
+ children: [
551
+ $(l.previous, () => Re(L - 1), L <= 0),
552
+ $(l.next, () => Re(L + 1), L >= e.length - 1),
553
+ /* @__PURE__ */ v(s, {
554
+ size: "sm",
555
+ css: M,
556
+ "aria-pressed": z > 1,
557
+ disabled: d === 1,
558
+ onClick: () => Q(z > 1 ? 1 : 2),
559
+ children: l.zoom
560
+ }),
561
+ $(l.zoomIn, () => Q(z + C), z >= d),
562
+ $(l.zoomOut, () => Q(z - C), z <= 1),
563
+ $(l.reset, () => Q(1), z === 1),
564
+ $(l.panLeft, () => Z(H.get() + (E.current?.clientWidth ?? 0) * w, U.get()), z === 1),
565
+ $(l.panRight, () => Z(H.get() - (E.current?.clientWidth ?? 0) * w, U.get()), z === 1),
566
+ $(l.panUp, () => Z(H.get(), U.get() + (E.current?.clientHeight ?? 0) * w), z === 1),
567
+ $(l.panDown, () => Z(H.get(), U.get() - (E.current?.clientHeight ?? 0) * w), z === 1),
568
+ /* @__PURE__ */ v("span", {
569
+ css: Oe,
570
+ children: Ie
571
+ })
572
+ ]
573
+ }),
574
+ Pe && /* @__PURE__ */ v("p", {
575
+ ...f?.caption,
576
+ id: Ne,
577
+ css: [Te, f?.caption?.css],
578
+ children: R.caption
579
+ }),
580
+ /* @__PURE__ */ v("div", {
581
+ ...f?.thumbnails,
582
+ role: "group",
583
+ "aria-label": f?.thumbnails?.["aria-label"] ?? l.thumbnails,
584
+ css: [Ee, f?.thumbnails?.css],
585
+ children: e.map((n, r) => /* @__PURE__ */ v("button", {
586
+ type: "button",
587
+ "aria-current": n.id === t ? "true" : void 0,
588
+ "aria-label": `${n.title || n.alt}, ${l.position(S.format(r + 1), S.format(e.length))}`,
589
+ css: De,
590
+ onClick: () => i(n.id),
591
+ children: /* @__PURE__ */ v(Ae, {
592
+ image: n,
593
+ decorative: !0,
594
+ labels: l
595
+ }, `${n.id}\u0000${n.src}`)
596
+ }, n.id))
597
+ }),
598
+ /* @__PURE__ */ v("div", {
599
+ ...f?.status,
600
+ role: "status",
601
+ "aria-live": "polite",
602
+ "aria-atomic": "true",
603
+ css: [Oe, f?.status?.css],
604
+ children: Fe
605
+ })
606
+ ]
607
+ })
608
+ });
609
+ }
610
+ function B({ ref: e, images: t, label: n, minColumnWidth: o = le, gap: s = "2", value: ee, defaultValue: te, onValueChange: ne, open: l, defaultOpen: u = !1, onOpenChange: d, maxZoom: f = ue, labels: re, locale: _, slotProps: b, className: x, sx: C, ...w }) {
611
+ let [T, de] = a(ee, te === void 0 ? t[0]?.id ?? null : te, ne), [fe, pe] = a(l, u, d), [me, O] = h(null), [k, ye] = h(null), A = S(), [be, xe] = h(A ?? !1), Se = t.some((e) => e.id === T), j = !!fe && Se && (me === null || me === T), Ce = c(j, pe), we = m(null), M = m(null), Ee = ce([e, we]), De = ce([b?.grid?.ref, M]), N = m(/* @__PURE__ */ new Map()), P = m(null), F = {
612
+ ...E,
613
+ ...re
614
+ }, [I, B] = h({
615
+ columns: 1,
616
+ width: le,
617
+ gap: 0
618
+ }), V = L(o, le), je = Math.max(1, L(f, ue)), H = ae(() => new Intl.NumberFormat(_), [_]);
619
+ p(() => {
620
+ let e = we.current?.ownerDocument.defaultView?.matchMedia(r.replace("@media ", ""));
621
+ if (!e) return;
622
+ let t = () => xe(e.matches);
623
+ return t(), e.addEventListener("change", t), () => e.removeEventListener("change", t);
624
+ }, []), p(() => {
625
+ me === T && O(null);
626
+ }, [me, T]), ie(() => {
627
+ let e = M.current;
628
+ if (!e) return;
629
+ let t = () => {
630
+ let t = Number.parseFloat(getComputedStyle(e).columnGap) || 0, n = Math.max(1, Math.floor((e.clientWidth + t) / (V + t)));
631
+ B({
632
+ columns: n,
633
+ width: Math.max(0, (e.clientWidth - t * (n - 1)) / n),
634
+ gap: t
635
+ });
636
+ };
637
+ t();
638
+ let n = new ResizeObserver(t);
639
+ return n.observe(e), () => n.disconnect();
640
+ }, [
641
+ V,
642
+ s,
643
+ t.length === 0
644
+ ]);
645
+ let U = () => {
646
+ (P.current?.isConnected ? P.current : N.current.get(T ?? "") ?? we.current)?.focus({ preventScroll: !0 });
647
+ };
648
+ return /* @__PURE__ */ v(oe, {
649
+ reducedMotion: "user",
650
+ children: /* @__PURE__ */ v(i, {
651
+ className: x,
652
+ styles: ge,
653
+ sx: C,
654
+ children: (e) => /* @__PURE__ */ y("div", {
655
+ ...w,
656
+ ref: Ee,
657
+ "data-ui": "lightbox-gallery",
658
+ className: e,
659
+ role: "region",
660
+ tabIndex: w.tabIndex ?? -1,
661
+ "aria-label": w["aria-label"] ?? n,
662
+ "data-columns": I.columns,
663
+ children: [
664
+ t.length ? /* @__PURE__ */ v("ul", {
665
+ ...b?.grid,
666
+ ref: De,
667
+ css: [_e, b?.grid?.css],
668
+ style: {
669
+ ...b?.grid?.style,
670
+ "--lightbox-columns": I.columns,
671
+ "--lightbox-gap": g.space[s]
672
+ },
673
+ children: t.map((e, n) => {
674
+ let r = I.width * e.height / e.width, i = Math.max(1, Math.ceil((r + I.gap) / (1 + I.gap)));
675
+ return /* @__PURE__ */ v("li", {
676
+ style: {
677
+ gridRowEnd: `span ${i}`,
678
+ minInlineSize: 0
679
+ },
680
+ children: /* @__PURE__ */ v(R, {
681
+ ...b?.tile,
682
+ register: (t) => (t && N.current.set(e.id, t), () => {
683
+ N.current.delete(e.id);
684
+ }),
685
+ "data-ui": "lightbox-gallery-tile",
686
+ "data-image-id": e.id,
687
+ type: "button",
688
+ "aria-haspopup": "dialog",
689
+ "aria-expanded": j && e.id === T,
690
+ "aria-label": b?.tile?.["aria-label"] ?? `${e.title || e.alt}, ${F.position(H.format(n + 1), H.format(t.length))}, ${F.open}`,
691
+ css: [D, b?.tile?.css],
692
+ style: {
693
+ ...b?.tile?.style,
694
+ aspectRatio: `${e.width} / ${e.height}`,
695
+ blockSize: "100%"
696
+ },
697
+ onClick: (t) => {
698
+ b?.tile?.onClick?.(t), t.defaultPrevented || (P.current = t.currentTarget, O(e.id), de(e.id), Ce.setOpen(!0));
699
+ },
700
+ children: /* @__PURE__ */ v(Ae, {
701
+ image: e,
702
+ decorative: !0,
703
+ labels: F,
704
+ slot: b?.image
705
+ }, `${e.id}\u0000${e.src}\u0000${e.srcSet ?? ""}`)
706
+ })
707
+ }, e.id);
708
+ })
709
+ }) : /* @__PURE__ */ v("p", {
710
+ css: Te,
711
+ children: F.empty
712
+ }),
713
+ !!fe && t.length > 0 && !Se && /* @__PURE__ */ v("p", {
714
+ role: "status",
715
+ css: Oe,
716
+ children: F.unavailable
717
+ }),
718
+ /* @__PURE__ */ v(z, {
719
+ images: t,
720
+ selected: T,
721
+ label: n,
722
+ controller: {
723
+ ...Ce,
724
+ open: j
725
+ },
726
+ select: de,
727
+ restore: U,
728
+ launch: P,
729
+ labels: F,
730
+ locale: _,
731
+ maxZoom: je,
732
+ slots: b,
733
+ returnFlight: ye,
734
+ reduced: be
735
+ }),
736
+ k && !be && !j && /* @__PURE__ */ v(se.div, {
737
+ "aria-hidden": "true",
738
+ inert: !0,
739
+ css: ke,
740
+ style: {
741
+ left: k.from.left,
742
+ top: k.from.top,
743
+ width: k.from.width,
744
+ height: k.from.height
745
+ },
746
+ initial: {
747
+ x: 0,
748
+ y: 0,
749
+ scaleX: 1,
750
+ scaleY: 1,
751
+ opacity: 1
752
+ },
753
+ animate: {
754
+ x: k.to.left - k.from.left,
755
+ y: k.to.top - k.from.top,
756
+ scaleX: k.to.width / k.from.width,
757
+ scaleY: k.to.height / k.from.height,
758
+ opacity: 0
759
+ },
760
+ transition: he,
761
+ onAnimationComplete: () => ye(null),
762
+ children: /* @__PURE__ */ v("img", {
763
+ src: k.image.src,
764
+ srcSet: k.image.srcSet,
765
+ sizes: k.image.sizes,
766
+ alt: "",
767
+ css: ve
768
+ })
769
+ }, k.image.id)
770
+ ]
771
+ })
772
+ })
773
+ });
774
+ }
775
+ B.displayName = "LightboxGallery";
776
+ //#endregion
777
+ export { B as t };