boreal-ui 0.0.15 → 0.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/core/{MessagePopup-OA1gjb8E.cjs → MessagePopUp-BUS6ICem.cjs} +3 -3
  2. package/dist/core/{MessagePopup-OA1gjb8E.cjs.map → MessagePopUp-BUS6ICem.cjs.map} +1 -1
  3. package/dist/core/{MessagePopup-By89AGqE.js → MessagePopUp-CC7r9RHN.js} +3 -3
  4. package/dist/core/{MessagePopup-By89AGqE.js.map → MessagePopUp-CC7r9RHN.js.map} +1 -1
  5. package/dist/core/MessagePopUp.cjs.js +2 -2
  6. package/dist/core/MessagePopUp.js +1 -1
  7. package/dist/core/index.cjs.js +3 -3
  8. package/dist/core/index.cjs.js.map +1 -1
  9. package/dist/core/index.js +3 -2
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/next/{MessagePopup-C-7N3vB0.cjs → MessagePopUp-BxFI8IpO.cjs} +3 -3
  12. package/dist/next/{MessagePopup-C-7N3vB0.cjs.map → MessagePopUp-BxFI8IpO.cjs.map} +1 -1
  13. package/dist/next/{MessagePopup-ClfrvxKq.js → MessagePopUp-DI7-Ggmn.js} +3 -3
  14. package/dist/next/{MessagePopup-ClfrvxKq.js.map → MessagePopUp-DI7-Ggmn.js.map} +1 -1
  15. package/dist/next/MessagePopUp.cjs.js +2 -2
  16. package/dist/next/MessagePopUp.js +1 -1
  17. package/dist/next/index.cjs.js +3 -3
  18. package/dist/next/index.cjs.js.map +1 -1
  19. package/dist/next/index.js +3 -2
  20. package/dist/next/index.js.map +1 -1
  21. package/dist/tsconfig.build.tsbuildinfo +1 -1
  22. package/dist/types/components/Chip/ChipGroup/ChipGroupBase.d.ts.map +1 -1
  23. package/dist/types/components/MessagePopUp/{MessagePopup.types.d.ts → MessagePopUp.types.d.ts} +2 -2
  24. package/dist/types/components/MessagePopUp/{MessagePopup.types.d.ts.map → MessagePopUp.types.d.ts.map} +1 -1
  25. package/dist/types/components/MessagePopUp/{MessagePopupBase.d.ts → MessagePopUpBase.d.ts} +3 -3
  26. package/dist/types/components/MessagePopUp/{MessagePopupBase.d.ts.map → MessagePopUpBase.d.ts.map} +1 -1
  27. package/dist/types/components/MessagePopUp/core/MessagePopUp.d.ts +6 -0
  28. package/dist/types/components/MessagePopUp/core/{MessagePopup.d.ts.map → MessagePopUp.d.ts.map} +1 -1
  29. package/dist/types/components/MessagePopUp/next/MessagePopUp.d.ts +5 -0
  30. package/dist/types/components/MessagePopUp/next/MessagePopUp.d.ts.map +1 -0
  31. package/dist/types/index.core.d.ts +1 -1
  32. package/dist/types/index.next.d.ts +1 -1
  33. package/dist/types/public.types.d.ts +1 -1
  34. package/package.json +1 -1
  35. package/dist/types/components/MessagePopUp/core/MessagePopup.d.ts +0 -6
  36. package/dist/types/components/MessagePopUp/next/MessagePopup.d.ts +0 -5
  37. package/dist/types/components/MessagePopUp/next/MessagePopup.d.ts.map +0 -1
@@ -173,7 +173,7 @@ const classes = {
173
173
  roundMedium: "messagePopup_round-Medium",
174
174
  roundLarge: "messagePopup_round-Large"
175
175
  };
176
- const MessagePopup = (props) => {
176
+ const MessagePopUp = (props) => {
177
177
  return /* @__PURE__ */ jsxRuntime.jsx(
178
178
  BaseMessagePopup,
179
179
  {
@@ -184,5 +184,5 @@ const MessagePopup = (props) => {
184
184
  }
185
185
  );
186
186
  };
187
- exports.MessagePopup = MessagePopup;
188
- //# sourceMappingURL=MessagePopup-OA1gjb8E.cjs.map
187
+ exports.MessagePopUp = MessagePopUp;
188
+ //# sourceMappingURL=MessagePopUp-BUS6ICem.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessagePopup-OA1gjb8E.cjs","sources":["../../src/components/MessagePopUp/MessagePopupBase.tsx","../../src/components/MessagePopUp/core/MessagePopup.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { MessagePopupProps } from \"./MessagePopup.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseMessagePopupProps extends MessagePopupProps {\r\n Button: React.ComponentType<any>;\r\n IconButton: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseMessagePopup: React.FC<BaseMessagePopupProps> = ({\r\n message,\r\n onClose,\r\n onConfirm,\r\n onCancel,\r\n controlsRounding = getDefaultRounding(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n className = \"\",\r\n \"data-testid\": testId = \"message-popup\",\r\n Button,\r\n IconButton,\r\n classMap,\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n const messageId = useId();\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n let portal = document.getElementById(\"popup-portal\");\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = \"popup-portal\";\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n const handleEscape = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleEscape);\r\n return () => {\r\n document.body.classList.remove(\"no-scroll\");\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n };\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n firstButtonRef.current?.focus();\r\n }, 10);\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n\r\n const focusableEls = dialogRef.current?.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n if (!focusableEls || focusableEls.length === 0) return;\r\n\r\n const first = focusableEls[0];\r\n const last = focusableEls[focusableEls.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const wrapperClass = combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={wrapperClass}\r\n onClick={onClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n className={classMap.content}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={messageId}\r\n tabIndex={-1}\r\n ref={dialogRef}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-dialog`}\r\n >\r\n <IconButton\r\n className={classMap.close}\r\n onClick={onClose}\r\n aria-label=\"Close popup\"\r\n icon={CloseIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n data-testid={`${testId}-close`}\r\n />\r\n <h2\r\n id={messageId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </h2>\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {onConfirm && (\r\n <Button\r\n className={classMap.confirm}\r\n state=\"success\"\r\n onClick={onConfirm}\r\n ref={firstButtonRef}\r\n rounding={controlsRounding}\r\n type=\"button\"\r\n data-testid={`${testId}-confirm`}\r\n >\r\n {confirmText}\r\n </Button>\r\n )}\r\n {onCancel && (\r\n <Button\r\n className={classMap.cancel}\r\n state=\"warning\"\r\n onClick={onCancel}\r\n type=\"button\"\r\n data-testid={`${testId}-cancel`}\r\n >\r\n {cancelText}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nexport default BaseMessagePopup;\r\n","import React from \"react\";\r\nimport BaseMessagePopup from \"../MessagePopupBase\";\r\nimport { Button, IconButton } from \"../../../index.core\";\r\nimport \"./MessagePopup.scss\";\r\nimport { MessagePopupProps } from \"../MessagePopup.types\";\r\n\r\nconst classes = {\r\n wrapper: \"messagePopup\",\r\n content: \"messagePopup_popupContent\",\r\n close: \"messagePopup_closeButton\",\r\n message: \"messagePopup_popupMessage\",\r\n actions: \"messagePopup_popupActions\",\r\n confirm: \"messagePopup_confirmBtn\",\r\n cancel: \"messagePopup_cancelBtn\",\r\n\r\n shadowNone: \"messagePopup_shadow-None\",\r\n shadowLight: \"messagePopup_shadow-Light\",\r\n shadowMedium: \"messagePopup_shadow-Medium\",\r\n shadowStrong: \"messagePopup_shadow-Strong\",\r\n shadowIntense: \"messagePopup_shadow-Intense\",\r\n\r\n roundNone: \"messagePopup_round-None\",\r\n roundSmall: \"messagePopup_round-Small\",\r\n roundMedium: \"messagePopup_round-Medium\",\r\n roundLarge: \"messagePopup_round-Large\",\r\n};\r\n\r\nconst MessagePopup: React.FC<MessagePopupProps> = (props) => {\r\n return (\r\n <BaseMessagePopup\r\n {...props}\r\n Button={Button}\r\n IconButton={IconButton}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default MessagePopup;\r\n"],"names":["getDefaultRounding","getDefaultShadow","Button","IconButton","useState","useRef","useId","useEffect","combineClassNames","capitalize","jsx","jsxs","CloseIcon"],"mappings":"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"}
1
+ {"version":3,"file":"MessagePopUp-BUS6ICem.cjs","sources":["../../src/components/MessagePopUp/MessagePopUpBase.tsx","../../src/components/MessagePopUp/core/MessagePopUp.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { MessagePopUpProps } from \"./MessagePopUp.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseMessagePopupProps extends MessagePopUpProps {\r\n Button: React.ComponentType<any>;\r\n IconButton: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseMessagePopup: React.FC<BaseMessagePopupProps> = ({\r\n message,\r\n onClose,\r\n onConfirm,\r\n onCancel,\r\n controlsRounding = getDefaultRounding(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n className = \"\",\r\n \"data-testid\": testId = \"message-popup\",\r\n Button,\r\n IconButton,\r\n classMap,\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n const messageId = useId();\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n let portal = document.getElementById(\"popup-portal\");\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = \"popup-portal\";\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n const handleEscape = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleEscape);\r\n return () => {\r\n document.body.classList.remove(\"no-scroll\");\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n };\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n firstButtonRef.current?.focus();\r\n }, 10);\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n\r\n const focusableEls = dialogRef.current?.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n if (!focusableEls || focusableEls.length === 0) return;\r\n\r\n const first = focusableEls[0];\r\n const last = focusableEls[focusableEls.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const wrapperClass = combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={wrapperClass}\r\n onClick={onClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n className={classMap.content}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={messageId}\r\n tabIndex={-1}\r\n ref={dialogRef}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-dialog`}\r\n >\r\n <IconButton\r\n className={classMap.close}\r\n onClick={onClose}\r\n aria-label=\"Close popup\"\r\n icon={CloseIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n data-testid={`${testId}-close`}\r\n />\r\n <h2\r\n id={messageId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </h2>\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {onConfirm && (\r\n <Button\r\n className={classMap.confirm}\r\n state=\"success\"\r\n onClick={onConfirm}\r\n ref={firstButtonRef}\r\n rounding={controlsRounding}\r\n type=\"button\"\r\n data-testid={`${testId}-confirm`}\r\n >\r\n {confirmText}\r\n </Button>\r\n )}\r\n {onCancel && (\r\n <Button\r\n className={classMap.cancel}\r\n state=\"warning\"\r\n onClick={onCancel}\r\n type=\"button\"\r\n data-testid={`${testId}-cancel`}\r\n >\r\n {cancelText}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nexport default BaseMessagePopup;\r\n","import React from \"react\";\r\nimport BaseMessagePopUp from \"../MessagePopUpBase\";\r\nimport { Button, IconButton } from \"../../../index.core\";\r\nimport \"./MessagePopup.scss\";\r\nimport { MessagePopUpProps } from \"../MessagePopUp.types\";\r\n\r\nconst classes = {\r\n wrapper: \"messagePopup\",\r\n content: \"messagePopup_popupContent\",\r\n close: \"messagePopup_closeButton\",\r\n message: \"messagePopup_popupMessage\",\r\n actions: \"messagePopup_popupActions\",\r\n confirm: \"messagePopup_confirmBtn\",\r\n cancel: \"messagePopup_cancelBtn\",\r\n\r\n shadowNone: \"messagePopup_shadow-None\",\r\n shadowLight: \"messagePopup_shadow-Light\",\r\n shadowMedium: \"messagePopup_shadow-Medium\",\r\n shadowStrong: \"messagePopup_shadow-Strong\",\r\n shadowIntense: \"messagePopup_shadow-Intense\",\r\n\r\n roundNone: \"messagePopup_round-None\",\r\n roundSmall: \"messagePopup_round-Small\",\r\n roundMedium: \"messagePopup_round-Medium\",\r\n roundLarge: \"messagePopup_round-Large\",\r\n};\r\n\r\nconst MessagePopUp: React.FC<MessagePopUpProps> = (props) => {\r\n return (\r\n <BaseMessagePopUp\r\n {...props}\r\n Button={Button}\r\n IconButton={IconButton}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default MessagePopUp;\r\n"],"names":["getDefaultRounding","getDefaultShadow","Button","IconButton","useState","useRef","useId","useEffect","combineClassNames","capitalize","jsx","jsxs","CloseIcon","BaseMessagePopUp"],"mappings":"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"}
@@ -172,7 +172,7 @@ const classes = {
172
172
  roundMedium: "messagePopup_round-Medium",
173
173
  roundLarge: "messagePopup_round-Large"
174
174
  };
175
- const MessagePopup = (props) => {
175
+ const MessagePopUp = (props) => {
176
176
  return /* @__PURE__ */ jsx(
177
177
  BaseMessagePopup,
178
178
  {
@@ -184,6 +184,6 @@ const MessagePopup = (props) => {
184
184
  );
185
185
  };
186
186
  export {
187
- MessagePopup as M
187
+ MessagePopUp as M
188
188
  };
189
- //# sourceMappingURL=MessagePopup-By89AGqE.js.map
189
+ //# sourceMappingURL=MessagePopUp-CC7r9RHN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessagePopup-By89AGqE.js","sources":["../../src/components/MessagePopUp/MessagePopupBase.tsx","../../src/components/MessagePopUp/core/MessagePopup.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { MessagePopupProps } from \"./MessagePopup.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseMessagePopupProps extends MessagePopupProps {\r\n Button: React.ComponentType<any>;\r\n IconButton: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseMessagePopup: React.FC<BaseMessagePopupProps> = ({\r\n message,\r\n onClose,\r\n onConfirm,\r\n onCancel,\r\n controlsRounding = getDefaultRounding(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n className = \"\",\r\n \"data-testid\": testId = \"message-popup\",\r\n Button,\r\n IconButton,\r\n classMap,\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n const messageId = useId();\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n let portal = document.getElementById(\"popup-portal\");\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = \"popup-portal\";\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n const handleEscape = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleEscape);\r\n return () => {\r\n document.body.classList.remove(\"no-scroll\");\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n };\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n firstButtonRef.current?.focus();\r\n }, 10);\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n\r\n const focusableEls = dialogRef.current?.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n if (!focusableEls || focusableEls.length === 0) return;\r\n\r\n const first = focusableEls[0];\r\n const last = focusableEls[focusableEls.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const wrapperClass = combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={wrapperClass}\r\n onClick={onClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n className={classMap.content}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={messageId}\r\n tabIndex={-1}\r\n ref={dialogRef}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-dialog`}\r\n >\r\n <IconButton\r\n className={classMap.close}\r\n onClick={onClose}\r\n aria-label=\"Close popup\"\r\n icon={CloseIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n data-testid={`${testId}-close`}\r\n />\r\n <h2\r\n id={messageId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </h2>\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {onConfirm && (\r\n <Button\r\n className={classMap.confirm}\r\n state=\"success\"\r\n onClick={onConfirm}\r\n ref={firstButtonRef}\r\n rounding={controlsRounding}\r\n type=\"button\"\r\n data-testid={`${testId}-confirm`}\r\n >\r\n {confirmText}\r\n </Button>\r\n )}\r\n {onCancel && (\r\n <Button\r\n className={classMap.cancel}\r\n state=\"warning\"\r\n onClick={onCancel}\r\n type=\"button\"\r\n data-testid={`${testId}-cancel`}\r\n >\r\n {cancelText}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nexport default BaseMessagePopup;\r\n","import React from \"react\";\r\nimport BaseMessagePopup from \"../MessagePopupBase\";\r\nimport { Button, IconButton } from \"../../../index.core\";\r\nimport \"./MessagePopup.scss\";\r\nimport { MessagePopupProps } from \"../MessagePopup.types\";\r\n\r\nconst classes = {\r\n wrapper: \"messagePopup\",\r\n content: \"messagePopup_popupContent\",\r\n close: \"messagePopup_closeButton\",\r\n message: \"messagePopup_popupMessage\",\r\n actions: \"messagePopup_popupActions\",\r\n confirm: \"messagePopup_confirmBtn\",\r\n cancel: \"messagePopup_cancelBtn\",\r\n\r\n shadowNone: \"messagePopup_shadow-None\",\r\n shadowLight: \"messagePopup_shadow-Light\",\r\n shadowMedium: \"messagePopup_shadow-Medium\",\r\n shadowStrong: \"messagePopup_shadow-Strong\",\r\n shadowIntense: \"messagePopup_shadow-Intense\",\r\n\r\n roundNone: \"messagePopup_round-None\",\r\n roundSmall: \"messagePopup_round-Small\",\r\n roundMedium: \"messagePopup_round-Medium\",\r\n roundLarge: \"messagePopup_round-Large\",\r\n};\r\n\r\nconst MessagePopup: React.FC<MessagePopupProps> = (props) => {\r\n return (\r\n <BaseMessagePopup\r\n {...props}\r\n Button={Button}\r\n IconButton={IconButton}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default MessagePopup;\r\n"],"names":["Button","IconButton"],"mappings":"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"}
1
+ {"version":3,"file":"MessagePopUp-CC7r9RHN.js","sources":["../../src/components/MessagePopUp/MessagePopUpBase.tsx","../../src/components/MessagePopUp/core/MessagePopUp.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { MessagePopUpProps } from \"./MessagePopUp.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseMessagePopupProps extends MessagePopUpProps {\r\n Button: React.ComponentType<any>;\r\n IconButton: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseMessagePopup: React.FC<BaseMessagePopupProps> = ({\r\n message,\r\n onClose,\r\n onConfirm,\r\n onCancel,\r\n controlsRounding = getDefaultRounding(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n className = \"\",\r\n \"data-testid\": testId = \"message-popup\",\r\n Button,\r\n IconButton,\r\n classMap,\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n const messageId = useId();\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n let portal = document.getElementById(\"popup-portal\");\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = \"popup-portal\";\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n const handleEscape = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleEscape);\r\n return () => {\r\n document.body.classList.remove(\"no-scroll\");\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n };\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n firstButtonRef.current?.focus();\r\n }, 10);\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n\r\n const focusableEls = dialogRef.current?.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n if (!focusableEls || focusableEls.length === 0) return;\r\n\r\n const first = focusableEls[0];\r\n const last = focusableEls[focusableEls.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const wrapperClass = combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={wrapperClass}\r\n onClick={onClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n className={classMap.content}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={messageId}\r\n tabIndex={-1}\r\n ref={dialogRef}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-dialog`}\r\n >\r\n <IconButton\r\n className={classMap.close}\r\n onClick={onClose}\r\n aria-label=\"Close popup\"\r\n icon={CloseIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n data-testid={`${testId}-close`}\r\n />\r\n <h2\r\n id={messageId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </h2>\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {onConfirm && (\r\n <Button\r\n className={classMap.confirm}\r\n state=\"success\"\r\n onClick={onConfirm}\r\n ref={firstButtonRef}\r\n rounding={controlsRounding}\r\n type=\"button\"\r\n data-testid={`${testId}-confirm`}\r\n >\r\n {confirmText}\r\n </Button>\r\n )}\r\n {onCancel && (\r\n <Button\r\n className={classMap.cancel}\r\n state=\"warning\"\r\n onClick={onCancel}\r\n type=\"button\"\r\n data-testid={`${testId}-cancel`}\r\n >\r\n {cancelText}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nexport default BaseMessagePopup;\r\n","import React from \"react\";\r\nimport BaseMessagePopUp from \"../MessagePopUpBase\";\r\nimport { Button, IconButton } from \"../../../index.core\";\r\nimport \"./MessagePopup.scss\";\r\nimport { MessagePopUpProps } from \"../MessagePopUp.types\";\r\n\r\nconst classes = {\r\n wrapper: \"messagePopup\",\r\n content: \"messagePopup_popupContent\",\r\n close: \"messagePopup_closeButton\",\r\n message: \"messagePopup_popupMessage\",\r\n actions: \"messagePopup_popupActions\",\r\n confirm: \"messagePopup_confirmBtn\",\r\n cancel: \"messagePopup_cancelBtn\",\r\n\r\n shadowNone: \"messagePopup_shadow-None\",\r\n shadowLight: \"messagePopup_shadow-Light\",\r\n shadowMedium: \"messagePopup_shadow-Medium\",\r\n shadowStrong: \"messagePopup_shadow-Strong\",\r\n shadowIntense: \"messagePopup_shadow-Intense\",\r\n\r\n roundNone: \"messagePopup_round-None\",\r\n roundSmall: \"messagePopup_round-Small\",\r\n roundMedium: \"messagePopup_round-Medium\",\r\n roundLarge: \"messagePopup_round-Large\",\r\n};\r\n\r\nconst MessagePopUp: React.FC<MessagePopUpProps> = (props) => {\r\n return (\r\n <BaseMessagePopUp\r\n {...props}\r\n Button={Button}\r\n IconButton={IconButton}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default MessagePopUp;\r\n"],"names":["Button","IconButton","BaseMessagePopUp"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const MessagePopup = require("./MessagePopup-OA1gjb8E.cjs");
3
- module.exports = MessagePopup.MessagePopup;
2
+ const MessagePopUp = require("./MessagePopUp-BUS6ICem.cjs");
3
+ module.exports = MessagePopUp.MessagePopUp;
4
4
  //# sourceMappingURL=MessagePopUp.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { M } from "./MessagePopup-By89AGqE.js";
1
+ import { M } from "./MessagePopUp-CC7r9RHN.js";
2
2
  export {
3
3
  M as default
4
4
  };
@@ -34,7 +34,7 @@ const Rating = require("./Rating-Jx3DBFOd.cjs");
34
34
  const Skeleton = require("./Skeleton-CeMwLgnq.cjs");
35
35
  const Spinner = require("./Spinner-BTmQ7ZN9.cjs");
36
36
  const Tooltip = require("./Tooltip-5SfsTZvz.cjs");
37
- const MessagePopup = require("./MessagePopup-OA1gjb8E.cjs");
37
+ const MessagePopUp = require("./MessagePopUp-BUS6ICem.cjs");
38
38
  const PopOver = require("./PopOver-OijKNHZU.cjs");
39
39
  const NavBar = require("./NavBar-C5UMiYpA.cjs");
40
40
  const Breadcrumbs = require("./Breadcrumbs-xmUgcTXF.cjs");
@@ -60,7 +60,7 @@ const ChipGroupBase = React.forwardRef(
60
60
  chips,
61
61
  onRemove,
62
62
  position = "topCenter",
63
- size = "medium",
63
+ size = borealStyleConfig.getDefaultSize(),
64
64
  className = "",
65
65
  ChipComponent,
66
66
  classMap: classMap2
@@ -185,7 +185,7 @@ exports.Rating = Rating.Rating;
185
185
  exports.Skeleton = Skeleton.SkeletonLoader;
186
186
  exports.Spinner = Spinner.Spinner;
187
187
  exports.Tooltip = Tooltip.Tooltip;
188
- exports.MessagePopUp = MessagePopup.MessagePopup;
188
+ exports.MessagePopUp = MessagePopUp.MessagePopUp;
189
189
  exports.PopOver = PopOver.Popover;
190
190
  exports.Navbar = NavBar.NavBar;
191
191
  exports.Breadcrumbs = Breadcrumbs.Breadcrumbs;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/core/ChipGroup.tsx"],"sourcesContent":["import {\r\n forwardRef,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n} from \"react\";\r\nimport type { ChipGroupProps, ChipGroupRef } from \"./ChipGroup.types\";\r\nimport type { ChipProps } from \"../Chip.types\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { combineClassNames } from \"@/utils/classNames\";\r\n\r\nexport interface ChipGroupBaseProps extends ChipGroupProps {\r\n ChipComponent: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst ChipGroupBase = forwardRef<ChipGroupRef, ChipGroupBaseProps>(\r\n (\r\n {\r\n chips,\r\n onRemove,\r\n position = \"topCenter\",\r\n size = \"medium\",\r\n className = \"\",\r\n ChipComponent,\r\n classMap,\r\n },\r\n ref\r\n ) => {\r\n const [visibleChips, setVisibleChips] = useState<ChipProps[]>([]);\r\n\r\n useEffect(() => {\r\n const initialized = chips.map((chip) => ({\r\n ...chip,\r\n id: chip.id || uuidv4(),\r\n }));\r\n setVisibleChips(initialized);\r\n }, [chips]);\r\n\r\n const handleClose = useCallback(\r\n (id: string) => {\r\n setVisibleChips((prev) => prev.filter((c) => c.id !== id));\r\n onRemove?.(id);\r\n },\r\n [onRemove]\r\n );\r\n\r\n useImperativeHandle(ref, () => ({\r\n closeAllChips: () => {\r\n visibleChips.forEach((chip) => handleClose(chip.id!));\r\n },\r\n }));\r\n\r\n const containerClassName = [\r\n classMap.container,\r\n classMap[position],\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \");\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n role=\"region\"\r\n aria-label=\"Notifications\"\r\n aria-live=\"polite\"\r\n data-testid=\"chip-group\"\r\n >\r\n <ul role=\"list\" className={classMap.list}>\r\n {visibleChips.map((chip, index) => {\r\n const chipPosition = chip.position || position;\r\n const chipPositionClass = classMap[chipPosition];\r\n\r\n return (\r\n <li key={chip.id} role=\"listitem\">\r\n <ChipComponent\r\n id={chip.id}\r\n message={chip.message}\r\n icon={chip.icon}\r\n theme={chip.theme}\r\n state={chip.state}\r\n size={chip.size || size}\r\n rounding={chip.rounding}\r\n shadow={chip.shadow}\r\n visible={true}\r\n onClose={() => handleClose(chip.id!)}\r\n autoClose={chip.autoClose}\r\n duration={chip.duration}\r\n position={chipPosition}\r\n usePortal={false}\r\n stackIndex={index}\r\n className={combineClassNames(\r\n classMap.chip,\r\n chip.className,\r\n chipPositionClass\r\n )}\r\n data-testid={chip[\"data-testid\"]}\r\n />\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nChipGroupBase.displayName = \"ChipGroupBase\";\r\nexport default ChipGroupBase;\r\n","import React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport Chip from \"../../core/Chip\";\r\nimport \"./ChipGroup.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst classMap = {\r\n container: \"chip_group\",\r\n list: \"chip_group_list\",\r\n topCenter: \"chip_group_topCenter\",\r\n bottomCenter: \"chip_group_bottomCenter\",\r\n topLeft: \"chip_group_topLeft\",\r\n topRight: \"chip_group_topRight\",\r\n bottomLeft: \"chip_group_bottomLeft\",\r\n bottomRight: \"chip_group_bottomRight\",\r\n};\r\n\r\nconst ChipGroup = React.forwardRef<ChipGroupRef, ChipGroupProps>(\r\n (props, ref) => (\r\n <ChipGroupBase\r\n {...props}\r\n ref={ref}\r\n ChipComponent={Chip}\r\n classMap={classMap}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n"],"names":["forwardRef","classMap","useState","useEffect","uuidv4","useCallback","useImperativeHandle","jsx","combineClassNames","Chip"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/core/ChipGroup.tsx"],"sourcesContent":["import {\r\n forwardRef,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n} from \"react\";\r\nimport type { ChipGroupProps, ChipGroupRef } from \"./ChipGroup.types\";\r\nimport type { ChipProps } from \"../Chip.types\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { combineClassNames } from \"@/utils/classNames\";\r\nimport { getDefaultSize } from \"@/config/boreal-style-config\";\r\n\r\nexport interface ChipGroupBaseProps extends ChipGroupProps {\r\n ChipComponent: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst ChipGroupBase = forwardRef<ChipGroupRef, ChipGroupBaseProps>(\r\n (\r\n {\r\n chips,\r\n onRemove,\r\n position = \"topCenter\",\r\n size = getDefaultSize(),\r\n className = \"\",\r\n ChipComponent,\r\n classMap,\r\n },\r\n ref\r\n ) => {\r\n const [visibleChips, setVisibleChips] = useState<ChipProps[]>([]);\r\n\r\n useEffect(() => {\r\n const initialized = chips.map((chip) => ({\r\n ...chip,\r\n id: chip.id || uuidv4(),\r\n }));\r\n setVisibleChips(initialized);\r\n }, [chips]);\r\n\r\n const handleClose = useCallback(\r\n (id: string) => {\r\n setVisibleChips((prev) => prev.filter((c) => c.id !== id));\r\n onRemove?.(id);\r\n },\r\n [onRemove]\r\n );\r\n\r\n useImperativeHandle(ref, () => ({\r\n closeAllChips: () => {\r\n visibleChips.forEach((chip) => handleClose(chip.id!));\r\n },\r\n }));\r\n\r\n const containerClassName = [\r\n classMap.container,\r\n classMap[position],\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \");\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n role=\"region\"\r\n aria-label=\"Notifications\"\r\n aria-live=\"polite\"\r\n data-testid=\"chip-group\"\r\n >\r\n <ul role=\"list\" className={classMap.list}>\r\n {visibleChips.map((chip, index) => {\r\n const chipPosition = chip.position || position;\r\n const chipPositionClass = classMap[chipPosition];\r\n\r\n return (\r\n <li key={chip.id} role=\"listitem\">\r\n <ChipComponent\r\n id={chip.id}\r\n message={chip.message}\r\n icon={chip.icon}\r\n theme={chip.theme}\r\n state={chip.state}\r\n size={chip.size || size}\r\n rounding={chip.rounding}\r\n shadow={chip.shadow}\r\n visible={true}\r\n onClose={() => handleClose(chip.id!)}\r\n autoClose={chip.autoClose}\r\n duration={chip.duration}\r\n position={chipPosition}\r\n usePortal={false}\r\n stackIndex={index}\r\n className={combineClassNames(\r\n classMap.chip,\r\n chip.className,\r\n chipPositionClass\r\n )}\r\n data-testid={chip[\"data-testid\"]}\r\n />\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nChipGroupBase.displayName = \"ChipGroupBase\";\r\nexport default ChipGroupBase;\r\n","import React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport Chip from \"../../core/Chip\";\r\nimport \"./ChipGroup.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst classMap = {\r\n container: \"chip_group\",\r\n list: \"chip_group_list\",\r\n topCenter: \"chip_group_topCenter\",\r\n bottomCenter: \"chip_group_bottomCenter\",\r\n topLeft: \"chip_group_topLeft\",\r\n topRight: \"chip_group_topRight\",\r\n bottomLeft: \"chip_group_bottomLeft\",\r\n bottomRight: \"chip_group_bottomRight\",\r\n};\r\n\r\nconst ChipGroup = React.forwardRef<ChipGroupRef, ChipGroupProps>(\r\n (props, ref) => (\r\n <ChipGroupBase\r\n {...props}\r\n ref={ref}\r\n ChipComponent={Chip}\r\n classMap={classMap}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n"],"names":["forwardRef","getDefaultSize","classMap","useState","useEffect","uuidv4","useCallback","useImperativeHandle","jsx","combineClassNames","Chip"],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
  import { a, T } from "./ThemeContext-Bo0vLczy.js";
3
3
  import { r } from "./registerColorSheme-BPX0H7hl.js";
4
4
  import { colorSchemes } from "./colorSchemes.js";
5
+ import { c as getDefaultSize } from "./boreal-style-config-BILmxkZG.js";
5
6
  import { s } from "./boreal-style-config-BILmxkZG.js";
6
7
  import { B } from "./Button-DEYbr8xW.js";
7
8
  import { I } from "./IconButton-B6cAP2hY.js";
@@ -32,7 +33,7 @@ import { R as R2 } from "./Rating-QF5O1MFS.js";
32
33
  import { S as S4 } from "./Skeleton-BniIVZmx.js";
33
34
  import { S as S5 } from "./Spinner-DGF0pR7I.js";
34
35
  import { T as T5 } from "./Tooltip-XfsZnGgV.js";
35
- import { M as M2 } from "./MessagePopup-By89AGqE.js";
36
+ import { M as M2 } from "./MessagePopUp-CC7r9RHN.js";
36
37
  import { P as P2 } from "./PopOver-DNqWcWjU.js";
37
38
  import { N } from "./NavBar-BAHSDPtT.js";
38
39
  import { B as B3 } from "./Breadcrumbs-DhioJUB9.js";
@@ -58,7 +59,7 @@ const ChipGroupBase = forwardRef(
58
59
  chips,
59
60
  onRemove,
60
61
  position = "topCenter",
61
- size = "medium",
62
+ size = getDefaultSize(),
62
63
  className = "",
63
64
  ChipComponent,
64
65
  classMap: classMap2
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/core/ChipGroup.tsx"],"sourcesContent":["import {\r\n forwardRef,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n} from \"react\";\r\nimport type { ChipGroupProps, ChipGroupRef } from \"./ChipGroup.types\";\r\nimport type { ChipProps } from \"../Chip.types\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { combineClassNames } from \"@/utils/classNames\";\r\n\r\nexport interface ChipGroupBaseProps extends ChipGroupProps {\r\n ChipComponent: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst ChipGroupBase = forwardRef<ChipGroupRef, ChipGroupBaseProps>(\r\n (\r\n {\r\n chips,\r\n onRemove,\r\n position = \"topCenter\",\r\n size = \"medium\",\r\n className = \"\",\r\n ChipComponent,\r\n classMap,\r\n },\r\n ref\r\n ) => {\r\n const [visibleChips, setVisibleChips] = useState<ChipProps[]>([]);\r\n\r\n useEffect(() => {\r\n const initialized = chips.map((chip) => ({\r\n ...chip,\r\n id: chip.id || uuidv4(),\r\n }));\r\n setVisibleChips(initialized);\r\n }, [chips]);\r\n\r\n const handleClose = useCallback(\r\n (id: string) => {\r\n setVisibleChips((prev) => prev.filter((c) => c.id !== id));\r\n onRemove?.(id);\r\n },\r\n [onRemove]\r\n );\r\n\r\n useImperativeHandle(ref, () => ({\r\n closeAllChips: () => {\r\n visibleChips.forEach((chip) => handleClose(chip.id!));\r\n },\r\n }));\r\n\r\n const containerClassName = [\r\n classMap.container,\r\n classMap[position],\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \");\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n role=\"region\"\r\n aria-label=\"Notifications\"\r\n aria-live=\"polite\"\r\n data-testid=\"chip-group\"\r\n >\r\n <ul role=\"list\" className={classMap.list}>\r\n {visibleChips.map((chip, index) => {\r\n const chipPosition = chip.position || position;\r\n const chipPositionClass = classMap[chipPosition];\r\n\r\n return (\r\n <li key={chip.id} role=\"listitem\">\r\n <ChipComponent\r\n id={chip.id}\r\n message={chip.message}\r\n icon={chip.icon}\r\n theme={chip.theme}\r\n state={chip.state}\r\n size={chip.size || size}\r\n rounding={chip.rounding}\r\n shadow={chip.shadow}\r\n visible={true}\r\n onClose={() => handleClose(chip.id!)}\r\n autoClose={chip.autoClose}\r\n duration={chip.duration}\r\n position={chipPosition}\r\n usePortal={false}\r\n stackIndex={index}\r\n className={combineClassNames(\r\n classMap.chip,\r\n chip.className,\r\n chipPositionClass\r\n )}\r\n data-testid={chip[\"data-testid\"]}\r\n />\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nChipGroupBase.displayName = \"ChipGroupBase\";\r\nexport default ChipGroupBase;\r\n","import React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport Chip from \"../../core/Chip\";\r\nimport \"./ChipGroup.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst classMap = {\r\n container: \"chip_group\",\r\n list: \"chip_group_list\",\r\n topCenter: \"chip_group_topCenter\",\r\n bottomCenter: \"chip_group_bottomCenter\",\r\n topLeft: \"chip_group_topLeft\",\r\n topRight: \"chip_group_topRight\",\r\n bottomLeft: \"chip_group_bottomLeft\",\r\n bottomRight: \"chip_group_bottomRight\",\r\n};\r\n\r\nconst ChipGroup = React.forwardRef<ChipGroupRef, ChipGroupProps>(\r\n (props, ref) => (\r\n <ChipGroupBase\r\n {...props}\r\n ref={ref}\r\n ChipComponent={Chip}\r\n classMap={classMap}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n"],"names":["classMap","uuidv4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,gBAAgB;AAAA,EACpB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ;AAAA,IACA,UAAAA;AAAA,EAAA,GAEF,QACG;AACH,UAAM,CAAC,cAAc,eAAe,IAAI,SAAsB,CAAA,CAAE;AAEhE,cAAU,MAAM;AACd,YAAM,cAAc,MAAM,IAAI,CAAC,UAAU;AAAA,QACvC,GAAG;AAAA,QACH,IAAI,KAAK,MAAMC,GAAA;AAAA,MAAO,EACtB;AACF,sBAAgB,WAAW;AAAA,IAC7B,GAAG,CAAC,KAAK,CAAC;AAEV,UAAM,cAAc;AAAA,MAClB,CAAC,OAAe;AACd,wBAAgB,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACzD,6CAAW;AAAA,MACb;AAAA,MACA,CAAC,QAAQ;AAAA,IAAA;AAGX,wBAAoB,KAAK,OAAO;AAAA,MAC9B,eAAe,MAAM;AACnB,qBAAa,QAAQ,CAAC,SAAS,YAAY,KAAK,EAAG,CAAC;AAAA,MACtD;AAAA,IAAA,EACA;AAEF,UAAM,qBAAqB;AAAA,MACzBD,UAAS;AAAA,MACTA,UAAS,QAAQ;AAAA,MACjB;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,QACX,MAAK;AAAA,QACL,cAAW;AAAA,QACX,aAAU;AAAA,QACV,eAAY;AAAA,QAEZ,UAAA,oBAAC,MAAA,EAAG,MAAK,QAAO,WAAWA,UAAS,MACjC,UAAA,aAAa,IAAI,CAAC,MAAM,UAAU;AACjC,gBAAM,eAAe,KAAK,YAAY;AACtC,gBAAM,oBAAoBA,UAAS,YAAY;AAE/C,iBACE,oBAAC,MAAA,EAAiB,MAAK,YACrB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI,KAAK;AAAA,cACT,SAAS,KAAK;AAAA,cACd,MAAM,KAAK;AAAA,cACX,OAAO,KAAK;AAAA,cACZ,OAAO,KAAK;AAAA,cACZ,MAAM,KAAK,QAAQ;AAAA,cACnB,UAAU,KAAK;AAAA,cACf,QAAQ,KAAK;AAAA,cACb,SAAS;AAAA,cACT,SAAS,MAAM,YAAY,KAAK,EAAG;AAAA,cACnC,WAAW,KAAK;AAAA,cAChB,UAAU,KAAK;AAAA,cACf,UAAU;AAAA,cACV,WAAW;AAAA,cACX,YAAY;AAAA,cACZ,WAAW;AAAA,gBACTA,UAAS;AAAA,gBACT,KAAK;AAAA,gBACL;AAAA,cAAA;AAAA,cAEF,eAAa,KAAK,aAAa;AAAA,YAAA;AAAA,UAAA,EACjC,GAvBO,KAAK,EAwBd;AAAA,QAEJ,CAAC,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,cAAc,cAAc;ACvG5B,MAAM,WAAW;AAAA,EACf,WAAW;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,aAAa;AACf;AAEA,MAAM,YAAY,MAAM;AAAA,EACtB,CAAC,OAAO,QACN;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,MACf;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/core/ChipGroup.tsx"],"sourcesContent":["import {\r\n forwardRef,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n} from \"react\";\r\nimport type { ChipGroupProps, ChipGroupRef } from \"./ChipGroup.types\";\r\nimport type { ChipProps } from \"../Chip.types\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { combineClassNames } from \"@/utils/classNames\";\r\nimport { getDefaultSize } from \"@/config/boreal-style-config\";\r\n\r\nexport interface ChipGroupBaseProps extends ChipGroupProps {\r\n ChipComponent: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst ChipGroupBase = forwardRef<ChipGroupRef, ChipGroupBaseProps>(\r\n (\r\n {\r\n chips,\r\n onRemove,\r\n position = \"topCenter\",\r\n size = getDefaultSize(),\r\n className = \"\",\r\n ChipComponent,\r\n classMap,\r\n },\r\n ref\r\n ) => {\r\n const [visibleChips, setVisibleChips] = useState<ChipProps[]>([]);\r\n\r\n useEffect(() => {\r\n const initialized = chips.map((chip) => ({\r\n ...chip,\r\n id: chip.id || uuidv4(),\r\n }));\r\n setVisibleChips(initialized);\r\n }, [chips]);\r\n\r\n const handleClose = useCallback(\r\n (id: string) => {\r\n setVisibleChips((prev) => prev.filter((c) => c.id !== id));\r\n onRemove?.(id);\r\n },\r\n [onRemove]\r\n );\r\n\r\n useImperativeHandle(ref, () => ({\r\n closeAllChips: () => {\r\n visibleChips.forEach((chip) => handleClose(chip.id!));\r\n },\r\n }));\r\n\r\n const containerClassName = [\r\n classMap.container,\r\n classMap[position],\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \");\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n role=\"region\"\r\n aria-label=\"Notifications\"\r\n aria-live=\"polite\"\r\n data-testid=\"chip-group\"\r\n >\r\n <ul role=\"list\" className={classMap.list}>\r\n {visibleChips.map((chip, index) => {\r\n const chipPosition = chip.position || position;\r\n const chipPositionClass = classMap[chipPosition];\r\n\r\n return (\r\n <li key={chip.id} role=\"listitem\">\r\n <ChipComponent\r\n id={chip.id}\r\n message={chip.message}\r\n icon={chip.icon}\r\n theme={chip.theme}\r\n state={chip.state}\r\n size={chip.size || size}\r\n rounding={chip.rounding}\r\n shadow={chip.shadow}\r\n visible={true}\r\n onClose={() => handleClose(chip.id!)}\r\n autoClose={chip.autoClose}\r\n duration={chip.duration}\r\n position={chipPosition}\r\n usePortal={false}\r\n stackIndex={index}\r\n className={combineClassNames(\r\n classMap.chip,\r\n chip.className,\r\n chipPositionClass\r\n )}\r\n data-testid={chip[\"data-testid\"]}\r\n />\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nChipGroupBase.displayName = \"ChipGroupBase\";\r\nexport default ChipGroupBase;\r\n","import React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport Chip from \"../../core/Chip\";\r\nimport \"./ChipGroup.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst classMap = {\r\n container: \"chip_group\",\r\n list: \"chip_group_list\",\r\n topCenter: \"chip_group_topCenter\",\r\n bottomCenter: \"chip_group_bottomCenter\",\r\n topLeft: \"chip_group_topLeft\",\r\n topRight: \"chip_group_topRight\",\r\n bottomLeft: \"chip_group_bottomLeft\",\r\n bottomRight: \"chip_group_bottomRight\",\r\n};\r\n\r\nconst ChipGroup = React.forwardRef<ChipGroupRef, ChipGroupProps>(\r\n (props, ref) => (\r\n <ChipGroupBase\r\n {...props}\r\n ref={ref}\r\n ChipComponent={Chip}\r\n classMap={classMap}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n"],"names":["classMap","uuidv4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,gBAAgB;AAAA,EACpB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,OAAO,eAAA;AAAA,IACP,YAAY;AAAA,IACZ;AAAA,IACA,UAAAA;AAAA,EAAA,GAEF,QACG;AACH,UAAM,CAAC,cAAc,eAAe,IAAI,SAAsB,CAAA,CAAE;AAEhE,cAAU,MAAM;AACd,YAAM,cAAc,MAAM,IAAI,CAAC,UAAU;AAAA,QACvC,GAAG;AAAA,QACH,IAAI,KAAK,MAAMC,GAAA;AAAA,MAAO,EACtB;AACF,sBAAgB,WAAW;AAAA,IAC7B,GAAG,CAAC,KAAK,CAAC;AAEV,UAAM,cAAc;AAAA,MAClB,CAAC,OAAe;AACd,wBAAgB,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACzD,6CAAW;AAAA,MACb;AAAA,MACA,CAAC,QAAQ;AAAA,IAAA;AAGX,wBAAoB,KAAK,OAAO;AAAA,MAC9B,eAAe,MAAM;AACnB,qBAAa,QAAQ,CAAC,SAAS,YAAY,KAAK,EAAG,CAAC;AAAA,MACtD;AAAA,IAAA,EACA;AAEF,UAAM,qBAAqB;AAAA,MACzBD,UAAS;AAAA,MACTA,UAAS,QAAQ;AAAA,MACjB;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,QACX,MAAK;AAAA,QACL,cAAW;AAAA,QACX,aAAU;AAAA,QACV,eAAY;AAAA,QAEZ,UAAA,oBAAC,MAAA,EAAG,MAAK,QAAO,WAAWA,UAAS,MACjC,UAAA,aAAa,IAAI,CAAC,MAAM,UAAU;AACjC,gBAAM,eAAe,KAAK,YAAY;AACtC,gBAAM,oBAAoBA,UAAS,YAAY;AAE/C,iBACE,oBAAC,MAAA,EAAiB,MAAK,YACrB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI,KAAK;AAAA,cACT,SAAS,KAAK;AAAA,cACd,MAAM,KAAK;AAAA,cACX,OAAO,KAAK;AAAA,cACZ,OAAO,KAAK;AAAA,cACZ,MAAM,KAAK,QAAQ;AAAA,cACnB,UAAU,KAAK;AAAA,cACf,QAAQ,KAAK;AAAA,cACb,SAAS;AAAA,cACT,SAAS,MAAM,YAAY,KAAK,EAAG;AAAA,cACnC,WAAW,KAAK;AAAA,cAChB,UAAU,KAAK;AAAA,cACf,UAAU;AAAA,cACV,WAAW;AAAA,cACX,YAAY;AAAA,cACZ,WAAW;AAAA,gBACTA,UAAS;AAAA,gBACT,KAAK;AAAA,gBACL;AAAA,cAAA;AAAA,cAEF,eAAa,KAAK,aAAa;AAAA,YAAA;AAAA,UAAA,EACjC,GAvBO,KAAK,EAwBd;AAAA,QAEJ,CAAC,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,cAAc,cAAc;ACxG5B,MAAM,WAAW;AAAA,EACf,WAAW;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,aAAa;AACf;AAEA,MAAM,YAAY,MAAM;AAAA,EACtB,CAAC,OAAO,QACN;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,MACf;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -186,7 +186,7 @@ const styles = {
186
186
  shadowStrong,
187
187
  shadowIntense
188
188
  };
189
- const MessagePopup = (props) => {
189
+ const MessagePopUp = (props) => {
190
190
  return /* @__PURE__ */ require$$2.jsx(
191
191
  BaseMessagePopup,
192
192
  {
@@ -197,5 +197,5 @@ const MessagePopup = (props) => {
197
197
  }
198
198
  );
199
199
  };
200
- exports.MessagePopup = MessagePopup;
201
- //# sourceMappingURL=MessagePopup-C-7N3vB0.cjs.map
200
+ exports.MessagePopUp = MessagePopUp;
201
+ //# sourceMappingURL=MessagePopUp-BxFI8IpO.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessagePopup-C-7N3vB0.cjs","sources":["../../src/components/MessagePopUp/MessagePopupBase.tsx","../../src/components/MessagePopUp/next/MessagePopup.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { MessagePopupProps } from \"./MessagePopup.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseMessagePopupProps extends MessagePopupProps {\r\n Button: React.ComponentType<any>;\r\n IconButton: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseMessagePopup: React.FC<BaseMessagePopupProps> = ({\r\n message,\r\n onClose,\r\n onConfirm,\r\n onCancel,\r\n controlsRounding = getDefaultRounding(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n className = \"\",\r\n \"data-testid\": testId = \"message-popup\",\r\n Button,\r\n IconButton,\r\n classMap,\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n const messageId = useId();\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n let portal = document.getElementById(\"popup-portal\");\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = \"popup-portal\";\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n const handleEscape = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleEscape);\r\n return () => {\r\n document.body.classList.remove(\"no-scroll\");\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n };\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n firstButtonRef.current?.focus();\r\n }, 10);\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n\r\n const focusableEls = dialogRef.current?.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n if (!focusableEls || focusableEls.length === 0) return;\r\n\r\n const first = focusableEls[0];\r\n const last = focusableEls[focusableEls.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const wrapperClass = combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={wrapperClass}\r\n onClick={onClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n className={classMap.content}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={messageId}\r\n tabIndex={-1}\r\n ref={dialogRef}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-dialog`}\r\n >\r\n <IconButton\r\n className={classMap.close}\r\n onClick={onClose}\r\n aria-label=\"Close popup\"\r\n icon={CloseIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n data-testid={`${testId}-close`}\r\n />\r\n <h2\r\n id={messageId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </h2>\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {onConfirm && (\r\n <Button\r\n className={classMap.confirm}\r\n state=\"success\"\r\n onClick={onConfirm}\r\n ref={firstButtonRef}\r\n rounding={controlsRounding}\r\n type=\"button\"\r\n data-testid={`${testId}-confirm`}\r\n >\r\n {confirmText}\r\n </Button>\r\n )}\r\n {onCancel && (\r\n <Button\r\n className={classMap.cancel}\r\n state=\"warning\"\r\n onClick={onCancel}\r\n type=\"button\"\r\n data-testid={`${testId}-cancel`}\r\n >\r\n {cancelText}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nexport default BaseMessagePopup;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseMessagePopup from \"../MessagePopupBase\";\r\nimport { Button, IconButton } from \"../../../index.next\";\r\nimport styles from \"./MessagePopup.module.scss\";\r\nimport { MessagePopupProps } from \"../MessagePopup.types\";\r\n\r\nconst MessagePopup: React.FC<MessagePopupProps> = (props) => {\r\n return (\r\n <BaseMessagePopup\r\n {...props}\r\n Button={Button}\r\n IconButton={IconButton}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\n\r\nexport default MessagePopup;\r\n"],"names":["message","getDefaultRounding","getDefaultShadow","Button","IconButton","useState","useRef","useId","useEffect","combineClassNames","capitalize","jsx","jsxs","CloseIcon"],"mappings":"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"}
1
+ {"version":3,"file":"MessagePopUp-BxFI8IpO.cjs","sources":["../../src/components/MessagePopUp/MessagePopUpBase.tsx","../../src/components/MessagePopUp/next/MessagePopUp.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { MessagePopUpProps } from \"./MessagePopUp.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseMessagePopupProps extends MessagePopUpProps {\r\n Button: React.ComponentType<any>;\r\n IconButton: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseMessagePopup: React.FC<BaseMessagePopupProps> = ({\r\n message,\r\n onClose,\r\n onConfirm,\r\n onCancel,\r\n controlsRounding = getDefaultRounding(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n className = \"\",\r\n \"data-testid\": testId = \"message-popup\",\r\n Button,\r\n IconButton,\r\n classMap,\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n const messageId = useId();\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n let portal = document.getElementById(\"popup-portal\");\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = \"popup-portal\";\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n const handleEscape = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleEscape);\r\n return () => {\r\n document.body.classList.remove(\"no-scroll\");\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n };\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n firstButtonRef.current?.focus();\r\n }, 10);\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n\r\n const focusableEls = dialogRef.current?.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n if (!focusableEls || focusableEls.length === 0) return;\r\n\r\n const first = focusableEls[0];\r\n const last = focusableEls[focusableEls.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const wrapperClass = combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={wrapperClass}\r\n onClick={onClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n className={classMap.content}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={messageId}\r\n tabIndex={-1}\r\n ref={dialogRef}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-dialog`}\r\n >\r\n <IconButton\r\n className={classMap.close}\r\n onClick={onClose}\r\n aria-label=\"Close popup\"\r\n icon={CloseIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n data-testid={`${testId}-close`}\r\n />\r\n <h2\r\n id={messageId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </h2>\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {onConfirm && (\r\n <Button\r\n className={classMap.confirm}\r\n state=\"success\"\r\n onClick={onConfirm}\r\n ref={firstButtonRef}\r\n rounding={controlsRounding}\r\n type=\"button\"\r\n data-testid={`${testId}-confirm`}\r\n >\r\n {confirmText}\r\n </Button>\r\n )}\r\n {onCancel && (\r\n <Button\r\n className={classMap.cancel}\r\n state=\"warning\"\r\n onClick={onCancel}\r\n type=\"button\"\r\n data-testid={`${testId}-cancel`}\r\n >\r\n {cancelText}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nexport default BaseMessagePopup;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseMessagePopUp from \"../MessagePopUpBase\";\r\nimport { Button, IconButton } from \"../../../index.next\";\r\nimport styles from \"./MessagePopup.module.scss\";\r\nimport { MessagePopUpProps } from \"../MessagePopUp.types\";\r\n\r\nconst MessagePopUp: React.FC<MessagePopUpProps> = (props) => {\r\n return (\r\n <BaseMessagePopUp\r\n {...props}\r\n Button={Button}\r\n IconButton={IconButton}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\n\r\nexport default MessagePopUp;\r\n"],"names":["message","getDefaultRounding","getDefaultShadow","Button","IconButton","useState","useRef","useId","useEffect","combineClassNames","capitalize","jsx","jsxs","CloseIcon","BaseMessagePopUp"],"mappings":";;;;;;;;;;AAuBA,MAAM,mBAAoD,CAAC;AAAA,EACzD,SAAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,mBAAmBC,kBAAAA,mBAAA;AAAA,EACnB,WAAWA,kBAAAA,mBAAA;AAAA,EACX,SAASC,kBAAAA,iBAAA;AAAA,EACT,cAAc;AAAA,EACd,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,eAAe,SAAS;AAAA,EACxB,QAAAC;AAAA,EACA,YAAAC;AAAA,EACA;AACF,MAAM;AACJ,QAAM,CAAC,WAAW,YAAY,IAAIC,MAAAA,SAAS,KAAK;AAChD,QAAM,CAAC,eAAe,gBAAgB,IAAIA,MAAAA,SAA6B,IAAI;AAC3E,QAAM,YAAYC,MAAAA,OAAuB,IAAI;AAC7C,QAAM,iBAAiBA,MAAAA,OAA0B,IAAI;AACrD,QAAM,YAAYC,MAAAA,MAAA;AAElBC,QAAAA,UAAU,MAAM;AACd,iBAAa,IAAI;AACjB,QAAI,SAAS,SAAS,eAAe,cAAc;AACnD,QAAI,CAAC,QAAQ;AACX,eAAS,SAAS,cAAc,KAAK;AACrC,aAAO,KAAK;AACZ,eAAS,KAAK,YAAY,MAAM;AAAA,IAClC;AACA,qBAAiB,MAAM;AACvB,aAAS,KAAK,UAAU,IAAI,WAAW;AAEvC,UAAM,eAAe,CAAC,MAAgC;AACpD,UAAI,EAAE,QAAQ,SAAU,SAAA;AAAA,IAC1B;AAEA,aAAS,iBAAiB,WAAW,YAAY;AACjD,WAAO,MAAM;AACX,eAAS,KAAK,UAAU,OAAO,WAAW;AAC1C,eAAS,oBAAoB,WAAW,YAAY;AAAA,IACtD;AAAA,EACF,GAAG,CAAC,OAAO,CAAC;AAEZA,QAAAA,UAAU,MAAM;AACd,eAAW,MAAM;;AACf,2BAAe,YAAf,mBAAwB;AAAA,IAC1B,GAAG,EAAE;AAAA,EACP,GAAG,CAAC,SAAS,CAAC;AAEd,QAAM,gBAAgB,CAAC,MAAqC;;AAC1D,QAAI,EAAE,QAAQ,MAAO;AAErB,UAAM,gBAAe,eAAU,YAAV,mBAAmB;AAAA,MACtC;AAAA;AAEF,QAAI,CAAC,gBAAgB,aAAa,WAAW,EAAG;AAEhD,UAAM,QAAQ,aAAa,CAAC;AAC5B,UAAM,OAAO,aAAa,aAAa,SAAS,CAAC;AAEjD,QAAI,EAAE,YAAY,SAAS,kBAAkB,OAAO;AAClD,QAAE,eAAA;AACF,WAAK,MAAA;AAAA,IACP,WAAW,CAAC,EAAE,YAAY,SAAS,kBAAkB,MAAM;AACzD,QAAE,eAAA;AACF,YAAM,MAAA;AAAA,IACR;AAAA,EACF;AAEA,MAAI,CAAC,aAAa,CAAC,cAAe,QAAO;AAEzC,QAAM,eAAeC,WAAAA;AAAAA,IACnB,SAAS;AAAA,IACT,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,IAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,IACnD;AAAA,EAAA;AAGF,SAAO,SAAS;AAAA,IACdC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,QACX,SAAS;AAAA,QACT,MAAK;AAAA,QACL,eAAa;AAAA,QAEb,UAAAC,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS;AAAA,YACpB,SAAS,CAAC,MAAM,EAAE,gBAAA;AAAA,YAClB,MAAK;AAAA,YACL,cAAW;AAAA,YACX,mBAAiB;AAAA,YACjB,UAAU;AAAA,YACV,KAAK;AAAA,YACL,WAAW;AAAA,YACX,eAAa,GAAG,MAAM;AAAA,YAEtB,UAAA;AAAA,cAAAD,2BAAAA;AAAAA,gBAACP;AAAA,gBAAA;AAAA,kBACC,WAAW,SAAS;AAAA,kBACpB,SAAS;AAAA,kBACT,cAAW;AAAA,kBACX,MAAMS,UAAAA;AAAAA,kBACN,OAAM;AAAA,kBACN,MAAK;AAAA,kBACL,eAAa,GAAG,MAAM;AAAA,gBAAA;AAAA,cAAA;AAAA,cAExBF,2BAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,IAAI;AAAA,kBACJ,WAAW,SAAS;AAAA,kBACpB,eAAa,GAAG,MAAM;AAAA,kBAErB,UAAAX;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEHY,2BAAAA,KAAC,SAAI,WAAW,SAAS,SAAS,eAAa,GAAG,MAAM,YACrD,UAAA;AAAA,gBAAA,aACCD,2BAAAA;AAAAA,kBAACR;AAAA,kBAAA;AAAA,oBACC,WAAW,SAAS;AAAA,oBACpB,OAAM;AAAA,oBACN,SAAS;AAAA,oBACT,KAAK;AAAA,oBACL,UAAU;AAAA,oBACV,MAAK;AAAA,oBACL,eAAa,GAAG,MAAM;AAAA,oBAErB,UAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGJ,YACCQ,2BAAAA;AAAAA,kBAACR;AAAA,kBAAA;AAAA,oBACC,WAAW,SAAS;AAAA,oBACpB,OAAM;AAAA,oBACN,SAAS;AAAA,oBACT,MAAK;AAAA,oBACL,eAAa,GAAG,MAAM;AAAA,oBAErB,UAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACH,EAAA,CAEJ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,IAEF;AAAA,EAAA;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9JA,MAAM,eAA4C,CAAC,UAAU;AAC3D,SACEQ,2BAAAA;AAAAA,IAACG;AAAAA,IAAA;AAAA,MACE,GAAG;AAAA,MAAA,QACJX,OAAAA;AAAAA,MAAA,YACAC,WAAAA;AAAAA,MACA,UAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;;"}
@@ -185,7 +185,7 @@ const styles = {
185
185
  shadowStrong,
186
186
  shadowIntense
187
187
  };
188
- const MessagePopup = (props) => {
188
+ const MessagePopUp = (props) => {
189
189
  return /* @__PURE__ */ jsx(
190
190
  BaseMessagePopup,
191
191
  {
@@ -197,6 +197,6 @@ const MessagePopup = (props) => {
197
197
  );
198
198
  };
199
199
  export {
200
- MessagePopup as M
200
+ MessagePopUp as M
201
201
  };
202
- //# sourceMappingURL=MessagePopup-ClfrvxKq.js.map
202
+ //# sourceMappingURL=MessagePopUp-DI7-Ggmn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessagePopup-ClfrvxKq.js","sources":["../../src/components/MessagePopUp/MessagePopupBase.tsx","../../src/components/MessagePopUp/next/MessagePopup.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { MessagePopupProps } from \"./MessagePopup.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseMessagePopupProps extends MessagePopupProps {\r\n Button: React.ComponentType<any>;\r\n IconButton: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseMessagePopup: React.FC<BaseMessagePopupProps> = ({\r\n message,\r\n onClose,\r\n onConfirm,\r\n onCancel,\r\n controlsRounding = getDefaultRounding(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n className = \"\",\r\n \"data-testid\": testId = \"message-popup\",\r\n Button,\r\n IconButton,\r\n classMap,\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n const messageId = useId();\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n let portal = document.getElementById(\"popup-portal\");\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = \"popup-portal\";\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n const handleEscape = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleEscape);\r\n return () => {\r\n document.body.classList.remove(\"no-scroll\");\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n };\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n firstButtonRef.current?.focus();\r\n }, 10);\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n\r\n const focusableEls = dialogRef.current?.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n if (!focusableEls || focusableEls.length === 0) return;\r\n\r\n const first = focusableEls[0];\r\n const last = focusableEls[focusableEls.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const wrapperClass = combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={wrapperClass}\r\n onClick={onClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n className={classMap.content}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={messageId}\r\n tabIndex={-1}\r\n ref={dialogRef}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-dialog`}\r\n >\r\n <IconButton\r\n className={classMap.close}\r\n onClick={onClose}\r\n aria-label=\"Close popup\"\r\n icon={CloseIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n data-testid={`${testId}-close`}\r\n />\r\n <h2\r\n id={messageId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </h2>\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {onConfirm && (\r\n <Button\r\n className={classMap.confirm}\r\n state=\"success\"\r\n onClick={onConfirm}\r\n ref={firstButtonRef}\r\n rounding={controlsRounding}\r\n type=\"button\"\r\n data-testid={`${testId}-confirm`}\r\n >\r\n {confirmText}\r\n </Button>\r\n )}\r\n {onCancel && (\r\n <Button\r\n className={classMap.cancel}\r\n state=\"warning\"\r\n onClick={onCancel}\r\n type=\"button\"\r\n data-testid={`${testId}-cancel`}\r\n >\r\n {cancelText}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nexport default BaseMessagePopup;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseMessagePopup from \"../MessagePopupBase\";\r\nimport { Button, IconButton } from \"../../../index.next\";\r\nimport styles from \"./MessagePopup.module.scss\";\r\nimport { MessagePopupProps } from \"../MessagePopup.types\";\r\n\r\nconst MessagePopup: React.FC<MessagePopupProps> = (props) => {\r\n return (\r\n <BaseMessagePopup\r\n {...props}\r\n Button={Button}\r\n IconButton={IconButton}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\n\r\nexport default MessagePopup;\r\n"],"names":["message","Button","IconButton"],"mappings":"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"}
1
+ {"version":3,"file":"MessagePopUp-DI7-Ggmn.js","sources":["../../src/components/MessagePopUp/MessagePopUpBase.tsx","../../src/components/MessagePopUp/next/MessagePopUp.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useRef,\r\n useState,\r\n useId,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { CloseIcon } from \"../../Icons\";\r\nimport { MessagePopUpProps } from \"./MessagePopUp.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseMessagePopupProps extends MessagePopUpProps {\r\n Button: React.ComponentType<any>;\r\n IconButton: React.ComponentType<any>;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseMessagePopup: React.FC<BaseMessagePopupProps> = ({\r\n message,\r\n onClose,\r\n onConfirm,\r\n onCancel,\r\n controlsRounding = getDefaultRounding(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n className = \"\",\r\n \"data-testid\": testId = \"message-popup\",\r\n Button,\r\n IconButton,\r\n classMap,\r\n}) => {\r\n const [isMounted, setIsMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const dialogRef = useRef<HTMLDivElement>(null);\r\n const firstButtonRef = useRef<HTMLButtonElement>(null);\r\n const messageId = useId();\r\n\r\n useEffect(() => {\r\n setIsMounted(true);\r\n let portal = document.getElementById(\"popup-portal\");\r\n if (!portal) {\r\n portal = document.createElement(\"div\");\r\n portal.id = \"popup-portal\";\r\n document.body.appendChild(portal);\r\n }\r\n setPortalElement(portal);\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n const handleEscape = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose();\r\n };\r\n\r\n document.addEventListener(\"keydown\", handleEscape);\r\n return () => {\r\n document.body.classList.remove(\"no-scroll\");\r\n document.removeEventListener(\"keydown\", handleEscape);\r\n };\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n firstButtonRef.current?.focus();\r\n }, 10);\r\n }, [isMounted]);\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== \"Tab\") return;\r\n\r\n const focusableEls = dialogRef.current?.querySelectorAll<HTMLElement>(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n if (!focusableEls || focusableEls.length === 0) return;\r\n\r\n const first = focusableEls[0];\r\n const last = focusableEls[focusableEls.length - 1];\r\n\r\n if (e.shiftKey && document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n } else if (!e.shiftKey && document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n };\r\n\r\n if (!isMounted || !portalElement) return null;\r\n\r\n const wrapperClass = combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n );\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={wrapperClass}\r\n onClick={onClose}\r\n role=\"presentation\"\r\n data-testid={testId}\r\n >\r\n <div\r\n className={classMap.content}\r\n onClick={(e) => e.stopPropagation()}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={messageId}\r\n tabIndex={-1}\r\n ref={dialogRef}\r\n onKeyDown={handleKeyDown}\r\n data-testid={`${testId}-dialog`}\r\n >\r\n <IconButton\r\n className={classMap.close}\r\n onClick={onClose}\r\n aria-label=\"Close popup\"\r\n icon={CloseIcon}\r\n state=\"error\"\r\n size=\"small\"\r\n data-testid={`${testId}-close`}\r\n />\r\n <h2\r\n id={messageId}\r\n className={classMap.message}\r\n data-testid={`${testId}-message`}\r\n >\r\n {message}\r\n </h2>\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {onConfirm && (\r\n <Button\r\n className={classMap.confirm}\r\n state=\"success\"\r\n onClick={onConfirm}\r\n ref={firstButtonRef}\r\n rounding={controlsRounding}\r\n type=\"button\"\r\n data-testid={`${testId}-confirm`}\r\n >\r\n {confirmText}\r\n </Button>\r\n )}\r\n {onCancel && (\r\n <Button\r\n className={classMap.cancel}\r\n state=\"warning\"\r\n onClick={onCancel}\r\n type=\"button\"\r\n data-testid={`${testId}-cancel`}\r\n >\r\n {cancelText}\r\n </Button>\r\n )}\r\n </div>\r\n </div>\r\n </div>,\r\n portalElement\r\n );\r\n};\r\n\r\nexport default BaseMessagePopup;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseMessagePopUp from \"../MessagePopUpBase\";\r\nimport { Button, IconButton } from \"../../../index.next\";\r\nimport styles from \"./MessagePopup.module.scss\";\r\nimport { MessagePopUpProps } from \"../MessagePopUp.types\";\r\n\r\nconst MessagePopUp: React.FC<MessagePopUpProps> = (props) => {\r\n return (\r\n <BaseMessagePopUp\r\n {...props}\r\n Button={Button}\r\n IconButton={IconButton}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\n\r\nexport default MessagePopUp;\r\n"],"names":["message","Button","IconButton","BaseMessagePopUp"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const MessagePopup = require("./MessagePopup-C-7N3vB0.cjs");
3
- module.exports = MessagePopup.MessagePopup;
2
+ const MessagePopUp = require("./MessagePopUp-BxFI8IpO.cjs");
3
+ module.exports = MessagePopUp.MessagePopUp;
4
4
  //# sourceMappingURL=MessagePopUp.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { M } from "./MessagePopup-ClfrvxKq.js";
1
+ import { M } from "./MessagePopUp-DI7-Ggmn.js";
2
2
  export {
3
3
  M as default
4
4
  };
@@ -33,7 +33,7 @@ const Rating = require("./Rating-BjN0Sj0r.cjs");
33
33
  const Skeleton = require("./Skeleton-CMuXs5GO.cjs");
34
34
  const Spinner = require("./Spinner-Doh4Uft1.cjs");
35
35
  const Tooltip = require("./Tooltip-DHhLeygn.cjs");
36
- const MessagePopup = require("./MessagePopup-C-7N3vB0.cjs");
36
+ const MessagePopUp = require("./MessagePopUp-BxFI8IpO.cjs");
37
37
  const PopOver = require("./PopOver-CHs0s9rp.cjs");
38
38
  const NavBar = require("./NavBar-JPkuek76.cjs");
39
39
  const Breadcrumbs = require("./Breadcrumbs-0cJD4s9s.cjs");
@@ -59,7 +59,7 @@ const ChipGroupBase = React.forwardRef(
59
59
  chips,
60
60
  onRemove,
61
61
  position = "topCenter",
62
- size = "medium",
62
+ size = borealStyleConfig.getDefaultSize(),
63
63
  className = "",
64
64
  ChipComponent,
65
65
  classMap
@@ -218,7 +218,7 @@ exports.Rating = Rating.Rating;
218
218
  exports.Skeleton = Skeleton.SkeletonLoader;
219
219
  exports.Spinner = Spinner.Spinner;
220
220
  exports.Tooltip = Tooltip.Tooltip;
221
- exports.MessagePopUp = MessagePopup.MessagePopup;
221
+ exports.MessagePopUp = MessagePopUp.MessagePopUp;
222
222
  exports.PopOver = PopOver.Popover;
223
223
  exports.Navbar = NavBar.NavBar;
224
224
  exports.Breadcrumbs = Breadcrumbs.Breadcrumbs;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/next/ChipGroup.tsx","../../src/components/Footer/next/ClientFooterWrapper.tsx"],"sourcesContent":["import {\r\n forwardRef,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n} from \"react\";\r\nimport type { ChipGroupProps, ChipGroupRef } from \"./ChipGroup.types\";\r\nimport type { ChipProps } from \"../Chip.types\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { combineClassNames } from \"@/utils/classNames\";\r\n\r\nexport interface ChipGroupBaseProps extends ChipGroupProps {\r\n ChipComponent: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst ChipGroupBase = forwardRef<ChipGroupRef, ChipGroupBaseProps>(\r\n (\r\n {\r\n chips,\r\n onRemove,\r\n position = \"topCenter\",\r\n size = \"medium\",\r\n className = \"\",\r\n ChipComponent,\r\n classMap,\r\n },\r\n ref\r\n ) => {\r\n const [visibleChips, setVisibleChips] = useState<ChipProps[]>([]);\r\n\r\n useEffect(() => {\r\n const initialized = chips.map((chip) => ({\r\n ...chip,\r\n id: chip.id || uuidv4(),\r\n }));\r\n setVisibleChips(initialized);\r\n }, [chips]);\r\n\r\n const handleClose = useCallback(\r\n (id: string) => {\r\n setVisibleChips((prev) => prev.filter((c) => c.id !== id));\r\n onRemove?.(id);\r\n },\r\n [onRemove]\r\n );\r\n\r\n useImperativeHandle(ref, () => ({\r\n closeAllChips: () => {\r\n visibleChips.forEach((chip) => handleClose(chip.id!));\r\n },\r\n }));\r\n\r\n const containerClassName = [\r\n classMap.container,\r\n classMap[position],\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \");\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n role=\"region\"\r\n aria-label=\"Notifications\"\r\n aria-live=\"polite\"\r\n data-testid=\"chip-group\"\r\n >\r\n <ul role=\"list\" className={classMap.list}>\r\n {visibleChips.map((chip, index) => {\r\n const chipPosition = chip.position || position;\r\n const chipPositionClass = classMap[chipPosition];\r\n\r\n return (\r\n <li key={chip.id} role=\"listitem\">\r\n <ChipComponent\r\n id={chip.id}\r\n message={chip.message}\r\n icon={chip.icon}\r\n theme={chip.theme}\r\n state={chip.state}\r\n size={chip.size || size}\r\n rounding={chip.rounding}\r\n shadow={chip.shadow}\r\n visible={true}\r\n onClose={() => handleClose(chip.id!)}\r\n autoClose={chip.autoClose}\r\n duration={chip.duration}\r\n position={chipPosition}\r\n usePortal={false}\r\n stackIndex={index}\r\n className={combineClassNames(\r\n classMap.chip,\r\n chip.className,\r\n chipPositionClass\r\n )}\r\n data-testid={chip[\"data-testid\"]}\r\n />\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nChipGroupBase.displayName = \"ChipGroupBase\";\r\nexport default ChipGroupBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport { Chip } from \"../../../../index.next\";\r\nimport styles from \"./ChipGroup.module.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst ChipGroup = React.forwardRef<ChipGroupRef, ChipGroupProps>(\r\n (props, ref) => (\r\n <ChipGroupBase\r\n {...props}\r\n ref={ref}\r\n ChipComponent={Chip}\r\n classMap={styles}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n","/**\r\n * ---------------------------------------------------------------------\r\n * ClientFooterWrapper.tsx\r\n * ---------------------------------------------------------------------\r\n * A client-side wrapper for the `<Footer>` component to ensure\r\n * it renders only on the client (required when using dynamic content\r\n * or browser-specific APIs within the Footer).\r\n *\r\n * This is useful in Next.js when a server component cannot render\r\n * a client-only dependency.\r\n *\r\n * Props are directly passed through from `FooterProps`.\r\n *\r\n * Usage:\r\n * ```tsx\r\n * <ClientFooterWrapper\r\n * copyright=\"© 2025 Davin Chiupka\"\r\n * showThemeSelect\r\n * />\r\n * ```\r\n */\r\n\r\n\"use client\";\r\n\r\nimport Footer from \"./Footer\";\r\nimport type { FooterProps } from \"../Footer.types\";\r\n\r\nexport default function ClientFooterWrapper(props: FooterProps) {\r\n return <Footer {...props} />;\r\n}\r\n"],"names":["forwardRef","useState","useEffect","chip","uuidv4","useCallback","useImperativeHandle","jsx","combineClassNames","Chip","Footer"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/next/ChipGroup.tsx","../../src/components/Footer/next/ClientFooterWrapper.tsx"],"sourcesContent":["import {\r\n forwardRef,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n} from \"react\";\r\nimport type { ChipGroupProps, ChipGroupRef } from \"./ChipGroup.types\";\r\nimport type { ChipProps } from \"../Chip.types\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { combineClassNames } from \"@/utils/classNames\";\r\nimport { getDefaultSize } from \"@/config/boreal-style-config\";\r\n\r\nexport interface ChipGroupBaseProps extends ChipGroupProps {\r\n ChipComponent: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst ChipGroupBase = forwardRef<ChipGroupRef, ChipGroupBaseProps>(\r\n (\r\n {\r\n chips,\r\n onRemove,\r\n position = \"topCenter\",\r\n size = getDefaultSize(),\r\n className = \"\",\r\n ChipComponent,\r\n classMap,\r\n },\r\n ref\r\n ) => {\r\n const [visibleChips, setVisibleChips] = useState<ChipProps[]>([]);\r\n\r\n useEffect(() => {\r\n const initialized = chips.map((chip) => ({\r\n ...chip,\r\n id: chip.id || uuidv4(),\r\n }));\r\n setVisibleChips(initialized);\r\n }, [chips]);\r\n\r\n const handleClose = useCallback(\r\n (id: string) => {\r\n setVisibleChips((prev) => prev.filter((c) => c.id !== id));\r\n onRemove?.(id);\r\n },\r\n [onRemove]\r\n );\r\n\r\n useImperativeHandle(ref, () => ({\r\n closeAllChips: () => {\r\n visibleChips.forEach((chip) => handleClose(chip.id!));\r\n },\r\n }));\r\n\r\n const containerClassName = [\r\n classMap.container,\r\n classMap[position],\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \");\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n role=\"region\"\r\n aria-label=\"Notifications\"\r\n aria-live=\"polite\"\r\n data-testid=\"chip-group\"\r\n >\r\n <ul role=\"list\" className={classMap.list}>\r\n {visibleChips.map((chip, index) => {\r\n const chipPosition = chip.position || position;\r\n const chipPositionClass = classMap[chipPosition];\r\n\r\n return (\r\n <li key={chip.id} role=\"listitem\">\r\n <ChipComponent\r\n id={chip.id}\r\n message={chip.message}\r\n icon={chip.icon}\r\n theme={chip.theme}\r\n state={chip.state}\r\n size={chip.size || size}\r\n rounding={chip.rounding}\r\n shadow={chip.shadow}\r\n visible={true}\r\n onClose={() => handleClose(chip.id!)}\r\n autoClose={chip.autoClose}\r\n duration={chip.duration}\r\n position={chipPosition}\r\n usePortal={false}\r\n stackIndex={index}\r\n className={combineClassNames(\r\n classMap.chip,\r\n chip.className,\r\n chipPositionClass\r\n )}\r\n data-testid={chip[\"data-testid\"]}\r\n />\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nChipGroupBase.displayName = \"ChipGroupBase\";\r\nexport default ChipGroupBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport { Chip } from \"../../../../index.next\";\r\nimport styles from \"./ChipGroup.module.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst ChipGroup = React.forwardRef<ChipGroupRef, ChipGroupProps>(\r\n (props, ref) => (\r\n <ChipGroupBase\r\n {...props}\r\n ref={ref}\r\n ChipComponent={Chip}\r\n classMap={styles}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n","/**\r\n * ---------------------------------------------------------------------\r\n * ClientFooterWrapper.tsx\r\n * ---------------------------------------------------------------------\r\n * A client-side wrapper for the `<Footer>` component to ensure\r\n * it renders only on the client (required when using dynamic content\r\n * or browser-specific APIs within the Footer).\r\n *\r\n * This is useful in Next.js when a server component cannot render\r\n * a client-only dependency.\r\n *\r\n * Props are directly passed through from `FooterProps`.\r\n *\r\n * Usage:\r\n * ```tsx\r\n * <ClientFooterWrapper\r\n * copyright=\"© 2025 Davin Chiupka\"\r\n * showThemeSelect\r\n * />\r\n * ```\r\n */\r\n\r\n\"use client\";\r\n\r\nimport Footer from \"./Footer\";\r\nimport type { FooterProps } from \"../Footer.types\";\r\n\r\nexport default function ClientFooterWrapper(props: FooterProps) {\r\n return <Footer {...props} />;\r\n}\r\n"],"names":["forwardRef","getDefaultSize","useState","useEffect","chip","uuidv4","useCallback","useImperativeHandle","jsx","combineClassNames","Chip","Footer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,gBAAgBA,MAAAA;AAAAA,EACpB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,OAAOC,kBAAAA,eAAA;AAAA,IACP,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EAAA,GAEF,QACG;AACH,UAAM,CAAC,cAAc,eAAe,IAAIC,MAAAA,SAAsB,CAAA,CAAE;AAEhEC,UAAAA,UAAU,MAAM;AACd,YAAM,cAAc,MAAM,IAAI,CAACC,WAAU;AAAA,QACvC,GAAGA;AAAA,QACH,IAAIA,MAAK,MAAMC,KAAAA,GAAA;AAAA,MAAO,EACtB;AACF,sBAAgB,WAAW;AAAA,IAC7B,GAAG,CAAC,KAAK,CAAC;AAEV,UAAM,cAAcC,MAAAA;AAAAA,MAClB,CAAC,OAAe;AACd,wBAAgB,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACzD,6CAAW;AAAA,MACb;AAAA,MACA,CAAC,QAAQ;AAAA,IAAA;AAGXC,UAAAA,oBAAoB,KAAK,OAAO;AAAA,MAC9B,eAAe,MAAM;AACnB,qBAAa,QAAQ,CAACH,UAAS,YAAYA,MAAK,EAAG,CAAC;AAAA,MACtD;AAAA,IAAA,EACA;AAEF,UAAM,qBAAqB;AAAA,MACzB,SAAS;AAAA,MACT,SAAS,QAAQ;AAAA,MACjB;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACEI,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,QACX,MAAK;AAAA,QACL,cAAW;AAAA,QACX,aAAU;AAAA,QACV,eAAY;AAAA,QAEZ,UAAAA,2BAAAA,IAAC,MAAA,EAAG,MAAK,QAAO,WAAW,SAAS,MACjC,UAAA,aAAa,IAAI,CAACJ,OAAM,UAAU;AACjC,gBAAM,eAAeA,MAAK,YAAY;AACtC,gBAAM,oBAAoB,SAAS,YAAY;AAE/C,iBACEI,2BAAAA,IAAC,MAAA,EAAiB,MAAK,YACrB,UAAAA,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAIJ,MAAK;AAAA,cACT,SAASA,MAAK;AAAA,cACd,MAAMA,MAAK;AAAA,cACX,OAAOA,MAAK;AAAA,cACZ,OAAOA,MAAK;AAAA,cACZ,MAAMA,MAAK,QAAQ;AAAA,cACnB,UAAUA,MAAK;AAAA,cACf,QAAQA,MAAK;AAAA,cACb,SAAS;AAAA,cACT,SAAS,MAAM,YAAYA,MAAK,EAAG;AAAA,cACnC,WAAWA,MAAK;AAAA,cAChB,UAAUA,MAAK;AAAA,cACf,UAAU;AAAA,cACV,WAAW;AAAA,cACX,YAAY;AAAA,cACZ,WAAWK,WAAAA;AAAAA,gBACT,SAAS;AAAA,gBACTL,MAAK;AAAA,gBACL;AAAA,cAAA;AAAA,cAEF,eAAaA,MAAK,aAAa;AAAA,YAAA;AAAA,UAAA,EACjC,GAvBOA,MAAK,EAwBd;AAAA,QAEJ,CAAC,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,cAAc,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtG5B,MAAM,YAAY,MAAM;AAAA,EACtB,CAAC,OAAO,QACNI,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,eAAeE,KAAAA;AAAAA,MACf,UAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;ACUA,SAAwB,oBAAoB,OAAoB;AAC9D,SAAOF,+BAACG,OAAAA,QAAA,EAAQ,GAAG,MAAA,CAAO;AAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,7 @@
1
1
  import { a, T } from "./ThemeContext-Bo0vLczy.js";
2
2
  import { r } from "./registerColorSheme-BPX0H7hl.js";
3
3
  import { colorSchemes } from "./colorSchemes.js";
4
+ import { c as getDefaultSize } from "./boreal-style-config-BILmxkZG.js";
4
5
  import { s } from "./boreal-style-config-BILmxkZG.js";
5
6
  import { B } from "./Button-CbX-VlK_.js";
6
7
  import { I } from "./IconButton-DFrFh0kg.js";
@@ -32,7 +33,7 @@ import { R as R2 } from "./Rating-Bs7oCe4w.js";
32
33
  import { S as S4 } from "./Skeleton-BWBHgsOM.js";
33
34
  import { S as S5 } from "./Spinner-BxvU43sx.js";
34
35
  import { T as T5 } from "./Tooltip-G3P0OyTP.js";
35
- import { M as M2 } from "./MessagePopup-ClfrvxKq.js";
36
+ import { M as M2 } from "./MessagePopUp-DI7-Ggmn.js";
36
37
  import { P as P2 } from "./PopOver-pllmYvp6.js";
37
38
  import { N } from "./NavBar-CRbRBzGq.js";
38
39
  import { B as B3 } from "./Breadcrumbs-liNC5ZzY.js";
@@ -58,7 +59,7 @@ const ChipGroupBase = forwardRef(
58
59
  chips,
59
60
  onRemove,
60
61
  position = "topCenter",
61
- size = "medium",
62
+ size = getDefaultSize(),
62
63
  className = "",
63
64
  ChipComponent,
64
65
  classMap
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/next/ChipGroup.tsx","../../src/components/Footer/next/ClientFooterWrapper.tsx"],"sourcesContent":["import {\r\n forwardRef,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n} from \"react\";\r\nimport type { ChipGroupProps, ChipGroupRef } from \"./ChipGroup.types\";\r\nimport type { ChipProps } from \"../Chip.types\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { combineClassNames } from \"@/utils/classNames\";\r\n\r\nexport interface ChipGroupBaseProps extends ChipGroupProps {\r\n ChipComponent: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst ChipGroupBase = forwardRef<ChipGroupRef, ChipGroupBaseProps>(\r\n (\r\n {\r\n chips,\r\n onRemove,\r\n position = \"topCenter\",\r\n size = \"medium\",\r\n className = \"\",\r\n ChipComponent,\r\n classMap,\r\n },\r\n ref\r\n ) => {\r\n const [visibleChips, setVisibleChips] = useState<ChipProps[]>([]);\r\n\r\n useEffect(() => {\r\n const initialized = chips.map((chip) => ({\r\n ...chip,\r\n id: chip.id || uuidv4(),\r\n }));\r\n setVisibleChips(initialized);\r\n }, [chips]);\r\n\r\n const handleClose = useCallback(\r\n (id: string) => {\r\n setVisibleChips((prev) => prev.filter((c) => c.id !== id));\r\n onRemove?.(id);\r\n },\r\n [onRemove]\r\n );\r\n\r\n useImperativeHandle(ref, () => ({\r\n closeAllChips: () => {\r\n visibleChips.forEach((chip) => handleClose(chip.id!));\r\n },\r\n }));\r\n\r\n const containerClassName = [\r\n classMap.container,\r\n classMap[position],\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \");\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n role=\"region\"\r\n aria-label=\"Notifications\"\r\n aria-live=\"polite\"\r\n data-testid=\"chip-group\"\r\n >\r\n <ul role=\"list\" className={classMap.list}>\r\n {visibleChips.map((chip, index) => {\r\n const chipPosition = chip.position || position;\r\n const chipPositionClass = classMap[chipPosition];\r\n\r\n return (\r\n <li key={chip.id} role=\"listitem\">\r\n <ChipComponent\r\n id={chip.id}\r\n message={chip.message}\r\n icon={chip.icon}\r\n theme={chip.theme}\r\n state={chip.state}\r\n size={chip.size || size}\r\n rounding={chip.rounding}\r\n shadow={chip.shadow}\r\n visible={true}\r\n onClose={() => handleClose(chip.id!)}\r\n autoClose={chip.autoClose}\r\n duration={chip.duration}\r\n position={chipPosition}\r\n usePortal={false}\r\n stackIndex={index}\r\n className={combineClassNames(\r\n classMap.chip,\r\n chip.className,\r\n chipPositionClass\r\n )}\r\n data-testid={chip[\"data-testid\"]}\r\n />\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nChipGroupBase.displayName = \"ChipGroupBase\";\r\nexport default ChipGroupBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport { Chip } from \"../../../../index.next\";\r\nimport styles from \"./ChipGroup.module.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst ChipGroup = React.forwardRef<ChipGroupRef, ChipGroupProps>(\r\n (props, ref) => (\r\n <ChipGroupBase\r\n {...props}\r\n ref={ref}\r\n ChipComponent={Chip}\r\n classMap={styles}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n","/**\r\n * ---------------------------------------------------------------------\r\n * ClientFooterWrapper.tsx\r\n * ---------------------------------------------------------------------\r\n * A client-side wrapper for the `<Footer>` component to ensure\r\n * it renders only on the client (required when using dynamic content\r\n * or browser-specific APIs within the Footer).\r\n *\r\n * This is useful in Next.js when a server component cannot render\r\n * a client-only dependency.\r\n *\r\n * Props are directly passed through from `FooterProps`.\r\n *\r\n * Usage:\r\n * ```tsx\r\n * <ClientFooterWrapper\r\n * copyright=\"© 2025 Davin Chiupka\"\r\n * showThemeSelect\r\n * />\r\n * ```\r\n */\r\n\r\n\"use client\";\r\n\r\nimport Footer from \"./Footer\";\r\nimport type { FooterProps } from \"../Footer.types\";\r\n\r\nexport default function ClientFooterWrapper(props: FooterProps) {\r\n return <Footer {...props} />;\r\n}\r\n"],"names":["chip","uuidv4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,gBAAgB;AAAA,EACpB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EAAA,GAEF,QACG;AACH,UAAM,CAAC,cAAc,eAAe,IAAI,SAAsB,CAAA,CAAE;AAEhE,cAAU,MAAM;AACd,YAAM,cAAc,MAAM,IAAI,CAACA,WAAU;AAAA,QACvC,GAAGA;AAAA,QACH,IAAIA,MAAK,MAAMC,GAAA;AAAA,MAAO,EACtB;AACF,sBAAgB,WAAW;AAAA,IAC7B,GAAG,CAAC,KAAK,CAAC;AAEV,UAAM,cAAc;AAAA,MAClB,CAAC,OAAe;AACd,wBAAgB,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACzD,6CAAW;AAAA,MACb;AAAA,MACA,CAAC,QAAQ;AAAA,IAAA;AAGX,wBAAoB,KAAK,OAAO;AAAA,MAC9B,eAAe,MAAM;AACnB,qBAAa,QAAQ,CAACD,UAAS,YAAYA,MAAK,EAAG,CAAC;AAAA,MACtD;AAAA,IAAA,EACA;AAEF,UAAM,qBAAqB;AAAA,MACzB,SAAS;AAAA,MACT,SAAS,QAAQ;AAAA,MACjB;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,QACX,MAAK;AAAA,QACL,cAAW;AAAA,QACX,aAAU;AAAA,QACV,eAAY;AAAA,QAEZ,UAAA,oBAAC,MAAA,EAAG,MAAK,QAAO,WAAW,SAAS,MACjC,UAAA,aAAa,IAAI,CAACA,OAAM,UAAU;AACjC,gBAAM,eAAeA,MAAK,YAAY;AACtC,gBAAM,oBAAoB,SAAS,YAAY;AAE/C,iBACE,oBAAC,MAAA,EAAiB,MAAK,YACrB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAIA,MAAK;AAAA,cACT,SAASA,MAAK;AAAA,cACd,MAAMA,MAAK;AAAA,cACX,OAAOA,MAAK;AAAA,cACZ,OAAOA,MAAK;AAAA,cACZ,MAAMA,MAAK,QAAQ;AAAA,cACnB,UAAUA,MAAK;AAAA,cACf,QAAQA,MAAK;AAAA,cACb,SAAS;AAAA,cACT,SAAS,MAAM,YAAYA,MAAK,EAAG;AAAA,cACnC,WAAWA,MAAK;AAAA,cAChB,UAAUA,MAAK;AAAA,cACf,UAAU;AAAA,cACV,WAAW;AAAA,cACX,YAAY;AAAA,cACZ,WAAW;AAAA,gBACT,SAAS;AAAA,gBACTA,MAAK;AAAA,gBACL;AAAA,cAAA;AAAA,cAEF,eAAaA,MAAK,aAAa;AAAA,YAAA;AAAA,UAAA,EACjC,GAvBOA,MAAK,EAwBd;AAAA,QAEJ,CAAC,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,cAAc,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrG5B,MAAM,YAAY,MAAM;AAAA,EACtB,CAAC,OAAO,QACN;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,MACf,UAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;ACUA,SAAwB,oBAAoB,OAAoB;AAC9D,SAAO,oBAAC,QAAA,EAAQ,GAAG,MAAA,CAAO;AAC5B;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/next/ChipGroup.tsx","../../src/components/Footer/next/ClientFooterWrapper.tsx"],"sourcesContent":["import {\r\n forwardRef,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n} from \"react\";\r\nimport type { ChipGroupProps, ChipGroupRef } from \"./ChipGroup.types\";\r\nimport type { ChipProps } from \"../Chip.types\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { combineClassNames } from \"@/utils/classNames\";\r\nimport { getDefaultSize } from \"@/config/boreal-style-config\";\r\n\r\nexport interface ChipGroupBaseProps extends ChipGroupProps {\r\n ChipComponent: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst ChipGroupBase = forwardRef<ChipGroupRef, ChipGroupBaseProps>(\r\n (\r\n {\r\n chips,\r\n onRemove,\r\n position = \"topCenter\",\r\n size = getDefaultSize(),\r\n className = \"\",\r\n ChipComponent,\r\n classMap,\r\n },\r\n ref\r\n ) => {\r\n const [visibleChips, setVisibleChips] = useState<ChipProps[]>([]);\r\n\r\n useEffect(() => {\r\n const initialized = chips.map((chip) => ({\r\n ...chip,\r\n id: chip.id || uuidv4(),\r\n }));\r\n setVisibleChips(initialized);\r\n }, [chips]);\r\n\r\n const handleClose = useCallback(\r\n (id: string) => {\r\n setVisibleChips((prev) => prev.filter((c) => c.id !== id));\r\n onRemove?.(id);\r\n },\r\n [onRemove]\r\n );\r\n\r\n useImperativeHandle(ref, () => ({\r\n closeAllChips: () => {\r\n visibleChips.forEach((chip) => handleClose(chip.id!));\r\n },\r\n }));\r\n\r\n const containerClassName = [\r\n classMap.container,\r\n classMap[position],\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \");\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n role=\"region\"\r\n aria-label=\"Notifications\"\r\n aria-live=\"polite\"\r\n data-testid=\"chip-group\"\r\n >\r\n <ul role=\"list\" className={classMap.list}>\r\n {visibleChips.map((chip, index) => {\r\n const chipPosition = chip.position || position;\r\n const chipPositionClass = classMap[chipPosition];\r\n\r\n return (\r\n <li key={chip.id} role=\"listitem\">\r\n <ChipComponent\r\n id={chip.id}\r\n message={chip.message}\r\n icon={chip.icon}\r\n theme={chip.theme}\r\n state={chip.state}\r\n size={chip.size || size}\r\n rounding={chip.rounding}\r\n shadow={chip.shadow}\r\n visible={true}\r\n onClose={() => handleClose(chip.id!)}\r\n autoClose={chip.autoClose}\r\n duration={chip.duration}\r\n position={chipPosition}\r\n usePortal={false}\r\n stackIndex={index}\r\n className={combineClassNames(\r\n classMap.chip,\r\n chip.className,\r\n chipPositionClass\r\n )}\r\n data-testid={chip[\"data-testid\"]}\r\n />\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nChipGroupBase.displayName = \"ChipGroupBase\";\r\nexport default ChipGroupBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport { Chip } from \"../../../../index.next\";\r\nimport styles from \"./ChipGroup.module.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst ChipGroup = React.forwardRef<ChipGroupRef, ChipGroupProps>(\r\n (props, ref) => (\r\n <ChipGroupBase\r\n {...props}\r\n ref={ref}\r\n ChipComponent={Chip}\r\n classMap={styles}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n","/**\r\n * ---------------------------------------------------------------------\r\n * ClientFooterWrapper.tsx\r\n * ---------------------------------------------------------------------\r\n * A client-side wrapper for the `<Footer>` component to ensure\r\n * it renders only on the client (required when using dynamic content\r\n * or browser-specific APIs within the Footer).\r\n *\r\n * This is useful in Next.js when a server component cannot render\r\n * a client-only dependency.\r\n *\r\n * Props are directly passed through from `FooterProps`.\r\n *\r\n * Usage:\r\n * ```tsx\r\n * <ClientFooterWrapper\r\n * copyright=\"© 2025 Davin Chiupka\"\r\n * showThemeSelect\r\n * />\r\n * ```\r\n */\r\n\r\n\"use client\";\r\n\r\nimport Footer from \"./Footer\";\r\nimport type { FooterProps } from \"../Footer.types\";\r\n\r\nexport default function ClientFooterWrapper(props: FooterProps) {\r\n return <Footer {...props} />;\r\n}\r\n"],"names":["chip","uuidv4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAM,gBAAgB;AAAA,EACpB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,OAAO,eAAA;AAAA,IACP,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EAAA,GAEF,QACG;AACH,UAAM,CAAC,cAAc,eAAe,IAAI,SAAsB,CAAA,CAAE;AAEhE,cAAU,MAAM;AACd,YAAM,cAAc,MAAM,IAAI,CAACA,WAAU;AAAA,QACvC,GAAGA;AAAA,QACH,IAAIA,MAAK,MAAMC,GAAA;AAAA,MAAO,EACtB;AACF,sBAAgB,WAAW;AAAA,IAC7B,GAAG,CAAC,KAAK,CAAC;AAEV,UAAM,cAAc;AAAA,MAClB,CAAC,OAAe;AACd,wBAAgB,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACzD,6CAAW;AAAA,MACb;AAAA,MACA,CAAC,QAAQ;AAAA,IAAA;AAGX,wBAAoB,KAAK,OAAO;AAAA,MAC9B,eAAe,MAAM;AACnB,qBAAa,QAAQ,CAACD,UAAS,YAAYA,MAAK,EAAG,CAAC;AAAA,MACtD;AAAA,IAAA,EACA;AAEF,UAAM,qBAAqB;AAAA,MACzB,SAAS;AAAA,MACT,SAAS,QAAQ;AAAA,MACjB;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,QACX,MAAK;AAAA,QACL,cAAW;AAAA,QACX,aAAU;AAAA,QACV,eAAY;AAAA,QAEZ,UAAA,oBAAC,MAAA,EAAG,MAAK,QAAO,WAAW,SAAS,MACjC,UAAA,aAAa,IAAI,CAACA,OAAM,UAAU;AACjC,gBAAM,eAAeA,MAAK,YAAY;AACtC,gBAAM,oBAAoB,SAAS,YAAY;AAE/C,iBACE,oBAAC,MAAA,EAAiB,MAAK,YACrB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAIA,MAAK;AAAA,cACT,SAASA,MAAK;AAAA,cACd,MAAMA,MAAK;AAAA,cACX,OAAOA,MAAK;AAAA,cACZ,OAAOA,MAAK;AAAA,cACZ,MAAMA,MAAK,QAAQ;AAAA,cACnB,UAAUA,MAAK;AAAA,cACf,QAAQA,MAAK;AAAA,cACb,SAAS;AAAA,cACT,SAAS,MAAM,YAAYA,MAAK,EAAG;AAAA,cACnC,WAAWA,MAAK;AAAA,cAChB,UAAUA,MAAK;AAAA,cACf,UAAU;AAAA,cACV,WAAW;AAAA,cACX,YAAY;AAAA,cACZ,WAAW;AAAA,gBACT,SAAS;AAAA,gBACTA,MAAK;AAAA,gBACL;AAAA,cAAA;AAAA,cAEF,eAAaA,MAAK,aAAa;AAAA,YAAA;AAAA,UAAA,EACjC,GAvBOA,MAAK,EAwBd;AAAA,QAEJ,CAAC,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,cAAc,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtG5B,MAAM,YAAY,MAAM;AAAA,EACtB,CAAC,OAAO,QACN;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,MACf,UAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;ACUA,SAAwB,oBAAoB,OAAoB;AAC9D,SAAO,oBAAC,QAAA,EAAQ,GAAG,MAAA,CAAO;AAC5B;"}