@vaneui/ui 1.3.1 → 1.4.0-alpha.20260820161559.4712039

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 (37) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cjs/components/ui/menu/Menu.cjs +9 -4
  3. package/dist/cjs/components/ui/menu/Menu.cjs.map +1 -1
  4. package/dist/cjs/components/ui/modal/Modal.cjs +14 -11
  5. package/dist/cjs/components/ui/modal/Modal.cjs.map +1 -1
  6. package/dist/cjs/components/ui/overlay/Overlay.cjs +8 -5
  7. package/dist/cjs/components/ui/overlay/Overlay.cjs.map +1 -1
  8. package/dist/cjs/components/ui/popup/Popup.cjs +4 -2
  9. package/dist/cjs/components/ui/popup/Popup.cjs.map +1 -1
  10. package/dist/cjs/components/ui/theme/defaults.cjs +21 -5
  11. package/dist/cjs/components/ui/theme/defaults.cjs.map +1 -1
  12. package/dist/cjs/components/ui/typography/index.cjs +1 -0
  13. package/dist/cjs/components/ui/typography/index.cjs.map +1 -1
  14. package/dist/cjs/components/utils/useHydrated.cjs +13 -0
  15. package/dist/cjs/components/utils/useHydrated.cjs.map +1 -0
  16. package/dist/cjs/index.cjs +22 -16
  17. package/dist/cjs/index.cjs.map +1 -1
  18. package/dist/esm/components/ui/menu/Menu.mjs +10 -5
  19. package/dist/esm/components/ui/menu/Menu.mjs.map +1 -1
  20. package/dist/esm/components/ui/modal/Modal.mjs +14 -11
  21. package/dist/esm/components/ui/modal/Modal.mjs.map +1 -1
  22. package/dist/esm/components/ui/overlay/Overlay.mjs +8 -5
  23. package/dist/esm/components/ui/overlay/Overlay.mjs.map +1 -1
  24. package/dist/esm/components/ui/popup/Popup.mjs +4 -2
  25. package/dist/esm/components/ui/popup/Popup.mjs.map +1 -1
  26. package/dist/esm/components/ui/theme/defaults.mjs +21 -5
  27. package/dist/esm/components/ui/theme/defaults.mjs.map +1 -1
  28. package/dist/esm/components/ui/typography/index.mjs +1 -0
  29. package/dist/esm/components/ui/typography/index.mjs.map +1 -1
  30. package/dist/esm/components/utils/useHydrated.mjs +11 -0
  31. package/dist/esm/components/utils/useHydrated.mjs.map +1 -0
  32. package/dist/esm/index.mjs +14 -8
  33. package/dist/esm/index.mjs.map +1 -1
  34. package/dist/types/components/utils/useHydrated.d.cts +10 -0
  35. package/dist/types/components/utils/useHydrated.d.mts +10 -0
  36. package/dist/types/components/utils/useHydrated.d.ts +10 -0
  37. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.cjs","sources":["../../../../../src/components/ui/theme/defaults.ts"],"sourcesContent":["import type { ThemeDefaults } from '../../themeContext';\n\nimport { buttonDefaults } from '../button/buttonDefaults';\nimport { buttonSpinnerDefaults } from '../button/buttonSpinnerDefaults';\nimport { iconButtonDefaults } from '../iconButton/iconButtonDefaults';\nimport { badgeDefaults } from '../badge/badgeDefaults';\nimport { iconDefaults } from '../icon/iconDefaults';\nimport { chipDefaults } from '../chip/chipDefaults';\nimport { codeDefaults } from '../code/codeDefaults';\nimport { cardDefaults } from '../card/cardDefaults';\nimport { cardHeaderDefaults } from '../card/cardHeaderDefaults';\nimport { cardBodyDefaults } from '../card/cardBodyDefaults';\nimport { cardFooterDefaults } from '../card/cardFooterDefaults';\nimport { dividerDefaults } from '../divider/dividerDefaults';\nimport { containerDefaults } from '../container/containerDefaults';\nimport { rowDefaults } from '../row/rowDefaults';\nimport { colDefaults } from '../col/colDefaults';\nimport { stackDefaults } from '../stack/stackDefaults';\nimport { sectionDefaults } from '../section/sectionDefaults';\nimport { gridDefaults } from '../grid/gridDefaults';\nimport { checkboxInputDefaults } from '../checkbox/checkboxInputDefaults';\nimport { checkboxCheckDefaults } from '../checkbox/checkboxCheckDefaults';\nimport { checkboxWrapperDefaults } from '../checkbox/checkboxWrapperDefaults';\nimport { checkboxIndeterminateDefaults } from '../checkbox/checkboxIndeterminateDefaults';\nimport { labelDefaults } from '../label/labelDefaults';\nimport { fieldDefaults } from '../field/fieldDefaults';\nimport { alertDefaults } from '../alert/alertDefaults';\nimport { spinnerDefaults } from '../spinner/spinnerDefaults';\nimport { tooltipDefaults } from '../tooltip/tooltipDefaults';\nimport { fieldLabelDefaults } from '../field/fieldLabelDefaults';\nimport { fieldDescriptionDefaults } from '../field/fieldDescriptionDefaults';\nimport { fieldErrorDefaults } from '../field/fieldErrorDefaults';\nimport { imgDefaults } from '../img/imgDefaults';\nimport { inputDefaults } from '../input/inputDefaults';\nimport { inputErrorIconDefaults } from '../input/inputErrorIconDefaults';\nimport { inputWrapperDefaults } from '../input/inputWrapperDefaults';\nimport { textareaDefaults } from '../textarea/textareaDefaults';\nimport { selectDefaults } from '../select/selectDefaults';\nimport { selectChevronDefaults } from '../select/selectChevronDefaults';\nimport { selectWrapperDefaults } from '../select/selectWrapperDefaults';\nimport { switchInputDefaults } from '../switch/switchInputDefaults';\nimport { switchThumbDefaults } from '../switch/switchThumbDefaults';\nimport { switchWrapperDefaults } from '../switch/switchWrapperDefaults';\nimport { radioInputDefaults } from '../radio/radioInputDefaults';\nimport { radioDotDefaults } from '../radio/radioDotDefaults';\nimport { radioWrapperDefaults } from '../radio/radioWrapperDefaults';\nimport { radioGroupDefaults } from '../radio/radioGroupDefaults';\nimport { overlayDefaults } from '../overlay/overlayDefaults';\nimport { kbdDefaults } from '../kbd/kbdDefaults';\nimport { markDefaults } from '../mark/markDefaults';\nimport { modalContentDefaults } from '../modal/modalContentDefaults';\nimport { modalOverlayDefaults } from '../modal/modalOverlayDefaults';\nimport { modalHeaderDefaults } from '../modal/modalHeaderDefaults';\nimport { modalBodyDefaults } from '../modal/modalBodyDefaults';\nimport { modalFooterDefaults } from '../modal/modalFooterDefaults';\nimport { modalCloseButtonDefaults } from '../modal/modalCloseButtonDefaults';\nimport { popupDefaults } from '../popup/popupDefaults';\nimport { menuItemDefaults } from '../menu/menuItemDefaults';\nimport { menuPopupDefaults } from '../menu/menuPopupDefaults';\nimport { menuDividerDefaults } from '../divider/menuDividerDefaults';\nimport { menuLabelDefaults } from '../menu/menuLabelDefaults';\nimport { navLinkDefaults } from '../navLink/navLinkDefaults';\nimport { navLinkLabelDefaults } from '../navLink/navLinkLabelDefaults';\nimport { tableDefaults } from '../table/tableDefaults';\nimport { theadDefaults } from '../table/theadDefaults';\nimport { tbodyDefaults } from '../table/tbodyDefaults';\nimport { tfootDefaults } from '../table/tfootDefaults';\nimport { trDefaults } from '../table/trDefaults';\nimport { thDefaults } from '../table/thDefaults';\nimport { tdDefaults } from '../table/tdDefaults';\nimport { captionDefaults } from '../table/captionDefaults';\nimport {\n pageTitleDefaults,\n sectionTitleDefaults,\n titleDefaults,\n textDefaults,\n blockquoteDefaults,\n blockquoteCiteDefaults,\n linkDefaults,\n listItemDefaults,\n listDefaults,\n} from '../typography';\n\nexport const themeDefaults: ThemeDefaults = {\n button: {\n main: buttonDefaults,\n spinner: buttonSpinnerDefaults,\n },\n iconButton: iconButtonDefaults,\n badge: badgeDefaults,\n icon: iconDefaults,\n chip: chipDefaults,\n code: codeDefaults,\n kbd: kbdDefaults,\n mark: markDefaults,\n card: {\n main: cardDefaults,\n header: cardHeaderDefaults,\n body: cardBodyDefaults,\n footer: cardFooterDefaults,\n },\n divider: dividerDefaults,\n container: containerDefaults,\n row: rowDefaults,\n col: colDefaults,\n stack: stackDefaults,\n section: sectionDefaults,\n grid2: gridDefaults,\n grid3: gridDefaults,\n grid4: gridDefaults,\n grid5: gridDefaults,\n grid6: gridDefaults,\n pageTitle: pageTitleDefaults,\n sectionTitle: sectionTitleDefaults,\n title: titleDefaults,\n text: textDefaults,\n blockquote: blockquoteDefaults,\n blockquoteCite: blockquoteCiteDefaults,\n link: linkDefaults,\n listItem: listItemDefaults,\n list: listDefaults,\n checkbox: {\n input: checkboxInputDefaults,\n check: checkboxCheckDefaults,\n indeterminate: checkboxIndeterminateDefaults,\n wrapper: checkboxWrapperDefaults,\n },\n label: labelDefaults,\n field: {\n main: fieldDefaults,\n label: fieldLabelDefaults,\n description: fieldDescriptionDefaults,\n error: fieldErrorDefaults,\n },\n img: imgDefaults,\n input: inputDefaults,\n inputErrorIcon: inputErrorIconDefaults,\n inputWrapper: inputWrapperDefaults,\n textarea: textareaDefaults,\n select: selectDefaults,\n selectChevron: selectChevronDefaults,\n selectWrapper: selectWrapperDefaults,\n switch: {\n input: switchInputDefaults,\n thumb: switchThumbDefaults,\n wrapper: switchWrapperDefaults,\n },\n radio: {\n input: radioInputDefaults,\n dot: radioDotDefaults,\n wrapper: radioWrapperDefaults,\n },\n radioGroup: radioGroupDefaults,\n overlay: overlayDefaults,\n modal: {\n content: modalContentDefaults,\n overlay: modalOverlayDefaults,\n header: modalHeaderDefaults,\n body: modalBodyDefaults,\n footer: modalFooterDefaults,\n closeButton: modalCloseButtonDefaults,\n },\n popup: popupDefaults,\n tooltip: tooltipDefaults,\n alert: alertDefaults,\n spinner: spinnerDefaults,\n menu: {\n item: menuItemDefaults,\n popup: menuPopupDefaults,\n divider: menuDividerDefaults,\n label: menuLabelDefaults,\n },\n navLink: {\n root: navLinkDefaults,\n label: navLinkLabelDefaults,\n },\n table: {\n main: tableDefaults,\n thead: theadDefaults,\n tbody: tbodyDefaults,\n tfoot: tfootDefaults,\n tr: trDefaults,\n th: thDefaults,\n td: tdDefaults,\n caption: captionDefaults,\n },\n};"],"names":["buttonDefaults","buttonSpinnerDefaults","iconButtonDefaults","badgeDefaults","iconDefaults","chipDefaults","codeDefaults","kbdDefaults","markDefaults","cardDefaults","cardHeaderDefaults","cardBodyDefaults","cardFooterDefaults","dividerDefaults","containerDefaults","rowDefaults","colDefaults","stackDefaults","sectionDefaults","gridDefaults","pageTitleDefaults","sectionTitleDefaults","titleDefaults","textDefaults","blockquoteDefaults","blockquoteCiteDefaults","linkDefaults","listItemDefaults","listDefaults","checkboxInputDefaults","checkboxCheckDefaults","checkboxIndeterminateDefaults","checkboxWrapperDefaults","labelDefaults","fieldDefaults","fieldLabelDefaults","fieldDescriptionDefaults","fieldErrorDefaults","imgDefaults","inputDefaults","inputErrorIconDefaults","inputWrapperDefaults","textareaDefaults","selectDefaults","selectChevronDefaults","selectWrapperDefaults","switchInputDefaults","switchThumbDefaults","switchWrapperDefaults","radioInputDefaults","radioDotDefaults","radioWrapperDefaults","radioGroupDefaults","overlayDefaults","modalContentDefaults","modalOverlayDefaults","modalHeaderDefaults","modalBodyDefaults","modalFooterDefaults","modalCloseButtonDefaults","popupDefaults","tooltipDefaults","alertDefaults","spinnerDefaults","menuItemDefaults","menuPopupDefaults","menuDividerDefaults","menuLabelDefaults","navLinkDefaults","navLinkLabelDefaults","tableDefaults","theadDefaults","tbodyDefaults","tfootDefaults","trDefaults","thDefaults","tdDefaults","captionDefaults"],"mappings":"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"}
1
+ {"version":3,"file":"defaults.cjs","sources":["../../../../../src/components/ui/theme/defaults.ts"],"sourcesContent":["import type { ThemeDefaults } from '../../themeContext';\n\nimport { buttonDefaults } from '../button/buttonDefaults';\nimport { buttonSpinnerDefaults } from '../button/buttonSpinnerDefaults';\nimport { iconButtonDefaults } from '../iconButton/iconButtonDefaults';\nimport { badgeDefaults } from '../badge/badgeDefaults';\nimport { iconDefaults } from '../icon/iconDefaults';\nimport { chipDefaults } from '../chip/chipDefaults';\nimport { codeDefaults } from '../code/codeDefaults';\nimport { cardDefaults } from '../card/cardDefaults';\nimport { cardHeaderDefaults } from '../card/cardHeaderDefaults';\nimport { cardBodyDefaults } from '../card/cardBodyDefaults';\nimport { cardFooterDefaults } from '../card/cardFooterDefaults';\nimport { dividerDefaults } from '../divider/dividerDefaults';\nimport { containerDefaults } from '../container/containerDefaults';\nimport { rowDefaults } from '../row/rowDefaults';\nimport { colDefaults } from '../col/colDefaults';\nimport { stackDefaults } from '../stack/stackDefaults';\nimport { sectionDefaults } from '../section/sectionDefaults';\nimport { gridDefaults } from '../grid/gridDefaults';\nimport { checkboxInputDefaults } from '../checkbox/checkboxInputDefaults';\nimport { checkboxCheckDefaults } from '../checkbox/checkboxCheckDefaults';\nimport { checkboxWrapperDefaults } from '../checkbox/checkboxWrapperDefaults';\nimport { checkboxIndeterminateDefaults } from '../checkbox/checkboxIndeterminateDefaults';\nimport { labelDefaults } from '../label/labelDefaults';\nimport { fieldDefaults } from '../field/fieldDefaults';\nimport { alertDefaults } from '../alert/alertDefaults';\nimport { spinnerDefaults } from '../spinner/spinnerDefaults';\nimport { tooltipDefaults } from '../tooltip/tooltipDefaults';\nimport { fieldLabelDefaults } from '../field/fieldLabelDefaults';\nimport { fieldDescriptionDefaults } from '../field/fieldDescriptionDefaults';\nimport { fieldErrorDefaults } from '../field/fieldErrorDefaults';\nimport { imgDefaults } from '../img/imgDefaults';\nimport { inputDefaults } from '../input/inputDefaults';\nimport { inputErrorIconDefaults } from '../input/inputErrorIconDefaults';\nimport { inputWrapperDefaults } from '../input/inputWrapperDefaults';\nimport { textareaDefaults } from '../textarea/textareaDefaults';\nimport { selectDefaults } from '../select/selectDefaults';\nimport { selectChevronDefaults } from '../select/selectChevronDefaults';\nimport { selectWrapperDefaults } from '../select/selectWrapperDefaults';\nimport { switchInputDefaults } from '../switch/switchInputDefaults';\nimport { switchThumbDefaults } from '../switch/switchThumbDefaults';\nimport { switchWrapperDefaults } from '../switch/switchWrapperDefaults';\nimport { radioInputDefaults } from '../radio/radioInputDefaults';\nimport { radioDotDefaults } from '../radio/radioDotDefaults';\nimport { radioWrapperDefaults } from '../radio/radioWrapperDefaults';\nimport { radioGroupDefaults } from '../radio/radioGroupDefaults';\nimport { overlayDefaults } from '../overlay/overlayDefaults';\nimport { kbdDefaults } from '../kbd/kbdDefaults';\nimport { markDefaults } from '../mark/markDefaults';\nimport { modalContentDefaults } from '../modal/modalContentDefaults';\nimport { modalOverlayDefaults } from '../modal/modalOverlayDefaults';\nimport { modalHeaderDefaults } from '../modal/modalHeaderDefaults';\nimport { modalBodyDefaults } from '../modal/modalBodyDefaults';\nimport { modalFooterDefaults } from '../modal/modalFooterDefaults';\nimport { modalCloseButtonDefaults } from '../modal/modalCloseButtonDefaults';\nimport { popupDefaults } from '../popup/popupDefaults';\nimport { menuItemDefaults } from '../menu/menuItemDefaults';\nimport { menuPopupDefaults } from '../menu/menuPopupDefaults';\nimport { menuDividerDefaults } from '../divider/menuDividerDefaults';\nimport { menuLabelDefaults } from '../menu/menuLabelDefaults';\nimport { navLinkDefaults } from '../navLink/navLinkDefaults';\nimport { navLinkLabelDefaults } from '../navLink/navLinkLabelDefaults';\nimport { tableDefaults } from '../table/tableDefaults';\nimport { theadDefaults } from '../table/theadDefaults';\nimport { tbodyDefaults } from '../table/tbodyDefaults';\nimport { tfootDefaults } from '../table/tfootDefaults';\nimport { trDefaults } from '../table/trDefaults';\nimport { thDefaults } from '../table/thDefaults';\nimport { tdDefaults } from '../table/tdDefaults';\nimport { captionDefaults } from '../table/captionDefaults';\nimport {\n pageTitleDefaults,\n sectionTitleDefaults,\n titleDefaults,\n textDefaults,\n blockquoteDefaults,\n blockquoteCiteDefaults,\n linkDefaults,\n listItemDefaults,\n listDefaults,\n} from '../typography';\n\nexport const themeDefaults: ThemeDefaults = {\n button: {\n main: buttonDefaults,\n spinner: buttonSpinnerDefaults,\n },\n iconButton: iconButtonDefaults,\n badge: badgeDefaults,\n icon: iconDefaults,\n chip: chipDefaults,\n code: codeDefaults,\n kbd: kbdDefaults,\n mark: markDefaults,\n card: {\n main: cardDefaults,\n header: cardHeaderDefaults,\n body: cardBodyDefaults,\n footer: cardFooterDefaults,\n },\n divider: dividerDefaults,\n container: containerDefaults,\n row: rowDefaults,\n col: colDefaults,\n stack: stackDefaults,\n section: sectionDefaults,\n grid2: gridDefaults,\n grid3: gridDefaults,\n grid4: gridDefaults,\n grid5: gridDefaults,\n grid6: gridDefaults,\n pageTitle: pageTitleDefaults,\n sectionTitle: sectionTitleDefaults,\n title: titleDefaults,\n text: textDefaults,\n blockquote: blockquoteDefaults,\n blockquoteCite: blockquoteCiteDefaults,\n link: linkDefaults,\n listItem: listItemDefaults,\n list: listDefaults,\n checkbox: {\n input: checkboxInputDefaults,\n check: checkboxCheckDefaults,\n indeterminate: checkboxIndeterminateDefaults,\n wrapper: checkboxWrapperDefaults,\n },\n label: labelDefaults,\n field: {\n main: fieldDefaults,\n label: fieldLabelDefaults,\n description: fieldDescriptionDefaults,\n error: fieldErrorDefaults,\n },\n img: imgDefaults,\n input: inputDefaults,\n inputErrorIcon: inputErrorIconDefaults,\n inputWrapper: inputWrapperDefaults,\n textarea: textareaDefaults,\n select: selectDefaults,\n selectChevron: selectChevronDefaults,\n selectWrapper: selectWrapperDefaults,\n switch: {\n input: switchInputDefaults,\n thumb: switchThumbDefaults,\n wrapper: switchWrapperDefaults,\n },\n radio: {\n input: radioInputDefaults,\n dot: radioDotDefaults,\n wrapper: radioWrapperDefaults,\n },\n radioGroup: radioGroupDefaults,\n overlay: overlayDefaults,\n modal: {\n content: modalContentDefaults,\n overlay: modalOverlayDefaults,\n header: modalHeaderDefaults,\n body: modalBodyDefaults,\n footer: modalFooterDefaults,\n closeButton: modalCloseButtonDefaults,\n },\n popup: popupDefaults,\n tooltip: tooltipDefaults,\n alert: alertDefaults,\n spinner: spinnerDefaults,\n menu: {\n item: menuItemDefaults,\n popup: menuPopupDefaults,\n divider: menuDividerDefaults,\n label: menuLabelDefaults,\n },\n navLink: {\n root: navLinkDefaults,\n label: navLinkLabelDefaults,\n },\n table: {\n main: tableDefaults,\n thead: theadDefaults,\n tbody: tbodyDefaults,\n tfoot: tfootDefaults,\n tr: trDefaults,\n th: thDefaults,\n td: tdDefaults,\n caption: captionDefaults,\n },\n};"],"names":["buttonDefaults","buttonSpinnerDefaults","iconButtonDefaults","badgeDefaults","iconDefaults","chipDefaults","codeDefaults","kbdDefaults","markDefaults","cardDefaults","cardHeaderDefaults","cardBodyDefaults","cardFooterDefaults","dividerDefaults","containerDefaults","rowDefaults","colDefaults","stackDefaults","sectionDefaults","gridDefaults","pageTitleDefaults","sectionTitleDefaults","titleDefaults","textDefaults","blockquoteDefaults","blockquoteCiteDefaults","linkDefaults","listItemDefaults","listDefaults","checkboxInputDefaults","checkboxCheckDefaults","checkboxIndeterminateDefaults","checkboxWrapperDefaults","labelDefaults","fieldDefaults","fieldLabelDefaults","fieldDescriptionDefaults","fieldErrorDefaults","imgDefaults","inputDefaults","inputErrorIconDefaults","inputWrapperDefaults","textareaDefaults","selectDefaults","selectChevronDefaults","selectWrapperDefaults","switchInputDefaults","switchThumbDefaults","switchWrapperDefaults","radioInputDefaults","radioDotDefaults","radioWrapperDefaults","radioGroupDefaults","overlayDefaults","modalContentDefaults","modalOverlayDefaults","modalHeaderDefaults","modalBodyDefaults","modalFooterDefaults","modalCloseButtonDefaults","popupDefaults","tooltipDefaults","alertDefaults","spinnerDefaults","menuItemDefaults","menuPopupDefaults","menuDividerDefaults","menuLabelDefaults","navLinkDefaults","navLinkLabelDefaults","tableDefaults","theadDefaults","tbodyDefaults","tfootDefaults","trDefaults","thDefaults","tdDefaults","captionDefaults"],"mappings":"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"}
@@ -20,6 +20,7 @@ var pageTitleDefaults = require('./pageTitle/pageTitleDefaults.cjs');
20
20
  var defaultPageTitleTheme = require('./pageTitle/defaultPageTitleTheme.cjs');
21
21
  var Link = require('./link/Link.cjs');
22
22
  var linkDefaults = require('./link/linkDefaults.cjs');
23
+ require('./link/LinkCategories.cjs');
23
24
  var defaultLinkTheme = require('./link/defaultLinkTheme.cjs');
24
25
  var List = require('./list/List.cjs');
25
26
  var listDefaults = require('./list/listDefaults.cjs');
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,13 @@
1
+ 'use client';
2
+ 'use strict';
3
+
4
+ var React = require('react');
5
+
6
+ function useHydrated() {
7
+ const [hydrated, setHydrated] = React.useState(false);
8
+ React.useEffect(() => setHydrated(true), []);
9
+ return hydrated;
10
+ }
11
+
12
+ exports.useHydrated = useHydrated;
13
+ //# sourceMappingURL=useHydrated.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHydrated.cjs","sources":["../../../../src/components/utils/useHydrated.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\n/**\n * False on the server AND on the hydrating render, true from the first client effect.\n *\n * A portal has no server markup, so floating content that is already open on the first\n * client render portals DOM React never emitted server-side and the subtree is thrown\n * away and re-rendered. Gating the open state (rather than just the portal call) keeps\n * the transition and every element-dependent effect downstream of the gate, so they run\n * once the element actually attaches.\n */\nexport function useHydrated(): boolean {\n const [hydrated, setHydrated] = useState(false);\n useEffect(() => setHydrated(true), []);\n return hydrated;\n}\n"],"names":["useState","useEffect"],"mappings":";;;;;AAWO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,WAAA,CAAA,CAAA,CAAuB;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AAC9C,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA;AACrC,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT;;"}
@@ -123,6 +123,20 @@ var Caption = require('./components/ui/table/Caption.cjs');
123
123
  require('./components/ui/table/CaptionCategories.cjs');
124
124
  require('./components/ui/table/defaultCaptionTheme.cjs');
125
125
  require('./components/ui/typography/common/TypographyCategories.cjs');
126
+ var Text = require('./components/ui/typography/text/Text.cjs');
127
+ var Blockquote = require('./components/ui/typography/blockquote/Blockquote.cjs');
128
+ require('./components/ui/typography/blockquote/defaultBlockquoteTheme.cjs');
129
+ var Title = require('./components/ui/typography/title/Title.cjs');
130
+ var SectionTitle = require('./components/ui/typography/sectionTitle/SectionTitle.cjs');
131
+ var PageTitle = require('./components/ui/typography/pageTitle/PageTitle.cjs');
132
+ var Link = require('./components/ui/typography/link/Link.cjs');
133
+ require('./components/ui/typography/link/LinkCategories.cjs');
134
+ require('./components/ui/typography/link/defaultLinkTheme.cjs');
135
+ var List = require('./components/ui/typography/list/List.cjs');
136
+ require('./components/ui/typography/list/defaultListTheme.cjs');
137
+ var ListItem = require('./components/ui/typography/listItem/ListItem.cjs');
138
+ require('./components/ui/typography/listItem/ListItemCategories.cjs');
139
+ require('./components/ui/typography/listItem/defaultListItemTheme.cjs');
126
140
  var keys = require('./components/ui/props/keys.cjs');
127
141
  var ThemeProvider = require('./components/ThemeProvider.cjs');
128
142
  var defaultTheme = require('./components/defaultTheme.cjs');
@@ -142,14 +156,6 @@ var Card = require('./components/ui/card/Card.cjs');
142
156
  var CardHeader = require('./components/ui/card/CardHeader.cjs');
143
157
  var CardBody = require('./components/ui/card/CardBody.cjs');
144
158
  var CardFooter = require('./components/ui/card/CardFooter.cjs');
145
- var Text = require('./components/ui/typography/text/Text.cjs');
146
- var Title = require('./components/ui/typography/title/Title.cjs');
147
- var Link = require('./components/ui/typography/link/Link.cjs');
148
- var List = require('./components/ui/typography/list/List.cjs');
149
- var ListItem = require('./components/ui/typography/listItem/ListItem.cjs');
150
- var SectionTitle = require('./components/ui/typography/sectionTitle/SectionTitle.cjs');
151
- var PageTitle = require('./components/ui/typography/pageTitle/PageTitle.cjs');
152
- var Blockquote = require('./components/ui/typography/blockquote/Blockquote.cjs');
153
159
 
154
160
 
155
161
 
@@ -195,6 +201,14 @@ exports.Tr = Tr.Tr;
195
201
  exports.Th = Th.Th;
196
202
  exports.Td = Td.Td;
197
203
  exports.Caption = Caption.Caption;
204
+ exports.Text = Text.Text;
205
+ exports.Blockquote = Blockquote.Blockquote;
206
+ exports.Title = Title.Title;
207
+ exports.SectionTitle = SectionTitle.SectionTitle;
208
+ exports.PageTitle = PageTitle.PageTitle;
209
+ exports.Link = Link.Link;
210
+ exports.List = List.List;
211
+ exports.ListItem = ListItem.ListItem;
198
212
  exports.COMPONENT = keys.COMPONENT;
199
213
  exports.ComponentCategories = keys.ComponentCategories;
200
214
  exports.ComponentKeys = keys.ComponentKeys;
@@ -216,12 +230,4 @@ exports.Card = Card.Card;
216
230
  exports.CardHeader = CardHeader.CardHeader;
217
231
  exports.CardBody = CardBody.CardBody;
218
232
  exports.CardFooter = CardFooter.CardFooter;
219
- exports.Text = Text.Text;
220
- exports.Title = Title.Title;
221
- exports.Link = Link.Link;
222
- exports.List = List.List;
223
- exports.ListItem = ListItem.ListItem;
224
- exports.SectionTitle = SectionTitle.SectionTitle;
225
- exports.PageTitle = PageTitle.PageTitle;
226
- exports.Blockquote = Blockquote.Blockquote;
227
233
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsxs, jsx } from 'react/jsx-runtime';
3
- import { useRef, useId, useEffect, useCallback, cloneElement, useMemo } from 'react';
3
+ import { useRef, useState, useCallback, useId, useEffect, cloneElement, useMemo } from 'react';
4
4
  import { useMenuContext, MenuContext } from './MenuContext.mjs';
5
5
  import { useControllableState } from '../../utils/controllableState.mjs';
6
6
  import { Popup } from '../popup/Popup.mjs';
@@ -26,6 +26,11 @@ function Menu({
26
26
  }) {
27
27
  const anchorRef = useRef(null);
28
28
  const contentRef = useRef(null);
29
+ const [contentEl, setContentEl] = useState(null);
30
+ const setContentNode = useCallback((node) => {
31
+ contentRef.current = node;
32
+ setContentEl(node);
33
+ }, []);
29
34
  const menuId = `menu-${useId().replace(/:/g, "-")}`;
30
35
  const [open, setOpen] = useControllableState({
31
36
  value: openProp,
@@ -67,9 +72,9 @@ function Menu({
67
72
  }, [effectiveOpen]);
68
73
  const focusLastOnOpenRef = useRef(false);
69
74
  useEffect(() => {
70
- if (!effectiveOpen || !contentRef.current) return;
75
+ if (!effectiveOpen || !contentEl) return;
71
76
  const raf = requestAnimationFrame(() => {
72
- const items = contentRef.current?.querySelectorAll(
77
+ const items = contentEl.querySelectorAll(
73
78
  "[data-menu-item]:not([data-disabled])"
74
79
  );
75
80
  if (!items || items.length === 0) return;
@@ -78,7 +83,7 @@ function Menu({
78
83
  target.focus();
79
84
  });
80
85
  return () => cancelAnimationFrame(raf);
81
- }, [effectiveOpen]);
86
+ }, [effectiveOpen, contentEl]);
82
87
  const handleClick = useCallback(
83
88
  (e) => {
84
89
  const original = trigger.props?.onClick;
@@ -171,7 +176,7 @@ function Menu({
171
176
  /* @__PURE__ */ jsx(ThemeProvider, { themeDefaults: childThemeDefaults, children: /* @__PURE__ */ jsx(
172
177
  Popup,
173
178
  {
174
- ref: contentRef,
179
+ ref: setContentNode,
175
180
  open: effectiveOpen,
176
181
  onClose: closeSelf,
177
182
  anchorRef,
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.mjs","sources":["../../../../../src/components/ui/menu/Menu.tsx"],"sourcesContent":["import React, { useRef, useCallback, useId, useEffect, useMemo, cloneElement } from 'react';\nimport type { MenuProps } from './MenuProps';\nimport { MenuContext, useMenuContext, type MenuContextValue } from './MenuContext';\nimport { useControllableState } from '../../utils/controllableState';\nimport { Popup } from '../popup/Popup';\nimport { useTheme } from '../../themeContext';\n// Menu renders a nested ThemeProvider to push its sub-theme defaults onto\n// Popup/Divider children — this is a deliberate opt-in to the full theme\n// registry (ThemeProvider imports defaultTheme as its merge base)\nimport { ThemeProvider } from '../../ThemeProvider';\nimport { defaultMenuPopupTheme } from './defaultMenuPopupTheme';\nimport { defaultMenuDividerTheme } from '../divider/defaultMenuDividerTheme';\nimport { ComponentKeys } from '../props';\nimport { composeRefs, getElementRef } from '../../utils/composeRefs';\n\nexport function Menu({\n children,\n trigger,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n onClose: onCloseProp,\n closeOnItemClick = true,\n loop = true,\n disabled = false,\n transitionDuration = 150,\n ...popupProps\n}: MenuProps) {\n const anchorRef = useRef<HTMLElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const menuId = `menu-${useId().replace(/:/g, '-')}`;\n\n const [open, setOpen] = useControllableState({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n hasExternalHandler: !!onCloseProp,\n });\n\n // a Menu rendered inside another Menu's MenuContext is a submenu\n const parentCtx = useMenuContext();\n const isSubmenu = parentCtx !== null;\n\n const effectiveOpen = open && !disabled;\n\n const onCloseRef = useRef(onCloseProp);\n useEffect(() => {\n onCloseRef.current = onCloseProp;\n });\n\n // close only this menu level — used for dismissal (Escape / ArrowLeft /\n // click-outside). In a submenu, focus returns to its trigger via the\n // return-focus effect below.\n const closeSelf = useCallback(() => {\n setOpen(false);\n onCloseRef.current?.();\n }, [setOpen]);\n\n // selecting a leaf item closes this level and, for a submenu, bubbles up so\n // the whole tree closes\n const closeMenu = useCallback(() => {\n closeSelf();\n if (isSubmenu) parentCtx?.closeMenu();\n }, [closeSelf, isSubmenu, parentCtx]);\n\n const openMenu = useCallback(() => {\n if (!disabled) setOpen(true);\n }, [setOpen, disabled]);\n\n const toggleMenu = useCallback(() => {\n if (effectiveOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n }, [effectiveOpen, closeMenu, openMenu]);\n\n // return focus to trigger when menu closes\n const prevOpenRef = useRef(false);\n useEffect(() => {\n if (prevOpenRef.current && !effectiveOpen && anchorRef.current) {\n anchorRef.current.focus();\n }\n prevOpenRef.current = effectiveOpen;\n }, [effectiveOpen]);\n\n // ArrowUp on the closed trigger opens with focus on the LAST enabled item\n const focusLastOnOpenRef = useRef(false);\n\n // focus first (or last, when opened via ArrowUp) menu item on open\n useEffect(() => {\n if (!effectiveOpen || !contentRef.current) return;\n\n const raf = requestAnimationFrame(() => {\n const items = contentRef.current?.querySelectorAll<HTMLElement>(\n '[data-menu-item]:not([data-disabled])'\n );\n if (!items || items.length === 0) return;\n const target = focusLastOnOpenRef.current ? items[items.length - 1] : items[0];\n focusLastOnOpenRef.current = false;\n target.focus();\n });\n\n return () => cancelAnimationFrame(raf);\n }, [effectiveOpen]);\n\n const handleClick = useCallback(\n (e: React.MouseEvent) => {\n const original = (trigger as React.ReactElement<Record<string, unknown>>).props?.onClick;\n if (typeof original === 'function') {\n (original as (e: React.MouseEvent) => void)(e);\n }\n toggleMenu();\n },\n [trigger, toggleMenu]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const original = (trigger as React.ReactElement<Record<string, unknown>>).props?.onKeyDown;\n if (typeof original === 'function') {\n (original as (e: React.KeyboardEvent) => void)(e);\n }\n\n if (isSubmenu) {\n // submenu trigger: ArrowRight opens (the open effect focuses the first\n // item), ArrowLeft / Escape close just this submenu. ArrowUp/Down and\n // Enter/Space are left to the trigger MenuItem's own handler (parent\n // navigation + click-to-open).\n if (e.key === 'ArrowRight') {\n e.preventDefault();\n openMenu();\n } else if ((e.key === 'ArrowLeft' || e.key === 'Escape') && effectiveOpen) {\n e.preventDefault();\n closeSelf();\n }\n return;\n }\n\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n if (!disabled && !effectiveOpen) {\n focusLastOnOpenRef.current = e.key === 'ArrowUp';\n }\n openMenu();\n }\n\n if (e.key === 'Escape' && effectiveOpen) {\n e.preventDefault();\n closeMenu();\n }\n },\n [trigger, openMenu, closeMenu, closeSelf, effectiveOpen, disabled, isSubmenu]\n );\n\n // hover opens a submenu (mouse parity with the keyboard ArrowRight)\n const handleTriggerMouseEnter = useCallback(() => {\n if (isSubmenu) openMenu();\n }, [isSubmenu, openMenu]);\n\n // compose with the trigger's own ref — cloneElement would silently\n // replace a ref the consumer attached to their trigger element\n const triggerElement = cloneElement(trigger, {\n ref: composeRefs(getElementRef(trigger), anchorRef),\n 'aria-haspopup': 'menu',\n 'aria-expanded': effectiveOpen,\n 'aria-controls': effectiveOpen ? menuId : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n ...(isSubmenu\n ? {\n // the submenu trigger is itself an item of the parent menu, so\n // activating it must NOT close the parent; hovering it opens the submenu\n closeMenuOnClick: false,\n onMouseEnter: handleTriggerMouseEnter,\n }\n : {}),\n } as Record<string, unknown>);\n\n const theme = useTheme();\n const menuPopupTheme = theme?.menu.popup ?? defaultMenuPopupTheme;\n const menuDividerTheme = theme?.menu.divider ?? defaultMenuDividerTheme;\n\n // memoized so MenuItems don't re-render on every Menu render\n const ctx: MenuContextValue = useMemo(() => ({\n closeMenu,\n closeOnItemClick,\n loop,\n isSubmenu,\n closeSubmenu: isSubmenu ? closeSelf : undefined,\n }), [closeMenu, closeOnItemClick, loop, isSubmenu, closeSelf]);\n\n // a submenu defaults to opening on the inline-end side (flips if no room)\n const hasExplicitPlacement = ComponentKeys.placement.some(\n (k) => (popupProps as Record<string, unknown>)[k]\n );\n const submenuPlacementProps = isSubmenu && !hasExplicitPlacement ? { placeRightStart: true } : {};\n\n // explicit size on Menu propagates to MenuItem / MenuLabel / Divider; no explicit size keeps each sub-component's default\n const explicitSize = ComponentKeys.size.find(\n (k) => (popupProps as Record<string, unknown>)[k]\n );\n\n // memoized so the nested ThemeProvider's memo stays valid across\n // re-renders (open/close toggles) — an inline literal here would re-clone\n // the theme tree on every Menu render\n const childThemeDefaults = useMemo(() => {\n const childSizeDefaults = explicitSize ? { [explicitSize]: true } : undefined;\n return {\n popup: menuPopupTheme.defaults,\n divider: childSizeDefaults\n ? { ...menuDividerTheme.defaults, ...childSizeDefaults }\n : menuDividerTheme.defaults,\n ...(childSizeDefaults && {\n menu: {\n item: childSizeDefaults,\n label: childSizeDefaults,\n },\n }),\n };\n }, [menuPopupTheme, menuDividerTheme, explicitSize]);\n\n return (\n <MenuContext.Provider value={ctx}>\n {triggerElement}\n <ThemeProvider themeDefaults={childThemeDefaults}>\n <Popup\n ref={contentRef}\n open={effectiveOpen}\n onClose={closeSelf}\n anchorRef={anchorRef}\n id={menuId}\n role=\"menu\"\n aria-orientation=\"vertical\"\n data-menu-dropdown=\"\"\n transitionDuration={transitionDuration}\n {...submenuPlacementProps}\n {...popupProps}\n >\n {children}\n </Popup>\n </ThemeProvider>\n </MenuContext.Provider>\n );\n}\n\nMenu.displayName = 'Menu';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Menu.mjs","sources":["../../../../../src/components/ui/menu/Menu.tsx"],"sourcesContent":["import React, { useRef, useState, useCallback, useId, useEffect, useMemo, cloneElement } from 'react';\nimport type { MenuProps } from './MenuProps';\nimport { MenuContext, useMenuContext, type MenuContextValue } from './MenuContext';\nimport { useControllableState } from '../../utils/controllableState';\nimport { Popup } from '../popup/Popup';\nimport { useTheme } from '../../themeContext';\n// Menu renders a nested ThemeProvider to push its sub-theme defaults onto\n// Popup/Divider children — this is a deliberate opt-in to the full theme\n// registry (ThemeProvider imports defaultTheme as its merge base)\nimport { ThemeProvider } from '../../ThemeProvider';\nimport { defaultMenuPopupTheme } from './defaultMenuPopupTheme';\nimport { defaultMenuDividerTheme } from '../divider/defaultMenuDividerTheme';\nimport { ComponentKeys } from '../props';\nimport { composeRefs, getElementRef } from '../../utils/composeRefs';\n\nexport function Menu({\n children,\n trigger,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n onClose: onCloseProp,\n closeOnItemClick = true,\n loop = true,\n disabled = false,\n transitionDuration = 150,\n ...popupProps\n}: MenuProps) {\n const anchorRef = useRef<HTMLElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n // The element is state as well as a ref: a menu open on its first render mounts its\n // content a tick later, and an effect keyed on `open` alone would never see it.\n const [contentEl, setContentEl] = useState<HTMLDivElement | null>(null);\n const setContentNode = useCallback((node: HTMLDivElement | null) => {\n contentRef.current = node;\n setContentEl(node);\n }, []);\n const menuId = `menu-${useId().replace(/:/g, '-')}`;\n\n const [open, setOpen] = useControllableState({\n value: openProp,\n defaultValue: defaultOpen,\n onChange: onOpenChange,\n hasExternalHandler: !!onCloseProp,\n });\n\n // a Menu rendered inside another Menu's MenuContext is a submenu\n const parentCtx = useMenuContext();\n const isSubmenu = parentCtx !== null;\n\n const effectiveOpen = open && !disabled;\n\n const onCloseRef = useRef(onCloseProp);\n useEffect(() => {\n onCloseRef.current = onCloseProp;\n });\n\n // close only this menu level — used for dismissal (Escape / ArrowLeft /\n // click-outside). In a submenu, focus returns to its trigger via the\n // return-focus effect below.\n const closeSelf = useCallback(() => {\n setOpen(false);\n onCloseRef.current?.();\n }, [setOpen]);\n\n // selecting a leaf item closes this level and, for a submenu, bubbles up so\n // the whole tree closes\n const closeMenu = useCallback(() => {\n closeSelf();\n if (isSubmenu) parentCtx?.closeMenu();\n }, [closeSelf, isSubmenu, parentCtx]);\n\n const openMenu = useCallback(() => {\n if (!disabled) setOpen(true);\n }, [setOpen, disabled]);\n\n const toggleMenu = useCallback(() => {\n if (effectiveOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n }, [effectiveOpen, closeMenu, openMenu]);\n\n // return focus to trigger when menu closes\n const prevOpenRef = useRef(false);\n useEffect(() => {\n if (prevOpenRef.current && !effectiveOpen && anchorRef.current) {\n anchorRef.current.focus();\n }\n prevOpenRef.current = effectiveOpen;\n }, [effectiveOpen]);\n\n // ArrowUp on the closed trigger opens with focus on the LAST enabled item\n const focusLastOnOpenRef = useRef(false);\n\n // focus first (or last, when opened via ArrowUp) menu item on open\n useEffect(() => {\n if (!effectiveOpen || !contentEl) return;\n\n const raf = requestAnimationFrame(() => {\n const items = contentEl.querySelectorAll<HTMLElement>(\n '[data-menu-item]:not([data-disabled])'\n );\n if (!items || items.length === 0) return;\n const target = focusLastOnOpenRef.current ? items[items.length - 1] : items[0];\n focusLastOnOpenRef.current = false;\n target.focus();\n });\n\n return () => cancelAnimationFrame(raf);\n }, [effectiveOpen, contentEl]);\n\n const handleClick = useCallback(\n (e: React.MouseEvent) => {\n const original = (trigger as React.ReactElement<Record<string, unknown>>).props?.onClick;\n if (typeof original === 'function') {\n (original as (e: React.MouseEvent) => void)(e);\n }\n toggleMenu();\n },\n [trigger, toggleMenu]\n );\n\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const original = (trigger as React.ReactElement<Record<string, unknown>>).props?.onKeyDown;\n if (typeof original === 'function') {\n (original as (e: React.KeyboardEvent) => void)(e);\n }\n\n if (isSubmenu) {\n // submenu trigger: ArrowRight opens (the open effect focuses the first\n // item), ArrowLeft / Escape close just this submenu. ArrowUp/Down and\n // Enter/Space are left to the trigger MenuItem's own handler (parent\n // navigation + click-to-open).\n if (e.key === 'ArrowRight') {\n e.preventDefault();\n openMenu();\n } else if ((e.key === 'ArrowLeft' || e.key === 'Escape') && effectiveOpen) {\n e.preventDefault();\n closeSelf();\n }\n return;\n }\n\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n e.preventDefault();\n if (!disabled && !effectiveOpen) {\n focusLastOnOpenRef.current = e.key === 'ArrowUp';\n }\n openMenu();\n }\n\n if (e.key === 'Escape' && effectiveOpen) {\n e.preventDefault();\n closeMenu();\n }\n },\n [trigger, openMenu, closeMenu, closeSelf, effectiveOpen, disabled, isSubmenu]\n );\n\n // hover opens a submenu (mouse parity with the keyboard ArrowRight)\n const handleTriggerMouseEnter = useCallback(() => {\n if (isSubmenu) openMenu();\n }, [isSubmenu, openMenu]);\n\n // compose with the trigger's own ref — cloneElement would silently\n // replace a ref the consumer attached to their trigger element\n const triggerElement = cloneElement(trigger, {\n ref: composeRefs(getElementRef(trigger), anchorRef),\n 'aria-haspopup': 'menu',\n 'aria-expanded': effectiveOpen,\n 'aria-controls': effectiveOpen ? menuId : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown,\n ...(isSubmenu\n ? {\n // the submenu trigger is itself an item of the parent menu, so\n // activating it must NOT close the parent; hovering it opens the submenu\n closeMenuOnClick: false,\n onMouseEnter: handleTriggerMouseEnter,\n }\n : {}),\n } as Record<string, unknown>);\n\n const theme = useTheme();\n const menuPopupTheme = theme?.menu.popup ?? defaultMenuPopupTheme;\n const menuDividerTheme = theme?.menu.divider ?? defaultMenuDividerTheme;\n\n // memoized so MenuItems don't re-render on every Menu render\n const ctx: MenuContextValue = useMemo(() => ({\n closeMenu,\n closeOnItemClick,\n loop,\n isSubmenu,\n closeSubmenu: isSubmenu ? closeSelf : undefined,\n }), [closeMenu, closeOnItemClick, loop, isSubmenu, closeSelf]);\n\n // a submenu defaults to opening on the inline-end side (flips if no room)\n const hasExplicitPlacement = ComponentKeys.placement.some(\n (k) => (popupProps as Record<string, unknown>)[k]\n );\n const submenuPlacementProps = isSubmenu && !hasExplicitPlacement ? { placeRightStart: true } : {};\n\n // explicit size on Menu propagates to MenuItem / MenuLabel / Divider; no explicit size keeps each sub-component's default\n const explicitSize = ComponentKeys.size.find(\n (k) => (popupProps as Record<string, unknown>)[k]\n );\n\n // memoized so the nested ThemeProvider's memo stays valid across\n // re-renders (open/close toggles) — an inline literal here would re-clone\n // the theme tree on every Menu render\n const childThemeDefaults = useMemo(() => {\n const childSizeDefaults = explicitSize ? { [explicitSize]: true } : undefined;\n return {\n popup: menuPopupTheme.defaults,\n divider: childSizeDefaults\n ? { ...menuDividerTheme.defaults, ...childSizeDefaults }\n : menuDividerTheme.defaults,\n ...(childSizeDefaults && {\n menu: {\n item: childSizeDefaults,\n label: childSizeDefaults,\n },\n }),\n };\n }, [menuPopupTheme, menuDividerTheme, explicitSize]);\n\n return (\n <MenuContext.Provider value={ctx}>\n {triggerElement}\n <ThemeProvider themeDefaults={childThemeDefaults}>\n <Popup\n ref={setContentNode}\n open={effectiveOpen}\n onClose={closeSelf}\n anchorRef={anchorRef}\n id={menuId}\n role=\"menu\"\n aria-orientation=\"vertical\"\n data-menu-dropdown=\"\"\n transitionDuration={transitionDuration}\n {...submenuPlacementProps}\n {...popupProps}\n >\n {children}\n </Popup>\n </ThemeProvider>\n </MenuContext.Provider>\n );\n}\n\nMenu.displayName = 'Menu';\n"],"names":[],"mappings":";;;;;;;;;;;;;AAeO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,IAAA,CAAK;AAAA,CAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAc,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAmB,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACnB,CAAA,CAAA,CAAA,CAAA,GAAO,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAqB,CAAA,CAAA,CAAA;AAAA,CAAA,CACrB,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACL,CAAA,CAAA,CAAc;AACZ,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,EAAoB,IAAI,CAAA;AAC1C,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,EAAuB,IAAI,CAAA;AAG9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgC,CAAA,CAAA,CAAA,CAAI,CAAA;AACtE,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,WAAA,CAAY,CAAC,IAAA,CAAA,CAAA,CAAA,CAAA,CAAgC;AAClE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA;AACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAI,CAAA;AAAA,CAAA,CACnB,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA;AACL,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,IAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA;AAEjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,OAAO,CAAA,CAAA,CAAA,CAAI,oBAAA,CAAqB;AAAA,CAAA,CAAA,CAAA,CAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CACvB,CAAA;AAGD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;AACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAc,CAAA,CAAA,CAAA,CAAA;AAEhC,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,KAAQ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAE/B,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,WAAW,CAAA;AACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACvB,CAAC,CAAA;AAKD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;AAAA,CAAA,CACvB,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC,CAAA;AAIZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAClC,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAU;AACV,CAAA,CAAA,CAAA,CAAA,IAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,YAAsB,SAAA,CAAA,CAAU;AAAA,CAAA,CACtC,CAAA,EAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA;AAEpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACjC,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IAAI,CAAA;AAAA,CAAA,CAC7B,CAAA,CAAA,CAAG,CAAC,OAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA;AAEtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,aAAA,CAAA,CAAe;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAU;AAAA,CAAA,CAAA,CAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAS;AAAA,CAAA,CAAA,CAAA,CACX;AAAA,CAAA,CACF,CAAA,EAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA;AAGvC,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,KAAK,CAAA;AAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,KAAA,CAAA,CAAM;AAAA,CAAA,CAAA,CAAA,CAC1B;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CACxB,CAAA,CAAA,CAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAC,CAAA;AAGlB,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,KAAK,CAAA;AAGvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACd,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAC,SAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAElC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACF;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,KAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,mBAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,CAAC,CAAA,GAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA;AAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA;AAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAAA,CAAA,CAAA,CAAA,CACf,CAAC,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAqB,GAAG,CAAA;AAAA,CAAA,CACvC,CAAA,CAAA,CAAG,CAAC,aAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA;AAE7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAClB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,QAAwD,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAa,UAAA,CAAA,CAAY;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAA2C,CAAC,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC/C;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAW;AAAA,CAAA,CAAA,CAAA,CACb,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU;AAAA,CAAA,CAAA,CACtB;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACpB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,QAAwD,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAa,UAAA,CAAA,CAAY;AAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAA8C,CAAC,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClD;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,SAAA,CAAA,CAAW;AAKb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAA,CAAE,CAAA,CAAA,MAAQ,YAAA,CAAA,CAAc;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAS;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACX,YAAY,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAe,CAAA,CAAE,CAAA,CAAA,CAAA,KAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAa,aAAA,CAAA,CAAe;AACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAU;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACZ;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACF;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,CAAA,CAAA,MAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,aAAA,CAAA,CAAe;AAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,EAAE,CAAA,CAAA,CAAA,KAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACzC;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,QAAA,CAAA,CAAS;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACX;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAE,CAAA,CAAA,CAAA,KAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,aAAA,CAAA,CAAe;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;AACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,SAAA,CAAA,CAAU;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACZ;AAAA,CAAA,CAAA,CAAA,CACF,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAAA,CAAA,CAAA,CAC9E;AAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AAAA,CAAA,CAC1B,CAAA,CAAA,CAAG,CAAC,SAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAC,CAAA;AAIxB,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,OAAA,CAAA,CAAS;AAAA,CAAA,CAAA,CAAA,CAC3C,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA;AAAA,CAAA,CAAA,CAAA,CAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACjB,eAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACX,CAAA,CAAA,CAAI,SAAA,CAAA,CAAA,CACA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAkB,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClB,YAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,IAEhB,CAAA;AAAC,CAAA,CAAA,CACqB,CAAA;AAE5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,IAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS;AACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,cAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,gBAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAGhD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AAAA,CAAA,CAAA,CAAA,CAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAY,SAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,IACpC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAC,CAAA;AAG7D,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,cAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACnD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuC,CAAC;AAAA,CAAA,CAAA,CAClD;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,KAAa,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,IAAS,CAAA,CAAC;AAGhG,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,cAAc,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACtC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuC,CAAC;AAAA,CAAA,CAAA,CAClD;AAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAE,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,GAAK,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACpE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,GAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACtB,OAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IACL,CAAA,CAAE,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrB,CAAA,CAAA,CAAI,iBAAA,CAAA,CAAA,CAAA,CAAqB;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvB,IAAA,CAAA,CAAM;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACJ,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACN,KAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA,CAAA,CAAA,CACF;AAAA,CAAA,CACF,CAAA,EAAG,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAC,CAAA;AAEnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAZ,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,GAAO,CAAA,CAAA,CAAA,CAAA,CAC1B,QAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACD,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACC,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,EAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,EAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACJ,CAAA,CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAmB,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACC,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CACH,CAAA,CACF;AAAA,CAAA,CAAA,CAAA,EACF,CAAA;AAEJ;AAEA,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;"}
@@ -14,6 +14,7 @@ import { useControllableState } from '../../utils/controllableState.mjs';
14
14
  import { useTransition } from '../../utils/transition.mjs';
15
15
  import { useStackingContext } from '../../utils/stackingContext.mjs';
16
16
  import { useMergedRef } from '../../utils/mergedRef.mjs';
17
+ import { useHydrated } from '../../utils/useHydrated.mjs';
17
18
  import { pushEscapeHandler } from '../../utils/escapeStack.mjs';
18
19
  import { composeEventHandlers } from '../../utils/composeEventHandlers.mjs';
19
20
  import { ModalContext } from './ModalContext.mjs';
@@ -84,27 +85,29 @@ const Modal = forwardRef(
84
85
  const bodyId = `modal-body-${uniqueId.replace(/:/g, "-")}`;
85
86
  const [titleMounted, setTitleMounted] = useState(false);
86
87
  const [bodyMounted, setBodyMounted] = useState(false);
87
- const overlayTransition = useTransition(open, transitionDuration, noAnimation, { onEnterComplete, onExitComplete });
88
- const contentTransition = useTransition(open, transitionDuration, noAnimation);
89
- const zIndex = useStackingContext(open, "modal", overlayRef);
88
+ const hydrated = useHydrated();
89
+ const effectiveOpen = open && (!portal || hydrated);
90
+ const overlayTransition = useTransition(effectiveOpen, transitionDuration, noAnimation, { onEnterComplete, onExitComplete });
91
+ const contentTransition = useTransition(effectiveOpen, transitionDuration, noAnimation);
92
+ const zIndex = useStackingContext(effectiveOpen, "modal", overlayRef);
90
93
  const mergedRef = useMergedRef(ref, contentRef);
91
- useScrollLock(open && scrollLock);
94
+ useScrollLock(effectiveOpen && scrollLock);
92
95
  const focusTrapOptions = useMemo(
93
96
  () => ({ returnFocus, initialFocus }),
94
97
  [returnFocus, initialFocus]
95
98
  );
96
- useFocusTrap(contentRef, open && focusTrap, focusTrapOptions);
97
- useInertBackground(open, overlayRef);
99
+ useFocusTrap(contentRef, effectiveOpen && focusTrap, focusTrapOptions);
100
+ useInertBackground(effectiveOpen, overlayRef);
98
101
  useEffect(() => {
99
- if (!open) return;
102
+ if (!effectiveOpen) return;
100
103
  const el = overlayRef.current;
101
104
  if (!el) return;
102
105
  return registerOverlay(el, null);
103
- }, [open]);
106
+ }, [effectiveOpen]);
104
107
  useEffect(() => {
105
- if (!open || !closeOnEscape) return;
108
+ if (!effectiveOpen || !closeOnEscape) return;
106
109
  return pushEscapeHandler(onClose, overlayRef.current);
107
- }, [open, closeOnEscape, onClose]);
110
+ }, [effectiveOpen, closeOnEscape, onClose]);
108
111
  const handleOverlayClick = (event) => {
109
112
  if (closeOnOverlayClick && !event.defaultPrevented && event.target === event.currentTarget) {
110
113
  onClose();
@@ -189,7 +192,7 @@ const Modal = forwardRef(
189
192
  }
190
193
  );
191
194
  if (portal) {
192
- if (typeof document === "undefined") {
195
+ if (!hydrated) {
193
196
  return null;
194
197
  }
195
198
  return createPortal(content, document.body);