boreal-ui 0.0.64 → 0.0.66

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 (74) hide show
  1. package/dist/core/{NavBar-Bbd3SVHi.cjs → NavBar-B1mNXJ88.cjs} +6 -6
  2. package/dist/core/NavBar-B1mNXJ88.cjs.map +1 -0
  3. package/dist/core/{NavBar-DujO5gH_.js → NavBar-oZrT55L_.js} +6 -6
  4. package/dist/core/NavBar-oZrT55L_.js.map +1 -0
  5. package/dist/core/NavBar.cjs.js +1 -1
  6. package/dist/core/NavBar.js +1 -1
  7. package/dist/core/{Sidebar-13bKMpw7.cjs → Sidebar-DMR5T81x.cjs} +51 -17
  8. package/dist/core/Sidebar-DMR5T81x.cjs.map +1 -0
  9. package/dist/core/{Sidebar-DN_J0CwY.js → Sidebar-DiQvQvqa.js} +51 -17
  10. package/dist/core/Sidebar-DiQvQvqa.js.map +1 -0
  11. package/dist/core/Sidebar.cjs.js +1 -1
  12. package/dist/core/Sidebar.js +1 -1
  13. package/dist/core/boreal-ui.css +6 -3
  14. package/dist/core/index.cjs.js +2 -2
  15. package/dist/core/index.js +2 -2
  16. package/dist/next/{CommandPalette-BL6WEeB9.cjs → CommandPalette-B-qhSIcP.cjs} +2 -2
  17. package/dist/next/{CommandPalette-BL6WEeB9.cjs.map → CommandPalette-B-qhSIcP.cjs.map} +1 -1
  18. package/dist/next/{CommandPalette-Do6cyU-X.js → CommandPalette-CLe5dspX.js} +2 -2
  19. package/dist/next/{CommandPalette-Do6cyU-X.js.map → CommandPalette-CLe5dspX.js.map} +1 -1
  20. package/dist/next/CommandPalette.cjs.js +1 -1
  21. package/dist/next/CommandPalette.js +1 -1
  22. package/dist/next/{NavBar-CRF1Qtot.js → NavBar-EOEZXiEB.js} +43 -43
  23. package/dist/next/NavBar-EOEZXiEB.js.map +1 -0
  24. package/dist/next/{NavBar-CqENeqkx.cjs → NavBar-qz6oMF3W.cjs} +43 -43
  25. package/dist/next/NavBar-qz6oMF3W.cjs.map +1 -0
  26. package/dist/next/NavBar.cjs.js +1 -1
  27. package/dist/next/NavBar.js +1 -1
  28. package/dist/next/{Sidebar-CXu2pmRX.cjs → Sidebar-DbzIKbwL.cjs} +42 -21
  29. package/dist/next/Sidebar-DbzIKbwL.cjs.map +1 -0
  30. package/dist/next/{Sidebar-DIJSf6Np.js → Sidebar-HqR8uzt4.js} +42 -21
  31. package/dist/next/Sidebar-HqR8uzt4.js.map +1 -0
  32. package/dist/next/Sidebar.cjs.js +1 -1
  33. package/dist/next/Sidebar.js +1 -1
  34. package/dist/next/{TagInput-D_uwHhyp.js → TagInput-BdF4k1f2.js} +2 -2
  35. package/dist/next/{TagInput-D_uwHhyp.js.map → TagInput-BdF4k1f2.js.map} +1 -1
  36. package/dist/next/{TagInput-BmDFdbya.cjs → TagInput-Bkz8dFHQ.cjs} +2 -2
  37. package/dist/next/{TagInput-BmDFdbya.cjs.map → TagInput-Bkz8dFHQ.cjs.map} +1 -1
  38. package/dist/next/TagInput.cjs.js +1 -1
  39. package/dist/next/TagInput.js +1 -1
  40. package/dist/next/{TextArea-DHWAB-SG.js → TextArea-DN6CeRB2.js} +35 -31
  41. package/dist/next/{TextArea-DHWAB-SG.js.map → TextArea-DN6CeRB2.js.map} +1 -1
  42. package/dist/next/{TextArea-BYVNcPkb.cjs → TextArea-GUnAVpIS.cjs} +35 -31
  43. package/dist/next/{TextArea-BYVNcPkb.cjs.map → TextArea-GUnAVpIS.cjs.map} +1 -1
  44. package/dist/next/TextArea.cjs.js +1 -1
  45. package/dist/next/TextArea.js +1 -1
  46. package/dist/next/{TextInput-Ce0hLx8w.js → TextInput-BjOiLWZE.js} +32 -32
  47. package/dist/next/{TextInput-Ce0hLx8w.js.map → TextInput-BjOiLWZE.js.map} +1 -1
  48. package/dist/next/{TextInput-uBklbK19.cjs → TextInput-BogGxTmE.cjs} +32 -32
  49. package/dist/next/{TextInput-uBklbK19.cjs.map → TextInput-BogGxTmE.cjs.map} +1 -1
  50. package/dist/next/TextInput.cjs.js +1 -1
  51. package/dist/next/TextInput.js +1 -1
  52. package/dist/next/boreal-ui.css +263 -262
  53. package/dist/next/index.cjs.js +6 -6
  54. package/dist/next/index.js +6 -6
  55. package/dist/tsconfig.build.tsbuildinfo +1 -1
  56. package/dist/types/components/NavBar/NavBar.types.d.ts +1 -1
  57. package/dist/types/components/NavBar/NavBar.types.d.ts.map +1 -1
  58. package/dist/types/components/NavBar/NavBarBase.d.ts.map +1 -1
  59. package/dist/types/components/NavBar/core/NavBar.d.ts.map +1 -1
  60. package/dist/types/components/NavBar/next/NavBar.d.ts.map +1 -1
  61. package/dist/types/components/Sidebar/Sidebar.types.d.ts +2 -0
  62. package/dist/types/components/Sidebar/Sidebar.types.d.ts.map +1 -1
  63. package/dist/types/components/Sidebar/SidebarBase.d.ts.map +1 -1
  64. package/dist/types/components/Sidebar/core/Sidebar.d.ts.map +1 -1
  65. package/dist/types/components/Sidebar/next/Sidebar.d.ts.map +1 -1
  66. package/package.json +1 -1
  67. package/dist/core/NavBar-Bbd3SVHi.cjs.map +0 -1
  68. package/dist/core/NavBar-DujO5gH_.js.map +0 -1
  69. package/dist/core/Sidebar-13bKMpw7.cjs.map +0 -1
  70. package/dist/core/Sidebar-DN_J0CwY.js.map +0 -1
  71. package/dist/next/NavBar-CRF1Qtot.js.map +0 -1
  72. package/dist/next/NavBar-CqENeqkx.cjs.map +0 -1
  73. package/dist/next/Sidebar-CXu2pmRX.cjs.map +0 -1
  74. package/dist/next/Sidebar-DIJSf6Np.js.map +0 -1
@@ -4,13 +4,12 @@ const React = require("react");
4
4
  const classNames = require("./classNames-BcWMx052.cjs");
5
5
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
6
6
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
7
- const normalizePath = (p) => p.endsWith("/") && p.length > 1 ? p.slice(0, -1) : p;
8
7
  const slugify = (s) => s.toLowerCase().trim().replace(/\s+/g, "-").replace(/[^a-z0-9]/g, "");
9
8
  const BaseNavBar = ({
10
9
  items,
11
- currentPath,
12
10
  LinkWrapper,
13
11
  classMap,
12
+ isItemActive,
14
13
  theme = borealStyleConfig.getDefaultTheme(),
15
14
  rounding = borealStyleConfig.getDefaultRounding(),
16
15
  shadow = borealStyleConfig.getDefaultShadow(),
@@ -29,7 +28,6 @@ const BaseNavBar = ({
29
28
  ),
30
29
  [classMap, shadow, rounding]
31
30
  );
32
- const current = normalizePath(currentPath ?? "/");
33
31
  return /* @__PURE__ */ jsxRuntime.jsx(
34
32
  "nav",
35
33
  {
@@ -37,7 +35,7 @@ const BaseNavBar = ({
37
35
  className: wrapperClass,
38
36
  "data-testid": `${testId}-nav-bar`,
39
37
  children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: classMap.list, children: items.map((item) => {
40
- const isActive = normalizePath(item.path) === current;
38
+ const isActive = (isItemActive == null ? void 0 : isItemActive(item)) ?? false;
41
39
  const slug = slugify(item.label || item.path);
42
40
  return /* @__PURE__ */ jsxRuntime.jsx("li", { className: classMap.listItem, children: /* @__PURE__ */ jsxRuntime.jsx(
43
41
  LinkWrapper,
@@ -93,16 +91,18 @@ const classes = {
93
91
  roundLarge: "nav_round-Large",
94
92
  roundFull: "nav_round-Full"
95
93
  };
94
+ const normalizePath = (p) => p.endsWith("/") && p.length > 1 ? p.slice(0, -1) : p;
96
95
  const NavBar = (props) => {
97
96
  const [pathname, setPathname] = React.useState("");
98
97
  React.useEffect(() => {
99
98
  setPathname(window.location.pathname);
100
99
  }, []);
100
+ const isItemActive = (item) => normalizePath(item.path) === normalizePath(pathname);
101
101
  return /* @__PURE__ */ jsxRuntime.jsx(
102
102
  BaseNavBar,
103
103
  {
104
104
  ...props,
105
- currentPath: pathname,
105
+ isItemActive,
106
106
  LinkWrapper: ({
107
107
  href,
108
108
  children,
@@ -125,4 +125,4 @@ const NavBar = (props) => {
125
125
  };
126
126
  NavBar.displayName = "NavBar";
127
127
  exports.NavBar = NavBar;
128
- //# sourceMappingURL=NavBar-Bbd3SVHi.cjs.map
128
+ //# sourceMappingURL=NavBar-B1mNXJ88.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavBar-B1mNXJ88.cjs","sources":["../../src/components/NavBar/NavBarBase.tsx","../../src/components/NavBar/core/NavBar.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\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\nimport { BaseNavBarProps } from \"./NavBar.types\";\r\n\r\nconst slugify = (s: string) =>\r\n s\r\n .toLowerCase()\r\n .trim()\r\n .replace(/\\s+/g, \"-\")\r\n .replace(/[^a-z0-9]/g, \"\");\r\n\r\nconst BaseNavBar: React.FC<BaseNavBarProps> = ({\r\n items,\r\n LinkWrapper,\r\n classMap,\r\n isItemActive,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n \"data-testid\": testId = \"nav-bar\",\r\n}) => {\r\n const wrapperClass = useMemo(\r\n () => combineClassNames(classMap.container, classMap[theme], className),\r\n [classMap, theme, className],\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 aria-label=\"Main navigation\"\r\n className={wrapperClass}\r\n data-testid={`${testId}-nav-bar`}\r\n >\r\n <ul className={classMap.list}>\r\n {items.map((item) => {\r\n const isActive = isItemActive?.(item) ?? false;\r\n const slug = slugify(item.label || item.path);\r\n\r\n return (\r\n <li key={`${item.path}-${slug}`} className={classMap.listItem}>\r\n <LinkWrapper\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 data-testid={`${testId}-nav-item-${slug}`}\r\n aria-current={isActive ? \"page\" : undefined}\r\n >\r\n <span className={classMap.linkContent}>\r\n {item.icon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-nav-icon-${slug}`}\r\n >\r\n {item.icon}\r\n </span>\r\n )}\r\n <span className={classMap.label}>{item.label}</span>\r\n </span>\r\n </LinkWrapper>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </nav>\r\n );\r\n};\r\n\r\nBaseNavBar.displayName = \"BaseNavBar\";\r\nexport default BaseNavBar;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport BaseNavBar from \"../NavBarBase\";\r\nimport \"./NavBar.scss\";\r\nimport { NavBarProps, NavItem } from \"../NavBar.types\";\r\n\r\nconst classes = {\r\n container: \"nav\",\r\n item: \"nav_item\",\r\n list: \"nav_list\",\r\n item_active: \"nav_active\",\r\n icon: \"nav_icon_container\",\r\n label: \"nav_label\",\r\n linkContent: \"nav_link_container\",\r\n\r\n primary: \"nav_primary\",\r\n secondary: \"nav_secondary\",\r\n tertiary: \"nav_tertiary\",\r\n quaternary: \"nav_quaternary\",\r\n clear: \"nav_clear\",\r\n\r\n shadowNone: \"nav_shadow-None\",\r\n shadowLight: \"nav_shadow-Light\",\r\n shadowMedium: \"nav_shadow-Medium\",\r\n shadowStrong: \"nav_shadow-Strong\",\r\n shadowIntense: \"nav_shadow-Intense\",\r\n\r\n roundNone: \"nav_round-None\",\r\n roundSmall: \"nav_round-Small\",\r\n roundMedium: \"nav_round-Medium\",\r\n roundLarge: \"nav_round-Large\",\r\n roundFull: \"nav_round-Full\",\r\n};\r\n\r\nconst normalizePath = (p: string) =>\r\n p.endsWith(\"/\") && p.length > 1 ? p.slice(0, -1) : p;\r\n\r\nconst NavBar: React.FC<NavBarProps> = (props) => {\r\n const [pathname, setPathname] = useState(\"\");\r\n\r\n useEffect(() => {\r\n setPathname(window.location.pathname);\r\n }, []);\r\n\r\n const isItemActive = (item: NavItem) =>\r\n normalizePath(item.path) === normalizePath(pathname);\r\n\r\n return (\r\n <BaseNavBar\r\n {...props}\r\n isItemActive={isItemActive}\r\n LinkWrapper={({\r\n href,\r\n children,\r\n className,\r\n isActive,\r\n \"data-testid\": testId,\r\n }) => (\r\n <a\r\n href={href}\r\n className={className}\r\n aria-current={isActive ? \"page\" : undefined}\r\n data-testid={testId}\r\n >\r\n {children}\r\n </a>\r\n )}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\nNavBar.displayName = \"NavBar\";\r\nexport default NavBar;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useMemo","combineClassNames","capitalize","jsx","jsxs","useState","useEffect"],"mappings":"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"}
@@ -3,13 +3,12 @@ import { useMemo, useState, useEffect } from "react";
3
3
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
4
4
  import { c as capitalize } from "./capitalize-C0TSQSPh.js";
5
5
  import { d as getDefaultTheme, a as getDefaultRounding, b as getDefaultShadow } from "./boreal-style-config-BILmxkZG.js";
6
- const normalizePath = (p) => p.endsWith("/") && p.length > 1 ? p.slice(0, -1) : p;
7
6
  const slugify = (s) => s.toLowerCase().trim().replace(/\s+/g, "-").replace(/[^a-z0-9]/g, "");
8
7
  const BaseNavBar = ({
9
8
  items,
10
- currentPath,
11
9
  LinkWrapper,
12
10
  classMap,
11
+ isItemActive,
13
12
  theme = getDefaultTheme(),
14
13
  rounding = getDefaultRounding(),
15
14
  shadow = getDefaultShadow(),
@@ -28,7 +27,6 @@ const BaseNavBar = ({
28
27
  ),
29
28
  [classMap, shadow, rounding]
30
29
  );
31
- const current = normalizePath(currentPath ?? "/");
32
30
  return /* @__PURE__ */ jsx(
33
31
  "nav",
34
32
  {
@@ -36,7 +34,7 @@ const BaseNavBar = ({
36
34
  className: wrapperClass,
37
35
  "data-testid": `${testId}-nav-bar`,
38
36
  children: /* @__PURE__ */ jsx("ul", { className: classMap.list, children: items.map((item) => {
39
- const isActive = normalizePath(item.path) === current;
37
+ const isActive = (isItemActive == null ? void 0 : isItemActive(item)) ?? false;
40
38
  const slug = slugify(item.label || item.path);
41
39
  return /* @__PURE__ */ jsx("li", { className: classMap.listItem, children: /* @__PURE__ */ jsx(
42
40
  LinkWrapper,
@@ -92,16 +90,18 @@ const classes = {
92
90
  roundLarge: "nav_round-Large",
93
91
  roundFull: "nav_round-Full"
94
92
  };
93
+ const normalizePath = (p) => p.endsWith("/") && p.length > 1 ? p.slice(0, -1) : p;
95
94
  const NavBar = (props) => {
96
95
  const [pathname, setPathname] = useState("");
97
96
  useEffect(() => {
98
97
  setPathname(window.location.pathname);
99
98
  }, []);
99
+ const isItemActive = (item) => normalizePath(item.path) === normalizePath(pathname);
100
100
  return /* @__PURE__ */ jsx(
101
101
  BaseNavBar,
102
102
  {
103
103
  ...props,
104
- currentPath: pathname,
104
+ isItemActive,
105
105
  LinkWrapper: ({
106
106
  href,
107
107
  children,
@@ -126,4 +126,4 @@ NavBar.displayName = "NavBar";
126
126
  export {
127
127
  NavBar as N
128
128
  };
129
- //# sourceMappingURL=NavBar-DujO5gH_.js.map
129
+ //# sourceMappingURL=NavBar-oZrT55L_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavBar-oZrT55L_.js","sources":["../../src/components/NavBar/NavBarBase.tsx","../../src/components/NavBar/core/NavBar.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\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\nimport { BaseNavBarProps } from \"./NavBar.types\";\r\n\r\nconst slugify = (s: string) =>\r\n s\r\n .toLowerCase()\r\n .trim()\r\n .replace(/\\s+/g, \"-\")\r\n .replace(/[^a-z0-9]/g, \"\");\r\n\r\nconst BaseNavBar: React.FC<BaseNavBarProps> = ({\r\n items,\r\n LinkWrapper,\r\n classMap,\r\n isItemActive,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n \"data-testid\": testId = \"nav-bar\",\r\n}) => {\r\n const wrapperClass = useMemo(\r\n () => combineClassNames(classMap.container, classMap[theme], className),\r\n [classMap, theme, className],\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 aria-label=\"Main navigation\"\r\n className={wrapperClass}\r\n data-testid={`${testId}-nav-bar`}\r\n >\r\n <ul className={classMap.list}>\r\n {items.map((item) => {\r\n const isActive = isItemActive?.(item) ?? false;\r\n const slug = slugify(item.label || item.path);\r\n\r\n return (\r\n <li key={`${item.path}-${slug}`} className={classMap.listItem}>\r\n <LinkWrapper\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 data-testid={`${testId}-nav-item-${slug}`}\r\n aria-current={isActive ? \"page\" : undefined}\r\n >\r\n <span className={classMap.linkContent}>\r\n {item.icon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-nav-icon-${slug}`}\r\n >\r\n {item.icon}\r\n </span>\r\n )}\r\n <span className={classMap.label}>{item.label}</span>\r\n </span>\r\n </LinkWrapper>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </nav>\r\n );\r\n};\r\n\r\nBaseNavBar.displayName = \"BaseNavBar\";\r\nexport default BaseNavBar;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport BaseNavBar from \"../NavBarBase\";\r\nimport \"./NavBar.scss\";\r\nimport { NavBarProps, NavItem } from \"../NavBar.types\";\r\n\r\nconst classes = {\r\n container: \"nav\",\r\n item: \"nav_item\",\r\n list: \"nav_list\",\r\n item_active: \"nav_active\",\r\n icon: \"nav_icon_container\",\r\n label: \"nav_label\",\r\n linkContent: \"nav_link_container\",\r\n\r\n primary: \"nav_primary\",\r\n secondary: \"nav_secondary\",\r\n tertiary: \"nav_tertiary\",\r\n quaternary: \"nav_quaternary\",\r\n clear: \"nav_clear\",\r\n\r\n shadowNone: \"nav_shadow-None\",\r\n shadowLight: \"nav_shadow-Light\",\r\n shadowMedium: \"nav_shadow-Medium\",\r\n shadowStrong: \"nav_shadow-Strong\",\r\n shadowIntense: \"nav_shadow-Intense\",\r\n\r\n roundNone: \"nav_round-None\",\r\n roundSmall: \"nav_round-Small\",\r\n roundMedium: \"nav_round-Medium\",\r\n roundLarge: \"nav_round-Large\",\r\n roundFull: \"nav_round-Full\",\r\n};\r\n\r\nconst normalizePath = (p: string) =>\r\n p.endsWith(\"/\") && p.length > 1 ? p.slice(0, -1) : p;\r\n\r\nconst NavBar: React.FC<NavBarProps> = (props) => {\r\n const [pathname, setPathname] = useState(\"\");\r\n\r\n useEffect(() => {\r\n setPathname(window.location.pathname);\r\n }, []);\r\n\r\n const isItemActive = (item: NavItem) =>\r\n normalizePath(item.path) === normalizePath(pathname);\r\n\r\n return (\r\n <BaseNavBar\r\n {...props}\r\n isItemActive={isItemActive}\r\n LinkWrapper={({\r\n href,\r\n children,\r\n className,\r\n isActive,\r\n \"data-testid\": testId,\r\n }) => (\r\n <a\r\n href={href}\r\n className={className}\r\n aria-current={isActive ? \"page\" : undefined}\r\n data-testid={testId}\r\n >\r\n {children}\r\n </a>\r\n )}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\nNavBar.displayName = \"NavBar\";\r\nexport default NavBar;\r\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const NavBar = require("./NavBar-Bbd3SVHi.cjs");
2
+ const NavBar = require("./NavBar-B1mNXJ88.cjs");
3
3
  module.exports = NavBar.NavBar;
4
4
  //# sourceMappingURL=NavBar.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { N } from "./NavBar-DujO5gH_.js";
1
+ import { N } from "./NavBar-oZrT55L_.js";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -8,8 +8,9 @@ const CheveronDownIcon = require("./CheveronDownIcon-B2codmaq.cjs");
8
8
  const SidebarBase = ({
9
9
  links,
10
10
  classMap,
11
- currentPath,
12
11
  LinkComponent = "a",
12
+ isLinkActive,
13
+ hasActiveChild,
13
14
  theme = borealStyleConfig.getDefaultTheme(),
14
15
  rounding = borealStyleConfig.getDefaultRounding(),
15
16
  shadow = borealStyleConfig.getDefaultShadow(),
@@ -37,27 +38,30 @@ const SidebarBase = ({
37
38
  const next = {};
38
39
  const walk = (nodes) => {
39
40
  var _a;
40
- for (const n of nodes) {
41
- if ((_a = n.children) == null ? void 0 : _a.length) {
42
- const anyChildActive = n.children.some((c) => c.href && c.href === currentPath) || n.children && walk(n.children);
43
- if (anyChildActive) next[n.label] = true;
41
+ for (const node of nodes) {
42
+ if ((_a = node.children) == null ? void 0 : _a.length) {
43
+ const childIsActive = (hasActiveChild == null ? void 0 : hasActiveChild(node)) ?? node.children.some(
44
+ (child) => {
45
+ var _a2;
46
+ return ((isLinkActive == null ? void 0 : isLinkActive(child)) ?? false) || !!((_a2 = child.children) == null ? void 0 : _a2.length) && walk(child.children);
47
+ }
48
+ );
49
+ if (childIsActive) {
50
+ next[node.label] = true;
51
+ }
44
52
  }
45
53
  }
46
54
  return nodes.some(
47
- (n) => {
55
+ (node) => {
48
56
  var _a2;
49
- return n.href && n.href === currentPath || !!((_a2 = n.children) == null ? void 0 : _a2.length) && n.children.some((c) => c.href === currentPath);
57
+ return ((isLinkActive == null ? void 0 : isLinkActive(node)) ?? false) || !!((_a2 = node.children) == null ? void 0 : _a2.length) && walk(node.children);
50
58
  }
51
59
  );
52
60
  };
53
61
  walk(links);
54
62
  setOpenItems((prev) => ({ ...prev, ...next }));
55
- }, [currentPath, links]);
63
+ }, [links, isLinkActive, hasActiveChild]);
56
64
  const toggleItem = (key) => setOpenItems((prev) => ({ ...prev, [key]: !prev[key] }));
57
- const submenuRefs = React.useRef({});
58
- const setSubmenuRef = (key, el) => {
59
- submenuRefs.current[key] = el;
60
- };
61
65
  const containerClasses = React.useMemo(
62
66
  () => classNames.combineClassNames(
63
67
  classMap.wrapper,
@@ -80,7 +84,14 @@ const SidebarBase = ({
80
84
  "data-testid": `${testId}-list`,
81
85
  children: items.map(({ label, href, children, icon }, idx) => {
82
86
  const key = `${label}-${idx}`;
83
- const isActive = !!href && currentPath === href;
87
+ const link = { label, href, children, icon };
88
+ const isActive = (isLinkActive == null ? void 0 : isLinkActive(link)) ?? false;
89
+ const containsActiveChild = (hasActiveChild == null ? void 0 : hasActiveChild(link)) ?? !!(children == null ? void 0 : children.some(
90
+ (child) => {
91
+ var _a;
92
+ return ((isLinkActive == null ? void 0 : isLinkActive(child)) ?? false) || ((_a = child.children) == null ? void 0 : _a.length) && ((hasActiveChild == null ? void 0 : hasActiveChild(child)) ?? false);
93
+ }
94
+ ));
84
95
  const isOpen = !!openItems[label];
85
96
  const sectionId = idFor(label);
86
97
  const buttonId = `${sectionId}-button`;
@@ -98,7 +109,7 @@ const SidebarBase = ({
98
109
  id: buttonId,
99
110
  className: classNames.combineClassNames(
100
111
  classMap.link,
101
- isOpen && classMap.active
112
+ (isOpen || containsActiveChild) && classMap.active
102
113
  ),
103
114
  onClick: () => toggleItem(label),
104
115
  "aria-expanded": isOpen,
@@ -126,7 +137,6 @@ const SidebarBase = ({
126
137
  "div",
127
138
  {
128
139
  id: panelId,
129
- ref: (el) => setSubmenuRef(label, el),
130
140
  className: classNames.combineClassNames(
131
141
  classMap.submenu,
132
142
  isOpen && classMap.submenuOpen
@@ -217,6 +227,7 @@ const classes = {
217
227
  link: "sidebar_link",
218
228
  childLink: "sidebar_child_link",
219
229
  active: "sidebar_active",
230
+ icon: "sidebar_icon",
220
231
  footer: "sidebar_footer",
221
232
  footerLink: "sidebar_footer_link",
222
233
  footerVersion: "sidebar_footer_version",
@@ -243,7 +254,30 @@ const classes = {
243
254
  roundMedium: "sidebar_round-Medium",
244
255
  roundLarge: "sidebar_round-Large"
245
256
  };
246
- const Sidebar = ({ currentPath, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(SidebarBase, { ...props, currentPath, classMap: classes });
257
+ const normalizePath = (p) => p.endsWith("/") && p.length > 1 ? p.slice(0, -1) : p;
258
+ const getInitialPath = () => typeof window !== "undefined" ? window.location.pathname || "/" : "/";
259
+ const isActiveRecursive = (link, matcher) => {
260
+ var _a;
261
+ if (matcher(link)) return true;
262
+ return !!((_a = link.children) == null ? void 0 : _a.some((child) => isActiveRecursive(child, matcher)));
263
+ };
264
+ const Sidebar = (props) => {
265
+ const [pathname] = React.useState(getInitialPath);
266
+ const isLinkActive = (link) => !!link.href && normalizePath(link.href) === normalizePath(pathname);
267
+ const hasActiveChild = (link) => {
268
+ var _a;
269
+ return !!((_a = link.children) == null ? void 0 : _a.some((child) => isActiveRecursive(child, isLinkActive)));
270
+ };
271
+ return /* @__PURE__ */ jsxRuntime.jsx(
272
+ SidebarBase,
273
+ {
274
+ ...props,
275
+ classMap: classes,
276
+ isLinkActive,
277
+ hasActiveChild
278
+ }
279
+ );
280
+ };
247
281
  Sidebar.displayName = "Sidebar";
248
282
  exports.Sidebar = Sidebar;
249
- //# sourceMappingURL=Sidebar-13bKMpw7.cjs.map
283
+ //# sourceMappingURL=Sidebar-DMR5T81x.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar-DMR5T81x.cjs","sources":["../../src/components/Sidebar/SidebarBase.tsx","../../src/components/Sidebar/core/Sidebar.tsx"],"sourcesContent":["import React, { useState, useMemo, useRef, useEffect } from \"react\";\r\nimport { combineClassNames } from \"@/utils/classNames\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\nimport { ChevronDownIcon } from \"@/Icons\";\r\nimport { BaseSidebarProps, SidebarLink } from \"./Sidebar.types\";\r\n\r\nconst SidebarBase: React.FC<BaseSidebarProps> = ({\r\n links,\r\n classMap,\r\n LinkComponent = \"a\",\r\n isLinkActive,\r\n hasActiveChild,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n showFooter = false,\r\n footerLinks,\r\n footerVersion,\r\n outline = false,\r\n className = \"\",\r\n \"data-testid\": testId = \"sidebar\",\r\n ariaLabel = \"Sidebar navigation\",\r\n ...rest\r\n}) => {\r\n const [openItems, setOpenItems] = useState<Record<string, boolean>>({});\r\n\r\n const idsRef = useRef<Record<string, string>>({});\r\n const seqRef = useRef(0);\r\n\r\n const idFor = (label: string) => {\r\n if (!idsRef.current[label]) {\r\n const slug = label\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")\r\n .replace(/[^a-z0-9_-]/g, \"\");\r\n idsRef.current[label] = `${testId}-section-${slug}-${seqRef.current++}`;\r\n }\r\n return idsRef.current[label];\r\n };\r\n\r\n useEffect(() => {\r\n const next: Record<string, boolean> = {};\r\n\r\n const walk = (nodes: SidebarLink[]): boolean => {\r\n for (const node of nodes) {\r\n if (node.children?.length) {\r\n const childIsActive =\r\n hasActiveChild?.(node) ??\r\n node.children.some(\r\n (child) =>\r\n (isLinkActive?.(child) ?? false) ||\r\n (!!child.children?.length && walk(child.children)),\r\n );\r\n\r\n if (childIsActive) {\r\n next[node.label] = true;\r\n }\r\n }\r\n }\r\n\r\n return nodes.some(\r\n (node) =>\r\n (isLinkActive?.(node) ?? false) ||\r\n (!!node.children?.length && walk(node.children)),\r\n );\r\n };\r\n\r\n walk(links);\r\n setOpenItems((prev) => ({ ...prev, ...next }));\r\n }, [links, isLinkActive, hasActiveChild]);\r\n\r\n const toggleItem = (key: string) =>\r\n setOpenItems((prev) => ({ ...prev, [key]: !prev[key] }));\r\n\r\n const containerClasses = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.wrapper,\r\n className,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n ),\r\n [classMap, className, theme, state, outline, rounding, shadow],\r\n );\r\n\r\n const renderLinks = (items: SidebarLink[], isChild = false) => (\r\n <ul\r\n className={combineClassNames(\r\n classMap.list,\r\n isChild && classMap.childList,\r\n )}\r\n data-testid={`${testId}-list`}\r\n >\r\n {items.map(({ label, href, children, icon }, idx) => {\r\n const key = `${label}-${idx}`;\r\n const link: SidebarLink = { label, href, children, icon };\r\n\r\n const isActive = isLinkActive?.(link) ?? false;\r\n const containsActiveChild =\r\n hasActiveChild?.(link) ??\r\n !!children?.some(\r\n (child) =>\r\n (isLinkActive?.(child) ?? false) ||\r\n (child.children?.length && (hasActiveChild?.(child) ?? false)),\r\n );\r\n\r\n const isOpen = !!openItems[label];\r\n const sectionId = idFor(label);\r\n const buttonId = `${sectionId}-button`;\r\n const panelId = `${sectionId}-panel`;\r\n\r\n return (\r\n <li\r\n key={key}\r\n className={classMap.item}\r\n data-testid={`${testId}-listItem`}\r\n >\r\n {children && children.length > 0 ? (\r\n <>\r\n <button\r\n type=\"button\"\r\n id={buttonId}\r\n className={combineClassNames(\r\n classMap.link,\r\n (isOpen || containsActiveChild) && classMap.active,\r\n )}\r\n onClick={() => toggleItem(label)}\r\n aria-expanded={isOpen}\r\n aria-controls={panelId}\r\n data-testid={`${testId}-expandItemButton`}\r\n >\r\n {icon && <span className={classMap.icon}>{icon}</span>}\r\n <span data-testid={`${testId}-expandItemLabel`}>{label}</span>\r\n <ChevronDownIcon\r\n className={combineClassNames(\r\n classMap.chevron,\r\n isOpen && classMap.chevronOpen,\r\n )}\r\n aria-hidden=\"true\"\r\n focusable={false}\r\n data-testid={`${testId}-expandIcon`}\r\n />\r\n </button>\r\n\r\n <div\r\n id={panelId}\r\n className={combineClassNames(\r\n classMap.submenu,\r\n isOpen && classMap.submenuOpen,\r\n )}\r\n role=\"group\"\r\n aria-labelledby={buttonId}\r\n hidden={!isOpen}\r\n data-testid={`${testId}-subMenu`}\r\n >\r\n {renderLinks(children, true)}\r\n </div>\r\n </>\r\n ) : href ? (\r\n <LinkComponent\r\n href={href}\r\n className={combineClassNames(\r\n classMap.link,\r\n isChild && classMap.childLink,\r\n isActive && classMap.active,\r\n )}\r\n aria-current={isActive ? \"page\" : undefined}\r\n data-testid={`${testId}-sidebarLink`}\r\n >\r\n {icon && <span className={classMap.icon}>{icon}</span>}\r\n {label}\r\n </LinkComponent>\r\n ) : (\r\n <span\r\n className={combineClassNames(\r\n classMap.link,\r\n isChild && classMap.childLink,\r\n )}\r\n data-testid={`${testId}-sidebarLabel`}\r\n >\r\n {icon && <span className={classMap.icon}>{icon}</span>}\r\n {label}\r\n </span>\r\n )}\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n );\r\n\r\n return (\r\n <nav\r\n className={containerClasses}\r\n aria-label={ariaLabel}\r\n data-testid={testId}\r\n {...rest}\r\n >\r\n <div className={classMap.nav}>{renderLinks(links)}</div>\r\n\r\n {showFooter && (\r\n <footer className={classMap.footer} data-testid={`${testId}-footer`}>\r\n {footerLinks?.map(({ label, href }, i) => (\r\n <LinkComponent\r\n key={`${label}-${i}`}\r\n href={href}\r\n className={classMap.footerLink}\r\n data-testid={`${testId}-footerLink`}\r\n >\r\n {label}\r\n </LinkComponent>\r\n ))}\r\n {footerVersion && (\r\n <span\r\n className={classMap.footerVersion}\r\n data-testid={`${testId}-footerVersion`}\r\n >\r\n {footerVersion}\r\n </span>\r\n )}\r\n </footer>\r\n )}\r\n </nav>\r\n );\r\n};\r\n\r\nSidebarBase.displayName = \"SidebarBase\";\r\nexport default SidebarBase;\r\n","import React, { useState } from \"react\";\r\nimport SidebarBase from \"../SidebarBase\";\r\nimport \"./Sidebar.scss\";\r\nimport { SidebarLink, SidebarProps } from \"../Sidebar.types\";\r\n\r\nconst classes = {\r\n wrapper: \"sidebar\",\r\n nav: \"sidebar_nav\",\r\n list: \"sidebar_list\",\r\n childList: \"sidebar_child_list\",\r\n item: \"sidebar_item\",\r\n link: \"sidebar_link\",\r\n childLink: \"sidebar_child_link\",\r\n active: \"sidebar_active\",\r\n icon: \"sidebar_icon\",\r\n\r\n footer: \"sidebar_footer\",\r\n footerLink: \"sidebar_footer_link\",\r\n footerVersion: \"sidebar_footer_version\",\r\n\r\n chevron: \"sidebar_chevron\",\r\n chevronOpen: \"sidebar_chevron_open\",\r\n\r\n submenu: \"sidebar_submenu\",\r\n submenuOpen: \"sidebar_submenu_open\",\r\n\r\n outline: \"sidebar_outline\",\r\n\r\n primary: \"sidebar_primary\",\r\n secondary: \"sidebar_secondary\",\r\n tertiary: \"sidebar_tertiary\",\r\n quaternary: \"sidebar_quaternary\",\r\n\r\n success: \"sidebar_success\",\r\n error: \"sidebar_error\",\r\n warning: \"sidebar_warning\",\r\n\r\n clear: \"sidebar_clear\",\r\n\r\n shadowNone: \"sidebar_shadow-None\",\r\n shadowLight: \"sidebar_shadow-Light\",\r\n shadowMedium: \"sidebar_shadow-Medium\",\r\n shadowStrong: \"sidebar_shadow-Strong\",\r\n shadowIntense: \"sidebar_shadow-Intense\",\r\n\r\n roundNone: \"sidebar_round-None\",\r\n roundSmall: \"sidebar_round-Small\",\r\n roundMedium: \"sidebar_round-Medium\",\r\n roundLarge: \"sidebar_round-Large\",\r\n};\r\n\r\nconst normalizePath = (p: string) =>\r\n p.endsWith(\"/\") && p.length > 1 ? p.slice(0, -1) : p;\r\n\r\nconst getInitialPath = () =>\r\n typeof window !== \"undefined\" ? window.location.pathname || \"/\" : \"/\";\r\n\r\nconst isActiveRecursive = (\r\n link: SidebarLink,\r\n matcher: (link: SidebarLink) => boolean,\r\n): boolean => {\r\n if (matcher(link)) return true;\r\n return !!link.children?.some((child) => isActiveRecursive(child, matcher));\r\n};\r\n\r\nconst Sidebar: React.FC<SidebarProps> = (props) => {\r\n const [pathname] = useState(getInitialPath);\r\n\r\n const isLinkActive = (link: SidebarLink) =>\r\n !!link.href && normalizePath(link.href) === normalizePath(pathname);\r\n\r\n const hasActiveChild = (link: SidebarLink) =>\r\n !!link.children?.some((child) => isActiveRecursive(child, isLinkActive));\r\n\r\n return (\r\n <SidebarBase\r\n {...props}\r\n classMap={classes}\r\n isLinkActive={isLinkActive}\r\n hasActiveChild={hasActiveChild}\r\n />\r\n );\r\n};\r\n\r\nSidebar.displayName = \"Sidebar\";\r\nexport default Sidebar;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useState","useRef","useEffect","_a","useMemo","combineClassNames","capitalize","jsx","jsxs","Fragment","ChevronDownIcon"],"mappings":"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"}
@@ -7,8 +7,9 @@ import { C as ChevronDownIcon } from "./CheveronDownIcon-Cn9jj-ku.js";
7
7
  const SidebarBase = ({
8
8
  links,
9
9
  classMap,
10
- currentPath,
11
10
  LinkComponent = "a",
11
+ isLinkActive,
12
+ hasActiveChild,
12
13
  theme = getDefaultTheme(),
13
14
  rounding = getDefaultRounding(),
14
15
  shadow = getDefaultShadow(),
@@ -36,27 +37,30 @@ const SidebarBase = ({
36
37
  const next = {};
37
38
  const walk = (nodes) => {
38
39
  var _a;
39
- for (const n of nodes) {
40
- if ((_a = n.children) == null ? void 0 : _a.length) {
41
- const anyChildActive = n.children.some((c) => c.href && c.href === currentPath) || n.children && walk(n.children);
42
- if (anyChildActive) next[n.label] = true;
40
+ for (const node of nodes) {
41
+ if ((_a = node.children) == null ? void 0 : _a.length) {
42
+ const childIsActive = (hasActiveChild == null ? void 0 : hasActiveChild(node)) ?? node.children.some(
43
+ (child) => {
44
+ var _a2;
45
+ return ((isLinkActive == null ? void 0 : isLinkActive(child)) ?? false) || !!((_a2 = child.children) == null ? void 0 : _a2.length) && walk(child.children);
46
+ }
47
+ );
48
+ if (childIsActive) {
49
+ next[node.label] = true;
50
+ }
43
51
  }
44
52
  }
45
53
  return nodes.some(
46
- (n) => {
54
+ (node) => {
47
55
  var _a2;
48
- return n.href && n.href === currentPath || !!((_a2 = n.children) == null ? void 0 : _a2.length) && n.children.some((c) => c.href === currentPath);
56
+ return ((isLinkActive == null ? void 0 : isLinkActive(node)) ?? false) || !!((_a2 = node.children) == null ? void 0 : _a2.length) && walk(node.children);
49
57
  }
50
58
  );
51
59
  };
52
60
  walk(links);
53
61
  setOpenItems((prev) => ({ ...prev, ...next }));
54
- }, [currentPath, links]);
62
+ }, [links, isLinkActive, hasActiveChild]);
55
63
  const toggleItem = (key) => setOpenItems((prev) => ({ ...prev, [key]: !prev[key] }));
56
- const submenuRefs = useRef({});
57
- const setSubmenuRef = (key, el) => {
58
- submenuRefs.current[key] = el;
59
- };
60
64
  const containerClasses = useMemo(
61
65
  () => combineClassNames(
62
66
  classMap.wrapper,
@@ -79,7 +83,14 @@ const SidebarBase = ({
79
83
  "data-testid": `${testId}-list`,
80
84
  children: items.map(({ label, href, children, icon }, idx) => {
81
85
  const key = `${label}-${idx}`;
82
- const isActive = !!href && currentPath === href;
86
+ const link = { label, href, children, icon };
87
+ const isActive = (isLinkActive == null ? void 0 : isLinkActive(link)) ?? false;
88
+ const containsActiveChild = (hasActiveChild == null ? void 0 : hasActiveChild(link)) ?? !!(children == null ? void 0 : children.some(
89
+ (child) => {
90
+ var _a;
91
+ return ((isLinkActive == null ? void 0 : isLinkActive(child)) ?? false) || ((_a = child.children) == null ? void 0 : _a.length) && ((hasActiveChild == null ? void 0 : hasActiveChild(child)) ?? false);
92
+ }
93
+ ));
83
94
  const isOpen = !!openItems[label];
84
95
  const sectionId = idFor(label);
85
96
  const buttonId = `${sectionId}-button`;
@@ -97,7 +108,7 @@ const SidebarBase = ({
97
108
  id: buttonId,
98
109
  className: combineClassNames(
99
110
  classMap.link,
100
- isOpen && classMap.active
111
+ (isOpen || containsActiveChild) && classMap.active
101
112
  ),
102
113
  onClick: () => toggleItem(label),
103
114
  "aria-expanded": isOpen,
@@ -125,7 +136,6 @@ const SidebarBase = ({
125
136
  "div",
126
137
  {
127
138
  id: panelId,
128
- ref: (el) => setSubmenuRef(label, el),
129
139
  className: combineClassNames(
130
140
  classMap.submenu,
131
141
  isOpen && classMap.submenuOpen
@@ -216,6 +226,7 @@ const classes = {
216
226
  link: "sidebar_link",
217
227
  childLink: "sidebar_child_link",
218
228
  active: "sidebar_active",
229
+ icon: "sidebar_icon",
219
230
  footer: "sidebar_footer",
220
231
  footerLink: "sidebar_footer_link",
221
232
  footerVersion: "sidebar_footer_version",
@@ -242,9 +253,32 @@ const classes = {
242
253
  roundMedium: "sidebar_round-Medium",
243
254
  roundLarge: "sidebar_round-Large"
244
255
  };
245
- const Sidebar = ({ currentPath, ...props }) => /* @__PURE__ */ jsx(SidebarBase, { ...props, currentPath, classMap: classes });
256
+ const normalizePath = (p) => p.endsWith("/") && p.length > 1 ? p.slice(0, -1) : p;
257
+ const getInitialPath = () => typeof window !== "undefined" ? window.location.pathname || "/" : "/";
258
+ const isActiveRecursive = (link, matcher) => {
259
+ var _a;
260
+ if (matcher(link)) return true;
261
+ return !!((_a = link.children) == null ? void 0 : _a.some((child) => isActiveRecursive(child, matcher)));
262
+ };
263
+ const Sidebar = (props) => {
264
+ const [pathname] = useState(getInitialPath);
265
+ const isLinkActive = (link) => !!link.href && normalizePath(link.href) === normalizePath(pathname);
266
+ const hasActiveChild = (link) => {
267
+ var _a;
268
+ return !!((_a = link.children) == null ? void 0 : _a.some((child) => isActiveRecursive(child, isLinkActive)));
269
+ };
270
+ return /* @__PURE__ */ jsx(
271
+ SidebarBase,
272
+ {
273
+ ...props,
274
+ classMap: classes,
275
+ isLinkActive,
276
+ hasActiveChild
277
+ }
278
+ );
279
+ };
246
280
  Sidebar.displayName = "Sidebar";
247
281
  export {
248
282
  Sidebar as S
249
283
  };
250
- //# sourceMappingURL=Sidebar-DN_J0CwY.js.map
284
+ //# sourceMappingURL=Sidebar-DiQvQvqa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar-DiQvQvqa.js","sources":["../../src/components/Sidebar/SidebarBase.tsx","../../src/components/Sidebar/core/Sidebar.tsx"],"sourcesContent":["import React, { useState, useMemo, useRef, useEffect } from \"react\";\r\nimport { combineClassNames } from \"@/utils/classNames\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\nimport { ChevronDownIcon } from \"@/Icons\";\r\nimport { BaseSidebarProps, SidebarLink } from \"./Sidebar.types\";\r\n\r\nconst SidebarBase: React.FC<BaseSidebarProps> = ({\r\n links,\r\n classMap,\r\n LinkComponent = \"a\",\r\n isLinkActive,\r\n hasActiveChild,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n showFooter = false,\r\n footerLinks,\r\n footerVersion,\r\n outline = false,\r\n className = \"\",\r\n \"data-testid\": testId = \"sidebar\",\r\n ariaLabel = \"Sidebar navigation\",\r\n ...rest\r\n}) => {\r\n const [openItems, setOpenItems] = useState<Record<string, boolean>>({});\r\n\r\n const idsRef = useRef<Record<string, string>>({});\r\n const seqRef = useRef(0);\r\n\r\n const idFor = (label: string) => {\r\n if (!idsRef.current[label]) {\r\n const slug = label\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")\r\n .replace(/[^a-z0-9_-]/g, \"\");\r\n idsRef.current[label] = `${testId}-section-${slug}-${seqRef.current++}`;\r\n }\r\n return idsRef.current[label];\r\n };\r\n\r\n useEffect(() => {\r\n const next: Record<string, boolean> = {};\r\n\r\n const walk = (nodes: SidebarLink[]): boolean => {\r\n for (const node of nodes) {\r\n if (node.children?.length) {\r\n const childIsActive =\r\n hasActiveChild?.(node) ??\r\n node.children.some(\r\n (child) =>\r\n (isLinkActive?.(child) ?? false) ||\r\n (!!child.children?.length && walk(child.children)),\r\n );\r\n\r\n if (childIsActive) {\r\n next[node.label] = true;\r\n }\r\n }\r\n }\r\n\r\n return nodes.some(\r\n (node) =>\r\n (isLinkActive?.(node) ?? false) ||\r\n (!!node.children?.length && walk(node.children)),\r\n );\r\n };\r\n\r\n walk(links);\r\n setOpenItems((prev) => ({ ...prev, ...next }));\r\n }, [links, isLinkActive, hasActiveChild]);\r\n\r\n const toggleItem = (key: string) =>\r\n setOpenItems((prev) => ({ ...prev, [key]: !prev[key] }));\r\n\r\n const containerClasses = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.wrapper,\r\n className,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n ),\r\n [classMap, className, theme, state, outline, rounding, shadow],\r\n );\r\n\r\n const renderLinks = (items: SidebarLink[], isChild = false) => (\r\n <ul\r\n className={combineClassNames(\r\n classMap.list,\r\n isChild && classMap.childList,\r\n )}\r\n data-testid={`${testId}-list`}\r\n >\r\n {items.map(({ label, href, children, icon }, idx) => {\r\n const key = `${label}-${idx}`;\r\n const link: SidebarLink = { label, href, children, icon };\r\n\r\n const isActive = isLinkActive?.(link) ?? false;\r\n const containsActiveChild =\r\n hasActiveChild?.(link) ??\r\n !!children?.some(\r\n (child) =>\r\n (isLinkActive?.(child) ?? false) ||\r\n (child.children?.length && (hasActiveChild?.(child) ?? false)),\r\n );\r\n\r\n const isOpen = !!openItems[label];\r\n const sectionId = idFor(label);\r\n const buttonId = `${sectionId}-button`;\r\n const panelId = `${sectionId}-panel`;\r\n\r\n return (\r\n <li\r\n key={key}\r\n className={classMap.item}\r\n data-testid={`${testId}-listItem`}\r\n >\r\n {children && children.length > 0 ? (\r\n <>\r\n <button\r\n type=\"button\"\r\n id={buttonId}\r\n className={combineClassNames(\r\n classMap.link,\r\n (isOpen || containsActiveChild) && classMap.active,\r\n )}\r\n onClick={() => toggleItem(label)}\r\n aria-expanded={isOpen}\r\n aria-controls={panelId}\r\n data-testid={`${testId}-expandItemButton`}\r\n >\r\n {icon && <span className={classMap.icon}>{icon}</span>}\r\n <span data-testid={`${testId}-expandItemLabel`}>{label}</span>\r\n <ChevronDownIcon\r\n className={combineClassNames(\r\n classMap.chevron,\r\n isOpen && classMap.chevronOpen,\r\n )}\r\n aria-hidden=\"true\"\r\n focusable={false}\r\n data-testid={`${testId}-expandIcon`}\r\n />\r\n </button>\r\n\r\n <div\r\n id={panelId}\r\n className={combineClassNames(\r\n classMap.submenu,\r\n isOpen && classMap.submenuOpen,\r\n )}\r\n role=\"group\"\r\n aria-labelledby={buttonId}\r\n hidden={!isOpen}\r\n data-testid={`${testId}-subMenu`}\r\n >\r\n {renderLinks(children, true)}\r\n </div>\r\n </>\r\n ) : href ? (\r\n <LinkComponent\r\n href={href}\r\n className={combineClassNames(\r\n classMap.link,\r\n isChild && classMap.childLink,\r\n isActive && classMap.active,\r\n )}\r\n aria-current={isActive ? \"page\" : undefined}\r\n data-testid={`${testId}-sidebarLink`}\r\n >\r\n {icon && <span className={classMap.icon}>{icon}</span>}\r\n {label}\r\n </LinkComponent>\r\n ) : (\r\n <span\r\n className={combineClassNames(\r\n classMap.link,\r\n isChild && classMap.childLink,\r\n )}\r\n data-testid={`${testId}-sidebarLabel`}\r\n >\r\n {icon && <span className={classMap.icon}>{icon}</span>}\r\n {label}\r\n </span>\r\n )}\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n );\r\n\r\n return (\r\n <nav\r\n className={containerClasses}\r\n aria-label={ariaLabel}\r\n data-testid={testId}\r\n {...rest}\r\n >\r\n <div className={classMap.nav}>{renderLinks(links)}</div>\r\n\r\n {showFooter && (\r\n <footer className={classMap.footer} data-testid={`${testId}-footer`}>\r\n {footerLinks?.map(({ label, href }, i) => (\r\n <LinkComponent\r\n key={`${label}-${i}`}\r\n href={href}\r\n className={classMap.footerLink}\r\n data-testid={`${testId}-footerLink`}\r\n >\r\n {label}\r\n </LinkComponent>\r\n ))}\r\n {footerVersion && (\r\n <span\r\n className={classMap.footerVersion}\r\n data-testid={`${testId}-footerVersion`}\r\n >\r\n {footerVersion}\r\n </span>\r\n )}\r\n </footer>\r\n )}\r\n </nav>\r\n );\r\n};\r\n\r\nSidebarBase.displayName = \"SidebarBase\";\r\nexport default SidebarBase;\r\n","import React, { useState } from \"react\";\r\nimport SidebarBase from \"../SidebarBase\";\r\nimport \"./Sidebar.scss\";\r\nimport { SidebarLink, SidebarProps } from \"../Sidebar.types\";\r\n\r\nconst classes = {\r\n wrapper: \"sidebar\",\r\n nav: \"sidebar_nav\",\r\n list: \"sidebar_list\",\r\n childList: \"sidebar_child_list\",\r\n item: \"sidebar_item\",\r\n link: \"sidebar_link\",\r\n childLink: \"sidebar_child_link\",\r\n active: \"sidebar_active\",\r\n icon: \"sidebar_icon\",\r\n\r\n footer: \"sidebar_footer\",\r\n footerLink: \"sidebar_footer_link\",\r\n footerVersion: \"sidebar_footer_version\",\r\n\r\n chevron: \"sidebar_chevron\",\r\n chevronOpen: \"sidebar_chevron_open\",\r\n\r\n submenu: \"sidebar_submenu\",\r\n submenuOpen: \"sidebar_submenu_open\",\r\n\r\n outline: \"sidebar_outline\",\r\n\r\n primary: \"sidebar_primary\",\r\n secondary: \"sidebar_secondary\",\r\n tertiary: \"sidebar_tertiary\",\r\n quaternary: \"sidebar_quaternary\",\r\n\r\n success: \"sidebar_success\",\r\n error: \"sidebar_error\",\r\n warning: \"sidebar_warning\",\r\n\r\n clear: \"sidebar_clear\",\r\n\r\n shadowNone: \"sidebar_shadow-None\",\r\n shadowLight: \"sidebar_shadow-Light\",\r\n shadowMedium: \"sidebar_shadow-Medium\",\r\n shadowStrong: \"sidebar_shadow-Strong\",\r\n shadowIntense: \"sidebar_shadow-Intense\",\r\n\r\n roundNone: \"sidebar_round-None\",\r\n roundSmall: \"sidebar_round-Small\",\r\n roundMedium: \"sidebar_round-Medium\",\r\n roundLarge: \"sidebar_round-Large\",\r\n};\r\n\r\nconst normalizePath = (p: string) =>\r\n p.endsWith(\"/\") && p.length > 1 ? p.slice(0, -1) : p;\r\n\r\nconst getInitialPath = () =>\r\n typeof window !== \"undefined\" ? window.location.pathname || \"/\" : \"/\";\r\n\r\nconst isActiveRecursive = (\r\n link: SidebarLink,\r\n matcher: (link: SidebarLink) => boolean,\r\n): boolean => {\r\n if (matcher(link)) return true;\r\n return !!link.children?.some((child) => isActiveRecursive(child, matcher));\r\n};\r\n\r\nconst Sidebar: React.FC<SidebarProps> = (props) => {\r\n const [pathname] = useState(getInitialPath);\r\n\r\n const isLinkActive = (link: SidebarLink) =>\r\n !!link.href && normalizePath(link.href) === normalizePath(pathname);\r\n\r\n const hasActiveChild = (link: SidebarLink) =>\r\n !!link.children?.some((child) => isActiveRecursive(child, isLinkActive));\r\n\r\n return (\r\n <SidebarBase\r\n {...props}\r\n classMap={classes}\r\n isLinkActive={isLinkActive}\r\n hasActiveChild={hasActiveChild}\r\n />\r\n );\r\n};\r\n\r\nSidebar.displayName = \"Sidebar\";\r\nexport default Sidebar;\r\n"],"names":["_a"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
- const Sidebar = require("./Sidebar-13bKMpw7.cjs");
2
+ const Sidebar = require("./Sidebar-DMR5T81x.cjs");
3
3
  module.exports = Sidebar.Sidebar;
4
4
  //# sourceMappingURL=Sidebar.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { S } from "./Sidebar-DN_J0CwY.js";
1
+ import { S } from "./Sidebar-DiQvQvqa.js";
2
2
  export {
3
3
  S as default
4
4
  };
@@ -11571,12 +11571,11 @@ samp {
11571
11571
  justify-content: space-between;
11572
11572
  align-items: center;
11573
11573
  width: fit-content;
11574
+ height: fit-content;
11574
11575
  margin: var(--spacing-sm);
11575
11576
  transition: var(--transition-default);
11576
- max-width: 400px;
11577
11577
  background: transparent;
11578
11578
  outline: none;
11579
- flex: 1;
11580
11579
  margin: var(--spacing-sm);
11581
11580
  font-family: var(--font-family-body);
11582
11581
  font-size: var(--font-size-body);
@@ -11587,7 +11586,6 @@ samp {
11587
11586
  border-radius: var(--border-radius-lg);
11588
11587
  background-color: transparent;
11589
11588
  color: var(--text-color-primary);
11590
- min-height: 2.5rem;
11591
11589
  }
11592
11590
  .textInput::placeholder {
11593
11591
  color: var(--text-color-primary);
@@ -11760,6 +11758,10 @@ samp {
11760
11758
  box-shadow: none;
11761
11759
  border: 2px solid var(--text-color-primary);
11762
11760
  }
11761
+ .textInput_icon_container,
11762
+ .textInput_togglePassword {
11763
+ background-color: transparent;
11764
+ }
11763
11765
  .textInput_disabled {
11764
11766
  cursor: not-allowed;
11765
11767
  pointer-events: none;
@@ -26228,6 +26230,7 @@ samp {
26228
26230
  transform: translateX(-50%);
26229
26231
  flex-direction: row;
26230
26232
  justify-content: center;
26233
+ padding: 0px;
26231
26234
  gap: var(--spacing-sm);
26232
26235
  top: 0;
26233
26236
  left: 50%;
@@ -37,7 +37,7 @@ const Spinner = require("./Spinner-JTcQ_d4T.cjs");
37
37
  const Tooltip = require("./Tooltip-DS7DSyij.cjs");
38
38
  const MessagePopup = require("./MessagePopup-BwKMX9NS.cjs");
39
39
  const PopOver = require("./PopOver-IzDFOu7Y.cjs");
40
- const NavBar = require("./NavBar-Bbd3SVHi.cjs");
40
+ const NavBar = require("./NavBar-B1mNXJ88.cjs");
41
41
  const Breadcrumbs = require("./Breadcrumbs-CALCSPkH.cjs");
42
42
  const Tabs = require("./Tabs-BFn-TRKL.cjs");
43
43
  const Stepper = require("./Stepper-JNVBVHc3.cjs");
@@ -53,7 +53,7 @@ const MetricBox = require("./MetricBox-DVo4UUQv.cjs");
53
53
  const EmptyState = require("./EmptyState-P-MSItCX.cjs");
54
54
  const CommandPalette = require("./CommandPalette-Cv79G0W9.cjs");
55
55
  const NotificationCenter = require("./NotificationCenter-DfOOEt9N.cjs");
56
- const Sidebar = require("./Sidebar-13bKMpw7.cjs");
56
+ const Sidebar = require("./Sidebar-DMR5T81x.cjs");
57
57
  const Card = require("./Card-DRM65kM-.cjs");
58
58
  const Avatar = require("./Avatar-DOg8W9yf.cjs");
59
59
  const ChipGroupBase = React.forwardRef(
@@ -36,7 +36,7 @@ import { S as S5 } from "./Spinner-D1CHbKYU.js";
36
36
  import { T as T6 } from "./Tooltip-BzRqlOTz.js";
37
37
  import { M as M2 } from "./MessagePopup-aKDackiq.js";
38
38
  import { P as P2 } from "./PopOver-Bt80x5vL.js";
39
- import { N } from "./NavBar-DujO5gH_.js";
39
+ import { N } from "./NavBar-oZrT55L_.js";
40
40
  import { B as B3 } from "./Breadcrumbs-C2IzEdls.js";
41
41
  import { T as T7 } from "./Tabs-DkdkDwei.js";
42
42
  import { S as S6 } from "./Stepper-C6xjvhZJ.js";
@@ -52,7 +52,7 @@ import { M as M4 } from "./MetricBox-CPug-nxo.js";
52
52
  import { E } from "./EmptyState-Cp3ocTQX.js";
53
53
  import { C as C4 } from "./CommandPalette-BcPsaNIk.js";
54
54
  import { N as N2 } from "./NotificationCenter-DLCzWNve.js";
55
- import { S as S7 } from "./Sidebar-DN_J0CwY.js";
55
+ import { S as S7 } from "./Sidebar-DiQvQvqa.js";
56
56
  import { C as C5 } from "./Card-BjLC4t0w.js";
57
57
  import { A as A2 } from "./Avatar-BM8AwOB6.js";
58
58
  const ChipGroupBase = forwardRef(
@@ -6,7 +6,7 @@ const classNames = require("./classNames-BcWMx052.cjs");
6
6
  const capitalize = require("./capitalize-DoV-nOmN.cjs");
7
7
  const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
8
8
  ;/* empty css */
9
- const TextInput = require("./TextInput-uBklbK19.cjs");
9
+ const TextInput = require("./TextInput-BogGxTmE.cjs");
10
10
  const CommandPaletteBase = ({
11
11
  commands,
12
12
  placeholder = "Search...",
@@ -312,4 +312,4 @@ const CommandPalette = (props) => /* @__PURE__ */ require$$2.jsx(
312
312
  );
313
313
  CommandPalette.displayName = "CommandPalette";
314
314
  exports.CommandPalette = CommandPalette;
315
- //# sourceMappingURL=CommandPalette-BL6WEeB9.cjs.map
315
+ //# sourceMappingURL=CommandPalette-B-qhSIcP.cjs.map