boreal-ui 0.0.17 → 0.0.19

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 (150) hide show
  1. package/dist/core/{Accordion-DOhvj3Ty.js → Accordion-CY5BCoA7.js} +2 -2
  2. package/dist/core/Accordion-CY5BCoA7.js.map +1 -0
  3. package/dist/core/{Accordion-DQsSUVAE.cjs → Accordion-D6hxjkE1.cjs} +2 -2
  4. package/dist/core/Accordion-D6hxjkE1.cjs.map +1 -0
  5. package/dist/core/Accordion.cjs.js +1 -1
  6. package/dist/core/Accordion.js +1 -1
  7. package/dist/core/{Avatar-B5aqfDZX.cjs → Avatar-B3hD_M2R.cjs} +2 -2
  8. package/dist/core/Avatar-B3hD_M2R.cjs.map +1 -0
  9. package/dist/core/{Avatar-mhtrG5FT.js → Avatar-BxHxzh30.js} +2 -2
  10. package/dist/core/Avatar-BxHxzh30.js.map +1 -0
  11. package/dist/core/Avatar.cjs.js +1 -1
  12. package/dist/core/Avatar.js +1 -1
  13. package/dist/core/{Footer-Dc_CuIC1.cjs → Footer-BKfoTV0l.cjs} +2 -2
  14. package/dist/core/{Footer-Dc_CuIC1.cjs.map → Footer-BKfoTV0l.cjs.map} +1 -1
  15. package/dist/core/{Footer-7ixaMvFc.js → Footer-CJOKuXJh.js} +2 -2
  16. package/dist/core/{Footer-7ixaMvFc.js.map → Footer-CJOKuXJh.js.map} +1 -1
  17. package/dist/core/Footer.cjs.js +1 -1
  18. package/dist/core/Footer.js +1 -1
  19. package/dist/core/{NavBar-CDI5S3fK.cjs → NavBar-C8zI9Lvt.cjs} +2 -2
  20. package/dist/core/NavBar-C8zI9Lvt.cjs.map +1 -0
  21. package/dist/core/{NavBar-Dyd9USO4.js → NavBar-CNoWBQIV.js} +2 -2
  22. package/dist/core/NavBar-CNoWBQIV.js.map +1 -0
  23. package/dist/core/NavBar.cjs.js +1 -1
  24. package/dist/core/NavBar.js +1 -1
  25. package/dist/core/{PopOver-OijKNHZU.cjs → PopOver-BdZXa2hs.cjs} +2 -2
  26. package/dist/core/{PopOver-OijKNHZU.cjs.map → PopOver-BdZXa2hs.cjs.map} +1 -1
  27. package/dist/core/{PopOver-DNqWcWjU.js → PopOver-C6AnRNop.js} +2 -2
  28. package/dist/core/{PopOver-DNqWcWjU.js.map → PopOver-C6AnRNop.js.map} +1 -1
  29. package/dist/core/PopOver.cjs.js +1 -1
  30. package/dist/core/PopOver.js +1 -1
  31. package/dist/core/{STT-aXWWubSC.js → STT-CA0J3Cr9.js} +4 -3
  32. package/dist/core/STT-CA0J3Cr9.js.map +1 -0
  33. package/dist/core/{STT-D6L-amjZ.cjs → STT-CKXp-dIO.cjs} +4 -3
  34. package/dist/core/STT-CKXp-dIO.cjs.map +1 -0
  35. package/dist/core/ScrollToTop.cjs.js +1 -1
  36. package/dist/core/ScrollToTop.js +1 -1
  37. package/dist/core/{Select-_12yQ-yj.js → Select-CDWU_cuN.js} +2 -2
  38. package/dist/core/{Select-_12yQ-yj.js.map → Select-CDWU_cuN.js.map} +1 -1
  39. package/dist/core/{Select-CitauzQm.cjs → Select-DWzxymiA.cjs} +2 -2
  40. package/dist/core/{Select-CitauzQm.cjs.map → Select-DWzxymiA.cjs.map} +1 -1
  41. package/dist/core/Select.cjs.js +1 -1
  42. package/dist/core/Select.js +1 -1
  43. package/dist/core/Sidebar-CqTJJULG.cjs.map +1 -1
  44. package/dist/core/Sidebar-z0mG5nn_.js.map +1 -1
  45. package/dist/core/{Taginput-BMPHihSz.cjs → TagInput-BMPHihSz.cjs} +1 -1
  46. package/dist/core/{Taginput-BMPHihSz.cjs.map → TagInput-BMPHihSz.cjs.map} +1 -1
  47. package/dist/core/{Taginput-CrScreYL.js → TagInput-CrScreYL.js} +1 -1
  48. package/dist/core/{Taginput-CrScreYL.js.map → TagInput-CrScreYL.js.map} +1 -1
  49. package/dist/core/TagInput.cjs.js +2 -2
  50. package/dist/core/TagInput.js +1 -1
  51. package/dist/core/{Toolbar-Cg_ofRqY.cjs → Toolbar-CEiYjTwB.cjs} +2 -2
  52. package/dist/core/{Toolbar-Cg_ofRqY.cjs.map → Toolbar-CEiYjTwB.cjs.map} +1 -1
  53. package/dist/core/{Toolbar-94Pu5-SL.js → Toolbar-D3gg3Q2K.js} +2 -2
  54. package/dist/core/{Toolbar-94Pu5-SL.js.map → Toolbar-D3gg3Q2K.js.map} +1 -1
  55. package/dist/core/Toolbar.cjs.js +1 -1
  56. package/dist/core/Toolbar.js +1 -1
  57. package/dist/core/index.cjs.js +10 -10
  58. package/dist/core/index.js +9 -9
  59. package/dist/next/{Accordion-Bu2IAjE6.js → Accordion-DD5oHwaa.js} +2 -2
  60. package/dist/next/Accordion-DD5oHwaa.js.map +1 -0
  61. package/dist/next/{Accordion-BD-HsAos.cjs → Accordion-P9JXxfBX.cjs} +2 -2
  62. package/dist/next/Accordion-P9JXxfBX.cjs.map +1 -0
  63. package/dist/next/Accordion.cjs.js +1 -1
  64. package/dist/next/Accordion.js +1 -1
  65. package/dist/next/{Avatar-B0vflpuy.js → Avatar-0OXmXwmQ.js} +2 -2
  66. package/dist/next/Avatar-0OXmXwmQ.js.map +1 -0
  67. package/dist/next/{Avatar-DjuHvrMV.cjs → Avatar-CguQwhBN.cjs} +2 -2
  68. package/dist/next/Avatar-CguQwhBN.cjs.map +1 -0
  69. package/dist/next/Avatar.cjs.js +1 -1
  70. package/dist/next/Avatar.js +1 -1
  71. package/dist/next/{Footer-J0Tb7-n4.cjs → Footer-CLvhExUU.cjs} +2 -2
  72. package/dist/next/{Footer-J0Tb7-n4.cjs.map → Footer-CLvhExUU.cjs.map} +1 -1
  73. package/dist/next/{Footer-bb_8EH_R.js → Footer-CzA8xCa3.js} +2 -2
  74. package/dist/next/{Footer-bb_8EH_R.js.map → Footer-CzA8xCa3.js.map} +1 -1
  75. package/dist/next/Footer.cjs.js +1 -1
  76. package/dist/next/Footer.js +1 -1
  77. package/dist/next/{NavBar-Br6pYp7w.js → NavBar-BXbAUNSJ.js} +2 -2
  78. package/dist/next/NavBar-BXbAUNSJ.js.map +1 -0
  79. package/dist/next/{NavBar-CGuVgKpW.cjs → NavBar-CXqV4sKP.cjs} +2 -2
  80. package/dist/next/NavBar-CXqV4sKP.cjs.map +1 -0
  81. package/dist/next/NavBar.cjs.js +1 -1
  82. package/dist/next/NavBar.js +1 -1
  83. package/dist/next/{PopOver-CHs0s9rp.cjs → PopOver-CAxcmHRx.cjs} +2 -2
  84. package/dist/next/{PopOver-CHs0s9rp.cjs.map → PopOver-CAxcmHRx.cjs.map} +1 -1
  85. package/dist/next/{PopOver-pllmYvp6.js → PopOver-Cz4BCVFe.js} +2 -2
  86. package/dist/next/{PopOver-pllmYvp6.js.map → PopOver-Cz4BCVFe.js.map} +1 -1
  87. package/dist/next/PopOver.cjs.js +1 -1
  88. package/dist/next/PopOver.js +1 -1
  89. package/dist/next/{STT-Br81yPXp.js → STT-B5eE92VH.js} +4 -3
  90. package/dist/next/STT-B5eE92VH.js.map +1 -0
  91. package/dist/next/{STT-C0q3yqiJ.cjs → STT-CLZjfsV_.cjs} +4 -3
  92. package/dist/next/STT-CLZjfsV_.cjs.map +1 -0
  93. package/dist/next/ScrollToTop.cjs.js +1 -1
  94. package/dist/next/ScrollToTop.js +1 -1
  95. package/dist/next/{Select-CdWyrGrV.js → Select-D-9wuabW.js} +2 -2
  96. package/dist/next/{Select-CdWyrGrV.js.map → Select-D-9wuabW.js.map} +1 -1
  97. package/dist/next/{Select-Bln5-seQ.cjs → Select-DxQS7u41.cjs} +2 -2
  98. package/dist/next/{Select-Bln5-seQ.cjs.map → Select-DxQS7u41.cjs.map} +1 -1
  99. package/dist/next/Select.cjs.js +1 -1
  100. package/dist/next/Select.js +1 -1
  101. package/dist/next/Sidebar-B9jHy0wy.js.map +1 -1
  102. package/dist/next/Sidebar-PUffGMhm.cjs.map +1 -1
  103. package/dist/next/{Taginput-BcNgwFOj.cjs → TagInput-BcNgwFOj.cjs} +1 -1
  104. package/dist/next/{Taginput-BcNgwFOj.cjs.map → TagInput-BcNgwFOj.cjs.map} +1 -1
  105. package/dist/next/{Taginput-CdYMgcYY.js → TagInput-CdYMgcYY.js} +1 -1
  106. package/dist/next/{Taginput-CdYMgcYY.js.map → TagInput-CdYMgcYY.js.map} +1 -1
  107. package/dist/next/TagInput.cjs.js +2 -2
  108. package/dist/next/TagInput.js +1 -1
  109. package/dist/next/{Toolbar-B8AB6ADW.js → Toolbar-C1_m1ygd.js} +2 -2
  110. package/dist/next/{Toolbar-B8AB6ADW.js.map → Toolbar-C1_m1ygd.js.map} +1 -1
  111. package/dist/next/{Toolbar-BIruaq82.cjs → Toolbar-OpUQ2wdO.cjs} +2 -2
  112. package/dist/next/{Toolbar-BIruaq82.cjs.map → Toolbar-OpUQ2wdO.cjs.map} +1 -1
  113. package/dist/next/Toolbar.cjs.js +1 -1
  114. package/dist/next/Toolbar.js +1 -1
  115. package/dist/next/index.cjs.js +10 -10
  116. package/dist/next/index.js +10 -10
  117. package/dist/tsconfig.build.tsbuildinfo +1 -1
  118. package/dist/types/components/ScrollToTop/ScrollToTop.types.d.ts +40 -0
  119. package/dist/types/components/ScrollToTop/ScrollToTop.types.d.ts.map +1 -0
  120. package/dist/types/components/ScrollToTop/ScrollToTopBase.d.ts +2 -7
  121. package/dist/types/components/ScrollToTop/ScrollToTopBase.d.ts.map +1 -1
  122. package/dist/types/components/Sidebar/Sidebar.types.d.ts +0 -6
  123. package/dist/types/components/Sidebar/Sidebar.types.d.ts.map +1 -1
  124. package/dist/types/components/Sidebar/SidebarBase.d.ts +1 -0
  125. package/dist/types/components/Sidebar/SidebarBase.d.ts.map +1 -1
  126. package/dist/types/components/TagInput/core/{Taginput.d.ts → TagInput.d.ts} +1 -1
  127. package/dist/types/components/TagInput/core/{Taginput.d.ts.map → TagInput.d.ts.map} +1 -1
  128. package/dist/types/components/TagInput/next/{Taginput.d.ts → TagInput.d.ts} +1 -1
  129. package/dist/types/components/TagInput/next/TagInput.d.ts.map +1 -0
  130. package/dist/types/index.core.d.ts +1 -1
  131. package/dist/types/index.next.d.ts +1 -1
  132. package/dist/types/public.types.d.ts +1 -0
  133. package/package.json +1 -1
  134. package/dist/core/Accordion-DOhvj3Ty.js.map +0 -1
  135. package/dist/core/Accordion-DQsSUVAE.cjs.map +0 -1
  136. package/dist/core/Avatar-B5aqfDZX.cjs.map +0 -1
  137. package/dist/core/Avatar-mhtrG5FT.js.map +0 -1
  138. package/dist/core/NavBar-CDI5S3fK.cjs.map +0 -1
  139. package/dist/core/NavBar-Dyd9USO4.js.map +0 -1
  140. package/dist/core/STT-D6L-amjZ.cjs.map +0 -1
  141. package/dist/core/STT-aXWWubSC.js.map +0 -1
  142. package/dist/next/Accordion-BD-HsAos.cjs.map +0 -1
  143. package/dist/next/Accordion-Bu2IAjE6.js.map +0 -1
  144. package/dist/next/Avatar-B0vflpuy.js.map +0 -1
  145. package/dist/next/Avatar-DjuHvrMV.cjs.map +0 -1
  146. package/dist/next/NavBar-Br6pYp7w.js.map +0 -1
  147. package/dist/next/NavBar-CGuVgKpW.cjs.map +0 -1
  148. package/dist/next/STT-Br81yPXp.js.map +0 -1
  149. package/dist/next/STT-C0q3yqiJ.cjs.map +0 -1
  150. package/dist/types/components/TagInput/next/Taginput.d.ts.map +0 -1
@@ -27,7 +27,7 @@ const AccordionBase = ({
27
27
  className = "",
28
28
  getUniqueId,
29
29
  classMap,
30
- "data-testid": testId,
30
+ "data-testid": testId = "accordion",
31
31
  ...rest
32
32
  }) => {
33
33
  const isControlled = expanded !== void 0;
@@ -210,4 +210,4 @@ const Accordion = (props) => /* @__PURE__ */ jsx(AccordionBase, { ...props, getU
210
210
  export {
211
211
  Accordion as A
212
212
  };
213
- //# sourceMappingURL=Accordion-DOhvj3Ty.js.map
213
+ //# sourceMappingURL=Accordion-CY5BCoA7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion-CY5BCoA7.js","sources":["../../src/components/Accordion/AccordionBase.tsx","../../src/components/Accordion/core/Accordion.tsx"],"sourcesContent":["import React, { useMemo, useState, KeyboardEvent } from \"react\";\r\nimport { AccordionProps } from \"./Accordion.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface AccordionBaseProps extends AccordionProps {\r\n getUniqueId: () => string;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const AccordionBase: React.FC<AccordionBaseProps> = ({\r\n title,\r\n id,\r\n children,\r\n lazyLoad = false,\r\n iconPosition = \"right\",\r\n isToggleable = true,\r\n asyncContent = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n description,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n outline = false,\r\n expanded,\r\n disabled,\r\n customCollapsedIcon,\r\n customExpandedIcon,\r\n onToggle,\r\n initiallyExpanded = false,\r\n className = \"\",\r\n getUniqueId,\r\n classMap,\r\n \"data-testid\": testId = \"accordion\",\r\n ...rest\r\n}) => {\r\n const isControlled = expanded !== undefined;\r\n const internalId = useMemo(getUniqueId, []);\r\n const [internalExpanded, setInternalExpanded] = useState(initiallyExpanded);\r\n const [hasBeenExpanded, setHasBeenExpanded] = useState(initiallyExpanded);\r\n const [isLoading, setIsLoading] = useState(asyncContent && initiallyExpanded);\r\n const isExpanded = isControlled ? expanded : internalExpanded;\r\n\r\n const contentId = `${id || internalId}-content`;\r\n const buttonId = `${id || internalId}-button`;\r\n const descId = description ? `${id || internalId}-desc` : undefined;\r\n\r\n const toggleAccordion = () => {\r\n if (disabled) return;\r\n if (!isToggleable && isExpanded) return;\r\n isControlled ? onToggle?.(!expanded) : setInternalExpanded((prev) => !prev);\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (disabled) return;\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n toggleAccordion();\r\n }\r\n };\r\n\r\n useMemo(() => {\r\n if (isExpanded && !hasBeenExpanded) {\r\n setHasBeenExpanded(true);\r\n }\r\n }, [isExpanded]);\r\n\r\n useMemo(() => {\r\n if (asyncContent && isExpanded && isLoading) {\r\n const timer = setTimeout(() => {\r\n setIsLoading(false);\r\n }, 1000);\r\n\r\n return () => clearTimeout(timer);\r\n }\r\n }, [asyncContent, isExpanded, isLoading]);\r\n\r\n const renderedIcon = isExpanded\r\n ? (customExpandedIcon ?? \"−\")\r\n : (customCollapsedIcon ?? \"+\");\r\n\r\n const wrapperClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.accordion,\r\n classMap[size],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n isExpanded && classMap.expanded,\r\n className\r\n ),\r\n [classMap, size, disabled, isExpanded, className]\r\n );\r\n\r\n const headerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.header,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n isExpanded && classMap.expanded\r\n ),\r\n [classMap, isExpanded]\r\n );\r\n\r\n const contentClassName = useMemo(\r\n () => combineClassNames(classMap.content, isExpanded && classMap.expanded),\r\n [classMap, isExpanded]\r\n );\r\n\r\n const iconClassName = useMemo(\r\n () => combineClassNames(classMap.icon, isExpanded && classMap.expanded),\r\n [classMap, isExpanded]\r\n );\r\n\r\n return (\r\n <div {...rest} className={wrapperClassName}>\r\n <button\r\n id={buttonId}\r\n className={headerClassName}\r\n onClick={toggleAccordion}\r\n onKeyDown={handleKeyDown}\r\n type=\"button\"\r\n aria-expanded={isExpanded}\r\n aria-controls={contentId}\r\n aria-disabled={disabled}\r\n aria-describedby={descId}\r\n tabIndex={disabled ? -1 : 0}\r\n disabled={disabled}\r\n data-testid={testId ? `${testId}-accordion-toggle` : undefined}\r\n >\r\n {iconPosition === \"left\" && (\r\n <span\r\n className={iconClassName}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n {renderedIcon}\r\n </span>\r\n )}\r\n <span\r\n className={classMap.accordionTitle}\r\n data-testid={testId ? `${testId}-title` : undefined}\r\n >\r\n {title}\r\n </span>\r\n {iconPosition === \"right\" && (\r\n <span\r\n className={iconClassName}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n {renderedIcon}\r\n </span>\r\n )}\r\n </button>\r\n\r\n {description && (\r\n <span\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={testId ? `${testId}-description` : undefined}\r\n >\r\n {description}\r\n </span>\r\n )}\r\n\r\n <div\r\n id={contentId}\r\n role=\"region\"\r\n aria-labelledby={buttonId}\r\n className={contentClassName}\r\n data-state={isExpanded ? \"open\" : \"collapsed\"}\r\n data-testid={testId ? `${testId}-content` : undefined}\r\n >\r\n {isExpanded && asyncContent && isLoading && (\r\n <div className={classMap.loading}>Loading...</div>\r\n )}\r\n {(!lazyLoad || hasBeenExpanded) &&\r\n (!asyncContent || !isLoading) &&\r\n children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nAccordionBase.displayName = \"AccordionBase\";\r\n","import React from \"react\";\r\nimport \"./Accordion.scss\";\r\nimport { AccordionBase } from \"../AccordionBase\";\r\nimport type { AccordionProps } from \"../Accordion.types\";\r\n\r\nconst classes = {\r\n accordion: \"accordion\",\r\n header: \"accordion_header\",\r\n content: \"accordion_content\",\r\n icon: \"accordion_icon\",\r\n title: \"accordion_title\",\r\n\r\n shadowNone: \"accordion_shadow-None\",\r\n shadowLight: \"accordion_shadow-Light\",\r\n shadowMedium: \"accordion_shadow-Medium\",\r\n shadowStrong: \"accordion_shadow-Strong\",\r\n shadowIntense: \"accordion_shadow-Intense\",\r\n\r\n roundNone: \"accordion_round-None\",\r\n roundSmall: \"accordion_round-Small\",\r\n roundMedium: \"accordion_round-Medium\",\r\n roundLarge: \"accordion_round-Large\",\r\n\r\n disabled: \"accordion_disabled\",\r\n expanded: \"accordion_expanded\",\r\n\r\n primary: \"accordion_primary\",\r\n secondary: \"accordion_secondary\",\r\n\r\n tertiary: \"accordion_tertiary\",\r\n quaternary: \"accordion_quaternary\",\r\n\r\n success: \"accordion_success\",\r\n error: \"accordion_error\",\r\n warning: \"accordion_warning\",\r\n clear: \"accordion_clear\",\r\n outline: \"accordion_outline\",\r\n\r\n xs: \"accordion_xs\",\r\n small: \"accordion_small\",\r\n medium: \"accordion_medium\",\r\n large: \"accordion_large\",\r\n xl: \"accordion_xl\",\r\n};\r\n\r\nconst generateUniqueId = (() => {\r\n let counter = 0;\r\n return () => `accordion-core-${counter++}`;\r\n})();\r\n\r\nconst Accordion: React.FC<AccordionProps> = (props) => (\r\n <AccordionBase {...props} getUniqueId={generateUniqueId} classMap={classes} />\r\n);\r\n\r\nexport default Accordion;\r\n"],"names":[],"mappings":";;;;;AAgBO,MAAM,gBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT;AAAA,EACA,OAAO,eAAA;AAAA,EACP,QAAQ,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,eAAe,SAAS;AAAA,EACxB,GAAG;AACL,MAAM;AACJ,QAAM,eAAe,aAAa;AAClC,QAAM,aAAa,QAAQ,aAAa,EAAE;AAC1C,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAS,iBAAiB;AAC1E,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,iBAAiB;AACxE,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,gBAAgB,iBAAiB;AAC5E,QAAM,aAAa,eAAe,WAAW;AAE7C,QAAM,YAAY,GAAG,MAAM,UAAU;AACrC,QAAM,WAAW,GAAG,MAAM,UAAU;AACpC,QAAM,SAAS,cAAc,GAAG,MAAM,UAAU,UAAU;AAE1D,QAAM,kBAAkB,MAAM;AAC5B,QAAI,SAAU;AACd,QAAI,CAAC,gBAAgB,WAAY;AACjC,mBAAe,qCAAW,CAAC,YAAY,oBAAoB,CAAC,SAAS,CAAC,IAAI;AAAA,EAC5E;AAEA,QAAM,gBAAgB,CAAC,MAAqB;AAC1C,QAAI,SAAU;AACd,QAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,QAAE,eAAA;AACF,sBAAA;AAAA,IACF;AAAA,EACF;AAEA,UAAQ,MAAM;AACZ,QAAI,cAAc,CAAC,iBAAiB;AAClC,yBAAmB,IAAI;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,UAAU,CAAC;AAEf,UAAQ,MAAM;AACZ,QAAI,gBAAgB,cAAc,WAAW;AAC3C,YAAM,QAAQ,WAAW,MAAM;AAC7B,qBAAa,KAAK;AAAA,MACpB,GAAG,GAAI;AAEP,aAAO,MAAM,aAAa,KAAK;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,cAAc,YAAY,SAAS,CAAC;AAExC,QAAM,eAAe,aAChB,sBAAsB,MACtB,uBAAuB;AAE5B,QAAM,mBAAmB;AAAA,IACvB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,IAAI;AAAA,MACb,SAAS,KAAK;AAAA,MACd,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,YAAY,SAAS;AAAA,MACrB,cAAc,SAAS;AAAA,MACvB;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,MAAM,UAAU,YAAY,SAAS;AAAA,EAAA;AAGlD,QAAM,kBAAkB;AAAA,IACtB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,WAAW,SAAS;AAAA,MACpB,YAAY,SAAS;AAAA,MACrB,cAAc,SAAS;AAAA,IAAA;AAAA,IAE3B,CAAC,UAAU,UAAU;AAAA,EAAA;AAGvB,QAAM,mBAAmB;AAAA,IACvB,MAAM,kBAAkB,SAAS,SAAS,cAAc,SAAS,QAAQ;AAAA,IACzE,CAAC,UAAU,UAAU;AAAA,EAAA;AAGvB,QAAM,gBAAgB;AAAA,IACpB,MAAM,kBAAkB,SAAS,MAAM,cAAc,SAAS,QAAQ;AAAA,IACtE,CAAC,UAAU,UAAU;AAAA,EAAA;AAGvB,SACE,qBAAC,OAAA,EAAK,GAAG,MAAM,WAAW,kBACxB,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,SAAS;AAAA,QACT,WAAW;AAAA,QACX,MAAK;AAAA,QACL,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,oBAAkB;AAAA,QAClB,UAAU,WAAW,KAAK;AAAA,QAC1B;AAAA,QACA,eAAa,SAAS,GAAG,MAAM,sBAAsB;AAAA,QAEpD,UAAA;AAAA,UAAA,iBAAiB,UAChB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW;AAAA,cACX,eAAY;AAAA,cACZ,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,cAExC,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAGL;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,SAAS;AAAA,cACpB,eAAa,SAAS,GAAG,MAAM,WAAW;AAAA,cAEzC,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAEF,iBAAiB,WAChB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW;AAAA,cACX,eAAY;AAAA,cACZ,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,cAExC,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,IAIH,eACC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,QACJ,WAAU;AAAA,QACV,eAAa,SAAS,GAAG,MAAM,iBAAiB;AAAA,QAE/C,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAIL;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,QACJ,MAAK;AAAA,QACL,mBAAiB;AAAA,QACjB,WAAW;AAAA,QACX,cAAY,aAAa,SAAS;AAAA,QAClC,eAAa,SAAS,GAAG,MAAM,aAAa;AAAA,QAE3C,UAAA;AAAA,UAAA,cAAc,gBAAgB,aAC7B,oBAAC,SAAI,WAAW,SAAS,SAAS,UAAA,aAAA,CAAU;AAAA,WAE5C,CAAC,YAAY,qBACZ,CAAC,gBAAgB,CAAC,cACnB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACJ,GACF;AAEJ;AAEA,cAAc,cAAc;AChM5B,MAAM,UAAU;AAAA,EACd,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EAEP,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AAAA,EAEZ,UAAU;AAAA,EACV,UAAU;AAAA,EAEV,SAAS;AAAA,EACT,WAAW;AAAA,EAEX,UAAU;AAAA,EACV,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EAET,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AACN;AAEA,MAAM,mBAAoB,uBAAM;AAC9B,MAAI,UAAU;AACd,SAAO,MAAM,kBAAkB,SAAS;AAC1C,GAAA;AAEA,MAAM,YAAsC,CAAC,UAC3C,oBAAC,eAAA,EAAe,GAAG,OAAO,aAAa,kBAAkB,UAAU,QAAA,CAAS;"}
@@ -28,7 +28,7 @@ const AccordionBase = ({
28
28
  className = "",
29
29
  getUniqueId,
30
30
  classMap,
31
- "data-testid": testId,
31
+ "data-testid": testId = "accordion",
32
32
  ...rest
33
33
  }) => {
34
34
  const isControlled = expanded !== void 0;
@@ -209,4 +209,4 @@ const generateUniqueId = /* @__PURE__ */ (() => {
209
209
  })();
210
210
  const Accordion = (props) => /* @__PURE__ */ jsxRuntime.jsx(AccordionBase, { ...props, getUniqueId: generateUniqueId, classMap: classes });
211
211
  exports.Accordion = Accordion;
212
- //# sourceMappingURL=Accordion-DQsSUVAE.cjs.map
212
+ //# sourceMappingURL=Accordion-D6hxjkE1.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion-D6hxjkE1.cjs","sources":["../../src/components/Accordion/AccordionBase.tsx","../../src/components/Accordion/core/Accordion.tsx"],"sourcesContent":["import React, { useMemo, useState, KeyboardEvent } from \"react\";\r\nimport { AccordionProps } from \"./Accordion.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface AccordionBaseProps extends AccordionProps {\r\n getUniqueId: () => string;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const AccordionBase: React.FC<AccordionBaseProps> = ({\r\n title,\r\n id,\r\n children,\r\n lazyLoad = false,\r\n iconPosition = \"right\",\r\n isToggleable = true,\r\n asyncContent = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n description,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n outline = false,\r\n expanded,\r\n disabled,\r\n customCollapsedIcon,\r\n customExpandedIcon,\r\n onToggle,\r\n initiallyExpanded = false,\r\n className = \"\",\r\n getUniqueId,\r\n classMap,\r\n \"data-testid\": testId = \"accordion\",\r\n ...rest\r\n}) => {\r\n const isControlled = expanded !== undefined;\r\n const internalId = useMemo(getUniqueId, []);\r\n const [internalExpanded, setInternalExpanded] = useState(initiallyExpanded);\r\n const [hasBeenExpanded, setHasBeenExpanded] = useState(initiallyExpanded);\r\n const [isLoading, setIsLoading] = useState(asyncContent && initiallyExpanded);\r\n const isExpanded = isControlled ? expanded : internalExpanded;\r\n\r\n const contentId = `${id || internalId}-content`;\r\n const buttonId = `${id || internalId}-button`;\r\n const descId = description ? `${id || internalId}-desc` : undefined;\r\n\r\n const toggleAccordion = () => {\r\n if (disabled) return;\r\n if (!isToggleable && isExpanded) return;\r\n isControlled ? onToggle?.(!expanded) : setInternalExpanded((prev) => !prev);\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (disabled) return;\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n toggleAccordion();\r\n }\r\n };\r\n\r\n useMemo(() => {\r\n if (isExpanded && !hasBeenExpanded) {\r\n setHasBeenExpanded(true);\r\n }\r\n }, [isExpanded]);\r\n\r\n useMemo(() => {\r\n if (asyncContent && isExpanded && isLoading) {\r\n const timer = setTimeout(() => {\r\n setIsLoading(false);\r\n }, 1000);\r\n\r\n return () => clearTimeout(timer);\r\n }\r\n }, [asyncContent, isExpanded, isLoading]);\r\n\r\n const renderedIcon = isExpanded\r\n ? (customExpandedIcon ?? \"−\")\r\n : (customCollapsedIcon ?? \"+\");\r\n\r\n const wrapperClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.accordion,\r\n classMap[size],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n isExpanded && classMap.expanded,\r\n className\r\n ),\r\n [classMap, size, disabled, isExpanded, className]\r\n );\r\n\r\n const headerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.header,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n isExpanded && classMap.expanded\r\n ),\r\n [classMap, isExpanded]\r\n );\r\n\r\n const contentClassName = useMemo(\r\n () => combineClassNames(classMap.content, isExpanded && classMap.expanded),\r\n [classMap, isExpanded]\r\n );\r\n\r\n const iconClassName = useMemo(\r\n () => combineClassNames(classMap.icon, isExpanded && classMap.expanded),\r\n [classMap, isExpanded]\r\n );\r\n\r\n return (\r\n <div {...rest} className={wrapperClassName}>\r\n <button\r\n id={buttonId}\r\n className={headerClassName}\r\n onClick={toggleAccordion}\r\n onKeyDown={handleKeyDown}\r\n type=\"button\"\r\n aria-expanded={isExpanded}\r\n aria-controls={contentId}\r\n aria-disabled={disabled}\r\n aria-describedby={descId}\r\n tabIndex={disabled ? -1 : 0}\r\n disabled={disabled}\r\n data-testid={testId ? `${testId}-accordion-toggle` : undefined}\r\n >\r\n {iconPosition === \"left\" && (\r\n <span\r\n className={iconClassName}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n {renderedIcon}\r\n </span>\r\n )}\r\n <span\r\n className={classMap.accordionTitle}\r\n data-testid={testId ? `${testId}-title` : undefined}\r\n >\r\n {title}\r\n </span>\r\n {iconPosition === \"right\" && (\r\n <span\r\n className={iconClassName}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n {renderedIcon}\r\n </span>\r\n )}\r\n </button>\r\n\r\n {description && (\r\n <span\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={testId ? `${testId}-description` : undefined}\r\n >\r\n {description}\r\n </span>\r\n )}\r\n\r\n <div\r\n id={contentId}\r\n role=\"region\"\r\n aria-labelledby={buttonId}\r\n className={contentClassName}\r\n data-state={isExpanded ? \"open\" : \"collapsed\"}\r\n data-testid={testId ? `${testId}-content` : undefined}\r\n >\r\n {isExpanded && asyncContent && isLoading && (\r\n <div className={classMap.loading}>Loading...</div>\r\n )}\r\n {(!lazyLoad || hasBeenExpanded) &&\r\n (!asyncContent || !isLoading) &&\r\n children}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nAccordionBase.displayName = \"AccordionBase\";\r\n","import React from \"react\";\r\nimport \"./Accordion.scss\";\r\nimport { AccordionBase } from \"../AccordionBase\";\r\nimport type { AccordionProps } from \"../Accordion.types\";\r\n\r\nconst classes = {\r\n accordion: \"accordion\",\r\n header: \"accordion_header\",\r\n content: \"accordion_content\",\r\n icon: \"accordion_icon\",\r\n title: \"accordion_title\",\r\n\r\n shadowNone: \"accordion_shadow-None\",\r\n shadowLight: \"accordion_shadow-Light\",\r\n shadowMedium: \"accordion_shadow-Medium\",\r\n shadowStrong: \"accordion_shadow-Strong\",\r\n shadowIntense: \"accordion_shadow-Intense\",\r\n\r\n roundNone: \"accordion_round-None\",\r\n roundSmall: \"accordion_round-Small\",\r\n roundMedium: \"accordion_round-Medium\",\r\n roundLarge: \"accordion_round-Large\",\r\n\r\n disabled: \"accordion_disabled\",\r\n expanded: \"accordion_expanded\",\r\n\r\n primary: \"accordion_primary\",\r\n secondary: \"accordion_secondary\",\r\n\r\n tertiary: \"accordion_tertiary\",\r\n quaternary: \"accordion_quaternary\",\r\n\r\n success: \"accordion_success\",\r\n error: \"accordion_error\",\r\n warning: \"accordion_warning\",\r\n clear: \"accordion_clear\",\r\n outline: \"accordion_outline\",\r\n\r\n xs: \"accordion_xs\",\r\n small: \"accordion_small\",\r\n medium: \"accordion_medium\",\r\n large: \"accordion_large\",\r\n xl: \"accordion_xl\",\r\n};\r\n\r\nconst generateUniqueId = (() => {\r\n let counter = 0;\r\n return () => `accordion-core-${counter++}`;\r\n})();\r\n\r\nconst Accordion: React.FC<AccordionProps> = (props) => (\r\n <AccordionBase {...props} getUniqueId={generateUniqueId} classMap={classes} />\r\n);\r\n\r\nexport default Accordion;\r\n"],"names":["getDefaultRounding","getDefaultShadow","getDefaultSize","getDefaultTheme","useMemo","useState","combineClassNames","capitalize","jsxs","jsx"],"mappings":";;;;;;AAgBO,MAAM,gBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,WAAWA,kBAAAA,mBAAA;AAAA,EACX,SAASC,kBAAAA,iBAAA;AAAA,EACT;AAAA,EACA,OAAOC,kBAAAA,eAAA;AAAA,EACP,QAAQC,kBAAAA,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,oBAAoB;AAAA,EACpB,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,eAAe,SAAS;AAAA,EACxB,GAAG;AACL,MAAM;AACJ,QAAM,eAAe,aAAa;AAClC,QAAM,aAAaC,MAAAA,QAAQ,aAAa,EAAE;AAC1C,QAAM,CAAC,kBAAkB,mBAAmB,IAAIC,MAAAA,SAAS,iBAAiB;AAC1E,QAAM,CAAC,iBAAiB,kBAAkB,IAAIA,MAAAA,SAAS,iBAAiB;AACxE,QAAM,CAAC,WAAW,YAAY,IAAIA,MAAAA,SAAS,gBAAgB,iBAAiB;AAC5E,QAAM,aAAa,eAAe,WAAW;AAE7C,QAAM,YAAY,GAAG,MAAM,UAAU;AACrC,QAAM,WAAW,GAAG,MAAM,UAAU;AACpC,QAAM,SAAS,cAAc,GAAG,MAAM,UAAU,UAAU;AAE1D,QAAM,kBAAkB,MAAM;AAC5B,QAAI,SAAU;AACd,QAAI,CAAC,gBAAgB,WAAY;AACjC,mBAAe,qCAAW,CAAC,YAAY,oBAAoB,CAAC,SAAS,CAAC,IAAI;AAAA,EAC5E;AAEA,QAAM,gBAAgB,CAAC,MAAqB;AAC1C,QAAI,SAAU;AACd,QAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,KAAK;AACtC,QAAE,eAAA;AACF,sBAAA;AAAA,IACF;AAAA,EACF;AAEAD,QAAAA,QAAQ,MAAM;AACZ,QAAI,cAAc,CAAC,iBAAiB;AAClC,yBAAmB,IAAI;AAAA,IACzB;AAAA,EACF,GAAG,CAAC,UAAU,CAAC;AAEfA,QAAAA,QAAQ,MAAM;AACZ,QAAI,gBAAgB,cAAc,WAAW;AAC3C,YAAM,QAAQ,WAAW,MAAM;AAC7B,qBAAa,KAAK;AAAA,MACpB,GAAG,GAAI;AAEP,aAAO,MAAM,aAAa,KAAK;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,cAAc,YAAY,SAAS,CAAC;AAExC,QAAM,eAAe,aAChB,sBAAsB,MACtB,uBAAuB;AAE5B,QAAM,mBAAmBA,MAAAA;AAAAA,IACvB,MACEE,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,SAAS,IAAI;AAAA,MACb,SAAS,KAAK;AAAA,MACd,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,YAAY,SAAS;AAAA,MACrB,cAAc,SAAS;AAAA,MACvB;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,MAAM,UAAU,YAAY,SAAS;AAAA,EAAA;AAGlD,QAAM,kBAAkBH,MAAAA;AAAAA,IACtB,MACEE,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,WAAW,SAAS;AAAA,MACpB,YAAY,SAAS;AAAA,MACrB,cAAc,SAAS;AAAA,IAAA;AAAA,IAE3B,CAAC,UAAU,UAAU;AAAA,EAAA;AAGvB,QAAM,mBAAmBF,MAAAA;AAAAA,IACvB,MAAME,WAAAA,kBAAkB,SAAS,SAAS,cAAc,SAAS,QAAQ;AAAA,IACzE,CAAC,UAAU,UAAU;AAAA,EAAA;AAGvB,QAAM,gBAAgBF,MAAAA;AAAAA,IACpB,MAAME,WAAAA,kBAAkB,SAAS,MAAM,cAAc,SAAS,QAAQ;AAAA,IACtE,CAAC,UAAU,UAAU;AAAA,EAAA;AAGvB,SACEE,2BAAAA,KAAC,OAAA,EAAK,GAAG,MAAM,WAAW,kBACxB,UAAA;AAAA,IAAAA,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,QACJ,WAAW;AAAA,QACX,SAAS;AAAA,QACT,WAAW;AAAA,QACX,MAAK;AAAA,QACL,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,oBAAkB;AAAA,QAClB,UAAU,WAAW,KAAK;AAAA,QAC1B;AAAA,QACA,eAAa,SAAS,GAAG,MAAM,sBAAsB;AAAA,QAEpD,UAAA;AAAA,UAAA,iBAAiB,UAChBC,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW;AAAA,cACX,eAAY;AAAA,cACZ,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,cAExC,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAGLA,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,SAAS;AAAA,cACpB,eAAa,SAAS,GAAG,MAAM,WAAW;AAAA,cAEzC,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAEF,iBAAiB,WAChBA,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW;AAAA,cACX,eAAY;AAAA,cACZ,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,cAExC,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACH;AAAA,MAAA;AAAA,IAAA;AAAA,IAIH,eACCA,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,QACJ,WAAU;AAAA,QACV,eAAa,SAAS,GAAG,MAAM,iBAAiB;AAAA,QAE/C,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAILD,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,QACJ,MAAK;AAAA,QACL,mBAAiB;AAAA,QACjB,WAAW;AAAA,QACX,cAAY,aAAa,SAAS;AAAA,QAClC,eAAa,SAAS,GAAG,MAAM,aAAa;AAAA,QAE3C,UAAA;AAAA,UAAA,cAAc,gBAAgB,aAC7BC,2BAAAA,IAAC,SAAI,WAAW,SAAS,SAAS,UAAA,aAAA,CAAU;AAAA,WAE5C,CAAC,YAAY,qBACZ,CAAC,gBAAgB,CAAC,cACnB;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACJ,GACF;AAEJ;AAEA,cAAc,cAAc;AChM5B,MAAM,UAAU;AAAA,EACd,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EAEP,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AAAA,EAEZ,UAAU;AAAA,EACV,UAAU;AAAA,EAEV,SAAS;AAAA,EACT,WAAW;AAAA,EAEX,UAAU;AAAA,EACV,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EAET,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AACN;AAEA,MAAM,mBAAoB,uBAAM;AAC9B,MAAI,UAAU;AACd,SAAO,MAAM,kBAAkB,SAAS;AAC1C,GAAA;AAEA,MAAM,YAAsC,CAAC,UAC3CA,2BAAAA,IAAC,eAAA,EAAe,GAAG,OAAO,aAAa,kBAAkB,UAAU,QAAA,CAAS;;"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Accordion = require("./Accordion-DQsSUVAE.cjs");
2
+ const Accordion = require("./Accordion-D6hxjkE1.cjs");
3
3
  module.exports = Accordion.Accordion;
4
4
  //# sourceMappingURL=Accordion.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { A } from "./Accordion-DOhvj3Ty.js";
1
+ import { A } from "./Accordion-CY5BCoA7.js";
2
2
  export {
3
3
  A as default
4
4
  };
@@ -70,7 +70,7 @@ const AvatarBase = ({
70
70
  ImageComponent = "img",
71
71
  LinkComponent = "a",
72
72
  classMap,
73
- "data-testid": testId
73
+ "data-testid": testId = "avatar"
74
74
  }) => {
75
75
  const [imgError, setImgError] = React.useState(false);
76
76
  const computedLabel = label || alt || name || "User avatar";
@@ -224,4 +224,4 @@ const classes = {
224
224
  };
225
225
  const Avatar = (props) => /* @__PURE__ */ jsxRuntime.jsx(AvatarBase, { ...props, classMap: classes });
226
226
  exports.Avatar = Avatar;
227
- //# sourceMappingURL=Avatar-B5aqfDZX.cjs.map
227
+ //# sourceMappingURL=Avatar-B3hD_M2R.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar-B3hD_M2R.cjs","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/core/Avatar.tsx"],"sourcesContent":["/**\r\n * Returns the initials from a given full name string.\r\n *\r\n * Extracts the first character from the first word and the first character of the second word (if available).\r\n * If only one word is provided, it uses the first two characters of that word as a fallback.\r\n * If no valid characters are found, it returns \"?\".\r\n *\r\n * @param {string} name - The full name to extract initials from.\r\n * @returns {string} A string of up to two uppercase initials, or \"?\" if the input is empty or invalid.\r\n *\r\n * @example\r\n * getInitials(\"John Doe\"); // \"JD\"\r\n * getInitials(\"Alice\"); // \"AL\"\r\n * getInitials(\" \"); // \"?\"\r\n */\r\nexport const getInitials = (name: string): string => {\r\n const words = name.trim().split(/\\s+/);\r\n const first = words[0]?.[0] || \"\";\r\n const second = words[1]?.[0] || words[0]?.[1] || \"\";\r\n return (first + second).toUpperCase() || \"?\";\r\n};\r\n","const FallbackUserIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M5 20V19C5 15.134 8.13401 12 12 12V12C15.866 12 19 15.134 19 19V20\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M12 12C14.2091 12 16 10.2091 16 8C16 5.79086 14.2091 4 12 4C9.79086 4 8 5.79086 8 8C8 10.2091 9.79086 12 12 12Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default FallbackUserIcon;\r\n","import React, { useMemo, useState, MouseEvent } from \"react\";\r\nimport { AvatarProps } from \"./Avatar.types\";\r\nimport { getInitials } from \"../../utils/getInitials\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { FallbackUserIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\nexport interface AvatarBaseProps extends AvatarProps {\r\n ImageComponent?: React.ElementType;\r\n LinkComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const AvatarBase: React.FC<AvatarBaseProps> = ({\r\n src,\r\n alt,\r\n name = \"\",\r\n label,\r\n onClick,\r\n disabled = false,\r\n href,\r\n status,\r\n statusIcon,\r\n statusPosition = \"bottomRight\",\r\n fallback,\r\n children,\r\n size = getDefaultSize(),\r\n shadow = getDefaultShadow(),\r\n shape = \"circle\",\r\n outline = false,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n className = \"\",\r\n priority = false,\r\n ImageComponent = \"img\",\r\n LinkComponent = \"a\",\r\n classMap,\r\n \"data-testid\": testId = \"avatar\",\r\n}) => {\r\n const [imgError, setImgError] = useState(false);\r\n const computedLabel = label || alt || name || \"User avatar\";\r\n const fallbackContent =\r\n fallback ??\r\n (name ? (\r\n getInitials(name)\r\n ) : (\r\n <FallbackUserIcon className={classMap.fallback_icon} />\r\n ));\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.avatar,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[shape],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n onClick && classMap.clickable,\r\n className\r\n ),\r\n [theme, shape, size, outline, className]\r\n );\r\n\r\n const avatarContent =\r\n !imgError && src ? (\r\n <ImageComponent\r\n src={src}\r\n alt={computedLabel}\r\n className={classMap.image}\r\n onError={() => setImgError(true)}\r\n loading={priority ? \"eager\" : \"lazy\"}\r\n aria-hidden=\"false\"\r\n role=\"img\"\r\n data-testid={testId ? `${testId}-image` : undefined}\r\n fill={true}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.initials}\r\n role=\"img\"\r\n aria-label={computedLabel}\r\n title={computedLabel}\r\n data-testid={testId ? `${testId}-initials` : undefined}\r\n >\r\n {fallbackContent}\r\n </span>\r\n );\r\n\r\n const statusIndicator = (status || statusIcon) && (\r\n <span\r\n className={combineClassNames(\r\n classMap.status,\r\n status && classMap[status],\r\n statusIcon ? \"icon_only\" : undefined,\r\n classMap[statusPosition]\r\n )}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-status` : undefined}\r\n >\r\n {statusIcon || <span className={classMap.dot} />}\r\n </span>\r\n );\r\n\r\n const content = (\r\n <>\r\n {children ?? avatarContent}\r\n {statusIndicator}\r\n </>\r\n );\r\n\r\n const handleClick = (e: MouseEvent<HTMLElement>) => {\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n if (!href) e.preventDefault();\r\n };\r\n\r\n const ariaAttrs = {\r\n \"aria-label\": computedLabel,\r\n \"aria-disabled\": false,\r\n };\r\n\r\n if (href) {\r\n if (LinkComponent === \"a\") {\r\n return (\r\n <a\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid=\"avatar\"\r\n target={href.startsWith(\"http\") ? \"_blank\" : undefined}\r\n rel={href.startsWith(\"http\") ? \"noopener noreferrer\" : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <LinkComponent\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </button>\r\n );\r\n};\r\n\r\nAvatarBase.displayName = \"AvatarBase\";\r\n","import React from \"react\";\r\nimport \"./Avatar.scss\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\n\r\nconst classes = {\r\n avatar: \"avatar\",\r\n primary: \"avatar_primary\",\r\n secondary: \"avatar_secondary\",\r\n tertiary: \"avatar_tertiary\",\r\n quaternary: \"avatar_quaternary\",\r\n success: \"avatar_success\",\r\n warning: \"avatar_warning\",\r\n error: \"avatar_error\",\r\n clear: \"avatar_clear\",\r\n outline: \"avatar_outline\",\r\n\r\n clickable: \"avatar_clickable\",\r\n disabled: \"avatar_disabled\",\r\n\r\n circle: \"avatar_circle\",\r\n square: \"avatar_square\",\r\n rounded: \"avatar_rounded\",\r\n\r\n xs: \"avatar_xs\",\r\n small: \"avatar_small\",\r\n medium: \"avatar_medium\",\r\n large: \"avatar_large\",\r\n xl: \"avatar_xl\",\r\n\r\n shadowNone: \"avatar_shadow-None\",\r\n shadowLight: \"avatar_shadow-Light\",\r\n shadowMedium: \"avatar_shadow-Medium\",\r\n shadowStrong: \"avatar_shadow-Strong\",\r\n shadowIntense: \"avatar_shadow-Intense\",\r\n\r\n image: \"avatar_image\",\r\n initials: \"avatar_initials\",\r\n fallback_icon: \"avatar_fallback_icon\",\r\n icon_only: \"avatar_icon_only\",\r\n status: \"avatar_status\",\r\n online: \"avatar_status_online\",\r\n offline: \"avatar_status_offline\",\r\n away: \"avatar_status_away\",\r\n busy: \"avatar_status_busy\",\r\n topRight: \"avatar_status_topRight\",\r\n bottomRight: \"avatar_status_bottomRight\",\r\n bottomLeft: \"avatar_status_bottomLeft\",\r\n topLeft: \"avatar_status_topLeft\",\r\n\r\n dot: \"avatar_dot\",\r\n};\r\n\r\nconst Avatar: React.FC<AvatarProps> = (props) => (\r\n <AvatarBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default Avatar;\r\n"],"names":["jsxs","jsx","getDefaultSize","getDefaultShadow","getDefaultTheme","useState","useMemo","combineClassNames","capitalize","Fragment"],"mappings":"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"}
@@ -69,7 +69,7 @@ const AvatarBase = ({
69
69
  ImageComponent = "img",
70
70
  LinkComponent = "a",
71
71
  classMap,
72
- "data-testid": testId
72
+ "data-testid": testId = "avatar"
73
73
  }) => {
74
74
  const [imgError, setImgError] = useState(false);
75
75
  const computedLabel = label || alt || name || "User avatar";
@@ -225,4 +225,4 @@ const Avatar = (props) => /* @__PURE__ */ jsx(AvatarBase, { ...props, classMap:
225
225
  export {
226
226
  Avatar as A
227
227
  };
228
- //# sourceMappingURL=Avatar-mhtrG5FT.js.map
228
+ //# sourceMappingURL=Avatar-BxHxzh30.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar-BxHxzh30.js","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/core/Avatar.tsx"],"sourcesContent":["/**\r\n * Returns the initials from a given full name string.\r\n *\r\n * Extracts the first character from the first word and the first character of the second word (if available).\r\n * If only one word is provided, it uses the first two characters of that word as a fallback.\r\n * If no valid characters are found, it returns \"?\".\r\n *\r\n * @param {string} name - The full name to extract initials from.\r\n * @returns {string} A string of up to two uppercase initials, or \"?\" if the input is empty or invalid.\r\n *\r\n * @example\r\n * getInitials(\"John Doe\"); // \"JD\"\r\n * getInitials(\"Alice\"); // \"AL\"\r\n * getInitials(\" \"); // \"?\"\r\n */\r\nexport const getInitials = (name: string): string => {\r\n const words = name.trim().split(/\\s+/);\r\n const first = words[0]?.[0] || \"\";\r\n const second = words[1]?.[0] || words[0]?.[1] || \"\";\r\n return (first + second).toUpperCase() || \"?\";\r\n};\r\n","const FallbackUserIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M5 20V19C5 15.134 8.13401 12 12 12V12C15.866 12 19 15.134 19 19V20\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M12 12C14.2091 12 16 10.2091 16 8C16 5.79086 14.2091 4 12 4C9.79086 4 8 5.79086 8 8C8 10.2091 9.79086 12 12 12Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default FallbackUserIcon;\r\n","import React, { useMemo, useState, MouseEvent } from \"react\";\r\nimport { AvatarProps } from \"./Avatar.types\";\r\nimport { getInitials } from \"../../utils/getInitials\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { FallbackUserIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\nexport interface AvatarBaseProps extends AvatarProps {\r\n ImageComponent?: React.ElementType;\r\n LinkComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nexport const AvatarBase: React.FC<AvatarBaseProps> = ({\r\n src,\r\n alt,\r\n name = \"\",\r\n label,\r\n onClick,\r\n disabled = false,\r\n href,\r\n status,\r\n statusIcon,\r\n statusPosition = \"bottomRight\",\r\n fallback,\r\n children,\r\n size = getDefaultSize(),\r\n shadow = getDefaultShadow(),\r\n shape = \"circle\",\r\n outline = false,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n className = \"\",\r\n priority = false,\r\n ImageComponent = \"img\",\r\n LinkComponent = \"a\",\r\n classMap,\r\n \"data-testid\": testId = \"avatar\",\r\n}) => {\r\n const [imgError, setImgError] = useState(false);\r\n const computedLabel = label || alt || name || \"User avatar\";\r\n const fallbackContent =\r\n fallback ??\r\n (name ? (\r\n getInitials(name)\r\n ) : (\r\n <FallbackUserIcon className={classMap.fallback_icon} />\r\n ));\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.avatar,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[shape],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n onClick && classMap.clickable,\r\n className\r\n ),\r\n [theme, shape, size, outline, className]\r\n );\r\n\r\n const avatarContent =\r\n !imgError && src ? (\r\n <ImageComponent\r\n src={src}\r\n alt={computedLabel}\r\n className={classMap.image}\r\n onError={() => setImgError(true)}\r\n loading={priority ? \"eager\" : \"lazy\"}\r\n aria-hidden=\"false\"\r\n role=\"img\"\r\n data-testid={testId ? `${testId}-image` : undefined}\r\n fill={true}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.initials}\r\n role=\"img\"\r\n aria-label={computedLabel}\r\n title={computedLabel}\r\n data-testid={testId ? `${testId}-initials` : undefined}\r\n >\r\n {fallbackContent}\r\n </span>\r\n );\r\n\r\n const statusIndicator = (status || statusIcon) && (\r\n <span\r\n className={combineClassNames(\r\n classMap.status,\r\n status && classMap[status],\r\n statusIcon ? \"icon_only\" : undefined,\r\n classMap[statusPosition]\r\n )}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-status` : undefined}\r\n >\r\n {statusIcon || <span className={classMap.dot} />}\r\n </span>\r\n );\r\n\r\n const content = (\r\n <>\r\n {children ?? avatarContent}\r\n {statusIndicator}\r\n </>\r\n );\r\n\r\n const handleClick = (e: MouseEvent<HTMLElement>) => {\r\n onClick?.(e as MouseEvent<HTMLButtonElement | HTMLAnchorElement>);\r\n if (!href) e.preventDefault();\r\n };\r\n\r\n const ariaAttrs = {\r\n \"aria-label\": computedLabel,\r\n \"aria-disabled\": false,\r\n };\r\n\r\n if (href) {\r\n if (LinkComponent === \"a\") {\r\n return (\r\n <a\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid=\"avatar\"\r\n target={href.startsWith(\"http\") ? \"_blank\" : undefined}\r\n rel={href.startsWith(\"http\") ? \"noopener noreferrer\" : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <LinkComponent\r\n href={href}\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n className={combinedClassName}\r\n onClick={handleClick}\r\n data-testid={testId ? `${testId}-main` : undefined}\r\n {...ariaAttrs}\r\n >\r\n {content}\r\n </button>\r\n );\r\n};\r\n\r\nAvatarBase.displayName = \"AvatarBase\";\r\n","import React from \"react\";\r\nimport \"./Avatar.scss\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\n\r\nconst classes = {\r\n avatar: \"avatar\",\r\n primary: \"avatar_primary\",\r\n secondary: \"avatar_secondary\",\r\n tertiary: \"avatar_tertiary\",\r\n quaternary: \"avatar_quaternary\",\r\n success: \"avatar_success\",\r\n warning: \"avatar_warning\",\r\n error: \"avatar_error\",\r\n clear: \"avatar_clear\",\r\n outline: \"avatar_outline\",\r\n\r\n clickable: \"avatar_clickable\",\r\n disabled: \"avatar_disabled\",\r\n\r\n circle: \"avatar_circle\",\r\n square: \"avatar_square\",\r\n rounded: \"avatar_rounded\",\r\n\r\n xs: \"avatar_xs\",\r\n small: \"avatar_small\",\r\n medium: \"avatar_medium\",\r\n large: \"avatar_large\",\r\n xl: \"avatar_xl\",\r\n\r\n shadowNone: \"avatar_shadow-None\",\r\n shadowLight: \"avatar_shadow-Light\",\r\n shadowMedium: \"avatar_shadow-Medium\",\r\n shadowStrong: \"avatar_shadow-Strong\",\r\n shadowIntense: \"avatar_shadow-Intense\",\r\n\r\n image: \"avatar_image\",\r\n initials: \"avatar_initials\",\r\n fallback_icon: \"avatar_fallback_icon\",\r\n icon_only: \"avatar_icon_only\",\r\n status: \"avatar_status\",\r\n online: \"avatar_status_online\",\r\n offline: \"avatar_status_offline\",\r\n away: \"avatar_status_away\",\r\n busy: \"avatar_status_busy\",\r\n topRight: \"avatar_status_topRight\",\r\n bottomRight: \"avatar_status_bottomRight\",\r\n bottomLeft: \"avatar_status_bottomLeft\",\r\n topLeft: \"avatar_status_topLeft\",\r\n\r\n dot: \"avatar_dot\",\r\n};\r\n\r\nconst Avatar: React.FC<AvatarProps> = (props) => (\r\n <AvatarBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default Avatar;\r\n"],"names":[],"mappings":";;;;;AAeO,MAAM,cAAc,CAAC,SAAyB;;AACnD,QAAM,QAAQ,KAAK,KAAA,EAAO,MAAM,KAAK;AACrC,QAAM,UAAQ,WAAM,CAAC,MAAP,mBAAW,OAAM;AAC/B,QAAM,WAAS,WAAM,CAAC,MAAP,mBAAW,SAAM,WAAM,CAAC,MAAP,mBAAW,OAAM;AACjD,UAAQ,QAAQ,QAAQ,YAAA,KAAiB;AAC3C;ACpBA,MAAM,mBAA4D,CAAC,UACjE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACN,OAAM;AAAA,IACL,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,MAEjB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AACH;ACRK,MAAM,aAAwC,CAAC;AAAA,EACpD;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA,OAAO,eAAA;AAAA,EACP,SAAS,iBAAA;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,QAAQ,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB;AAAA,EACA,eAAe,SAAS;AAC1B,MAAM;AACJ,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAC9C,QAAM,gBAAgB,SAAS,OAAO,QAAQ;AAC9C,QAAM,kBACJ,aACC,OACC,YAAY,IAAI,IAEhB,oBAAC,kBAAA,EAAiB,WAAW,SAAS,cAAA,CAAe;AAGzD,QAAM,oBAAoB;AAAA,IACxB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS;AAAA,MACrB,WAAW,SAAS;AAAA,MACpB,WAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ,CAAC,OAAO,OAAO,MAAM,SAAS,SAAS;AAAA,EAAA;AAGzC,QAAM,gBACJ,CAAC,YAAY,MACX;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,KAAK;AAAA,MACL,WAAW,SAAS;AAAA,MACpB,SAAS,MAAM,YAAY,IAAI;AAAA,MAC/B,SAAS,WAAW,UAAU;AAAA,MAC9B,eAAY;AAAA,MACZ,MAAK;AAAA,MACL,eAAa,SAAS,GAAG,MAAM,WAAW;AAAA,MAC1C,MAAM;AAAA,IAAA;AAAA,EAAA,IAGR;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,SAAS;AAAA,MACpB,MAAK;AAAA,MACL,cAAY;AAAA,MACZ,OAAO;AAAA,MACP,eAAa,SAAS,GAAG,MAAM,cAAc;AAAA,MAE5C,UAAA;AAAA,IAAA;AAAA,EAAA;AAIP,QAAM,mBAAmB,UAAU,eACjC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,QACT,SAAS;AAAA,QACT,UAAU,SAAS,MAAM;AAAA,QACzB,aAAa,cAAc;AAAA,QAC3B,SAAS,cAAc;AAAA,MAAA;AAAA,MAEzB,eAAY;AAAA,MACZ,eAAa,SAAS,GAAG,MAAM,YAAY;AAAA,MAE1C,UAAA,cAAc,oBAAC,QAAA,EAAK,WAAW,SAAS,IAAA,CAAK;AAAA,IAAA;AAAA,EAAA;AAIlD,QAAM,UACJ,qBAAA,UAAA,EACG,UAAA;AAAA,IAAA,YAAY;AAAA,IACZ;AAAA,EAAA,GACH;AAGF,QAAM,cAAc,CAAC,MAA+B;AAClD,uCAAU;AACV,QAAI,CAAC,KAAM,GAAE,eAAA;AAAA,EACf;AAEA,QAAM,YAAY;AAAA,IAChB,cAAc;AAAA,IACd,iBAAiB;AAAA,EAAA;AAGnB,MAAI,MAAM;AACR,QAAI,kBAAkB,KAAK;AACzB,aACE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA,WAAW;AAAA,UACX,SAAS;AAAA,UACT,eAAY;AAAA,UACZ,QAAQ,KAAK,WAAW,MAAM,IAAI,WAAW;AAAA,UAC7C,KAAK,KAAK,WAAW,MAAM,IAAI,wBAAwB;AAAA,UACtD,GAAG;AAAA,UAEH,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAGP;AAEA,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA,QACX,SAAS;AAAA,QACT,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,QACxC,GAAG;AAAA,QAEH,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAW;AAAA,MACX,SAAS;AAAA,MACT,eAAa,SAAS,GAAG,MAAM,UAAU;AAAA,MACxC,GAAG;AAAA,MAEH,UAAA;AAAA,IAAA;AAAA,EAAA;AAGP;AAEA,WAAW,cAAc;ACrKzB,MAAM,UAAU;AAAA,EACd,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AAAA,EACP,OAAO;AAAA,EACP,SAAS;AAAA,EAET,WAAW;AAAA,EACX,UAAU;AAAA,EAEV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EAET,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EAEJ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,OAAO;AAAA,EACP,UAAU;AAAA,EACV,eAAe;AAAA,EACf,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,SAAS;AAAA,EAET,KAAK;AACP;AAEA,MAAM,SAAgC,CAAC,UACrC,oBAAC,cAAY,GAAG,OAAO,UAAU,QAAA,CAAS;"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Avatar = require("./Avatar-B5aqfDZX.cjs");
2
+ const Avatar = require("./Avatar-B3hD_M2R.cjs");
3
3
  module.exports = Avatar.Avatar;
4
4
  //# sourceMappingURL=Avatar.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { A } from "./Avatar-mhtrG5FT.js";
1
+ import { A } from "./Avatar-BxHxzh30.js";
2
2
  export {
3
3
  A as default
4
4
  };
@@ -5,7 +5,7 @@ const classNames = require("./classNames-BcWMx052.cjs");
5
5
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
6
6
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
7
7
  const IconButton = require("./IconButton-BxUXK-xn.cjs");
8
- const Select = require("./Select-CitauzQm.cjs");
8
+ const Select = require("./Select-DWzxymiA.cjs");
9
9
  const ThemeContext = require("./ThemeContext-CtZXUeeU.cjs");
10
10
  const registerColorSheme = require("./registerColorSheme-nhYu5hbY.cjs");
11
11
  const UserThemeSettings = ({
@@ -205,4 +205,4 @@ const Footer = (props) => {
205
205
  };
206
206
  exports.Footer = Footer;
207
207
  exports.UserThemeSettings = UserThemeSettings;
208
- //# sourceMappingURL=Footer-Dc_CuIC1.cjs.map
208
+ //# sourceMappingURL=Footer-BKfoTV0l.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Footer-Dc_CuIC1.cjs","sources":["../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\n\r\ninterface ThemeSelectProps {\r\n theme?: ThemeType;\r\n shadow?: ShadowType;\r\n rounding?: RoundingType;\r\n \"data-testid\"?: string;\r\n state?: StateType;\r\n}\r\n\r\nconst UserThemeSettings: React.FC<ThemeSelectProps> = ({\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n \"data-testid\": testId = \"theme-select\",\r\n state = \"\",\r\n}) => {\r\n const allSchemes = getAllColorSchemes();\r\n const themeContext = useContext(ThemeContext);\r\n\r\n if (!themeContext) {\r\n throw new Error(\r\n \"ThemeContext is undefined. Make sure to wrap this component with ThemeProvider.\"\r\n );\r\n }\r\n\r\n const { selectedScheme, setSelectedScheme } = themeContext;\r\n\r\n const options = allSchemes.map((scheme, index) => ({\r\n value: index.toString(),\r\n label: scheme.name,\r\n }));\r\n\r\n return (\r\n <div className=\"control-container\">\r\n <Select\r\n theme={theme}\r\n shadow={shadow}\r\n rounding={rounding}\r\n state={state}\r\n data-testid={`${testId}-select`}\r\n options={options}\r\n value={selectedScheme.toString()}\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(value as string, 10))\r\n }\r\n ariaLabel=\"Select Theme\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserThemeSettings;\r\n","import React, { JSX, useMemo } from \"react\";\r\nimport { FooterProps } from \"./Footer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { getDefaultTheme } from \"../../config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\n\r\nexport interface BaseFooterProps extends FooterProps {\r\n IconButton: React.ComponentType<any>;\r\n ThemeSelect: React.ComponentType<any>;\r\n ImageComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n LinkWrapper?: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n }) => JSX.Element;\r\n}\r\n\r\nconst FooterBase: React.FC<BaseFooterProps> = ({\r\n theme = getDefaultTheme(),\r\n attachment = \"static\",\r\n shadow = \"none\",\r\n rounding = \"none\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n copyright,\r\n links = [],\r\n logo,\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children }) => <a href={href}>{children}</a>,\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n classMap[`shadow${capitalize(shadow)}`],\r\n classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className\r\n ),\r\n [classMap, theme, className]\r\n );\r\n return (\r\n <footer\r\n className={footerClass}\r\n role=\"contentinfo\"\r\n aria-label=\"Footer\"\r\n data-testid={testId}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {logo &&\r\n (typeof logo === \"string\" ||\r\n (typeof logo === \"object\" && \"src\" in logo)) ? (\r\n <ImageComponent\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logo}\r\n alt=\"Logo\"\r\n height={20}\r\n width={20}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n >\r\n {logo}\r\n </span>\r\n )}\r\n\r\n {copyright && (\r\n <div className={classMap.left} data-testid={`${testId}-copyright`}>\r\n <p>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {links.length > 0 && (\r\n <nav\r\n className={classMap.links}\r\n aria-label=\"Footer site links\"\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul role=\"list\">\r\n {links.map((link, i) => (\r\n <li key={i}>\r\n <LinkWrapper\r\n href={link.href}\r\n children={\r\n <span\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${link.label.toLowerCase().replace(/\\s+/g, \"-\")}`}\r\n >\r\n {link.label}\r\n </span>\r\n }\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n\r\n {showThemeSelect && (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label=\"Theme selector container\"\r\n >\r\n <ThemeSelect theme={\"clear\"} shadow={\"none\"} />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <div\r\n className={classMap.social}\r\n aria-label=\"Social media\"\r\n role=\"navigation\"\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={index}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal\r\n shadow=\"none\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n ariaLabel={social.title}\r\n title={social.title}\r\n theme=\"clear\"\r\n data-testid={`${testId}-social-${social.title\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nexport default FooterBase;\r\n","import React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/core/ThemeSelect\";\r\nimport \"./Footer.scss\";\r\n\r\nconst classes = {\r\n footer: \"footer\",\r\n\r\n primary: \"footer_primary\",\r\n secondary: \"footer_secondary\",\r\n tertiary: \"footer_tertiary\",\r\n quaternary: \"footer_quaternary\",\r\n clear: \"footer_clear\",\r\n\r\n shadowNone: \"footer_shadow-None\",\r\n shadowLight: \"footer_shadow-Light\",\r\n shadowMedium: \"footer_shadow-Medium\",\r\n shadowStrong: \"footer_shadow-Strong\",\r\n shadowIntense: \"footer_shadow-Intense\",\r\n\r\n roundNone: \"footer_round-None\",\r\n roundSmall: \"footer_round-Small\",\r\n roundMedium: \"footer_round-Medium\",\r\n roundLarge: \"footer_round-Large\",\r\n\r\n attachmentStatic: \"footer_attachment-static\",\r\n attachmentFixed: \"footer_attachment-fixed\",\r\n attachmentSticky: \"footer_attachment-sticky\",\r\n\r\n content: \"footer_content\",\r\n logo: \"footer_logo\",\r\n left: \"footer_left\",\r\n links: \"footer_links\",\r\n link: \"footer_link\",\r\n social: \"footer_social\",\r\n\r\n themeToggle: \"footer_theme_toggle\",\r\n};\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ThemeSelect={ThemeSelect}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["getDefaultTheme","getDefaultShadow","getDefaultRounding","getAllColorSchemes","useContext","ThemeContext","jsx","Select","IconButton","useMemo","combineClassNames","capitalize","jsxs","ThemeSelect"],"mappings":"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"}
1
+ {"version":3,"file":"Footer-BKfoTV0l.cjs","sources":["../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\n\r\ninterface ThemeSelectProps {\r\n theme?: ThemeType;\r\n shadow?: ShadowType;\r\n rounding?: RoundingType;\r\n \"data-testid\"?: string;\r\n state?: StateType;\r\n}\r\n\r\nconst UserThemeSettings: React.FC<ThemeSelectProps> = ({\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n \"data-testid\": testId = \"theme-select\",\r\n state = \"\",\r\n}) => {\r\n const allSchemes = getAllColorSchemes();\r\n const themeContext = useContext(ThemeContext);\r\n\r\n if (!themeContext) {\r\n throw new Error(\r\n \"ThemeContext is undefined. Make sure to wrap this component with ThemeProvider.\"\r\n );\r\n }\r\n\r\n const { selectedScheme, setSelectedScheme } = themeContext;\r\n\r\n const options = allSchemes.map((scheme, index) => ({\r\n value: index.toString(),\r\n label: scheme.name,\r\n }));\r\n\r\n return (\r\n <div className=\"control-container\">\r\n <Select\r\n theme={theme}\r\n shadow={shadow}\r\n rounding={rounding}\r\n state={state}\r\n data-testid={`${testId}-select`}\r\n options={options}\r\n value={selectedScheme.toString()}\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(value as string, 10))\r\n }\r\n ariaLabel=\"Select Theme\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserThemeSettings;\r\n","import React, { JSX, useMemo } from \"react\";\r\nimport { FooterProps } from \"./Footer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { getDefaultTheme } from \"../../config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\n\r\nexport interface BaseFooterProps extends FooterProps {\r\n IconButton: React.ComponentType<any>;\r\n ThemeSelect: React.ComponentType<any>;\r\n ImageComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n LinkWrapper?: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n }) => JSX.Element;\r\n}\r\n\r\nconst FooterBase: React.FC<BaseFooterProps> = ({\r\n theme = getDefaultTheme(),\r\n attachment = \"static\",\r\n shadow = \"none\",\r\n rounding = \"none\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n copyright,\r\n links = [],\r\n logo,\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children }) => <a href={href}>{children}</a>,\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n classMap[`shadow${capitalize(shadow)}`],\r\n classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className\r\n ),\r\n [classMap, theme, className]\r\n );\r\n return (\r\n <footer\r\n className={footerClass}\r\n role=\"contentinfo\"\r\n aria-label=\"Footer\"\r\n data-testid={testId}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {logo &&\r\n (typeof logo === \"string\" ||\r\n (typeof logo === \"object\" && \"src\" in logo)) ? (\r\n <ImageComponent\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logo}\r\n alt=\"Logo\"\r\n height={20}\r\n width={20}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n >\r\n {logo}\r\n </span>\r\n )}\r\n\r\n {copyright && (\r\n <div className={classMap.left} data-testid={`${testId}-copyright`}>\r\n <p>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {links.length > 0 && (\r\n <nav\r\n className={classMap.links}\r\n aria-label=\"Footer site links\"\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul role=\"list\">\r\n {links.map((link, i) => (\r\n <li key={i}>\r\n <LinkWrapper\r\n href={link.href}\r\n children={\r\n <span\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${link.label.toLowerCase().replace(/\\s+/g, \"-\")}`}\r\n >\r\n {link.label}\r\n </span>\r\n }\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n\r\n {showThemeSelect && (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label=\"Theme selector container\"\r\n >\r\n <ThemeSelect theme={\"clear\"} shadow={\"none\"} />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <div\r\n className={classMap.social}\r\n aria-label=\"Social media\"\r\n role=\"navigation\"\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={index}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal\r\n shadow=\"none\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n ariaLabel={social.title}\r\n title={social.title}\r\n theme=\"clear\"\r\n data-testid={`${testId}-social-${social.title\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nexport default FooterBase;\r\n","import React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/core/ThemeSelect\";\r\nimport \"./Footer.scss\";\r\n\r\nconst classes = {\r\n footer: \"footer\",\r\n\r\n primary: \"footer_primary\",\r\n secondary: \"footer_secondary\",\r\n tertiary: \"footer_tertiary\",\r\n quaternary: \"footer_quaternary\",\r\n clear: \"footer_clear\",\r\n\r\n shadowNone: \"footer_shadow-None\",\r\n shadowLight: \"footer_shadow-Light\",\r\n shadowMedium: \"footer_shadow-Medium\",\r\n shadowStrong: \"footer_shadow-Strong\",\r\n shadowIntense: \"footer_shadow-Intense\",\r\n\r\n roundNone: \"footer_round-None\",\r\n roundSmall: \"footer_round-Small\",\r\n roundMedium: \"footer_round-Medium\",\r\n roundLarge: \"footer_round-Large\",\r\n\r\n attachmentStatic: \"footer_attachment-static\",\r\n attachmentFixed: \"footer_attachment-fixed\",\r\n attachmentSticky: \"footer_attachment-sticky\",\r\n\r\n content: \"footer_content\",\r\n logo: \"footer_logo\",\r\n left: \"footer_left\",\r\n links: \"footer_links\",\r\n link: \"footer_link\",\r\n social: \"footer_social\",\r\n\r\n themeToggle: \"footer_theme_toggle\",\r\n};\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ThemeSelect={ThemeSelect}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["getDefaultTheme","getDefaultShadow","getDefaultRounding","getAllColorSchemes","useContext","ThemeContext","jsx","Select","IconButton","useMemo","combineClassNames","capitalize","jsxs","ThemeSelect"],"mappings":"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"}
@@ -4,7 +4,7 @@ import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
4
4
  import { a as getDefaultRounding, b as getDefaultShadow, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
5
5
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
6
6
  import { I as IconButton } from "./IconButton-B6cAP2hY.js";
7
- import { S as Select } from "./Select-_12yQ-yj.js";
7
+ import { S as Select } from "./Select-CDWU_cuN.js";
8
8
  import { a as ThemeContext } from "./ThemeContext-Bo0vLczy.js";
9
9
  import { g as getAllColorSchemes } from "./registerColorSheme-BPX0H7hl.js";
10
10
  const UserThemeSettings = ({
@@ -206,4 +206,4 @@ export {
206
206
  Footer as F,
207
207
  UserThemeSettings as U
208
208
  };
209
- //# sourceMappingURL=Footer-7ixaMvFc.js.map
209
+ //# sourceMappingURL=Footer-CJOKuXJh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Footer-7ixaMvFc.js","sources":["../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\n\r\ninterface ThemeSelectProps {\r\n theme?: ThemeType;\r\n shadow?: ShadowType;\r\n rounding?: RoundingType;\r\n \"data-testid\"?: string;\r\n state?: StateType;\r\n}\r\n\r\nconst UserThemeSettings: React.FC<ThemeSelectProps> = ({\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n \"data-testid\": testId = \"theme-select\",\r\n state = \"\",\r\n}) => {\r\n const allSchemes = getAllColorSchemes();\r\n const themeContext = useContext(ThemeContext);\r\n\r\n if (!themeContext) {\r\n throw new Error(\r\n \"ThemeContext is undefined. Make sure to wrap this component with ThemeProvider.\"\r\n );\r\n }\r\n\r\n const { selectedScheme, setSelectedScheme } = themeContext;\r\n\r\n const options = allSchemes.map((scheme, index) => ({\r\n value: index.toString(),\r\n label: scheme.name,\r\n }));\r\n\r\n return (\r\n <div className=\"control-container\">\r\n <Select\r\n theme={theme}\r\n shadow={shadow}\r\n rounding={rounding}\r\n state={state}\r\n data-testid={`${testId}-select`}\r\n options={options}\r\n value={selectedScheme.toString()}\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(value as string, 10))\r\n }\r\n ariaLabel=\"Select Theme\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserThemeSettings;\r\n","import React, { JSX, useMemo } from \"react\";\r\nimport { FooterProps } from \"./Footer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { getDefaultTheme } from \"../../config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\n\r\nexport interface BaseFooterProps extends FooterProps {\r\n IconButton: React.ComponentType<any>;\r\n ThemeSelect: React.ComponentType<any>;\r\n ImageComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n LinkWrapper?: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n }) => JSX.Element;\r\n}\r\n\r\nconst FooterBase: React.FC<BaseFooterProps> = ({\r\n theme = getDefaultTheme(),\r\n attachment = \"static\",\r\n shadow = \"none\",\r\n rounding = \"none\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n copyright,\r\n links = [],\r\n logo,\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children }) => <a href={href}>{children}</a>,\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n classMap[`shadow${capitalize(shadow)}`],\r\n classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className\r\n ),\r\n [classMap, theme, className]\r\n );\r\n return (\r\n <footer\r\n className={footerClass}\r\n role=\"contentinfo\"\r\n aria-label=\"Footer\"\r\n data-testid={testId}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {logo &&\r\n (typeof logo === \"string\" ||\r\n (typeof logo === \"object\" && \"src\" in logo)) ? (\r\n <ImageComponent\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logo}\r\n alt=\"Logo\"\r\n height={20}\r\n width={20}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n >\r\n {logo}\r\n </span>\r\n )}\r\n\r\n {copyright && (\r\n <div className={classMap.left} data-testid={`${testId}-copyright`}>\r\n <p>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {links.length > 0 && (\r\n <nav\r\n className={classMap.links}\r\n aria-label=\"Footer site links\"\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul role=\"list\">\r\n {links.map((link, i) => (\r\n <li key={i}>\r\n <LinkWrapper\r\n href={link.href}\r\n children={\r\n <span\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${link.label.toLowerCase().replace(/\\s+/g, \"-\")}`}\r\n >\r\n {link.label}\r\n </span>\r\n }\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n\r\n {showThemeSelect && (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label=\"Theme selector container\"\r\n >\r\n <ThemeSelect theme={\"clear\"} shadow={\"none\"} />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <div\r\n className={classMap.social}\r\n aria-label=\"Social media\"\r\n role=\"navigation\"\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={index}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal\r\n shadow=\"none\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n ariaLabel={social.title}\r\n title={social.title}\r\n theme=\"clear\"\r\n data-testid={`${testId}-social-${social.title\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nexport default FooterBase;\r\n","import React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/core/ThemeSelect\";\r\nimport \"./Footer.scss\";\r\n\r\nconst classes = {\r\n footer: \"footer\",\r\n\r\n primary: \"footer_primary\",\r\n secondary: \"footer_secondary\",\r\n tertiary: \"footer_tertiary\",\r\n quaternary: \"footer_quaternary\",\r\n clear: \"footer_clear\",\r\n\r\n shadowNone: \"footer_shadow-None\",\r\n shadowLight: \"footer_shadow-Light\",\r\n shadowMedium: \"footer_shadow-Medium\",\r\n shadowStrong: \"footer_shadow-Strong\",\r\n shadowIntense: \"footer_shadow-Intense\",\r\n\r\n roundNone: \"footer_round-None\",\r\n roundSmall: \"footer_round-Small\",\r\n roundMedium: \"footer_round-Medium\",\r\n roundLarge: \"footer_round-Large\",\r\n\r\n attachmentStatic: \"footer_attachment-static\",\r\n attachmentFixed: \"footer_attachment-fixed\",\r\n attachmentSticky: \"footer_attachment-sticky\",\r\n\r\n content: \"footer_content\",\r\n logo: \"footer_logo\",\r\n left: \"footer_left\",\r\n links: \"footer_links\",\r\n link: \"footer_link\",\r\n social: \"footer_social\",\r\n\r\n themeToggle: \"footer_theme_toggle\",\r\n};\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ThemeSelect={ThemeSelect}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["IconButton","ThemeSelect"],"mappings":"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"}
1
+ {"version":3,"file":"Footer-CJOKuXJh.js","sources":["../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\n\r\ninterface ThemeSelectProps {\r\n theme?: ThemeType;\r\n shadow?: ShadowType;\r\n rounding?: RoundingType;\r\n \"data-testid\"?: string;\r\n state?: StateType;\r\n}\r\n\r\nconst UserThemeSettings: React.FC<ThemeSelectProps> = ({\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n \"data-testid\": testId = \"theme-select\",\r\n state = \"\",\r\n}) => {\r\n const allSchemes = getAllColorSchemes();\r\n const themeContext = useContext(ThemeContext);\r\n\r\n if (!themeContext) {\r\n throw new Error(\r\n \"ThemeContext is undefined. Make sure to wrap this component with ThemeProvider.\"\r\n );\r\n }\r\n\r\n const { selectedScheme, setSelectedScheme } = themeContext;\r\n\r\n const options = allSchemes.map((scheme, index) => ({\r\n value: index.toString(),\r\n label: scheme.name,\r\n }));\r\n\r\n return (\r\n <div className=\"control-container\">\r\n <Select\r\n theme={theme}\r\n shadow={shadow}\r\n rounding={rounding}\r\n state={state}\r\n data-testid={`${testId}-select`}\r\n options={options}\r\n value={selectedScheme.toString()}\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(value as string, 10))\r\n }\r\n ariaLabel=\"Select Theme\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserThemeSettings;\r\n","import React, { JSX, useMemo } from \"react\";\r\nimport { FooterProps } from \"./Footer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { getDefaultTheme } from \"../../config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\n\r\nexport interface BaseFooterProps extends FooterProps {\r\n IconButton: React.ComponentType<any>;\r\n ThemeSelect: React.ComponentType<any>;\r\n ImageComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n LinkWrapper?: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n }) => JSX.Element;\r\n}\r\n\r\nconst FooterBase: React.FC<BaseFooterProps> = ({\r\n theme = getDefaultTheme(),\r\n attachment = \"static\",\r\n shadow = \"none\",\r\n rounding = \"none\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n copyright,\r\n links = [],\r\n logo,\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children }) => <a href={href}>{children}</a>,\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n classMap[`shadow${capitalize(shadow)}`],\r\n classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className\r\n ),\r\n [classMap, theme, className]\r\n );\r\n return (\r\n <footer\r\n className={footerClass}\r\n role=\"contentinfo\"\r\n aria-label=\"Footer\"\r\n data-testid={testId}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {logo &&\r\n (typeof logo === \"string\" ||\r\n (typeof logo === \"object\" && \"src\" in logo)) ? (\r\n <ImageComponent\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logo}\r\n alt=\"Logo\"\r\n height={20}\r\n width={20}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n >\r\n {logo}\r\n </span>\r\n )}\r\n\r\n {copyright && (\r\n <div className={classMap.left} data-testid={`${testId}-copyright`}>\r\n <p>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {links.length > 0 && (\r\n <nav\r\n className={classMap.links}\r\n aria-label=\"Footer site links\"\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul role=\"list\">\r\n {links.map((link, i) => (\r\n <li key={i}>\r\n <LinkWrapper\r\n href={link.href}\r\n children={\r\n <span\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${link.label.toLowerCase().replace(/\\s+/g, \"-\")}`}\r\n >\r\n {link.label}\r\n </span>\r\n }\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n\r\n {showThemeSelect && (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label=\"Theme selector container\"\r\n >\r\n <ThemeSelect theme={\"clear\"} shadow={\"none\"} />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <div\r\n className={classMap.social}\r\n aria-label=\"Social media\"\r\n role=\"navigation\"\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={index}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal\r\n shadow=\"none\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n ariaLabel={social.title}\r\n title={social.title}\r\n theme=\"clear\"\r\n data-testid={`${testId}-social-${social.title\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nexport default FooterBase;\r\n","import React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/core/ThemeSelect\";\r\nimport \"./Footer.scss\";\r\n\r\nconst classes = {\r\n footer: \"footer\",\r\n\r\n primary: \"footer_primary\",\r\n secondary: \"footer_secondary\",\r\n tertiary: \"footer_tertiary\",\r\n quaternary: \"footer_quaternary\",\r\n clear: \"footer_clear\",\r\n\r\n shadowNone: \"footer_shadow-None\",\r\n shadowLight: \"footer_shadow-Light\",\r\n shadowMedium: \"footer_shadow-Medium\",\r\n shadowStrong: \"footer_shadow-Strong\",\r\n shadowIntense: \"footer_shadow-Intense\",\r\n\r\n roundNone: \"footer_round-None\",\r\n roundSmall: \"footer_round-Small\",\r\n roundMedium: \"footer_round-Medium\",\r\n roundLarge: \"footer_round-Large\",\r\n\r\n attachmentStatic: \"footer_attachment-static\",\r\n attachmentFixed: \"footer_attachment-fixed\",\r\n attachmentSticky: \"footer_attachment-sticky\",\r\n\r\n content: \"footer_content\",\r\n logo: \"footer_logo\",\r\n left: \"footer_left\",\r\n links: \"footer_links\",\r\n link: \"footer_link\",\r\n social: \"footer_social\",\r\n\r\n themeToggle: \"footer_theme_toggle\",\r\n};\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ThemeSelect={ThemeSelect}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["IconButton","ThemeSelect"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Footer = require("./Footer-Dc_CuIC1.cjs");
2
+ const Footer = require("./Footer-BKfoTV0l.cjs");
3
3
  module.exports = Footer.Footer;
4
4
  //# sourceMappingURL=Footer.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { F } from "./Footer-7ixaMvFc.js";
1
+ import { F } from "./Footer-CJOKuXJh.js";
2
2
  export {
3
3
  F as default
4
4
  };
@@ -13,7 +13,7 @@ const BaseNavBar = ({
13
13
  rounding = borealStyleConfig.getDefaultRounding(),
14
14
  shadow = borealStyleConfig.getDefaultShadow(),
15
15
  className,
16
- "data-testid": testId = "empty-state"
16
+ "data-testid": testId = "nav-bar"
17
17
  }) => {
18
18
  const wrapperClass = React.useMemo(
19
19
  () => classNames.combineClassNames(classMap.container, classMap[theme], className),
@@ -117,4 +117,4 @@ const NavBar = (props) => {
117
117
  );
118
118
  };
119
119
  exports.NavBar = NavBar;
120
- //# sourceMappingURL=NavBar-CDI5S3fK.cjs.map
120
+ //# sourceMappingURL=NavBar-C8zI9Lvt.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavBar-C8zI9Lvt.cjs","sources":["../../src/components/NavBar/NavBarBase.tsx","../../src/components/NavBar/core/NavBar.tsx"],"sourcesContent":["import React, { JSX, useMemo } from \"react\";\r\nimport { NavBarProps } from \"./NavBar.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseNavBarProps extends NavBarProps {\r\n currentPath: string;\r\n LinkWrapper: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n className: string;\r\n isActive: boolean;\r\n testId: string;\r\n \"aria-current\"?: \"page\";\r\n }) => JSX.Element;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseNavBar: React.FC<BaseNavBarProps> = ({\r\n items,\r\n currentPath,\r\n LinkWrapper,\r\n classMap,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className,\r\n \"data-testid\": testId = \"nav-bar\",\r\n}) => {\r\n const wrapperClass = useMemo(\r\n () => combineClassNames(classMap.container, classMap[theme], className),\r\n [classMap, theme]\r\n );\r\n\r\n const itemClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.item,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n return (\r\n <nav\r\n role=\"navigation\"\r\n aria-label=\"Main navigation\"\r\n className={wrapperClass}\r\n data-testid={`${testId}-nav-bar`}\r\n >\r\n {items.map((item, index) => {\r\n const isActive = currentPath === item.path;\r\n\r\n console.log(\r\n \"Nav item className:\",\r\n combineClassNames(classMap.item, isActive && classMap.active)\r\n );\r\n\r\n return (\r\n <LinkWrapper\r\n key={`${item.label}-${index}`}\r\n href={item.path}\r\n isActive={isActive}\r\n className={combineClassNames(\r\n itemClass,\r\n isActive && classMap[\"item--active\"]\r\n )}\r\n testId={`${testId}-nav-item-${item.label.toLowerCase()}`}\r\n aria-current={isActive ? \"page\" : undefined}\r\n >\r\n <div\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-nav-icon-${item.label.toLowerCase()}`}\r\n >\r\n {item.icon}\r\n </div>\r\n <span className={classMap.label}>{item.label}</span>\r\n </LinkWrapper>\r\n );\r\n })}\r\n </nav>\r\n );\r\n};\r\n\r\nexport default BaseNavBar;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport BaseNavBar from \"../NavBarBase\";\r\nimport \"./NavBar.scss\";\r\nimport { NavBarProps } from \"../NavBar.types\";\r\n\r\nconst classes = {\r\n container: \"nav\",\r\n item: \"nav_item\",\r\n \"item--active\": \"nav_active\",\r\n icon: \"nav_icon_container\",\r\n label: \"nav_label\",\r\n\r\n primary: \"nav_primary\",\r\n secondary: \"nav_secondary\",\r\n tertiary: \"nav_tertiary\",\r\n quaternary: \"nav_quaternary\",\r\n clear: \"nav_clear\",\r\n\r\n shadowNone: \"nav_shadow-None\",\r\n shadowLight: \"nav_shadow-Light\",\r\n shadowMedium: \"nav_shadow-Medium\",\r\n shadowStrong: \"nav_shadow-Strong\",\r\n shadowIntense: \"nav_shadow-Intense\",\r\n\r\n roundNone: \"nav_round-None\",\r\n roundSmall: \"nav_round-Small\",\r\n roundMedium: \"nav_round-Medium\",\r\n roundLarge: \"nav_round-Large\",\r\n roundFull: \"nav_round-Full\",\r\n};\r\n\r\nconst NavBar: React.FC<NavBarProps> = (props) => {\r\n const [pathname, setPathname] = useState(\"\");\r\n\r\n useEffect(() => {\r\n setPathname(window.location.pathname);\r\n }, []);\r\n\r\n return (\r\n <BaseNavBar\r\n {...props}\r\n currentPath={pathname}\r\n LinkWrapper={({ href, children, className, isActive, testId }) => (\r\n <a\r\n href={href}\r\n className={className}\r\n aria-current={isActive ? \"page\" : undefined}\r\n data-testid={testId}\r\n >\r\n {children}\r\n </a>\r\n )}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default NavBar;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useMemo","combineClassNames","capitalize","jsx","jsxs","useState","useEffect"],"mappings":"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"}
@@ -12,7 +12,7 @@ const BaseNavBar = ({
12
12
  rounding = getDefaultRounding(),
13
13
  shadow = getDefaultShadow(),
14
14
  className,
15
- "data-testid": testId = "empty-state"
15
+ "data-testid": testId = "nav-bar"
16
16
  }) => {
17
17
  const wrapperClass = useMemo(
18
18
  () => combineClassNames(classMap.container, classMap[theme], className),
@@ -118,4 +118,4 @@ const NavBar = (props) => {
118
118
  export {
119
119
  NavBar as N
120
120
  };
121
- //# sourceMappingURL=NavBar-Dyd9USO4.js.map
121
+ //# sourceMappingURL=NavBar-CNoWBQIV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavBar-CNoWBQIV.js","sources":["../../src/components/NavBar/NavBarBase.tsx","../../src/components/NavBar/core/NavBar.tsx"],"sourcesContent":["import React, { JSX, useMemo } from \"react\";\r\nimport { NavBarProps } from \"./NavBar.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseNavBarProps extends NavBarProps {\r\n currentPath: string;\r\n LinkWrapper: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n className: string;\r\n isActive: boolean;\r\n testId: string;\r\n \"aria-current\"?: \"page\";\r\n }) => JSX.Element;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseNavBar: React.FC<BaseNavBarProps> = ({\r\n items,\r\n currentPath,\r\n LinkWrapper,\r\n classMap,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className,\r\n \"data-testid\": testId = \"nav-bar\",\r\n}) => {\r\n const wrapperClass = useMemo(\r\n () => combineClassNames(classMap.container, classMap[theme], className),\r\n [classMap, theme]\r\n );\r\n\r\n const itemClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.item,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n return (\r\n <nav\r\n role=\"navigation\"\r\n aria-label=\"Main navigation\"\r\n className={wrapperClass}\r\n data-testid={`${testId}-nav-bar`}\r\n >\r\n {items.map((item, index) => {\r\n const isActive = currentPath === item.path;\r\n\r\n console.log(\r\n \"Nav item className:\",\r\n combineClassNames(classMap.item, isActive && classMap.active)\r\n );\r\n\r\n return (\r\n <LinkWrapper\r\n key={`${item.label}-${index}`}\r\n href={item.path}\r\n isActive={isActive}\r\n className={combineClassNames(\r\n itemClass,\r\n isActive && classMap[\"item--active\"]\r\n )}\r\n testId={`${testId}-nav-item-${item.label.toLowerCase()}`}\r\n aria-current={isActive ? \"page\" : undefined}\r\n >\r\n <div\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-nav-icon-${item.label.toLowerCase()}`}\r\n >\r\n {item.icon}\r\n </div>\r\n <span className={classMap.label}>{item.label}</span>\r\n </LinkWrapper>\r\n );\r\n })}\r\n </nav>\r\n );\r\n};\r\n\r\nexport default BaseNavBar;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport BaseNavBar from \"../NavBarBase\";\r\nimport \"./NavBar.scss\";\r\nimport { NavBarProps } from \"../NavBar.types\";\r\n\r\nconst classes = {\r\n container: \"nav\",\r\n item: \"nav_item\",\r\n \"item--active\": \"nav_active\",\r\n icon: \"nav_icon_container\",\r\n label: \"nav_label\",\r\n\r\n primary: \"nav_primary\",\r\n secondary: \"nav_secondary\",\r\n tertiary: \"nav_tertiary\",\r\n quaternary: \"nav_quaternary\",\r\n clear: \"nav_clear\",\r\n\r\n shadowNone: \"nav_shadow-None\",\r\n shadowLight: \"nav_shadow-Light\",\r\n shadowMedium: \"nav_shadow-Medium\",\r\n shadowStrong: \"nav_shadow-Strong\",\r\n shadowIntense: \"nav_shadow-Intense\",\r\n\r\n roundNone: \"nav_round-None\",\r\n roundSmall: \"nav_round-Small\",\r\n roundMedium: \"nav_round-Medium\",\r\n roundLarge: \"nav_round-Large\",\r\n roundFull: \"nav_round-Full\",\r\n};\r\n\r\nconst NavBar: React.FC<NavBarProps> = (props) => {\r\n const [pathname, setPathname] = useState(\"\");\r\n\r\n useEffect(() => {\r\n setPathname(window.location.pathname);\r\n }, []);\r\n\r\n return (\r\n <BaseNavBar\r\n {...props}\r\n currentPath={pathname}\r\n LinkWrapper={({ href, children, className, isActive, testId }) => (\r\n <a\r\n href={href}\r\n className={className}\r\n aria-current={isActive ? \"page\" : undefined}\r\n data-testid={testId}\r\n >\r\n {children}\r\n </a>\r\n )}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default NavBar;\r\n"],"names":[],"mappings":";;;;;AAuBA,MAAM,aAAwC,CAAC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ,gBAAA;AAAA,EACR,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT;AAAA,EACA,eAAe,SAAS;AAC1B,MAAM;AACJ,QAAM,eAAe;AAAA,IACnB,MAAM,kBAAkB,SAAS,WAAW,SAAS,KAAK,GAAG,SAAS;AAAA,IACtE,CAAC,UAAU,KAAK;AAAA,EAAA;AAGlB,QAAM,YAAY;AAAA,IAChB,MACE;AAAA,MACE,SAAS;AAAA,MACT,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,IAAA;AAAA,IAEvD,CAAC,UAAU,QAAQ,QAAQ;AAAA,EAAA;AAG7B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAW;AAAA,MACX,WAAW;AAAA,MACX,eAAa,GAAG,MAAM;AAAA,MAErB,UAAA,MAAM,IAAI,CAAC,MAAM,UAAU;AAC1B,cAAM,WAAW,gBAAgB,KAAK;AAEtC,gBAAQ;AAAA,UACN;AAAA,UACA,kBAAkB,SAAS,MAAM,YAAY,SAAS,MAAM;AAAA,QAAA;AAG9D,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,MAAM,KAAK;AAAA,YACX;AAAA,YACA,WAAW;AAAA,cACT;AAAA,cACA,YAAY,SAAS,cAAc;AAAA,YAAA;AAAA,YAErC,QAAQ,GAAG,MAAM,aAAa,KAAK,MAAM,aAAa;AAAA,YACtD,gBAAc,WAAW,SAAS;AAAA,YAElC,UAAA;AAAA,cAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,SAAS;AAAA,kBACpB,eAAY;AAAA,kBACZ,eAAa,GAAG,MAAM,aAAa,KAAK,MAAM,aAAa;AAAA,kBAE1D,UAAA,KAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,kCAEP,QAAA,EAAK,WAAW,SAAS,OAAQ,eAAK,MAAA,CAAM;AAAA,YAAA;AAAA,UAAA;AAAA,UAjBxC,GAAG,KAAK,KAAK,IAAI,KAAK;AAAA,QAAA;AAAA,MAoBjC,CAAC;AAAA,IAAA;AAAA,EAAA;AAGP;ACpFA,MAAM,UAAU;AAAA,EACd,WAAW;AAAA,EACX,MAAM;AAAA,EACN,gBAAgB;AAAA,EAChB,MAAM;AAAA,EACN,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AAAA,EAEP,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,WAAW;AACb;AAEA,MAAM,SAAgC,CAAC,UAAU;AAC/C,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,EAAE;AAE3C,YAAU,MAAM;AACd,gBAAY,OAAO,SAAS,QAAQ;AAAA,EACtC,GAAG,CAAA,CAAE;AAEL,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,aAAa;AAAA,MACb,aAAa,CAAC,EAAE,MAAM,UAAU,WAAW,UAAU,aACnD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,gBAAc,WAAW,SAAS;AAAA,UAClC,eAAa;AAAA,UAEZ;AAAA,QAAA;AAAA,MAAA;AAAA,MAGL,UAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const NavBar = require("./NavBar-CDI5S3fK.cjs");
2
+ const NavBar = require("./NavBar-C8zI9Lvt.cjs");
3
3
  module.exports = NavBar.NavBar;
4
4
  //# sourceMappingURL=NavBar.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { N } from "./NavBar-Dyd9USO4.js";
1
+ import { N } from "./NavBar-CNoWBQIV.js";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -146,7 +146,7 @@ const BasePopover = ({
146
146
  className: popoverContentClass,
147
147
  "data-testid": `${testId}-content`,
148
148
  children: [
149
- /* @__PURE__ */ jsxRuntime.jsx("span", { id: `${testId}-label`, className: "sr-only", children: "Popover Content" }),
149
+ /* @__PURE__ */ jsxRuntime.jsx("span", { id: `${testId}-label`, className: "sr_only", children: "Popover Content" }),
150
150
  content
151
151
  ]
152
152
  }
@@ -183,4 +183,4 @@ const Popover = (props) => {
183
183
  return /* @__PURE__ */ jsxRuntime.jsx(BasePopover, { ...props, classMap: classes });
184
184
  };
185
185
  exports.Popover = Popover;
186
- //# sourceMappingURL=PopOver-OijKNHZU.cjs.map
186
+ //# sourceMappingURL=PopOver-BdZXa2hs.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"PopOver-OijKNHZU.cjs","sources":["../../src/components/PopOver/PopOverBase.tsx","../../src/components/PopOver/core/PopOver.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, JSX, useMemo } from \"react\";\r\nimport { PopoverProps } from \"./PopOver.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BasePopoverProps extends PopoverProps {\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BasePopover: React.FC<BasePopoverProps> = ({\r\n trigger,\r\n content,\r\n placement = \"bottom\",\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n className = \"\",\r\n \"data-testid\": testId = \"popover\",\r\n classMap,\r\n}: BasePopoverProps): JSX.Element => {\r\n const [open, setOpen] = useState(false);\r\n const [dynamicPlacement, setDynamicPlacement] = useState(placement);\r\n const popoverRef = useRef<HTMLDivElement>(null);\r\n const triggerRef = useRef<HTMLDivElement>(null);\r\n\r\n const toggleOpen = () => setOpen((prev) => !prev);\r\n const close = () => {\r\n setOpen(false);\r\n setDynamicPlacement(placement);\r\n triggerRef.current?.focus();\r\n };\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (\r\n popoverRef.current &&\r\n !popoverRef.current.contains(event.target as Node)\r\n ) {\r\n close();\r\n }\r\n };\r\n\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n e.stopPropagation();\r\n close();\r\n }\r\n };\r\n\r\n if (open) {\r\n document.addEventListener(\"keydown\", handleKeyDown);\r\n }\r\n\r\n if (open && popoverRef.current && triggerRef.current) {\r\n const triggerRect = triggerRef.current.getBoundingClientRect();\r\n const popoverEl = popoverRef.current;\r\n\r\n const viewportWidth = window.innerWidth;\r\n const viewportHeight = window.innerHeight;\r\n const spaceAbove = triggerRect.top;\r\n const spaceBelow = viewportHeight - triggerRect.bottom;\r\n const spaceLeft = triggerRect.left;\r\n const spaceRight = viewportWidth - triggerRect.right;\r\n\r\n popoverEl.style.transform = \"\";\r\n popoverEl.style.left = \"\";\r\n popoverEl.style.right = \"\";\r\n popoverEl.style.top = \"\";\r\n popoverEl.style.bottom = \"\";\r\n\r\n let newPlacement = placement;\r\n\r\n if (placement === \"top\" && popoverEl.offsetHeight > spaceAbove) {\r\n newPlacement = \"bottom\";\r\n } else if (\r\n placement === \"bottom\" &&\r\n popoverEl.offsetHeight > spaceBelow\r\n ) {\r\n newPlacement = \"top\";\r\n } else if (placement === \"left\" && popoverEl.offsetWidth > spaceLeft) {\r\n newPlacement = \"right\";\r\n } else if (placement === \"right\" && popoverEl.offsetWidth > spaceRight) {\r\n newPlacement = \"left\";\r\n }\r\n\r\n setDynamicPlacement(newPlacement);\r\n\r\n requestAnimationFrame(() => {\r\n const popoverRect = popoverEl.getBoundingClientRect();\r\n\r\n let dx = 0;\r\n let dy = 0;\r\n\r\n if (popoverRect.left < 8) {\r\n dx = 8 - popoverRect.left;\r\n } else if (popoverRect.right > viewportWidth - 8) {\r\n dx = viewportWidth - 8 - popoverRect.right;\r\n }\r\n\r\n if (popoverRect.top < 8) {\r\n dy = 8 - popoverRect.top;\r\n } else if (popoverRect.bottom > viewportHeight - 8) {\r\n dy = viewportHeight - 8 - popoverRect.bottom;\r\n }\r\n\r\n if (dx !== 0 || dy !== 0) {\r\n if (popoverRect.left < 8) {\r\n popoverEl.style.left = \"8px\";\r\n popoverEl.style.transform = \"translateY(10px)\";\r\n } else if (popoverRect.right > viewportWidth - 8) {\r\n popoverEl.style.right = \"8px\";\r\n popoverEl.style.left = \"auto\";\r\n popoverEl.style.transform = \"translateY(10px)\";\r\n }\r\n }\r\n });\r\n }\r\n\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleKeyDown);\r\n };\r\n }, [open]);\r\n\r\n const popoverContentClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.popover,\r\n classMap[dynamicPlacement],\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, dynamicPlacement, rounding, shadow, theme, state]\r\n );\r\n\r\n return (\r\n <div className={`${classMap.container} ${className}`} data-testid={testId}>\r\n <div\r\n className={classMap.trigger}\r\n onClick={toggleOpen}\r\n onKeyDown={(e) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n toggleOpen();\r\n }\r\n }}\r\n tabIndex={0}\r\n role=\"button\"\r\n aria-haspopup=\"dialog\"\r\n aria-expanded={open}\r\n aria-controls={`${testId}-content`}\r\n aria-label=\"Toggle popover\"\r\n ref={triggerRef}\r\n data-testid={`${testId}-trigger`}\r\n >\r\n {trigger}\r\n </div>\r\n\r\n {open && (\r\n <div\r\n ref={popoverRef}\r\n id={`${testId}-content`}\r\n role=\"dialog\"\r\n aria-modal=\"false\"\r\n aria-labelledby={`${testId}-label`}\r\n className={popoverContentClass}\r\n data-testid={`${testId}-content`}\r\n >\r\n <span id={`${testId}-label`} className=\"sr-only\">\r\n Popover Content\r\n </span>\r\n {content}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default BasePopover;\r\n","import React from \"react\";\r\nimport BasePopover from \"../PopOverBase\";\r\nimport \"./PopOver.scss\";\r\nimport { PopoverProps } from \"../PopOver.types\";\r\n\r\nconst classes = {\r\n container: \"popover_container\",\r\n trigger: \"popover_trigger\",\r\n popover: \"popover\",\r\n\r\n top: \"popover_top\",\r\n bottom: \"popover_bottom\",\r\n left: \"popover_left\",\r\n right: \"popover_right\",\r\n\r\n primary: \"popover_primary\",\r\n secondary: \"popover_secondary\",\r\n tertiary: \"popover_tertiary\",\r\n quaternary: \"popover_quaternary\",\r\n\r\n success: \"popover_success\",\r\n error: \"popover_error\",\r\n warning: \"popover_warning\",\r\n\r\n clear: \"popover_clear\",\r\n\r\n shadowNone: \"popover_shadow-None\",\r\n shadowLight: \"popover_shadow-Light\",\r\n shadowMedium: \"popover_shadow-Medium\",\r\n shadowStrong: \"popover_shadow-Strong\",\r\n shadowIntense: \"popover_shadow-Intense\",\r\n\r\n roundNone: \"popover_round-None\",\r\n roundSmall: \"popover_round-Small\",\r\n roundMedium: \"popover_round-Medium\",\r\n roundLarge: \"popover_round-Large\",\r\n};\r\n\r\nconst Popover: React.FC<PopoverProps> = (props) => {\r\n return <BasePopover {...props} classMap={classes} />;\r\n};\r\n\r\nexport default Popover;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useState","useRef","useEffect","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"PopOver-BdZXa2hs.cjs","sources":["../../src/components/PopOver/PopOverBase.tsx","../../src/components/PopOver/core/PopOver.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, JSX, useMemo } from \"react\";\r\nimport { PopoverProps } from \"./PopOver.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BasePopoverProps extends PopoverProps {\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BasePopover: React.FC<BasePopoverProps> = ({\r\n trigger,\r\n content,\r\n placement = \"bottom\",\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n className = \"\",\r\n \"data-testid\": testId = \"popover\",\r\n classMap,\r\n}: BasePopoverProps): JSX.Element => {\r\n const [open, setOpen] = useState(false);\r\n const [dynamicPlacement, setDynamicPlacement] = useState(placement);\r\n const popoverRef = useRef<HTMLDivElement>(null);\r\n const triggerRef = useRef<HTMLDivElement>(null);\r\n\r\n const toggleOpen = () => setOpen((prev) => !prev);\r\n const close = () => {\r\n setOpen(false);\r\n setDynamicPlacement(placement);\r\n triggerRef.current?.focus();\r\n };\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (\r\n popoverRef.current &&\r\n !popoverRef.current.contains(event.target as Node)\r\n ) {\r\n close();\r\n }\r\n };\r\n\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") {\r\n e.stopPropagation();\r\n close();\r\n }\r\n };\r\n\r\n if (open) {\r\n document.addEventListener(\"keydown\", handleKeyDown);\r\n }\r\n\r\n if (open && popoverRef.current && triggerRef.current) {\r\n const triggerRect = triggerRef.current.getBoundingClientRect();\r\n const popoverEl = popoverRef.current;\r\n\r\n const viewportWidth = window.innerWidth;\r\n const viewportHeight = window.innerHeight;\r\n const spaceAbove = triggerRect.top;\r\n const spaceBelow = viewportHeight - triggerRect.bottom;\r\n const spaceLeft = triggerRect.left;\r\n const spaceRight = viewportWidth - triggerRect.right;\r\n\r\n popoverEl.style.transform = \"\";\r\n popoverEl.style.left = \"\";\r\n popoverEl.style.right = \"\";\r\n popoverEl.style.top = \"\";\r\n popoverEl.style.bottom = \"\";\r\n\r\n let newPlacement = placement;\r\n\r\n if (placement === \"top\" && popoverEl.offsetHeight > spaceAbove) {\r\n newPlacement = \"bottom\";\r\n } else if (\r\n placement === \"bottom\" &&\r\n popoverEl.offsetHeight > spaceBelow\r\n ) {\r\n newPlacement = \"top\";\r\n } else if (placement === \"left\" && popoverEl.offsetWidth > spaceLeft) {\r\n newPlacement = \"right\";\r\n } else if (placement === \"right\" && popoverEl.offsetWidth > spaceRight) {\r\n newPlacement = \"left\";\r\n }\r\n\r\n setDynamicPlacement(newPlacement);\r\n\r\n requestAnimationFrame(() => {\r\n const popoverRect = popoverEl.getBoundingClientRect();\r\n\r\n let dx = 0;\r\n let dy = 0;\r\n\r\n if (popoverRect.left < 8) {\r\n dx = 8 - popoverRect.left;\r\n } else if (popoverRect.right > viewportWidth - 8) {\r\n dx = viewportWidth - 8 - popoverRect.right;\r\n }\r\n\r\n if (popoverRect.top < 8) {\r\n dy = 8 - popoverRect.top;\r\n } else if (popoverRect.bottom > viewportHeight - 8) {\r\n dy = viewportHeight - 8 - popoverRect.bottom;\r\n }\r\n\r\n if (dx !== 0 || dy !== 0) {\r\n if (popoverRect.left < 8) {\r\n popoverEl.style.left = \"8px\";\r\n popoverEl.style.transform = \"translateY(10px)\";\r\n } else if (popoverRect.right > viewportWidth - 8) {\r\n popoverEl.style.right = \"8px\";\r\n popoverEl.style.left = \"auto\";\r\n popoverEl.style.transform = \"translateY(10px)\";\r\n }\r\n }\r\n });\r\n }\r\n\r\n return () => {\r\n document.removeEventListener(\"keydown\", handleKeyDown);\r\n };\r\n }, [open]);\r\n\r\n const popoverContentClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.popover,\r\n classMap[dynamicPlacement],\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, dynamicPlacement, rounding, shadow, theme, state]\r\n );\r\n\r\n return (\r\n <div className={`${classMap.container} ${className}`} data-testid={testId}>\r\n <div\r\n className={classMap.trigger}\r\n onClick={toggleOpen}\r\n onKeyDown={(e) => {\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n toggleOpen();\r\n }\r\n }}\r\n tabIndex={0}\r\n role=\"button\"\r\n aria-haspopup=\"dialog\"\r\n aria-expanded={open}\r\n aria-controls={`${testId}-content`}\r\n aria-label=\"Toggle popover\"\r\n ref={triggerRef}\r\n data-testid={`${testId}-trigger`}\r\n >\r\n {trigger}\r\n </div>\r\n\r\n {open && (\r\n <div\r\n ref={popoverRef}\r\n id={`${testId}-content`}\r\n role=\"dialog\"\r\n aria-modal=\"false\"\r\n aria-labelledby={`${testId}-label`}\r\n className={popoverContentClass}\r\n data-testid={`${testId}-content`}\r\n >\r\n <span id={`${testId}-label`} className=\"sr_only\">\r\n Popover Content\r\n </span>\r\n {content}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default BasePopover;\r\n","import React from \"react\";\r\nimport BasePopover from \"../PopOverBase\";\r\nimport \"./PopOver.scss\";\r\nimport { PopoverProps } from \"../PopOver.types\";\r\n\r\nconst classes = {\r\n container: \"popover_container\",\r\n trigger: \"popover_trigger\",\r\n popover: \"popover\",\r\n\r\n top: \"popover_top\",\r\n bottom: \"popover_bottom\",\r\n left: \"popover_left\",\r\n right: \"popover_right\",\r\n\r\n primary: \"popover_primary\",\r\n secondary: \"popover_secondary\",\r\n tertiary: \"popover_tertiary\",\r\n quaternary: \"popover_quaternary\",\r\n\r\n success: \"popover_success\",\r\n error: \"popover_error\",\r\n warning: \"popover_warning\",\r\n\r\n clear: \"popover_clear\",\r\n\r\n shadowNone: \"popover_shadow-None\",\r\n shadowLight: \"popover_shadow-Light\",\r\n shadowMedium: \"popover_shadow-Medium\",\r\n shadowStrong: \"popover_shadow-Strong\",\r\n shadowIntense: \"popover_shadow-Intense\",\r\n\r\n roundNone: \"popover_round-None\",\r\n roundSmall: \"popover_round-Small\",\r\n roundMedium: \"popover_round-Medium\",\r\n roundLarge: \"popover_round-Large\",\r\n};\r\n\r\nconst Popover: React.FC<PopoverProps> = (props) => {\r\n return <BasePopover {...props} classMap={classes} />;\r\n};\r\n\r\nexport default Popover;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useState","useRef","useEffect","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":"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"}
@@ -145,7 +145,7 @@ const BasePopover = ({
145
145
  className: popoverContentClass,
146
146
  "data-testid": `${testId}-content`,
147
147
  children: [
148
- /* @__PURE__ */ jsx("span", { id: `${testId}-label`, className: "sr-only", children: "Popover Content" }),
148
+ /* @__PURE__ */ jsx("span", { id: `${testId}-label`, className: "sr_only", children: "Popover Content" }),
149
149
  content
150
150
  ]
151
151
  }
@@ -184,4 +184,4 @@ const Popover = (props) => {
184
184
  export {
185
185
  Popover as P
186
186
  };
187
- //# sourceMappingURL=PopOver-DNqWcWjU.js.map
187
+ //# sourceMappingURL=PopOver-C6AnRNop.js.map