@servicetitan/anvil2 1.49.5 → 1.49.7

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 (185) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/{Alert-aGBkujwE.js → Alert-DNhUyWVm.js} +3 -2
  3. package/dist/{Alert-aGBkujwE.js.map → Alert-DNhUyWVm.js.map} +1 -1
  4. package/dist/Alert.js +1 -1
  5. package/dist/{Announcement-BPwFNhYe.js → Announcement-BBq8zIQ3.js} +3 -2
  6. package/dist/{Announcement-BPwFNhYe.js.map → Announcement-BBq8zIQ3.js.map} +1 -1
  7. package/dist/Announcement.js +1 -1
  8. package/dist/{Breadcrumbs-DjR-2OEH.js → Breadcrumbs-CfJJlIIa.js} +2 -2
  9. package/dist/{Breadcrumbs-DjR-2OEH.js.map → Breadcrumbs-CfJJlIIa.js.map} +1 -1
  10. package/dist/Breadcrumbs.js +1 -1
  11. package/dist/{Calendar-CLSm88D2.js → Calendar-C9oxHTGG.js} +2 -2
  12. package/dist/{Calendar-CLSm88D2.js.map → Calendar-C9oxHTGG.js.map} +1 -1
  13. package/dist/{Calendar-BP6r1sP9.js → Calendar-CAYitkfM.js} +2 -2
  14. package/dist/{Calendar-BP6r1sP9.js.map → Calendar-CAYitkfM.js.map} +1 -1
  15. package/dist/Calendar.js +2 -2
  16. package/dist/{Checkbox-DwuDx-t4.js → Checkbox-DbBeuNdW.js} +3 -3
  17. package/dist/{Checkbox-DwuDx-t4.js.map → Checkbox-DbBeuNdW.js.map} +1 -1
  18. package/dist/{Checkbox-PkAk1Saq.js → Checkbox-zAKOGEBl.js} +2 -2
  19. package/dist/{Checkbox-PkAk1Saq.js.map → Checkbox-zAKOGEBl.js.map} +1 -1
  20. package/dist/Checkbox.js +2 -2
  21. package/dist/{Chip-X2EwdZ97.js → Chip-UqdorCE2.js} +23 -17
  22. package/dist/Chip-UqdorCE2.js.map +1 -0
  23. package/dist/Chip.js +1 -1
  24. package/dist/{Combobox-DNCq-jkq.js → Combobox-hxGMMb8x.js} +6 -6
  25. package/dist/{Combobox-DNCq-jkq.js.map → Combobox-hxGMMb8x.js.map} +1 -1
  26. package/dist/Combobox.js +1 -1
  27. package/dist/{DataTable-BIhmpU0v.js → DataTable-CUFa7cQK.js} +6 -6
  28. package/dist/{DataTable-BIhmpU0v.js.map → DataTable-CUFa7cQK.js.map} +1 -1
  29. package/dist/{DateField-DsGHTMZ1.js → DateField-BT9jJRp5.js} +5 -5
  30. package/dist/{DateField-DsGHTMZ1.js.map → DateField-BT9jJRp5.js.map} +1 -1
  31. package/dist/DateField.js +1 -1
  32. package/dist/{DateFieldRange-Ct979nxF.js → DateFieldRange-ZAic_9mt.js} +5 -5
  33. package/dist/{DateFieldRange-Ct979nxF.js.map → DateFieldRange-ZAic_9mt.js.map} +1 -1
  34. package/dist/DateFieldRange.js +1 -1
  35. package/dist/{DateFieldSingle-frMHnRSg.js → DateFieldSingle-DAtR8ImE.js} +5 -5
  36. package/dist/{DateFieldSingle-frMHnRSg.js.map → DateFieldSingle-DAtR8ImE.js.map} +1 -1
  37. package/dist/DateFieldSingle.js +1 -1
  38. package/dist/{DateFieldYearless-po9ieLod.js → DateFieldYearless-DXO_MPwA.js} +4 -4
  39. package/dist/{DateFieldYearless-po9ieLod.js.map → DateFieldYearless-DXO_MPwA.js.map} +1 -1
  40. package/dist/DateFieldYearless.js +1 -1
  41. package/dist/{DateFieldYearlessRange-Dy8a8O1n.js → DateFieldYearlessRange-Cg6bbPIi.js} +4 -4
  42. package/dist/{DateFieldYearlessRange-Dy8a8O1n.js.map → DateFieldYearlessRange-Cg6bbPIi.js.map} +1 -1
  43. package/dist/DateFieldYearlessRange.js +1 -1
  44. package/dist/{DaysOfTheWeek-2_k3T4n4.js → DaysOfTheWeek-9B9d7-hF.js} +4 -4
  45. package/dist/{DaysOfTheWeek-2_k3T4n4.js.map → DaysOfTheWeek-9B9d7-hF.js.map} +1 -1
  46. package/dist/DaysOfTheWeek.js +1 -1
  47. package/dist/{Dialog-BT7a5KNT.js → Dialog-UzG6-s9H.js} +13 -13
  48. package/dist/{Dialog-BT7a5KNT.js.map → Dialog-UzG6-s9H.js.map} +1 -1
  49. package/dist/Dialog.css +32 -32
  50. package/dist/Dialog.js +1 -1
  51. package/dist/{Drawer-scQFylHI.js → Drawer-BHK18NYm.js} +12 -12
  52. package/dist/{Drawer-scQFylHI.js.map → Drawer-BHK18NYm.js.map} +1 -1
  53. package/dist/Drawer.css +31 -31
  54. package/dist/Drawer.js +1 -1
  55. package/dist/{FieldLabel-BIStrC2x.js → FieldLabel-jqlQ1Ldh.js} +2 -2
  56. package/dist/{FieldLabel-BIStrC2x.js.map → FieldLabel-jqlQ1Ldh.js.map} +1 -1
  57. package/dist/FieldLabel.js +1 -1
  58. package/dist/{FieldMessage-DWONT3dr.js → FieldMessage-DdCUxZz-.js} +3 -3
  59. package/dist/FieldMessage-DdCUxZz-.js.map +1 -0
  60. package/dist/FieldMessage.js +1 -1
  61. package/dist/{Helper-DjWotFtO.js → Helper-DzVUQgUJ.js} +2 -2
  62. package/dist/{Helper-DjWotFtO.js.map → Helper-DzVUQgUJ.js.map} +1 -1
  63. package/dist/{InputMask-A5LDdyxL.js → InputMask-CJC9xZHG.js} +2 -2
  64. package/dist/{InputMask-A5LDdyxL.js.map → InputMask-CJC9xZHG.js.map} +1 -1
  65. package/dist/InputMask.js +1 -1
  66. package/dist/{Link-DuYh7Xl2.js → Link-CGXEFA9w.js} +13 -4
  67. package/dist/Link-CGXEFA9w.js.map +1 -0
  68. package/dist/Link.css +34 -20
  69. package/dist/Link.js +1 -1
  70. package/dist/Link.module-ByPQQ0zy.js +14 -0
  71. package/dist/Link.module-ByPQQ0zy.js.map +1 -0
  72. package/dist/{LinkButton-pIUNATNE.js → LinkButton-BBCO-4em.js} +5 -2
  73. package/dist/LinkButton-BBCO-4em.js.map +1 -0
  74. package/dist/LinkButton.js +1 -1
  75. package/dist/{ListView-5cRssdYI.js → ListView-D8mfK8Lu.js} +2 -2
  76. package/dist/{ListView-5cRssdYI.js.map → ListView-D8mfK8Lu.js.map} +1 -1
  77. package/dist/ListView.js +1 -1
  78. package/dist/{NumberField-BUFymKV3.js → NumberField-CjWLnD9X.js} +3 -3
  79. package/dist/{NumberField-BUFymKV3.js.map → NumberField-CjWLnD9X.js.map} +1 -1
  80. package/dist/NumberField.js +1 -1
  81. package/dist/{Page-Dgpz2WD7.js → Page-ClI3IOc7.js} +6 -6
  82. package/dist/{Page-Dgpz2WD7.js.map → Page-ClI3IOc7.js.map} +1 -1
  83. package/dist/Page.js +1 -1
  84. package/dist/{Popover-CcMDyKTj.js → Popover-CCXrzBul.js} +27 -6
  85. package/dist/Popover-CCXrzBul.js.map +1 -0
  86. package/dist/Popover.css +40 -9
  87. package/dist/Popover.js +1 -1
  88. package/dist/{ProgressBar-R_UjSR4o.js → ProgressBar-BpKEr6cO.js} +5 -4
  89. package/dist/{ProgressBar-R_UjSR4o.js.map → ProgressBar-BpKEr6cO.js.map} +1 -1
  90. package/dist/ProgressBar.js +1 -1
  91. package/dist/{Radio-CLR1m8N9.js → Radio-jj0-1dOg.js} +2 -2
  92. package/dist/{Radio-CLR1m8N9.js.map → Radio-jj0-1dOg.js.map} +1 -1
  93. package/dist/Radio.js +2 -2
  94. package/dist/{RadioGroup-m46C69uO.js → RadioGroup-Bxy415eu.js} +3 -3
  95. package/dist/{RadioGroup-m46C69uO.js.map → RadioGroup-Bxy415eu.js.map} +1 -1
  96. package/dist/{SearchField-DrgNbG3I.js → SearchField-D6bICv4b.js} +36 -7
  97. package/dist/SearchField-D6bICv4b.js.map +1 -0
  98. package/dist/SearchField.css +13 -8
  99. package/dist/SearchField.js +1 -1
  100. package/dist/{SelectCard-DViLgRGh.js → SelectCard-CjbsPKZ4.js} +3 -3
  101. package/dist/{SelectCard-DViLgRGh.js.map → SelectCard-CjbsPKZ4.js.map} +1 -1
  102. package/dist/SelectCard.js +1 -1
  103. package/dist/SelectField.js +1 -1
  104. package/dist/{SelectFieldSync-DF05HvD4.js → SelectFieldSync-BOzavAtv.js} +132 -19
  105. package/dist/SelectFieldSync-BOzavAtv.js.map +1 -0
  106. package/dist/{SelectTrigger-BSzOoRsu.js → SelectTrigger-DfVnPiNf.js} +2 -2
  107. package/dist/{SelectTrigger-BSzOoRsu.js.map → SelectTrigger-DfVnPiNf.js.map} +1 -1
  108. package/dist/SelectTrigger.js +1 -1
  109. package/dist/{SelectTriggerBase-CfmRIFRs.js → SelectTriggerBase-D8scKtBr.js} +5 -5
  110. package/dist/{SelectTriggerBase-CfmRIFRs.js.map → SelectTriggerBase-D8scKtBr.js.map} +1 -1
  111. package/dist/SelectTriggerBase.css +59 -59
  112. package/dist/SelectTriggerBase.module-Ce49lamD.js +35 -0
  113. package/dist/SelectTriggerBase.module-Ce49lamD.js.map +1 -0
  114. package/dist/{Switch-BXDPs2mD.js → Switch-CGpg2ake.js} +2 -2
  115. package/dist/{Switch-BXDPs2mD.js.map → Switch-CGpg2ake.js.map} +1 -1
  116. package/dist/Switch.js +1 -1
  117. package/dist/Table.js +1 -1
  118. package/dist/{TextField-B08U4_rt.js → TextField-DNuEXKyN.js} +3 -3
  119. package/dist/{TextField-B08U4_rt.js.map → TextField-DNuEXKyN.js.map} +1 -1
  120. package/dist/{TextField-D29fTRGR.js → TextField-Qv6OqiKQ.js} +2 -2
  121. package/dist/{TextField-D29fTRGR.js.map → TextField-Qv6OqiKQ.js.map} +1 -1
  122. package/dist/TextField.js +1 -1
  123. package/dist/{Textarea-Dl4w2-t0.js → Textarea-DdLD4imO.js} +3 -3
  124. package/dist/{Textarea-Dl4w2-t0.js.map → Textarea-DdLD4imO.js.map} +1 -1
  125. package/dist/Textarea.js +1 -1
  126. package/dist/{TimeField-Dpi3fMsn.js → TimeField-C39hYluo.js} +3 -3
  127. package/dist/{TimeField-Dpi3fMsn.js.map → TimeField-C39hYluo.js.map} +1 -1
  128. package/dist/TimeField.js +1 -1
  129. package/dist/Toast.js +2 -2
  130. package/dist/{Toaster-CRNOANCk.js → Toaster-DJ4tNy-0.js} +2 -2
  131. package/dist/{Toaster-CRNOANCk.js.map → Toaster-DJ4tNy-0.js.map} +1 -1
  132. package/dist/{Toaster-B0ogInIl.js → Toaster-DyDVYq4x.js} +148 -53
  133. package/dist/Toaster-DyDVYq4x.js.map +1 -0
  134. package/dist/Toaster.css +95 -71
  135. package/dist/{Toolbar-CPldWSNJ.js → Toolbar-BxYOXLmv.js} +13 -13
  136. package/dist/{Toolbar-CPldWSNJ.js.map → Toolbar-BxYOXLmv.js.map} +1 -1
  137. package/dist/Toolbar.js +1 -1
  138. package/dist/{Tooltip-BbfLb3pI.js → Tooltip-CBy7srE2.js} +2 -2
  139. package/dist/Tooltip-CBy7srE2.js.map +1 -0
  140. package/dist/Tooltip.js +1 -1
  141. package/dist/{YearlessDateInputWithPicker-LiMI-Oer.js → YearlessDateInputWithPicker-DMGx3gE2.js} +2 -2
  142. package/dist/{YearlessDateInputWithPicker-LiMI-Oer.js.map → YearlessDateInputWithPicker-DMGx3gE2.js.map} +1 -1
  143. package/dist/beta/components/SelectField/internal/SelectFieldInput.d.ts +14 -3
  144. package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +12 -1
  145. package/dist/beta/components/SelectField/internal/useCombo.d.ts +2 -1
  146. package/dist/beta/components/SelectField/types.d.ts +43 -0
  147. package/dist/beta.js +5 -5
  148. package/dist/check_circle-CM0ukqXv.js +6 -0
  149. package/dist/check_circle-CM0ukqXv.js.map +1 -0
  150. package/dist/components/Chip/Chip.d.ts +2 -1
  151. package/dist/components/Chip/internal/Chip.d.ts +2 -1
  152. package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +1 -1
  153. package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +1 -1
  154. package/dist/components/Link/internal/Link.d.ts +21 -2
  155. package/dist/components/Link/useLinkStyles.d.ts +1 -1
  156. package/dist/components/LinkButton/LinkButton.d.ts +13 -1
  157. package/dist/components/Popover/internal/PopoverContext.d.ts +1 -0
  158. package/dist/components/Popover/internal/usePopoverContext.d.ts +1 -0
  159. package/dist/components/SearchField/SearchField.d.ts +6 -3
  160. package/dist/components/Stepper/Stepper.d.ts +1 -1
  161. package/dist/components/Stepper/StepperStep.d.ts +1 -1
  162. package/dist/components/Tab/Tab.d.ts +1 -1
  163. package/dist/components/Tab/TabButton.d.ts +1 -1
  164. package/dist/components/Toast/internal/constants.d.ts +16 -0
  165. package/dist/error-DR_wWdYY.js +6 -0
  166. package/dist/error-DR_wWdYY.js.map +1 -0
  167. package/dist/index.js +40 -40
  168. package/dist/{utils-CeT0omsG.js → utils-Bkbn9cyk.js} +2 -2
  169. package/dist/{utils-CeT0omsG.js.map → utils-Bkbn9cyk.js.map} +1 -1
  170. package/package.json +1 -1
  171. package/dist/Chip-X2EwdZ97.js.map +0 -1
  172. package/dist/FieldMessage-DWONT3dr.js.map +0 -1
  173. package/dist/Link-DuYh7Xl2.js.map +0 -1
  174. package/dist/Link.module-Cf17JWod.js +0 -12
  175. package/dist/Link.module-Cf17JWod.js.map +0 -1
  176. package/dist/LinkButton-pIUNATNE.js.map +0 -1
  177. package/dist/Popover-CcMDyKTj.js.map +0 -1
  178. package/dist/SearchField-DrgNbG3I.js.map +0 -1
  179. package/dist/SelectFieldSync-DF05HvD4.js.map +0 -1
  180. package/dist/SelectTriggerBase.module-DUhQNr6j.js +0 -33
  181. package/dist/SelectTriggerBase.module-DUhQNr6j.js.map +0 -1
  182. package/dist/Toaster-B0ogInIl.js.map +0 -1
  183. package/dist/Tooltip-BbfLb3pI.js.map +0 -1
  184. package/dist/check_circle-Dja-C2lM.js +0 -8
  185. package/dist/check_circle-Dja-C2lM.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Page-Dgpz2WD7.js","sources":["../../hammer-icon/mdi/round/segment.svg","../../hammer-icon/mdi/round/chevron_left.svg","../src/components/Page/PageSidebarContext.ts","../src/components/Page/PageContext.ts","../src/components/Page/PageSidebar.tsx","../src/components/Page/PageSidebarHeader.tsx","../../hammer-icon/mdi/round/settings.svg","../src/components/Page/PageHeader.tsx","../src/components/Page/PageContent.tsx","../src/components/Page/PagePanel.tsx","../src/components/Page/PageFooter.tsx","../src/components/Page/Page.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgSegment = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M10 18h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zM3 7c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1zm7 6h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1z\" }));\nexport default SvgSegment;\n","import * as React from \"react\";\nconst SvgChevronLeft = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.71 6.71a.996.996 0 0 0-1.41 0L8.71 11.3a.996.996 0 0 0 0 1.41l4.59 4.59a.996.996 0 1 0 1.41-1.41L10.83 12l3.88-3.88c.39-.39.38-1.03 0-1.41z\" }));\nexport default SvgChevronLeft;\n","import { createContext } from \"react\";\n\ntype PageSideBarContextProps = {\n collapsed: boolean;\n};\n\nexport const PageSideBarContext = createContext<PageSideBarContextProps | null>(\n null,\n);\n","import { createContext } from \"react\";\n\nexport const PageContext = createContext<PageContextProps>({});\n\nexport type PageContextProps = {\n pageWidth?: number;\n};\n","import { Popover, Button, Icon, Flex, Tooltip } from \"../\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport {\n ComponentPropsWithoutRef,\n forwardRef,\n Ref,\n useContext,\n useState,\n useLayoutEffect,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport SegmentSVG from \"@servicetitan/hammer-icon/mdi/round/segment.svg\";\nimport RespOpen from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_down.svg\";\nimport RespClose from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_up.svg\";\nimport OpenSVG from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport CloseSVG from \"@servicetitan/hammer-icon/mdi/round/chevron_left.svg\";\nimport { PageSideBarContext } from \"./PageSidebarContext\";\nimport { PageContext, PageContextProps } from \"./PageContext\";\n\n/**\n * Props for the PageSidebar component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageSidebarProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Key for storing sidebar collapsed state in localStorage\n * @default \"sidebar-collapsed\"\n */\n localStorageKey?: string;\n /**\n * Custom tracking ID for analytics\n */\n [\"data-tracking-id\"]?: string;\n /**\n * Title to display in the adaptive trigger button\n */\n currentPageTitle?: string;\n};\n\n/**\n * PageSidebar component for creating collapsible navigation sidebars.\n *\n * Features:\n * - Collapsible sidebar with localStorage persistence\n * - Responsive design with adaptive popover on mobile\n * - Automatic tracking ID generation for analytics\n * - Keyboard navigation and accessibility support\n * - Toggle button with tooltip\n * - Context provider for sidebar state\n * - Mobile-friendly popover navigation\n *\n * @example\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Sidebar Title</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n */\nexport const PageSidebar = forwardRef(\n (props: PageSidebarProps, ref: Ref<HTMLDivElement>) => {\n const {\n children,\n className,\n currentPageTitle,\n localStorageKey = \"sidebar-collapsed\",\n ...rest\n } = props;\n\n const data = {\n localStorageKey,\n };\n\n const { pageWidth } = useContext<PageContextProps>(PageContext);\n const [isMobile, setIsMobile] = useState<boolean>();\n\n useLayoutEffect(() => {\n const breakpointWidth = +(\n core.primitive?.BreakpointLg?.value.replace(\"px\", \"\") ?? 0\n );\n const innerWidth = pageWidth ?? 0;\n setIsMobile(innerWidth < breakpointWidth);\n }, [pageWidth]);\n\n const trackingId = useTrackingId({\n name: \"PageSidebarButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const [collapsed, setCollapsed] = useState<boolean>(() => {\n // getting stored value\n const sidebarState = localStorage.getItem(localStorageKey);\n return sidebarState ? JSON.parse(sidebarState) : false;\n });\n const classNames = cx([styles[\"sidebar\"]], className, {\n [styles[\"collapsed\"]]: collapsed,\n });\n const onToggleButtonClick = () => {\n setCollapsed((prev) => {\n localStorage.setItem(localStorageKey, JSON.stringify(!prev));\n return !prev;\n });\n };\n\n if (typeof isMobile !== \"undefined\" && isMobile) {\n return (\n <Popover fillAvailableHeight matchReferenceWidth noPadding disableCaret>\n <Popover.Trigger>\n {(props) => {\n if (typeof document !== \"undefined\") {\n if (props[\"data-state\"] === \"open\") {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"auto\";\n }\n }\n return (\n <div className={styles[\"sidebar-adaptive-trigger-container\"]}>\n <Button\n className={styles[\"sidebar-adaptive-trigger\"]}\n icon={SegmentSVG}\n appearance=\"ghost\"\n {...props}\n >\n {!currentPageTitle ? \"Menu\" : currentPageTitle}\n <Icon\n className={styles[\"sidebar-adaptive-trigger-icon\"]}\n justifyContent=\"end\"\n svg={\n props[\"data-state\"] === \"open\" ? RespClose : RespOpen\n }\n />\n </Button>\n </div>\n );\n }}\n </Popover.Trigger>\n <Popover.Content className={styles[\"sidebar-adaptive-container\"]}>\n <Flex\n direction=\"column\"\n className={styles[\"sidebar-adaptive\"]}\n ref={ref}\n >\n {children}\n </Flex>\n </Popover.Content>\n </Popover>\n );\n }\n\n return (\n <PageSideBarContext.Provider value={{ collapsed }}>\n <div className={classNames} ref={ref} {...rest}>\n <div className={styles[\"sidebar-inner\"]} aria-hidden={collapsed}>\n <div>{children}</div>\n </div>\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Tooltip placement=\"right\">\n <Tooltip.Trigger className={styles[\"toggle-button-tooltip\"]}>\n <Button\n size=\"small\"\n onClick={onToggleButtonClick}\n className={styles[\"toggle-button\"]}\n aria-label={collapsed ? \"Open Sidebar\" : \"Close Sidebar\"}\n data-tracking-id={trackingId}\n icon={collapsed ? OpenSVG : CloseSVG}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {collapsed ? \"Open Sidebar\" : \"Close Sidebar\"}\n </Tooltip.Content>\n </Tooltip>\n </div>\n </div>\n </PageSideBarContext.Provider>\n );\n },\n);\n\nPageSidebar.displayName = \"Page.Sidebar\";\n","import { ComponentPropsWithoutRef, forwardRef, Ref, useContext } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageSideBarContext } from \"./PageSidebarContext\";\n\n/**\n * Props for the PageSidebarHeader component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageSidebarHeaderProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * PageSidebarHeader component for creating header sections within sidebars.\n *\n * Features:\n * - Container for sidebar header content\n * - Automatic visibility handling based on sidebar collapsed state\n * - Supports all standard div props\n * - Context-aware styling\n *\n * @example\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\" size=\"medium\">\n * Sidebar Title\n * </Text>\n * </Page.SidebarHeader>\n */\nexport const PageSidebarHeader = forwardRef(\n (props: PageSidebarHeaderProps, ref: Ref<HTMLDivElement>) => {\n const { children, className, ...rest } = props;\n const context = useContext(PageSideBarContext);\n const classNames = cx([styles[\"sidebar-header\"]], className);\n\n return (\n <div className={classNames} ref={ref} {...rest}>\n <div\n className={styles[\"header-content\"]}\n aria-hidden={context?.collapsed}\n >\n {children}\n </div>\n </div>\n );\n },\n);\n\nPageSidebarHeader.displayName = \"Page.SidebarHeader\";\n","import * as React from \"react\";\nconst SvgSettings = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.5 12c0-.23-.01-.45-.03-.68l1.86-1.41c.4-.3.51-.86.26-1.3l-1.87-3.23a.987.987 0 0 0-1.25-.42l-2.15.91c-.37-.26-.76-.49-1.17-.68l-.29-2.31c-.06-.5-.49-.88-.99-.88h-3.73c-.51 0-.94.38-1 .88l-.29 2.31c-.41.19-.8.42-1.17.68l-2.15-.91c-.46-.2-1-.02-1.25.42L2.41 8.62c-.25.44-.14.99.26 1.3l1.86 1.41a7.343 7.343 0 0 0 0 1.35l-1.86 1.41c-.4.3-.51.86-.26 1.3l1.87 3.23c.25.44.79.62 1.25.42l2.15-.91c.37.26.76.49 1.17.68l.29 2.31c.06.5.49.88.99.88h3.73c.5 0 .93-.38.99-.88l.29-2.31c.41-.19.8-.42 1.17-.68l2.15.91c.46.2 1 .02 1.25-.42l1.87-3.23c.25-.44.14-.99-.26-1.3l-1.86-1.41c.03-.23.04-.45.04-.68zm-7.46 3.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z\" }));\nexport default SvgSettings;\n","import {\n ButtonProps,\n ButtonLinkProps,\n BreadcrumbsLinkProps,\n ChipProps,\n Tooltip,\n ButtonLink,\n Button,\n Flex,\n Menu,\n Breadcrumbs,\n Chip,\n Text,\n} from \"../\";\nimport {\n ComponentPropsWithoutRef,\n ReactNode,\n forwardRef,\n Ref,\n RefObject,\n} from \"react\";\nimport Layout, { LayoutProps } from \"../Layout\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport LocalSettings from \"@servicetitan/hammer-icon/mdi/round/settings.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round/more_vert.svg\";\n\n/**\n * Props for page header action buttons\n */\ntype PageHeaderActionProps = Omit<ButtonProps, \"appearance\"> & {\n /**\n * Label text for the action button\n */\n label: string;\n};\n\n/**\n * Props for page header actions configuration\n */\ntype PageHeaderActionsProps = {\n /**\n * Primary action button\n */\n primary?: PageHeaderActionProps;\n /**\n * Array of secondary action buttons\n */\n secondary?: PageHeaderActionProps[];\n};\n\n/**\n * Base props for preference actions\n */\ntype BasePreferenceProps = {\n /**\n * Accessible label for the preference action\n */\n \"aria-label\": string;\n};\n\n/**\n * Props for preference button actions\n */\ntype PreferenceButtonProps = Omit<\n ButtonProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\n/**\n * Props for preference link actions\n */\ntype PreferenceLinkProps = Omit<\n ButtonLinkProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\n/**\n * Props for the PageHeader component\n * @extends ComponentPropsWithoutRef<\"header\">\n */\nexport type PageHeaderProps = ComponentPropsWithoutRef<\"header\"> & {\n /**\n * Main title of the page\n */\n title: string;\n /**\n * Breadcrumb navigation links\n */\n breadcrumbs?: BreadcrumbsLinkProps[];\n /**\n * Status chips to display\n */\n chips?: ChipProps[];\n /**\n * Description text or content below the title\n */\n description?: ReactNode;\n /**\n * Primary and secondary action buttons\n */\n actions?: PageHeaderActionsProps;\n /**\n * Preference action button or link\n */\n preferenceAction?: PreferenceButtonProps | PreferenceLinkProps;\n /**\n * Layout configuration for the header\n */\n layout?: LayoutProps;\n};\n\n/**\n * PageHeader component for creating page headers with navigation and actions.\n *\n * Features:\n * - Page title with semantic heading\n * - Breadcrumb navigation support\n * - Status chips display\n * - Primary and secondary action buttons\n * - Preference action button/link\n * - Responsive layout with fluid grid\n * - Accessibility support with proper ARIA labels\n * - Flexible layout configuration\n * - Description content support\n *\n * @example\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[\n * { href: \"/\", children: \"Home\" },\n * { children: \"Current Page\" }\n * ]}\n * chips={[{ label: \"Status\" }]}\n * actions={{\n * primary: { label: \"Save\", onClick: handleSave },\n * secondary: [{ label: \"Cancel\", onClick: handleCancel }]\n * }}\n * />\n */\nexport const PageHeader = forwardRef(\n (props: PageHeaderProps, ref: Ref<HTMLHeadElement>) => {\n const {\n title,\n breadcrumbs,\n chips,\n description,\n actions,\n preferenceAction,\n layout,\n className,\n ...rest\n } = props;\n\n const { fluid, variant } = layout || {};\n\n const preferenceItem =\n preferenceAction &&\n (\"href\" in preferenceAction ? (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonLink\n appearance=\"ghost\"\n icon={LocalSettings}\n size=\"small\"\n className={styles[\"preference-action\"]}\n {...(preferenceAction as PreferenceLinkProps)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{preferenceAction[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n appearance=\"ghost\"\n icon={LocalSettings}\n size=\"small\"\n className={styles[\"preference-action\"]}\n {...(preferenceAction as PreferenceButtonProps)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{preferenceAction[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n ));\n\n const actionItems = actions && (\n <Flex justifyContent=\"flex-end\" className={styles.actions}>\n {/* Only primary action */}\n {actions.primary &&\n (!actions.secondary || actions.secondary.length === 0) && (\n <Button appearance=\"primary\" {...actions.primary}>\n {actions.primary.label}\n </Button>\n )}\n\n {/* Only secondary actions (1-2 buttons) */}\n {!!actions.secondary?.length &&\n actions.secondary.length < 3 &&\n !actions.primary &&\n actions.secondary.map((action, index) => (\n <Button key={index} appearance=\"secondary\" {...action}>\n {action.label}\n </Button>\n ))}\n\n {/* 1 secondary action + primary action */}\n {actions.primary &&\n !!actions.secondary?.length &&\n actions.secondary.length === 1 && (\n <>\n <Button appearance=\"secondary\" {...actions.secondary[0]}>\n {actions.secondary[0].label}\n </Button>\n <Button appearance=\"primary\" {...actions.primary}>\n {actions.primary.label}\n </Button>\n </>\n )}\n\n {/* Multiple secondary actions (3+) with optional primary */}\n {!!actions.secondary?.length &&\n (actions.secondary.length >= 3 ||\n (actions.secondary.length >= 2 && actions.primary)) && (\n <>\n <Menu\n trigger={({ ref, ...rest }) => (\n <Tooltip>\n <Tooltip.Trigger\n ref={ref as unknown as RefObject<HTMLDivElement>}\n >\n <Button\n appearance=\"secondary\"\n icon={MoreVert}\n aria-label=\"More actions\"\n {...rest}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>More actions</Tooltip.Content>\n </Tooltip>\n )}\n >\n {actions.secondary.map((action, index) => (\n <Menu.Item\n key={index}\n label={action.label}\n onClick={action.onClick}\n disabled={action.disabled}\n />\n ))}\n </Menu>\n {actions.primary && (\n <Button appearance=\"primary\" {...actions.primary}>\n {actions.primary.label}\n </Button>\n )}\n </>\n )}\n </Flex>\n );\n\n const headerClassName = cx(styles.content, styles.header, className);\n\n const headerContentClassName = cx(\n styles[\"content-inner\"],\n styles[\"content-header-inner\"],\n );\n\n return (\n <header ref={ref} className={headerClassName} {...rest}>\n <div className={headerContentClassName}>\n <Layout fluid={fluid} variant={variant} className={styles[\"layout\"]}>\n {breadcrumbs && (\n <Layout.Item>\n <Breadcrumbs>\n {breadcrumbs.map((breadcrumb, index) => (\n <Breadcrumbs.Link key={index} {...breadcrumb} />\n ))}\n </Breadcrumbs>\n </Layout.Item>\n )}\n\n <Layout.Item md={actionItems ? 6 : 12}>\n <div className={styles[\"title-wrapper\"]}>\n <Text\n variant=\"headline\"\n size=\"large\"\n el=\"h1\"\n className={styles.title}\n >\n {title}\n </Text>\n\n {preferenceItem}\n </div>\n\n {chips && (\n <Flex className={styles.chips}>\n {chips.map((chip, index) => (\n <Chip key={index} {...chip} />\n ))}\n </Flex>\n )}\n </Layout.Item>\n\n {actions && <Layout.Item md={6}>{actionItems}</Layout.Item>}\n\n {description && (\n <Layout.Item md={12} className={styles.description}>\n {description}\n </Layout.Item>\n )}\n </Layout>\n </div>\n </header>\n );\n },\n);\n\nPageHeader.displayName = \"Page.Header\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n Ref,\n useEffect,\n useRef,\n useState,\n UIEvent,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { useMergeRefs } from \"../../hooks\";\n\n/**\n * Props for the PageContent component\n * @extends ComponentPropsWithoutRef<\"main\">\n */\nexport type PageContentProps = ComponentPropsWithoutRef<\"main\">;\n\n/**\n * PageContent component for the main content area of a page.\n *\n * Features:\n * - Semantic main element for page content\n * - Virtual scrolling support for long content\n * - Automatic scroll synchronization\n * - Responsive design\n * - Accessibility support with proper main landmark\n * - Scroll position management\n *\n * @example\n * <Page.Content>\n * <Text>Main page content goes here</Text>\n * <Button>Action Button</Button>\n * </Page.Content>\n */\nexport const PageContent = forwardRef(\n (props: PageContentProps, ref: Ref<HTMLAreaElement>) => {\n const { children, className, ...rest } = props;\n const classNames = cx([styles[\"content\"]], className);\n const mainRef = useRef<HTMLAreaElement>(null);\n const virtualScrollRef = useRef<HTMLDivElement>(null);\n const blocker = useRef(true);\n const [leftOffset, setLeftOffset] = useState(\n (mainRef.current?.offsetLeft ?? 0) +\n (mainRef.current?.offsetWidth ?? 0) -\n 9,\n );\n const [contentHeight, setContentHeight] = useState(\n mainRef.current?.offsetHeight,\n );\n\n // Updates scroll position\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n if (!blocker.current) return;\n function updatePosition() {\n const newValue = window.scrollY;\n\n virtualScrollRef.current?.scrollTo(0, newValue ?? 0);\n }\n window?.addEventListener(\"scroll\", updatePosition, { passive: true });\n\n return () => {\n window?.removeEventListener(\"scroll\", updatePosition);\n };\n }, []);\n\n // Updates virtual scroll properties when main resizes\n useEffect(() => {\n if (mainRef.current) {\n const observer = new ResizeObserver(() => {\n if (!mainRef.current) return;\n setLeftOffset(\n mainRef.current.offsetLeft + mainRef.current.offsetWidth - 9,\n );\n setContentHeight(mainRef.current.offsetHeight);\n });\n\n observer.observe(mainRef.current);\n\n // Cleanup function\n return () => {\n observer.disconnect();\n };\n }\n }, []);\n\n function scrollBody(e: UIEvent<HTMLElement>) {\n if (typeof window === \"undefined\") return;\n if (blocker.current) return;\n window.scrollTo(0, (e.target as HTMLDivElement).scrollTop);\n }\n\n return (\n <main className={classNames} ref={useMergeRefs([mainRef, ref])} {...rest}>\n <div className={styles[\"content-inner\"]}>{children}</div>\n <div\n className={styles[\"virtual-scroll-container\"]}\n ref={virtualScrollRef}\n style={{\n left: leftOffset,\n }}\n onScrollCapture={scrollBody}\n onMouseEnter={() => {\n blocker.current = false;\n }}\n onMouseLeave={() => {\n blocker.current = true;\n }}\n >\n <div style={{ width: 1, height: contentHeight }} />\n </div>\n </main>\n );\n },\n);\n\nPageContent.displayName = \"PageContent\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n Ref,\n useContext,\n useLayoutEffect,\n useState,\n} from \"react\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport Dialog from \"../Dialog\";\nimport { PageContext, PageContextProps } from \"./PageContext\";\n\n/**\n * Props for the PagePanel component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PagePanelProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Whether the panel is open\n * @default true\n */\n open?: boolean;\n /**\n * Size of the panel\n * @default \"medium\"\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Whether to remove default padding from the panel\n * @default false\n */\n noPadding?: boolean;\n};\n\n/**\n * PagePanel component for creating slide-out panels or dialogs.\n *\n * Features:\n * - Responsive design with dialog fallback on mobile\n * - Multiple size variants (small, medium, large)\n * - Optional padding control\n * - Persistent or controlled open state\n * - Automatic mobile dialog conversion\n * - Keyboard navigation and accessibility support\n * - Smooth animations and transitions\n *\n * @example\n * <Page.Panel open={isOpen} size=\"medium\">\n * <Text variant=\"headline\" el=\"h3\">Panel Content</Text>\n * <Button onClick={() => setIsOpen(false)}>Close</Button>\n * </Page.Panel>\n */\nexport const PagePanel = forwardRef(\n (props: PagePanelProps, ref: Ref<HTMLDivElement>) => {\n const {\n children,\n open,\n size = \"medium\",\n noPadding,\n style,\n className,\n ...rest\n } = props;\n const classNames = cx([styles[\"panel\"]], [styles[size]], className, {\n [styles[\"open\"]]: typeof open === \"undefined\" ? true : open,\n [styles[\"persistent\"]]: typeof open === \"undefined\",\n [styles[\"noPadding\"]]: noPadding,\n });\n\n const { pageWidth } = useContext<PageContextProps>(PageContext);\n\n const [isMobile, setIsMobile] = useState<boolean>(false);\n\n useLayoutEffect(() => {\n const breakpointWidth = +(\n core.primitive?.BreakpointLg?.value.replace(\"px\", \"\") ?? 0\n );\n const innerWidth = pageWidth ?? 0;\n setIsMobile(innerWidth < breakpointWidth);\n }, [pageWidth]);\n\n if (typeof open !== \"undefined\" && isMobile) {\n return (\n <Dialog open={open}>\n <Dialog.Content>\n <div\n className={classNames}\n aria-hidden={!open}\n aria-disabled={!open}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n </Dialog.Content>\n </Dialog>\n );\n }\n return (\n <div\n className={classNames}\n aria-hidden={!open}\n aria-disabled={!open}\n ref={ref}\n {...rest}\n >\n <div\n className={styles[\"panel-inner\"]}\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */\n tabIndex={typeof open !== \"undefined\" && open ? 0 : -1}\n style={style}\n >\n <div>{children}</div>\n </div>\n </div>\n );\n },\n);\nPagePanel.displayName = \"PagePanel\";\n","import { ComponentPropsWithoutRef, forwardRef, Ref } from \"react\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { LayoutUtilProps } from \"../../types\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\n\n/**\n * Props for the PageFooter component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type PageFooterProps = ComponentPropsWithoutRef<\"div\"> & LayoutUtilProps;\n\n/**\n * PageFooter component for creating page footers with layout utilities.\n *\n * Features:\n * - Semantic footer element\n * - Layout utility props support\n * - Responsive design\n * - Accessibility support with proper footer landmark\n * - Flexible content positioning\n *\n * @example\n * <Page.Footer>\n * <Text>Footer content with layout utilities</Text>\n * </Page.Footer>\n */\nexport const PageFooter = forwardRef(\n (props: PageFooterProps, ref: Ref<HTMLDivElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { children, className, style, ...rest } = componentProps;\n\n const classNames = cx([styles[\"content-footer\"]], className);\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n return (\n <footer className={classNames} ref={ref} style={styleCombined} {...rest}>\n {children}\n </footer>\n );\n },\n);\nPageFooter.displayName = \"PageFooter\";\n","import {\n ComponentPropsWithoutRef,\n Ref,\n forwardRef,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageSidebar } from \"./PageSidebar\";\nimport { PageSidebarHeader } from \"./PageSidebarHeader\";\nimport { PageHeader } from \"./PageHeader\";\nimport { PageContent } from \"./PageContent\";\nimport { PagePanel } from \"./PagePanel\";\nimport { PageFooter } from \"./PageFooter\";\nimport { PageContext } from \"./PageContext\";\nimport { useMergeRefs } from \"../../hooks\";\n\n//--- Start Page Element ---//\n/**\n * Props for the Page component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageProps = ComponentPropsWithoutRef<\"div\">;\n\nconst PageElement = forwardRef((props: PageProps, ref: Ref<HTMLDivElement>) => {\n const { children, className, ...rest } = props;\n const classNames = cx(styles[\"page\"], className);\n const elRef = useRef<HTMLDivElement>(null);\n const combinedRef = useMergeRefs([elRef, ref]);\n\n const [pageWidth, setPageWidth] = useState<number>(0);\n\n useLayoutEffect(() => {\n const element = elRef.current;\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n setPageWidth(entry.contentRect.width);\n }\n });\n if (element) {\n resizeObserver.observe(element);\n }\n return () => {\n if (element) {\n resizeObserver.unobserve(element);\n resizeObserver.disconnect();\n }\n };\n }, [elRef]);\n\n return (\n <PageContext.Provider value={{ pageWidth }}>\n <div className={classNames} data-anv=\"Page\" ref={combinedRef} {...rest}>\n <div className={styles[\"container\"]}>{children}</div>\n </div>\n </PageContext.Provider>\n );\n});\n\nPageElement.displayName = \"Page\";\n\n/**\n * Page component for creating full-page layouts with navigation and content areas.\n *\n * Features:\n * - Container for complete page layouts\n * - Supports sidebar navigation with collapsible state\n * - Header with breadcrumbs, chips, and action buttons\n * - Main content area with virtual scrolling\n * - Optional slide-out panels with responsive dialog fallback\n * - Footer with layout utilities\n * - Responsive design with mobile adaptations\n * - Accessibility support with proper landmarks\n * - Automatic tracking ID generation for analytics\n * - Local storage persistence for sidebar state\n *\n * @example\n * <Page>\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Navigation</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[{ href: \"/\", children: \"Home\" }]}\n * actions={{ primary: { label: \"Save\", onClick: handleSave } }}\n * />\n * <Page.Content>\n * <Text>Main content</Text>\n * </Page.Content>\n * <Page.Panel open={isPanelOpen} size=\"medium\">\n * <Text>Panel content</Text>\n * </Page.Panel>\n * <Page.Footer>\n * <Text>Footer content</Text>\n * </Page.Footer>\n * </Page>\n */\nexport const Page = Object.assign(PageElement, {\n /**\n * PageSidebar component for creating collapsible navigation sidebars.\n *\n * Features:\n * - Collapsible sidebar with localStorage persistence\n * - Responsive design with adaptive popover on mobile\n * - Automatic tracking ID generation for analytics\n * - Keyboard navigation and accessibility support\n * - Toggle button with tooltip\n * - Context provider for sidebar state\n * - Mobile-friendly popover navigation\n *\n * @example\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Sidebar Title</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n */\n Sidebar: PageSidebar,\n /**\n * PageSidebarHeader component for creating header sections within sidebars.\n *\n * Features:\n * - Container for sidebar header content\n * - Automatic visibility handling based on sidebar collapsed state\n * - Supports all standard div props\n * - Context-aware styling\n *\n * @example\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\" size=\"medium\">\n * Sidebar Title\n * </Text>\n * </Page.SidebarHeader>\n */\n SidebarHeader: PageSidebarHeader,\n /**\n * PageHeader component for creating page headers with navigation and actions.\n *\n * Features:\n * - Page title with semantic heading\n * - Breadcrumb navigation support\n * - Status chips display\n * - Primary and secondary action buttons\n * - Preference action button/link\n * - Responsive layout with fluid grid\n * - Accessibility support with proper ARIA labels\n * - Flexible layout configuration\n * - Description content support\n *\n * @example\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[\n * { href: \"/\", children: \"Home\" },\n * { children: \"Current Page\" }\n * ]}\n * chips={[{ label: \"Status\" }]}\n * actions={{\n * primary: { label: \"Save\", onClick: handleSave },\n * secondary: [{ label: \"Cancel\", onClick: handleCancel }]\n * }}\n * />\n */\n Header: PageHeader,\n /**\n * PageContent component for the main content area of a page.\n *\n * Features:\n * - Semantic main element for page content\n * - Virtual scrolling support for long content\n * - Automatic scroll synchronization\n * - Responsive design\n * - Accessibility support with proper main landmark\n * - Scroll position management\n *\n * @example\n * <Page.Content>\n * <Text>Main page content goes here</Text>\n * <Button>Action Button</Button>\n * </Page.Content>\n */\n Content: PageContent,\n /**\n * PagePanel component for creating slide-out panels or dialogs.\n *\n * Features:\n * - Responsive design with dialog fallback on mobile\n * - Multiple size variants (small, medium, large)\n * - Optional padding control\n * - Persistent or controlled open state\n * - Automatic mobile dialog conversion\n * - Keyboard navigation and accessibility support\n * - Smooth animations and transitions\n *\n * @example\n * <Page.Panel open={isOpen} size=\"medium\">\n * <Text variant=\"headline\" el=\"h3\">Panel Content</Text>\n * <Button onClick={() => setIsOpen(false)}>Close</Button>\n * </Page.Panel>\n */\n Panel: PagePanel,\n /**\n * PageFooter component for creating page footers with layout utilities.\n *\n * Features:\n * - Semantic footer element\n * - Layout utility props support\n * - Responsive design\n * - Accessibility support with proper footer landmark\n * - Flexible content positioning\n *\n * @example\n * <Page.Footer>\n * <Text>Footer content with layout utilities</Text>\n * </Page.Footer>\n */\n Footer: PageFooter,\n});\n"],"names":["core.primitive?.BreakpointLg","props","SegmentSVG","RespClose","RespOpen","OpenSVG","CloseSVG","LocalSettings","ref","rest","MoreVert"],"mappings":"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"}
1
+ {"version":3,"file":"Page-ClI3IOc7.js","sources":["../../hammer-icon/mdi/round/segment.svg","../../hammer-icon/mdi/round/chevron_left.svg","../src/components/Page/PageSidebarContext.ts","../src/components/Page/PageContext.ts","../src/components/Page/PageSidebar.tsx","../src/components/Page/PageSidebarHeader.tsx","../../hammer-icon/mdi/round/settings.svg","../src/components/Page/PageHeader.tsx","../src/components/Page/PageContent.tsx","../src/components/Page/PagePanel.tsx","../src/components/Page/PageFooter.tsx","../src/components/Page/Page.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgSegment = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M10 18h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zM3 7c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1zm7 6h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1z\" }));\nexport default SvgSegment;\n","import * as React from \"react\";\nconst SvgChevronLeft = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.71 6.71a.996.996 0 0 0-1.41 0L8.71 11.3a.996.996 0 0 0 0 1.41l4.59 4.59a.996.996 0 1 0 1.41-1.41L10.83 12l3.88-3.88c.39-.39.38-1.03 0-1.41z\" }));\nexport default SvgChevronLeft;\n","import { createContext } from \"react\";\n\ntype PageSideBarContextProps = {\n collapsed: boolean;\n};\n\nexport const PageSideBarContext = createContext<PageSideBarContextProps | null>(\n null,\n);\n","import { createContext } from \"react\";\n\nexport const PageContext = createContext<PageContextProps>({});\n\nexport type PageContextProps = {\n pageWidth?: number;\n};\n","import { Popover, Button, Icon, Flex, Tooltip } from \"../\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport {\n ComponentPropsWithoutRef,\n forwardRef,\n Ref,\n useContext,\n useState,\n useLayoutEffect,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport SegmentSVG from \"@servicetitan/hammer-icon/mdi/round/segment.svg\";\nimport RespOpen from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_down.svg\";\nimport RespClose from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_up.svg\";\nimport OpenSVG from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport CloseSVG from \"@servicetitan/hammer-icon/mdi/round/chevron_left.svg\";\nimport { PageSideBarContext } from \"./PageSidebarContext\";\nimport { PageContext, PageContextProps } from \"./PageContext\";\n\n/**\n * Props for the PageSidebar component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageSidebarProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Key for storing sidebar collapsed state in localStorage\n * @default \"sidebar-collapsed\"\n */\n localStorageKey?: string;\n /**\n * Custom tracking ID for analytics\n */\n [\"data-tracking-id\"]?: string;\n /**\n * Title to display in the adaptive trigger button\n */\n currentPageTitle?: string;\n};\n\n/**\n * PageSidebar component for creating collapsible navigation sidebars.\n *\n * Features:\n * - Collapsible sidebar with localStorage persistence\n * - Responsive design with adaptive popover on mobile\n * - Automatic tracking ID generation for analytics\n * - Keyboard navigation and accessibility support\n * - Toggle button with tooltip\n * - Context provider for sidebar state\n * - Mobile-friendly popover navigation\n *\n * @example\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Sidebar Title</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n */\nexport const PageSidebar = forwardRef(\n (props: PageSidebarProps, ref: Ref<HTMLDivElement>) => {\n const {\n children,\n className,\n currentPageTitle,\n localStorageKey = \"sidebar-collapsed\",\n ...rest\n } = props;\n\n const data = {\n localStorageKey,\n };\n\n const { pageWidth } = useContext<PageContextProps>(PageContext);\n const [isMobile, setIsMobile] = useState<boolean>();\n\n useLayoutEffect(() => {\n const breakpointWidth = +(\n core.primitive?.BreakpointLg?.value.replace(\"px\", \"\") ?? 0\n );\n const innerWidth = pageWidth ?? 0;\n setIsMobile(innerWidth < breakpointWidth);\n }, [pageWidth]);\n\n const trackingId = useTrackingId({\n name: \"PageSidebarButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const [collapsed, setCollapsed] = useState<boolean>(() => {\n // getting stored value\n const sidebarState = localStorage.getItem(localStorageKey);\n return sidebarState ? JSON.parse(sidebarState) : false;\n });\n const classNames = cx([styles[\"sidebar\"]], className, {\n [styles[\"collapsed\"]]: collapsed,\n });\n const onToggleButtonClick = () => {\n setCollapsed((prev) => {\n localStorage.setItem(localStorageKey, JSON.stringify(!prev));\n return !prev;\n });\n };\n\n if (typeof isMobile !== \"undefined\" && isMobile) {\n return (\n <Popover fillAvailableHeight matchReferenceWidth noPadding disableCaret>\n <Popover.Trigger>\n {(props) => {\n if (typeof document !== \"undefined\") {\n if (props[\"data-state\"] === \"open\") {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"auto\";\n }\n }\n return (\n <div className={styles[\"sidebar-adaptive-trigger-container\"]}>\n <Button\n className={styles[\"sidebar-adaptive-trigger\"]}\n icon={SegmentSVG}\n appearance=\"ghost\"\n {...props}\n >\n {!currentPageTitle ? \"Menu\" : currentPageTitle}\n <Icon\n className={styles[\"sidebar-adaptive-trigger-icon\"]}\n justifyContent=\"end\"\n svg={\n props[\"data-state\"] === \"open\" ? RespClose : RespOpen\n }\n />\n </Button>\n </div>\n );\n }}\n </Popover.Trigger>\n <Popover.Content className={styles[\"sidebar-adaptive-container\"]}>\n <Flex\n direction=\"column\"\n className={styles[\"sidebar-adaptive\"]}\n ref={ref}\n >\n {children}\n </Flex>\n </Popover.Content>\n </Popover>\n );\n }\n\n return (\n <PageSideBarContext.Provider value={{ collapsed }}>\n <div className={classNames} ref={ref} {...rest}>\n <div className={styles[\"sidebar-inner\"]} aria-hidden={collapsed}>\n <div>{children}</div>\n </div>\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Tooltip placement=\"right\">\n <Tooltip.Trigger className={styles[\"toggle-button-tooltip\"]}>\n <Button\n size=\"small\"\n onClick={onToggleButtonClick}\n className={styles[\"toggle-button\"]}\n aria-label={collapsed ? \"Open Sidebar\" : \"Close Sidebar\"}\n data-tracking-id={trackingId}\n icon={collapsed ? OpenSVG : CloseSVG}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {collapsed ? \"Open Sidebar\" : \"Close Sidebar\"}\n </Tooltip.Content>\n </Tooltip>\n </div>\n </div>\n </PageSideBarContext.Provider>\n );\n },\n);\n\nPageSidebar.displayName = \"Page.Sidebar\";\n","import { ComponentPropsWithoutRef, forwardRef, Ref, useContext } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageSideBarContext } from \"./PageSidebarContext\";\n\n/**\n * Props for the PageSidebarHeader component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageSidebarHeaderProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * PageSidebarHeader component for creating header sections within sidebars.\n *\n * Features:\n * - Container for sidebar header content\n * - Automatic visibility handling based on sidebar collapsed state\n * - Supports all standard div props\n * - Context-aware styling\n *\n * @example\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\" size=\"medium\">\n * Sidebar Title\n * </Text>\n * </Page.SidebarHeader>\n */\nexport const PageSidebarHeader = forwardRef(\n (props: PageSidebarHeaderProps, ref: Ref<HTMLDivElement>) => {\n const { children, className, ...rest } = props;\n const context = useContext(PageSideBarContext);\n const classNames = cx([styles[\"sidebar-header\"]], className);\n\n return (\n <div className={classNames} ref={ref} {...rest}>\n <div\n className={styles[\"header-content\"]}\n aria-hidden={context?.collapsed}\n >\n {children}\n </div>\n </div>\n );\n },\n);\n\nPageSidebarHeader.displayName = \"Page.SidebarHeader\";\n","import * as React from \"react\";\nconst SvgSettings = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.5 12c0-.23-.01-.45-.03-.68l1.86-1.41c.4-.3.51-.86.26-1.3l-1.87-3.23a.987.987 0 0 0-1.25-.42l-2.15.91c-.37-.26-.76-.49-1.17-.68l-.29-2.31c-.06-.5-.49-.88-.99-.88h-3.73c-.51 0-.94.38-1 .88l-.29 2.31c-.41.19-.8.42-1.17.68l-2.15-.91c-.46-.2-1-.02-1.25.42L2.41 8.62c-.25.44-.14.99.26 1.3l1.86 1.41a7.343 7.343 0 0 0 0 1.35l-1.86 1.41c-.4.3-.51.86-.26 1.3l1.87 3.23c.25.44.79.62 1.25.42l2.15-.91c.37.26.76.49 1.17.68l.29 2.31c.06.5.49.88.99.88h3.73c.5 0 .93-.38.99-.88l.29-2.31c.41-.19.8-.42 1.17-.68l2.15.91c.46.2 1 .02 1.25-.42l1.87-3.23c.25-.44.14-.99-.26-1.3l-1.86-1.41c.03-.23.04-.45.04-.68zm-7.46 3.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z\" }));\nexport default SvgSettings;\n","import {\n ButtonProps,\n ButtonLinkProps,\n BreadcrumbsLinkProps,\n ChipProps,\n Tooltip,\n ButtonLink,\n Button,\n Flex,\n Menu,\n Breadcrumbs,\n Chip,\n Text,\n} from \"../\";\nimport {\n ComponentPropsWithoutRef,\n ReactNode,\n forwardRef,\n Ref,\n RefObject,\n} from \"react\";\nimport Layout, { LayoutProps } from \"../Layout\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport LocalSettings from \"@servicetitan/hammer-icon/mdi/round/settings.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round/more_vert.svg\";\n\n/**\n * Props for page header action buttons\n */\ntype PageHeaderActionProps = Omit<ButtonProps, \"appearance\"> & {\n /**\n * Label text for the action button\n */\n label: string;\n};\n\n/**\n * Props for page header actions configuration\n */\ntype PageHeaderActionsProps = {\n /**\n * Primary action button\n */\n primary?: PageHeaderActionProps;\n /**\n * Array of secondary action buttons\n */\n secondary?: PageHeaderActionProps[];\n};\n\n/**\n * Base props for preference actions\n */\ntype BasePreferenceProps = {\n /**\n * Accessible label for the preference action\n */\n \"aria-label\": string;\n};\n\n/**\n * Props for preference button actions\n */\ntype PreferenceButtonProps = Omit<\n ButtonProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\n/**\n * Props for preference link actions\n */\ntype PreferenceLinkProps = Omit<\n ButtonLinkProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\n/**\n * Props for the PageHeader component\n * @extends ComponentPropsWithoutRef<\"header\">\n */\nexport type PageHeaderProps = ComponentPropsWithoutRef<\"header\"> & {\n /**\n * Main title of the page\n */\n title: string;\n /**\n * Breadcrumb navigation links\n */\n breadcrumbs?: BreadcrumbsLinkProps[];\n /**\n * Status chips to display\n */\n chips?: ChipProps[];\n /**\n * Description text or content below the title\n */\n description?: ReactNode;\n /**\n * Primary and secondary action buttons\n */\n actions?: PageHeaderActionsProps;\n /**\n * Preference action button or link\n */\n preferenceAction?: PreferenceButtonProps | PreferenceLinkProps;\n /**\n * Layout configuration for the header\n */\n layout?: LayoutProps;\n};\n\n/**\n * PageHeader component for creating page headers with navigation and actions.\n *\n * Features:\n * - Page title with semantic heading\n * - Breadcrumb navigation support\n * - Status chips display\n * - Primary and secondary action buttons\n * - Preference action button/link\n * - Responsive layout with fluid grid\n * - Accessibility support with proper ARIA labels\n * - Flexible layout configuration\n * - Description content support\n *\n * @example\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[\n * { href: \"/\", children: \"Home\" },\n * { children: \"Current Page\" }\n * ]}\n * chips={[{ label: \"Status\" }]}\n * actions={{\n * primary: { label: \"Save\", onClick: handleSave },\n * secondary: [{ label: \"Cancel\", onClick: handleCancel }]\n * }}\n * />\n */\nexport const PageHeader = forwardRef(\n (props: PageHeaderProps, ref: Ref<HTMLHeadElement>) => {\n const {\n title,\n breadcrumbs,\n chips,\n description,\n actions,\n preferenceAction,\n layout,\n className,\n ...rest\n } = props;\n\n const { fluid, variant } = layout || {};\n\n const preferenceItem =\n preferenceAction &&\n (\"href\" in preferenceAction ? (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonLink\n appearance=\"ghost\"\n icon={LocalSettings}\n size=\"small\"\n className={styles[\"preference-action\"]}\n {...(preferenceAction as PreferenceLinkProps)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{preferenceAction[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n appearance=\"ghost\"\n icon={LocalSettings}\n size=\"small\"\n className={styles[\"preference-action\"]}\n {...(preferenceAction as PreferenceButtonProps)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{preferenceAction[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n ));\n\n const actionItems = actions && (\n <Flex justifyContent=\"flex-end\" className={styles.actions}>\n {/* Only primary action */}\n {actions.primary &&\n (!actions.secondary || actions.secondary.length === 0) && (\n <Button appearance=\"primary\" {...actions.primary}>\n {actions.primary.label}\n </Button>\n )}\n\n {/* Only secondary actions (1-2 buttons) */}\n {!!actions.secondary?.length &&\n actions.secondary.length < 3 &&\n !actions.primary &&\n actions.secondary.map((action, index) => (\n <Button key={index} appearance=\"secondary\" {...action}>\n {action.label}\n </Button>\n ))}\n\n {/* 1 secondary action + primary action */}\n {actions.primary &&\n !!actions.secondary?.length &&\n actions.secondary.length === 1 && (\n <>\n <Button appearance=\"secondary\" {...actions.secondary[0]}>\n {actions.secondary[0].label}\n </Button>\n <Button appearance=\"primary\" {...actions.primary}>\n {actions.primary.label}\n </Button>\n </>\n )}\n\n {/* Multiple secondary actions (3+) with optional primary */}\n {!!actions.secondary?.length &&\n (actions.secondary.length >= 3 ||\n (actions.secondary.length >= 2 && actions.primary)) && (\n <>\n <Menu\n trigger={({ ref, ...rest }) => (\n <Tooltip>\n <Tooltip.Trigger\n ref={ref as unknown as RefObject<HTMLDivElement>}\n >\n <Button\n appearance=\"secondary\"\n icon={MoreVert}\n aria-label=\"More actions\"\n {...rest}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>More actions</Tooltip.Content>\n </Tooltip>\n )}\n >\n {actions.secondary.map((action, index) => (\n <Menu.Item\n key={index}\n label={action.label}\n onClick={action.onClick}\n disabled={action.disabled}\n />\n ))}\n </Menu>\n {actions.primary && (\n <Button appearance=\"primary\" {...actions.primary}>\n {actions.primary.label}\n </Button>\n )}\n </>\n )}\n </Flex>\n );\n\n const headerClassName = cx(styles.content, styles.header, className);\n\n const headerContentClassName = cx(\n styles[\"content-inner\"],\n styles[\"content-header-inner\"],\n );\n\n return (\n <header ref={ref} className={headerClassName} {...rest}>\n <div className={headerContentClassName}>\n <Layout fluid={fluid} variant={variant} className={styles[\"layout\"]}>\n {breadcrumbs && (\n <Layout.Item>\n <Breadcrumbs>\n {breadcrumbs.map((breadcrumb, index) => (\n <Breadcrumbs.Link key={index} {...breadcrumb} />\n ))}\n </Breadcrumbs>\n </Layout.Item>\n )}\n\n <Layout.Item md={actionItems ? 6 : 12}>\n <div className={styles[\"title-wrapper\"]}>\n <Text\n variant=\"headline\"\n size=\"large\"\n el=\"h1\"\n className={styles.title}\n >\n {title}\n </Text>\n\n {preferenceItem}\n </div>\n\n {chips && (\n <Flex className={styles.chips}>\n {chips.map((chip, index) => (\n <Chip key={index} {...chip} />\n ))}\n </Flex>\n )}\n </Layout.Item>\n\n {actions && <Layout.Item md={6}>{actionItems}</Layout.Item>}\n\n {description && (\n <Layout.Item md={12} className={styles.description}>\n {description}\n </Layout.Item>\n )}\n </Layout>\n </div>\n </header>\n );\n },\n);\n\nPageHeader.displayName = \"Page.Header\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n Ref,\n useEffect,\n useRef,\n useState,\n UIEvent,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { useMergeRefs } from \"../../hooks\";\n\n/**\n * Props for the PageContent component\n * @extends ComponentPropsWithoutRef<\"main\">\n */\nexport type PageContentProps = ComponentPropsWithoutRef<\"main\">;\n\n/**\n * PageContent component for the main content area of a page.\n *\n * Features:\n * - Semantic main element for page content\n * - Virtual scrolling support for long content\n * - Automatic scroll synchronization\n * - Responsive design\n * - Accessibility support with proper main landmark\n * - Scroll position management\n *\n * @example\n * <Page.Content>\n * <Text>Main page content goes here</Text>\n * <Button>Action Button</Button>\n * </Page.Content>\n */\nexport const PageContent = forwardRef(\n (props: PageContentProps, ref: Ref<HTMLAreaElement>) => {\n const { children, className, ...rest } = props;\n const classNames = cx([styles[\"content\"]], className);\n const mainRef = useRef<HTMLAreaElement>(null);\n const virtualScrollRef = useRef<HTMLDivElement>(null);\n const blocker = useRef(true);\n const [leftOffset, setLeftOffset] = useState(\n (mainRef.current?.offsetLeft ?? 0) +\n (mainRef.current?.offsetWidth ?? 0) -\n 9,\n );\n const [contentHeight, setContentHeight] = useState(\n mainRef.current?.offsetHeight,\n );\n\n // Updates scroll position\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n if (!blocker.current) return;\n function updatePosition() {\n const newValue = window.scrollY;\n\n virtualScrollRef.current?.scrollTo(0, newValue ?? 0);\n }\n window?.addEventListener(\"scroll\", updatePosition, { passive: true });\n\n return () => {\n window?.removeEventListener(\"scroll\", updatePosition);\n };\n }, []);\n\n // Updates virtual scroll properties when main resizes\n useEffect(() => {\n if (mainRef.current) {\n const observer = new ResizeObserver(() => {\n if (!mainRef.current) return;\n setLeftOffset(\n mainRef.current.offsetLeft + mainRef.current.offsetWidth - 9,\n );\n setContentHeight(mainRef.current.offsetHeight);\n });\n\n observer.observe(mainRef.current);\n\n // Cleanup function\n return () => {\n observer.disconnect();\n };\n }\n }, []);\n\n function scrollBody(e: UIEvent<HTMLElement>) {\n if (typeof window === \"undefined\") return;\n if (blocker.current) return;\n window.scrollTo(0, (e.target as HTMLDivElement).scrollTop);\n }\n\n return (\n <main className={classNames} ref={useMergeRefs([mainRef, ref])} {...rest}>\n <div className={styles[\"content-inner\"]}>{children}</div>\n <div\n className={styles[\"virtual-scroll-container\"]}\n ref={virtualScrollRef}\n style={{\n left: leftOffset,\n }}\n onScrollCapture={scrollBody}\n onMouseEnter={() => {\n blocker.current = false;\n }}\n onMouseLeave={() => {\n blocker.current = true;\n }}\n >\n <div style={{ width: 1, height: contentHeight }} />\n </div>\n </main>\n );\n },\n);\n\nPageContent.displayName = \"PageContent\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n Ref,\n useContext,\n useLayoutEffect,\n useState,\n} from \"react\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport Dialog from \"../Dialog\";\nimport { PageContext, PageContextProps } from \"./PageContext\";\n\n/**\n * Props for the PagePanel component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PagePanelProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Whether the panel is open\n * @default true\n */\n open?: boolean;\n /**\n * Size of the panel\n * @default \"medium\"\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Whether to remove default padding from the panel\n * @default false\n */\n noPadding?: boolean;\n};\n\n/**\n * PagePanel component for creating slide-out panels or dialogs.\n *\n * Features:\n * - Responsive design with dialog fallback on mobile\n * - Multiple size variants (small, medium, large)\n * - Optional padding control\n * - Persistent or controlled open state\n * - Automatic mobile dialog conversion\n * - Keyboard navigation and accessibility support\n * - Smooth animations and transitions\n *\n * @example\n * <Page.Panel open={isOpen} size=\"medium\">\n * <Text variant=\"headline\" el=\"h3\">Panel Content</Text>\n * <Button onClick={() => setIsOpen(false)}>Close</Button>\n * </Page.Panel>\n */\nexport const PagePanel = forwardRef(\n (props: PagePanelProps, ref: Ref<HTMLDivElement>) => {\n const {\n children,\n open,\n size = \"medium\",\n noPadding,\n style,\n className,\n ...rest\n } = props;\n const classNames = cx([styles[\"panel\"]], [styles[size]], className, {\n [styles[\"open\"]]: typeof open === \"undefined\" ? true : open,\n [styles[\"persistent\"]]: typeof open === \"undefined\",\n [styles[\"noPadding\"]]: noPadding,\n });\n\n const { pageWidth } = useContext<PageContextProps>(PageContext);\n\n const [isMobile, setIsMobile] = useState<boolean>(false);\n\n useLayoutEffect(() => {\n const breakpointWidth = +(\n core.primitive?.BreakpointLg?.value.replace(\"px\", \"\") ?? 0\n );\n const innerWidth = pageWidth ?? 0;\n setIsMobile(innerWidth < breakpointWidth);\n }, [pageWidth]);\n\n if (typeof open !== \"undefined\" && isMobile) {\n return (\n <Dialog open={open}>\n <Dialog.Content>\n <div\n className={classNames}\n aria-hidden={!open}\n aria-disabled={!open}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n </Dialog.Content>\n </Dialog>\n );\n }\n return (\n <div\n className={classNames}\n aria-hidden={!open}\n aria-disabled={!open}\n ref={ref}\n {...rest}\n >\n <div\n className={styles[\"panel-inner\"]}\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */\n tabIndex={typeof open !== \"undefined\" && open ? 0 : -1}\n style={style}\n >\n <div>{children}</div>\n </div>\n </div>\n );\n },\n);\nPagePanel.displayName = \"PagePanel\";\n","import { ComponentPropsWithoutRef, forwardRef, Ref } from \"react\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { LayoutUtilProps } from \"../../types\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\n\n/**\n * Props for the PageFooter component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type PageFooterProps = ComponentPropsWithoutRef<\"div\"> & LayoutUtilProps;\n\n/**\n * PageFooter component for creating page footers with layout utilities.\n *\n * Features:\n * - Semantic footer element\n * - Layout utility props support\n * - Responsive design\n * - Accessibility support with proper footer landmark\n * - Flexible content positioning\n *\n * @example\n * <Page.Footer>\n * <Text>Footer content with layout utilities</Text>\n * </Page.Footer>\n */\nexport const PageFooter = forwardRef(\n (props: PageFooterProps, ref: Ref<HTMLDivElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { children, className, style, ...rest } = componentProps;\n\n const classNames = cx([styles[\"content-footer\"]], className);\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n return (\n <footer className={classNames} ref={ref} style={styleCombined} {...rest}>\n {children}\n </footer>\n );\n },\n);\nPageFooter.displayName = \"PageFooter\";\n","import {\n ComponentPropsWithoutRef,\n Ref,\n forwardRef,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageSidebar } from \"./PageSidebar\";\nimport { PageSidebarHeader } from \"./PageSidebarHeader\";\nimport { PageHeader } from \"./PageHeader\";\nimport { PageContent } from \"./PageContent\";\nimport { PagePanel } from \"./PagePanel\";\nimport { PageFooter } from \"./PageFooter\";\nimport { PageContext } from \"./PageContext\";\nimport { useMergeRefs } from \"../../hooks\";\n\n//--- Start Page Element ---//\n/**\n * Props for the Page component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageProps = ComponentPropsWithoutRef<\"div\">;\n\nconst PageElement = forwardRef((props: PageProps, ref: Ref<HTMLDivElement>) => {\n const { children, className, ...rest } = props;\n const classNames = cx(styles[\"page\"], className);\n const elRef = useRef<HTMLDivElement>(null);\n const combinedRef = useMergeRefs([elRef, ref]);\n\n const [pageWidth, setPageWidth] = useState<number>(0);\n\n useLayoutEffect(() => {\n const element = elRef.current;\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n setPageWidth(entry.contentRect.width);\n }\n });\n if (element) {\n resizeObserver.observe(element);\n }\n return () => {\n if (element) {\n resizeObserver.unobserve(element);\n resizeObserver.disconnect();\n }\n };\n }, [elRef]);\n\n return (\n <PageContext.Provider value={{ pageWidth }}>\n <div className={classNames} data-anv=\"Page\" ref={combinedRef} {...rest}>\n <div className={styles[\"container\"]}>{children}</div>\n </div>\n </PageContext.Provider>\n );\n});\n\nPageElement.displayName = \"Page\";\n\n/**\n * Page component for creating full-page layouts with navigation and content areas.\n *\n * Features:\n * - Container for complete page layouts\n * - Supports sidebar navigation with collapsible state\n * - Header with breadcrumbs, chips, and action buttons\n * - Main content area with virtual scrolling\n * - Optional slide-out panels with responsive dialog fallback\n * - Footer with layout utilities\n * - Responsive design with mobile adaptations\n * - Accessibility support with proper landmarks\n * - Automatic tracking ID generation for analytics\n * - Local storage persistence for sidebar state\n *\n * @example\n * <Page>\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Navigation</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[{ href: \"/\", children: \"Home\" }]}\n * actions={{ primary: { label: \"Save\", onClick: handleSave } }}\n * />\n * <Page.Content>\n * <Text>Main content</Text>\n * </Page.Content>\n * <Page.Panel open={isPanelOpen} size=\"medium\">\n * <Text>Panel content</Text>\n * </Page.Panel>\n * <Page.Footer>\n * <Text>Footer content</Text>\n * </Page.Footer>\n * </Page>\n */\nexport const Page = Object.assign(PageElement, {\n /**\n * PageSidebar component for creating collapsible navigation sidebars.\n *\n * Features:\n * - Collapsible sidebar with localStorage persistence\n * - Responsive design with adaptive popover on mobile\n * - Automatic tracking ID generation for analytics\n * - Keyboard navigation and accessibility support\n * - Toggle button with tooltip\n * - Context provider for sidebar state\n * - Mobile-friendly popover navigation\n *\n * @example\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Sidebar Title</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n */\n Sidebar: PageSidebar,\n /**\n * PageSidebarHeader component for creating header sections within sidebars.\n *\n * Features:\n * - Container for sidebar header content\n * - Automatic visibility handling based on sidebar collapsed state\n * - Supports all standard div props\n * - Context-aware styling\n *\n * @example\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\" size=\"medium\">\n * Sidebar Title\n * </Text>\n * </Page.SidebarHeader>\n */\n SidebarHeader: PageSidebarHeader,\n /**\n * PageHeader component for creating page headers with navigation and actions.\n *\n * Features:\n * - Page title with semantic heading\n * - Breadcrumb navigation support\n * - Status chips display\n * - Primary and secondary action buttons\n * - Preference action button/link\n * - Responsive layout with fluid grid\n * - Accessibility support with proper ARIA labels\n * - Flexible layout configuration\n * - Description content support\n *\n * @example\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[\n * { href: \"/\", children: \"Home\" },\n * { children: \"Current Page\" }\n * ]}\n * chips={[{ label: \"Status\" }]}\n * actions={{\n * primary: { label: \"Save\", onClick: handleSave },\n * secondary: [{ label: \"Cancel\", onClick: handleCancel }]\n * }}\n * />\n */\n Header: PageHeader,\n /**\n * PageContent component for the main content area of a page.\n *\n * Features:\n * - Semantic main element for page content\n * - Virtual scrolling support for long content\n * - Automatic scroll synchronization\n * - Responsive design\n * - Accessibility support with proper main landmark\n * - Scroll position management\n *\n * @example\n * <Page.Content>\n * <Text>Main page content goes here</Text>\n * <Button>Action Button</Button>\n * </Page.Content>\n */\n Content: PageContent,\n /**\n * PagePanel component for creating slide-out panels or dialogs.\n *\n * Features:\n * - Responsive design with dialog fallback on mobile\n * - Multiple size variants (small, medium, large)\n * - Optional padding control\n * - Persistent or controlled open state\n * - Automatic mobile dialog conversion\n * - Keyboard navigation and accessibility support\n * - Smooth animations and transitions\n *\n * @example\n * <Page.Panel open={isOpen} size=\"medium\">\n * <Text variant=\"headline\" el=\"h3\">Panel Content</Text>\n * <Button onClick={() => setIsOpen(false)}>Close</Button>\n * </Page.Panel>\n */\n Panel: PagePanel,\n /**\n * PageFooter component for creating page footers with layout utilities.\n *\n * Features:\n * - Semantic footer element\n * - Layout utility props support\n * - Responsive design\n * - Accessibility support with proper footer landmark\n * - Flexible content positioning\n *\n * @example\n * <Page.Footer>\n * <Text>Footer content with layout utilities</Text>\n * </Page.Footer>\n */\n Footer: PageFooter,\n});\n"],"names":["core.primitive?.BreakpointLg","props","SegmentSVG","RespClose","RespOpen","OpenSVG","CloseSVG","LocalSettings","ref","rest","MoreVert"],"mappings":"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"}
package/dist/Page.js CHANGED
@@ -1,2 +1,2 @@
1
- export { P as Page, P as default } from './Page-Dgpz2WD7.js';
1
+ export { P as Page, P as default } from './Page-ClI3IOc7.js';
2
2
  //# sourceMappingURL=Page.js.map
@@ -161,6 +161,7 @@ function usePopoverContext() {
161
161
  disableCloseOnEscape: context.disableCloseOnEscape,
162
162
  modal: context.modal,
163
163
  placement: context.placement,
164
+ actualPlacement: context.actualPlacement,
164
165
  disableCaret: context.disableCaret,
165
166
  noPadding: context.noPadding,
166
167
  fillAvailableHeight: context.fillAvailableHeight,
@@ -600,14 +601,14 @@ const PopoverButton = forwardRef(
600
601
  );
601
602
  PopoverButton.displayName = "PopoverButton";
602
603
 
603
- const content = "_content_yo27y_2";
604
- const scroller = "_scroller_yo27y_29";
605
- const arrow = "_arrow_yo27y_37";
604
+ const content = "_content_zhizt_2";
605
+ const scroller = "_scroller_zhizt_30";
606
+ const arrow = "_arrow_zhizt_38";
606
607
  const styles = {
607
608
  content: content,
608
609
  scroller: scroller,
609
610
  arrow: arrow,
610
- "no-padding": "_no-padding_yo27y_62"
611
+ "no-padding": "_no-padding_zhizt_93"
611
612
  };
612
613
 
613
614
  const PopoverContent = forwardRef(
@@ -657,6 +658,7 @@ const PopoverContent = forwardRef(
657
658
  const onMouseEnterHandler = (e) => {
658
659
  onMouseEnter?.(e);
659
660
  if (!context?.openOnHover) return;
661
+ if (!context?.open) return;
660
662
  context.setContentHovered(true);
661
663
  };
662
664
  const onMouseLeaveHandler = (e) => {
@@ -672,6 +674,7 @@ const PopoverContent = forwardRef(
672
674
  };
673
675
  const popoverContentRef = useMergeRefs([context?.popover.ref, ref]);
674
676
  const popoverScrollerRef = useMergeRefs([childrenRef, scrollerRef]);
677
+ const bridgeSide = context?.openOnHover && context?.actualPlacement ? context.actualPlacement.split("-")[0] : void 0;
675
678
  if (!supportsPopover())
676
679
  return /* @__PURE__ */ jsx(
677
680
  PopoverLegacyContent,
@@ -686,6 +689,7 @@ const PopoverContent = forwardRef(
686
689
  popover: "manual",
687
690
  id: context?.popover.id,
688
691
  "data-anv": "popover-content",
692
+ "data-position": bridgeSide,
689
693
  className: popoverClassNames,
690
694
  ref: popoverContentRef,
691
695
  style: combinedStyles,
@@ -779,6 +783,9 @@ const PopoverElement = forwardRef((props, ref) => {
779
783
  const dialogContext = useContext(DialogContext);
780
784
  const [triggerHovered, setTriggerHovered] = useState(false);
781
785
  const [contentHovered, setContentHovered] = useState(false);
786
+ const [actualPlacement, setActualPlacement] = useState(
787
+ placement
788
+ );
782
789
  const processMinHeight = typeof minHeight === "string" ? minHeight : `${minHeight}px`;
783
790
  usePopoverTransitionStates(popover, openState, {
784
791
  onOpenAnimationStart: useCallback(() => {
@@ -843,6 +850,7 @@ const PopoverElement = forwardRef((props, ref) => {
843
850
  })
844
851
  ]
845
852
  }).then(({ x, y, placement: placement2, middlewareData }) => {
853
+ setActualPlacement(placement2);
846
854
  const side = placement2.split("-")[0];
847
855
  const staticSide = {
848
856
  top: "bottom",
@@ -920,9 +928,20 @@ const PopoverElement = forwardRef((props, ref) => {
920
928
  if (!openOnHover) onClose?.();
921
929
  setOpenState(false);
922
930
  onOpenChange?.(false);
931
+ setTriggerHovered(false);
932
+ setContentHovered(false);
923
933
  fn?.();
924
934
  },
925
- [popover, openState, openOnHover, onClose, setOpenState, onOpenChange]
935
+ [
936
+ popover,
937
+ openState,
938
+ openOnHover,
939
+ onClose,
940
+ setOpenState,
941
+ onOpenChange,
942
+ setTriggerHovered,
943
+ setContentHovered
944
+ ]
926
945
  );
927
946
  useImperativeHandle(
928
947
  ref,
@@ -973,6 +992,7 @@ const PopoverElement = forwardRef((props, ref) => {
973
992
  openPopover,
974
993
  closePopover,
975
994
  placement,
995
+ actualPlacement,
976
996
  onClose,
977
997
  openOnHover,
978
998
  openState,
@@ -1008,6 +1028,7 @@ const PopoverElement = forwardRef((props, ref) => {
1008
1028
  openPopover,
1009
1029
  closePopover,
1010
1030
  placement,
1031
+ actualPlacement,
1011
1032
  onClose,
1012
1033
  openOnHover,
1013
1034
  openState,
@@ -1121,4 +1142,4 @@ const Popover = Object.assign(PopoverElement, {
1121
1142
  });
1122
1143
 
1123
1144
  export { Popover as P, PopoverButton as a, PopoverClose as b, PopoverContent as c, PopoverTrigger as d, PopoverLegacy as e, usePopoverContext as f, usePopoverLegacyContext as u };
1124
- //# sourceMappingURL=Popover-CcMDyKTj.js.map
1145
+ //# sourceMappingURL=Popover-CCXrzBul.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popover-CCXrzBul.js","sources":["../src/internal/hooks/usePopoverTransitionStates/usePopoverTransitionStates.ts","../src/components/Popover/internal/PopoverContext.ts","../src/components/Popover/internal/usePopoverContext.tsx","../src/components/Popover/internal/PopoverLegacy/usePopoverLegacy.tsx","../src/components/Popover/internal/PopoverLegacy/usePopoverLegacyContext.tsx","../src/components/Popover/internal/PopoverLegacy/PopoverLegacyTrigger.tsx","../src/components/Popover/internal/PopoverLegacy/PopoverLegacyContent.tsx","../src/components/Popover/internal/PopoverLegacy/PopoverLegacyClose.tsx","../src/components/Popover/internal/PopoverLegacy/PopoverLegacyButton.tsx","../src/components/Popover/internal/PopoverLegacy/PopoverLegacy.tsx","../src/components/Popover/PopoverClose.tsx","../src/components/Popover/PopoverButton.tsx","../src/components/Popover/PopoverContent.tsx","../src/components/Popover/PopoverTrigger.tsx","../src/components/Popover/Popover.tsx"],"sourcesContent":["import {\n useOpenCloseTransitionStates,\n type OpenCloseTransitionStateEffects,\n} from \"../useOpenCloseTransitionStates\";\n\n/**\n * Effects configuration for dialog transition states\n * @property {() => void} [onOpenAnimationStart] - Callback when opening animation starts\n * @property {() => void} [onCloseAnimationStart] - Callback when closing animation starts\n * @property {() => void} [onOpenAnimationComplete] - Callback when opening animation completes\n * @property {() => void} [onCloseAnimationComplete] - Callback when closing animation completes\n */\n\n/**\n * Custom hook for managing popover transition states and animations.\n *\n * Features:\n * - Manages popover open/close transition states\n * - Handles animation timing based on CSS animation duration\n * - Provides callbacks for animation lifecycle events\n * - Supports controlled popover state management\n * - Automatically handles showPopover() and closePopover() calls\n * - Provides utility flags for open/closed states\n *\n * @param popover - The popover element\n * @param openProp - The open prop controlling popover visibility\n * @param options - Additional, optional options including callbacks for animation start, complete, and initialization\n * @returns Object containing popover state, control functions, and utility flags\n */\nexport const usePopoverTransitionStates = (\n popover: HTMLElement | undefined,\n openProp: boolean | undefined,\n options: OpenCloseTransitionStateEffects = {},\n) => {\n const { onOpenAnimationStart, onCloseAnimationComplete } = options;\n return useOpenCloseTransitionStates(openProp, {\n ...options,\n onOpenAnimationStart: () => {\n if (!popover) return;\n onOpenAnimationStart?.();\n },\n onCloseAnimationComplete: () => {\n if (!popover) return;\n onCloseAnimationComplete?.();\n },\n durationMs: () => {\n if (!popover || !window) return 0;\n const duration = window.getComputedStyle(popover).animationDuration;\n return parseFloat(duration) * 1000;\n },\n });\n};\n","import {\n createContext,\n CSSProperties,\n Dispatch,\n RefObject,\n SetStateAction,\n} from \"react\";\nimport { PopoverProps } from \"../Popover\";\nimport { Placement } from \"@floating-ui/react-dom\";\n\nexport type PopoverContextProps = {\n popoverId: string;\n invoker?: HTMLElement;\n setInvoker?: Dispatch<SetStateAction<HTMLElement | undefined>>;\n popover?: HTMLElement;\n setPopover?: Dispatch<SetStateAction<HTMLElement | undefined>>;\n rootNode?: Node;\n setRootNode?: Dispatch<SetStateAction<Node | undefined>>;\n arrowElement?: HTMLSpanElement;\n setArrowElement?: Dispatch<SetStateAction<HTMLSpanElement | undefined>>;\n openState: boolean;\n popoverStyle?: CSSProperties;\n placement?: Placement;\n actualPlacement?: Placement;\n openPopover: () => void;\n closePopover: (replacementFn?: () => void) => void;\n onClose?: PopoverProps[\"onClose\"];\n openOnHover: PopoverProps[\"openOnHover\"];\n controlled: boolean;\n disableCloseOnClickOutside?: PopoverProps[\"disableCloseOnClickOutside\"];\n disableCloseOnEscape?: PopoverProps[\"disableCloseOnEscape\"];\n modal?: PopoverProps[\"modal\"];\n noPadding?: PopoverProps[\"noPadding\"];\n fillAvailableHeight: PopoverProps[\"fillAvailableHeight\"];\n maxHeight: PopoverProps[\"maxHeight\"];\n matchReferenceWidth: PopoverProps[\"matchReferenceWidth\"];\n fixedWidth: PopoverProps[\"fixedWidth\"];\n disableCaret: PopoverProps[\"disableCaret\"];\n disableFlipFallback: PopoverProps[\"disableFlipFallback\"];\n disableFocusLock: PopoverProps[\"disableFocusLock\"];\n disableTriggerFocus: PopoverProps[\"disableTriggerFocus\"];\n arrowRef: RefObject<HTMLSpanElement>;\n resetKey: number;\n delay: PopoverProps[\"delay\"];\n triggerHovered: boolean;\n setTriggerHovered: Dispatch<SetStateAction<boolean>>;\n contentHovered: boolean;\n setContentHovered: Dispatch<SetStateAction<boolean>>;\n};\n\nexport const PopoverContext = createContext<PopoverContextProps | null>(null);\n","import {\n useRef,\n useContext,\n useLayoutEffect,\n KeyboardEvent,\n useEffect,\n} from \"react\";\nimport { PopoverContext } from \"./PopoverContext\";\nimport { tabbable } from \"tabbable\";\n\nexport type dataStateType = \"open\" | \"closed\";\n\nexport function usePopoverContext() {\n const context = useContext(PopoverContext);\n const invokerRef = useRef<HTMLButtonElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const arrowRef = useRef<HTMLSpanElement>(null);\n const { triggerHovered, setTriggerHovered, contentHovered } = context || {};\n\n useLayoutEffect(() => {\n if (!invokerRef.current) return;\n context?.setInvoker?.(invokerRef.current);\n }, [context, invokerRef]);\n\n useLayoutEffect(() => {\n if (!popoverRef.current) return;\n context?.setPopover?.(popoverRef.current);\n context?.setRootNode?.(popoverRef.current.getRootNode());\n if (!arrowRef.current) return;\n context?.setArrowElement?.(arrowRef.current);\n }, [context, popoverRef]);\n\n useEffect(() => {\n if (!context?.openOnHover) return;\n // If the popover was previously opened by hover, and is now unhovered, close the popover after 100ms\n if (!triggerHovered && !contentHovered) {\n const closeTimeout: NodeJS.Timeout = setTimeout(() => {\n context?.closePopover();\n }, 100);\n return () => {\n clearTimeout(closeTimeout);\n };\n }\n // If the popover was unopened by hover, and is now hovered, open the popover after the defined delay\n if (triggerHovered && !contentHovered) {\n if (context?.delay) {\n const openTimeout = setTimeout(() => {\n context?.openPopover();\n }, context.delay);\n return () => {\n clearTimeout(openTimeout);\n };\n } else {\n context?.openPopover();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context?.delay, context?.openOnHover, triggerHovered, contentHovered]);\n\n const onMouseEnterHandler = () => {\n if (!context?.openOnHover) return;\n setTriggerHovered?.(true);\n };\n const onMouseLeaveHandler = () => {\n if (!context?.openOnHover) return;\n setTriggerHovered?.(false);\n };\n\n const onFocusHandler = (_e: React.FocusEvent) => {\n if (context?.openOnHover) {\n context?.openPopover();\n }\n };\n\n const onBlurHandler = (e: React.FocusEvent) => {\n if (context?.popover?.contains(e.relatedTarget as Node)) return; // If the focus is within the popover, don't close it\n if (context?.modal && context.openState) {\n e.preventDefault();\n requestAnimationFrame(() => {\n context?.invoker?.focus();\n const focusables = tabbable(context?.popover as Element);\n if (focusables.length > 0) {\n focusables[focusables.length - 1].focus();\n }\n });\n return;\n }\n if (!context?.disableCloseOnClickOutside) {\n context?.closePopover();\n }\n };\n\n const onKeyDownHandler = (e: KeyboardEvent) => {\n if (!context?.openState) return;\n if (\n e.code === \"Escape\" &&\n !context?.disableCloseOnEscape &&\n !context?.controlled\n ) {\n context?.closePopover();\n return;\n }\n };\n\n const onClickHandler = () => {\n context?.invoker?.focus();\n if (context?.openOnHover) return;\n if (context?.controlled === false) {\n if (context?.openState) {\n context?.closePopover();\n } else {\n context?.openPopover();\n }\n return;\n }\n };\n\n if (!context || !invokerRef || !popoverRef) return;\n return {\n invoker: {\n ref: invokerRef,\n element: context.invoker,\n onMouseEnter: onMouseEnterHandler,\n onMouseLeave: onMouseLeaveHandler,\n onKeyDown: onKeyDownHandler,\n onClick: onClickHandler,\n onFocus: onFocusHandler,\n onBlur: onBlurHandler,\n \"aria-haspopup\": true,\n \"aria-expanded\": context.openState,\n \"aria-details\": context.popoverId,\n \"data-state\": context.openState ? \"open\" : (\"closed\" as dataStateType),\n },\n popover: {\n ref: popoverRef,\n element: context.popover,\n id: context.popoverId,\n onClose: context.onClose,\n show: context.openPopover,\n close: context.closePopover,\n noPadding: context.noPadding,\n style: context.popoverStyle,\n arrowRef: arrowRef,\n key: context.resetKey,\n },\n rootNode: context.rootNode,\n onClose: context.onClose,\n open: context.openState,\n openOnHover: context.openOnHover,\n controlled: context.controlled,\n disableCloseOnClickOutside: context.disableCloseOnClickOutside,\n disableCloseOnEscape: context.disableCloseOnEscape,\n modal: context.modal,\n placement: context.placement,\n actualPlacement: context.actualPlacement,\n disableCaret: context.disableCaret,\n noPadding: context.noPadding,\n fillAvailableHeight: context.fillAvailableHeight,\n maxHeight: context.maxHeight,\n matchReferenceWidth: context.matchReferenceWidth,\n fixedWidth: context.fixedWidth,\n disableFlipFallback: context.disableFlipFallback,\n disableFocusLock: context.modal,\n disableTriggerFocus: context.disableTriggerFocus,\n triggerHovered: context.triggerHovered,\n setTriggerHovered: context.setTriggerHovered,\n contentHovered: context.contentHovered,\n setContentHovered: context.setContentHovered,\n };\n}\n","import { useState, useMemo, useRef, ReactNode } from \"react\";\nimport {\n useFloating,\n autoUpdate,\n offset,\n flip,\n shift,\n useClick,\n useDismiss,\n useRole,\n useInteractions,\n Placement,\n useHover,\n arrow,\n size,\n safePolygon,\n limitShift,\n type UseFloatingOptions,\n type UseDismissProps,\n} from \"@floating-ui/react\";\nimport { DisableCloseOnEscapeOrClickProps } from \"../../../../types\";\n\nexport type PopoverLegacyProps = DisableCloseOnEscapeOrClickProps & {\n children?: ReactNode;\n /**\n * Traps focus inside the floating element and outside content cannot be accessed\n */\n modal?: boolean;\n /**\n * Disables the shift of floating element\n * @internal\n */\n disableShift?: boolean;\n /**\n * Disables the flip of floating element\n * @internal\n */\n disableFlip?: boolean;\n /**\n * Disables the flip cross-axis fallback of floating element\n * @internal\n */\n disableFlipFallback?: boolean;\n /**\n * Changes interaction to use hover\n */\n openOnHover?: boolean;\n /**\n * Changes height and positioning for select/combobox\n */\n fillAvailableHeight?: boolean;\n maxHeight?: number | string;\n fitScreen?: boolean;\n minHeight?: number | string;\n matchReferenceWidth?: boolean;\n fixedWidth?: boolean;\n placement?: Placement;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: UseFloatingOptions[\"onOpenChange\"];\n onOutsidePress?: Exclude<UseDismissProps[\"outsidePress\"], boolean>;\n /** This doesn't do anything for older browser */\n delay?: number;\n /**\n * Fires when the floating element is requests to be closed\n * Note: this does not fire when asTooltip is true and mouseleaves to close\n * eg. on clickoutside, [esc] to close, or by <Popover.Close>\n */\n onClose?: () => void;\n disableCaret?: boolean;\n noPadding?: boolean;\n disableAutoUpdate?: boolean;\n disableFocusLock?: boolean;\n disableTriggerFocus?: boolean;\n root?: HTMLElement | React.MutableRefObject<HTMLElement | null> | null;\n};\n\nexport function usePopoverLegacy({\n defaultOpen,\n placement = \"bottom\",\n modal,\n open: controlledOpen,\n onOpenChange: setControlledOpen,\n onOutsidePress,\n onClose,\n disableCloseOnClickOutside,\n disableCloseOnEscape,\n openOnHover,\n fillAvailableHeight,\n fitScreen,\n maxHeight,\n minHeight = \"2.875rem\",\n matchReferenceWidth,\n fixedWidth,\n disableCaret,\n noPadding,\n disableShift,\n disableFlip,\n disableFlipFallback,\n disableAutoUpdate,\n disableFocusLock,\n disableTriggerFocus,\n root,\n}: PopoverLegacyProps = {}) {\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);\n const [labelId, setLabelId] = useState<string | undefined>();\n const [descriptionId, setDescriptionId] = useState<string | undefined>();\n\n const open = controlledOpen ?? uncontrolledOpen;\n const setOpen = setControlledOpen ?? setUncontrolledOpen;\n\n const arrowRef = useRef(null);\n\n const processMinHeight =\n typeof minHeight === \"string\" ? minHeight : `${minHeight}px`;\n\n const data = useFloating({\n placement,\n open,\n onOpenChange: setOpen,\n whileElementsMounted: !disableAutoUpdate ? autoUpdate : undefined,\n middleware: [\n offset(8),\n size({\n padding: 5,\n apply({ rects, availableHeight, elements }) {\n Object.assign(elements.floating.style, {\n ...(matchReferenceWidth\n ? { width: `${rects.reference.width}px` }\n : fixedWidth\n ? { width: \"40dvw\" }\n : {}),\n ...(fillAvailableHeight\n ? {\n height: `${availableHeight - 20}px`,\n minHeight: processMinHeight,\n }\n : {}),\n ...(maxHeight\n ? {\n minHeight: processMinHeight,\n height: fitScreen\n ? typeof maxHeight === \"string\"\n ? maxHeight\n : `${maxHeight}px`\n : undefined,\n maxHeight: fitScreen\n ? `${availableHeight - 20}px`\n : typeof maxHeight === \"string\"\n ? maxHeight\n : `${maxHeight}px`,\n }\n : {}),\n ...(fitScreen && !maxHeight\n ? {\n minHeight: processMinHeight,\n maxHeight: `${availableHeight - 20}px`,\n }\n : {}),\n zIndex: 1,\n });\n },\n }),\n flip({\n mainAxis: !disableFlip,\n crossAxis: false,\n fallbackAxisSideDirection: disableFlipFallback ? \"none\" : \"end\",\n padding: 5,\n }),\n shift({\n padding: 5,\n mainAxis: !disableShift,\n crossAxis: false,\n limiter: limitShift({\n mainAxis: !disableShift,\n }),\n }),\n arrow({ element: !disableCaret ? arrowRef : null, padding: 5 }),\n ],\n });\n\n const context = data.context;\n\n const click = useClick(context, {\n enabled: controlledOpen == null && !openOnHover,\n });\n\n const hover = useHover(context, {\n enabled: controlledOpen == null && !!openOnHover,\n handleClose: safePolygon(),\n });\n\n const dismiss = useDismiss(context, {\n escapeKey: !disableCloseOnEscape,\n outsidePress: (event) => {\n if (disableCloseOnClickOutside) {\n return false;\n }\n\n // if onOutsidePress exists and calling it returns falsy, then skip\n // calling onClose and setOpen and return the falsy value to outsidePress\n const result =\n typeof onOutsidePress === \"function\" ? onOutsidePress?.(event) : true;\n\n if (!result) {\n return result;\n } else {\n onClose?.();\n setOpen(false);\n return result;\n }\n },\n });\n\n const role = useRole(context);\n\n const interactions = useInteractions([click, hover, dismiss, role]);\n\n return useMemo(\n () => ({\n open,\n setOpen,\n onClose,\n ...interactions,\n ...data,\n modal,\n labelId,\n descriptionId,\n setLabelId,\n setDescriptionId,\n arrowRef,\n disableCaret,\n noPadding,\n fillAvailableHeight,\n maxHeight,\n matchReferenceWidth,\n fixedWidth,\n disableFlipFallback,\n disableAutoUpdate,\n disableFocusLock,\n disableTriggerFocus,\n root,\n }),\n [\n open,\n setOpen,\n onClose,\n interactions,\n data,\n modal,\n labelId,\n descriptionId,\n disableCaret,\n noPadding,\n fillAvailableHeight,\n maxHeight,\n matchReferenceWidth,\n fixedWidth,\n disableFlipFallback,\n disableAutoUpdate,\n disableFocusLock,\n disableTriggerFocus,\n root,\n ],\n );\n}\n","import { SetStateAction, Dispatch, createContext, useContext } from \"react\";\n\nimport { usePopoverLegacy } from \"./usePopoverLegacy\";\nimport { ThemeProviderContextProps } from \"../../../../providers\";\n\nexport type PopoverLegacyContextType =\n | (ReturnType<typeof usePopoverLegacy> & {\n setLabelId: Dispatch<SetStateAction<string | undefined>>;\n setDescriptionId: Dispatch<SetStateAction<string | undefined>>;\n theme?: ThemeProviderContextProps[\"theme\"];\n mode?: ThemeProviderContextProps[\"mode\"];\n })\n | null;\n\nexport const PopoverLegacyContext =\n createContext<PopoverLegacyContextType>(null);\n\nexport const usePopoverLegacyContext = () => {\n const context = useContext(PopoverLegacyContext);\n\n if (context == null) {\n throw new Error(\"Popover components must be wrapped in <Popover />\");\n }\n\n return context;\n};\n","import {\n ReactElement,\n useRef,\n ComponentPropsWithRef,\n ElementType,\n} from \"react\";\nimport { usePopoverLegacyContext } from \"./usePopoverLegacyContext\";\nimport { useMergeRefs } from \"../../../../hooks\";\n\ntype PopoverLegacyTriggerDataType = {\n \"data-state\": \"open\" | \"closed\";\n} & ComponentPropsWithRef<ElementType>;\n\nexport type PopoverLegacyTriggerProps = {\n children: (data: PopoverLegacyTriggerDataType) => ReactElement;\n};\n\nexport const PopoverLegacyTrigger = function PopoverLegacyTrigger(\n props: PopoverLegacyTriggerProps,\n) {\n const { children } = props;\n const context = usePopoverLegacyContext();\n const ref = useRef(null);\n const mergedRef = useMergeRefs([context.refs.setReference, ref]);\n\n return children({\n \"data-state\": context.open ? \"open\" : \"closed\",\n \"data-anv\": \"popover-trigger\",\n ...context.getReferenceProps({ ref: mergedRef }),\n });\n};\n","import { forwardRef, HTMLProps, KeyboardEvent, useContext } from \"react\";\nimport {\n FloatingPortal,\n FloatingFocusManager,\n FloatingArrow,\n} from \"@floating-ui/react\";\nimport { usePopoverLegacyContext } from \"./usePopoverLegacyContext\";\nimport styles from \"./PopoverLegacy.module.scss\";\nimport cx from \"classnames\";\nimport { useMergeRefs } from \"../../../../hooks\";\nimport { ThemeProvider } from \"../../../../providers\";\nimport { PortalProviderContext } from \"../../../../providers/PortalProvider\";\nimport { DialogContext } from \"../../../Dialog/internal/DialogContext\";\nimport { DrawerContext } from \"../../../Drawer/internal/DrawerContext\";\n\nexport type PopoverLegacyContentProps = Omit<HTMLProps<HTMLDivElement>, \"ref\">;\n\nexport const PopoverLegacyContent = forwardRef<\n HTMLDivElement,\n PopoverLegacyContentProps\n>(function PopoverContent({ className, style, ...props }, propRef) {\n const {\n context: floatingContext,\n theme,\n mode,\n disableCaret,\n noPadding,\n onClose,\n disableFocusLock,\n disableTriggerFocus,\n root,\n ...context\n } = usePopoverLegacyContext();\n const dialogContext = useContext(DialogContext);\n const drawerContext = useContext(DrawerContext);\n const { root: portalRoot } = useContext(PortalProviderContext);\n\n const ref = useMergeRefs([context.refs.setFloating, propRef]);\n\n if (!floatingContext.open) return null;\n if (dialogContext && !dialogContext?.ref?.current) return null;\n\n const popoverClassNames = cx(className, styles[\"content-legacy\"], {\n [styles[\"no-padding\"]]: noPadding,\n });\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.code === \"Escape\") {\n onClose?.();\n }\n };\n\n return (\n <FloatingPortal\n root={\n root ??\n dialogContext?.ref?.current ??\n drawerContext?.ref?.current ??\n portalRoot\n }\n >\n <FloatingFocusManager\n context={floatingContext}\n modal={context.modal}\n order={disableTriggerFocus ? [\"content\"] : [\"reference\", \"content\"]}\n disabled={disableFocusLock}\n >\n <ThemeProvider theme={theme} mode={mode}>\n <div\n ref={ref}\n data-anv=\"popover-content\"\n style={{ ...context.floatingStyles, ...style }}\n aria-labelledby={context.labelId}\n aria-describedby={context.descriptionId}\n className={popoverClassNames}\n {...context.getFloatingProps(props)}\n onKeyDown={onKeyDownHandler}\n role=\"presentation\"\n >\n <div className={styles[\"scroller-legacy\"]}>{props.children}</div>\n {!disableCaret && (\n <FloatingArrow\n ref={context.arrowRef}\n context={floatingContext}\n className={styles[\"arrow-legacy\"]}\n />\n )}\n </div>\n </ThemeProvider>\n </FloatingFocusManager>\n </FloatingPortal>\n );\n});\n","import { forwardRef } from \"react\";\n\nimport { usePopoverLegacyContext } from \"./usePopoverLegacyContext\";\nimport { Button, ButtonProps } from \"../../../Button\";\n\nexport type PopoverLegacyCloseProps = ButtonProps;\nexport const PopoverLegacyClose = forwardRef<\n HTMLButtonElement,\n PopoverLegacyCloseProps\n>(function PopoverClose(props, ref) {\n const { setOpen, onClose } = usePopoverLegacyContext();\n return (\n <Button\n ref={ref}\n data-anv=\"popover-close\"\n {...props}\n onClick={(event) => {\n props.onClick?.(event);\n onClose?.();\n setOpen(false);\n }}\n />\n );\n});\n","import { Ref, forwardRef } from \"react\";\nimport { usePopoverLegacyContext } from \"./usePopoverLegacyContext\";\nimport { Button, ButtonProps } from \"../../../Button\";\nimport { useMergeRefs } from \"../../../../hooks\";\n\nexport type PopoverLegacyButtonProps = ButtonProps;\n\nexport const PopoverLegacyButton = forwardRef<\n HTMLButtonElement,\n PopoverLegacyButtonProps\n>(function PopoverButton(props, ref) {\n const { children, size, ...rest } = props;\n const context = usePopoverLegacyContext();\n const childrenRef = (children as { ref?: Ref<unknown> })?.ref;\n const mergedRef = useMergeRefs([context.refs.setReference, ref, childrenRef]);\n\n return (\n <Button\n ref={mergedRef}\n size={size}\n data-state={context.open ? \"open\" : \"closed\"}\n data-anv=\"popover-button\"\n {...context.getReferenceProps(rest)}\n >\n {children}\n </Button>\n );\n});\n","import { useContext, useMemo } from \"react\";\nimport { usePopoverLegacy, PopoverLegacyProps } from \"./usePopoverLegacy\";\nimport { PopoverLegacyContext } from \"./usePopoverLegacyContext\";\nimport { PopoverLegacyTrigger } from \"./PopoverLegacyTrigger\";\nimport { PopoverLegacyContent } from \"./PopoverLegacyContent\";\nimport { PopoverLegacyClose } from \"./PopoverLegacyClose\";\nimport { PopoverLegacyButton } from \"./PopoverLegacyButton\";\nimport { ThemeProviderContext } from \"../../../../providers/ThemeProvider/internal/ThemeProviderContext\";\n\nexport function PopoverLegacyElement({\n children,\n modal,\n ...restOptions\n}: PopoverLegacyProps) {\n const popover = usePopoverLegacy({ modal, ...restOptions });\n const { theme, mode = \"light\" } = useContext(ThemeProviderContext);\n const value = useMemo(\n () => ({ ...popover, theme, mode }),\n [mode, popover, theme],\n );\n return (\n <PopoverLegacyContext.Provider value={value}>\n {children}\n </PopoverLegacyContext.Provider>\n );\n}\n\nexport const PopoverLegacy = Object.assign(PopoverLegacyElement, {\n Trigger: PopoverLegacyTrigger,\n Close: PopoverLegacyClose,\n Content: PopoverLegacyContent,\n Button: PopoverLegacyButton,\n});\n","import { forwardRef } from \"react\";\n\nimport { Button, ButtonProps } from \"../Button\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\nimport { supportsPopover, childrenToString } from \"../../internal/functions\";\nimport {\n PopoverLegacyClose,\n PopoverLegacyCloseProps,\n} from \"./internal/PopoverLegacy\";\nimport { DataTrackingId } from \"../../types\";\nimport { useTrackingId } from \"../../hooks\";\n\n/**\n * Props for the PopoverClose component\n * @extends ButtonProps\n */\nexport type PopoverCloseProps = ButtonProps & DataTrackingId;\n\n/**\n * PopoverClose component for closing the popover.\n *\n * Features:\n * - Automatic popover closing on click\n * - Supports all Button component props and styling\n * - Controlled and uncontrolled mode support\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Accessibility support with proper button semantics\n * - Delayed closing for controlled mode\n *\n * @example\n * <Popover.Close>Close</Popover.Close>\n *\n * @example\n * <Popover.Close appearance=\"secondary\" size=\"small\">\n * Cancel\n * </Popover.Close>\n *\n * @example\n * <Popover.Close onClick={() => console.log('Custom close handler')}>\n * Close with custom handler\n * </Popover.Close>\n */\nexport const PopoverClose = forwardRef<HTMLButtonElement, PopoverCloseProps>(\n function PopoverClose(props, ref) {\n const { onClick, ...rest } = props;\n const context = usePopoverContext();\n\n const data = {\n children: childrenToString(props.children),\n };\n\n const trackingId = useTrackingId({\n name: \"PopoverClose\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n if (!supportsPopover())\n return (\n <PopoverLegacyClose {...(props as PopoverLegacyCloseProps)} ref={ref} />\n );\n return (\n <Button\n ref={ref}\n data-tracking-id={trackingId}\n data-anv=\"popover-close\"\n {...rest}\n onClick={(event) => {\n context?.popover.close();\n context?.onClose?.();\n onClick?.(event);\n }}\n />\n );\n },\n);\n\nPopoverClose.displayName = \"PopoverClose\";\n","import { forwardRef, MouseEvent, FocusEvent, KeyboardEvent } from \"react\";\nimport { Button, ButtonProps } from \"../Button\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\nimport {\n PopoverLegacyButton,\n PopoverLegacyButtonProps,\n} from \"./internal/PopoverLegacy\";\nimport { supportsPopover, childrenToString } from \"../../internal/functions\";\nimport { DataTrackingId } from \"../../types\";\n\n/**\n * Props for the PopoverButton component\n * @extends ButtonProps\n */\nexport type PopoverButtonProps = ButtonProps & DataTrackingId;\n\n/**\n * PopoverButton component for creating button-style triggers.\n *\n * Features:\n * - Button styling and behavior with all Button props\n * - Automatic popover opening on click\n * - Hover interaction support for tooltip mode\n * - Focus management and keyboard navigation\n * - Accessibility attributes (aria-haspopup, aria-expanded, aria-details)\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Event handling for mouse, keyboard, and focus events\n *\n * @example\n * <Popover.Button>Click to open</Popover.Button>\n *\n * @example\n * <Popover.Button appearance=\"primary\" size=\"large\" icon={InfoIcon}>\n * Information\n * </Popover.Button>\n *\n * @example\n * <Popover.Button onClick={() => console.log('Custom click handler')}>\n * Custom handler\n * </Popover.Button>\n */\nexport const PopoverButton = forwardRef<HTMLButtonElement, PopoverButtonProps>(\n function PopoverButton(props, ref) {\n const {\n children,\n size,\n onMouseEnter,\n onMouseLeave,\n onClick,\n onKeyDown,\n onFocus,\n onBlur,\n ...rest\n } = props;\n const context = usePopoverContext();\n\n const data = {\n children: childrenToString(props.children),\n appearance: props.appearance,\n icon: props.icon,\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"PopoverButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const onMouseEnterHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onMouseEnter?.(e);\n context?.invoker.onMouseEnter();\n };\n const onMouseLeaveHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onMouseLeave?.(e);\n context?.invoker.onMouseLeave();\n };\n const onFocusHandler = (e: FocusEvent<HTMLButtonElement>) => {\n onFocus?.(e);\n context?.invoker.onFocus(e);\n };\n const onBlurHandler = (e: FocusEvent<HTMLButtonElement>) => {\n onBlur?.(e);\n context?.invoker.onBlur(e);\n };\n const onKeyDownHandler = (e: KeyboardEvent<HTMLButtonElement>) => {\n onKeyDown?.(e);\n context?.invoker.onKeyDown(e);\n };\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n context?.invoker.onClick();\n };\n\n const buttonRef = useMergeRefs([context?.invoker.ref, ref]);\n\n if (!supportsPopover())\n return (\n <PopoverLegacyButton\n {...(props as PopoverLegacyButtonProps)}\n ref={ref}\n />\n );\n\n return (\n <Button\n ref={buttonRef}\n size={size}\n onClick={onClickHandler}\n onKeyDown={onKeyDownHandler}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n onFocus={onFocusHandler}\n onBlur={onBlurHandler}\n data-anv=\"popover-button\"\n data-tracking-id={trackingId}\n aria-haspopup={context?.invoker[\"aria-haspopup\"]}\n aria-expanded={context?.invoker[\"aria-expanded\"]}\n aria-details={context?.invoker[\"aria-details\"]}\n data-state={context?.invoker[\"data-state\"]}\n {...rest}\n >\n {children}\n </Button>\n );\n },\n);\n\nPopoverButton.displayName = \"PopoverButton\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n MouseEvent,\n useRef,\n FocusEvent,\n RefObject,\n} from \"react\";\nimport styles from \"./Popover.module.scss\";\nimport cx from \"classnames\";\nimport { useMergeRefs } from \"../../hooks\";\nimport { usePopoverContext } from \"./internal/usePopoverContext\";\nimport { supportsPopover } from \"../../internal/functions\";\nimport {\n PopoverLegacyContent,\n PopoverLegacyContentProps,\n} from \"./internal/PopoverLegacy\";\nimport { useFocusWithin } from \"../../internal/hooks\";\n\n/**\n * Props for the PopoverContent component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PopoverContentProps = Omit<\n ComponentPropsWithoutRef<\"div\">,\n \"popover\"\n> & {\n /**\n * Reference to the scrollable content area\n */\n scrollerRef?: RefObject<HTMLDivElement>;\n /**\n * Whether to remove the content from the DOM while the popover is closed\n */\n hideWhileClosed?: boolean;\n};\n\n/**\n * PopoverContent component for the main popover content area.\n *\n * Features:\n * - Automatic positioning and sizing based on trigger\n * - Screen boundary detection and fitting\n * - Scroll handling with custom scroller reference\n * - Focus management and keyboard navigation\n * - Hover interaction support for tooltip mode\n * - Escape key handling for closing\n * - Tab key trapping for modal popovers\n * - Arrow/caret indicator with automatic positioning\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Accessibility support with proper ARIA roles\n *\n * @example\n * <Popover.Content>\n * <p>This is the popover content</p>\n * <Popover.Close>Close</Popover.Close>\n * </Popover.Content>\n *\n * @example\n * <Popover.Content scrollerRef={scrollRef}>\n * <div style={{ height: '200px', overflow: 'auto' }}>\n * {longContent}\n * </div>\n * </Popover.Content>\n */\nexport const PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(\n function PopoverContent(props, ref) {\n const {\n children,\n className,\n style,\n onMouseEnter,\n onMouseLeave,\n onKeyDown,\n onFocus,\n onBlur,\n onScroll,\n onScrollCapture,\n scrollerRef,\n hideWhileClosed = false,\n ...rest\n } = props;\n const context = usePopoverContext();\n const popoverClassNames = cx(className, styles[\"content\"], {\n [styles[\"no-padding\"]]: context?.noPadding,\n });\n const childrenRef = useRef<HTMLDivElement>(null);\n const combinedStyles = {\n ...style,\n ...context?.popover.style,\n };\n\n const { props: wrapperProps } = useFocusWithin({\n otherRelatedElements: context?.invoker.element\n ? [context?.invoker.element]\n : [],\n onBlur: (e) => {\n if (context?.modal) {\n e.preventDefault();\n requestAnimationFrame(() => {\n context?.invoker.element?.focus();\n });\n return;\n }\n onBlur?.(e as FocusEvent<HTMLDivElement>);\n context?.popover.close();\n },\n onFocus: (e) => {\n onFocus?.(e as FocusEvent<HTMLDivElement>);\n context?.popover.show();\n },\n });\n\n const onMouseEnterHandler = (e: MouseEvent<HTMLDivElement>) => {\n onMouseEnter?.(e);\n if (!context?.openOnHover) return;\n if (!context?.open) return; // Don't set hover state if popover is closed\n context.setContentHovered(true);\n };\n const onMouseLeaveHandler = (e: MouseEvent<HTMLDivElement>) => {\n onMouseLeave?.(e);\n if (!context?.openOnHover) return;\n context.setContentHovered(false);\n };\n\n const onKeyDownHandler = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e);\n if (e.code === \"Escape\" && !context?.disableCloseOnEscape) {\n context?.popover.close();\n }\n };\n\n const popoverContentRef = useMergeRefs([context?.popover.ref, ref]);\n const popoverScrollerRef = useMergeRefs([childrenRef, scrollerRef]);\n\n // Extract base side from actual placement for hover bridge positioning\n const bridgeSide =\n context?.openOnHover && context?.actualPlacement\n ? (context.actualPlacement.split(\"-\")[0] as\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\")\n : undefined;\n\n if (!supportsPopover())\n return (\n <PopoverLegacyContent\n {...(props as PopoverLegacyContentProps)}\n ref={ref}\n />\n );\n\n return (\n <div\n popover={\"manual\"}\n id={context?.popover.id}\n data-anv=\"popover-content\"\n data-position={bridgeSide}\n className={popoverClassNames}\n ref={popoverContentRef}\n style={combinedStyles}\n onMouseEnter={onMouseEnterHandler}\n onMouseLeave={onMouseLeaveHandler}\n role=\"region\"\n {...rest}\n onFocus={wrapperProps.onFocus}\n onBlur={wrapperProps.onBlur}\n >\n <div\n className={styles.scroller}\n role=\"presentation\"\n tabIndex={-1}\n ref={popoverScrollerRef}\n key={context?.popover.key}\n onKeyDown={onKeyDownHandler}\n onScroll={onScroll}\n onScrollCapture={onScrollCapture}\n >\n {hideWhileClosed ? (context?.open ? children : null) : children}\n </div>\n {!context?.disableCaret && (\n <span className={styles[\"arrow\"]} ref={context?.popover.arrowRef}>\n <svg aria-hidden=\"true\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\">\n <path stroke=\"none\" d=\"M0,0 H14 L7,7 Q7,7 7,7 Z\"></path>\n <clipPath id=\":r9:\">\n <rect x=\"0\" y=\"0\" width=\"14\" height=\"14\"></rect>\n </clipPath>\n </svg>\n </span>\n )}\n </div>\n );\n },\n);\n\nPopoverContent.displayName = \"PopoverContent\";\n","import {\n ReactElement,\n MouseEvent,\n KeyboardEvent,\n FocusEvent,\n RefObject,\n} from \"react\";\nimport { dataStateType, usePopoverContext } from \"./internal/usePopoverContext\";\nimport { supportsPopover } from \"../../internal/functions\";\nimport {\n PopoverLegacyTrigger,\n PopoverLegacyTriggerProps,\n} from \"./internal/PopoverLegacy\";\n\ntype PopoverTriggerChildrenReturnType = {\n ref: RefObject<HTMLButtonElement>;\n onMouseEnter: (e: MouseEvent) => void;\n onMouseLeave: (e: MouseEvent) => void;\n onClick: (e: MouseEvent) => void;\n onKeyDown: (e: KeyboardEvent) => void;\n onBlur: (e: FocusEvent) => void;\n onFocus: (e: FocusEvent) => void;\n \"aria-haspopup\": boolean;\n \"aria-expanded\": boolean;\n \"aria-details\": HTMLElement[\"id\"];\n /**\n * @deprecated to be removed on next major\n * Use aria-expanded instead\n */\n \"data-state\": dataStateType;\n};\n\n/**\n * Props for the PopoverTrigger component\n */\nexport type PopoverTriggerProps = {\n /**\n * Render function that receives trigger props and returns a React element\n */\n children: (data: PopoverTriggerChildrenReturnType) => ReactElement;\n};\n\n/**\n * PopoverTrigger component for creating custom trigger elements.\n *\n * Features:\n * - Supports custom trigger elements via render prop pattern\n * - Automatic focus management and keyboard interaction\n * - Hover and click event handling\n * - Accessibility attributes (aria-haspopup, aria-expanded, aria-details)\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n *\n * @example\n * <Popover.Trigger>\n * {(props) => (\n * <button {...props}>\n * Click to open popover\n * </button>\n * )}\n * </Popover.Trigger>\n *\n * @example\n * <Popover.Trigger>\n * {(props) => (\n * <div {...props} role=\"button\" tabIndex={0}>\n * Custom trigger element\n * </div>\n * )}\n * </Popover.Trigger>\n */\nexport function PopoverTrigger(props: PopoverTriggerProps) {\n const { children } = props;\n const context = usePopoverContext();\n\n if (!supportsPopover())\n return <PopoverLegacyTrigger {...(props as PopoverLegacyTriggerProps)} />;\n\n if (!context) return;\n const { element, ...rest } = context.invoker;\n\n return children(rest);\n}\n\nPopoverTrigger.displayName = \"PopoverTrigger\";\n","import { PopoverClose } from \"./PopoverClose\";\nimport { PopoverButton } from \"./PopoverButton\";\nimport { PopoverContent } from \"./PopoverContent\";\nimport { PopoverTrigger } from \"./PopoverTrigger\";\nimport {\n ComponentPropsWithoutRef,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { PopoverContext, PopoverContextProps } from \"./internal/PopoverContext\";\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n limitShift,\n offset,\n Placement,\n shift,\n size,\n} from \"@floating-ui/react\";\nimport {\n safeHidePopover,\n safeShowPopover,\n supportsPopover,\n} from \"../../internal/functions\";\nimport { PopoverLegacyElement } from \"./internal/PopoverLegacy/PopoverLegacy\";\nimport { PopoverLegacyProps } from \"./internal/PopoverLegacy\";\nimport { DisableCloseOnEscapeOrClickProps } from \"../../types\";\nimport {\n OpenCloseTransitionStateEffects,\n useOnClickOutside,\n useOptionallyControlledState,\n usePopoverTransitionStates,\n} from \"../../internal/hooks\";\nimport { DialogContext } from \"../Dialog/internal/DialogContext\";\n\n/**\n * Props for the Popover component\n * @property {ReactNode} [children] - The content to be rendered inside the popover\n * @property {string} [id] - Unique identifier for the popover\n * @property {boolean} [modal] - Whether the popover should be modal (traps focus)\n * @property {boolean} [openOnHover] - Changes interaction to use hover instead of click\n * @property {boolean} [fillAvailableHeight] - Changes height and positioning for select/combobox\n * @property {number | string} [maxHeight] - Maximum height of the popover content\n * @property {boolean} [fitScreen] - Whether the popover should fit within the screen bounds\n * @property {number | string} [minHeight] - Minimum height of the popover content\n * @property {boolean} [matchReferenceWidth] - Whether the popover width should match the trigger element\n * @property {boolean} [fixedWidth] - Whether the popover should have a fixed width\n * @property {string} [placement] - Placement of the popover relative to the trigger\n * @property {boolean} [open] - Controlled open state\n * @property {boolean} [defaultOpen] - Default open state for uncontrolled mode\n * @property {Function} [onOpenChange] - Callback when open state changes\n * @property {Function} [onOutsidePress] - Callback when clicking outside the popover\n * @property {Function} [onClose] - Fires when the floating element is requested to be closed\n * @property {boolean} [disableCaret] - Whether to disable the caret/arrow indicator\n * @property {boolean} [noPadding] - Whether to remove default padding from content\n * @property {boolean} [disableAutoUpdate] - Whether to disable automatic position updates\n * @property {boolean} [disableTriggerFocus] - Whether to disable focus on the trigger element\n * @property {number} [delay] - Delay before opening the popover (for hover mode)\n * @property {boolean} [disableCloseOnClickOutside] - Whether to disable closing on outside click\n * @property {boolean} [disableCloseOnEscape] - Whether to disable closing on escape key\n */\n\n/**\n * Props for the Popover component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends DisableCloseOnEscapeOrClickProps\n */\nexport type PopoverProps = {\n /**\n * The content to be rendered inside the popover\n */\n children?: ComponentPropsWithoutRef<\"div\">[\"children\"];\n /**\n * Unique identifier for the popover\n */\n id?: ComponentPropsWithoutRef<\"div\">[\"id\"];\n /**\n * Whether the popover should be modal (traps focus)\n * @default false\n */\n modal?: boolean;\n /**\n * Disables the shift of floating element\n * @internal\n */\n disableShift?: boolean;\n /**\n * Disables the flip of floating element\n * @internal\n */\n disableFlip?: boolean;\n /**\n * Disables the flip cross-axis fallback of floating element\n * @internal\n */\n disableFlipFallback?: boolean;\n /**\n * Changes interaction to use hover instead of click\n * @default false\n */\n openOnHover?: boolean;\n /**\n * Changes height and positioning for select/combobox\n * @default false\n */\n fillAvailableHeight?: boolean;\n /**\n * Maximum height of the popover content\n */\n maxHeight?: number | string;\n /**\n * Whether the popover should fit within the screen bounds\n * @default false\n */\n fitScreen?: boolean;\n /**\n * Minimum height of the popover content\n * @default \"2.875rem\"\n */\n minHeight?: number | string;\n /**\n * Whether the popover width should match the trigger element\n * @default false\n */\n matchReferenceWidth?: boolean;\n /**\n * Whether the popover should have a fixed width\n * @default false\n */\n fixedWidth?: boolean;\n /**\n * Placement of the popover relative to the trigger\n * @default \"bottom\"\n */\n placement?: Placement;\n /**\n * Controlled open state\n */\n open?: boolean;\n /**\n * Default open state for uncontrolled mode\n * @default false\n */\n defaultOpen?: boolean;\n /**\n * @deprecated to be removed in next major\n * use onOpenAnimationStart, onOpenAnimationComplete, onCloseAnimationStart, onCloseAnimationComplete instead\n * Callback when open state changes\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * @deprecated to be removed in next major\n * use onClickOutside instead\n * Callback when clicking outside the popover\n */\n onOutsidePress?: (e: globalThis.MouseEvent) => void;\n /**\n * Callback when clicking outside the popover\n */\n onClickOutside?: (e: globalThis.MouseEvent) => void;\n /**\n * Fires when the floating element is requested to be closed\n * Note: this does not fire when openOnHover is true and mouse leaves to close\n * eg. on click outside, [esc] to close, or by <Popover.Close>\n */\n onClose?: () => void;\n /**\n * Whether to disable the caret/arrow indicator\n * @default false\n */\n disableCaret?: boolean;\n /**\n * Whether to remove default padding from content\n * @default false\n */\n noPadding?: boolean;\n /**\n * Whether to disable automatic position updates\n * @default false\n */\n disableAutoUpdate?: boolean;\n /**\n * @deprecated to be removed on next major\n * use modal instead\n */\n disableFocusLock?: boolean;\n /**\n * Whether to disable focus on the trigger element\n * @default false\n */\n disableTriggerFocus?: boolean;\n /**\n * Delay before opening the popover (for hover mode)\n * @default 100\n */\n delay?: number;\n /**\n * @deprecated to be removed on next major\n * This is not needed anymore as the Popover API is used.\n * Popover API uses top-layer for its popover content.\n */\n root?: HTMLElement | React.MutableRefObject<HTMLElement | null> | null;\n} & DisableCloseOnEscapeOrClickProps &\n OpenCloseTransitionStateEffects;\n\nconst PopoverElement = forwardRef((props: PopoverProps, ref) => {\n const {\n children,\n openOnHover = false,\n delay = 100,\n placement = \"bottom\",\n minHeight = \"2.875rem\",\n open,\n defaultOpen = false,\n disableShift,\n disableFlip,\n disableFlipFallback,\n matchReferenceWidth,\n id,\n disableCaret,\n fixedWidth,\n fillAvailableHeight,\n maxHeight,\n disableCloseOnClickOutside,\n disableCloseOnEscape,\n fitScreen,\n disableFocusLock,\n disableTriggerFocus,\n modal,\n noPadding,\n onOpenChange,\n onOutsidePress,\n onClickOutside,\n onClose,\n onOpenAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationStart,\n onCloseAnimationComplete,\n } = props;\n const uid = useId();\n const [invoker, setInvoker] =\n useState<PopoverContextProps[\"invoker\"]>(undefined);\n const [popover, setPopover] =\n useState<PopoverContextProps[\"popover\"]>(undefined);\n const [rootNode, setRootNode] = useState<PopoverContextProps[\"rootNode\"]>();\n const [arrowElement, setArrowElement] =\n useState<PopoverContextProps[\"arrowElement\"]>(undefined);\n const [openState, setOpenState] = useOptionallyControlledState<\n PopoverContextProps[\"openState\"]\n >({\n controlledValue: open,\n defaultValue: defaultOpen,\n });\n const arrowRef = useRef<HTMLSpanElement>(null);\n const dialogContext = useContext(DialogContext);\n const [triggerHovered, setTriggerHovered] = useState(false);\n const [contentHovered, setContentHovered] = useState(false);\n // Track the actual computed placement after flip/shift middleware runs\n // (may differ from the placement prop if Floating UI adjusts it)\n const [actualPlacement, setActualPlacement] = useState<Placement | undefined>(\n placement,\n );\n\n // TODO: Find a way to test these properly!\n // Stryker disable all : Currently relying on Chromatic test for all visuals\n const processMinHeight =\n typeof minHeight === \"string\" ? minHeight : `${minHeight}px`;\n\n usePopoverTransitionStates(popover, openState, {\n onOpenAnimationStart: useCallback(() => {\n onOpenAnimationStart?.();\n }, [onOpenAnimationStart]),\n onOpenAnimationComplete: useCallback(() => {\n onOpenAnimationComplete?.();\n }, [onOpenAnimationComplete]),\n onCloseAnimationStart: useCallback(() => {\n onCloseAnimationStart?.();\n }, [onCloseAnimationStart]),\n onCloseAnimationComplete: useCallback(() => {\n onCloseAnimationComplete?.();\n }, [onCloseAnimationComplete]),\n });\n\n /* istanbul ignore next */\n const updatePosition = useCallback(() => {\n if (!invoker || !popover) return;\n // disable position update when closing\n if (!openState) return;\n computePosition(invoker, popover, {\n placement: placement,\n middleware: [\n offset(8),\n size({\n padding: 5,\n apply({ rects, availableHeight, elements }) {\n Object.assign(elements.floating.style, {\n ...(matchReferenceWidth\n ? { width: `${rects.reference.width}px` }\n : fixedWidth\n ? { width: \"40dvw\" }\n : {}),\n ...(fillAvailableHeight\n ? {\n height: `${availableHeight - 20}px`,\n minHeight: processMinHeight,\n }\n : {}),\n ...(maxHeight\n ? {\n minHeight: processMinHeight,\n height: fitScreen\n ? typeof maxHeight === \"string\"\n ? maxHeight\n : `${maxHeight}px`\n : undefined,\n maxHeight: fitScreen\n ? `${availableHeight - 20}px`\n : typeof maxHeight === \"string\"\n ? maxHeight\n : `${maxHeight}px`,\n }\n : {}),\n ...(fitScreen && !maxHeight\n ? {\n minHeight: processMinHeight,\n maxHeight: `${availableHeight - 20}px`,\n }\n : {}),\n zIndex: 1,\n });\n },\n }),\n flip({\n mainAxis: !disableFlip,\n crossAxis: false,\n fallbackAxisSideDirection: disableFlipFallback ? \"none\" : \"end\",\n padding: 5,\n }),\n shift({\n padding: 5,\n mainAxis: !disableShift,\n crossAxis: false,\n limiter: limitShift({\n mainAxis: !disableShift,\n }),\n }),\n arrow({\n element: !disableCaret && arrowElement ? arrowElement : null,\n padding: 5,\n }),\n ],\n }).then(({ x, y, placement, middlewareData }) => {\n setActualPlacement(placement);\n const side = placement.split(\"-\")[0];\n\n const staticSide = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\",\n }[side as \"top\" | \"right\" | \"bottom\" | \"left\"];\n\n const arrowDeg = () => {\n if (staticSide === \"top\") return 180;\n if (staticSide === \"bottom\") return 0;\n if (staticSide === \"left\") return 90;\n return 270;\n };\n\n Object.assign(popover.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n if (middlewareData.arrow && arrowElement) {\n const { x, y } = middlewareData.arrow;\n Object.assign(arrowElement.style, {\n left: x != null ? `${x}px` : \"\",\n top: y != null ? `${y}px` : \"\",\n right: \"\",\n bottom: \"\",\n [staticSide as string]: `${-arrowElement.offsetWidth + 2}px`,\n transform: `rotate(${arrowDeg()}deg)`,\n });\n }\n });\n }, [\n arrowElement,\n disableCaret,\n disableFlip,\n disableFlipFallback,\n disableShift,\n fillAvailableHeight,\n fitScreen,\n fixedWidth,\n invoker,\n matchReferenceWidth,\n maxHeight,\n openState,\n placement,\n popover,\n processMinHeight,\n ]);\n\n const resetKey = useRef(0);\n // Effect to add autoUpdate to eventListener\n // while the popover is opened\n useLayoutEffect(() => {\n if (!popover || !invoker) return;\n if (!openState) {\n resetKey.current += 1;\n return;\n }\n\n let requestID: number | null = null;\n const cleanup = autoUpdate(invoker, popover, () => {\n requestID = requestAnimationFrame(updatePosition);\n });\n\n return () => {\n if (requestID) cancelAnimationFrame(requestID);\n cleanup();\n };\n }, [invoker, popover, updatePosition, openState]);\n // Stryker restore all\n\n popover?.getRootNode();\n\n const popoverId = id ?? `popover-${uid.replace(/:/g, \"\")}`;\n const isControlled = typeof open !== \"undefined\";\n\n // Main function to open popover\n const openPopover = useCallback(() => {\n if (\n !popover ||\n !(rootNode as ShadowRoot | Document)?.querySelector(`#${popoverId}`)\n )\n return;\n setOpenState(true);\n onOpenChange?.(true);\n }, [popover, rootNode, popoverId, onOpenChange, setOpenState]);\n\n // Main function to close popover\n const closePopover = useCallback(\n (fn?: () => void) => {\n if (!popover || !openState) return;\n if (!openOnHover) onClose?.();\n setOpenState(false);\n onOpenChange?.(false);\n\n // Reset hover states to prevent stuck state when closed programmatically\n // while mouse is still inside the popover content\n setTriggerHovered(false);\n setContentHovered(false);\n\n fn?.();\n },\n [\n popover,\n openState,\n openOnHover,\n onClose,\n setOpenState,\n onOpenChange,\n setTriggerHovered,\n setContentHovered,\n ],\n );\n\n useImperativeHandle(\n ref,\n () => ({\n openPopover,\n closePopover,\n }),\n [openPopover, closePopover],\n );\n\n // Updating openness for controlled\n useEffect(() => {\n if (typeof openState === \"undefined\") return;\n if (openState) {\n if (dialogContext) {\n if (dialogContext?.ref?.current?.open) {\n safeShowPopover(popover);\n dialogContext?.setHasOpenPopover?.(true);\n }\n return;\n }\n safeShowPopover(popover);\n } else {\n safeHidePopover(popover);\n dialogContext?.setHasOpenPopover?.(false);\n }\n }, [openState, openPopover, closePopover, dialogContext, popover]);\n\n useOnClickOutside({\n disable: disableCloseOnClickOutside || !openState,\n onOutsidePress: (e) => {\n if (!openState) return;\n onClickOutside?.(e);\n onOutsidePress?.(e);\n },\n targets: [invoker, popover],\n onClose: () => {\n if (openOnHover || isControlled) return;\n closePopover();\n },\n });\n\n const value = useMemo(() => {\n return {\n popoverId,\n invoker,\n setInvoker,\n popover,\n setPopover,\n arrowElement,\n setArrowElement,\n openPopover,\n closePopover,\n placement,\n actualPlacement,\n onClose,\n openOnHover,\n openState,\n setOpenState,\n disableCloseOnClickOutside,\n fillAvailableHeight,\n maxHeight,\n matchReferenceWidth,\n fixedWidth,\n disableCaret,\n disableFlipFallback,\n disableFocusLock,\n disableTriggerFocus,\n disableCloseOnEscape,\n noPadding,\n controlled: isControlled,\n modal: modal ?? disableFocusLock,\n arrowRef,\n resetKey: resetKey.current,\n rootNode,\n setRootNode,\n delay,\n triggerHovered,\n setTriggerHovered,\n contentHovered,\n setContentHovered,\n };\n }, [\n popoverId,\n invoker,\n popover,\n arrowElement,\n openPopover,\n closePopover,\n placement,\n actualPlacement,\n onClose,\n openOnHover,\n openState,\n setOpenState,\n disableCloseOnClickOutside,\n fillAvailableHeight,\n maxHeight,\n matchReferenceWidth,\n fixedWidth,\n disableCaret,\n disableFlipFallback,\n disableFocusLock,\n disableTriggerFocus,\n disableCloseOnEscape,\n noPadding,\n isControlled,\n modal,\n rootNode,\n delay,\n triggerHovered,\n setTriggerHovered,\n contentHovered,\n setContentHovered,\n ]);\n\n if (!supportsPopover())\n return <PopoverLegacyElement {...(props as PopoverLegacyProps)} />;\n\n return (\n <PopoverContext.Provider value={value}>{children}</PopoverContext.Provider>\n );\n});\n\nPopoverElement.displayName = \"Popover\";\n\n/**\n * Popover component for displaying floating content relative to a trigger element.\n *\n * Features:\n * - Supports both controlled and uncontrolled modes\n * - Automatic positioning with fallback strategies\n * - Hover and click interaction modes\n * - Modal and non-modal variants\n * - Custom trigger elements\n * - Automatic height and width management\n * - Screen boundary detection and fitting\n * - Keyboard navigation and accessibility\n * - Popover API support with legacy fallback\n * - Outside click detection and handling\n * - Focus management and trapping\n * - Arrow/caret indicators\n * - Delay support for hover interactions\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Popover>\n * <Popover.Button>Click to open</Popover.Button>\n * <Popover.Content>\n * <p>This is the popover content</p>\n * <Popover.Close>Close</Popover.Close>\n * </Popover.Content>\n * </Popover>\n *\n * @example\n * <Popover openOnHover delay={1000}>\n * <Popover.Button>Hover to open</Popover.Button>\n * <Popover.Content>Tooltip content</Popover.Content>\n * </Popover>\n *\n * @example\n * <Popover modal>\n * <Popover.Trigger>\n * {(props) => <button {...props}>Custom trigger</button>}\n * </Popover.Trigger>\n * <Popover.Content>\n * <TextField label=\"Form field\" />\n * <Popover.Close>Done</Popover.Close>\n * </Popover.Content>\n * </Popover>\n */\nexport const Popover = Object.assign(PopoverElement, {\n /**\n * PopoverTrigger component for creating custom trigger elements.\n *\n * Features:\n * - Supports custom trigger elements via render prop pattern\n * - Automatic focus management and keyboard interaction\n * - Hover and click event handling\n * - Accessibility attributes (aria-haspopup, aria-expanded, aria-details)\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Popover.Trigger>\n * {(props) => (\n * <button {...props}>\n * Click to open popover\n * </button>\n * )}\n * </Popover.Trigger>\n */\n Trigger: PopoverTrigger,\n /**\n * PopoverContent component for the main popover content area.\n *\n * Features:\n * - Automatic positioning and sizing based on trigger\n * - Screen boundary detection and fitting\n * - Scroll handling with custom scroller reference\n * - Focus management and keyboard navigation\n * - Hover interaction support for tooltip mode\n * - Escape key handling for closing\n * - Tab key trapping for modal popovers\n * - Arrow/caret indicator with automatic positioning\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Accessibility support with proper ARIA roles\n *\n * @example\n * <Popover.Content>\n * <p>This is the popover content</p>\n * <Popover.Close>Close</Popover.Close>\n * </Popover.Content>\n */\n Content: PopoverContent,\n /**\n * PopoverClose component for closing the popover.\n *\n * Features:\n * - Automatic popover closing on click\n * - Supports all Button component props and styling\n * - Controlled and uncontrolled mode support\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Accessibility support with proper button semantics\n * - Delayed closing for controlled mode\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Popover.Close>Close</Popover.Close>\n */\n Close: PopoverClose,\n /**\n * PopoverButton component for creating button-style triggers.\n *\n * Features:\n * - Button styling and behavior with all Button props\n * - Automatic popover opening on click\n * - Hover interaction support for tooltip mode\n * - Focus management and keyboard navigation\n * - Accessibility attributes (aria-haspopup, aria-expanded, aria-details)\n * - Legacy popover support with fallback\n * - Context integration with parent popover\n * - Event handling for mouse, keyboard, and focus events\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Popover.Button>Click to open</Popover.Button>\n */\n Button: PopoverButton,\n});\n"],"names":["arrow","PopoverLegacyTrigger","styles","PopoverClose","PopoverButton","PopoverContent","placement","x","y"],"mappings":"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"}