@misael703/ui 1.9.0 → 1.10.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 (194) hide show
  1. package/dist/{chunk-4Z63PIAZ.mjs → chunk-2BPYXHGW.mjs} +4 -4
  2. package/dist/{chunk-4Z63PIAZ.mjs.map → chunk-2BPYXHGW.mjs.map} +1 -1
  3. package/dist/{chunk-JPPRP5R7.js → chunk-4QXDOJ7A.js} +51 -8
  4. package/dist/chunk-4QXDOJ7A.js.map +1 -0
  5. package/dist/{chunk-XYKOXQUS.mjs → chunk-4SEJTTTV.mjs} +46 -5
  6. package/dist/chunk-4SEJTTTV.mjs.map +1 -0
  7. package/dist/{chunk-CBHWPIHM.js → chunk-4VMQLSHV.js} +3 -2
  8. package/dist/chunk-4VMQLSHV.js.map +1 -0
  9. package/dist/{chunk-3VVQIWWG.js → chunk-55ITZTLL.js} +4 -4
  10. package/dist/{chunk-3VVQIWWG.js.map → chunk-55ITZTLL.js.map} +1 -1
  11. package/dist/{chunk-QEDJJAKV.js → chunk-56NJXIH7.js} +4 -4
  12. package/dist/{chunk-QEDJJAKV.js.map → chunk-56NJXIH7.js.map} +1 -1
  13. package/dist/{chunk-SW3ACUKK.js → chunk-7I5LFBQR.js} +8 -7
  14. package/dist/chunk-7I5LFBQR.js.map +1 -0
  15. package/dist/{chunk-CCZOHDVF.mjs → chunk-BCE5WXM6.mjs} +4 -4
  16. package/dist/{chunk-CCZOHDVF.mjs.map → chunk-BCE5WXM6.mjs.map} +1 -1
  17. package/dist/{chunk-KOZUEK6V.mjs → chunk-BGIX6G5V.mjs} +3 -3
  18. package/dist/{chunk-KOZUEK6V.mjs.map → chunk-BGIX6G5V.mjs.map} +1 -1
  19. package/dist/{chunk-AYQ7FM6O.js → chunk-BSAHYKPF.js} +5 -5
  20. package/dist/{chunk-AYQ7FM6O.js.map → chunk-BSAHYKPF.js.map} +1 -1
  21. package/dist/{chunk-S6BMFQ6C.mjs → chunk-CGOUG3W5.mjs} +3 -3
  22. package/dist/{chunk-S6BMFQ6C.mjs.map → chunk-CGOUG3W5.mjs.map} +1 -1
  23. package/dist/{chunk-WWJK2R2B.js → chunk-CPATAMLH.js} +12 -12
  24. package/dist/{chunk-WWJK2R2B.js.map → chunk-CPATAMLH.js.map} +1 -1
  25. package/dist/{chunk-4TUK7DGZ.js → chunk-D7RM4AY4.js} +11 -11
  26. package/dist/{chunk-4TUK7DGZ.js.map → chunk-D7RM4AY4.js.map} +1 -1
  27. package/dist/{chunk-6TYPG7MA.js → chunk-DFQLWCIC.js} +2 -2
  28. package/dist/chunk-DFQLWCIC.js.map +1 -0
  29. package/dist/{chunk-BESBMV7N.js → chunk-DIDQCPXU.js} +133 -84
  30. package/dist/chunk-DIDQCPXU.js.map +1 -0
  31. package/dist/{chunk-NY467B35.mjs → chunk-DY3DCHWD.mjs} +5 -5
  32. package/dist/{chunk-NY467B35.mjs.map → chunk-DY3DCHWD.mjs.map} +1 -1
  33. package/dist/{chunk-6EGXSTPR.mjs → chunk-EJ263Y5X.mjs} +3 -3
  34. package/dist/{chunk-6EGXSTPR.mjs.map → chunk-EJ263Y5X.mjs.map} +1 -1
  35. package/dist/{chunk-PWAIOLZH.mjs → chunk-ETG3VM56.mjs} +5 -4
  36. package/dist/chunk-ETG3VM56.mjs.map +1 -0
  37. package/dist/{chunk-Q6C2KXLO.mjs → chunk-FA6526ME.mjs} +3 -3
  38. package/dist/{chunk-Q6C2KXLO.mjs.map → chunk-FA6526ME.mjs.map} +1 -1
  39. package/dist/{chunk-VXKEX7T2.js → chunk-FGNHN34U.js} +13 -13
  40. package/dist/{chunk-VXKEX7T2.js.map → chunk-FGNHN34U.js.map} +1 -1
  41. package/dist/{chunk-3MOVUNRA.mjs → chunk-GD3IZ66H.mjs} +12 -5
  42. package/dist/chunk-GD3IZ66H.mjs.map +1 -0
  43. package/dist/{chunk-AJ32TAHG.js → chunk-GKSUYHGO.js} +4 -4
  44. package/dist/{chunk-AJ32TAHG.js.map → chunk-GKSUYHGO.js.map} +1 -1
  45. package/dist/{chunk-3EFZU6GX.mjs → chunk-HRDLEOYO.mjs} +5 -5
  46. package/dist/{chunk-3EFZU6GX.mjs.map → chunk-HRDLEOYO.mjs.map} +1 -1
  47. package/dist/{chunk-B4AIJWH5.mjs → chunk-HUEO23A2.mjs} +3 -3
  48. package/dist/{chunk-B4AIJWH5.mjs.map → chunk-HUEO23A2.mjs.map} +1 -1
  49. package/dist/{chunk-LZ4RGZJM.js → chunk-IKGW7HHG.js} +10 -10
  50. package/dist/{chunk-LZ4RGZJM.js.map → chunk-IKGW7HHG.js.map} +1 -1
  51. package/dist/{chunk-6FXXZZQV.js → chunk-IZ3FMCZ5.js} +4 -4
  52. package/dist/{chunk-6FXXZZQV.js.map → chunk-IZ3FMCZ5.js.map} +1 -1
  53. package/dist/{chunk-VMC5ZD4O.js → chunk-JT2SFHBH.js} +6 -6
  54. package/dist/{chunk-VMC5ZD4O.js.map → chunk-JT2SFHBH.js.map} +1 -1
  55. package/dist/{chunk-7AD35TKY.mjs → chunk-JUSOPJZW.mjs} +3 -3
  56. package/dist/{chunk-7AD35TKY.mjs.map → chunk-JUSOPJZW.mjs.map} +1 -1
  57. package/dist/{chunk-3XXTCTFO.js → chunk-JYHY3UWA.js} +7 -7
  58. package/dist/{chunk-3XXTCTFO.js.map → chunk-JYHY3UWA.js.map} +1 -1
  59. package/dist/{chunk-X7O37QLL.js → chunk-KTWHW6UV.js} +8 -7
  60. package/dist/chunk-KTWHW6UV.js.map +1 -0
  61. package/dist/{chunk-QQ5PBPAB.mjs → chunk-LVLJ75ND.mjs} +4 -4
  62. package/dist/{chunk-QQ5PBPAB.mjs.map → chunk-LVLJ75ND.mjs.map} +1 -1
  63. package/dist/{chunk-FEDQKTCX.js → chunk-LYM2VPFL.js} +6 -6
  64. package/dist/{chunk-FEDQKTCX.js.map → chunk-LYM2VPFL.js.map} +1 -1
  65. package/dist/{chunk-VUJMOT6K.js → chunk-O72DMPH6.js} +9 -9
  66. package/dist/{chunk-VUJMOT6K.js.map → chunk-O72DMPH6.js.map} +1 -1
  67. package/dist/{chunk-CFAX3HUT.mjs → chunk-OJNEGJ3P.mjs} +3 -3
  68. package/dist/{chunk-CFAX3HUT.mjs.map → chunk-OJNEGJ3P.mjs.map} +1 -1
  69. package/dist/{chunk-Q4BKGBTV.mjs → chunk-PQV7HHCJ.mjs} +3 -2
  70. package/dist/chunk-PQV7HHCJ.mjs.map +1 -0
  71. package/dist/{chunk-GD7MI7OT.mjs → chunk-PRML6VEF.mjs} +8 -7
  72. package/dist/chunk-PRML6VEF.mjs.map +1 -0
  73. package/dist/{chunk-IUL73666.mjs → chunk-Q4HKSXUE.mjs} +2 -2
  74. package/dist/chunk-Q4HKSXUE.mjs.map +1 -0
  75. package/dist/{chunk-6JA4KQU2.js → chunk-QLYPHMPH.js} +5 -5
  76. package/dist/{chunk-6JA4KQU2.js.map → chunk-QLYPHMPH.js.map} +1 -1
  77. package/dist/{chunk-TDVFNHQZ.mjs → chunk-QM7BCSCL.mjs} +3 -3
  78. package/dist/{chunk-TDVFNHQZ.mjs.map → chunk-QM7BCSCL.mjs.map} +1 -1
  79. package/dist/{chunk-KJ7UNUTB.js → chunk-QZACPKQ4.js} +6 -6
  80. package/dist/{chunk-KJ7UNUTB.js.map → chunk-QZACPKQ4.js.map} +1 -1
  81. package/dist/{chunk-WQFNJVKU.mjs → chunk-R6XMFBVH.mjs} +4 -4
  82. package/dist/{chunk-WQFNJVKU.mjs.map → chunk-R6XMFBVH.mjs.map} +1 -1
  83. package/dist/{chunk-J3J6LCHJ.js → chunk-TIO7MIUN.js} +4 -4
  84. package/dist/{chunk-J3J6LCHJ.js.map → chunk-TIO7MIUN.js.map} +1 -1
  85. package/dist/{chunk-JL73XCFX.js → chunk-TS2WNAQC.js} +15 -8
  86. package/dist/chunk-TS2WNAQC.js.map +1 -0
  87. package/dist/{chunk-PTHUKX2I.mjs → chunk-TS6HCQLX.mjs} +4 -4
  88. package/dist/{chunk-PTHUKX2I.mjs.map → chunk-TS6HCQLX.mjs.map} +1 -1
  89. package/dist/{chunk-UK54DHNM.js → chunk-U3I4IMJI.js} +4 -4
  90. package/dist/{chunk-UK54DHNM.js.map → chunk-U3I4IMJI.js.map} +1 -1
  91. package/dist/{chunk-B67HZ45M.js → chunk-VCBVLG3Q.js} +4 -4
  92. package/dist/{chunk-B67HZ45M.js.map → chunk-VCBVLG3Q.js.map} +1 -1
  93. package/dist/{chunk-I5V54YCS.js → chunk-VDBGWTIG.js} +4 -4
  94. package/dist/{chunk-I5V54YCS.js.map → chunk-VDBGWTIG.js.map} +1 -1
  95. package/dist/{chunk-Y2B4XXTO.mjs → chunk-VFZ2X655.mjs} +3 -3
  96. package/dist/{chunk-Y2B4XXTO.mjs.map → chunk-VFZ2X655.mjs.map} +1 -1
  97. package/dist/{chunk-PDLQUQK7.mjs → chunk-WDDSHKU2.mjs} +131 -82
  98. package/dist/chunk-WDDSHKU2.mjs.map +1 -0
  99. package/dist/{chunk-RJMMD7CG.mjs → chunk-XLLARFVP.mjs} +5 -5
  100. package/dist/{chunk-RJMMD7CG.mjs.map → chunk-XLLARFVP.mjs.map} +1 -1
  101. package/dist/{chunk-GBHP5WAB.mjs → chunk-XW7DOPY4.mjs} +4 -4
  102. package/dist/{chunk-GBHP5WAB.mjs.map → chunk-XW7DOPY4.mjs.map} +1 -1
  103. package/dist/{chunk-CXEQ56RU.mjs → chunk-YL2IWHUZ.mjs} +4 -4
  104. package/dist/{chunk-CXEQ56RU.mjs.map → chunk-YL2IWHUZ.mjs.map} +1 -1
  105. package/dist/{chunk-WPSZ7N2K.mjs → chunk-YSU3WFND.mjs} +3 -3
  106. package/dist/{chunk-WPSZ7N2K.mjs.map → chunk-YSU3WFND.mjs.map} +1 -1
  107. package/dist/{chunk-HKERJFKW.js → chunk-ZMRN4DMC.js} +6 -6
  108. package/dist/{chunk-HKERJFKW.js.map → chunk-ZMRN4DMC.js.map} +1 -1
  109. package/dist/components/AdvancedPickers.js +8 -8
  110. package/dist/components/AdvancedPickers.mjs +4 -4
  111. package/dist/components/AppShell.js +4 -4
  112. package/dist/components/AppShell.mjs +2 -2
  113. package/dist/components/Comments.js +8 -8
  114. package/dist/components/Comments.mjs +5 -5
  115. package/dist/components/Commerce.js +15 -15
  116. package/dist/components/Commerce.mjs +4 -4
  117. package/dist/components/ContextMenu.js +3 -3
  118. package/dist/components/ContextMenu.mjs +2 -2
  119. package/dist/components/DataTable.d.mts +36 -1
  120. package/dist/components/DataTable.d.ts +36 -1
  121. package/dist/components/DataTable.js +10 -10
  122. package/dist/components/DataTable.mjs +4 -4
  123. package/dist/components/Display.d.mts +7 -1
  124. package/dist/components/Display.d.ts +7 -1
  125. package/dist/components/Display.js +13 -13
  126. package/dist/components/Display.mjs +2 -2
  127. package/dist/components/Display2.js +6 -6
  128. package/dist/components/Display2.mjs +2 -2
  129. package/dist/components/Display3.js +10 -10
  130. package/dist/components/Display3.mjs +4 -4
  131. package/dist/components/Editing.js +8 -8
  132. package/dist/components/Editing.mjs +3 -3
  133. package/dist/components/Filters.d.mts +21 -1
  134. package/dist/components/Filters.d.ts +21 -1
  135. package/dist/components/Filters.js +15 -7
  136. package/dist/components/Filters.mjs +3 -3
  137. package/dist/components/Gallery.js +5 -5
  138. package/dist/components/Gallery.mjs +3 -3
  139. package/dist/components/HoverCard.js +3 -3
  140. package/dist/components/HoverCard.mjs +2 -2
  141. package/dist/components/Inputs.d.mts +1 -1
  142. package/dist/components/Inputs.d.ts +1 -1
  143. package/dist/components/Inputs.js +7 -7
  144. package/dist/components/Inputs.mjs +3 -3
  145. package/dist/components/InputsExtra.js +12 -12
  146. package/dist/components/InputsExtra.mjs +3 -3
  147. package/dist/components/Layout.js +19 -19
  148. package/dist/components/Layout.mjs +2 -2
  149. package/dist/components/Menubar.js +3 -3
  150. package/dist/components/Menubar.mjs +2 -2
  151. package/dist/components/NavigationMenu.js +3 -3
  152. package/dist/components/NavigationMenu.mjs +2 -2
  153. package/dist/components/Notifications.js +4 -4
  154. package/dist/components/Notifications.mjs +3 -3
  155. package/dist/components/Overlay.js +4 -4
  156. package/dist/components/Overlay.mjs +2 -2
  157. package/dist/components/Permissions.js +4 -4
  158. package/dist/components/Permissions.mjs +3 -3
  159. package/dist/components/Pickers.js +8 -8
  160. package/dist/components/Pickers.mjs +3 -3
  161. package/dist/components/Popover.js +3 -3
  162. package/dist/components/Popover.mjs +2 -2
  163. package/dist/components/Toast.js +4 -4
  164. package/dist/components/Toast.mjs +2 -2
  165. package/dist/hooks/index.js +2 -2
  166. package/dist/hooks/index.mjs +1 -1
  167. package/dist/hooks/usePopoverPosition.js +2 -2
  168. package/dist/hooks/usePopoverPosition.mjs +1 -1
  169. package/dist/index.d.mts +1 -1
  170. package/dist/index.d.ts +1 -1
  171. package/dist/index.js +145 -137
  172. package/dist/index.mjs +28 -28
  173. package/dist/locale/index.d.mts +2 -0
  174. package/dist/locale/index.d.ts +2 -0
  175. package/dist/locale/index.js +6 -6
  176. package/dist/locale/index.mjs +2 -2
  177. package/dist/presets/elalba/styles.css +1 -1
  178. package/dist/styles.css +1 -1
  179. package/dist/tokens.css +1 -1
  180. package/package.json +1 -1
  181. package/dist/chunk-3MOVUNRA.mjs.map +0 -1
  182. package/dist/chunk-6TYPG7MA.js.map +0 -1
  183. package/dist/chunk-BESBMV7N.js.map +0 -1
  184. package/dist/chunk-CBHWPIHM.js.map +0 -1
  185. package/dist/chunk-GD7MI7OT.mjs.map +0 -1
  186. package/dist/chunk-IUL73666.mjs.map +0 -1
  187. package/dist/chunk-JL73XCFX.js.map +0 -1
  188. package/dist/chunk-JPPRP5R7.js.map +0 -1
  189. package/dist/chunk-PDLQUQK7.mjs.map +0 -1
  190. package/dist/chunk-PWAIOLZH.mjs.map +0 -1
  191. package/dist/chunk-Q4BKGBTV.mjs.map +0 -1
  192. package/dist/chunk-SW3ACUKK.js.map +0 -1
  193. package/dist/chunk-X7O37QLL.js.map +0 -1
  194. package/dist/chunk-XYKOXQUS.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Display3.tsx"],"names":["jsxs","cx","jsx","Avatar","React","Timeline","ChevronDown","ChevronRight","startOfMonth","useLocale","addMonths","isSameDay"],"mappings":"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","file":"chunk-HKERJFKW.js","sourcesContent":["'use client';\nimport * as React from 'react';\nimport { cx } from '../utils/cx';\nimport { Avatar } from './Display2';\nimport { ChevronRight, ChevronDown } from './Icons';\nimport { useLocale } from '../locale/LocaleProvider';\nimport { startOfMonth, addMonths, isSameDay } from '../utils/dateFormat';\n\n// ---------- UserCell ----------------------------------------------------\nexport interface UserCellProps extends React.HTMLAttributes<HTMLDivElement> {\n name: React.ReactNode;\n meta?: React.ReactNode; // role / email / etc.\n avatarSrc?: string;\n avatarAlt?: string;\n size?: 24 | 32 | 40 | 48;\n}\n\nexport function UserCell({ name, meta, avatarSrc, avatarAlt, size = 32, className, ...rest }: UserCellProps) {\n const initialsName = typeof name === 'string' ? name : undefined;\n return (\n <div className={cx('user-cell', className)} {...rest}>\n <Avatar src={avatarSrc} alt={avatarAlt} name={initialsName} size={size} />\n <div className=\"user-cell__body\">\n <div className=\"user-cell__name\">{name}</div>\n {meta && <div className=\"user-cell__meta\">{meta}</div>}\n </div>\n </div>\n );\n}\n\n// ---------- StatusIndicator (pulsing dot) ------------------------------\nexport type StatusTone = 'success' | 'warning' | 'danger' | 'info' | 'neutral';\n\nexport interface StatusIndicatorProps extends React.HTMLAttributes<HTMLSpanElement> {\n tone?: StatusTone;\n pulse?: boolean;\n label?: React.ReactNode;\n}\n\nexport function StatusIndicator({ tone = 'success', pulse, label, className, ...rest }: StatusIndicatorProps) {\n return (\n <span className={cx('status-indicator', className)} role=\"status\" {...rest}>\n <span className={cx('status-indicator__dot', `status-indicator__dot--${tone}`, pulse && 'is-pulsing')} aria-hidden=\"true\" />\n {label && <span className=\"status-indicator__label\">{label}</span>}\n </span>\n );\n}\n\n// ---------- Timeline ----------------------------------------------------\nexport interface TimelineProps extends React.HTMLAttributes<HTMLOListElement> {}\n\nexport const Timeline = React.forwardRef<HTMLOListElement, TimelineProps>(\n function Timeline({ className, ...rest }, ref) {\n return <ol ref={ref} className={cx('timeline', className)} {...rest} />;\n }\n);\n\nexport interface TimelineItemProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'title'> {\n icon?: React.ReactNode;\n tone?: StatusTone;\n title: React.ReactNode;\n meta?: React.ReactNode;\n}\n\nexport function TimelineItem({ icon, tone = 'neutral', title, meta, children, className, ...rest }: TimelineItemProps) {\n return (\n <li className={cx('timeline__item', className)} {...rest}>\n <span className={cx('timeline__marker', `timeline__marker--${tone}`)} aria-hidden=\"true\">\n {icon}\n </span>\n <div className=\"timeline__body\">\n <div className=\"timeline__title\">{title}</div>\n {meta && <div className=\"timeline__meta\">{meta}</div>}\n {children && <div className=\"timeline__content\">{children}</div>}\n </div>\n </li>\n );\n}\n\n// ---------- Tree --------------------------------------------------------\nexport interface TreeNodeData {\n id: string;\n label: React.ReactNode;\n icon?: React.ReactNode;\n children?: TreeNodeData[];\n meta?: React.ReactNode;\n}\n\nexport interface TreeProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onSelect'> {\n nodes: TreeNodeData[];\n defaultExpanded?: string[];\n selectedId?: string;\n onSelect?: (id: string) => void;\n}\n\nfunction firstNodeId(nodes: TreeNodeData[]): string | undefined {\n return nodes[0]?.id;\n}\n\nexport function Tree({\n nodes,\n defaultExpanded = [],\n selectedId,\n onSelect,\n className,\n onKeyDown,\n ...rest\n}: TreeProps) {\n const [expanded, setExpanded] = React.useState<Set<string>>(new Set(defaultExpanded));\n const [activeId, setActiveId] = React.useState<string | undefined>(undefined);\n const rootRef = React.useRef<HTMLUListElement>(null);\n\n // Roving tabindex: one treeitem is tabbable at a time. Falls back to the\n // selected node, then the first node, so the tree is reachable on first Tab.\n const effectiveActive = activeId ?? selectedId ?? firstNodeId(nodes);\n\n const toggle = React.useCallback((id: string) => {\n setExpanded((curr) => {\n const next = new Set(curr);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n }, []);\n\n const visibleItems = (): HTMLElement[] =>\n Array.from(rootRef.current?.querySelectorAll<HTMLElement>('[role=\"treeitem\"]') ?? []);\n\n const focusItem = (el: HTMLElement | undefined): void => {\n if (!el) return;\n setActiveId(el.dataset.treeId);\n el.focus();\n };\n\n // WAI-ARIA TreeView keyboard model. Focus lives on the treeitem element;\n // querySelectorAll returns items in DOM order, which equals visual order\n // (collapsed branches are not rendered, so they are not navigable).\n const handleKeyDown = (e: React.KeyboardEvent<HTMLUListElement>): void => {\n onKeyDown?.(e);\n const targetEl = (e.target as HTMLElement).closest<HTMLElement>('[role=\"treeitem\"]');\n if (!targetEl || !rootRef.current?.contains(targetEl)) return;\n const list = visibleItems();\n const idx = list.indexOf(targetEl);\n if (idx === -1) return;\n const id = targetEl.dataset.treeId;\n if (!id) return;\n const depth = Number(targetEl.dataset.depth ?? 0);\n const expandedAttr = targetEl.getAttribute('aria-expanded');\n const hasChildren = expandedAttr !== null;\n const isOpen = expandedAttr === 'true';\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n focusItem(list[Math.min(idx + 1, list.length - 1)]);\n break;\n case 'ArrowUp':\n e.preventDefault();\n focusItem(list[Math.max(idx - 1, 0)]);\n break;\n case 'Home':\n e.preventDefault();\n focusItem(list[0]);\n break;\n case 'End':\n e.preventDefault();\n focusItem(list[list.length - 1]);\n break;\n case 'ArrowRight':\n e.preventDefault();\n if (hasChildren && !isOpen) toggle(id);\n else if (hasChildren && isOpen) focusItem(list[idx + 1]);\n break;\n case 'ArrowLeft':\n e.preventDefault();\n if (hasChildren && isOpen) {\n toggle(id);\n } else {\n for (let i = idx - 1; i >= 0; i--) {\n const candidate = list[i];\n if (candidate && Number(candidate.dataset.depth ?? 0) < depth) {\n focusItem(candidate);\n break;\n }\n }\n }\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n onSelect?.(id);\n break;\n default:\n break;\n }\n };\n\n return (\n <ul\n ref={rootRef}\n role=\"tree\"\n className={cx('tree', className)}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {nodes.map((n) => (\n <TreeNode\n key={n.id}\n node={n}\n depth={0}\n expanded={expanded}\n toggle={toggle}\n selectedId={selectedId}\n activeId={effectiveActive}\n onSelect={onSelect}\n onFocusItem={setActiveId}\n />\n ))}\n </ul>\n );\n}\n\ninterface TreeNodeProps {\n node: TreeNodeData;\n depth: number;\n expanded: Set<string>;\n toggle: (id: string) => void;\n selectedId?: string;\n activeId?: string;\n onSelect?: (id: string) => void;\n onFocusItem: (id: string) => void;\n}\n\nfunction TreeNode({\n node,\n depth,\n expanded,\n toggle,\n selectedId,\n activeId,\n onSelect,\n onFocusItem,\n}: TreeNodeProps) {\n const hasChildren = !!(node.children && node.children.length);\n const isOpen = expanded.has(node.id);\n const isSelected = selectedId === node.id;\n const isActive = activeId === node.id;\n return (\n <li role=\"none\" className=\"tree__node\">\n <div\n role=\"treeitem\"\n data-tree-id={node.id}\n data-depth={depth}\n aria-expanded={hasChildren ? isOpen : undefined}\n aria-selected={isSelected}\n tabIndex={isActive ? 0 : -1}\n className={cx('tree__row', isSelected && 'is-selected')}\n style={{ paddingLeft: `calc(var(--space-2) + var(--space-4) * ${depth})` }}\n onClick={() => {\n onFocusItem(node.id);\n onSelect?.(node.id);\n }}\n >\n {hasChildren ? (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden=\"true\"\n className=\"tree__chev\"\n onClick={(e) => { e.stopPropagation(); toggle(node.id); }}\n >\n {isOpen ? <ChevronDown size={14} /> : <ChevronRight size={14} />}\n </button>\n ) : (\n <span className=\"tree__chev tree__chev--placeholder\" aria-hidden=\"true\" />\n )}\n {node.icon && <span className=\"tree__icon\" aria-hidden=\"true\">{node.icon}</span>}\n <span className=\"tree__label\">{node.label}</span>\n {node.meta && <span className=\"tree__meta\">{node.meta}</span>}\n </div>\n {hasChildren && isOpen && (\n <ul role=\"group\" className=\"tree__children\">\n {node.children!.map((c) => (\n <TreeNode\n key={c.id}\n node={c}\n depth={depth + 1}\n expanded={expanded}\n toggle={toggle}\n selectedId={selectedId}\n activeId={activeId}\n onSelect={onSelect}\n onFocusItem={onFocusItem}\n />\n ))}\n </ul>\n )}\n </li>\n );\n}\n\n// ---------- Calendar (vista mes completa, no picker) -------------------\nexport interface CalendarEvent {\n date: Date;\n label: React.ReactNode;\n tone?: StatusTone;\n onClick?: () => void;\n}\n\nexport interface CalendarProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Mes a mostrar. Default: mes actual. */\n month?: Date;\n events?: CalendarEvent[];\n onMonthChange?: (m: Date) => void;\n onDayClick?: (d: Date) => void;\n}\n\nexport function Calendar({ month: monthProp, events = [], onMonthChange, onDayClick, className, ...rest }: CalendarProps) {\n const [internalMonth, setInternalMonth] = React.useState(() => startOfMonth(monthProp ?? new Date()));\n const month = monthProp ? startOfMonth(monthProp) : internalMonth;\n const t = useLocale();\n const weekdays = t['calendar.weekdays'];\n const months = t['calendar.months'];\n const setMonth = (m: Date) => {\n if (!monthProp) setInternalMonth(m);\n onMonthChange?.(m);\n };\n\n const today = new Date();\n\n // primer día visible: lunes anterior al primer día del mes\n const firstDay = startOfMonth(month);\n const firstWeekday = (firstDay.getDay() + 6) % 7; // domingo=0 → 6, lunes=1 → 0\n const gridStart = new Date(firstDay);\n gridStart.setDate(firstDay.getDate() - firstWeekday);\n\n const days: Date[] = Array.from({ length: 42 }, (_, i) => {\n const d = new Date(gridStart);\n d.setDate(gridStart.getDate() + i);\n return d;\n });\n\n const eventsByDay = React.useMemo(() => {\n const m = new Map<string, CalendarEvent[]>();\n for (const ev of events) {\n const key = `${ev.date.getFullYear()}-${ev.date.getMonth()}-${ev.date.getDate()}`;\n const list = m.get(key) ?? [];\n list.push(ev);\n m.set(key, list);\n }\n return m;\n }, [events]);\n\n return (\n <div className={cx('calendar', className)} {...rest}>\n <div className=\"calendar__head\">\n <button type=\"button\" className=\"calendar__nav\" aria-label={t['calendar.prevMonth']} onClick={() => setMonth(addMonths(month, -1))}>\n <ChevronRight size={16} style={{ transform: 'rotate(180deg)' }} />\n </button>\n <div className=\"calendar__title\">{months[month.getMonth()]} {month.getFullYear()}</div>\n <button type=\"button\" className=\"calendar__nav\" aria-label={t['calendar.nextMonth']} onClick={() => setMonth(addMonths(month, 1))}>\n <ChevronRight size={16} />\n </button>\n </div>\n <div className=\"calendar__grid calendar__weekdays\">\n {weekdays.map((w) => <div key={w} className=\"calendar__weekday\">{w}</div>)}\n </div>\n <div className=\"calendar__grid\">\n {days.map((d, i) => {\n const inMonth = d.getMonth() === month.getMonth();\n const isToday = isSameDay(d, today);\n const key = `${d.getFullYear()}-${d.getMonth()}-${d.getDate()}`;\n const dayEvents = eventsByDay.get(key) ?? [];\n return (\n <button\n key={i}\n type=\"button\"\n className={cx('calendar__day', !inMonth && 'is-out', isToday && 'is-today')}\n onClick={() => onDayClick?.(d)}\n >\n <span className=\"calendar__daynum\">{d.getDate()}</span>\n {dayEvents.length > 0 && (\n <div className=\"calendar__events\">\n {dayEvents.slice(0, 2).map((ev, idx) => (\n <span\n key={idx}\n className={cx('calendar__event', `calendar__event--${ev.tone ?? 'neutral'}`)}\n onClick={(e) => { e.stopPropagation(); ev.onClick?.(); }}\n >\n {ev.label}\n </span>\n ))}\n {dayEvents.length > 2 && <span className=\"calendar__more\">+{dayEvents.length - 2}</span>}\n </div>\n )}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/Display3.tsx"],"names":["jsxs","cx","jsx","Avatar","React","Timeline","ChevronDown","ChevronRight","startOfMonth","useLocale","addMonths","isSameDay"],"mappings":"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","file":"chunk-ZMRN4DMC.js","sourcesContent":["'use client';\nimport * as React from 'react';\nimport { cx } from '../utils/cx';\nimport { Avatar } from './Display2';\nimport { ChevronRight, ChevronDown } from './Icons';\nimport { useLocale } from '../locale/LocaleProvider';\nimport { startOfMonth, addMonths, isSameDay } from '../utils/dateFormat';\n\n// ---------- UserCell ----------------------------------------------------\nexport interface UserCellProps extends React.HTMLAttributes<HTMLDivElement> {\n name: React.ReactNode;\n meta?: React.ReactNode; // role / email / etc.\n avatarSrc?: string;\n avatarAlt?: string;\n size?: 24 | 32 | 40 | 48;\n}\n\nexport function UserCell({ name, meta, avatarSrc, avatarAlt, size = 32, className, ...rest }: UserCellProps) {\n const initialsName = typeof name === 'string' ? name : undefined;\n return (\n <div className={cx('user-cell', className)} {...rest}>\n <Avatar src={avatarSrc} alt={avatarAlt} name={initialsName} size={size} />\n <div className=\"user-cell__body\">\n <div className=\"user-cell__name\">{name}</div>\n {meta && <div className=\"user-cell__meta\">{meta}</div>}\n </div>\n </div>\n );\n}\n\n// ---------- StatusIndicator (pulsing dot) ------------------------------\nexport type StatusTone = 'success' | 'warning' | 'danger' | 'info' | 'neutral';\n\nexport interface StatusIndicatorProps extends React.HTMLAttributes<HTMLSpanElement> {\n tone?: StatusTone;\n pulse?: boolean;\n label?: React.ReactNode;\n}\n\nexport function StatusIndicator({ tone = 'success', pulse, label, className, ...rest }: StatusIndicatorProps) {\n return (\n <span className={cx('status-indicator', className)} role=\"status\" {...rest}>\n <span className={cx('status-indicator__dot', `status-indicator__dot--${tone}`, pulse && 'is-pulsing')} aria-hidden=\"true\" />\n {label && <span className=\"status-indicator__label\">{label}</span>}\n </span>\n );\n}\n\n// ---------- Timeline ----------------------------------------------------\nexport interface TimelineProps extends React.HTMLAttributes<HTMLOListElement> {}\n\nexport const Timeline = React.forwardRef<HTMLOListElement, TimelineProps>(\n function Timeline({ className, ...rest }, ref) {\n return <ol ref={ref} className={cx('timeline', className)} {...rest} />;\n }\n);\n\nexport interface TimelineItemProps extends Omit<React.LiHTMLAttributes<HTMLLIElement>, 'title'> {\n icon?: React.ReactNode;\n tone?: StatusTone;\n title: React.ReactNode;\n meta?: React.ReactNode;\n}\n\nexport function TimelineItem({ icon, tone = 'neutral', title, meta, children, className, ...rest }: TimelineItemProps) {\n return (\n <li className={cx('timeline__item', className)} {...rest}>\n <span className={cx('timeline__marker', `timeline__marker--${tone}`)} aria-hidden=\"true\">\n {icon}\n </span>\n <div className=\"timeline__body\">\n <div className=\"timeline__title\">{title}</div>\n {meta && <div className=\"timeline__meta\">{meta}</div>}\n {children && <div className=\"timeline__content\">{children}</div>}\n </div>\n </li>\n );\n}\n\n// ---------- Tree --------------------------------------------------------\nexport interface TreeNodeData {\n id: string;\n label: React.ReactNode;\n icon?: React.ReactNode;\n children?: TreeNodeData[];\n meta?: React.ReactNode;\n}\n\nexport interface TreeProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onSelect'> {\n nodes: TreeNodeData[];\n defaultExpanded?: string[];\n selectedId?: string;\n onSelect?: (id: string) => void;\n}\n\nfunction firstNodeId(nodes: TreeNodeData[]): string | undefined {\n return nodes[0]?.id;\n}\n\nexport function Tree({\n nodes,\n defaultExpanded = [],\n selectedId,\n onSelect,\n className,\n onKeyDown,\n ...rest\n}: TreeProps) {\n const [expanded, setExpanded] = React.useState<Set<string>>(new Set(defaultExpanded));\n const [activeId, setActiveId] = React.useState<string | undefined>(undefined);\n const rootRef = React.useRef<HTMLUListElement>(null);\n\n // Roving tabindex: one treeitem is tabbable at a time. Falls back to the\n // selected node, then the first node, so the tree is reachable on first Tab.\n const effectiveActive = activeId ?? selectedId ?? firstNodeId(nodes);\n\n const toggle = React.useCallback((id: string) => {\n setExpanded((curr) => {\n const next = new Set(curr);\n if (next.has(id)) next.delete(id);\n else next.add(id);\n return next;\n });\n }, []);\n\n const visibleItems = (): HTMLElement[] =>\n Array.from(rootRef.current?.querySelectorAll<HTMLElement>('[role=\"treeitem\"]') ?? []);\n\n const focusItem = (el: HTMLElement | undefined): void => {\n if (!el) return;\n setActiveId(el.dataset.treeId);\n el.focus();\n };\n\n // WAI-ARIA TreeView keyboard model. Focus lives on the treeitem element;\n // querySelectorAll returns items in DOM order, which equals visual order\n // (collapsed branches are not rendered, so they are not navigable).\n const handleKeyDown = (e: React.KeyboardEvent<HTMLUListElement>): void => {\n onKeyDown?.(e);\n const targetEl = (e.target as HTMLElement).closest<HTMLElement>('[role=\"treeitem\"]');\n if (!targetEl || !rootRef.current?.contains(targetEl)) return;\n const list = visibleItems();\n const idx = list.indexOf(targetEl);\n if (idx === -1) return;\n const id = targetEl.dataset.treeId;\n if (!id) return;\n const depth = Number(targetEl.dataset.depth ?? 0);\n const expandedAttr = targetEl.getAttribute('aria-expanded');\n const hasChildren = expandedAttr !== null;\n const isOpen = expandedAttr === 'true';\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n focusItem(list[Math.min(idx + 1, list.length - 1)]);\n break;\n case 'ArrowUp':\n e.preventDefault();\n focusItem(list[Math.max(idx - 1, 0)]);\n break;\n case 'Home':\n e.preventDefault();\n focusItem(list[0]);\n break;\n case 'End':\n e.preventDefault();\n focusItem(list[list.length - 1]);\n break;\n case 'ArrowRight':\n e.preventDefault();\n if (hasChildren && !isOpen) toggle(id);\n else if (hasChildren && isOpen) focusItem(list[idx + 1]);\n break;\n case 'ArrowLeft':\n e.preventDefault();\n if (hasChildren && isOpen) {\n toggle(id);\n } else {\n for (let i = idx - 1; i >= 0; i--) {\n const candidate = list[i];\n if (candidate && Number(candidate.dataset.depth ?? 0) < depth) {\n focusItem(candidate);\n break;\n }\n }\n }\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n onSelect?.(id);\n break;\n default:\n break;\n }\n };\n\n return (\n <ul\n ref={rootRef}\n role=\"tree\"\n className={cx('tree', className)}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {nodes.map((n) => (\n <TreeNode\n key={n.id}\n node={n}\n depth={0}\n expanded={expanded}\n toggle={toggle}\n selectedId={selectedId}\n activeId={effectiveActive}\n onSelect={onSelect}\n onFocusItem={setActiveId}\n />\n ))}\n </ul>\n );\n}\n\ninterface TreeNodeProps {\n node: TreeNodeData;\n depth: number;\n expanded: Set<string>;\n toggle: (id: string) => void;\n selectedId?: string;\n activeId?: string;\n onSelect?: (id: string) => void;\n onFocusItem: (id: string) => void;\n}\n\nfunction TreeNode({\n node,\n depth,\n expanded,\n toggle,\n selectedId,\n activeId,\n onSelect,\n onFocusItem,\n}: TreeNodeProps) {\n const hasChildren = !!(node.children && node.children.length);\n const isOpen = expanded.has(node.id);\n const isSelected = selectedId === node.id;\n const isActive = activeId === node.id;\n return (\n <li role=\"none\" className=\"tree__node\">\n <div\n role=\"treeitem\"\n data-tree-id={node.id}\n data-depth={depth}\n aria-expanded={hasChildren ? isOpen : undefined}\n aria-selected={isSelected}\n tabIndex={isActive ? 0 : -1}\n className={cx('tree__row', isSelected && 'is-selected')}\n style={{ paddingLeft: `calc(var(--space-2) + var(--space-4) * ${depth})` }}\n onClick={() => {\n onFocusItem(node.id);\n onSelect?.(node.id);\n }}\n >\n {hasChildren ? (\n <button\n type=\"button\"\n tabIndex={-1}\n aria-hidden=\"true\"\n className=\"tree__chev\"\n onClick={(e) => { e.stopPropagation(); toggle(node.id); }}\n >\n {isOpen ? <ChevronDown size={14} /> : <ChevronRight size={14} />}\n </button>\n ) : (\n <span className=\"tree__chev tree__chev--placeholder\" aria-hidden=\"true\" />\n )}\n {node.icon && <span className=\"tree__icon\" aria-hidden=\"true\">{node.icon}</span>}\n <span className=\"tree__label\">{node.label}</span>\n {node.meta && <span className=\"tree__meta\">{node.meta}</span>}\n </div>\n {hasChildren && isOpen && (\n <ul role=\"group\" className=\"tree__children\">\n {node.children!.map((c) => (\n <TreeNode\n key={c.id}\n node={c}\n depth={depth + 1}\n expanded={expanded}\n toggle={toggle}\n selectedId={selectedId}\n activeId={activeId}\n onSelect={onSelect}\n onFocusItem={onFocusItem}\n />\n ))}\n </ul>\n )}\n </li>\n );\n}\n\n// ---------- Calendar (vista mes completa, no picker) -------------------\nexport interface CalendarEvent {\n date: Date;\n label: React.ReactNode;\n tone?: StatusTone;\n onClick?: () => void;\n}\n\nexport interface CalendarProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Mes a mostrar. Default: mes actual. */\n month?: Date;\n events?: CalendarEvent[];\n onMonthChange?: (m: Date) => void;\n onDayClick?: (d: Date) => void;\n}\n\nexport function Calendar({ month: monthProp, events = [], onMonthChange, onDayClick, className, ...rest }: CalendarProps) {\n const [internalMonth, setInternalMonth] = React.useState(() => startOfMonth(monthProp ?? new Date()));\n const month = monthProp ? startOfMonth(monthProp) : internalMonth;\n const t = useLocale();\n const weekdays = t['calendar.weekdays'];\n const months = t['calendar.months'];\n const setMonth = (m: Date) => {\n if (!monthProp) setInternalMonth(m);\n onMonthChange?.(m);\n };\n\n const today = new Date();\n\n // primer día visible: lunes anterior al primer día del mes\n const firstDay = startOfMonth(month);\n const firstWeekday = (firstDay.getDay() + 6) % 7; // domingo=0 → 6, lunes=1 → 0\n const gridStart = new Date(firstDay);\n gridStart.setDate(firstDay.getDate() - firstWeekday);\n\n const days: Date[] = Array.from({ length: 42 }, (_, i) => {\n const d = new Date(gridStart);\n d.setDate(gridStart.getDate() + i);\n return d;\n });\n\n const eventsByDay = React.useMemo(() => {\n const m = new Map<string, CalendarEvent[]>();\n for (const ev of events) {\n const key = `${ev.date.getFullYear()}-${ev.date.getMonth()}-${ev.date.getDate()}`;\n const list = m.get(key) ?? [];\n list.push(ev);\n m.set(key, list);\n }\n return m;\n }, [events]);\n\n return (\n <div className={cx('calendar', className)} {...rest}>\n <div className=\"calendar__head\">\n <button type=\"button\" className=\"calendar__nav\" aria-label={t['calendar.prevMonth']} onClick={() => setMonth(addMonths(month, -1))}>\n <ChevronRight size={16} style={{ transform: 'rotate(180deg)' }} />\n </button>\n <div className=\"calendar__title\">{months[month.getMonth()]} {month.getFullYear()}</div>\n <button type=\"button\" className=\"calendar__nav\" aria-label={t['calendar.nextMonth']} onClick={() => setMonth(addMonths(month, 1))}>\n <ChevronRight size={16} />\n </button>\n </div>\n <div className=\"calendar__grid calendar__weekdays\">\n {weekdays.map((w) => <div key={w} className=\"calendar__weekday\">{w}</div>)}\n </div>\n <div className=\"calendar__grid\">\n {days.map((d, i) => {\n const inMonth = d.getMonth() === month.getMonth();\n const isToday = isSameDay(d, today);\n const key = `${d.getFullYear()}-${d.getMonth()}-${d.getDate()}`;\n const dayEvents = eventsByDay.get(key) ?? [];\n return (\n <button\n key={i}\n type=\"button\"\n className={cx('calendar__day', !inMonth && 'is-out', isToday && 'is-today')}\n onClick={() => onDayClick?.(d)}\n >\n <span className=\"calendar__daynum\">{d.getDate()}</span>\n {dayEvents.length > 0 && (\n <div className=\"calendar__events\">\n {dayEvents.slice(0, 2).map((ev, idx) => (\n <span\n key={idx}\n className={cx('calendar__event', `calendar__event--${ev.tone ?? 'neutral'}`)}\n onClick={(e) => { e.stopPropagation(); ev.onClick?.(); }}\n >\n {ev.label}\n </span>\n ))}\n {dayEvents.length > 2 && <span className=\"calendar__more\">+{dayEvents.length - 2}</span>}\n </div>\n )}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n"]}
@@ -1,14 +1,14 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunk4TUK7DGZ_js = require('../chunk-4TUK7DGZ.js');
5
- require('../chunk-6TYPG7MA.js');
4
+ var chunkD7RM4AY4_js = require('../chunk-D7RM4AY4.js');
5
+ require('../chunk-DFQLWCIC.js');
6
6
  require('../chunk-HHEYTMBY.js');
7
7
  require('../chunk-XMLBKK7X.js');
8
- require('../chunk-SW3ACUKK.js');
8
+ require('../chunk-7I5LFBQR.js');
9
9
  require('../chunk-WAGWB35Q.js');
10
10
  require('../chunk-3PXYCXDW.js');
11
- require('../chunk-CBHWPIHM.js');
11
+ require('../chunk-4VMQLSHV.js');
12
12
  require('../chunk-RQOTH7I7.js');
13
13
  require('../chunk-PASF6T4H.js');
14
14
 
@@ -16,19 +16,19 @@ require('../chunk-PASF6T4H.js');
16
16
 
17
17
  Object.defineProperty(exports, "CommandPalette", {
18
18
  enumerable: true,
19
- get: function () { return chunk4TUK7DGZ_js.CommandPalette; }
19
+ get: function () { return chunkD7RM4AY4_js.CommandPalette; }
20
20
  });
21
21
  Object.defineProperty(exports, "DateRangePicker", {
22
22
  enumerable: true,
23
- get: function () { return chunk4TUK7DGZ_js.DateRangePicker; }
23
+ get: function () { return chunkD7RM4AY4_js.DateRangePicker; }
24
24
  });
25
25
  Object.defineProperty(exports, "MultiCombobox", {
26
26
  enumerable: true,
27
- get: function () { return chunk4TUK7DGZ_js.MultiCombobox; }
27
+ get: function () { return chunkD7RM4AY4_js.MultiCombobox; }
28
28
  });
29
29
  Object.defineProperty(exports, "useCommandPalette", {
30
30
  enumerable: true,
31
- get: function () { return chunk4TUK7DGZ_js.useCommandPalette; }
31
+ get: function () { return chunkD7RM4AY4_js.useCommandPalette; }
32
32
  });
33
33
  //# sourceMappingURL=AdvancedPickers.js.map
34
34
  //# sourceMappingURL=AdvancedPickers.js.map
@@ -1,12 +1,12 @@
1
1
  'use client';
2
- export { CommandPalette, DateRangePicker, MultiCombobox, useCommandPalette } from '../chunk-NY467B35.mjs';
3
- import '../chunk-IUL73666.mjs';
2
+ export { CommandPalette, DateRangePicker, MultiCombobox, useCommandPalette } from '../chunk-DY3DCHWD.mjs';
3
+ import '../chunk-Q4HKSXUE.mjs';
4
4
  import '../chunk-N5D6AC6M.mjs';
5
5
  import '../chunk-6P2TKRTL.mjs';
6
- import '../chunk-GD7MI7OT.mjs';
6
+ import '../chunk-PRML6VEF.mjs';
7
7
  import '../chunk-FKBQYQQD.mjs';
8
8
  import '../chunk-5GEWIK4T.mjs';
9
- import '../chunk-Q4BKGBTV.mjs';
9
+ import '../chunk-PQV7HHCJ.mjs';
10
10
  import '../chunk-CIBJKJV3.mjs';
11
11
  import '../chunk-IEPCH3JB.mjs';
12
12
  //# sourceMappingURL=AdvancedPickers.mjs.map
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunk6JA4KQU2_js = require('../chunk-6JA4KQU2.js');
5
- require('../chunk-CBHWPIHM.js');
4
+ var chunkQLYPHMPH_js = require('../chunk-QLYPHMPH.js');
5
+ require('../chunk-4VMQLSHV.js');
6
6
  require('../chunk-RQOTH7I7.js');
7
7
  require('../chunk-PASF6T4H.js');
8
8
 
@@ -10,11 +10,11 @@ require('../chunk-PASF6T4H.js');
10
10
 
11
11
  Object.defineProperty(exports, "AppShell", {
12
12
  enumerable: true,
13
- get: function () { return chunk6JA4KQU2_js.AppShell; }
13
+ get: function () { return chunkQLYPHMPH_js.AppShell; }
14
14
  });
15
15
  Object.defineProperty(exports, "PageHeader", {
16
16
  enumerable: true,
17
- get: function () { return chunk6JA4KQU2_js.PageHeader; }
17
+ get: function () { return chunkQLYPHMPH_js.PageHeader; }
18
18
  });
19
19
  //# sourceMappingURL=AppShell.js.map
20
20
  //# sourceMappingURL=AppShell.js.map
@@ -1,6 +1,6 @@
1
1
  'use client';
2
- export { AppShell, PageHeader } from '../chunk-B4AIJWH5.mjs';
3
- import '../chunk-Q4BKGBTV.mjs';
2
+ export { AppShell, PageHeader } from '../chunk-HUEO23A2.mjs';
3
+ import '../chunk-PQV7HHCJ.mjs';
4
4
  import '../chunk-CIBJKJV3.mjs';
5
5
  import '../chunk-IEPCH3JB.mjs';
6
6
  //# sourceMappingURL=AppShell.mjs.map
@@ -1,13 +1,13 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkLZ4RGZJM_js = require('../chunk-LZ4RGZJM.js');
5
- require('../chunk-QEDJJAKV.js');
6
- require('../chunk-6TYPG7MA.js');
4
+ var chunkIKGW7HHG_js = require('../chunk-IKGW7HHG.js');
5
+ require('../chunk-56NJXIH7.js');
6
+ require('../chunk-DFQLWCIC.js');
7
7
  require('../chunk-XMLBKK7X.js');
8
- require('../chunk-SW3ACUKK.js');
8
+ require('../chunk-7I5LFBQR.js');
9
9
  require('../chunk-WAGWB35Q.js');
10
- require('../chunk-CBHWPIHM.js');
10
+ require('../chunk-4VMQLSHV.js');
11
11
  require('../chunk-RQOTH7I7.js');
12
12
  require('../chunk-PASF6T4H.js');
13
13
 
@@ -15,15 +15,15 @@ require('../chunk-PASF6T4H.js');
15
15
 
16
16
  Object.defineProperty(exports, "AttachmentList", {
17
17
  enumerable: true,
18
- get: function () { return chunkLZ4RGZJM_js.AttachmentList; }
18
+ get: function () { return chunkIKGW7HHG_js.AttachmentList; }
19
19
  });
20
20
  Object.defineProperty(exports, "CommentThread", {
21
21
  enumerable: true,
22
- get: function () { return chunkLZ4RGZJM_js.CommentThread; }
22
+ get: function () { return chunkIKGW7HHG_js.CommentThread; }
23
23
  });
24
24
  Object.defineProperty(exports, "_internal", {
25
25
  enumerable: true,
26
- get: function () { return chunkLZ4RGZJM_js._internal; }
26
+ get: function () { return chunkIKGW7HHG_js._internal; }
27
27
  });
28
28
  //# sourceMappingURL=Comments.js.map
29
29
  //# sourceMappingURL=Comments.js.map
@@ -1,11 +1,11 @@
1
1
  'use client';
2
- export { AttachmentList, CommentThread, _internal } from '../chunk-3EFZU6GX.mjs';
3
- import '../chunk-CFAX3HUT.mjs';
4
- import '../chunk-IUL73666.mjs';
2
+ export { AttachmentList, CommentThread, _internal } from '../chunk-HRDLEOYO.mjs';
3
+ import '../chunk-OJNEGJ3P.mjs';
4
+ import '../chunk-Q4HKSXUE.mjs';
5
5
  import '../chunk-6P2TKRTL.mjs';
6
- import '../chunk-GD7MI7OT.mjs';
6
+ import '../chunk-PRML6VEF.mjs';
7
7
  import '../chunk-FKBQYQQD.mjs';
8
- import '../chunk-Q4BKGBTV.mjs';
8
+ import '../chunk-PQV7HHCJ.mjs';
9
9
  import '../chunk-CIBJKJV3.mjs';
10
10
  import '../chunk-IEPCH3JB.mjs';
11
11
  //# sourceMappingURL=Comments.mjs.map
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkVXKEX7T2_js = require('../chunk-VXKEX7T2.js');
5
- require('../chunk-AYQ7FM6O.js');
4
+ var chunkFGNHN34U_js = require('../chunk-FGNHN34U.js');
5
+ require('../chunk-BSAHYKPF.js');
6
6
  require('../chunk-FL4ZCWUF.js');
7
- require('../chunk-6TYPG7MA.js');
7
+ require('../chunk-DFQLWCIC.js');
8
8
  require('../chunk-3PXYCXDW.js');
9
- require('../chunk-CBHWPIHM.js');
9
+ require('../chunk-4VMQLSHV.js');
10
10
  require('../chunk-RQOTH7I7.js');
11
11
  require('../chunk-PASF6T4H.js');
12
12
 
@@ -14,47 +14,47 @@ require('../chunk-PASF6T4H.js');
14
14
 
15
15
  Object.defineProperty(exports, "AddressForm", {
16
16
  enumerable: true,
17
- get: function () { return chunkVXKEX7T2_js.AddressForm; }
17
+ get: function () { return chunkFGNHN34U_js.AddressForm; }
18
18
  });
19
19
  Object.defineProperty(exports, "CartDrawer", {
20
20
  enumerable: true,
21
- get: function () { return chunkVXKEX7T2_js.CartDrawer; }
21
+ get: function () { return chunkFGNHN34U_js.CartDrawer; }
22
22
  });
23
23
  Object.defineProperty(exports, "CompareTable", {
24
24
  enumerable: true,
25
- get: function () { return chunkVXKEX7T2_js.CompareTable; }
25
+ get: function () { return chunkFGNHN34U_js.CompareTable; }
26
26
  });
27
27
  Object.defineProperty(exports, "FreeShippingProgress", {
28
28
  enumerable: true,
29
- get: function () { return chunkVXKEX7T2_js.FreeShippingProgress; }
29
+ get: function () { return chunkFGNHN34U_js.FreeShippingProgress; }
30
30
  });
31
31
  Object.defineProperty(exports, "OrderSummary", {
32
32
  enumerable: true,
33
- get: function () { return chunkVXKEX7T2_js.OrderSummary; }
33
+ get: function () { return chunkFGNHN34U_js.OrderSummary; }
34
34
  });
35
35
  Object.defineProperty(exports, "PriceDisplay", {
36
36
  enumerable: true,
37
- get: function () { return chunkVXKEX7T2_js.PriceDisplay; }
37
+ get: function () { return chunkFGNHN34U_js.PriceDisplay; }
38
38
  });
39
39
  Object.defineProperty(exports, "PromoCodeInput", {
40
40
  enumerable: true,
41
- get: function () { return chunkVXKEX7T2_js.PromoCodeInput; }
41
+ get: function () { return chunkFGNHN34U_js.PromoCodeInput; }
42
42
  });
43
43
  Object.defineProperty(exports, "QuantitySelector", {
44
44
  enumerable: true,
45
- get: function () { return chunkVXKEX7T2_js.QuantitySelector; }
45
+ get: function () { return chunkFGNHN34U_js.QuantitySelector; }
46
46
  });
47
47
  Object.defineProperty(exports, "Rating", {
48
48
  enumerable: true,
49
- get: function () { return chunkVXKEX7T2_js.Rating; }
49
+ get: function () { return chunkFGNHN34U_js.Rating; }
50
50
  });
51
51
  Object.defineProperty(exports, "VariantSelector", {
52
52
  enumerable: true,
53
- get: function () { return chunkVXKEX7T2_js.VariantSelector; }
53
+ get: function () { return chunkFGNHN34U_js.VariantSelector; }
54
54
  });
55
55
  Object.defineProperty(exports, "WishlistButton", {
56
56
  enumerable: true,
57
- get: function () { return chunkVXKEX7T2_js.WishlistButton; }
57
+ get: function () { return chunkFGNHN34U_js.WishlistButton; }
58
58
  });
59
59
  //# sourceMappingURL=Commerce.js.map
60
60
  //# sourceMappingURL=Commerce.js.map
@@ -1,10 +1,10 @@
1
1
  'use client';
2
- export { AddressForm, CartDrawer, CompareTable, FreeShippingProgress, OrderSummary, PriceDisplay, PromoCodeInput, QuantitySelector, Rating, VariantSelector, WishlistButton } from '../chunk-RJMMD7CG.mjs';
3
- import '../chunk-7AD35TKY.mjs';
2
+ export { AddressForm, CartDrawer, CompareTable, FreeShippingProgress, OrderSummary, PriceDisplay, PromoCodeInput, QuantitySelector, Rating, VariantSelector, WishlistButton } from '../chunk-XLLARFVP.mjs';
3
+ import '../chunk-JUSOPJZW.mjs';
4
4
  import '../chunk-U3JH4T3A.mjs';
5
- import '../chunk-IUL73666.mjs';
5
+ import '../chunk-Q4HKSXUE.mjs';
6
6
  import '../chunk-5GEWIK4T.mjs';
7
- import '../chunk-Q4BKGBTV.mjs';
7
+ import '../chunk-PQV7HHCJ.mjs';
8
8
  import '../chunk-CIBJKJV3.mjs';
9
9
  import '../chunk-IEPCH3JB.mjs';
10
10
  //# sourceMappingURL=Commerce.mjs.map
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkAJ32TAHG_js = require('../chunk-AJ32TAHG.js');
4
+ var chunkGKSUYHGO_js = require('../chunk-GKSUYHGO.js');
5
5
  require('../chunk-XMLBKK7X.js');
6
- require('../chunk-SW3ACUKK.js');
6
+ require('../chunk-7I5LFBQR.js');
7
7
  require('../chunk-WAGWB35Q.js');
8
8
  require('../chunk-PASF6T4H.js');
9
9
 
@@ -11,7 +11,7 @@ require('../chunk-PASF6T4H.js');
11
11
 
12
12
  Object.defineProperty(exports, "ContextMenu", {
13
13
  enumerable: true,
14
- get: function () { return chunkAJ32TAHG_js.ContextMenu; }
14
+ get: function () { return chunkGKSUYHGO_js.ContextMenu; }
15
15
  });
16
16
  //# sourceMappingURL=ContextMenu.js.map
17
17
  //# sourceMappingURL=ContextMenu.js.map
@@ -1,7 +1,7 @@
1
1
  'use client';
2
- export { ContextMenu } from '../chunk-6EGXSTPR.mjs';
2
+ export { ContextMenu } from '../chunk-EJ263Y5X.mjs';
3
3
  import '../chunk-6P2TKRTL.mjs';
4
- import '../chunk-GD7MI7OT.mjs';
4
+ import '../chunk-PRML6VEF.mjs';
5
5
  import '../chunk-FKBQYQQD.mjs';
6
6
  import '../chunk-IEPCH3JB.mjs';
7
7
  //# sourceMappingURL=ContextMenu.mjs.map
@@ -72,6 +72,41 @@ interface DataTableProps<T> {
72
72
  * when the key isn't human-readable (e.g. a UUID).
73
73
  */
74
74
  rowLabel?: (row: T) => string;
75
+ /**
76
+ * Body density. Default `'compact'` (v1.10.0): a readable-dense register
77
+ * (~30px rows, `--text-xs`, single-line cells) — the right default for
78
+ * the data-heavy screens this kit serves ("default = product"). Pass
79
+ * `'comfortable'` to opt back into the pre-1.10.0 airy 14px/16px rows
80
+ * (which wrap to two lines).
81
+ */
82
+ density?: 'comfortable' | 'compact';
83
+ /**
84
+ * Makes every row a navigable link. The kit renders a real, keyboard-
85
+ * operable, screen-reader-labelled `<a>` stretched over the row — valid
86
+ * table markup (no `role` hacks, no `asChild` on `<tr>`, never an
87
+ * onClick-only div). One Tab stop per row; Enter activates; the focus
88
+ * ring shows on the row. Additive; combinable with `onRowClick`.
89
+ */
90
+ rowHref?: (row: T) => string;
91
+ /**
92
+ * Makes every row activate a callback (pointer **and** keyboard).
93
+ * Renders a real stretched `<button>` with the same a11y guarantees as
94
+ * `rowHref`. Prefer `rowHref` when the action is navigation.
95
+ */
96
+ onRowClick?: (row: T) => void;
97
+ /**
98
+ * Full-control escape hatch — the render-prop polymorphism the kit uses
99
+ * for data/array-driven components (cf. `AppShell.linkAs`; deliberately
100
+ * NOT `asChild`, which would emit invalid markup on `<tr>`). Receives the
101
+ * row, the kit-rendered `cells`, and the row key; return your own row
102
+ * element (e.g. a framework `<Link>` wrapping a `<tr>`). When set,
103
+ * `rowHref`/`onRowClick` are ignored (you own row interactivity & a11y).
104
+ */
105
+ renderRow?: (args: {
106
+ row: T;
107
+ cells: React.ReactNode;
108
+ rowKey: string;
109
+ }) => React.ReactNode;
75
110
  className?: string;
76
111
  }
77
112
  /**
@@ -85,7 +120,7 @@ interface DataTableProps<T> {
85
120
  * - No virtualization; tested up to ~200 rows. For large datasets, plug
86
121
  * in react-window/tanstack-virtual around the body rows.
87
122
  */
88
- declare function DataTable<T>({ columns, rows, rowKey, sort, onSortChange, selectable, selectedKeys, onSelectionChange, empty, error, loading, stickyHeader, mobileLayout, ariaLabel, rowLabel, className, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
123
+ declare function DataTable<T>({ columns, rows, rowKey, sort, onSortChange, selectable, selectedKeys, onSelectionChange, empty, error, loading, stickyHeader, mobileLayout, ariaLabel, rowLabel, className, density, rowHref, onRowClick, renderRow, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
89
124
  interface AccordionProps {
90
125
  multiple?: boolean;
91
126
  defaultOpen?: string[];
@@ -72,6 +72,41 @@ interface DataTableProps<T> {
72
72
  * when the key isn't human-readable (e.g. a UUID).
73
73
  */
74
74
  rowLabel?: (row: T) => string;
75
+ /**
76
+ * Body density. Default `'compact'` (v1.10.0): a readable-dense register
77
+ * (~30px rows, `--text-xs`, single-line cells) — the right default for
78
+ * the data-heavy screens this kit serves ("default = product"). Pass
79
+ * `'comfortable'` to opt back into the pre-1.10.0 airy 14px/16px rows
80
+ * (which wrap to two lines).
81
+ */
82
+ density?: 'comfortable' | 'compact';
83
+ /**
84
+ * Makes every row a navigable link. The kit renders a real, keyboard-
85
+ * operable, screen-reader-labelled `<a>` stretched over the row — valid
86
+ * table markup (no `role` hacks, no `asChild` on `<tr>`, never an
87
+ * onClick-only div). One Tab stop per row; Enter activates; the focus
88
+ * ring shows on the row. Additive; combinable with `onRowClick`.
89
+ */
90
+ rowHref?: (row: T) => string;
91
+ /**
92
+ * Makes every row activate a callback (pointer **and** keyboard).
93
+ * Renders a real stretched `<button>` with the same a11y guarantees as
94
+ * `rowHref`. Prefer `rowHref` when the action is navigation.
95
+ */
96
+ onRowClick?: (row: T) => void;
97
+ /**
98
+ * Full-control escape hatch — the render-prop polymorphism the kit uses
99
+ * for data/array-driven components (cf. `AppShell.linkAs`; deliberately
100
+ * NOT `asChild`, which would emit invalid markup on `<tr>`). Receives the
101
+ * row, the kit-rendered `cells`, and the row key; return your own row
102
+ * element (e.g. a framework `<Link>` wrapping a `<tr>`). When set,
103
+ * `rowHref`/`onRowClick` are ignored (you own row interactivity & a11y).
104
+ */
105
+ renderRow?: (args: {
106
+ row: T;
107
+ cells: React.ReactNode;
108
+ rowKey: string;
109
+ }) => React.ReactNode;
75
110
  className?: string;
76
111
  }
77
112
  /**
@@ -85,7 +120,7 @@ interface DataTableProps<T> {
85
120
  * - No virtualization; tested up to ~200 rows. For large datasets, plug
86
121
  * in react-window/tanstack-virtual around the body rows.
87
122
  */
88
- declare function DataTable<T>({ columns, rows, rowKey, sort, onSortChange, selectable, selectedKeys, onSelectionChange, empty, error, loading, stickyHeader, mobileLayout, ariaLabel, rowLabel, className, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
123
+ declare function DataTable<T>({ columns, rows, rowKey, sort, onSortChange, selectable, selectedKeys, onSelectionChange, empty, error, loading, stickyHeader, mobileLayout, ariaLabel, rowLabel, className, density, rowHref, onRowClick, renderRow, }: DataTableProps<T>): react_jsx_runtime.JSX.Element;
89
124
  interface AccordionProps {
90
125
  multiple?: boolean;
91
126
  defaultOpen?: string[];
@@ -1,11 +1,11 @@
1
1
  'use client';
2
2
  'use strict';
3
3
 
4
- var chunkBESBMV7N_js = require('../chunk-BESBMV7N.js');
4
+ var chunkDIDQCPXU_js = require('../chunk-DIDQCPXU.js');
5
5
  require('../chunk-HYUINOPJ.js');
6
- require('../chunk-X7O37QLL.js');
7
- require('../chunk-6TYPG7MA.js');
8
- require('../chunk-CBHWPIHM.js');
6
+ require('../chunk-KTWHW6UV.js');
7
+ require('../chunk-DFQLWCIC.js');
8
+ require('../chunk-4VMQLSHV.js');
9
9
  require('../chunk-RQOTH7I7.js');
10
10
  require('../chunk-PASF6T4H.js');
11
11
 
@@ -13,27 +13,27 @@ require('../chunk-PASF6T4H.js');
13
13
 
14
14
  Object.defineProperty(exports, "Accordion", {
15
15
  enumerable: true,
16
- get: function () { return chunkBESBMV7N_js.Accordion; }
16
+ get: function () { return chunkDIDQCPXU_js.Accordion; }
17
17
  });
18
18
  Object.defineProperty(exports, "AccordionItem", {
19
19
  enumerable: true,
20
- get: function () { return chunkBESBMV7N_js.AccordionItem; }
20
+ get: function () { return chunkDIDQCPXU_js.AccordionItem; }
21
21
  });
22
22
  Object.defineProperty(exports, "Breadcrumbs", {
23
23
  enumerable: true,
24
- get: function () { return chunkBESBMV7N_js.Breadcrumbs; }
24
+ get: function () { return chunkDIDQCPXU_js.Breadcrumbs; }
25
25
  });
26
26
  Object.defineProperty(exports, "DataTable", {
27
27
  enumerable: true,
28
- get: function () { return chunkBESBMV7N_js.DataTable; }
28
+ get: function () { return chunkDIDQCPXU_js.DataTable; }
29
29
  });
30
30
  Object.defineProperty(exports, "TablePagination", {
31
31
  enumerable: true,
32
- get: function () { return chunkBESBMV7N_js.TablePagination; }
32
+ get: function () { return chunkDIDQCPXU_js.TablePagination; }
33
33
  });
34
34
  Object.defineProperty(exports, "TableToolbar", {
35
35
  enumerable: true,
36
- get: function () { return chunkBESBMV7N_js.TableToolbar; }
36
+ get: function () { return chunkDIDQCPXU_js.TableToolbar; }
37
37
  });
38
38
  //# sourceMappingURL=DataTable.js.map
39
39
  //# sourceMappingURL=DataTable.js.map
@@ -1,9 +1,9 @@
1
1
  'use client';
2
- export { Accordion, AccordionItem, Breadcrumbs, DataTable, TablePagination, TableToolbar } from '../chunk-PDLQUQK7.mjs';
2
+ export { Accordion, AccordionItem, Breadcrumbs, DataTable, TablePagination, TableToolbar } from '../chunk-WDDSHKU2.mjs';
3
3
  import '../chunk-GVYZAOWU.mjs';
4
- import '../chunk-PWAIOLZH.mjs';
5
- import '../chunk-IUL73666.mjs';
6
- import '../chunk-Q4BKGBTV.mjs';
4
+ import '../chunk-ETG3VM56.mjs';
5
+ import '../chunk-Q4HKSXUE.mjs';
6
+ import '../chunk-PQV7HHCJ.mjs';
7
7
  import '../chunk-CIBJKJV3.mjs';
8
8
  import '../chunk-IEPCH3JB.mjs';
9
9
  //# sourceMappingURL=DataTable.mjs.map
@@ -21,8 +21,14 @@ type BadgeVariant = 'primary' | 'accent' | 'success' | 'warning' | 'danger' | 'i
21
21
  interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
22
22
  variant?: Extensible<BadgeVariant>;
23
23
  dot?: boolean;
24
+ /**
25
+ * Pulsing status dot. Lets ONE component cover a "status" column
26
+ * (previously you had to mix `StatusIndicator` + `Badge`, which read
27
+ * inconsistently). Implies a dot. Respects `prefers-reduced-motion`.
28
+ */
29
+ pulse?: boolean;
24
30
  }
25
- declare function Badge({ variant, dot, className, children, ...rest }: BadgeProps): react_jsx_runtime.JSX.Element;
31
+ declare function Badge({ variant, dot, pulse, className, children, ...rest }: BadgeProps): react_jsx_runtime.JSX.Element;
26
32
  type AlertVariant = 'info' | 'success' | 'warning' | 'danger';
27
33
  interface AlertProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
28
34
  variant?: Extensible<AlertVariant>;
@@ -21,8 +21,14 @@ type BadgeVariant = 'primary' | 'accent' | 'success' | 'warning' | 'danger' | 'i
21
21
  interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
22
22
  variant?: Extensible<BadgeVariant>;
23
23
  dot?: boolean;
24
+ /**
25
+ * Pulsing status dot. Lets ONE component cover a "status" column
26
+ * (previously you had to mix `StatusIndicator` + `Badge`, which read
27
+ * inconsistently). Implies a dot. Respects `prefers-reduced-motion`.
28
+ */
29
+ pulse?: boolean;
24
30
  }
25
- declare function Badge({ variant, dot, className, children, ...rest }: BadgeProps): react_jsx_runtime.JSX.Element;
31
+ declare function Badge({ variant, dot, pulse, className, children, ...rest }: BadgeProps): react_jsx_runtime.JSX.Element;
26
32
  type AlertVariant = 'info' | 'success' | 'warning' | 'danger';
27
33
  interface AlertProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {
28
34
  variant?: Extensible<AlertVariant>;