boreal-ui 0.0.27 → 0.0.28

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 (168) hide show
  1. package/dist/next/{Avatar-CKByQz4V.js → Avatar-B3eTb_Xz.js} +3 -3
  2. package/dist/next/{Avatar-CKByQz4V.js.map → Avatar-B3eTb_Xz.js.map} +1 -1
  3. package/dist/next/{Avatar-Cd_TqEqJ.cjs → Avatar-BX8mh_3b.cjs} +3 -3
  4. package/dist/next/{Avatar-Cd_TqEqJ.cjs.map → Avatar-BX8mh_3b.cjs.map} +1 -1
  5. package/dist/next/Avatar.cjs.js +1 -1
  6. package/dist/next/Avatar.js +1 -1
  7. package/dist/next/{Breadcrumbs-pw9Ow6LT.cjs → Breadcrumbs-7MNPobUi.cjs} +3 -3
  8. package/dist/next/{Breadcrumbs-pw9Ow6LT.cjs.map → Breadcrumbs-7MNPobUi.cjs.map} +1 -1
  9. package/dist/next/{Breadcrumbs-CsQGqIFq.js → Breadcrumbs-BM-yj_kq.js} +3 -3
  10. package/dist/next/{Breadcrumbs-CsQGqIFq.js.map → Breadcrumbs-BM-yj_kq.js.map} +1 -1
  11. package/dist/next/Breadcrumbs.cjs.js +1 -1
  12. package/dist/next/Breadcrumbs.js +1 -1
  13. package/dist/next/{Button-DUYFGciR.js → Button-ClWB5gZW.js} +2 -2
  14. package/dist/next/{Button-DUYFGciR.js.map → Button-ClWB5gZW.js.map} +1 -1
  15. package/dist/next/{Button-CksDHAGT.cjs → Button-G1PFBSqU.cjs} +2 -2
  16. package/dist/next/{Button-CksDHAGT.cjs.map → Button-G1PFBSqU.cjs.map} +1 -1
  17. package/dist/next/Button.cjs.js +1 -1
  18. package/dist/next/Button.js +1 -1
  19. package/dist/next/{Card-DFKVGnWo.js → Card-B_USybKk.js} +4 -4
  20. package/dist/next/{Card-DFKVGnWo.js.map → Card-B_USybKk.js.map} +1 -1
  21. package/dist/next/{Card-HHvgocCd.cjs → Card-Bg9EknRD.cjs} +4 -4
  22. package/dist/next/{Card-HHvgocCd.cjs.map → Card-Bg9EknRD.cjs.map} +1 -1
  23. package/dist/next/Card.cjs.js +1 -1
  24. package/dist/next/Card.js +1 -1
  25. package/dist/next/{Chip-DngJ3Nsm.js → Chip-CMP-naRw.js} +2 -2
  26. package/dist/next/{Chip-DngJ3Nsm.js.map → Chip-CMP-naRw.js.map} +1 -1
  27. package/dist/next/{Chip-CPe_ATTn.cjs → Chip-DoRB7LBO.cjs} +2 -2
  28. package/dist/next/{Chip-CPe_ATTn.cjs.map → Chip-DoRB7LBO.cjs.map} +1 -1
  29. package/dist/next/Chip.cjs.js +1 -1
  30. package/dist/next/Chip.js +1 -1
  31. package/dist/next/{CommandPalette-BKamGmgu.js → CommandPalette-BaJ9KSob.js} +2 -2
  32. package/dist/next/{CommandPalette-BKamGmgu.js.map → CommandPalette-BaJ9KSob.js.map} +1 -1
  33. package/dist/next/{CommandPalette-BExinZ-y.cjs → CommandPalette-DjR2pE5m.cjs} +2 -2
  34. package/dist/next/{CommandPalette-BExinZ-y.cjs.map → CommandPalette-DjR2pE5m.cjs.map} +1 -1
  35. package/dist/next/CommandPalette.cjs.js +1 -1
  36. package/dist/next/CommandPalette.js +1 -1
  37. package/dist/next/{Dropdown-COJxJqzC.cjs → Dropdown-BHd5BuCB.cjs} +2 -2
  38. package/dist/next/{Dropdown-COJxJqzC.cjs.map → Dropdown-BHd5BuCB.cjs.map} +1 -1
  39. package/dist/next/{Dropdown-B2xAwrlF.js → Dropdown-CzQhdSD7.js} +2 -2
  40. package/dist/next/{Dropdown-B2xAwrlF.js.map → Dropdown-CzQhdSD7.js.map} +1 -1
  41. package/dist/next/Dropdown.cjs.js +1 -1
  42. package/dist/next/Dropdown.js +1 -1
  43. package/dist/next/{EmptyState-DeYWnFaJ.js → EmptyState-BbuuFZCb.js} +2 -2
  44. package/dist/next/{EmptyState-DeYWnFaJ.js.map → EmptyState-BbuuFZCb.js.map} +1 -1
  45. package/dist/next/{EmptyState-DepuL2N8.cjs → EmptyState-edgOQ6GW.cjs} +2 -2
  46. package/dist/next/{EmptyState-DepuL2N8.cjs.map → EmptyState-edgOQ6GW.cjs.map} +1 -1
  47. package/dist/next/EmptyState.cjs.js +1 -1
  48. package/dist/next/EmptyState.js +1 -1
  49. package/dist/next/{FileUpload-tiwkr7n-.cjs → FileUpload-BeTvsLw-.cjs} +3 -3
  50. package/dist/next/{FileUpload-tiwkr7n-.cjs.map → FileUpload-BeTvsLw-.cjs.map} +1 -1
  51. package/dist/next/{FileUpload-C91Pd8t7.js → FileUpload-D7qdf0y5.js} +3 -3
  52. package/dist/next/{FileUpload-C91Pd8t7.js.map → FileUpload-D7qdf0y5.js.map} +1 -1
  53. package/dist/next/FileUpload.cjs.js +1 -1
  54. package/dist/next/FileUpload.js +1 -1
  55. package/dist/next/{Footer-BkA5H1MS.cjs → Footer-BvAAYL0M.cjs} +4 -4
  56. package/dist/next/{Footer-BkA5H1MS.cjs.map → Footer-BvAAYL0M.cjs.map} +1 -1
  57. package/dist/next/{Footer-BvTet1LG.js → Footer-D18LIc08.js} +4 -4
  58. package/dist/next/{Footer-BvTet1LG.js.map → Footer-D18LIc08.js.map} +1 -1
  59. package/dist/next/Footer.cjs.js +1 -1
  60. package/dist/next/Footer.js +1 -1
  61. package/dist/next/{IconButton-BjZZm2hJ.js → IconButton-Dk8EDf4Z.js} +2 -2
  62. package/dist/next/{IconButton-BjZZm2hJ.js.map → IconButton-Dk8EDf4Z.js.map} +1 -1
  63. package/dist/next/{IconButton-DvfiteNA.cjs → IconButton-SZdNlqIZ.cjs} +2 -2
  64. package/dist/next/{IconButton-DvfiteNA.cjs.map → IconButton-SZdNlqIZ.cjs.map} +1 -1
  65. package/dist/next/IconButton.cjs.js +1 -1
  66. package/dist/next/IconButton.js +1 -1
  67. package/dist/next/{MessagePopUp-8Jk_jkt_.cjs → MessagePopUp-D6QdsrUO.cjs} +3 -3
  68. package/dist/next/{MessagePopUp-8Jk_jkt_.cjs.map → MessagePopUp-D6QdsrUO.cjs.map} +1 -1
  69. package/dist/next/{MessagePopUp-DCP7uPnZ.js → MessagePopUp-DEbsvN19.js} +3 -3
  70. package/dist/next/{MessagePopUp-DCP7uPnZ.js.map → MessagePopUp-DEbsvN19.js.map} +1 -1
  71. package/dist/next/MessagePopUp.cjs.js +1 -1
  72. package/dist/next/MessagePopUp.js +1 -1
  73. package/dist/next/{Modal-DFnJUiOY.js → Modal-BOaNai97.js} +2 -2
  74. package/dist/next/{Modal-DFnJUiOY.js.map → Modal-BOaNai97.js.map} +1 -1
  75. package/dist/next/{Modal-C2aLpohd.cjs → Modal-BmAYw3X9.cjs} +2 -2
  76. package/dist/next/{Modal-C2aLpohd.cjs.map → Modal-BmAYw3X9.cjs.map} +1 -1
  77. package/dist/next/Modal.cjs.js +1 -1
  78. package/dist/next/Modal.js +1 -1
  79. package/dist/next/{NavBar-CtpkmbXJ.js → NavBar-CKo-nom2.js} +3 -3
  80. package/dist/next/{NavBar-CtpkmbXJ.js.map → NavBar-CKo-nom2.js.map} +1 -1
  81. package/dist/next/{NavBar-CqPh60CY.cjs → NavBar-CO4v6_28.cjs} +3 -3
  82. package/dist/next/{NavBar-CqPh60CY.cjs.map → NavBar-CO4v6_28.cjs.map} +1 -1
  83. package/dist/next/NavBar.cjs.js +1 -1
  84. package/dist/next/NavBar.js +1 -1
  85. package/dist/next/{NotificationCenter-ChaO0Xu5.cjs → NotificationCenter-BIuJj-PB.cjs} +3 -3
  86. package/dist/next/{NotificationCenter-ChaO0Xu5.cjs.map → NotificationCenter-BIuJj-PB.cjs.map} +1 -1
  87. package/dist/next/{NotificationCenter-ySBsv_F4.js → NotificationCenter-DCE8DuOm.js} +3 -3
  88. package/dist/next/{NotificationCenter-ySBsv_F4.js.map → NotificationCenter-DCE8DuOm.js.map} +1 -1
  89. package/dist/next/NotificationCenter.cjs.js +1 -1
  90. package/dist/next/NotificationCenter.js +1 -1
  91. package/dist/next/{Pager-Bbbq04I_.cjs → Pager-BADOS4cm.cjs} +3 -3
  92. package/dist/next/{Pager-Bbbq04I_.cjs.map → Pager-BADOS4cm.cjs.map} +1 -1
  93. package/dist/next/{Pager-BYY7KOKU.js → Pager-DiZtB-Df.js} +3 -3
  94. package/dist/next/{Pager-BYY7KOKU.js.map → Pager-DiZtB-Df.js.map} +1 -1
  95. package/dist/next/Pager.cjs.js +1 -1
  96. package/dist/next/Pager.js +1 -1
  97. package/dist/next/{Sidebar-hBHcsbrg.cjs → Sidebar-C_zefcbg.cjs} +3 -3
  98. package/dist/next/{Sidebar-hBHcsbrg.cjs.map → Sidebar-C_zefcbg.cjs.map} +1 -1
  99. package/dist/next/{Sidebar-CB2Lm-J-.js → Sidebar-R1NSvWHu.js} +3 -3
  100. package/dist/next/{Sidebar-CB2Lm-J-.js.map → Sidebar-R1NSvWHu.js.map} +1 -1
  101. package/dist/next/Sidebar.cjs.js +1 -1
  102. package/dist/next/Sidebar.js +1 -1
  103. package/dist/next/{Stepper-DOdGXz4_.cjs → Stepper-C_qUO4sd.cjs} +2 -2
  104. package/dist/next/{Stepper-DOdGXz4_.cjs.map → Stepper-C_qUO4sd.cjs.map} +1 -1
  105. package/dist/next/{Stepper-tDpx2gnl.js → Stepper-De9foUOK.js} +2 -2
  106. package/dist/next/{Stepper-tDpx2gnl.js.map → Stepper-De9foUOK.js.map} +1 -1
  107. package/dist/next/Stepper.cjs.js +1 -1
  108. package/dist/next/Stepper.js +1 -1
  109. package/dist/next/{TagInput-DUD9_g1b.cjs → TagInput-BVng78ON.cjs} +3 -3
  110. package/dist/next/{TagInput-DUD9_g1b.cjs.map → TagInput-BVng78ON.cjs.map} +1 -1
  111. package/dist/next/{TagInput-BqNnh1L9.js → TagInput-B_VOR8-r.js} +3 -3
  112. package/dist/next/{TagInput-BqNnh1L9.js.map → TagInput-B_VOR8-r.js.map} +1 -1
  113. package/dist/next/TagInput.cjs.js +1 -1
  114. package/dist/next/TagInput.js +1 -1
  115. package/dist/next/{TextInput-BQPtN14M.js → TextInput-B00XEBiM.js} +2 -2
  116. package/dist/next/{TextInput-BQPtN14M.js.map → TextInput-B00XEBiM.js.map} +1 -1
  117. package/dist/next/{TextInput-k8U0_lSm.cjs → TextInput-D0rdRASC.cjs} +2 -2
  118. package/dist/next/{TextInput-k8U0_lSm.cjs.map → TextInput-D0rdRASC.cjs.map} +1 -1
  119. package/dist/next/TextInput.cjs.js +1 -1
  120. package/dist/next/TextInput.js +1 -1
  121. package/dist/next/ThemeInitScript-B22_wzIJ.cjs +37 -0
  122. package/dist/next/ThemeInitScript-B22_wzIJ.cjs.map +1 -0
  123. package/dist/next/ThemeInitScript-D6EpWMC9.js +38 -0
  124. package/dist/next/ThemeInitScript-D6EpWMC9.js.map +1 -0
  125. package/dist/next/ThemeInitScript.cjs.js +2 -2
  126. package/dist/next/ThemeInitScript.js +1 -1
  127. package/dist/next/{Toolbar-Bu_meSGb.cjs → Toolbar-DleUmVkR.cjs} +2 -2
  128. package/dist/next/{Toolbar-Bu_meSGb.cjs.map → Toolbar-DleUmVkR.cjs.map} +1 -1
  129. package/dist/next/{Toolbar-Dd6pf5wP.js → Toolbar-Dme9QqMY.js} +2 -2
  130. package/dist/next/{Toolbar-Dd6pf5wP.js.map → Toolbar-Dme9QqMY.js.map} +1 -1
  131. package/dist/next/Toolbar.cjs.js +1 -1
  132. package/dist/next/Toolbar.js +1 -1
  133. package/dist/next/{image-h6PDRhrT.js → image-CEz9QtOW.js} +26 -4
  134. package/dist/next/image-CEz9QtOW.js.map +1 -0
  135. package/dist/next/{image-MEZ6sESv.cjs → image-VX9Ty9NQ.cjs} +35 -13
  136. package/dist/next/image-VX9Ty9NQ.cjs.map +1 -0
  137. package/dist/next/index.cjs.js +23 -23
  138. package/dist/next/index.js +23 -23
  139. package/dist/next/{link-BY93bHEw.js → link-Bik5xH00.js} +92 -9
  140. package/dist/next/link-Bik5xH00.js.map +1 -0
  141. package/dist/next/{link-Dyf-9ObB.cjs → link-hxAaLm0Q.cjs} +93 -10
  142. package/dist/next/link-hxAaLm0Q.cjs.map +1 -0
  143. package/dist/next/{navigation-ChnNGxEG.js → navigation-DTwYCgCL.js} +2 -3
  144. package/dist/next/{navigation-ChnNGxEG.js.map → navigation-DTwYCgCL.js.map} +1 -1
  145. package/dist/next/{navigation-CcfNESvg.cjs → navigation-m012syo9.cjs} +4 -5
  146. package/dist/next/{navigation-CcfNESvg.cjs.map → navigation-m012syo9.cjs.map} +1 -1
  147. package/dist/tsconfig.build.tsbuildinfo +1 -1
  148. package/dist/types/context/ThemeContext.types.d.ts +0 -6
  149. package/dist/types/context/ThemeContext.types.d.ts.map +1 -1
  150. package/dist/types/context/ThemeInitScript.d.ts +7 -2
  151. package/dist/types/context/ThemeInitScript.d.ts.map +1 -1
  152. package/package.json +2 -3
  153. package/dist/next/ThemeInitScript-CIctCIv1.js +0 -385
  154. package/dist/next/ThemeInitScript-CIctCIv1.js.map +0 -1
  155. package/dist/next/ThemeInitScript-DqO2SVvW.cjs +0 -384
  156. package/dist/next/ThemeInitScript-DqO2SVvW.cjs.map +0 -1
  157. package/dist/next/head-manager-context.shared-runtime-7_8Oqhy0.js +0 -30
  158. package/dist/next/head-manager-context.shared-runtime-7_8Oqhy0.js.map +0 -1
  159. package/dist/next/head-manager-context.shared-runtime-Cgj8ROpJ.cjs +0 -29
  160. package/dist/next/head-manager-context.shared-runtime-Cgj8ROpJ.cjs.map +0 -1
  161. package/dist/next/image-MEZ6sESv.cjs.map +0 -1
  162. package/dist/next/image-h6PDRhrT.js.map +0 -1
  163. package/dist/next/link-BY93bHEw.js.map +0 -1
  164. package/dist/next/link-Dyf-9ObB.cjs.map +0 -1
  165. package/dist/next/request-idle-callback-B3JHNaij.js +0 -88
  166. package/dist/next/request-idle-callback-B3JHNaij.js.map +0 -1
  167. package/dist/next/request-idle-callback-BIq6SiN0.cjs +0 -87
  168. package/dist/next/request-idle-callback-BIq6SiN0.cjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
- import { I as Image } from "./image-h6PDRhrT.js";
3
- import { L as Link } from "./link-BY93bHEw.js";
2
+ import { I as Image } from "./image-CEz9QtOW.js";
3
+ import { L as Link } from "./link-Bik5xH00.js";
4
4
  import { useState, useMemo } from "react";
5
5
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
6
6
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
@@ -274,4 +274,4 @@ const Avatar = (props) => /* @__PURE__ */ jsx(
274
274
  export {
275
275
  Avatar as A
276
276
  };
277
- //# sourceMappingURL=Avatar-CKByQz4V.js.map
277
+ //# sourceMappingURL=Avatar-B3eTb_Xz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar-CKByQz4V.js","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/next/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","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Image from \"next/image\";\r\nimport Link from \"next/link\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\nimport styles from \"./Avatar.module.scss\";\r\n\r\nconst Avatar: React.FC<AvatarProps> = (props) => (\r\n <AvatarBase\r\n {...props}\r\n ImageComponent={Image}\r\n LinkComponent={Link}\r\n classMap={styles}\r\n />\r\n);\r\n\r\nexport default Avatar;\r\n"],"names":["disabled","status","outline"],"mappings":"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"}
1
+ {"version":3,"file":"Avatar-B3eTb_Xz.js","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/next/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","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Image from \"next/image\";\r\nimport Link from \"next/link\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\nimport styles from \"./Avatar.module.scss\";\r\n\r\nconst Avatar: React.FC<AvatarProps> = (props) => (\r\n <AvatarBase\r\n {...props}\r\n ImageComponent={Image}\r\n LinkComponent={Link}\r\n classMap={styles}\r\n />\r\n);\r\n\r\nexport default Avatar;\r\n"],"names":["disabled","status","outline"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const require$$2 = require("react/jsx-runtime");
3
- const image$1 = require("./image-MEZ6sESv.cjs");
4
- const link = require("./link-Dyf-9ObB.cjs");
3
+ const image$1 = require("./image-VX9Ty9NQ.cjs");
4
+ const link = require("./link-hxAaLm0Q.cjs");
5
5
  const React = require("react");
6
6
  const classNames = require("./classNames-BcWMx052.cjs");
7
7
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
@@ -273,4 +273,4 @@ const Avatar = (props) => /* @__PURE__ */ require$$2.jsx(
273
273
  }
274
274
  );
275
275
  exports.Avatar = Avatar;
276
- //# sourceMappingURL=Avatar-Cd_TqEqJ.cjs.map
276
+ //# sourceMappingURL=Avatar-BX8mh_3b.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar-Cd_TqEqJ.cjs","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/next/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","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Image from \"next/image\";\r\nimport Link from \"next/link\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\nimport styles from \"./Avatar.module.scss\";\r\n\r\nconst Avatar: React.FC<AvatarProps> = (props) => (\r\n <AvatarBase\r\n {...props}\r\n ImageComponent={Image}\r\n LinkComponent={Link}\r\n classMap={styles}\r\n />\r\n);\r\n\r\nexport default Avatar;\r\n"],"names":["jsxs","jsx","disabled","status","getDefaultSize","getDefaultShadow","outline","getDefaultTheme","useState","useMemo","combineClassNames","capitalize","Fragment","Image","Link"],"mappings":"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"}
1
+ {"version":3,"file":"Avatar-BX8mh_3b.cjs","sources":["../../src/utils/getInitials.ts","../../src/Icons/UserIcon.tsx","../../src/components/Avatar/AvatarBase.tsx","../../src/components/Avatar/next/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","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Image from \"next/image\";\r\nimport Link from \"next/link\";\r\nimport { AvatarProps } from \"../Avatar.types\";\r\nimport { AvatarBase } from \"../AvatarBase\";\r\nimport styles from \"./Avatar.module.scss\";\r\n\r\nconst Avatar: React.FC<AvatarProps> = (props) => (\r\n <AvatarBase\r\n {...props}\r\n ImageComponent={Image}\r\n LinkComponent={Link}\r\n classMap={styles}\r\n />\r\n);\r\n\r\nexport default Avatar;\r\n"],"names":["jsxs","jsx","disabled","status","getDefaultSize","getDefaultShadow","outline","getDefaultTheme","useState","useMemo","combineClassNames","capitalize","Fragment","Image","Link"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Avatar = require("./Avatar-Cd_TqEqJ.cjs");
2
+ const Avatar = require("./Avatar-BX8mh_3b.cjs");
3
3
  module.exports = Avatar.Avatar;
4
4
  //# sourceMappingURL=Avatar.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { A } from "./Avatar-CKByQz4V.js";
1
+ import { A } from "./Avatar-B3eTb_Xz.js";
2
2
  export {
3
3
  A as default
4
4
  };
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  const require$$2 = require("react/jsx-runtime");
3
- const link$1 = require("./link-Dyf-9ObB.cjs");
3
+ const link$1 = require("./link-hxAaLm0Q.cjs");
4
4
  const React = require("react");
5
5
  const classNames = require("./classNames-BcWMx052.cjs");
6
6
  const ArrowRightIcon = require("./ArrowRightIcon-BVb75OpX.cjs");
7
7
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
8
8
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
9
- const Button = require("./Button-CksDHAGT.cjs");
9
+ const Button = require("./Button-G1PFBSqU.cjs");
10
10
  const breadcrumbs = "_breadcrumbs_18437_68";
11
11
  const roundNone = "_roundNone_18437_80";
12
12
  const roundSmall = "_roundSmall_18437_84";
@@ -208,4 +208,4 @@ const Breadcrumbs = (props) => {
208
208
  };
209
209
  exports.Breadcrumbs = Breadcrumbs;
210
210
  exports.ELLIPSIS_LABEL = ELLIPSIS_LABEL;
211
- //# sourceMappingURL=Breadcrumbs-pw9Ow6LT.cjs.map
211
+ //# sourceMappingURL=Breadcrumbs-7MNPobUi.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs-pw9Ow6LT.cjs","sources":["../../src/components/Breadcrumbs/Breadcrumbs.types.ts","../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/next/Breadcrumbs.tsx"],"sourcesContent":["import {\r\n RoundingType,\r\n ShadowType,\r\n SizeType,\r\n StateType,\r\n ThemeType,\r\n} from \"@/types/types\";\r\n\r\n/**\r\n * A breadcrumb item used to define a single step in the navigation path.\r\n */\r\nexport interface Breadcrumb {\r\n /**\r\n * The display label for the breadcrumb.\r\n */\r\n label: string;\r\n\r\n /**\r\n * Optional URL the breadcrumb should link to.\r\n * If not provided, it is rendered as plain text.\r\n */\r\n href?: string;\r\n}\r\n\r\n/**\r\n * Props for the Breadcrumbs component.\r\n */\r\nexport interface BreadcrumbsProps {\r\n /**\r\n * An array of breadcrumb items.\r\n */\r\n items: Breadcrumb[];\r\n\r\n /**\r\n * Disables interaction and styles as disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional custom separator node between breadcrumb items.\r\n * Defaults to a right chevron icon.\r\n */\r\n separator?: React.ReactNode;\r\n\r\n /**\r\n * Theme style to apply to the breadcrumbs\r\n * ('primary' | 'secondary' | 'tertiary' | 'quaternary' | 'clear').\r\n */\r\n theme?: ThemeType;\r\n\r\n /**\r\n * Rounding style to apply to the breadcrumbs\r\n * ('none' | 'small' | 'medium' | 'large' | 'full').\r\n */\r\n rounding?: RoundingType;\r\n\r\n /**\r\n * Shadow style to apply to the breadcrumbs\r\n * ('none' | 'light' | 'medium' | 'strong' | 'intense').\r\n */\r\n shadow?: ShadowType;\r\n\r\n /**\r\n * State of the breadcrumbs\r\n * ('success' | 'error' | 'warning' | 'disabled' | '').\r\n * Used for visual feedback.\r\n */\r\n state?: StateType;\r\n\r\n /**\r\n * Size of the breadcrumbs\r\n * ('xs' | 'small' | 'medium' | 'large' | 'xl').\r\n */\r\n size?: SizeType;\r\n\r\n /**\r\n * Additional class name for custom styling.\r\n */\r\n className?: string;\r\n\r\n /**\r\n * Whether to use the outline style.\r\n */\r\n outline?: boolean;\r\n\r\n /**\r\n * Maximum number of visible items before collapsing into an ellipsis.\r\n */\r\n maxVisible?: number;\r\n\r\n /**\r\n * Optional test ID for testing frameworks.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\n/**\r\n * Label used to represent collapsed breadcrumb items.\r\n */\r\nexport const ELLIPSIS_LABEL = \"…\";\r\n","import React, { useMemo, useState } from \"react\";\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbsProps,\r\n ELLIPSIS_LABEL,\r\n} from \"./Breadcrumbs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { ArrowRightIcon } from \"../../Icons/index\";\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 BreadcrumbsBaseProps extends BreadcrumbsProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n ButtonComponent: React.ElementType;\r\n}\r\n\r\nexport const BreadcrumbsBase: React.FC<BreadcrumbsBaseProps> = ({\r\n items,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n separator,\r\n classMap,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline = false,\r\n className = \"\",\r\n maxVisible,\r\n LinkComponent = \"a\",\r\n ButtonComponent,\r\n \"data-testid\": testId = \"breadcrumbs\",\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const handleExpand = () => setIsExpanded(true);\r\n\r\n const visibleItems: Breadcrumb[] = useMemo(() => {\r\n if (isExpanded || !maxVisible || items.length <= maxVisible) return items;\r\n const first = items[0];\r\n const lastItems = items.slice(items.length - (maxVisible - 2));\r\n return [first, { label: ELLIPSIS_LABEL }, ...lastItems];\r\n }, [items, isExpanded, maxVisible]);\r\n\r\n const breadcrumbsClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.breadcrumbs,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n className\r\n ),\r\n [theme, size, outline, className]\r\n );\r\n\r\n return (\r\n <nav\r\n aria-label=\"Breadcrumb\"\r\n data-testid={testId ? `${testId}-nav-container` : undefined}\r\n className={breadcrumbsClass}\r\n itemScope\r\n role=\"navigation\"\r\n itemType=\"https://schema.org/BreadcrumbList\"\r\n >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n >\r\n {visibleItems.map((item, index) => {\r\n const isLast = index === visibleItems.length - 1;\r\n const isEllipsis = item.label === ELLIPSIS_LABEL;\r\n\r\n const itemClassName = combineClassNames(\r\n classMap.item,\r\n isExpanded && !isEllipsis && classMap.item_animate,\r\n isLast && classMap.item_active\r\n );\r\n\r\n return (\r\n <li\r\n data-testid={testId ? `${testId}-nav-item` : undefined}\r\n key={`${item.label}-${item.href ?? index}`}\r\n className={itemClassName}\r\n itemProp=\"itemListElement\"\r\n itemScope\r\n itemType=\"https://schema.org/ListItem\"\r\n aria-current={isLast ? \"page\" : undefined}\r\n >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"small\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show more breadcrumbs\"\r\n onClick={handleExpand}\r\n tabIndex={0}\r\n data-testid={testId ? `${testId}-ellipsis` : undefined}\r\n >\r\n {item.label}\r\n </ButtonComponent>\r\n ) : item.href && !isLast ? (\r\n <LinkComponent\r\n href={item.href}\r\n itemProp=\"item\"\r\n className={classMap.link}\r\n title={item.label}\r\n data-testid={testId ? `${testId}-nav-item-label` : undefined}\r\n >\r\n <span itemProp=\"name\" className={classMap.link_label}>\r\n {item.label}\r\n </span>\r\n </LinkComponent>\r\n ) : (\r\n <span\r\n className={classMap.current}\r\n itemProp=\"name\"\r\n aria-current=\"page\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-current` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n )}\r\n\r\n {!isLast && (\r\n <span className={classMap.separator} aria-hidden=\"true\">\r\n {separator ?? <ArrowRightIcon />}\r\n </span>\r\n )}\r\n <meta itemProp=\"position\" content={`${index + 1}`} />\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n};\r\n\r\nBreadcrumbsBase.displayName = \"BreadcrumbsBase\";\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Breadcrumbs.module.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport { Button } from \"../../../index.next\";\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase\r\n {...props}\r\n classMap={styles}\r\n LinkComponent={Link}\r\n ButtonComponent={Button}\r\n />\r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","separator","disabled","getDefaultSize","outline","useState","useMemo","combineClassNames","capitalize","jsx","item","jsxs","ArrowRightIcon","Link","Button"],"mappings":"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"}
1
+ {"version":3,"file":"Breadcrumbs-7MNPobUi.cjs","sources":["../../src/components/Breadcrumbs/Breadcrumbs.types.ts","../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/next/Breadcrumbs.tsx"],"sourcesContent":["import {\r\n RoundingType,\r\n ShadowType,\r\n SizeType,\r\n StateType,\r\n ThemeType,\r\n} from \"@/types/types\";\r\n\r\n/**\r\n * A breadcrumb item used to define a single step in the navigation path.\r\n */\r\nexport interface Breadcrumb {\r\n /**\r\n * The display label for the breadcrumb.\r\n */\r\n label: string;\r\n\r\n /**\r\n * Optional URL the breadcrumb should link to.\r\n * If not provided, it is rendered as plain text.\r\n */\r\n href?: string;\r\n}\r\n\r\n/**\r\n * Props for the Breadcrumbs component.\r\n */\r\nexport interface BreadcrumbsProps {\r\n /**\r\n * An array of breadcrumb items.\r\n */\r\n items: Breadcrumb[];\r\n\r\n /**\r\n * Disables interaction and styles as disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional custom separator node between breadcrumb items.\r\n * Defaults to a right chevron icon.\r\n */\r\n separator?: React.ReactNode;\r\n\r\n /**\r\n * Theme style to apply to the breadcrumbs\r\n * ('primary' | 'secondary' | 'tertiary' | 'quaternary' | 'clear').\r\n */\r\n theme?: ThemeType;\r\n\r\n /**\r\n * Rounding style to apply to the breadcrumbs\r\n * ('none' | 'small' | 'medium' | 'large' | 'full').\r\n */\r\n rounding?: RoundingType;\r\n\r\n /**\r\n * Shadow style to apply to the breadcrumbs\r\n * ('none' | 'light' | 'medium' | 'strong' | 'intense').\r\n */\r\n shadow?: ShadowType;\r\n\r\n /**\r\n * State of the breadcrumbs\r\n * ('success' | 'error' | 'warning' | 'disabled' | '').\r\n * Used for visual feedback.\r\n */\r\n state?: StateType;\r\n\r\n /**\r\n * Size of the breadcrumbs\r\n * ('xs' | 'small' | 'medium' | 'large' | 'xl').\r\n */\r\n size?: SizeType;\r\n\r\n /**\r\n * Additional class name for custom styling.\r\n */\r\n className?: string;\r\n\r\n /**\r\n * Whether to use the outline style.\r\n */\r\n outline?: boolean;\r\n\r\n /**\r\n * Maximum number of visible items before collapsing into an ellipsis.\r\n */\r\n maxVisible?: number;\r\n\r\n /**\r\n * Optional test ID for testing frameworks.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\n/**\r\n * Label used to represent collapsed breadcrumb items.\r\n */\r\nexport const ELLIPSIS_LABEL = \"…\";\r\n","import React, { useMemo, useState } from \"react\";\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbsProps,\r\n ELLIPSIS_LABEL,\r\n} from \"./Breadcrumbs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { ArrowRightIcon } from \"../../Icons/index\";\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 BreadcrumbsBaseProps extends BreadcrumbsProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n ButtonComponent: React.ElementType;\r\n}\r\n\r\nexport const BreadcrumbsBase: React.FC<BreadcrumbsBaseProps> = ({\r\n items,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n separator,\r\n classMap,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline = false,\r\n className = \"\",\r\n maxVisible,\r\n LinkComponent = \"a\",\r\n ButtonComponent,\r\n \"data-testid\": testId = \"breadcrumbs\",\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const handleExpand = () => setIsExpanded(true);\r\n\r\n const visibleItems: Breadcrumb[] = useMemo(() => {\r\n if (isExpanded || !maxVisible || items.length <= maxVisible) return items;\r\n const first = items[0];\r\n const lastItems = items.slice(items.length - (maxVisible - 2));\r\n return [first, { label: ELLIPSIS_LABEL }, ...lastItems];\r\n }, [items, isExpanded, maxVisible]);\r\n\r\n const breadcrumbsClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.breadcrumbs,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n className\r\n ),\r\n [theme, size, outline, className]\r\n );\r\n\r\n return (\r\n <nav\r\n aria-label=\"Breadcrumb\"\r\n data-testid={testId ? `${testId}-nav-container` : undefined}\r\n className={breadcrumbsClass}\r\n itemScope\r\n role=\"navigation\"\r\n itemType=\"https://schema.org/BreadcrumbList\"\r\n >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n >\r\n {visibleItems.map((item, index) => {\r\n const isLast = index === visibleItems.length - 1;\r\n const isEllipsis = item.label === ELLIPSIS_LABEL;\r\n\r\n const itemClassName = combineClassNames(\r\n classMap.item,\r\n isExpanded && !isEllipsis && classMap.item_animate,\r\n isLast && classMap.item_active\r\n );\r\n\r\n return (\r\n <li\r\n data-testid={testId ? `${testId}-nav-item` : undefined}\r\n key={`${item.label}-${item.href ?? index}`}\r\n className={itemClassName}\r\n itemProp=\"itemListElement\"\r\n itemScope\r\n itemType=\"https://schema.org/ListItem\"\r\n aria-current={isLast ? \"page\" : undefined}\r\n >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"small\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show more breadcrumbs\"\r\n onClick={handleExpand}\r\n tabIndex={0}\r\n data-testid={testId ? `${testId}-ellipsis` : undefined}\r\n >\r\n {item.label}\r\n </ButtonComponent>\r\n ) : item.href && !isLast ? (\r\n <LinkComponent\r\n href={item.href}\r\n itemProp=\"item\"\r\n className={classMap.link}\r\n title={item.label}\r\n data-testid={testId ? `${testId}-nav-item-label` : undefined}\r\n >\r\n <span itemProp=\"name\" className={classMap.link_label}>\r\n {item.label}\r\n </span>\r\n </LinkComponent>\r\n ) : (\r\n <span\r\n className={classMap.current}\r\n itemProp=\"name\"\r\n aria-current=\"page\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-current` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n )}\r\n\r\n {!isLast && (\r\n <span className={classMap.separator} aria-hidden=\"true\">\r\n {separator ?? <ArrowRightIcon />}\r\n </span>\r\n )}\r\n <meta itemProp=\"position\" content={`${index + 1}`} />\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n};\r\n\r\nBreadcrumbsBase.displayName = \"BreadcrumbsBase\";\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Breadcrumbs.module.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport { Button } from \"../../../index.next\";\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase\r\n {...props}\r\n classMap={styles}\r\n LinkComponent={Link}\r\n ButtonComponent={Button}\r\n />\r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","separator","disabled","getDefaultSize","outline","useState","useMemo","combineClassNames","capitalize","jsx","item","jsxs","ArrowRightIcon","Link","Button"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { L as Link } from "./link-BY93bHEw.js";
2
+ import { L as Link } from "./link-Bik5xH00.js";
3
3
  import { useState, useMemo } from "react";
4
4
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
5
5
  import { A as ArrowRightIcon } from "./ArrowRightIcon-BYQv5XS8.js";
6
6
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
7
7
  import { a as getDefaultRounding, b as getDefaultShadow, c as getDefaultSize, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
8
- import { B as Button } from "./Button-DUYFGciR.js";
8
+ import { B as Button } from "./Button-ClWB5gZW.js";
9
9
  const breadcrumbs = "_breadcrumbs_18437_68";
10
10
  const roundNone = "_roundNone_18437_80";
11
11
  const roundSmall = "_roundSmall_18437_84";
@@ -209,4 +209,4 @@ export {
209
209
  Breadcrumbs as B,
210
210
  ELLIPSIS_LABEL as E
211
211
  };
212
- //# sourceMappingURL=Breadcrumbs-CsQGqIFq.js.map
212
+ //# sourceMappingURL=Breadcrumbs-BM-yj_kq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs-CsQGqIFq.js","sources":["../../src/components/Breadcrumbs/Breadcrumbs.types.ts","../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/next/Breadcrumbs.tsx"],"sourcesContent":["import {\r\n RoundingType,\r\n ShadowType,\r\n SizeType,\r\n StateType,\r\n ThemeType,\r\n} from \"@/types/types\";\r\n\r\n/**\r\n * A breadcrumb item used to define a single step in the navigation path.\r\n */\r\nexport interface Breadcrumb {\r\n /**\r\n * The display label for the breadcrumb.\r\n */\r\n label: string;\r\n\r\n /**\r\n * Optional URL the breadcrumb should link to.\r\n * If not provided, it is rendered as plain text.\r\n */\r\n href?: string;\r\n}\r\n\r\n/**\r\n * Props for the Breadcrumbs component.\r\n */\r\nexport interface BreadcrumbsProps {\r\n /**\r\n * An array of breadcrumb items.\r\n */\r\n items: Breadcrumb[];\r\n\r\n /**\r\n * Disables interaction and styles as disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional custom separator node between breadcrumb items.\r\n * Defaults to a right chevron icon.\r\n */\r\n separator?: React.ReactNode;\r\n\r\n /**\r\n * Theme style to apply to the breadcrumbs\r\n * ('primary' | 'secondary' | 'tertiary' | 'quaternary' | 'clear').\r\n */\r\n theme?: ThemeType;\r\n\r\n /**\r\n * Rounding style to apply to the breadcrumbs\r\n * ('none' | 'small' | 'medium' | 'large' | 'full').\r\n */\r\n rounding?: RoundingType;\r\n\r\n /**\r\n * Shadow style to apply to the breadcrumbs\r\n * ('none' | 'light' | 'medium' | 'strong' | 'intense').\r\n */\r\n shadow?: ShadowType;\r\n\r\n /**\r\n * State of the breadcrumbs\r\n * ('success' | 'error' | 'warning' | 'disabled' | '').\r\n * Used for visual feedback.\r\n */\r\n state?: StateType;\r\n\r\n /**\r\n * Size of the breadcrumbs\r\n * ('xs' | 'small' | 'medium' | 'large' | 'xl').\r\n */\r\n size?: SizeType;\r\n\r\n /**\r\n * Additional class name for custom styling.\r\n */\r\n className?: string;\r\n\r\n /**\r\n * Whether to use the outline style.\r\n */\r\n outline?: boolean;\r\n\r\n /**\r\n * Maximum number of visible items before collapsing into an ellipsis.\r\n */\r\n maxVisible?: number;\r\n\r\n /**\r\n * Optional test ID for testing frameworks.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\n/**\r\n * Label used to represent collapsed breadcrumb items.\r\n */\r\nexport const ELLIPSIS_LABEL = \"…\";\r\n","import React, { useMemo, useState } from \"react\";\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbsProps,\r\n ELLIPSIS_LABEL,\r\n} from \"./Breadcrumbs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { ArrowRightIcon } from \"../../Icons/index\";\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 BreadcrumbsBaseProps extends BreadcrumbsProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n ButtonComponent: React.ElementType;\r\n}\r\n\r\nexport const BreadcrumbsBase: React.FC<BreadcrumbsBaseProps> = ({\r\n items,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n separator,\r\n classMap,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline = false,\r\n className = \"\",\r\n maxVisible,\r\n LinkComponent = \"a\",\r\n ButtonComponent,\r\n \"data-testid\": testId = \"breadcrumbs\",\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const handleExpand = () => setIsExpanded(true);\r\n\r\n const visibleItems: Breadcrumb[] = useMemo(() => {\r\n if (isExpanded || !maxVisible || items.length <= maxVisible) return items;\r\n const first = items[0];\r\n const lastItems = items.slice(items.length - (maxVisible - 2));\r\n return [first, { label: ELLIPSIS_LABEL }, ...lastItems];\r\n }, [items, isExpanded, maxVisible]);\r\n\r\n const breadcrumbsClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.breadcrumbs,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n className\r\n ),\r\n [theme, size, outline, className]\r\n );\r\n\r\n return (\r\n <nav\r\n aria-label=\"Breadcrumb\"\r\n data-testid={testId ? `${testId}-nav-container` : undefined}\r\n className={breadcrumbsClass}\r\n itemScope\r\n role=\"navigation\"\r\n itemType=\"https://schema.org/BreadcrumbList\"\r\n >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n >\r\n {visibleItems.map((item, index) => {\r\n const isLast = index === visibleItems.length - 1;\r\n const isEllipsis = item.label === ELLIPSIS_LABEL;\r\n\r\n const itemClassName = combineClassNames(\r\n classMap.item,\r\n isExpanded && !isEllipsis && classMap.item_animate,\r\n isLast && classMap.item_active\r\n );\r\n\r\n return (\r\n <li\r\n data-testid={testId ? `${testId}-nav-item` : undefined}\r\n key={`${item.label}-${item.href ?? index}`}\r\n className={itemClassName}\r\n itemProp=\"itemListElement\"\r\n itemScope\r\n itemType=\"https://schema.org/ListItem\"\r\n aria-current={isLast ? \"page\" : undefined}\r\n >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"small\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show more breadcrumbs\"\r\n onClick={handleExpand}\r\n tabIndex={0}\r\n data-testid={testId ? `${testId}-ellipsis` : undefined}\r\n >\r\n {item.label}\r\n </ButtonComponent>\r\n ) : item.href && !isLast ? (\r\n <LinkComponent\r\n href={item.href}\r\n itemProp=\"item\"\r\n className={classMap.link}\r\n title={item.label}\r\n data-testid={testId ? `${testId}-nav-item-label` : undefined}\r\n >\r\n <span itemProp=\"name\" className={classMap.link_label}>\r\n {item.label}\r\n </span>\r\n </LinkComponent>\r\n ) : (\r\n <span\r\n className={classMap.current}\r\n itemProp=\"name\"\r\n aria-current=\"page\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-current` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n )}\r\n\r\n {!isLast && (\r\n <span className={classMap.separator} aria-hidden=\"true\">\r\n {separator ?? <ArrowRightIcon />}\r\n </span>\r\n )}\r\n <meta itemProp=\"position\" content={`${index + 1}`} />\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n};\r\n\r\nBreadcrumbsBase.displayName = \"BreadcrumbsBase\";\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Breadcrumbs.module.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport { Button } from \"../../../index.next\";\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase\r\n {...props}\r\n classMap={styles}\r\n LinkComponent={Link}\r\n ButtonComponent={Button}\r\n />\r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n"],"names":["separator","disabled","outline","item"],"mappings":"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"}
1
+ {"version":3,"file":"Breadcrumbs-BM-yj_kq.js","sources":["../../src/components/Breadcrumbs/Breadcrumbs.types.ts","../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/next/Breadcrumbs.tsx"],"sourcesContent":["import {\r\n RoundingType,\r\n ShadowType,\r\n SizeType,\r\n StateType,\r\n ThemeType,\r\n} from \"@/types/types\";\r\n\r\n/**\r\n * A breadcrumb item used to define a single step in the navigation path.\r\n */\r\nexport interface Breadcrumb {\r\n /**\r\n * The display label for the breadcrumb.\r\n */\r\n label: string;\r\n\r\n /**\r\n * Optional URL the breadcrumb should link to.\r\n * If not provided, it is rendered as plain text.\r\n */\r\n href?: string;\r\n}\r\n\r\n/**\r\n * Props for the Breadcrumbs component.\r\n */\r\nexport interface BreadcrumbsProps {\r\n /**\r\n * An array of breadcrumb items.\r\n */\r\n items: Breadcrumb[];\r\n\r\n /**\r\n * Disables interaction and styles as disabled.\r\n */\r\n disabled?: boolean;\r\n\r\n /**\r\n * Optional custom separator node between breadcrumb items.\r\n * Defaults to a right chevron icon.\r\n */\r\n separator?: React.ReactNode;\r\n\r\n /**\r\n * Theme style to apply to the breadcrumbs\r\n * ('primary' | 'secondary' | 'tertiary' | 'quaternary' | 'clear').\r\n */\r\n theme?: ThemeType;\r\n\r\n /**\r\n * Rounding style to apply to the breadcrumbs\r\n * ('none' | 'small' | 'medium' | 'large' | 'full').\r\n */\r\n rounding?: RoundingType;\r\n\r\n /**\r\n * Shadow style to apply to the breadcrumbs\r\n * ('none' | 'light' | 'medium' | 'strong' | 'intense').\r\n */\r\n shadow?: ShadowType;\r\n\r\n /**\r\n * State of the breadcrumbs\r\n * ('success' | 'error' | 'warning' | 'disabled' | '').\r\n * Used for visual feedback.\r\n */\r\n state?: StateType;\r\n\r\n /**\r\n * Size of the breadcrumbs\r\n * ('xs' | 'small' | 'medium' | 'large' | 'xl').\r\n */\r\n size?: SizeType;\r\n\r\n /**\r\n * Additional class name for custom styling.\r\n */\r\n className?: string;\r\n\r\n /**\r\n * Whether to use the outline style.\r\n */\r\n outline?: boolean;\r\n\r\n /**\r\n * Maximum number of visible items before collapsing into an ellipsis.\r\n */\r\n maxVisible?: number;\r\n\r\n /**\r\n * Optional test ID for testing frameworks.\r\n */\r\n \"data-testid\"?: string;\r\n}\r\n\r\n/**\r\n * Label used to represent collapsed breadcrumb items.\r\n */\r\nexport const ELLIPSIS_LABEL = \"…\";\r\n","import React, { useMemo, useState } from \"react\";\r\nimport {\r\n Breadcrumb,\r\n BreadcrumbsProps,\r\n ELLIPSIS_LABEL,\r\n} from \"./Breadcrumbs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { ArrowRightIcon } from \"../../Icons/index\";\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 BreadcrumbsBaseProps extends BreadcrumbsProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n ButtonComponent: React.ElementType;\r\n}\r\n\r\nexport const BreadcrumbsBase: React.FC<BreadcrumbsBaseProps> = ({\r\n items,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n separator,\r\n classMap,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline = false,\r\n className = \"\",\r\n maxVisible,\r\n LinkComponent = \"a\",\r\n ButtonComponent,\r\n \"data-testid\": testId = \"breadcrumbs\",\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const handleExpand = () => setIsExpanded(true);\r\n\r\n const visibleItems: Breadcrumb[] = useMemo(() => {\r\n if (isExpanded || !maxVisible || items.length <= maxVisible) return items;\r\n const first = items[0];\r\n const lastItems = items.slice(items.length - (maxVisible - 2));\r\n return [first, { label: ELLIPSIS_LABEL }, ...lastItems];\r\n }, [items, isExpanded, maxVisible]);\r\n\r\n const breadcrumbsClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.breadcrumbs,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n className\r\n ),\r\n [theme, size, outline, className]\r\n );\r\n\r\n return (\r\n <nav\r\n aria-label=\"Breadcrumb\"\r\n data-testid={testId ? `${testId}-nav-container` : undefined}\r\n className={breadcrumbsClass}\r\n itemScope\r\n role=\"navigation\"\r\n itemType=\"https://schema.org/BreadcrumbList\"\r\n >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n >\r\n {visibleItems.map((item, index) => {\r\n const isLast = index === visibleItems.length - 1;\r\n const isEllipsis = item.label === ELLIPSIS_LABEL;\r\n\r\n const itemClassName = combineClassNames(\r\n classMap.item,\r\n isExpanded && !isEllipsis && classMap.item_animate,\r\n isLast && classMap.item_active\r\n );\r\n\r\n return (\r\n <li\r\n data-testid={testId ? `${testId}-nav-item` : undefined}\r\n key={`${item.label}-${item.href ?? index}`}\r\n className={itemClassName}\r\n itemProp=\"itemListElement\"\r\n itemScope\r\n itemType=\"https://schema.org/ListItem\"\r\n aria-current={isLast ? \"page\" : undefined}\r\n >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"small\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show more breadcrumbs\"\r\n onClick={handleExpand}\r\n tabIndex={0}\r\n data-testid={testId ? `${testId}-ellipsis` : undefined}\r\n >\r\n {item.label}\r\n </ButtonComponent>\r\n ) : item.href && !isLast ? (\r\n <LinkComponent\r\n href={item.href}\r\n itemProp=\"item\"\r\n className={classMap.link}\r\n title={item.label}\r\n data-testid={testId ? `${testId}-nav-item-label` : undefined}\r\n >\r\n <span itemProp=\"name\" className={classMap.link_label}>\r\n {item.label}\r\n </span>\r\n </LinkComponent>\r\n ) : (\r\n <span\r\n className={classMap.current}\r\n itemProp=\"name\"\r\n aria-current=\"page\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-current` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n )}\r\n\r\n {!isLast && (\r\n <span className={classMap.separator} aria-hidden=\"true\">\r\n {separator ?? <ArrowRightIcon />}\r\n </span>\r\n )}\r\n <meta itemProp=\"position\" content={`${index + 1}`} />\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n};\r\n\r\nBreadcrumbsBase.displayName = \"BreadcrumbsBase\";\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Breadcrumbs.module.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport { Button } from \"../../../index.next\";\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase\r\n {...props}\r\n classMap={styles}\r\n LinkComponent={Link}\r\n ButtonComponent={Button}\r\n />\r\n );\r\n};\r\n\r\nexport default Breadcrumbs;\r\n"],"names":["separator","disabled","outline","item"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const Breadcrumbs = require("./Breadcrumbs-pw9Ow6LT.cjs");
3
+ const Breadcrumbs = require("./Breadcrumbs-7MNPobUi.cjs");
4
4
  exports.ELLIPSIS_LABEL = Breadcrumbs.ELLIPSIS_LABEL;
5
5
  exports.default = Breadcrumbs.Breadcrumbs;
6
6
  //# sourceMappingURL=Breadcrumbs.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { E, B } from "./Breadcrumbs-CsQGqIFq.js";
1
+ import { E, B } from "./Breadcrumbs-BM-yj_kq.js";
2
2
  export {
3
3
  E as ELLIPSIS_LABEL,
4
4
  B as default
@@ -1,5 +1,5 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import { L as Link } from "./link-BY93bHEw.js";
2
+ import { L as Link } from "./link-Bik5xH00.js";
3
3
  import { forwardRef, useMemo } from "react";
4
4
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
5
5
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
@@ -205,4 +205,4 @@ const Button = (props) => /* @__PURE__ */ jsx(ButtonBase, { ...props, classMap:
205
205
  export {
206
206
  Button as B
207
207
  };
208
- //# sourceMappingURL=Button-DUYFGciR.js.map
208
+ //# sourceMappingURL=Button-ClWB5gZW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button-DUYFGciR.js","sources":["../../src/components/Button/ButtonBase.tsx","../../src/components/Button/next/Button.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { ButtonProps } from \"./Button.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 ButtonBaseProps extends ButtonProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n}\r\n\r\nconst ButtonBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonBaseProps\r\n>(\r\n (\r\n {\r\n icon: Icon,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n onClick,\r\n type = \"button\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n children,\r\n className = \"\",\r\n disabled = false,\r\n ariaLabel,\r\n href,\r\n isExternal = false,\r\n outline = false,\r\n size = getDefaultSize(),\r\n loading = false,\r\n fullWidth = false,\r\n \"data-testid\": testId = \"button\",\r\n classMap,\r\n LinkComponent = \"a\",\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const computedAriaLabel =\r\n ariaLabel || (typeof children === \"string\" ? children : \"Button\");\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.button,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n outline && classMap.outline,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n fullWidth && classMap.fullWidth,\r\n disabled && classMap.disabled,\r\n className\r\n ),\r\n [theme, outline, size, fullWidth, disabled, className]\r\n );\r\n\r\n const sharedProps = {\r\n \"aria-label\": computedAriaLabel,\r\n \"aria-busy\": loading || undefined,\r\n \"aria-disabled\": disabled || undefined,\r\n \"data-testid\": testId,\r\n tabIndex: disabled ? -1 : 0,\r\n onClick: disabled ? undefined : onClick,\r\n };\r\n\r\n const content = (\r\n <>\r\n {Icon && (\r\n <span\r\n className={classMap.buttonIcon}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n <Icon className={classMap.icon} />\r\n </span>\r\n )}\r\n <span\r\n className={classMap.buttonLabel}\r\n data-testid={testId ? `${testId}-loading` : undefined}\r\n >\r\n {loading ? (\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n ) : (\r\n children\r\n )}\r\n </span>\r\n </>\r\n );\r\n\r\n if (href && isExternal) {\r\n return (\r\n <a\r\n href={href}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n role=\"button\"\r\n className={combineClassNames(combinedClassName, classMap.link)}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n if (href && !isExternal) {\r\n return (\r\n <LinkComponent\r\n href={href}\r\n role=\"button\"\r\n className={combineClassNames(combinedClassName, classMap.link)}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n ref={ref as React.Ref<HTMLButtonElement>}\r\n type={type}\r\n className={combinedClassName}\r\n disabled={disabled}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </button>\r\n );\r\n }\r\n);\r\n\r\nButtonBase.displayName = \"ButtonBase\";\r\n\r\nexport default ButtonBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Button.module.scss\";\r\nimport ButtonBase from \"../ButtonBase\";\r\nimport { ButtonProps } from \"../Button.types\";\r\n\r\nconst Button: React.FC<ButtonProps> = (props) => (\r\n <ButtonBase {...props} classMap={styles} LinkComponent={Link} />\r\n);\r\n\r\nexport default Button;\r\n"],"names":["disabled","outline","fullWidth"],"mappings":"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"}
1
+ {"version":3,"file":"Button-ClWB5gZW.js","sources":["../../src/components/Button/ButtonBase.tsx","../../src/components/Button/next/Button.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { ButtonProps } from \"./Button.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 ButtonBaseProps extends ButtonProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n}\r\n\r\nconst ButtonBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonBaseProps\r\n>(\r\n (\r\n {\r\n icon: Icon,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n onClick,\r\n type = \"button\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n children,\r\n className = \"\",\r\n disabled = false,\r\n ariaLabel,\r\n href,\r\n isExternal = false,\r\n outline = false,\r\n size = getDefaultSize(),\r\n loading = false,\r\n fullWidth = false,\r\n \"data-testid\": testId = \"button\",\r\n classMap,\r\n LinkComponent = \"a\",\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const computedAriaLabel =\r\n ariaLabel || (typeof children === \"string\" ? children : \"Button\");\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.button,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n outline && classMap.outline,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n fullWidth && classMap.fullWidth,\r\n disabled && classMap.disabled,\r\n className\r\n ),\r\n [theme, outline, size, fullWidth, disabled, className]\r\n );\r\n\r\n const sharedProps = {\r\n \"aria-label\": computedAriaLabel,\r\n \"aria-busy\": loading || undefined,\r\n \"aria-disabled\": disabled || undefined,\r\n \"data-testid\": testId,\r\n tabIndex: disabled ? -1 : 0,\r\n onClick: disabled ? undefined : onClick,\r\n };\r\n\r\n const content = (\r\n <>\r\n {Icon && (\r\n <span\r\n className={classMap.buttonIcon}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n <Icon className={classMap.icon} />\r\n </span>\r\n )}\r\n <span\r\n className={classMap.buttonLabel}\r\n data-testid={testId ? `${testId}-loading` : undefined}\r\n >\r\n {loading ? (\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n ) : (\r\n children\r\n )}\r\n </span>\r\n </>\r\n );\r\n\r\n if (href && isExternal) {\r\n return (\r\n <a\r\n href={href}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n role=\"button\"\r\n className={combineClassNames(combinedClassName, classMap.link)}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n if (href && !isExternal) {\r\n return (\r\n <LinkComponent\r\n href={href}\r\n role=\"button\"\r\n className={combineClassNames(combinedClassName, classMap.link)}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n ref={ref as React.Ref<HTMLButtonElement>}\r\n type={type}\r\n className={combinedClassName}\r\n disabled={disabled}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </button>\r\n );\r\n }\r\n);\r\n\r\nButtonBase.displayName = \"ButtonBase\";\r\n\r\nexport default ButtonBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Button.module.scss\";\r\nimport ButtonBase from \"../ButtonBase\";\r\nimport { ButtonProps } from \"../Button.types\";\r\n\r\nconst Button: React.FC<ButtonProps> = (props) => (\r\n <ButtonBase {...props} classMap={styles} LinkComponent={Link} />\r\n);\r\n\r\nexport default Button;\r\n"],"names":["disabled","outline","fullWidth"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  const require$$2 = require("react/jsx-runtime");
3
- const link = require("./link-Dyf-9ObB.cjs");
3
+ const link = require("./link-hxAaLm0Q.cjs");
4
4
  const React = require("react");
5
5
  const classNames = require("./classNames-BcWMx052.cjs");
6
6
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
@@ -204,4 +204,4 @@ const ButtonBase = React.forwardRef(
204
204
  ButtonBase.displayName = "ButtonBase";
205
205
  const Button = (props) => /* @__PURE__ */ require$$2.jsx(ButtonBase, { ...props, classMap: styles, LinkComponent: link.Link });
206
206
  exports.Button = Button;
207
- //# sourceMappingURL=Button-CksDHAGT.cjs.map
207
+ //# sourceMappingURL=Button-G1PFBSqU.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Button-CksDHAGT.cjs","sources":["../../src/components/Button/ButtonBase.tsx","../../src/components/Button/next/Button.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { ButtonProps } from \"./Button.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 ButtonBaseProps extends ButtonProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n}\r\n\r\nconst ButtonBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonBaseProps\r\n>(\r\n (\r\n {\r\n icon: Icon,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n onClick,\r\n type = \"button\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n children,\r\n className = \"\",\r\n disabled = false,\r\n ariaLabel,\r\n href,\r\n isExternal = false,\r\n outline = false,\r\n size = getDefaultSize(),\r\n loading = false,\r\n fullWidth = false,\r\n \"data-testid\": testId = \"button\",\r\n classMap,\r\n LinkComponent = \"a\",\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const computedAriaLabel =\r\n ariaLabel || (typeof children === \"string\" ? children : \"Button\");\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.button,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n outline && classMap.outline,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n fullWidth && classMap.fullWidth,\r\n disabled && classMap.disabled,\r\n className\r\n ),\r\n [theme, outline, size, fullWidth, disabled, className]\r\n );\r\n\r\n const sharedProps = {\r\n \"aria-label\": computedAriaLabel,\r\n \"aria-busy\": loading || undefined,\r\n \"aria-disabled\": disabled || undefined,\r\n \"data-testid\": testId,\r\n tabIndex: disabled ? -1 : 0,\r\n onClick: disabled ? undefined : onClick,\r\n };\r\n\r\n const content = (\r\n <>\r\n {Icon && (\r\n <span\r\n className={classMap.buttonIcon}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n <Icon className={classMap.icon} />\r\n </span>\r\n )}\r\n <span\r\n className={classMap.buttonLabel}\r\n data-testid={testId ? `${testId}-loading` : undefined}\r\n >\r\n {loading ? (\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n ) : (\r\n children\r\n )}\r\n </span>\r\n </>\r\n );\r\n\r\n if (href && isExternal) {\r\n return (\r\n <a\r\n href={href}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n role=\"button\"\r\n className={combineClassNames(combinedClassName, classMap.link)}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n if (href && !isExternal) {\r\n return (\r\n <LinkComponent\r\n href={href}\r\n role=\"button\"\r\n className={combineClassNames(combinedClassName, classMap.link)}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n ref={ref as React.Ref<HTMLButtonElement>}\r\n type={type}\r\n className={combinedClassName}\r\n disabled={disabled}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </button>\r\n );\r\n }\r\n);\r\n\r\nButtonBase.displayName = \"ButtonBase\";\r\n\r\nexport default ButtonBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Button.module.scss\";\r\nimport ButtonBase from \"../ButtonBase\";\r\nimport { ButtonProps } from \"../Button.types\";\r\n\r\nconst Button: React.FC<ButtonProps> = (props) => (\r\n <ButtonBase {...props} classMap={styles} LinkComponent={Link} />\r\n);\r\n\r\nexport default Button;\r\n"],"names":["forwardRef","getDefaultTheme","getDefaultRounding","getDefaultShadow","disabled","outline","getDefaultSize","fullWidth","useMemo","combineClassNames","capitalize","jsxs","Fragment","jsx","Link"],"mappings":"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"}
1
+ {"version":3,"file":"Button-G1PFBSqU.cjs","sources":["../../src/components/Button/ButtonBase.tsx","../../src/components/Button/next/Button.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { ButtonProps } from \"./Button.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 ButtonBaseProps extends ButtonProps {\r\n classMap: Record<string, string>;\r\n LinkComponent?: React.ElementType;\r\n}\r\n\r\nconst ButtonBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonBaseProps\r\n>(\r\n (\r\n {\r\n icon: Icon,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n onClick,\r\n type = \"button\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n children,\r\n className = \"\",\r\n disabled = false,\r\n ariaLabel,\r\n href,\r\n isExternal = false,\r\n outline = false,\r\n size = getDefaultSize(),\r\n loading = false,\r\n fullWidth = false,\r\n \"data-testid\": testId = \"button\",\r\n classMap,\r\n LinkComponent = \"a\",\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const computedAriaLabel =\r\n ariaLabel || (typeof children === \"string\" ? children : \"Button\");\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.button,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n outline && classMap.outline,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n fullWidth && classMap.fullWidth,\r\n disabled && classMap.disabled,\r\n className\r\n ),\r\n [theme, outline, size, fullWidth, disabled, className]\r\n );\r\n\r\n const sharedProps = {\r\n \"aria-label\": computedAriaLabel,\r\n \"aria-busy\": loading || undefined,\r\n \"aria-disabled\": disabled || undefined,\r\n \"data-testid\": testId,\r\n tabIndex: disabled ? -1 : 0,\r\n onClick: disabled ? undefined : onClick,\r\n };\r\n\r\n const content = (\r\n <>\r\n {Icon && (\r\n <span\r\n className={classMap.buttonIcon}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n <Icon className={classMap.icon} />\r\n </span>\r\n )}\r\n <span\r\n className={classMap.buttonLabel}\r\n data-testid={testId ? `${testId}-loading` : undefined}\r\n >\r\n {loading ? (\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n ) : (\r\n children\r\n )}\r\n </span>\r\n </>\r\n );\r\n\r\n if (href && isExternal) {\r\n return (\r\n <a\r\n href={href}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n role=\"button\"\r\n className={combineClassNames(combinedClassName, classMap.link)}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n if (href && !isExternal) {\r\n return (\r\n <LinkComponent\r\n href={href}\r\n role=\"button\"\r\n className={combineClassNames(combinedClassName, classMap.link)}\r\n ref={ref as React.Ref<HTMLAnchorElement>}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n ref={ref as React.Ref<HTMLButtonElement>}\r\n type={type}\r\n className={combinedClassName}\r\n disabled={disabled}\r\n {...sharedProps}\r\n {...rest}\r\n >\r\n {content}\r\n </button>\r\n );\r\n }\r\n);\r\n\r\nButtonBase.displayName = \"ButtonBase\";\r\n\r\nexport default ButtonBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Button.module.scss\";\r\nimport ButtonBase from \"../ButtonBase\";\r\nimport { ButtonProps } from \"../Button.types\";\r\n\r\nconst Button: React.FC<ButtonProps> = (props) => (\r\n <ButtonBase {...props} classMap={styles} LinkComponent={Link} />\r\n);\r\n\r\nexport default Button;\r\n"],"names":["forwardRef","getDefaultTheme","getDefaultRounding","getDefaultShadow","disabled","outline","getDefaultSize","fullWidth","useMemo","combineClassNames","capitalize","jsxs","Fragment","jsx","Link"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Button = require("./Button-CksDHAGT.cjs");
2
+ const Button = require("./Button-G1PFBSqU.cjs");
3
3
  module.exports = Button.Button;
4
4
  //# sourceMappingURL=Button.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { B } from "./Button-DUYFGciR.js";
1
+ import { B } from "./Button-ClWB5gZW.js";
2
2
  export {
3
3
  B as default
4
4
  };
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
- import { I as Image } from "./image-h6PDRhrT.js";
3
- import { B as Button } from "./Button-DUYFGciR.js";
4
- import { I as IconButton } from "./IconButton-BjZZm2hJ.js";
2
+ import { I as Image } from "./image-CEz9QtOW.js";
3
+ import { B as Button } from "./Button-ClWB5gZW.js";
4
+ import { I as IconButton } from "./IconButton-Dk8EDf4Z.js";
5
5
  import { S as SkeletonLoader } from "./Skeleton-CJpwvGKT.js";
6
6
  import React, { useId, useMemo } from "react";
7
7
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
@@ -310,4 +310,4 @@ const Card = (props) => {
310
310
  export {
311
311
  Card as C
312
312
  };
313
- //# sourceMappingURL=Card-DFKVGnWo.js.map
313
+ //# sourceMappingURL=Card-B_USybKk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Card-DFKVGnWo.js","sources":["../../src/components/Card/CardBase.tsx","../../src/components/Card/next/Card.tsx"],"sourcesContent":["import React, { useId, useMemo } from \"react\";\r\nimport { ActionButton, CardProps } from \"./Card.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\ntype ExtendedActionButton = ActionButton & {\r\n buttonComponent: React.ElementType;\r\n iconButtonComponent: React.ElementType;\r\n};\r\n\r\nexport interface CardBaseProps extends CardProps {\r\n classMap: Record<string, string>;\r\n SkeletonComponent: React.FC<{\r\n width: string;\r\n height: string;\r\n [\"data-testid\"]?: string;\r\n }>;\r\n ImageComponent?: React.ElementType;\r\n actionButtons: ExtendedActionButton[];\r\n}\r\n\r\nconst CardBase: React.FC<CardBaseProps> = ({\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n cardIcon,\r\n title = \"\",\r\n description = \"\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n imageUrl,\r\n imageAlt,\r\n imageHeight,\r\n imageWidth,\r\n imageFill,\r\n className = \"\",\r\n imageClassName = \"\",\r\n headerClassName = \"\",\r\n bodyClassName = \"\",\r\n footerClassName = \"\",\r\n outline = false,\r\n size = getDefaultSize(),\r\n align = \"center\",\r\n renderHeader,\r\n renderContent,\r\n renderFooter,\r\n actionButtons = [],\r\n useIconButtons = false,\r\n layout = \"vertical\",\r\n blur = false,\r\n loading = false,\r\n children,\r\n \"data-testid\": testId = \"card\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-label\": ariaLabel,\r\n classMap,\r\n SkeletonComponent,\r\n ImageComponent,\r\n}) => {\r\n const autoId = useId();\r\n const headerId = ariaLabelledBy || `${autoId}-header`;\r\n const descriptionId = `${autoId}-description`;\r\n const hasImage = !!imageUrl;\r\n const showBlur = blur && typeof imageUrl !== \"string\";\r\n const derivedAriaLabel = ariaLabel || title || description || \"Content card\";\r\n\r\n const FallbackImage = (props: React.ImgHTMLAttributes<HTMLImageElement>) => (\r\n <img {...props} />\r\n );\r\n\r\n const hasImageObj =\r\n typeof imageUrl === \"object\" && imageUrl && \"src\" in imageUrl;\r\n const imgSrc = hasImageObj ? imageUrl.src : (imageUrl as string | undefined);\r\n\r\n const resolvedWidth =\r\n (hasImageObj ? (imageUrl as any).width : undefined) ?? imageWidth;\r\n const resolvedHeight =\r\n (hasImageObj ? (imageUrl as any).height : undefined) ?? imageHeight;\r\n\r\n const imgAlt = imageAlt || `${title || \"Card\"} image`;\r\n\r\n const ImageRenderer = ImageComponent || FallbackImage;\r\n\r\n const cardClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.card,\r\n classMap[layout],\r\n align && classMap[align],\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n loading && classMap.loading,\r\n className\r\n ),\r\n [classMap, size, outline, align, className]\r\n );\r\n\r\n return (\r\n <div\r\n data-testid={testId}\r\n className={cardClassName}\r\n role=\"region\"\r\n aria-labelledby={title ? headerId : undefined}\r\n aria-label={!title ? derivedAriaLabel : undefined}\r\n >\r\n {loading ? (\r\n <SkeletonComponent width=\"100%\" height=\"250px\" data-testid=\"skeleton\" />\r\n ) : (\r\n <div className={classMap.content}>\r\n {hasImage &&\r\n (imageFill ? (\r\n <div className={classMap.media}>\r\n <ImageRenderer\r\n src={imgSrc as any}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n fill\r\n />\r\n </div>\r\n ) : (\r\n <ImageRenderer\r\n src={imgSrc as any}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n width={resolvedWidth ?? 640}\r\n height={resolvedHeight ?? 360}\r\n />\r\n ))}\r\n\r\n <div>\r\n <div\r\n className={combineClassNames(classMap.header, headerClassName)}\r\n id={headerId}\r\n >\r\n {renderHeader ? (\r\n renderHeader()\r\n ) : title ? (\r\n <h2 className={classMap.title}>\r\n {cardIcon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid=\"card-icon\"\r\n >\r\n {React.createElement(cardIcon)}\r\n </span>\r\n )}\r\n {title}\r\n </h2>\r\n ) : null}\r\n </div>\r\n\r\n <div\r\n className={combineClassNames(classMap.body, bodyClassName)}\r\n role=\"group\"\r\n aria-describedby={description ? descriptionId : undefined}\r\n >\r\n {renderContent ? (\r\n renderContent()\r\n ) : (\r\n <>\r\n {description && (\r\n <p id={descriptionId} className={classMap.description}>\r\n {description}\r\n </p>\r\n )}\r\n {children && (\r\n <div className={classMap.children}>{children}</div>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n\r\n {(actionButtons.length > 0 || renderFooter) && (\r\n <div\r\n className={combineClassNames(classMap.footer, footerClassName)}\r\n >\r\n {actionButtons.length > 0 && (\r\n <div className={classMap.actions}>\r\n {actionButtons.map((button, index) =>\r\n useIconButtons && button.icon ? (\r\n <button.iconButtonComponent\r\n key={index}\r\n icon={button.icon}\r\n onClick={button.onClick}\r\n className={classMap.action_button}\r\n theme={button.theme || \"clear\"}\r\n state={button.state || \"\"}\r\n aria-label={button.label}\r\n size={button.size || size}\r\n href={button.href}\r\n loading={button.loading}\r\n />\r\n ) : (\r\n <button.buttonComponent\r\n key={index}\r\n onClick={button.onClick}\r\n className={classMap.action_button}\r\n theme={button.theme || \"secondary\"}\r\n state={button.state || \"\"}\r\n href={button.href}\r\n loading={button.loading}\r\n size={button.size || size}\r\n aria-label={button.label}\r\n >\r\n {button.label}\r\n </button.buttonComponent>\r\n )\r\n )}\r\n </div>\r\n )}\r\n {renderFooter && renderFooter()}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default CardBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Image from \"next/image\";\r\nimport { Button, IconButton, Skeleton } from \"../../../index.next\";\r\nimport styles from \"./Card.module.scss\";\r\nimport CardBase from \"../CardBase\";\r\nimport { CardProps } from \"../Card.types\";\r\n\r\nconst NextImageWrapper: React.FC<React.ComponentProps<typeof Image>> = (\r\n props\r\n) => {\r\n return <Image {...props} />;\r\n};\r\n\r\nconst Card: React.FC<CardProps> = (props) => {\r\n const wrappedButtons = (props.actionButtons ?? []).map((b) => ({\r\n ...b,\r\n buttonComponent: Button,\r\n iconButtonComponent: IconButton,\r\n }));\r\n\r\n return (\r\n <CardBase\r\n {...props}\r\n actionButtons={wrappedButtons}\r\n classMap={styles}\r\n SkeletonComponent={Skeleton}\r\n ImageComponent={NextImageWrapper}\r\n />\r\n );\r\n};\r\n\r\nexport default Card;\r\n"],"names":["title","description","outline","loading","children","Skeleton"],"mappings":"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"}
1
+ {"version":3,"file":"Card-B_USybKk.js","sources":["../../src/components/Card/CardBase.tsx","../../src/components/Card/next/Card.tsx"],"sourcesContent":["import React, { useId, useMemo } from \"react\";\r\nimport { ActionButton, CardProps } from \"./Card.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\ntype ExtendedActionButton = ActionButton & {\r\n buttonComponent: React.ElementType;\r\n iconButtonComponent: React.ElementType;\r\n};\r\n\r\nexport interface CardBaseProps extends CardProps {\r\n classMap: Record<string, string>;\r\n SkeletonComponent: React.FC<{\r\n width: string;\r\n height: string;\r\n [\"data-testid\"]?: string;\r\n }>;\r\n ImageComponent?: React.ElementType;\r\n actionButtons: ExtendedActionButton[];\r\n}\r\n\r\nconst CardBase: React.FC<CardBaseProps> = ({\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n cardIcon,\r\n title = \"\",\r\n description = \"\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n imageUrl,\r\n imageAlt,\r\n imageHeight,\r\n imageWidth,\r\n imageFill,\r\n className = \"\",\r\n imageClassName = \"\",\r\n headerClassName = \"\",\r\n bodyClassName = \"\",\r\n footerClassName = \"\",\r\n outline = false,\r\n size = getDefaultSize(),\r\n align = \"center\",\r\n renderHeader,\r\n renderContent,\r\n renderFooter,\r\n actionButtons = [],\r\n useIconButtons = false,\r\n layout = \"vertical\",\r\n blur = false,\r\n loading = false,\r\n children,\r\n \"data-testid\": testId = \"card\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-label\": ariaLabel,\r\n classMap,\r\n SkeletonComponent,\r\n ImageComponent,\r\n}) => {\r\n const autoId = useId();\r\n const headerId = ariaLabelledBy || `${autoId}-header`;\r\n const descriptionId = `${autoId}-description`;\r\n const hasImage = !!imageUrl;\r\n const showBlur = blur && typeof imageUrl !== \"string\";\r\n const derivedAriaLabel = ariaLabel || title || description || \"Content card\";\r\n\r\n const FallbackImage = (props: React.ImgHTMLAttributes<HTMLImageElement>) => (\r\n <img {...props} />\r\n );\r\n\r\n const hasImageObj =\r\n typeof imageUrl === \"object\" && imageUrl && \"src\" in imageUrl;\r\n const imgSrc = hasImageObj ? imageUrl.src : (imageUrl as string | undefined);\r\n\r\n const resolvedWidth =\r\n (hasImageObj ? (imageUrl as any).width : undefined) ?? imageWidth;\r\n const resolvedHeight =\r\n (hasImageObj ? (imageUrl as any).height : undefined) ?? imageHeight;\r\n\r\n const imgAlt = imageAlt || `${title || \"Card\"} image`;\r\n\r\n const ImageRenderer = ImageComponent || FallbackImage;\r\n\r\n const cardClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.card,\r\n classMap[layout],\r\n align && classMap[align],\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n loading && classMap.loading,\r\n className\r\n ),\r\n [classMap, size, outline, align, className]\r\n );\r\n\r\n return (\r\n <div\r\n data-testid={testId}\r\n className={cardClassName}\r\n role=\"region\"\r\n aria-labelledby={title ? headerId : undefined}\r\n aria-label={!title ? derivedAriaLabel : undefined}\r\n >\r\n {loading ? (\r\n <SkeletonComponent width=\"100%\" height=\"250px\" data-testid=\"skeleton\" />\r\n ) : (\r\n <div className={classMap.content}>\r\n {hasImage &&\r\n (imageFill ? (\r\n <div className={classMap.media}>\r\n <ImageRenderer\r\n src={imgSrc as any}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n fill\r\n />\r\n </div>\r\n ) : (\r\n <ImageRenderer\r\n src={imgSrc as any}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n width={resolvedWidth ?? 640}\r\n height={resolvedHeight ?? 360}\r\n />\r\n ))}\r\n\r\n <div>\r\n <div\r\n className={combineClassNames(classMap.header, headerClassName)}\r\n id={headerId}\r\n >\r\n {renderHeader ? (\r\n renderHeader()\r\n ) : title ? (\r\n <h2 className={classMap.title}>\r\n {cardIcon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid=\"card-icon\"\r\n >\r\n {React.createElement(cardIcon)}\r\n </span>\r\n )}\r\n {title}\r\n </h2>\r\n ) : null}\r\n </div>\r\n\r\n <div\r\n className={combineClassNames(classMap.body, bodyClassName)}\r\n role=\"group\"\r\n aria-describedby={description ? descriptionId : undefined}\r\n >\r\n {renderContent ? (\r\n renderContent()\r\n ) : (\r\n <>\r\n {description && (\r\n <p id={descriptionId} className={classMap.description}>\r\n {description}\r\n </p>\r\n )}\r\n {children && (\r\n <div className={classMap.children}>{children}</div>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n\r\n {(actionButtons.length > 0 || renderFooter) && (\r\n <div\r\n className={combineClassNames(classMap.footer, footerClassName)}\r\n >\r\n {actionButtons.length > 0 && (\r\n <div className={classMap.actions}>\r\n {actionButtons.map((button, index) =>\r\n useIconButtons && button.icon ? (\r\n <button.iconButtonComponent\r\n key={index}\r\n icon={button.icon}\r\n onClick={button.onClick}\r\n className={classMap.action_button}\r\n theme={button.theme || \"clear\"}\r\n state={button.state || \"\"}\r\n aria-label={button.label}\r\n size={button.size || size}\r\n href={button.href}\r\n loading={button.loading}\r\n />\r\n ) : (\r\n <button.buttonComponent\r\n key={index}\r\n onClick={button.onClick}\r\n className={classMap.action_button}\r\n theme={button.theme || \"secondary\"}\r\n state={button.state || \"\"}\r\n href={button.href}\r\n loading={button.loading}\r\n size={button.size || size}\r\n aria-label={button.label}\r\n >\r\n {button.label}\r\n </button.buttonComponent>\r\n )\r\n )}\r\n </div>\r\n )}\r\n {renderFooter && renderFooter()}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default CardBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Image from \"next/image\";\r\nimport { Button, IconButton, Skeleton } from \"../../../index.next\";\r\nimport styles from \"./Card.module.scss\";\r\nimport CardBase from \"../CardBase\";\r\nimport { CardProps } from \"../Card.types\";\r\n\r\nconst NextImageWrapper: React.FC<React.ComponentProps<typeof Image>> = (\r\n props\r\n) => {\r\n return <Image {...props} />;\r\n};\r\n\r\nconst Card: React.FC<CardProps> = (props) => {\r\n const wrappedButtons = (props.actionButtons ?? []).map((b) => ({\r\n ...b,\r\n buttonComponent: Button,\r\n iconButtonComponent: IconButton,\r\n }));\r\n\r\n return (\r\n <CardBase\r\n {...props}\r\n actionButtons={wrappedButtons}\r\n classMap={styles}\r\n SkeletonComponent={Skeleton}\r\n ImageComponent={NextImageWrapper}\r\n />\r\n );\r\n};\r\n\r\nexport default Card;\r\n"],"names":["title","description","outline","loading","children","Skeleton"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  const require$$2 = require("react/jsx-runtime");
3
- const image$1 = require("./image-MEZ6sESv.cjs");
4
- const Button = require("./Button-CksDHAGT.cjs");
5
- const IconButton = require("./IconButton-DvfiteNA.cjs");
3
+ const image$1 = require("./image-VX9Ty9NQ.cjs");
4
+ const Button = require("./Button-G1PFBSqU.cjs");
5
+ const IconButton = require("./IconButton-SZdNlqIZ.cjs");
6
6
  const Skeleton = require("./Skeleton-VK_AxGlo.cjs");
7
7
  const React = require("react");
8
8
  const classNames = require("./classNames-BcWMx052.cjs");
@@ -309,4 +309,4 @@ const Card = (props) => {
309
309
  );
310
310
  };
311
311
  exports.Card = Card;
312
- //# sourceMappingURL=Card-HHvgocCd.cjs.map
312
+ //# sourceMappingURL=Card-Bg9EknRD.cjs.map