@misael703/ui 1.8.0 → 1.9.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 (228) hide show
  1. package/dist/brand.js +1 -0
  2. package/dist/brand.mjs +1 -0
  3. package/dist/chunk-2LTV7VB5.js +1 -0
  4. package/dist/chunk-2UV37SEN.mjs +1 -0
  5. package/dist/{chunk-WWJK2R2B.js → chunk-3DSNEDYN.js} +7 -6
  6. package/dist/{chunk-WWJK2R2B.js.map → chunk-3DSNEDYN.js.map} +1 -1
  7. package/dist/chunk-3MOVUNRA.mjs +1 -0
  8. package/dist/chunk-3PXYCXDW.js +1 -0
  9. package/dist/chunk-3VVQIWWG.js +1 -0
  10. package/dist/chunk-3XXTCTFO.js +1 -0
  11. package/dist/chunk-427NHGTX.js +1 -0
  12. package/dist/chunk-4REALDR3.js +1 -0
  13. package/dist/chunk-4Z63PIAZ.mjs +1 -0
  14. package/dist/chunk-55TOQMS2.js +1 -0
  15. package/dist/{chunk-QEDJJAKV.js → chunk-56NJXIH7.js} +5 -4
  16. package/dist/{chunk-QEDJJAKV.js.map → chunk-56NJXIH7.js.map} +1 -1
  17. package/dist/{chunk-NY467B35.mjs → chunk-5AU7WSVI.mjs} +4 -3
  18. package/dist/{chunk-NY467B35.mjs.map → chunk-5AU7WSVI.mjs.map} +1 -1
  19. package/dist/{chunk-PTHUKX2I.mjs → chunk-5DQXX64P.mjs} +4 -3
  20. package/dist/{chunk-PTHUKX2I.mjs.map → chunk-5DQXX64P.mjs.map} +1 -1
  21. package/dist/chunk-5GEWIK4T.mjs +1 -0
  22. package/dist/chunk-6II4NJQM.js +1 -0
  23. package/dist/chunk-6JA4KQU2.js +1 -0
  24. package/dist/chunk-6P2TKRTL.mjs +1 -0
  25. package/dist/chunk-6TYPG7MA.js +1 -0
  26. package/dist/chunk-7AD35TKY.mjs +1 -0
  27. package/dist/{chunk-SW3ACUKK.js → chunk-7I5LFBQR.js} +9 -7
  28. package/dist/chunk-7I5LFBQR.js.map +1 -0
  29. package/dist/chunk-ADQM725E.js +1 -0
  30. package/dist/chunk-AJ22SXI2.js +1 -0
  31. package/dist/chunk-AWYCGJJX.js +1 -0
  32. package/dist/chunk-AYQ7FM6O.js +1 -0
  33. package/dist/chunk-AZBX7UFI.js +1 -0
  34. package/dist/chunk-B4AIJWH5.mjs +1 -0
  35. package/dist/{chunk-VTDXEY26.js → chunk-BESBMV7N.js} +3 -2
  36. package/dist/{chunk-VTDXEY26.js.map → chunk-BESBMV7N.js.map} +1 -1
  37. package/dist/{chunk-KOZUEK6V.mjs → chunk-BGIX6G5V.mjs} +4 -3
  38. package/dist/{chunk-KOZUEK6V.mjs.map → chunk-BGIX6G5V.mjs.map} +1 -1
  39. package/dist/chunk-BVQRDAR7.mjs +1 -0
  40. package/dist/chunk-CBHWPIHM.js +1 -0
  41. package/dist/chunk-CCZOHDVF.mjs +1 -0
  42. package/dist/chunk-CHVTPN3K.mjs +1 -0
  43. package/dist/chunk-CIBJKJV3.mjs +1 -0
  44. package/dist/chunk-CPMQ2DFS.js +1 -0
  45. package/dist/chunk-DHCJMYFD.mjs +1 -0
  46. package/dist/{chunk-HKERJFKW.js → chunk-DI3O3TS5.js} +5 -4
  47. package/dist/{chunk-HKERJFKW.js.map → chunk-DI3O3TS5.js.map} +1 -1
  48. package/dist/{chunk-6EGXSTPR.mjs → chunk-EJ263Y5X.mjs} +4 -3
  49. package/dist/{chunk-6EGXSTPR.mjs.map → chunk-EJ263Y5X.mjs.map} +1 -1
  50. package/dist/chunk-EUB4PHPI.js +1 -0
  51. package/dist/{chunk-Q6C2KXLO.mjs → chunk-FA6526ME.mjs} +4 -3
  52. package/dist/{chunk-Q6C2KXLO.mjs.map → chunk-FA6526ME.mjs.map} +1 -1
  53. package/dist/chunk-FEDQKTCX.js +1 -0
  54. package/dist/chunk-FKBQYQQD.mjs +1 -0
  55. package/dist/chunk-FL4ZCWUF.js +1 -0
  56. package/dist/chunk-GBHP5WAB.mjs +1 -0
  57. package/dist/{chunk-AJ32TAHG.js → chunk-GKSUYHGO.js} +5 -4
  58. package/dist/{chunk-AJ32TAHG.js.map → chunk-GKSUYHGO.js.map} +1 -1
  59. package/dist/chunk-GVYZAOWU.mjs +1 -0
  60. package/dist/chunk-HHEYTMBY.js +1 -0
  61. package/dist/chunk-HYUINOPJ.js +1 -0
  62. package/dist/chunk-IEPCH3JB.mjs +1 -0
  63. package/dist/chunk-IEPKSPBX.mjs +1 -0
  64. package/dist/chunk-IUL73666.mjs +1 -0
  65. package/dist/chunk-IVL7P3MF.mjs +1 -0
  66. package/dist/{chunk-6FXXZZQV.js → chunk-IZ3FMCZ5.js} +5 -4
  67. package/dist/{chunk-6FXXZZQV.js.map → chunk-IZ3FMCZ5.js.map} +1 -1
  68. package/dist/chunk-JL73XCFX.js +1 -0
  69. package/dist/chunk-JMFDIN5R.mjs +1 -0
  70. package/dist/chunk-JPPRP5R7.js +1 -0
  71. package/dist/chunk-KJ7UNUTB.js +1 -0
  72. package/dist/{chunk-LZ4RGZJM.js → chunk-KKEBA6AG.js} +5 -4
  73. package/dist/{chunk-LZ4RGZJM.js.map → chunk-KKEBA6AG.js.map} +1 -1
  74. package/dist/chunk-L353APIO.js +1 -0
  75. package/dist/chunk-ML5IYW5D.mjs +1 -0
  76. package/dist/chunk-N5D6AC6M.mjs +1 -0
  77. package/dist/chunk-NAL457NQ.mjs +1 -0
  78. package/dist/chunk-NU4GAGUV.js +1 -0
  79. package/dist/chunk-O6FCBNWN.mjs +1 -0
  80. package/dist/{chunk-CFAX3HUT.mjs → chunk-OJNEGJ3P.mjs} +4 -3
  81. package/dist/{chunk-CFAX3HUT.mjs.map → chunk-OJNEGJ3P.mjs.map} +1 -1
  82. package/dist/chunk-ORUQ5GCU.mjs +1 -0
  83. package/dist/chunk-PASF6T4H.js +1 -0
  84. package/dist/{chunk-I3Z3MH72.mjs → chunk-PDLQUQK7.mjs} +3 -2
  85. package/dist/{chunk-I3Z3MH72.mjs.map → chunk-PDLQUQK7.mjs.map} +1 -1
  86. package/dist/{chunk-GD7MI7OT.mjs → chunk-PRML6VEF.mjs} +9 -7
  87. package/dist/chunk-PRML6VEF.mjs.map +1 -0
  88. package/dist/chunk-PWAIOLZH.mjs +1 -0
  89. package/dist/chunk-Q4BKGBTV.mjs +1 -0
  90. package/dist/{chunk-4TUK7DGZ.js → chunk-QD7HBVS6.js} +6 -5
  91. package/dist/{chunk-4TUK7DGZ.js.map → chunk-QD7HBVS6.js.map} +1 -1
  92. package/dist/chunk-QHRP73CS.js +1 -0
  93. package/dist/{chunk-TDVFNHQZ.mjs → chunk-QM7BCSCL.mjs} +4 -3
  94. package/dist/{chunk-TDVFNHQZ.mjs.map → chunk-QM7BCSCL.mjs.map} +1 -1
  95. package/dist/chunk-QQ5PBPAB.mjs +1 -0
  96. package/dist/chunk-RBJRQ44B.mjs +1 -0
  97. package/dist/chunk-RJMMD7CG.mjs +1 -0
  98. package/dist/chunk-RQOTH7I7.js +1 -0
  99. package/dist/chunk-S6BMFQ6C.mjs +1 -0
  100. package/dist/{chunk-CXEQ56RU.mjs → chunk-S7M7GTUZ.mjs} +4 -3
  101. package/dist/{chunk-CXEQ56RU.mjs.map → chunk-S7M7GTUZ.mjs.map} +1 -1
  102. package/dist/{chunk-J3J6LCHJ.js → chunk-TIO7MIUN.js} +5 -4
  103. package/dist/{chunk-J3J6LCHJ.js.map → chunk-TIO7MIUN.js.map} +1 -1
  104. package/dist/{chunk-UK54DHNM.js → chunk-U3I4IMJI.js} +5 -4
  105. package/dist/{chunk-UK54DHNM.js.map → chunk-U3I4IMJI.js.map} +1 -1
  106. package/dist/chunk-U3JH4T3A.mjs +1 -0
  107. package/dist/{chunk-3EFZU6GX.mjs → chunk-UZTVQZIZ.mjs} +4 -3
  108. package/dist/{chunk-3EFZU6GX.mjs.map → chunk-UZTVQZIZ.mjs.map} +1 -1
  109. package/dist/{chunk-B67HZ45M.js → chunk-VCBVLG3Q.js} +5 -4
  110. package/dist/{chunk-B67HZ45M.js.map → chunk-VCBVLG3Q.js.map} +1 -1
  111. package/dist/{chunk-I5V54YCS.js → chunk-VDBGWTIG.js} +5 -4
  112. package/dist/{chunk-I5V54YCS.js.map → chunk-VDBGWTIG.js.map} +1 -1
  113. package/dist/{chunk-Y2B4XXTO.mjs → chunk-VFZ2X655.mjs} +4 -3
  114. package/dist/{chunk-Y2B4XXTO.mjs.map → chunk-VFZ2X655.mjs.map} +1 -1
  115. package/dist/chunk-VMC5ZD4O.js +1 -0
  116. package/dist/chunk-VUJMOT6K.js +1 -0
  117. package/dist/chunk-VXKEX7T2.js +1 -0
  118. package/dist/chunk-WAGWB35Q.js +1 -0
  119. package/dist/chunk-WQFNJVKU.mjs +1 -0
  120. package/dist/chunk-X2DBGT7M.mjs +1 -0
  121. package/dist/chunk-X7O37QLL.js +1 -0
  122. package/dist/chunk-XMLBKK7X.js +1 -0
  123. package/dist/chunk-XTHC46M2.mjs +1 -0
  124. package/dist/chunk-XYKOXQUS.mjs +1 -0
  125. package/dist/{chunk-WPSZ7N2K.mjs → chunk-YSU3WFND.mjs} +4 -3
  126. package/dist/{chunk-WPSZ7N2K.mjs.map → chunk-YSU3WFND.mjs.map} +1 -1
  127. package/dist/components/AdvancedPickers.js +7 -6
  128. package/dist/components/AdvancedPickers.mjs +3 -2
  129. package/dist/components/AppShell.js +1 -0
  130. package/dist/components/AppShell.mjs +1 -0
  131. package/dist/components/Button.js +1 -0
  132. package/dist/components/Button.mjs +1 -0
  133. package/dist/components/Carousel.js +1 -0
  134. package/dist/components/Carousel.mjs +1 -0
  135. package/dist/components/Charts.js +1 -0
  136. package/dist/components/Charts.mjs +1 -0
  137. package/dist/components/Code.js +1 -0
  138. package/dist/components/Code.mjs +1 -0
  139. package/dist/components/Collapsible.js +1 -0
  140. package/dist/components/Collapsible.mjs +1 -0
  141. package/dist/components/Comments.js +7 -6
  142. package/dist/components/Comments.mjs +4 -3
  143. package/dist/components/Commerce.js +1 -0
  144. package/dist/components/Commerce.mjs +1 -0
  145. package/dist/components/ContextMenu.js +4 -3
  146. package/dist/components/ContextMenu.mjs +3 -2
  147. package/dist/components/DataTable.d.mts +5 -3
  148. package/dist/components/DataTable.d.ts +5 -3
  149. package/dist/components/DataTable.js +8 -7
  150. package/dist/components/DataTable.mjs +2 -1
  151. package/dist/components/Display.js +1 -0
  152. package/dist/components/Display.mjs +1 -0
  153. package/dist/components/Display2.js +7 -6
  154. package/dist/components/Display2.mjs +3 -2
  155. package/dist/components/Display3.js +10 -9
  156. package/dist/components/Display3.mjs +4 -3
  157. package/dist/components/Editing.js +1 -0
  158. package/dist/components/Editing.mjs +1 -0
  159. package/dist/components/Filters.js +1 -0
  160. package/dist/components/Filters.mjs +1 -0
  161. package/dist/components/Form.js +1 -0
  162. package/dist/components/Form.mjs +1 -0
  163. package/dist/components/Gallery.js +1 -0
  164. package/dist/components/Gallery.mjs +1 -0
  165. package/dist/components/HoverCard.js +4 -3
  166. package/dist/components/HoverCard.mjs +3 -2
  167. package/dist/components/Icons.js +1 -0
  168. package/dist/components/Icons.mjs +1 -0
  169. package/dist/components/InputOTP.js +1 -0
  170. package/dist/components/InputOTP.mjs +1 -0
  171. package/dist/components/Inputs.js +1 -0
  172. package/dist/components/Inputs.mjs +1 -0
  173. package/dist/components/InputsExtra.js +1 -0
  174. package/dist/components/InputsExtra.mjs +1 -0
  175. package/dist/components/Layout.js +20 -19
  176. package/dist/components/Layout.mjs +3 -2
  177. package/dist/components/Logo.js +1 -0
  178. package/dist/components/Logo.mjs +1 -0
  179. package/dist/components/Marketing.js +1 -0
  180. package/dist/components/Marketing.mjs +1 -0
  181. package/dist/components/Menubar.js +4 -3
  182. package/dist/components/Menubar.mjs +3 -2
  183. package/dist/components/NavigationMenu.js +4 -3
  184. package/dist/components/NavigationMenu.mjs +3 -2
  185. package/dist/components/Notifications.js +1 -0
  186. package/dist/components/Notifications.mjs +1 -0
  187. package/dist/components/Overlay.js +1 -0
  188. package/dist/components/Overlay.mjs +1 -0
  189. package/dist/components/Permissions.js +1 -0
  190. package/dist/components/Permissions.mjs +1 -0
  191. package/dist/components/Pickers.js +8 -7
  192. package/dist/components/Pickers.mjs +3 -2
  193. package/dist/components/Popover.js +4 -3
  194. package/dist/components/Popover.mjs +3 -2
  195. package/dist/components/Portal.js +1 -0
  196. package/dist/components/Portal.mjs +1 -0
  197. package/dist/components/Primitives.js +1 -0
  198. package/dist/components/Primitives.mjs +1 -0
  199. package/dist/components/Resizable.js +1 -0
  200. package/dist/components/Resizable.mjs +1 -0
  201. package/dist/components/Toast.js +1 -0
  202. package/dist/components/Toast.mjs +1 -0
  203. package/dist/components/Toggle.js +1 -0
  204. package/dist/components/Toggle.mjs +1 -0
  205. package/dist/hooks/index.js +3 -2
  206. package/dist/hooks/index.mjs +2 -1
  207. package/dist/hooks/useDelayedUnmount.js +1 -0
  208. package/dist/hooks/useDelayedUnmount.mjs +1 -0
  209. package/dist/hooks/useDismiss.js +1 -0
  210. package/dist/hooks/useDismiss.mjs +1 -0
  211. package/dist/hooks/usePopoverPosition.js +3 -2
  212. package/dist/hooks/usePopoverPosition.mjs +2 -1
  213. package/dist/index.js +66 -65
  214. package/dist/index.mjs +15 -14
  215. package/dist/locale/index.js +1 -0
  216. package/dist/locale/index.mjs +1 -0
  217. package/dist/presets/elalba/defaults.js +1 -0
  218. package/dist/presets/elalba/defaults.mjs +1 -0
  219. package/dist/styles.css +1 -1
  220. package/dist/utils/cx.js +1 -0
  221. package/dist/utils/cx.mjs +1 -0
  222. package/dist/utils/dateFormat.js +1 -0
  223. package/dist/utils/dateFormat.mjs +1 -0
  224. package/dist/utils/types.js +1 -0
  225. package/dist/utils/types.mjs +1 -0
  226. package/package.json +20 -8
  227. package/dist/chunk-GD7MI7OT.mjs.map +0 -1
  228. package/dist/chunk-SW3ACUKK.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Popover.tsx"],"names":["React","usePopoverPosition","useDismiss","cx","jsx","Portal"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,SAAS,OAAA,CAAQ;AAAA,EACtB,IAAA,EAAM,cAAA;AAAA,EACN,WAAA,GAAc,KAAA;AAAA,EACd,YAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,QAAA;AAAA,EACZ,KAAA,GAAQ,QAAA;AAAA,EACR,MAAA,GAAS,CAAA;AAAA,EACT,mBAAA,GAAsB,IAAA;AAAA,EACtB,aAAA,GAAgB,IAAA;AAAA,EAChB,SAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA,EAAiB;AACf,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAUA,0BAAS,WAAW,CAAA;AAClE,EAAA,MAAM,eAAe,cAAA,KAAmB,MAAA;AACxC,EAAA,MAAM,IAAA,GAAO,eAAe,cAAA,GAAiB,YAAA;AAE7C,EAAA,MAAM,UAAA,GAAmBA,wBAAwB,IAAI,CAAA;AACrD,EAAA,MAAM,UAAA,GAAmBA,wBAAuB,IAAI,CAAA;AAEpD,EAAA,MAAM,OAAA,GAAU,CAAC,IAAA,KAAkB;AACjC,IAAA,IAAI,CAAC,YAAA,EAAc,eAAA,CAAgB,IAAI,CAAA;AACvC,IAAA,YAAA,GAAe,IAAI,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,MAAM,GAAA,GAAMC,mCAAA,CAAmB,UAAA,EAAY,UAAA,EAAY;AAAA,IACrD,IAAA;AAAA,IACA,IAAA,EAAM,SAAA;AAAA,IACN,KAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAAC,2BAAA,CAAW;AAAA,IACT,IAAA;AAAA,IACA,SAAA,EAAW,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,IAC9B,IAAA,EAAM,CAAC,UAAA,EAAY,UAAU,CAAA;AAAA,IAC7B,aAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,uCACG,MAAA,EAAA,EAAK,SAAA,EAAWC,mBAAA,CAAG,SAAA,EAAW,SAAS,CAAA,EACtC,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,UAAA;AAAA,QACL,SAAA,EAAU,kBAAA;AAAA,QACV,OAAA,EAAS,MAAM,OAAA,CAAQ,CAAC,IAAI,CAAA;AAAA,QAC5B,eAAA,EAAc,QAAA;AAAA,QACd,eAAA,EAAe,IAAA;AAAA,QAEd,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,IAIC,IAAA,mCACEC,uBAAA,EAAA,EACC,QAAA,kBAAAD,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,UAAA;AAAA,QACL,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAY,SAAA;AAAA,QACZ,SAAA,EAAWD,mBAAA,CAAG,kBAAA,EAAoB,gBAAgB,CAAA;AAAA,QAClD,KAAA,EAAO;AAAA,UACL,QAAA,EAAU,OAAA;AAAA,UACV,KAAK,GAAA,CAAI,GAAA;AAAA,UACT,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,UAAA,EAAY,GAAA,CAAI,KAAA,GAAQ,SAAA,GAAY;AAAA,SACtC;AAAA,QAEC;AAAA;AAAA,KACH,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ","file":"chunk-I5V54YCS.js","sourcesContent":["'use client';\nimport * as React from 'react';\nimport { cx } from '../utils/cx';\nimport { Portal } from './Portal';\nimport { usePopoverPosition } from '../hooks/usePopoverPosition';\nimport { useDismiss } from '../hooks/useDismiss';\n\nexport type PopoverPlacement = 'top' | 'bottom' | 'left' | 'right';\nexport type PopoverAlign = 'start' | 'center' | 'end';\n\nexport interface PopoverProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n trigger: React.ReactNode;\n children: React.ReactNode;\n placement?: PopoverPlacement;\n align?: PopoverAlign;\n offset?: number;\n closeOnOutsideClick?: boolean;\n closeOnEscape?: boolean;\n className?: string;\n contentClassName?: string;\n ariaLabel?: string;\n}\n\nexport function Popover({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n trigger,\n children,\n placement = 'bottom',\n align = 'center',\n offset = 8,\n closeOnOutsideClick = true,\n closeOnEscape = true,\n className,\n contentClassName,\n ariaLabel,\n}: PopoverProps) {\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n\n const triggerRef = React.useRef<HTMLSpanElement>(null);\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const setOpen = (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n };\n\n const pos = usePopoverPosition(triggerRef, contentRef, {\n open,\n side: placement,\n align,\n offset,\n });\n\n useDismiss({\n open,\n onDismiss: () => setOpen(false),\n refs: [triggerRef, contentRef],\n closeOnEscape,\n closeOnOutsideClick,\n });\n\n return (\n <span className={cx('popover', className)}>\n <span\n ref={triggerRef}\n className=\"popover__trigger\"\n onClick={() => setOpen(!open)}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n >\n {trigger}\n </span>\n {/* Portaled to document.body so absolute coords (document-relative)\n match the positioning origin and overflow:hidden / transformed\n ancestors don't clip the panel. */}\n {open && (\n <Portal>\n <div\n ref={contentRef}\n role=\"dialog\"\n aria-label={ariaLabel}\n className={cx('popover__content', contentClassName)}\n style={{\n position: 'fixed',\n top: pos.top,\n left: pos.left,\n visibility: pos.ready ? 'visible' : 'hidden',\n }}\n >\n {children}\n </div>\n </Portal>\n )}\n </span>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/Popover.tsx"],"names":["React","usePopoverPosition","useDismiss","cx","jsx","Portal"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,SAAS,OAAA,CAAQ;AAAA,EACtB,IAAA,EAAM,cAAA;AAAA,EACN,WAAA,GAAc,KAAA;AAAA,EACd,YAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,QAAA;AAAA,EACZ,KAAA,GAAQ,QAAA;AAAA,EACR,MAAA,GAAS,CAAA;AAAA,EACT,mBAAA,GAAsB,IAAA;AAAA,EACtB,aAAA,GAAgB,IAAA;AAAA,EAChB,SAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA,EAAiB;AACf,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAUA,0BAAS,WAAW,CAAA;AAClE,EAAA,MAAM,eAAe,cAAA,KAAmB,MAAA;AACxC,EAAA,MAAM,IAAA,GAAO,eAAe,cAAA,GAAiB,YAAA;AAE7C,EAAA,MAAM,UAAA,GAAmBA,wBAAwB,IAAI,CAAA;AACrD,EAAA,MAAM,UAAA,GAAmBA,wBAAuB,IAAI,CAAA;AAEpD,EAAA,MAAM,OAAA,GAAU,CAAC,IAAA,KAAkB;AACjC,IAAA,IAAI,CAAC,YAAA,EAAc,eAAA,CAAgB,IAAI,CAAA;AACvC,IAAA,YAAA,GAAe,IAAI,CAAA;AAAA,EACrB,CAAA;AAEA,EAAA,MAAM,GAAA,GAAMC,mCAAA,CAAmB,UAAA,EAAY,UAAA,EAAY;AAAA,IACrD,IAAA;AAAA,IACA,IAAA,EAAM,SAAA;AAAA,IACN,KAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAAC,2BAAA,CAAW;AAAA,IACT,IAAA;AAAA,IACA,SAAA,EAAW,MAAM,OAAA,CAAQ,KAAK,CAAA;AAAA,IAC9B,IAAA,EAAM,CAAC,UAAA,EAAY,UAAU,CAAA;AAAA,IAC7B,aAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,uCACG,MAAA,EAAA,EAAK,SAAA,EAAWC,mBAAA,CAAG,SAAA,EAAW,SAAS,CAAA,EACtC,QAAA,EAAA;AAAA,oBAAAC,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,UAAA;AAAA,QACL,SAAA,EAAU,kBAAA;AAAA,QACV,OAAA,EAAS,MAAM,OAAA,CAAQ,CAAC,IAAI,CAAA;AAAA,QAC5B,eAAA,EAAc,QAAA;AAAA,QACd,eAAA,EAAe,IAAA;AAAA,QAEd,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,IAIC,IAAA,mCACEC,uBAAA,EAAA,EACC,QAAA,kBAAAD,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,UAAA;AAAA,QACL,IAAA,EAAK,QAAA;AAAA,QACL,YAAA,EAAY,SAAA;AAAA,QACZ,SAAA,EAAWD,mBAAA,CAAG,kBAAA,EAAoB,gBAAgB,CAAA;AAAA,QAClD,KAAA,EAAO;AAAA,UACL,QAAA,EAAU,OAAA;AAAA,UACV,KAAK,GAAA,CAAI,GAAA;AAAA,UACT,MAAM,GAAA,CAAI,IAAA;AAAA,UACV,UAAA,EAAY,GAAA,CAAI,KAAA,GAAQ,SAAA,GAAY;AAAA,SACtC;AAAA,QAEC;AAAA;AAAA,KACH,EACF;AAAA,GAAA,EAEJ,CAAA;AAEJ","file":"chunk-VDBGWTIG.js","sourcesContent":["'use client';\nimport * as React from 'react';\nimport { cx } from '../utils/cx';\nimport { Portal } from './Portal';\nimport { usePopoverPosition } from '../hooks/usePopoverPosition';\nimport { useDismiss } from '../hooks/useDismiss';\n\nexport type PopoverPlacement = 'top' | 'bottom' | 'left' | 'right';\nexport type PopoverAlign = 'start' | 'center' | 'end';\n\nexport interface PopoverProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n trigger: React.ReactNode;\n children: React.ReactNode;\n placement?: PopoverPlacement;\n align?: PopoverAlign;\n offset?: number;\n closeOnOutsideClick?: boolean;\n closeOnEscape?: boolean;\n className?: string;\n contentClassName?: string;\n ariaLabel?: string;\n}\n\nexport function Popover({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n trigger,\n children,\n placement = 'bottom',\n align = 'center',\n offset = 8,\n closeOnOutsideClick = true,\n closeOnEscape = true,\n className,\n contentClassName,\n ariaLabel,\n}: PopoverProps) {\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n\n const triggerRef = React.useRef<HTMLSpanElement>(null);\n const contentRef = React.useRef<HTMLDivElement>(null);\n\n const setOpen = (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n };\n\n const pos = usePopoverPosition(triggerRef, contentRef, {\n open,\n side: placement,\n align,\n offset,\n });\n\n useDismiss({\n open,\n onDismiss: () => setOpen(false),\n refs: [triggerRef, contentRef],\n closeOnEscape,\n closeOnOutsideClick,\n });\n\n return (\n <span className={cx('popover', className)}>\n <span\n ref={triggerRef}\n className=\"popover__trigger\"\n onClick={() => setOpen(!open)}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n >\n {trigger}\n </span>\n {/* Portaled to document.body so absolute coords (document-relative)\n match the positioning origin and overflow:hidden / transformed\n ancestors don't clip the panel. */}\n {open && (\n <Portal>\n <div\n ref={contentRef}\n role=\"dialog\"\n aria-label={ariaLabel}\n className={cx('popover__content', contentClassName)}\n style={{\n position: 'fixed',\n top: pos.top,\n left: pos.left,\n visibility: pos.ready ? 'visible' : 'hidden',\n }}\n >\n {children}\n </div>\n </Portal>\n )}\n </span>\n );\n}\n"]}
@@ -1,5 +1,6 @@
1
+ 'use client';
1
2
  import { useDismiss } from './chunk-6P2TKRTL.mjs';
2
- import { usePopoverPosition } from './chunk-GD7MI7OT.mjs';
3
+ import { usePopoverPosition } from './chunk-PRML6VEF.mjs';
3
4
  import { Portal } from './chunk-FKBQYQQD.mjs';
4
5
  import { ChevronDown } from './chunk-CIBJKJV3.mjs';
5
6
  import { cx } from './chunk-IEPCH3JB.mjs';
@@ -172,5 +173,5 @@ function NavigationMenu({ items, className, ariaLabel = "Navegaci\xF3n principal
172
173
  }
173
174
 
174
175
  export { NavigationMenu };
175
- //# sourceMappingURL=chunk-Y2B4XXTO.mjs.map
176
- //# sourceMappingURL=chunk-Y2B4XXTO.mjs.map
176
+ //# sourceMappingURL=chunk-VFZ2X655.mjs.map
177
+ //# sourceMappingURL=chunk-VFZ2X655.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/NavigationMenu.tsx"],"names":[],"mappings":"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","file":"chunk-Y2B4XXTO.mjs","sourcesContent":["'use client';\nimport * as React from 'react';\nimport { cx } from '../utils/cx';\nimport { ChevronDown } from './Icons';\nimport { Portal } from './Portal';\nimport { usePopoverPosition } from '../hooks/usePopoverPosition';\nimport { useDismiss } from '../hooks/useDismiss';\n\nexport interface NavLink {\n id: string;\n label: React.ReactNode;\n href?: string;\n description?: React.ReactNode;\n icon?: React.ReactNode;\n onClick?: () => void;\n}\n\nexport interface NavMenuItem {\n id: string;\n label: React.ReactNode;\n href?: string;\n links?: NavLink[];\n featured?: NavLink;\n}\n\nexport interface NavigationMenuProps {\n items: NavMenuItem[];\n className?: string;\n ariaLabel?: string;\n linkAs?: (link: NavLink, content: React.ReactNode, className: string) => React.ReactNode;\n rootLinkAs?: (item: NavMenuItem, content: React.ReactNode, className: string) => React.ReactNode;\n}\n\nexport function NavigationMenu({ items, className, ariaLabel = 'Navegación principal', linkAs, rootLinkAs }: NavigationMenuProps) {\n const [openId, setOpenId] = React.useState<string | null>(null);\n // When the panel was opened by keyboard we move focus into it; pointer\n // (click/hover) opens leave focus with the user's cursor.\n const focusOnOpen = React.useRef(false);\n const rootRef = React.useRef<HTMLElement>(null);\n const panelRef = React.useRef<HTMLDivElement>(null);\n // The currently-open trigger; usePopoverPosition anchors to this and\n // focus returns here on close. One panel is open at a time, so a single\n // anchor ref is correct (see todo.md risk note).\n const anchorRef = React.useRef<HTMLElement | null>(null);\n const triggerRefs = React.useRef<Record<string, HTMLButtonElement | null>>({});\n\n const open = openId !== null;\n\n const pos = usePopoverPosition(anchorRef, panelRef, {\n open,\n side: 'bottom',\n align: 'start',\n offset: 8,\n });\n\n // Outside-click closes; Escape is handled on the panel so it can also\n // return focus to the trigger (WAI-ARIA disclosure/menu pattern).\n useDismiss({\n open,\n onDismiss: () => setOpenId(null),\n refs: [rootRef, panelRef],\n closeOnEscape: false,\n });\n\n const closeAndFocusTrigger = () => {\n const id = openId;\n setOpenId(null);\n if (id) triggerRefs.current[id]?.focus();\n };\n\n // `.nav-menu__link` is applied to every link node (default <a> and the\n // `linkAs` render-prop alike), so querying by class manages focus\n // uniformly regardless of how the consumer renders links.\n const panelLinks = (): HTMLElement[] =>\n Array.from(panelRef.current?.querySelectorAll<HTMLElement>('.nav-menu__link') ?? []);\n\n const focusLinkAt = (index: number) => {\n const links = panelLinks();\n if (links.length === 0) return;\n const wrapped = ((index % links.length) + links.length) % links.length;\n links[wrapped]?.focus();\n };\n\n React.useEffect(() => {\n if (open && focusOnOpen.current) {\n focusOnOpen.current = false;\n focusLinkAt(0);\n }\n }, [open]);\n\n const onPanelKeyDown = (e: React.KeyboardEvent) => {\n const links = panelLinks();\n const current = links.indexOf(document.activeElement as HTMLElement);\n if (e.key === 'Escape') {\n e.preventDefault();\n closeAndFocusTrigger();\n } else if (e.key === 'Tab') {\n setOpenId(null);\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n focusLinkAt(current + 1);\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n focusLinkAt(current - 1);\n } else if (e.key === 'Home') {\n e.preventDefault();\n focusLinkAt(0);\n } else if (e.key === 'End') {\n e.preventDefault();\n focusLinkAt(links.length - 1);\n }\n };\n\n return (\n <nav ref={rootRef} aria-label={ariaLabel} className={cx('nav-menu', className)}>\n <ul className=\"nav-menu__list\">\n {items.map((item) => {\n const hasChildren = !!item.links?.length;\n const isOpen = openId === item.id;\n const triggerCls = cx('nav-menu__trigger', isOpen && 'is-open');\n const content = (\n <>\n <span>{item.label}</span>\n {hasChildren && <ChevronDown size={14} className=\"nav-menu__chevron\" />}\n </>\n );\n\n return (\n <li key={item.id} className=\"nav-menu__item\">\n {hasChildren ? (\n <button\n type=\"button\"\n ref={(el) => { triggerRefs.current[item.id] = el; }}\n className={triggerCls}\n aria-expanded={isOpen}\n aria-haspopup=\"menu\"\n onClick={(e) => {\n if (isOpen) { setOpenId(null); return; }\n anchorRef.current = e.currentTarget;\n focusOnOpen.current = false;\n setOpenId(item.id);\n }}\n onMouseEnter={(e) => {\n if (!openId) return;\n anchorRef.current = e.currentTarget;\n focusOnOpen.current = false;\n setOpenId(item.id);\n }}\n onKeyDown={(e) => {\n if (e.key === 'ArrowDown' || e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if (isOpen) { focusLinkAt(0); return; }\n anchorRef.current = e.currentTarget;\n focusOnOpen.current = true;\n setOpenId(item.id);\n } else if (e.key === 'Escape' && isOpen) {\n e.preventDefault();\n setOpenId(null);\n }\n }}\n >\n {content}\n </button>\n ) : rootLinkAs && item.href ? (\n rootLinkAs(item, content, triggerCls)\n ) : (\n <a className={triggerCls} href={item.href}>\n {content}\n </a>\n )}\n {hasChildren && isOpen && (\n <Portal>\n <div\n ref={panelRef}\n className=\"nav-menu__panel\"\n role=\"menu\"\n aria-label={typeof item.label === 'string' ? item.label : undefined}\n onKeyDown={onPanelKeyDown}\n style={{\n position: 'fixed',\n top: pos.top,\n left: pos.left,\n visibility: pos.ready ? 'visible' : 'hidden',\n }}\n >\n {item.featured && (\n <div className=\"nav-menu__featured\">\n <strong>{item.featured.label}</strong>\n {item.featured.description && <p>{item.featured.description}</p>}\n </div>\n )}\n <ul className=\"nav-menu__sublist\">\n {item.links!.map((link) => {\n const linkCls = 'nav-menu__link';\n const linkContent = (\n <>\n {link.icon && <span className=\"nav-menu__link-icon\">{link.icon}</span>}\n <span className=\"nav-menu__link-body\">\n <span className=\"nav-menu__link-label\">{link.label}</span>\n {link.description && <span className=\"nav-menu__link-desc\">{link.description}</span>}\n </span>\n </>\n );\n return (\n <li key={link.id} role=\"none\">\n {linkAs ? (\n linkAs(link, linkContent, linkCls)\n ) : (\n <a\n role=\"menuitem\"\n tabIndex={-1}\n className={linkCls}\n href={link.href}\n onClick={(e) => {\n if (link.onClick) {\n e.preventDefault();\n link.onClick();\n }\n closeAndFocusTrigger();\n }}\n >\n {linkContent}\n </a>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n </Portal>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/NavigationMenu.tsx"],"names":[],"mappings":"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","file":"chunk-VFZ2X655.mjs","sourcesContent":["'use client';\nimport * as React from 'react';\nimport { cx } from '../utils/cx';\nimport { ChevronDown } from './Icons';\nimport { Portal } from './Portal';\nimport { usePopoverPosition } from '../hooks/usePopoverPosition';\nimport { useDismiss } from '../hooks/useDismiss';\n\nexport interface NavLink {\n id: string;\n label: React.ReactNode;\n href?: string;\n description?: React.ReactNode;\n icon?: React.ReactNode;\n onClick?: () => void;\n}\n\nexport interface NavMenuItem {\n id: string;\n label: React.ReactNode;\n href?: string;\n links?: NavLink[];\n featured?: NavLink;\n}\n\nexport interface NavigationMenuProps {\n items: NavMenuItem[];\n className?: string;\n ariaLabel?: string;\n linkAs?: (link: NavLink, content: React.ReactNode, className: string) => React.ReactNode;\n rootLinkAs?: (item: NavMenuItem, content: React.ReactNode, className: string) => React.ReactNode;\n}\n\nexport function NavigationMenu({ items, className, ariaLabel = 'Navegación principal', linkAs, rootLinkAs }: NavigationMenuProps) {\n const [openId, setOpenId] = React.useState<string | null>(null);\n // When the panel was opened by keyboard we move focus into it; pointer\n // (click/hover) opens leave focus with the user's cursor.\n const focusOnOpen = React.useRef(false);\n const rootRef = React.useRef<HTMLElement>(null);\n const panelRef = React.useRef<HTMLDivElement>(null);\n // The currently-open trigger; usePopoverPosition anchors to this and\n // focus returns here on close. One panel is open at a time, so a single\n // anchor ref is correct (see todo.md risk note).\n const anchorRef = React.useRef<HTMLElement | null>(null);\n const triggerRefs = React.useRef<Record<string, HTMLButtonElement | null>>({});\n\n const open = openId !== null;\n\n const pos = usePopoverPosition(anchorRef, panelRef, {\n open,\n side: 'bottom',\n align: 'start',\n offset: 8,\n });\n\n // Outside-click closes; Escape is handled on the panel so it can also\n // return focus to the trigger (WAI-ARIA disclosure/menu pattern).\n useDismiss({\n open,\n onDismiss: () => setOpenId(null),\n refs: [rootRef, panelRef],\n closeOnEscape: false,\n });\n\n const closeAndFocusTrigger = () => {\n const id = openId;\n setOpenId(null);\n if (id) triggerRefs.current[id]?.focus();\n };\n\n // `.nav-menu__link` is applied to every link node (default <a> and the\n // `linkAs` render-prop alike), so querying by class manages focus\n // uniformly regardless of how the consumer renders links.\n const panelLinks = (): HTMLElement[] =>\n Array.from(panelRef.current?.querySelectorAll<HTMLElement>('.nav-menu__link') ?? []);\n\n const focusLinkAt = (index: number) => {\n const links = panelLinks();\n if (links.length === 0) return;\n const wrapped = ((index % links.length) + links.length) % links.length;\n links[wrapped]?.focus();\n };\n\n React.useEffect(() => {\n if (open && focusOnOpen.current) {\n focusOnOpen.current = false;\n focusLinkAt(0);\n }\n }, [open]);\n\n const onPanelKeyDown = (e: React.KeyboardEvent) => {\n const links = panelLinks();\n const current = links.indexOf(document.activeElement as HTMLElement);\n if (e.key === 'Escape') {\n e.preventDefault();\n closeAndFocusTrigger();\n } else if (e.key === 'Tab') {\n setOpenId(null);\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n focusLinkAt(current + 1);\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n focusLinkAt(current - 1);\n } else if (e.key === 'Home') {\n e.preventDefault();\n focusLinkAt(0);\n } else if (e.key === 'End') {\n e.preventDefault();\n focusLinkAt(links.length - 1);\n }\n };\n\n return (\n <nav ref={rootRef} aria-label={ariaLabel} className={cx('nav-menu', className)}>\n <ul className=\"nav-menu__list\">\n {items.map((item) => {\n const hasChildren = !!item.links?.length;\n const isOpen = openId === item.id;\n const triggerCls = cx('nav-menu__trigger', isOpen && 'is-open');\n const content = (\n <>\n <span>{item.label}</span>\n {hasChildren && <ChevronDown size={14} className=\"nav-menu__chevron\" />}\n </>\n );\n\n return (\n <li key={item.id} className=\"nav-menu__item\">\n {hasChildren ? (\n <button\n type=\"button\"\n ref={(el) => { triggerRefs.current[item.id] = el; }}\n className={triggerCls}\n aria-expanded={isOpen}\n aria-haspopup=\"menu\"\n onClick={(e) => {\n if (isOpen) { setOpenId(null); return; }\n anchorRef.current = e.currentTarget;\n focusOnOpen.current = false;\n setOpenId(item.id);\n }}\n onMouseEnter={(e) => {\n if (!openId) return;\n anchorRef.current = e.currentTarget;\n focusOnOpen.current = false;\n setOpenId(item.id);\n }}\n onKeyDown={(e) => {\n if (e.key === 'ArrowDown' || e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n if (isOpen) { focusLinkAt(0); return; }\n anchorRef.current = e.currentTarget;\n focusOnOpen.current = true;\n setOpenId(item.id);\n } else if (e.key === 'Escape' && isOpen) {\n e.preventDefault();\n setOpenId(null);\n }\n }}\n >\n {content}\n </button>\n ) : rootLinkAs && item.href ? (\n rootLinkAs(item, content, triggerCls)\n ) : (\n <a className={triggerCls} href={item.href}>\n {content}\n </a>\n )}\n {hasChildren && isOpen && (\n <Portal>\n <div\n ref={panelRef}\n className=\"nav-menu__panel\"\n role=\"menu\"\n aria-label={typeof item.label === 'string' ? item.label : undefined}\n onKeyDown={onPanelKeyDown}\n style={{\n position: 'fixed',\n top: pos.top,\n left: pos.left,\n visibility: pos.ready ? 'visible' : 'hidden',\n }}\n >\n {item.featured && (\n <div className=\"nav-menu__featured\">\n <strong>{item.featured.label}</strong>\n {item.featured.description && <p>{item.featured.description}</p>}\n </div>\n )}\n <ul className=\"nav-menu__sublist\">\n {item.links!.map((link) => {\n const linkCls = 'nav-menu__link';\n const linkContent = (\n <>\n {link.icon && <span className=\"nav-menu__link-icon\">{link.icon}</span>}\n <span className=\"nav-menu__link-body\">\n <span className=\"nav-menu__link-label\">{link.label}</span>\n {link.description && <span className=\"nav-menu__link-desc\">{link.description}</span>}\n </span>\n </>\n );\n return (\n <li key={link.id} role=\"none\">\n {linkAs ? (\n linkAs(link, linkContent, linkCls)\n ) : (\n <a\n role=\"menuitem\"\n tabIndex={-1}\n className={linkCls}\n href={link.href}\n onClick={(e) => {\n if (link.onClick) {\n e.preventDefault();\n link.onClick();\n }\n closeAndFocusTrigger();\n }}\n >\n {linkContent}\n </a>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n </Portal>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n );\n}\n"]}
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunkHYUINOPJ_js = require('./chunk-HYUINOPJ.js');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunkAYQ7FM6O_js = require('./chunk-AYQ7FM6O.js');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunkAYQ7FM6O_js = require('./chunk-AYQ7FM6O.js');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var reactDom = require('react-dom');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { format } from './chunk-IUL73666.mjs';
2
3
  import { useLocale } from './chunk-Q4BKGBTV.mjs';
3
4
  import { Bell } from './chunk-CIBJKJV3.mjs';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { Star, ChevronDown } from './chunk-CIBJKJV3.mjs';
2
3
  import { cx } from './chunk-IEPCH3JB.mjs';
3
4
  import * as React from 'react';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunk6TYPG7MA_js = require('./chunk-6TYPG7MA.js');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var React = require('react');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
 
2
3
  //# sourceMappingURL=chunk-XTHC46M2.mjs.map
3
4
  //# sourceMappingURL=chunk-XTHC46M2.mjs.map
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  import { format } from './chunk-IUL73666.mjs';
2
3
  import { useLocale } from './chunk-Q4BKGBTV.mjs';
3
4
  import { ChevronUp, ChevronDown, X } from './chunk-CIBJKJV3.mjs';
@@ -1,4 +1,5 @@
1
- import { usePopoverPosition } from './chunk-GD7MI7OT.mjs';
1
+ 'use client';
2
+ import { usePopoverPosition } from './chunk-PRML6VEF.mjs';
2
3
  import { Portal } from './chunk-FKBQYQQD.mjs';
3
4
  import { cx } from './chunk-IEPCH3JB.mjs';
4
5
  import * as React from 'react';
@@ -71,5 +72,5 @@ function HoverCard({
71
72
  }
72
73
 
73
74
  export { HoverCard };
74
- //# sourceMappingURL=chunk-WPSZ7N2K.mjs.map
75
- //# sourceMappingURL=chunk-WPSZ7N2K.mjs.map
75
+ //# sourceMappingURL=chunk-YSU3WFND.mjs.map
76
+ //# sourceMappingURL=chunk-YSU3WFND.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/HoverCard.tsx"],"names":[],"mappings":";;;;;;AAmBO,SAAS,SAAA,CAAU;AAAA,EACxB,OAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,QAAA;AAAA,EACZ,SAAA,GAAY,GAAA;AAAA,EACZ,UAAA,GAAa,GAAA;AAAA,EACb,MAAA,GAAS,CAAA;AAAA,EACT,SAAA;AAAA,EACA;AACF,CAAA,EAAmB;AACjB,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAU,eAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,UAAA,GAAmB,aAAwB,IAAI,CAAA;AACrD,EAAA,MAAM,UAAA,GAAmB,aAAuB,IAAI,CAAA;AACpD,EAAA,MAAM,SAAA,GAAkB,aAA6C,IAAI,CAAA;AACzE,EAAA,MAAM,UAAA,GAAmB,aAA6C,IAAI,CAAA;AAE1E,EAAA,MAAM,QAAQ,MAAM;AAClB,IAAA,IAAI,SAAA,CAAU,OAAA,EAAS,YAAA,CAAa,SAAA,CAAU,OAAO,CAAA;AACrD,IAAA,IAAI,UAAA,CAAW,OAAA,EAAS,YAAA,CAAa,UAAA,CAAW,OAAO,CAAA;AAAA,EACzD,CAAA;AAEA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,KAAA,EAAM;AACN,IAAA,SAAA,CAAU,UAAU,UAAA,CAAW,MAAM,OAAA,CAAQ,IAAI,GAAG,SAAS,CAAA;AAAA,EAC/D,CAAA;AACA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,KAAA,EAAM;AACN,IAAA,UAAA,CAAW,UAAU,UAAA,CAAW,MAAM,OAAA,CAAQ,KAAK,GAAG,UAAU,CAAA;AAAA,EAClE,CAAA;AAEA,EAAM,gBAAU,MAAM,MAAM,KAAA,EAAM,EAAG,EAAE,CAAA;AAEvC,EAAA,MAAM,GAAA,GAAM,kBAAA,CAAmB,UAAA,EAAY,UAAA,EAAY;AAAA,IACrD,IAAA;AAAA,IACA,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO,QAAA;AAAA,IACP;AAAA,GACD,CAAA;AAED,EAAA,uBACE,IAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,YAAA,EAAc,SAAS,CAAA;AAAA,MACrC,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,OAAA;AAAA,MACd,OAAA,EAAS,OAAA;AAAA,MACT,MAAA,EAAQ,OAAA;AAAA,MAER,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAA,EAAK,UAAA,EAAY,SAAA,EAAU,uBAAuB,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,QAC/D,IAAA,wBACE,MAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,GAAA,EAAK,UAAA;AAAA,YACL,IAAA,EAAK,SAAA;AAAA,YACL,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,aAAA,EAAe,gBAAgB,CAAA;AAAA,YACpE,KAAA,EAAO;AAAA,cACL,QAAA,EAAU,OAAA;AAAA,cACV,KAAK,GAAA,CAAI,GAAA;AAAA,cACT,MAAM,GAAA,CAAI,IAAA;AAAA,cACV,UAAA,EAAY,GAAA,CAAI,KAAA,GAAQ,SAAA,GAAY;AAAA,aACtC;AAAA,YACA,YAAA,EAAc,OAAA;AAAA,YACd,YAAA,EAAc,OAAA;AAAA,YAEb;AAAA;AAAA,SACH,EACF;AAAA;AAAA;AAAA,GAEJ;AAEJ","file":"chunk-WPSZ7N2K.mjs","sourcesContent":["'use client';\nimport * as React from 'react';\nimport { cx } from '../utils/cx';\nimport { Portal } from './Portal';\nimport { usePopoverPosition } from '../hooks/usePopoverPosition';\n\nexport type HoverCardPlacement = 'top' | 'bottom' | 'left' | 'right';\n\nexport interface HoverCardProps {\n trigger: React.ReactNode;\n children: React.ReactNode;\n placement?: HoverCardPlacement;\n openDelay?: number;\n closeDelay?: number;\n offset?: number;\n className?: string;\n contentClassName?: string;\n}\n\nexport function HoverCard({\n trigger,\n children,\n placement = 'bottom',\n openDelay = 250,\n closeDelay = 150,\n offset = 8,\n className,\n contentClassName,\n}: HoverCardProps) {\n const [open, setOpen] = React.useState(false);\n const triggerRef = React.useRef<HTMLSpanElement>(null);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const openTimer = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n const closeTimer = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const clear = () => {\n if (openTimer.current) clearTimeout(openTimer.current);\n if (closeTimer.current) clearTimeout(closeTimer.current);\n };\n\n const onEnter = () => {\n clear();\n openTimer.current = setTimeout(() => setOpen(true), openDelay);\n };\n const onLeave = () => {\n clear();\n closeTimer.current = setTimeout(() => setOpen(false), closeDelay);\n };\n\n React.useEffect(() => () => clear(), []);\n\n const pos = usePopoverPosition(triggerRef, contentRef, {\n open,\n side: placement,\n align: 'center',\n offset,\n });\n\n return (\n <span\n className={cx('hover-card', className)}\n onMouseEnter={onEnter}\n onMouseLeave={onLeave}\n onFocus={onEnter}\n onBlur={onLeave}\n >\n <span ref={triggerRef} className=\"hover-card__trigger\">{trigger}</span>\n {open && (\n <Portal>\n <div\n ref={contentRef}\n role=\"tooltip\"\n className={cx('hover-card__content', 'is-floating', contentClassName)}\n style={{\n position: 'fixed',\n top: pos.top,\n left: pos.left,\n visibility: pos.ready ? 'visible' : 'hidden',\n }}\n onMouseEnter={onEnter}\n onMouseLeave={onLeave}\n >\n {children}\n </div>\n </Portal>\n )}\n </span>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/HoverCard.tsx"],"names":[],"mappings":";;;;;;AAmBO,SAAS,SAAA,CAAU;AAAA,EACxB,OAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA,GAAY,QAAA;AAAA,EACZ,SAAA,GAAY,GAAA;AAAA,EACZ,UAAA,GAAa,GAAA;AAAA,EACb,MAAA,GAAS,CAAA;AAAA,EACT,SAAA;AAAA,EACA;AACF,CAAA,EAAmB;AACjB,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAU,eAAS,KAAK,CAAA;AAC5C,EAAA,MAAM,UAAA,GAAmB,aAAwB,IAAI,CAAA;AACrD,EAAA,MAAM,UAAA,GAAmB,aAAuB,IAAI,CAAA;AACpD,EAAA,MAAM,SAAA,GAAkB,aAA6C,IAAI,CAAA;AACzE,EAAA,MAAM,UAAA,GAAmB,aAA6C,IAAI,CAAA;AAE1E,EAAA,MAAM,QAAQ,MAAM;AAClB,IAAA,IAAI,SAAA,CAAU,OAAA,EAAS,YAAA,CAAa,SAAA,CAAU,OAAO,CAAA;AACrD,IAAA,IAAI,UAAA,CAAW,OAAA,EAAS,YAAA,CAAa,UAAA,CAAW,OAAO,CAAA;AAAA,EACzD,CAAA;AAEA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,KAAA,EAAM;AACN,IAAA,SAAA,CAAU,UAAU,UAAA,CAAW,MAAM,OAAA,CAAQ,IAAI,GAAG,SAAS,CAAA;AAAA,EAC/D,CAAA;AACA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,KAAA,EAAM;AACN,IAAA,UAAA,CAAW,UAAU,UAAA,CAAW,MAAM,OAAA,CAAQ,KAAK,GAAG,UAAU,CAAA;AAAA,EAClE,CAAA;AAEA,EAAM,gBAAU,MAAM,MAAM,KAAA,EAAM,EAAG,EAAE,CAAA;AAEvC,EAAA,MAAM,GAAA,GAAM,kBAAA,CAAmB,UAAA,EAAY,UAAA,EAAY;AAAA,IACrD,IAAA;AAAA,IACA,IAAA,EAAM,SAAA;AAAA,IACN,KAAA,EAAO,QAAA;AAAA,IACP;AAAA,GACD,CAAA;AAED,EAAA,uBACE,IAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,YAAA,EAAc,SAAS,CAAA;AAAA,MACrC,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,OAAA;AAAA,MACd,OAAA,EAAS,OAAA;AAAA,MACT,MAAA,EAAQ,OAAA;AAAA,MAER,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAA,EAAK,UAAA,EAAY,SAAA,EAAU,uBAAuB,QAAA,EAAA,OAAA,EAAQ,CAAA;AAAA,QAC/D,IAAA,wBACE,MAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,GAAA,EAAK,UAAA;AAAA,YACL,IAAA,EAAK,SAAA;AAAA,YACL,SAAA,EAAW,EAAA,CAAG,qBAAA,EAAuB,aAAA,EAAe,gBAAgB,CAAA;AAAA,YACpE,KAAA,EAAO;AAAA,cACL,QAAA,EAAU,OAAA;AAAA,cACV,KAAK,GAAA,CAAI,GAAA;AAAA,cACT,MAAM,GAAA,CAAI,IAAA;AAAA,cACV,UAAA,EAAY,GAAA,CAAI,KAAA,GAAQ,SAAA,GAAY;AAAA,aACtC;AAAA,YACA,YAAA,EAAc,OAAA;AAAA,YACd,YAAA,EAAc,OAAA;AAAA,YAEb;AAAA;AAAA,SACH,EACF;AAAA;AAAA;AAAA,GAEJ;AAEJ","file":"chunk-YSU3WFND.mjs","sourcesContent":["'use client';\nimport * as React from 'react';\nimport { cx } from '../utils/cx';\nimport { Portal } from './Portal';\nimport { usePopoverPosition } from '../hooks/usePopoverPosition';\n\nexport type HoverCardPlacement = 'top' | 'bottom' | 'left' | 'right';\n\nexport interface HoverCardProps {\n trigger: React.ReactNode;\n children: React.ReactNode;\n placement?: HoverCardPlacement;\n openDelay?: number;\n closeDelay?: number;\n offset?: number;\n className?: string;\n contentClassName?: string;\n}\n\nexport function HoverCard({\n trigger,\n children,\n placement = 'bottom',\n openDelay = 250,\n closeDelay = 150,\n offset = 8,\n className,\n contentClassName,\n}: HoverCardProps) {\n const [open, setOpen] = React.useState(false);\n const triggerRef = React.useRef<HTMLSpanElement>(null);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const openTimer = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n const closeTimer = React.useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const clear = () => {\n if (openTimer.current) clearTimeout(openTimer.current);\n if (closeTimer.current) clearTimeout(closeTimer.current);\n };\n\n const onEnter = () => {\n clear();\n openTimer.current = setTimeout(() => setOpen(true), openDelay);\n };\n const onLeave = () => {\n clear();\n closeTimer.current = setTimeout(() => setOpen(false), closeDelay);\n };\n\n React.useEffect(() => () => clear(), []);\n\n const pos = usePopoverPosition(triggerRef, contentRef, {\n open,\n side: placement,\n align: 'center',\n offset,\n });\n\n return (\n <span\n className={cx('hover-card', className)}\n onMouseEnter={onEnter}\n onMouseLeave={onLeave}\n onFocus={onEnter}\n onBlur={onLeave}\n >\n <span ref={triggerRef} className=\"hover-card__trigger\">{trigger}</span>\n {open && (\n <Portal>\n <div\n ref={contentRef}\n role=\"tooltip\"\n className={cx('hover-card__content', 'is-floating', contentClassName)}\n style={{\n position: 'fixed',\n top: pos.top,\n left: pos.left,\n visibility: pos.ready ? 'visible' : 'hidden',\n }}\n onMouseEnter={onEnter}\n onMouseLeave={onLeave}\n >\n {children}\n </div>\n </Portal>\n )}\n </span>\n );\n}\n"]}
@@ -1,10 +1,11 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
- var chunk4TUK7DGZ_js = require('../chunk-4TUK7DGZ.js');
4
+ var chunkQD7HBVS6_js = require('../chunk-QD7HBVS6.js');
4
5
  require('../chunk-6TYPG7MA.js');
5
6
  require('../chunk-HHEYTMBY.js');
6
7
  require('../chunk-XMLBKK7X.js');
7
- require('../chunk-SW3ACUKK.js');
8
+ require('../chunk-7I5LFBQR.js');
8
9
  require('../chunk-WAGWB35Q.js');
9
10
  require('../chunk-3PXYCXDW.js');
10
11
  require('../chunk-CBHWPIHM.js');
@@ -15,19 +16,19 @@ require('../chunk-PASF6T4H.js');
15
16
 
16
17
  Object.defineProperty(exports, "CommandPalette", {
17
18
  enumerable: true,
18
- get: function () { return chunk4TUK7DGZ_js.CommandPalette; }
19
+ get: function () { return chunkQD7HBVS6_js.CommandPalette; }
19
20
  });
20
21
  Object.defineProperty(exports, "DateRangePicker", {
21
22
  enumerable: true,
22
- get: function () { return chunk4TUK7DGZ_js.DateRangePicker; }
23
+ get: function () { return chunkQD7HBVS6_js.DateRangePicker; }
23
24
  });
24
25
  Object.defineProperty(exports, "MultiCombobox", {
25
26
  enumerable: true,
26
- get: function () { return chunk4TUK7DGZ_js.MultiCombobox; }
27
+ get: function () { return chunkQD7HBVS6_js.MultiCombobox; }
27
28
  });
28
29
  Object.defineProperty(exports, "useCommandPalette", {
29
30
  enumerable: true,
30
- get: function () { return chunk4TUK7DGZ_js.useCommandPalette; }
31
+ get: function () { return chunkQD7HBVS6_js.useCommandPalette; }
31
32
  });
32
33
  //# sourceMappingURL=AdvancedPickers.js.map
33
34
  //# sourceMappingURL=AdvancedPickers.js.map
@@ -1,8 +1,9 @@
1
- export { CommandPalette, DateRangePicker, MultiCombobox, useCommandPalette } from '../chunk-NY467B35.mjs';
1
+ 'use client';
2
+ export { CommandPalette, DateRangePicker, MultiCombobox, useCommandPalette } from '../chunk-5AU7WSVI.mjs';
2
3
  import '../chunk-IUL73666.mjs';
3
4
  import '../chunk-N5D6AC6M.mjs';
4
5
  import '../chunk-6P2TKRTL.mjs';
5
- import '../chunk-GD7MI7OT.mjs';
6
+ import '../chunk-PRML6VEF.mjs';
6
7
  import '../chunk-FKBQYQQD.mjs';
7
8
  import '../chunk-5GEWIK4T.mjs';
8
9
  import '../chunk-Q4BKGBTV.mjs';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunk6JA4KQU2_js = require('../chunk-6JA4KQU2.js');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  export { AppShell, PageHeader } from '../chunk-B4AIJWH5.mjs';
2
3
  import '../chunk-Q4BKGBTV.mjs';
3
4
  import '../chunk-CIBJKJV3.mjs';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunkAJ22SXI2_js = require('../chunk-AJ22SXI2.js');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  export { Button, ButtonGroup } from '../chunk-NAL457NQ.mjs';
2
3
  import '../chunk-IEPKSPBX.mjs';
3
4
  import '../chunk-IEPCH3JB.mjs';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunk55TOQMS2_js = require('../chunk-55TOQMS2.js');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  export { Carousel } from '../chunk-ORUQ5GCU.mjs';
2
3
  import '../chunk-CIBJKJV3.mjs';
3
4
  import '../chunk-IEPCH3JB.mjs';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunkCPMQ2DFS_js = require('../chunk-CPMQ2DFS.js');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  export { AreaChart, BarChart, DonutChart, LineChart, Sparkline } from '../chunk-O6FCBNWN.mjs';
2
3
  import '../chunk-IEPCH3JB.mjs';
3
4
  //# sourceMappingURL=Charts.mjs.map
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunkL353APIO_js = require('../chunk-L353APIO.js');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  export { CodeBlock, JsonViewer } from '../chunk-RBJRQ44B.mjs';
2
3
  import '../chunk-CIBJKJV3.mjs';
3
4
  import '../chunk-IEPCH3JB.mjs';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunkAWYCGJJX_js = require('../chunk-AWYCGJJX.js');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  export { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../chunk-2UV37SEN.mjs';
2
3
  import '../chunk-IEPCH3JB.mjs';
3
4
  //# sourceMappingURL=Collapsible.mjs.map
@@ -1,10 +1,11 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
- var chunkLZ4RGZJM_js = require('../chunk-LZ4RGZJM.js');
4
- require('../chunk-QEDJJAKV.js');
4
+ var chunkKKEBA6AG_js = require('../chunk-KKEBA6AG.js');
5
+ require('../chunk-56NJXIH7.js');
5
6
  require('../chunk-6TYPG7MA.js');
6
7
  require('../chunk-XMLBKK7X.js');
7
- require('../chunk-SW3ACUKK.js');
8
+ require('../chunk-7I5LFBQR.js');
8
9
  require('../chunk-WAGWB35Q.js');
9
10
  require('../chunk-CBHWPIHM.js');
10
11
  require('../chunk-RQOTH7I7.js');
@@ -14,15 +15,15 @@ require('../chunk-PASF6T4H.js');
14
15
 
15
16
  Object.defineProperty(exports, "AttachmentList", {
16
17
  enumerable: true,
17
- get: function () { return chunkLZ4RGZJM_js.AttachmentList; }
18
+ get: function () { return chunkKKEBA6AG_js.AttachmentList; }
18
19
  });
19
20
  Object.defineProperty(exports, "CommentThread", {
20
21
  enumerable: true,
21
- get: function () { return chunkLZ4RGZJM_js.CommentThread; }
22
+ get: function () { return chunkKKEBA6AG_js.CommentThread; }
22
23
  });
23
24
  Object.defineProperty(exports, "_internal", {
24
25
  enumerable: true,
25
- get: function () { return chunkLZ4RGZJM_js._internal; }
26
+ get: function () { return chunkKKEBA6AG_js._internal; }
26
27
  });
27
28
  //# sourceMappingURL=Comments.js.map
28
29
  //# sourceMappingURL=Comments.js.map
@@ -1,8 +1,9 @@
1
- export { AttachmentList, CommentThread, _internal } from '../chunk-3EFZU6GX.mjs';
2
- import '../chunk-CFAX3HUT.mjs';
1
+ 'use client';
2
+ export { AttachmentList, CommentThread, _internal } from '../chunk-UZTVQZIZ.mjs';
3
+ import '../chunk-OJNEGJ3P.mjs';
3
4
  import '../chunk-IUL73666.mjs';
4
5
  import '../chunk-6P2TKRTL.mjs';
5
- import '../chunk-GD7MI7OT.mjs';
6
+ import '../chunk-PRML6VEF.mjs';
6
7
  import '../chunk-FKBQYQQD.mjs';
7
8
  import '../chunk-Q4BKGBTV.mjs';
8
9
  import '../chunk-CIBJKJV3.mjs';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunkVXKEX7T2_js = require('../chunk-VXKEX7T2.js');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  export { AddressForm, CartDrawer, CompareTable, FreeShippingProgress, OrderSummary, PriceDisplay, PromoCodeInput, QuantitySelector, Rating, VariantSelector, WishlistButton } from '../chunk-RJMMD7CG.mjs';
2
3
  import '../chunk-7AD35TKY.mjs';
3
4
  import '../chunk-U3JH4T3A.mjs';
@@ -1,8 +1,9 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
- var chunkAJ32TAHG_js = require('../chunk-AJ32TAHG.js');
4
+ var chunkGKSUYHGO_js = require('../chunk-GKSUYHGO.js');
4
5
  require('../chunk-XMLBKK7X.js');
5
- require('../chunk-SW3ACUKK.js');
6
+ require('../chunk-7I5LFBQR.js');
6
7
  require('../chunk-WAGWB35Q.js');
7
8
  require('../chunk-PASF6T4H.js');
8
9
 
@@ -10,7 +11,7 @@ require('../chunk-PASF6T4H.js');
10
11
 
11
12
  Object.defineProperty(exports, "ContextMenu", {
12
13
  enumerable: true,
13
- get: function () { return chunkAJ32TAHG_js.ContextMenu; }
14
+ get: function () { return chunkGKSUYHGO_js.ContextMenu; }
14
15
  });
15
16
  //# sourceMappingURL=ContextMenu.js.map
16
17
  //# sourceMappingURL=ContextMenu.js.map
@@ -1,6 +1,7 @@
1
- export { ContextMenu } from '../chunk-6EGXSTPR.mjs';
1
+ 'use client';
2
+ export { ContextMenu } from '../chunk-EJ263Y5X.mjs';
2
3
  import '../chunk-6P2TKRTL.mjs';
3
- import '../chunk-GD7MI7OT.mjs';
4
+ import '../chunk-PRML6VEF.mjs';
4
5
  import '../chunk-FKBQYQQD.mjs';
5
6
  import '../chunk-IEPCH3JB.mjs';
6
7
  //# sourceMappingURL=ContextMenu.mjs.map
@@ -49,9 +49,11 @@ interface DataTableProps<T> {
49
49
  loading?: boolean;
50
50
  /**
51
51
  * Sticky-position the table header so it stays visible while the body
52
- * scrolls. Requires the consumer to constrain the wrapper's height
53
- * (e.g. wrapping `<DataTable>` in a `max-height: 60vh; overflow-y: auto`
54
- * container) without that, sticky has nothing to stick relative to.
52
+ * scrolls. The wrapper itself becomes the vertical scroll container
53
+ * (the table is already overflow-x:auto, so an outer scroller can't reach
54
+ * the header). Defaults to `max-height: 70vh`; override by passing a
55
+ * `className` with a different `max-height`. Do NOT wrap `<DataTable>` in
56
+ * your own `overflow-y:auto` container — that breaks the sticky context.
55
57
  */
56
58
  stickyHeader?: boolean;
57
59
  /**
@@ -49,9 +49,11 @@ interface DataTableProps<T> {
49
49
  loading?: boolean;
50
50
  /**
51
51
  * Sticky-position the table header so it stays visible while the body
52
- * scrolls. Requires the consumer to constrain the wrapper's height
53
- * (e.g. wrapping `<DataTable>` in a `max-height: 60vh; overflow-y: auto`
54
- * container) without that, sticky has nothing to stick relative to.
52
+ * scrolls. The wrapper itself becomes the vertical scroll container
53
+ * (the table is already overflow-x:auto, so an outer scroller can't reach
54
+ * the header). Defaults to `max-height: 70vh`; override by passing a
55
+ * `className` with a different `max-height`. Do NOT wrap `<DataTable>` in
56
+ * your own `overflow-y:auto` container — that breaks the sticky context.
55
57
  */
56
58
  stickyHeader?: boolean;
57
59
  /**
@@ -1,6 +1,7 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
- var chunkVTDXEY26_js = require('../chunk-VTDXEY26.js');
4
+ var chunkBESBMV7N_js = require('../chunk-BESBMV7N.js');
4
5
  require('../chunk-HYUINOPJ.js');
5
6
  require('../chunk-X7O37QLL.js');
6
7
  require('../chunk-6TYPG7MA.js');
@@ -12,27 +13,27 @@ require('../chunk-PASF6T4H.js');
12
13
 
13
14
  Object.defineProperty(exports, "Accordion", {
14
15
  enumerable: true,
15
- get: function () { return chunkVTDXEY26_js.Accordion; }
16
+ get: function () { return chunkBESBMV7N_js.Accordion; }
16
17
  });
17
18
  Object.defineProperty(exports, "AccordionItem", {
18
19
  enumerable: true,
19
- get: function () { return chunkVTDXEY26_js.AccordionItem; }
20
+ get: function () { return chunkBESBMV7N_js.AccordionItem; }
20
21
  });
21
22
  Object.defineProperty(exports, "Breadcrumbs", {
22
23
  enumerable: true,
23
- get: function () { return chunkVTDXEY26_js.Breadcrumbs; }
24
+ get: function () { return chunkBESBMV7N_js.Breadcrumbs; }
24
25
  });
25
26
  Object.defineProperty(exports, "DataTable", {
26
27
  enumerable: true,
27
- get: function () { return chunkVTDXEY26_js.DataTable; }
28
+ get: function () { return chunkBESBMV7N_js.DataTable; }
28
29
  });
29
30
  Object.defineProperty(exports, "TablePagination", {
30
31
  enumerable: true,
31
- get: function () { return chunkVTDXEY26_js.TablePagination; }
32
+ get: function () { return chunkBESBMV7N_js.TablePagination; }
32
33
  });
33
34
  Object.defineProperty(exports, "TableToolbar", {
34
35
  enumerable: true,
35
- get: function () { return chunkVTDXEY26_js.TableToolbar; }
36
+ get: function () { return chunkBESBMV7N_js.TableToolbar; }
36
37
  });
37
38
  //# sourceMappingURL=DataTable.js.map
38
39
  //# sourceMappingURL=DataTable.js.map
@@ -1,4 +1,5 @@
1
- export { Accordion, AccordionItem, Breadcrumbs, DataTable, TablePagination, TableToolbar } from '../chunk-I3Z3MH72.mjs';
1
+ 'use client';
2
+ export { Accordion, AccordionItem, Breadcrumbs, DataTable, TablePagination, TableToolbar } from '../chunk-PDLQUQK7.mjs';
2
3
  import '../chunk-GVYZAOWU.mjs';
3
4
  import '../chunk-PWAIOLZH.mjs';
4
5
  import '../chunk-IUL73666.mjs';
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
4
  var chunkJL73XCFX_js = require('../chunk-JL73XCFX.js');
@@ -1,3 +1,4 @@
1
+ 'use client';
1
2
  export { Alert, Badge, Card, CardBody, CardFooter, CardHeader, Chip, ChipGroup, ProductCard, Skeleton, Spinner } from '../chunk-3MOVUNRA.mjs';
2
3
  import '../chunk-Q4BKGBTV.mjs';
3
4
  import '../chunk-IEPKSPBX.mjs';
@@ -1,8 +1,9 @@
1
+ 'use client';
1
2
  'use strict';
2
3
 
3
- var chunkQEDJJAKV_js = require('../chunk-QEDJJAKV.js');
4
+ var chunk56NJXIH7_js = require('../chunk-56NJXIH7.js');
4
5
  require('../chunk-XMLBKK7X.js');
5
- require('../chunk-SW3ACUKK.js');
6
+ require('../chunk-7I5LFBQR.js');
6
7
  require('../chunk-WAGWB35Q.js');
7
8
  require('../chunk-RQOTH7I7.js');
8
9
  require('../chunk-PASF6T4H.js');
@@ -11,19 +12,19 @@ require('../chunk-PASF6T4H.js');
11
12
 
12
13
  Object.defineProperty(exports, "Avatar", {
13
14
  enumerable: true,
14
- get: function () { return chunkQEDJJAKV_js.Avatar; }
15
+ get: function () { return chunk56NJXIH7_js.Avatar; }
15
16
  });
16
17
  Object.defineProperty(exports, "AvatarGroup", {
17
18
  enumerable: true,
18
- get: function () { return chunkQEDJJAKV_js.AvatarGroup; }
19
+ get: function () { return chunk56NJXIH7_js.AvatarGroup; }
19
20
  });
20
21
  Object.defineProperty(exports, "Menu", {
21
22
  enumerable: true,
22
- get: function () { return chunkQEDJJAKV_js.Menu; }
23
+ get: function () { return chunk56NJXIH7_js.Menu; }
23
24
  });
24
25
  Object.defineProperty(exports, "Stat", {
25
26
  enumerable: true,
26
- get: function () { return chunkQEDJJAKV_js.Stat; }
27
+ get: function () { return chunk56NJXIH7_js.Stat; }
27
28
  });
28
29
  //# sourceMappingURL=Display2.js.map
29
30
  //# sourceMappingURL=Display2.js.map
@@ -1,6 +1,7 @@
1
- export { Avatar, AvatarGroup, Menu, Stat } from '../chunk-CFAX3HUT.mjs';
1
+ 'use client';
2
+ export { Avatar, AvatarGroup, Menu, Stat } from '../chunk-OJNEGJ3P.mjs';
2
3
  import '../chunk-6P2TKRTL.mjs';
3
- import '../chunk-GD7MI7OT.mjs';
4
+ import '../chunk-PRML6VEF.mjs';
4
5
  import '../chunk-FKBQYQQD.mjs';
5
6
  import '../chunk-CIBJKJV3.mjs';
6
7
  import '../chunk-IEPCH3JB.mjs';