eidos-ui 4.1.1 → 4.2.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 (126) hide show
  1. package/dist/chip/index.cjs +2 -2
  2. package/dist/chip/index.js +1 -1
  3. package/dist/{chunk-SONL2RCW.js → chunk-2LSQGDRH.js} +5 -5
  4. package/dist/{chunk-SOS4K7VC.js → chunk-45XFUEYG.js} +2 -2
  5. package/dist/{chunk-AWPJH3UB.js → chunk-4MURW4H3.js} +2 -2
  6. package/dist/{chunk-2WDL2ZVP.js → chunk-5TRO6CYR.js} +10 -4
  7. package/dist/chunk-5TRO6CYR.js.map +1 -0
  8. package/dist/{chunk-SJPCBRKR.cjs → chunk-5YTPZN6X.cjs} +3 -3
  9. package/dist/{chunk-SJPCBRKR.cjs.map → chunk-5YTPZN6X.cjs.map} +1 -1
  10. package/dist/{chunk-FSX7DDLO.js → chunk-A7K53LDB.js} +19 -11
  11. package/dist/chunk-A7K53LDB.js.map +1 -0
  12. package/dist/{chunk-D2PXPX56.js → chunk-AMVA62UC.js} +4 -4
  13. package/dist/{chunk-43DJ3GGR.js → chunk-CEVMMYJ5.js} +2 -2
  14. package/dist/{chunk-DCUIT7SI.js → chunk-CIDHX2EW.js} +2 -2
  15. package/dist/{chunk-MKQVDEHI.cjs → chunk-CPRNLW4M.cjs} +13 -16
  16. package/dist/chunk-CPRNLW4M.cjs.map +1 -0
  17. package/dist/{chunk-6JYXGRJ3.cjs → chunk-EAUTJAKV.cjs} +3 -3
  18. package/dist/{chunk-6JYXGRJ3.cjs.map → chunk-EAUTJAKV.cjs.map} +1 -1
  19. package/dist/{chunk-OERK3T7E.js → chunk-ECP5J27K.js} +13 -16
  20. package/dist/chunk-ECP5J27K.js.map +1 -0
  21. package/dist/{chunk-5HRVHEHE.cjs → chunk-EJS22Y4B.cjs} +3 -3
  22. package/dist/{chunk-5HRVHEHE.cjs.map → chunk-EJS22Y4B.cjs.map} +1 -1
  23. package/dist/{chunk-HKLLKNRQ.cjs → chunk-EM4WYYFN.cjs} +3 -3
  24. package/dist/{chunk-HKLLKNRQ.cjs.map → chunk-EM4WYYFN.cjs.map} +1 -1
  25. package/dist/{chunk-Z3OEYDNI.js → chunk-EUQQG5WH.js} +2 -2
  26. package/dist/{chunk-FFYPSLQV.js → chunk-F2FGZFWF.js} +8 -8
  27. package/dist/{chunk-FAGQGGT3.js → chunk-GVLQQGI3.js} +2 -2
  28. package/dist/{chunk-YHSCUPP6.cjs → chunk-J2GJGXGH.cjs} +23 -15
  29. package/dist/chunk-J2GJGXGH.cjs.map +1 -0
  30. package/dist/{chunk-LXRNFQEI.js → chunk-JJJXVJUW.js} +3 -3
  31. package/dist/{chunk-UTOTOWPS.js → chunk-LPSRS5GI.js} +3 -3
  32. package/dist/{chunk-3QBMSZSE.cjs → chunk-NLTNIQG7.cjs} +3 -3
  33. package/dist/{chunk-3QBMSZSE.cjs.map → chunk-NLTNIQG7.cjs.map} +1 -1
  34. package/dist/{chunk-MUMTPMWD.cjs → chunk-NNNMXVHI.cjs} +3 -3
  35. package/dist/{chunk-MUMTPMWD.cjs.map → chunk-NNNMXVHI.cjs.map} +1 -1
  36. package/dist/{chunk-57BVERWD.js → chunk-NODLZFCN.js} +3 -3
  37. package/dist/{chunk-DHOBGYRD.js → chunk-NQ2IY4A2.js} +3 -3
  38. package/dist/{chunk-SJKD3WCV.cjs → chunk-S3IZPWYP.cjs} +5 -5
  39. package/dist/{chunk-SJKD3WCV.cjs.map → chunk-S3IZPWYP.cjs.map} +1 -1
  40. package/dist/{chunk-GRKC4PIX.cjs → chunk-SHGRJX7B.cjs} +3 -3
  41. package/dist/{chunk-GRKC4PIX.cjs.map → chunk-SHGRJX7B.cjs.map} +1 -1
  42. package/dist/{chunk-VGMRIXW4.cjs → chunk-STVAB7FD.cjs} +25 -25
  43. package/dist/{chunk-VGMRIXW4.cjs.map → chunk-STVAB7FD.cjs.map} +1 -1
  44. package/dist/{chunk-BPVOQLCA.cjs → chunk-TFCOF5FC.cjs} +2 -2
  45. package/dist/chunk-TFCOF5FC.cjs.map +1 -0
  46. package/dist/{chunk-IJW6YCJB.cjs → chunk-TTFZKWPH.cjs} +5 -5
  47. package/dist/{chunk-IJW6YCJB.cjs.map → chunk-TTFZKWPH.cjs.map} +1 -1
  48. package/dist/{chunk-7VMF6LIC.cjs → chunk-TUNG4IDW.cjs} +9 -9
  49. package/dist/{chunk-7VMF6LIC.cjs.map → chunk-TUNG4IDW.cjs.map} +1 -1
  50. package/dist/{chunk-JO4NDJRA.cjs → chunk-U4B6C7OP.cjs} +6 -6
  51. package/dist/{chunk-JO4NDJRA.cjs.map → chunk-U4B6C7OP.cjs.map} +1 -1
  52. package/dist/{chunk-ADB7QRX5.cjs → chunk-U4MV7P4A.cjs} +5 -5
  53. package/dist/{chunk-ADB7QRX5.cjs.map → chunk-U4MV7P4A.cjs.map} +1 -1
  54. package/dist/{chunk-IBT535UH.js → chunk-UAAQVIZQ.js} +2 -2
  55. package/dist/chunk-UAAQVIZQ.js.map +1 -0
  56. package/dist/{chunk-VPN7AR7T.cjs → chunk-USGEUG2O.cjs} +4 -4
  57. package/dist/{chunk-VPN7AR7T.cjs.map → chunk-USGEUG2O.cjs.map} +1 -1
  58. package/dist/{chunk-TOLNPD7S.js → chunk-VA23PQTA.js} +2 -2
  59. package/dist/{chunk-BKUZF7CW.cjs → chunk-VY7DTPO3.cjs} +21 -15
  60. package/dist/chunk-VY7DTPO3.cjs.map +1 -0
  61. package/dist/{chunk-K6VEUJLY.cjs → chunk-YEBWP7FD.cjs} +18 -18
  62. package/dist/{chunk-K6VEUJLY.cjs.map → chunk-YEBWP7FD.cjs.map} +1 -1
  63. package/dist/{chunk-YYA5SWXD.js → chunk-ZBK4KYKJ.js} +2 -2
  64. package/dist/color-picker/index.cjs +3 -3
  65. package/dist/color-picker/index.js +2 -2
  66. package/dist/combobox/index.cjs +3 -3
  67. package/dist/combobox/index.js +2 -2
  68. package/dist/context-menu/index.cjs +4 -4
  69. package/dist/context-menu/index.js +3 -3
  70. package/dist/conversation/index.cjs +5 -5
  71. package/dist/conversation/index.js +4 -4
  72. package/dist/data-grid/index.cjs +10 -10
  73. package/dist/data-grid/index.js +9 -9
  74. package/dist/date-picker/index.cjs +4 -4
  75. package/dist/date-picker/index.js +3 -3
  76. package/dist/dropdown/index.cjs +2 -2
  77. package/dist/dropdown/index.d.cts +10 -0
  78. package/dist/dropdown/index.d.ts +10 -0
  79. package/dist/dropdown/index.js +1 -1
  80. package/dist/index.cjs +20 -20
  81. package/dist/index.css +1 -1
  82. package/dist/index.js +19 -19
  83. package/dist/menu/index.cjs +3 -3
  84. package/dist/menu/index.js +2 -2
  85. package/dist/page-layout/index.cjs +5 -5
  86. package/dist/page-layout/index.js +4 -4
  87. package/dist/pagination/index.cjs +4 -4
  88. package/dist/pagination/index.js +3 -3
  89. package/dist/select/index.cjs +3 -3
  90. package/dist/select/index.js +2 -2
  91. package/dist/split-button/index.cjs +4 -4
  92. package/dist/split-button/index.js +3 -3
  93. package/dist/split-chip/index.cjs +3 -3
  94. package/dist/split-chip/index.js +2 -2
  95. package/dist/table/index.cjs +9 -9
  96. package/dist/table/index.js +8 -8
  97. package/dist/tag-input/index.cjs +4 -4
  98. package/dist/tag-input/index.js +3 -3
  99. package/dist/theme-editor/index.cjs +5 -5
  100. package/dist/theme-editor/index.js +4 -4
  101. package/dist/toolbar/index.cjs +4 -4
  102. package/dist/toolbar/index.js +3 -3
  103. package/package.json +1 -1
  104. package/dist/chunk-2WDL2ZVP.js.map +0 -1
  105. package/dist/chunk-BKUZF7CW.cjs.map +0 -1
  106. package/dist/chunk-BPVOQLCA.cjs.map +0 -1
  107. package/dist/chunk-FSX7DDLO.js.map +0 -1
  108. package/dist/chunk-IBT535UH.js.map +0 -1
  109. package/dist/chunk-MKQVDEHI.cjs.map +0 -1
  110. package/dist/chunk-OERK3T7E.js.map +0 -1
  111. package/dist/chunk-YHSCUPP6.cjs.map +0 -1
  112. /package/dist/{chunk-SONL2RCW.js.map → chunk-2LSQGDRH.js.map} +0 -0
  113. /package/dist/{chunk-SOS4K7VC.js.map → chunk-45XFUEYG.js.map} +0 -0
  114. /package/dist/{chunk-AWPJH3UB.js.map → chunk-4MURW4H3.js.map} +0 -0
  115. /package/dist/{chunk-D2PXPX56.js.map → chunk-AMVA62UC.js.map} +0 -0
  116. /package/dist/{chunk-43DJ3GGR.js.map → chunk-CEVMMYJ5.js.map} +0 -0
  117. /package/dist/{chunk-DCUIT7SI.js.map → chunk-CIDHX2EW.js.map} +0 -0
  118. /package/dist/{chunk-Z3OEYDNI.js.map → chunk-EUQQG5WH.js.map} +0 -0
  119. /package/dist/{chunk-FFYPSLQV.js.map → chunk-F2FGZFWF.js.map} +0 -0
  120. /package/dist/{chunk-FAGQGGT3.js.map → chunk-GVLQQGI3.js.map} +0 -0
  121. /package/dist/{chunk-LXRNFQEI.js.map → chunk-JJJXVJUW.js.map} +0 -0
  122. /package/dist/{chunk-UTOTOWPS.js.map → chunk-LPSRS5GI.js.map} +0 -0
  123. /package/dist/{chunk-57BVERWD.js.map → chunk-NODLZFCN.js.map} +0 -0
  124. /package/dist/{chunk-DHOBGYRD.js.map → chunk-NQ2IY4A2.js.map} +0 -0
  125. /package/dist/{chunk-TOLNPD7S.js.map → chunk-VA23PQTA.js.map} +0 -0
  126. /package/dist/{chunk-YYA5SWXD.js.map → chunk-ZBK4KYKJ.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/eidos-ui/eidos-ui/dist/chunk-GRKC4PIX.cjs","../src/components/PageLayout/useScrollRestoration.ts","../src/components/PageLayout/PageLayout.component.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/eidos-ui/eidos-ui/dist/chunk-GRKC4PIX.cjs","sourcesContent":[null,"import { useCallback, useEffect, useLayoutEffect, useRef } from 'react';\n\n/**\n * Remembers the content region's scroll offset per key, and applies the\n * stored offset whenever the key changes.\n *\n * The key is supplied by the consumer rather than derived here, because only\n * they know what counts as a navigation - this library has no router opinion.\n * That also decides the semantics, exactly as React Router's `getKey` does:\n * a per-path key gives \"this path always reopens where you left it\", while a\n * per-history-entry key gives the browser's own behaviour, where Back\n * restores but a fresh link to the same URL starts at the top.\n *\n * Returns a ref callback for the scroll container, which also forwards the\n * node to the caller's own `contentRef`.\n */\nexport const useScrollRestoration = (\n key: string | number | undefined,\n forwardTo: React.Ref<HTMLElement> | undefined,\n): ((node: HTMLElement | null) => void) => {\n const node = useRef<HTMLElement | null>(null);\n const offsets = useRef(new Map<string | number, number>());\n const appliedKey = useRef(key);\n\n // Held in a ref so the ref callback below can keep a stable identity. A\n // callback ref that changes identity is invoked with `null` and then the\n // node again on every render that changes it, which would detach and\n // reattach the caller's ref for no reason.\n const forwarded = useRef(forwardTo);\n useEffect(() => {\n forwarded.current = forwardTo;\n }, [forwardTo]);\n\n // Recorded as it happens rather than when the key changes: by the time a\n // navigation commits, the new page's content is already in the DOM and the\n // browser has clamped `scrollTop` to the new, possibly shorter, height. The\n // outgoing offset is no longer readable at that point.\n //\n // **The key is read from a ref, and the listener is registered once per\n // node.** Both halves matter. A listener re-subscribed per key closes over\n // the key it was created with, and restoring the incoming page's offset sets\n // `scrollTop`, which makes the browser dispatch a `scroll` event - so the\n // two race:\n //\n // 1. the layout effect below sets `scrollTop` for the incoming key\n // 2. passive effects swap the listener from the outgoing key to it\n // 3. the browser dispatches the scroll event from step 1\n //\n // React flushes passive effects through the scheduler and the browser\n // dispatches `scroll` at its own rendering opportunity, so nothing orders 2\n // before 3. When 3 won, the still-attached *outgoing* listener recorded the\n // incoming page's offset under the outgoing page's key - overwriting a real\n // offset with 0 and losing the position it exists to keep. It passed locally\n // and failed in CI, which is what a race of this shape looks like.\n //\n // Reading `appliedKey` instead means whichever order those steps take, the\n // offset is filed under the key that is actually on screen: the layout effect\n // updates the ref before it touches `scrollTop`.\n //\n // **Attached in the ref callback, not in an effect.** It used to be a\n // passive `useEffect`, which React runs some time *after* the commit - so a\n // scroll landing in between was never recorded, and returning to that page\n // restored 0. Storybook's production build starts a play function inside\n // that window (the dev server happens not to), which is how\n // `RestoresScrollPerKey` passed locally and failed on Chromatic, every time.\n // A ref callback runs during the commit itself, so the listener exists from\n // the moment the element does - and a swapped element is detached from and\n // re-attached to rather than silently left unobserved.\n const record = useCallback((event: Event) => {\n const current = appliedKey.current;\n const element = event.currentTarget as HTMLElement;\n if (current !== undefined) offsets.current.set(current, element.scrollTop);\n }, []);\n\n const setNode = useCallback(\n (element: HTMLElement | null) => {\n node.current?.removeEventListener('scroll', record);\n node.current = element;\n element?.addEventListener('scroll', record, { passive: true });\n\n const ref = forwarded.current;\n if (typeof ref === 'function') ref(element);\n else if (ref) (ref as React.RefObject<HTMLElement | null>).current = element;\n },\n [record],\n );\n\n // Layout effect so the offset is applied before paint - in a passive effect\n // the new page is visible at the previous page's offset for a frame first.\n // It does not run on the server, which is correct here: there is no scroll\n // position to restore in static markup, and the client applies it on mount.\n useLayoutEffect(() => {\n const element = node.current;\n if (!element || key === undefined || appliedKey.current === key) return;\n\n appliedKey.current = key;\n element.scrollTop = offsets.current.get(key) ?? 0;\n }, [key]);\n\n return setNode;\n};\n","import React from 'react';\nimport type { PageLayoutProps } from './PageLayout.types';\nimport './PageLayout.scss';\nimport { Toolbar } from '../Toolbar';\nimport { Header } from '../Header';\nimport { Footer } from '../Footer';\nimport type { FooterProps } from '../Footer';\nimport { Navigation } from '../Navigation';\nimport { useScrollRestoration } from './useScrollRestoration';\n\nconst defaultFooter: FooterProps = { copyright: `© ${new Date().getFullYear()} Eidos UI` };\n\nexport const PageLayout: React.FC<PageLayoutProps> = ({\n toolbar,\n navigation,\n header,\n footer,\n children,\n className = '',\n // Destructured so they cannot fall into `...rest` and land on the root\n // element, which is not the scroll container.\n contentRef,\n scrollRestorationKey,\n ...rest\n}) => {\n const classes = ['eidos-pagelayout', className].filter(Boolean).join(' ');\n const setContentRef = useScrollRestoration(scrollRestorationKey, contentRef);\n\n return (\n <div className={classes} {...rest}>\n {/* Spread rather than forwarded field by field, so a prop added to\n `Toolbar` reaches `PageLayout` consumers without a second edit\n here - the previous per-field list silently dropped anything it\n didn't know about. `className` is merged last so the layout's own\n grid-area class can't be overwritten by the caller's. */}\n <Toolbar\n {...toolbar}\n className={['eidos-pagelayout__toolbar', toolbar?.className].filter(Boolean).join(' ')}\n />\n <div className=\"eidos-pagelayout__navigation\">\n {navigation && <Navigation {...navigation} />}\n </div>\n {/* A scrollable region containing nothing focusable cannot be scrolled\n by keyboard at all, and a page body is often pure content - a\n report, an article. `tabIndex={0}` makes the region itself focusable\n so arrow keys and Page Up/Down reach it (SC 2.1.1), matching\n `VirtualList` and `Chat`. */}\n <main ref={setContentRef} tabIndex={0} className=\"eidos-pagelayout__content\">\n {header && (\n <Header\n {...header}\n className={['eidos-pagelayout__header', header.className].filter(Boolean).join(' ')}\n />\n )}\n <div className=\"eidos-pagelayout__body\">{children}</div>\n <Footer\n {...(footer ?? defaultFooter)}\n className={['eidos-pagelayout__footer', footer?.className].filter(Boolean).join(' ')}\n />\n </main>\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["/home/runner/work/eidos-ui/eidos-ui/dist/chunk-SHGRJX7B.cjs","../src/components/PageLayout/useScrollRestoration.ts","../src/components/PageLayout/PageLayout.component.tsx"],"names":[],"mappings":"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","file":"/home/runner/work/eidos-ui/eidos-ui/dist/chunk-SHGRJX7B.cjs","sourcesContent":[null,"import { useCallback, useEffect, useLayoutEffect, useRef } from 'react';\n\n/**\n * Remembers the content region's scroll offset per key, and applies the\n * stored offset whenever the key changes.\n *\n * The key is supplied by the consumer rather than derived here, because only\n * they know what counts as a navigation - this library has no router opinion.\n * That also decides the semantics, exactly as React Router's `getKey` does:\n * a per-path key gives \"this path always reopens where you left it\", while a\n * per-history-entry key gives the browser's own behaviour, where Back\n * restores but a fresh link to the same URL starts at the top.\n *\n * Returns a ref callback for the scroll container, which also forwards the\n * node to the caller's own `contentRef`.\n */\nexport const useScrollRestoration = (\n key: string | number | undefined,\n forwardTo: React.Ref<HTMLElement> | undefined,\n): ((node: HTMLElement | null) => void) => {\n const node = useRef<HTMLElement | null>(null);\n const offsets = useRef(new Map<string | number, number>());\n const appliedKey = useRef(key);\n\n // Held in a ref so the ref callback below can keep a stable identity. A\n // callback ref that changes identity is invoked with `null` and then the\n // node again on every render that changes it, which would detach and\n // reattach the caller's ref for no reason.\n const forwarded = useRef(forwardTo);\n useEffect(() => {\n forwarded.current = forwardTo;\n }, [forwardTo]);\n\n // Recorded as it happens rather than when the key changes: by the time a\n // navigation commits, the new page's content is already in the DOM and the\n // browser has clamped `scrollTop` to the new, possibly shorter, height. The\n // outgoing offset is no longer readable at that point.\n //\n // **The key is read from a ref, and the listener is registered once per\n // node.** Both halves matter. A listener re-subscribed per key closes over\n // the key it was created with, and restoring the incoming page's offset sets\n // `scrollTop`, which makes the browser dispatch a `scroll` event - so the\n // two race:\n //\n // 1. the layout effect below sets `scrollTop` for the incoming key\n // 2. passive effects swap the listener from the outgoing key to it\n // 3. the browser dispatches the scroll event from step 1\n //\n // React flushes passive effects through the scheduler and the browser\n // dispatches `scroll` at its own rendering opportunity, so nothing orders 2\n // before 3. When 3 won, the still-attached *outgoing* listener recorded the\n // incoming page's offset under the outgoing page's key - overwriting a real\n // offset with 0 and losing the position it exists to keep. It passed locally\n // and failed in CI, which is what a race of this shape looks like.\n //\n // Reading `appliedKey` instead means whichever order those steps take, the\n // offset is filed under the key that is actually on screen: the layout effect\n // updates the ref before it touches `scrollTop`.\n //\n // **Attached in the ref callback, not in an effect.** It used to be a\n // passive `useEffect`, which React runs some time *after* the commit - so a\n // scroll landing in between was never recorded, and returning to that page\n // restored 0. Storybook's production build starts a play function inside\n // that window (the dev server happens not to), which is how\n // `RestoresScrollPerKey` passed locally and failed on Chromatic, every time.\n // A ref callback runs during the commit itself, so the listener exists from\n // the moment the element does - and a swapped element is detached from and\n // re-attached to rather than silently left unobserved.\n const record = useCallback((event: Event) => {\n const current = appliedKey.current;\n const element = event.currentTarget as HTMLElement;\n if (current !== undefined) offsets.current.set(current, element.scrollTop);\n }, []);\n\n const setNode = useCallback(\n (element: HTMLElement | null) => {\n node.current?.removeEventListener('scroll', record);\n node.current = element;\n element?.addEventListener('scroll', record, { passive: true });\n\n const ref = forwarded.current;\n if (typeof ref === 'function') ref(element);\n else if (ref) (ref as React.RefObject<HTMLElement | null>).current = element;\n },\n [record],\n );\n\n // Layout effect so the offset is applied before paint - in a passive effect\n // the new page is visible at the previous page's offset for a frame first.\n // It does not run on the server, which is correct here: there is no scroll\n // position to restore in static markup, and the client applies it on mount.\n useLayoutEffect(() => {\n const element = node.current;\n if (!element || key === undefined || appliedKey.current === key) return;\n\n appliedKey.current = key;\n element.scrollTop = offsets.current.get(key) ?? 0;\n }, [key]);\n\n return setNode;\n};\n","import React from 'react';\nimport type { PageLayoutProps } from './PageLayout.types';\nimport './PageLayout.scss';\nimport { Toolbar } from '../Toolbar';\nimport { Header } from '../Header';\nimport { Footer } from '../Footer';\nimport type { FooterProps } from '../Footer';\nimport { Navigation } from '../Navigation';\nimport { useScrollRestoration } from './useScrollRestoration';\n\nconst defaultFooter: FooterProps = { copyright: `© ${new Date().getFullYear()} Eidos UI` };\n\nexport const PageLayout: React.FC<PageLayoutProps> = ({\n toolbar,\n navigation,\n header,\n footer,\n children,\n className = '',\n // Destructured so they cannot fall into `...rest` and land on the root\n // element, which is not the scroll container.\n contentRef,\n scrollRestorationKey,\n ...rest\n}) => {\n const classes = ['eidos-pagelayout', className].filter(Boolean).join(' ');\n const setContentRef = useScrollRestoration(scrollRestorationKey, contentRef);\n\n return (\n <div className={classes} {...rest}>\n {/* Spread rather than forwarded field by field, so a prop added to\n `Toolbar` reaches `PageLayout` consumers without a second edit\n here - the previous per-field list silently dropped anything it\n didn't know about. `className` is merged last so the layout's own\n grid-area class can't be overwritten by the caller's. */}\n <Toolbar\n {...toolbar}\n className={['eidos-pagelayout__toolbar', toolbar?.className].filter(Boolean).join(' ')}\n />\n <div className=\"eidos-pagelayout__navigation\">\n {navigation && <Navigation {...navigation} />}\n </div>\n {/* A scrollable region containing nothing focusable cannot be scrolled\n by keyboard at all, and a page body is often pure content - a\n report, an article. `tabIndex={0}` makes the region itself focusable\n so arrow keys and Page Up/Down reach it (SC 2.1.1), matching\n `VirtualList` and `Chat`. */}\n <main ref={setContentRef} tabIndex={0} className=\"eidos-pagelayout__content\">\n {header && (\n <Header\n {...header}\n className={['eidos-pagelayout__header', header.className].filter(Boolean).join(' ')}\n />\n )}\n <div className=\"eidos-pagelayout__body\">{children}</div>\n <Footer\n {...(footer ?? defaultFooter)}\n className={['eidos-pagelayout__footer', footer?.className].filter(Boolean).join(' ')}\n />\n </main>\n </div>\n );\n};\n"]}
@@ -11,25 +11,25 @@
11
11
 
12
12
 
13
13
 
14
- var _chunk7VMF6LICcjs = require('./chunk-7VMF6LIC.cjs');
14
+ var _chunkTUNG4IDWcjs = require('./chunk-TUNG4IDW.cjs');
15
15
 
16
16
 
17
17
  var _chunkE7BFBU6Kcjs = require('./chunk-E7BFBU6K.cjs');
18
18
 
19
19
 
20
- var _chunkSJKD3WCVcjs = require('./chunk-SJKD3WCV.cjs');
20
+ var _chunkS3IZPWYPcjs = require('./chunk-S3IZPWYP.cjs');
21
21
 
22
22
 
23
- var _chunk6JYXGRJ3cjs = require('./chunk-6JYXGRJ3.cjs');
23
+ var _chunkEAUTJAKVcjs = require('./chunk-EAUTJAKV.cjs');
24
24
 
25
25
 
26
- var _chunkBKUZF7CWcjs = require('./chunk-BKUZF7CW.cjs');
26
+ var _chunkVY7DTPO3cjs = require('./chunk-VY7DTPO3.cjs');
27
27
 
28
28
 
29
29
  var _chunkYJNQLH2Lcjs = require('./chunk-YJNQLH2L.cjs');
30
30
 
31
31
 
32
- var _chunkHKLLKNRQcjs = require('./chunk-HKLLKNRQ.cjs');
32
+ var _chunkEM4WYYFNcjs = require('./chunk-EM4WYYFN.cjs');
33
33
 
34
34
 
35
35
  var _chunkKF2OGUADcjs = require('./chunk-KF2OGUAD.cjs');
@@ -41,10 +41,10 @@ var _chunkTROYIUDHcjs = require('./chunk-TROYIUDH.cjs');
41
41
  var _chunkKV3V2CPHcjs = require('./chunk-KV3V2CPH.cjs');
42
42
 
43
43
 
44
- var _chunkVPN7AR7Tcjs = require('./chunk-VPN7AR7T.cjs');
44
+ var _chunkUSGEUG2Ocjs = require('./chunk-USGEUG2O.cjs');
45
45
 
46
46
 
47
- var _chunkMKQVDEHIcjs = require('./chunk-MKQVDEHI.cjs');
47
+ var _chunkCPRNLW4Mcjs = require('./chunk-CPRNLW4M.cjs');
48
48
 
49
49
 
50
50
  var _chunkNSA7ASZ7cjs = require('./chunk-NSA7ASZ7.cjs');
@@ -91,7 +91,7 @@ function SortableTableRow({
91
91
  className,
92
92
  children
93
93
  }) {
94
- const { attributes, listeners, setNodeRef, transform, transition, isDragging } = _chunk7VMF6LICcjs.useSortable.call(void 0, {
94
+ const { attributes, listeners, setNodeRef, transform, transition, isDragging } = _chunkTUNG4IDWcjs.useSortable.call(void 0, {
95
95
  id,
96
96
  disabled
97
97
  });
@@ -101,7 +101,7 @@ function SortableTableRow({
101
101
  ref: setNodeRef,
102
102
  className: [className, isDragging ? "eidos-datagrid-row--dragging" : ""].filter(Boolean).join(" "),
103
103
  style: {
104
- transform: _chunk7VMF6LICcjs.CSS.Transform.toString(transform),
104
+ transform: _chunkTUNG4IDWcjs.CSS.Transform.toString(transform),
105
105
  transition: _nullishCoalesce(transition, () => ( void 0)),
106
106
  opacity: isDragging ? 0.4 : 1
107
107
  },
@@ -817,9 +817,9 @@ function DataGridInner({
817
817
  },
818
818
  [onPageChange]
819
819
  );
820
- const sensors = _chunk7VMF6LICcjs.useSensors.call(void 0,
821
- _chunk7VMF6LICcjs.useSensor.call(void 0, _chunk7VMF6LICcjs.PointerSensor, { activationConstraint: { distance: 5 } }),
822
- _chunk7VMF6LICcjs.useSensor.call(void 0, _chunk7VMF6LICcjs.KeyboardSensor)
820
+ const sensors = _chunkTUNG4IDWcjs.useSensors.call(void 0,
821
+ _chunkTUNG4IDWcjs.useSensor.call(void 0, _chunkTUNG4IDWcjs.PointerSensor, { activationConstraint: { distance: 5 } }),
822
+ _chunkTUNG4IDWcjs.useSensor.call(void 0, _chunkTUNG4IDWcjs.KeyboardSensor)
823
823
  );
824
824
  const handleRowDragEnd = _react.useCallback.call(void 0,
825
825
  (event) => {
@@ -833,7 +833,7 @@ function DataGridInner({
833
833
  (row, i) => String(_nullishCoalesce(cellOf(row, rowKeyField), () => ( i))) === String(over.id)
834
834
  );
835
835
  if (oldIndex === -1 || newIndex === -1) return;
836
- const newData = _chunk7VMF6LICcjs.arrayMove.call(void 0, localDataRef.current, oldIndex, newIndex);
836
+ const newData = _chunkTUNG4IDWcjs.arrayMove.call(void 0, localDataRef.current, oldIndex, newIndex);
837
837
  setLocalData(newData);
838
838
  _optionalChain([onChange, 'optionalCall', _23 => _23(newData)]);
839
839
  _optionalChain([onRowReorder, 'optionalCall', _24 => _24(newData)]);
@@ -910,7 +910,7 @@ function DataGridInner({
910
910
  label: o.label
911
911
  }));
912
912
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
913
- _chunkBKUZF7CWcjs.Select,
913
+ _chunkVY7DTPO3cjs.Select,
914
914
  {
915
915
  options: selectOptions,
916
916
  value: String(_nullishCoalesce(value, () => ( ""))),
@@ -1006,7 +1006,7 @@ function DataGridInner({
1006
1006
  });
1007
1007
  if (!items.length) return null;
1008
1008
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1009
- _chunkVPN7AR7Tcjs.Menu,
1009
+ _chunkUSGEUG2Ocjs.Menu,
1010
1010
  {
1011
1011
  trigger: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "button", { type: "button", className: "eidos-datagrid-actions-trigger", "aria-label": "Row actions", children: actionsColumn.actionsIcon ? _chunkR5WI5IGRcjs.renderIcon.call(void 0, actionsColumn.actionsIcon, "eidos-datagrid-actions-trigger-icon") : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.MoreVertical, { size: 16 }) }),
1012
1012
  items
@@ -1055,7 +1055,7 @@ function DataGridInner({
1055
1055
  );
1056
1056
  case "combobox":
1057
1057
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1058
- _chunkHKLLKNRQcjs.Combobox,
1058
+ _chunkEM4WYYFNcjs.Combobox,
1059
1059
  {
1060
1060
  size: "sm",
1061
1061
  fullWidth: true,
@@ -1077,7 +1077,7 @@ function DataGridInner({
1077
1077
  case "select":
1078
1078
  default:
1079
1079
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1080
- _chunkBKUZF7CWcjs.Select,
1080
+ _chunkVY7DTPO3cjs.Select,
1081
1081
  {
1082
1082
  fullWidth: true,
1083
1083
  inputProps: { size: "sm", "aria-label": label },
@@ -1185,7 +1185,7 @@ function DataGridInner({
1185
1185
  const isDisabled = typeof action.disabled === "function" ? action.disabled(selectedItems) : _nullishCoalesce(action.disabled, () => ( false));
1186
1186
  if (action.type === "split-button") {
1187
1187
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1188
- _chunkSJKD3WCVcjs.SplitButton,
1188
+ _chunkS3IZPWYPcjs.SplitButton,
1189
1189
  {
1190
1190
  size: "sm",
1191
1191
  variant: _nullishCoalesce(action.variant, () => ( "outlined")),
@@ -1235,7 +1235,7 @@ function DataGridInner({
1235
1235
  ] }),
1236
1236
  /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "eidos-datagrid-toolbar-right", children: [
1237
1237
  showDensity && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1238
- _chunkMKQVDEHIcjs.Dropdown,
1238
+ _chunkCPRNLW4Mcjs.Dropdown,
1239
1239
  {
1240
1240
  placement: "bottom",
1241
1241
  align: "end",
@@ -1263,7 +1263,7 @@ function DataGridInner({
1263
1263
  }
1264
1264
  ),
1265
1265
  showFilters && filterDropdownColumns.length > 0 && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1266
- _chunk7VMF6LICcjs.TableFiltersDropdown,
1266
+ _chunkTUNG4IDWcjs.TableFiltersDropdown,
1267
1267
  {
1268
1268
  columns: filterDropdownColumns,
1269
1269
  filters: dropdownFilters,
@@ -1389,10 +1389,10 @@ function DataGridInner({
1389
1389
  }
1390
1390
  )
1391
1391
  ) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1392
- _chunk7VMF6LICcjs.DndContext,
1392
+ _chunkTUNG4IDWcjs.DndContext,
1393
1393
  {
1394
1394
  sensors,
1395
- collisionDetection: _chunk7VMF6LICcjs.closestCenter,
1395
+ collisionDetection: _chunkTUNG4IDWcjs.closestCenter,
1396
1396
  onDragEnd: handleRowDragEnd,
1397
1397
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "eidos-data-grid-scroll", children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "table", { className: ["eidos-data-grid", densityClass].filter(Boolean).join(" "), children: [
1398
1398
  /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "thead", { ref: theadRef, children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "tr", { children: [
@@ -1499,7 +1499,7 @@ function DataGridInner({
1499
1499
  }
1500
1500
  )
1501
1501
  ] }) }),
1502
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "tbody", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk7VMF6LICcjs.SortableContext, { items: rowIds, strategy: _chunk7VMF6LICcjs.verticalListSortingStrategy, children: displayData.length > 0 ? displayData.map((row, displayIndex) => {
1502
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "tbody", { children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkTUNG4IDWcjs.SortableContext, { items: rowIds, strategy: _chunkTUNG4IDWcjs.verticalListSortingStrategy, children: displayData.length > 0 ? displayData.map((row, displayIndex) => {
1503
1503
  const localIndex = localData.indexOf(row);
1504
1504
  const rowKeyValue = String(_nullishCoalesce(cellOf(row, rowKeyField), () => ( displayIndex)));
1505
1505
  const isRowSelected = selectable && selectedSet.has(rowKeyValue);
@@ -1694,7 +1694,7 @@ function DataGridInner({
1694
1694
  }
1695
1695
  ) }),
1696
1696
  showPagination && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "eidos-datagrid-footer", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1697
- _chunk6JYXGRJ3cjs.Pagination,
1697
+ _chunkEAUTJAKVcjs.Pagination,
1698
1698
  {
1699
1699
  page: currentPage,
1700
1700
  totalPages,
@@ -1725,4 +1725,4 @@ var DataGrid = Object.assign(DataGridInner, { displayName: "DataGrid" });
1725
1725
 
1726
1726
 
1727
1727
  exports.DataGrid = DataGrid;
1728
- //# sourceMappingURL=chunk-VGMRIXW4.cjs.map
1728
+ //# sourceMappingURL=chunk-STVAB7FD.cjs.map