boreal-ui 0.0.15 → 0.0.17

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 (56) 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/{NavBar-C5UMiYpA.cjs → NavBar-CDI5S3fK.cjs} +3 -2
  8. package/dist/core/NavBar-CDI5S3fK.cjs.map +1 -0
  9. package/dist/core/{NavBar-BAHSDPtT.js → NavBar-Dyd9USO4.js} +3 -2
  10. package/dist/core/NavBar-Dyd9USO4.js.map +1 -0
  11. package/dist/core/NavBar.cjs.js +1 -1
  12. package/dist/core/NavBar.js +1 -1
  13. package/dist/core/index.cjs.js +4 -4
  14. package/dist/core/index.cjs.js.map +1 -1
  15. package/dist/core/index.js +4 -3
  16. package/dist/core/index.js.map +1 -1
  17. package/dist/next/{MessagePopup-C-7N3vB0.cjs → MessagePopUp-BxFI8IpO.cjs} +3 -3
  18. package/dist/next/{MessagePopup-C-7N3vB0.cjs.map → MessagePopUp-BxFI8IpO.cjs.map} +1 -1
  19. package/dist/next/{MessagePopup-ClfrvxKq.js → MessagePopUp-DI7-Ggmn.js} +3 -3
  20. package/dist/next/{MessagePopup-ClfrvxKq.js.map → MessagePopUp-DI7-Ggmn.js.map} +1 -1
  21. package/dist/next/MessagePopUp.cjs.js +2 -2
  22. package/dist/next/MessagePopUp.js +1 -1
  23. package/dist/next/{NavBar-CRbRBzGq.js → NavBar-Br6pYp7w.js} +3 -2
  24. package/dist/next/NavBar-Br6pYp7w.js.map +1 -0
  25. package/dist/next/{NavBar-JPkuek76.cjs → NavBar-CGuVgKpW.cjs} +3 -2
  26. package/dist/next/NavBar-CGuVgKpW.cjs.map +1 -0
  27. package/dist/next/NavBar.cjs.js +1 -1
  28. package/dist/next/NavBar.js +1 -1
  29. package/dist/next/index.cjs.js +4 -4
  30. package/dist/next/index.cjs.js.map +1 -1
  31. package/dist/next/index.js +4 -3
  32. package/dist/next/index.js.map +1 -1
  33. package/dist/tsconfig.build.tsbuildinfo +1 -1
  34. package/dist/types/components/Chip/ChipGroup/ChipGroupBase.d.ts.map +1 -1
  35. package/dist/types/components/MessagePopUp/{MessagePopup.types.d.ts → MessagePopUp.types.d.ts} +2 -2
  36. package/dist/types/components/MessagePopUp/{MessagePopup.types.d.ts.map → MessagePopUp.types.d.ts.map} +1 -1
  37. package/dist/types/components/MessagePopUp/{MessagePopupBase.d.ts → MessagePopUpBase.d.ts} +3 -3
  38. package/dist/types/components/MessagePopUp/{MessagePopupBase.d.ts.map → MessagePopUpBase.d.ts.map} +1 -1
  39. package/dist/types/components/MessagePopUp/core/MessagePopUp.d.ts +6 -0
  40. package/dist/types/components/MessagePopUp/core/{MessagePopup.d.ts.map → MessagePopUp.d.ts.map} +1 -1
  41. package/dist/types/components/MessagePopUp/next/MessagePopUp.d.ts +5 -0
  42. package/dist/types/components/MessagePopUp/next/MessagePopUp.d.ts.map +1 -0
  43. package/dist/types/components/NavBar/NavBar.types.d.ts +2 -0
  44. package/dist/types/components/NavBar/NavBar.types.d.ts.map +1 -1
  45. package/dist/types/components/NavBar/NavBarBase.d.ts.map +1 -1
  46. package/dist/types/index.core.d.ts +1 -1
  47. package/dist/types/index.next.d.ts +1 -1
  48. package/dist/types/public.types.d.ts +1 -1
  49. package/package.json +1 -1
  50. package/dist/core/NavBar-BAHSDPtT.js.map +0 -1
  51. package/dist/core/NavBar-C5UMiYpA.cjs.map +0 -1
  52. package/dist/next/NavBar-CRbRBzGq.js.map +0 -1
  53. package/dist/next/NavBar-JPkuek76.cjs.map +0 -1
  54. package/dist/types/components/MessagePopUp/core/MessagePopup.d.ts +0 -6
  55. package/dist/types/components/MessagePopUp/next/MessagePopup.d.ts +0 -5
  56. package/dist/types/components/MessagePopUp/next/MessagePopup.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavBar-CGuVgKpW.cjs","sources":["../../src/components/NavBar/NavBarBase.tsx","../../src/components/NavBar/next/NavBar.tsx"],"sourcesContent":["import React, { JSX, useMemo } from \"react\";\r\nimport { NavBarProps } from \"./NavBar.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseNavBarProps extends NavBarProps {\r\n currentPath: string;\r\n LinkWrapper: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n className: string;\r\n isActive: boolean;\r\n testId: string;\r\n \"aria-current\"?: \"page\";\r\n }) => JSX.Element;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseNavBar: React.FC<BaseNavBarProps> = ({\r\n items,\r\n currentPath,\r\n LinkWrapper,\r\n classMap,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className,\r\n \"data-testid\": testId = \"empty-state\",\r\n}) => {\r\n const wrapperClass = useMemo(\r\n () => combineClassNames(classMap.container, classMap[theme], className),\r\n [classMap, theme]\r\n );\r\n\r\n const itemClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.item,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n return (\r\n <nav\r\n role=\"navigation\"\r\n aria-label=\"Main navigation\"\r\n className={wrapperClass}\r\n data-testid={`${testId}-nav-bar`}\r\n >\r\n {items.map((item, index) => {\r\n const isActive = currentPath === item.path;\r\n\r\n console.log(\r\n \"Nav item className:\",\r\n combineClassNames(classMap.item, isActive && classMap.active)\r\n );\r\n\r\n return (\r\n <LinkWrapper\r\n key={`${item.label}-${index}`}\r\n href={item.path}\r\n isActive={isActive}\r\n className={combineClassNames(\r\n itemClass,\r\n isActive && classMap[\"item--active\"]\r\n )}\r\n testId={`${testId}-nav-item-${item.label.toLowerCase()}`}\r\n aria-current={isActive ? \"page\" : undefined}\r\n >\r\n <div\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-nav-icon-${item.label.toLowerCase()}`}\r\n >\r\n {item.icon}\r\n </div>\r\n <span className={classMap.label}>{item.label}</span>\r\n </LinkWrapper>\r\n );\r\n })}\r\n </nav>\r\n );\r\n};\r\n\r\nexport default BaseNavBar;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseNavBar from \"../NavBarBase\";\r\nimport Link from \"next/link\";\r\nimport { usePathname } from \"next/navigation\";\r\nimport styles from \"./NavBar.module.scss\";\r\nimport { NavBarProps } from \"../NavBar.types\";\r\n\r\nconst NavBar: React.FC<NavBarProps & { mockPath?: string }> = ({\r\n mockPath,\r\n ...props\r\n}) => {\r\n const pathname = usePathname();\r\n const resolvedPath = mockPath ?? pathname;\r\n\r\n return (\r\n <BaseNavBar\r\n {...props}\r\n currentPath={resolvedPath || \"/\"}\r\n LinkWrapper={({ href, children, className, isActive, testId }) => (\r\n <Link\r\n href={href}\r\n className={className}\r\n aria-current={isActive ? \"page\" : undefined}\r\n data-testid={testId}\r\n >\r\n {children}\r\n </Link>\r\n )}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\n\r\nexport default NavBar;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useMemo","combineClassNames","capitalize","jsx","item","jsxs","usePathname","Link"],"mappings":";;;;;;;;AAuBA,MAAM,aAAwC,CAAC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQA,kBAAAA,gBAAA;AAAA,EACR,WAAWC,kBAAAA,mBAAA;AAAA,EACX,SAASC,kBAAAA,iBAAA;AAAA,EACT;AAAA,EACA,eAAe,SAAS;AAC1B,MAAM;AACJ,QAAM,eAAeC,MAAAA;AAAAA,IACnB,MAAMC,WAAAA,kBAAkB,SAAS,WAAW,SAAS,KAAK,GAAG,SAAS;AAAA,IACtE,CAAC,UAAU,KAAK;AAAA,EAAA;AAGlB,QAAM,YAAYD,MAAAA;AAAAA,IAChB,MACEC,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,IAAA;AAAA,IAEvD,CAAC,UAAU,QAAQ,QAAQ;AAAA,EAAA;AAG7B,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAW;AAAA,MACX,WAAW;AAAA,MACX,eAAa,GAAG,MAAM;AAAA,MAErB,UAAA,MAAM,IAAI,CAACC,OAAM,UAAU;AAC1B,cAAM,WAAW,gBAAgBA,MAAK;AAEtC,gBAAQ;AAAA,UACN;AAAA,UACAH,WAAAA,kBAAkB,SAAS,MAAM,YAAY,SAAS,MAAM;AAAA,QAAA;AAG9D,eACEI,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YAEC,MAAMD,MAAK;AAAA,YACX;AAAA,YACA,WAAWH,WAAAA;AAAAA,cACT;AAAA,cACA,YAAY,SAAS,cAAc;AAAA,YAAA;AAAA,YAErC,QAAQ,GAAG,MAAM,aAAaG,MAAK,MAAM,aAAa;AAAA,YACtD,gBAAc,WAAW,SAAS;AAAA,YAElC,UAAA;AAAA,cAAAD,2BAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,SAAS;AAAA,kBACpB,eAAY;AAAA,kBACZ,eAAa,GAAG,MAAM,aAAaC,MAAK,MAAM,aAAa;AAAA,kBAE1D,UAAAA,MAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,6CAEP,QAAA,EAAK,WAAW,SAAS,OAAQ,gBAAK,MAAA,CAAM;AAAA,YAAA;AAAA,UAAA;AAAA,UAjBxC,GAAGA,MAAK,KAAK,IAAI,KAAK;AAAA,QAAA;AAAA,MAoBjC,CAAC;AAAA,IAAA;AAAA,EAAA;AAGP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChFA,MAAM,SAAwD,CAAC;AAAA,EAC7D;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,WAAWE,WAAAA,WAAAA,YAAA;AACjB,QAAM,eAAe,YAAY;AAEjC,SACEH,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,aAAa,gBAAgB;AAAA,MAC7B,aAAa,CAAC,EAAE,MAAM,UAAU,WAAW,UAAU,aACnDA,2BAAAA;AAAAA,QAACI,KAAAA;AAAAA,QAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,gBAAc,WAAW,SAAS;AAAA,UAClC,eAAa;AAAA,UAEZ;AAAA,QAAA;AAAA,MAAA;AAAA,MAGL,UAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;;"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const NavBar = require("./NavBar-JPkuek76.cjs");
2
+ const NavBar = require("./NavBar-CGuVgKpW.cjs");
3
3
  module.exports = NavBar.NavBar;
4
4
  //# sourceMappingURL=NavBar.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { N } from "./NavBar-CRbRBzGq.js";
1
+ import { N } from "./NavBar-Br6pYp7w.js";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -33,9 +33,9 @@ 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
- const NavBar = require("./NavBar-JPkuek76.cjs");
38
+ const NavBar = require("./NavBar-CGuVgKpW.cjs");
39
39
  const Breadcrumbs = require("./Breadcrumbs-0cJD4s9s.cjs");
40
40
  const Tabs = require("./Tabs-DuZPFjen.cjs");
41
41
  const Stepper = require("./Stepper-D2UYDRwT.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":"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"}
@@ -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,9 +33,9 @@ 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
- import { N } from "./NavBar-CRbRBzGq.js";
38
+ import { N } from "./NavBar-Br6pYp7w.js";
38
39
  import { B as B3 } from "./Breadcrumbs-liNC5ZzY.js";
39
40
  import { T as T6 } from "./Tabs-CNU0A_YY.js";
40
41
  import { S as S6 } from "./Stepper-5FojeYPE.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;"}