@flipdish/ui-library 0.23.0 → 0.25.0

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 (98) hide show
  1. package/dist/components/__internal__/navigation/nav.utils.cjs +46 -7
  2. package/dist/components/__internal__/navigation/nav.utils.cjs.map +1 -1
  3. package/dist/components/__internal__/navigation/nav.utils.d.ts +11 -5
  4. package/dist/components/__internal__/navigation/nav.utils.d.ts.map +1 -1
  5. package/dist/components/__internal__/navigation/nav.utils.js +45 -7
  6. package/dist/components/__internal__/navigation/nav.utils.js.map +1 -1
  7. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.cjs +3 -3
  8. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.cjs.map +1 -1
  9. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.d.ts +6 -1
  10. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.d.ts.map +1 -1
  11. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.js +3 -3
  12. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.js.map +1 -1
  13. package/dist/components/molecules/Breadcrumbs/index.cjs +4 -2
  14. package/dist/components/molecules/Breadcrumbs/index.cjs.map +1 -1
  15. package/dist/components/molecules/Breadcrumbs/index.d.ts +7 -6
  16. package/dist/components/molecules/Breadcrumbs/index.d.ts.map +1 -1
  17. package/dist/components/molecules/Breadcrumbs/index.js +5 -3
  18. package/dist/components/molecules/Breadcrumbs/index.js.map +1 -1
  19. package/dist/components/molecules/EmptyState/index.cjs +2 -1
  20. package/dist/components/molecules/EmptyState/index.cjs.map +1 -1
  21. package/dist/components/molecules/EmptyState/index.d.ts.map +1 -1
  22. package/dist/components/molecules/EmptyState/index.js +3 -2
  23. package/dist/components/molecules/EmptyState/index.js.map +1 -1
  24. package/dist/components/molecules/Select/components/multi-select.cjs +2 -1
  25. package/dist/components/molecules/Select/components/multi-select.cjs.map +1 -1
  26. package/dist/components/molecules/Select/components/multi-select.d.ts.map +1 -1
  27. package/dist/components/molecules/Select/components/multi-select.js +3 -2
  28. package/dist/components/molecules/Select/components/multi-select.js.map +1 -1
  29. package/dist/components/molecules/Tabs/index.cjs +7 -4
  30. package/dist/components/molecules/Tabs/index.cjs.map +1 -1
  31. package/dist/components/molecules/Tabs/index.d.ts +12 -2
  32. package/dist/components/molecules/Tabs/index.d.ts.map +1 -1
  33. package/dist/components/molecules/Tabs/index.js +6 -5
  34. package/dist/components/molecules/Tabs/index.js.map +1 -1
  35. package/dist/components/organisms/CommandMenu/index.cjs +2 -9
  36. package/dist/components/organisms/CommandMenu/index.cjs.map +1 -1
  37. package/dist/components/organisms/CommandMenu/index.d.ts.map +1 -1
  38. package/dist/components/organisms/CommandMenu/index.js +3 -10
  39. package/dist/components/organisms/CommandMenu/index.js.map +1 -1
  40. package/dist/components/organisms/HeaderNavigation/components/nav-list.cjs +3 -2
  41. package/dist/components/organisms/HeaderNavigation/components/nav-list.cjs.map +1 -1
  42. package/dist/components/organisms/HeaderNavigation/components/nav-list.d.ts.map +1 -1
  43. package/dist/components/organisms/HeaderNavigation/components/nav-list.js +4 -3
  44. package/dist/components/organisms/HeaderNavigation/components/nav-list.js.map +1 -1
  45. package/dist/components/organisms/HeaderNavigation/index.cjs +3 -12
  46. package/dist/components/organisms/HeaderNavigation/index.cjs.map +1 -1
  47. package/dist/components/organisms/HeaderNavigation/index.d.ts.map +1 -1
  48. package/dist/components/organisms/HeaderNavigation/index.js +3 -12
  49. package/dist/components/organisms/HeaderNavigation/index.js.map +1 -1
  50. package/dist/components/organisms/PageHeader/components/page-header-tab-nav.cjs +25 -0
  51. package/dist/components/organisms/PageHeader/components/page-header-tab-nav.cjs.map +1 -0
  52. package/dist/components/organisms/PageHeader/components/page-header-tab-nav.d.ts +19 -0
  53. package/dist/components/organisms/PageHeader/components/page-header-tab-nav.d.ts.map +1 -0
  54. package/dist/components/organisms/PageHeader/components/page-header-tab-nav.js +23 -0
  55. package/dist/components/organisms/PageHeader/components/page-header-tab-nav.js.map +1 -0
  56. package/dist/components/organisms/PageHeader/index.cjs +38 -3
  57. package/dist/components/organisms/PageHeader/index.cjs.map +1 -1
  58. package/dist/components/organisms/PageHeader/index.d.ts +78 -3
  59. package/dist/components/organisms/PageHeader/index.d.ts.map +1 -1
  60. package/dist/components/organisms/PageHeader/index.js +40 -1
  61. package/dist/components/organisms/PageHeader/index.js.map +1 -1
  62. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.cjs +17 -2
  63. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.cjs.map +1 -1
  64. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.d.ts +6 -1
  65. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.d.ts.map +1 -1
  66. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.js +19 -4
  67. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.js.map +1 -1
  68. package/dist/components/organisms/SidebarNavigation/components/nav-list.cjs +3 -2
  69. package/dist/components/organisms/SidebarNavigation/components/nav-list.cjs.map +1 -1
  70. package/dist/components/organisms/SidebarNavigation/components/nav-list.d.ts +2 -2
  71. package/dist/components/organisms/SidebarNavigation/components/nav-list.d.ts.map +1 -1
  72. package/dist/components/organisms/SidebarNavigation/components/nav-list.js +4 -3
  73. package/dist/components/organisms/SidebarNavigation/components/nav-list.js.map +1 -1
  74. package/dist/components/organisms/SidebarNavigation/index.cjs +18 -10
  75. package/dist/components/organisms/SidebarNavigation/index.cjs.map +1 -1
  76. package/dist/components/organisms/SidebarNavigation/index.d.ts +12 -2
  77. package/dist/components/organisms/SidebarNavigation/index.d.ts.map +1 -1
  78. package/dist/components/organisms/SidebarNavigation/index.js +18 -10
  79. package/dist/components/organisms/SidebarNavigation/index.js.map +1 -1
  80. package/dist/components/templates/PageLayout/index.cjs +8 -10
  81. package/dist/components/templates/PageLayout/index.cjs.map +1 -1
  82. package/dist/components/templates/PageLayout/index.d.ts +7 -5
  83. package/dist/components/templates/PageLayout/index.d.ts.map +1 -1
  84. package/dist/components/templates/PageLayout/index.js +8 -10
  85. package/dist/components/templates/PageLayout/index.js.map +1 -1
  86. package/dist/utilities/__internal__/childrenUtils/children.utils.cjs +22 -0
  87. package/dist/utilities/__internal__/childrenUtils/children.utils.cjs.map +1 -0
  88. package/dist/utilities/__internal__/childrenUtils/children.utils.d.ts +12 -0
  89. package/dist/utilities/__internal__/childrenUtils/children.utils.d.ts.map +1 -0
  90. package/dist/utilities/__internal__/childrenUtils/children.utils.js +20 -0
  91. package/dist/utilities/__internal__/childrenUtils/children.utils.js.map +1 -0
  92. package/package.json +1 -1
  93. package/dist/components/organisms/PageHeader/components/page-header-simple.cjs +0 -16
  94. package/dist/components/organisms/PageHeader/components/page-header-simple.cjs.map +0 -1
  95. package/dist/components/organisms/PageHeader/components/page-header-simple.d.ts +0 -26
  96. package/dist/components/organisms/PageHeader/components/page-header-simple.d.ts.map +0 -1
  97. package/dist/components/organisms/PageHeader/components/page-header-simple.js +0 -14
  98. package/dist/components/organisms/PageHeader/components/page-header-simple.js.map +0 -1
@@ -1,10 +1,11 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { cx } from '@flipdish/ui-library/utilities/cx';
3
- import { findActiveItem, isCurrentItem, navItemTestId, navSubItemTestId } from '../../../__internal__/navigation/nav.utils.js';
3
+ import { findActiveItem, findActiveHref, navItemTestId, navSubItemTestId } from '../../../__internal__/navigation/nav.utils.js';
4
4
  import { NavItemBase } from './nav-item.js';
5
5
 
6
6
  const NavList = ({ activeUrl, items, className, testIdPrefix }) => {
7
7
  const activeItem = findActiveItem(items, activeUrl);
8
+ const activeHref = findActiveHref(items, activeUrl);
8
9
  const itemTestId = (item) => navItemTestId(testIdPrefix, item);
9
10
  const subItemTestId = (parent, sub) => navSubItemTestId(itemTestId(parent), sub);
10
11
  return (jsx("ul", { className: cx('flex flex-col px-4 pt-5', className), children: items.map((item, index) => {
@@ -15,9 +16,9 @@ const NavList = ({ activeUrl, items, className, testIdPrefix }) => {
15
16
  }
16
17
  if (item.items?.length) {
17
18
  // Reference compare, not href: hrefless parents all share `undefined` and would otherwise force-open together.
18
- return (jsxs("details", { open: activeItem === item, className: "appearance-none py-0.25", children: [jsx(NavItemBase, { href: item.href, badge: item.badge, icon: item.icon, type: "collapsible", "data-testid": itemTestId(item), children: item.label }), jsx("dd", { children: jsx("ul", { className: "pb-1", children: item.items.map((childItem) => (jsx("li", { className: "py-0.25", children: jsx(NavItemBase, { href: childItem.href, badge: childItem.badge, type: "collapsible-child", current: activeUrl === childItem.href, "data-testid": subItemTestId(item, childItem), children: childItem.label }) }, childItem.label))) }) })] }, item.label));
19
+ return (jsxs("details", { open: activeItem === item, className: "appearance-none py-0.25", children: [jsx(NavItemBase, { href: item.href, badge: item.badge, icon: item.icon, type: "collapsible", "data-testid": itemTestId(item), children: item.label }), jsx("dd", { children: jsx("ul", { className: "pb-1", children: item.items.map((childItem) => (jsx("li", { className: "py-0.25", children: jsx(NavItemBase, { href: childItem.href, badge: childItem.badge, type: "collapsible-child", current: childItem.href === activeHref, "data-testid": subItemTestId(item, childItem), children: childItem.label }) }, childItem.label))) }) })] }, item.label));
19
20
  }
20
- return (jsx("li", { className: "py-px", children: jsx(NavItemBase, { type: "link", badge: item.badge, icon: item.icon, href: item.href, current: isCurrentItem(item, activeUrl), "data-testid": itemTestId(item), children: item.label }) }, item.label));
21
+ return (jsx("li", { className: "py-px", children: jsx(NavItemBase, { type: "link", badge: item.badge, icon: item.icon, href: item.href, current: item.href === activeHref, "data-testid": itemTestId(item), children: item.label }) }, item.label));
21
22
  }) }));
22
23
  };
23
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"nav-list.js","sources":["../../../../../src/components/organisms/HeaderNavigation/components/nav-list.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;;;AAkBO,MAAM,OAAO,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAgB,KAAI;IACrF,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC;AACnD,IAAA,MAAM,UAAU,GAAG,CAAC,IAAsC,KAAK,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC;AAChG,IAAA,MAAM,aAAa,GAAG,CAAC,MAAwC,EAAE,GAAmB,KAAK,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAElI,QACEA,YAAI,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,YACpD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AACzB,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB;;AAEE,gBAAAA,GAAA,CAAA,IAAA,EAAA,EAAgB,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAC5CA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,6CAA6C,EAAA,CAAG,EAAA,EADvD,KAAK,CAET;YAET;AAEA,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;;gBAEtB,QACEC,IAAA,CAAA,SAAA,EAAA,EAA0B,IAAI,EAAE,UAAU,KAAK,IAAI,EAAE,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,CACtFD,GAAA,CAAC,WAAW,EAAA,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,aAAa,EAAA,aAAA,EAAc,UAAU,CAAC,IAAI,CAAC,EAAA,QAAA,EAC/G,IAAI,CAAC,KAAK,EAAA,CACC,EAEdA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACEA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,MAAM,EAAA,QAAA,EACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,MACxBA,GAAA,CAAA,IAAA,EAAA,EAA0B,SAAS,EAAC,SAAS,EAAA,QAAA,EAC3CA,GAAA,CAAC,WAAW,EAAA,EACV,IAAI,EAAE,SAAS,CAAC,IAAI,EACpB,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,IAAI,EAAC,mBAAmB,EACxB,OAAO,EAAE,SAAS,KAAK,SAAS,CAAC,IAAI,EAAA,aAAA,EACxB,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,EAAA,QAAA,EAE1C,SAAS,CAAC,KAAK,EAAA,CACJ,EAAA,EATP,SAAS,CAAC,KAAK,CAUnB,CACN,CAAC,EAAA,CACC,EAAA,CACF,CAAA,EAAA,EArBO,IAAI,CAAC,KAAK,CAsBd;YAEd;YAEA,QACEA,GAAA,CAAA,IAAA,EAAA,EAAqB,SAAS,EAAC,OAAO,YACpCA,GAAA,CAAC,WAAW,EAAA,EACV,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,EAAA,aAAA,EAC1B,UAAU,CAAC,IAAI,CAAC,EAAA,QAAA,EAE5B,IAAI,CAAC,KAAK,EAAA,CACC,EAAA,EAVP,IAAI,CAAC,KAAK,CAWd;QAET,CAAC,CAAC,EAAA,CACC;AAET;;;;"}
1
+ {"version":3,"file":"nav-list.js","sources":["../../../../../src/components/organisms/HeaderNavigation/components/nav-list.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;;;AAkBO,MAAM,OAAO,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAgB,KAAI;IACrF,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC;IACnD,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC;AACnD,IAAA,MAAM,UAAU,GAAG,CAAC,IAAsC,KAAK,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC;AAChG,IAAA,MAAM,aAAa,GAAG,CAAC,MAAwC,EAAE,GAAmB,KAAK,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC;IAElI,QACEA,YAAI,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,YACpD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AACzB,YAAA,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB;;AAEE,gBAAAA,GAAA,CAAA,IAAA,EAAA,EAAgB,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAC5CA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,6CAA6C,EAAA,CAAG,EAAA,EADvD,KAAK,CAET;YAET;AAEA,YAAA,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;;gBAEtB,QACEC,IAAA,CAAA,SAAA,EAAA,EAA0B,IAAI,EAAE,UAAU,KAAK,IAAI,EAAE,SAAS,EAAC,yBAAyB,EAAA,QAAA,EAAA,CACtFD,GAAA,CAAC,WAAW,EAAA,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAC,aAAa,EAAA,aAAA,EAAc,UAAU,CAAC,IAAI,CAAC,EAAA,QAAA,EAC/G,IAAI,CAAC,KAAK,EAAA,CACC,EAEdA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACEA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,MAAM,EAAA,QAAA,EACjB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,MACxBA,GAAA,CAAA,IAAA,EAAA,EAA0B,SAAS,EAAC,SAAS,EAAA,QAAA,EAC3CA,GAAA,CAAC,WAAW,EAAA,EACV,IAAI,EAAE,SAAS,CAAC,IAAI,EACpB,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,IAAI,EAAC,mBAAmB,EACxB,OAAO,EAAE,SAAS,CAAC,IAAI,KAAK,UAAU,EAAA,aAAA,EACzB,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,EAAA,QAAA,EAE1C,SAAS,CAAC,KAAK,EAAA,CACJ,EAAA,EATP,SAAS,CAAC,KAAK,CAUnB,CACN,CAAC,EAAA,CACC,EAAA,CACF,CAAA,EAAA,EArBO,IAAI,CAAC,KAAK,CAsBd;YAEd;YAEA,QACEA,GAAA,CAAA,IAAA,EAAA,EAAqB,SAAS,EAAC,OAAO,YACpCA,GAAA,CAAC,WAAW,EAAA,EACV,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,IAAI,CAAC,IAAI,KAAK,UAAU,EAAA,aAAA,EACpB,UAAU,CAAC,IAAI,CAAC,EAAA,QAAA,EAE5B,IAAI,CAAC,KAAK,EAAA,CACC,EAAA,EAVP,IAAI,CAAC,KAAK,CAWd;QAET,CAAC,CAAC,EAAA,CACC;AAET;;;;"}
@@ -7,31 +7,22 @@ var Input = require('@flipdish/ui-library/components/atoms/Input');
7
7
  var Tabs = require('@flipdish/ui-library/components/molecules/Tabs');
8
8
  var cx = require('@flipdish/ui-library/utilities/cx');
9
9
  var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
10
+ var nav_utils = require('../../__internal__/navigation/nav.utils.cjs');
10
11
  var mobileHeader = require('./components/mobile-header.cjs');
11
12
  var navAccountCard = require('./components/nav-account-card.cjs');
12
13
  var navButton = require('./components/nav-button.cjs');
13
14
  var navItem = require('./components/nav-item.cjs');
14
15
  var navList = require('./components/nav-list.cjs');
15
16
 
16
- /** Returns true if `href` matches `activeUrl` (exact or prefix for nested routes). */
17
- const isItemActive = (href, activeUrl) => {
18
- if (!activeUrl || !href)
19
- return false;
20
- if (href === activeUrl)
21
- return true;
22
- if (href !== '/' && activeUrl.startsWith(`${href}/`))
23
- return true;
24
- return false;
25
- };
26
17
  const HeaderNavigationBase = ({ activeUrl, items, subItems, hideBorder = false, actions, centered = false, secondaryType = 'buttons', footerItems = [], account, 'data-testid': dataTestId, }) => {
27
- const isActive = (item) => item.current ?? isItemActive(item.href, activeUrl);
18
+ const isActive = (item) => item.current ?? nav_utils.isHrefActive(item.href, activeUrl);
28
19
  const rootTestId = testIdUtils.useResolvedTestId({ testId: dataTestId, segment: 'header-navigation', rootName: 'header-navigation' });
29
20
  // The mobile drawer and the desktop header both render the same nav items; re-root the
30
21
  // drawer subtree under `drawer` so their derived testids don't collide in the DOM.
31
22
  const drawerTestId = testIdUtils.joinTestId(rootTestId, 'drawer');
32
23
  const navItemTestId = (item, base = rootTestId) => item['data-testid'] ?? testIdUtils.joinTestId(base, `nav-item-${item.id ?? testIdUtils.slugifyTestId(item.label)}`);
33
24
  const subNavItemTestId = (item) => item['data-testid'] ?? testIdUtils.joinTestId(rootTestId, `sub-nav-${item.id ?? testIdUtils.slugifyTestId(item.label)}`);
34
- const activeParent = items.find((item) => isActive(item) || item.items?.some((sub) => isItemActive(sub.href, activeUrl)));
25
+ const activeParent = items.find((item) => isActive(item) || item.items?.some((sub) => nav_utils.isHrefActive(sub.href, activeUrl)));
35
26
  const activeSubNavItems = subItems || activeParent?.items;
36
27
  const showSecondaryNav = activeSubNavItems && activeSubNavItems.length > 0;
37
28
  const tabItems = showSecondaryNav
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/components/organisms/HeaderNavigation/index.tsx"],"sourcesContent":[null],"names":["useResolvedTestId","joinTestId","slugifyTestId","_jsxs","TestIdProvider","_jsx","MobileNavigationHeader","FlipdishLogo","Input","SearchLg","NavList","NavItemBase","NavAccountCard","cx","NavButton","Tabs","TabList"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/organisms/HeaderNavigation/index.tsx"],"sourcesContent":[null],"names":["isHrefActive","useResolvedTestId","joinTestId","slugifyTestId","_jsxs","TestIdProvider","_jsx","MobileNavigationHeader","FlipdishLogo","Input","SearchLg","NavList","NavItemBase","NavAccountCard","cx","NavButton","Tabs","TabList"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/HeaderNavigation/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAkB,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAKjH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACjI,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,wDAAwD;IACxD,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,gFAAgF;IAChF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACrC,iDAAiD;IACjD,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAC5C,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iCAAiC;IACjC,IAAI,CAAC,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClC,wBAAwB;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,4FAA4F;IAC5F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAUF,MAAM,WAAW,yBAAyB;IACxC,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,sEAAsE;IACtE,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAEnC,wFAAwF;IACxF,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IAExB,4HAA4H;IAC5H,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,GAAI,gIAWlC,yBAAyB,gCAmI3B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/HeaderNavigation/index.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,EAAkB,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAKjH,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,KAAK,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACjI,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,wDAAwD;IACxD,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,gFAAgF;IAChF,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACrC,iDAAiD;IACjD,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAC5C,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iCAAiC;IACjC,IAAI,CAAC,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClC,wBAAwB;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,oCAAoC;IACpC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,4FAA4F;IAC5F,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gCAAgC;IAChC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,sEAAsE;IACtE,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAEnC,wFAAwF;IACxF,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IAExB,4HAA4H;IAC5H,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,GAAI,gIAWlC,yBAAyB,gCAmI3B,CAAC"}
@@ -5,6 +5,7 @@ import { Input } from '@flipdish/ui-library/components/atoms/Input';
5
5
  import { Tabs, TabList } from '@flipdish/ui-library/components/molecules/Tabs';
6
6
  import { cx } from '@flipdish/ui-library/utilities/cx';
7
7
  import { useResolvedTestId, joinTestId, TestIdProvider, slugifyTestId } from '@flipdish/ui-library/utilities/testIdUtils';
8
+ import { isHrefActive } from '../../__internal__/navigation/nav.utils.js';
8
9
  import { MobileNavigationHeader } from './components/mobile-header.js';
9
10
  import { NavAccountCard } from './components/nav-account-card.js';
10
11
  export { NavAccountMenu } from './components/nav-account-card.js';
@@ -12,25 +13,15 @@ import { NavButton } from './components/nav-button.js';
12
13
  import { NavItemBase } from './components/nav-item.js';
13
14
  import { NavList } from './components/nav-list.js';
14
15
 
15
- /** Returns true if `href` matches `activeUrl` (exact or prefix for nested routes). */
16
- const isItemActive = (href, activeUrl) => {
17
- if (!activeUrl || !href)
18
- return false;
19
- if (href === activeUrl)
20
- return true;
21
- if (href !== '/' && activeUrl.startsWith(`${href}/`))
22
- return true;
23
- return false;
24
- };
25
16
  const HeaderNavigationBase = ({ activeUrl, items, subItems, hideBorder = false, actions, centered = false, secondaryType = 'buttons', footerItems = [], account, 'data-testid': dataTestId, }) => {
26
- const isActive = (item) => item.current ?? isItemActive(item.href, activeUrl);
17
+ const isActive = (item) => item.current ?? isHrefActive(item.href, activeUrl);
27
18
  const rootTestId = useResolvedTestId({ testId: dataTestId, segment: 'header-navigation', rootName: 'header-navigation' });
28
19
  // The mobile drawer and the desktop header both render the same nav items; re-root the
29
20
  // drawer subtree under `drawer` so their derived testids don't collide in the DOM.
30
21
  const drawerTestId = joinTestId(rootTestId, 'drawer');
31
22
  const navItemTestId = (item, base = rootTestId) => item['data-testid'] ?? joinTestId(base, `nav-item-${item.id ?? slugifyTestId(item.label)}`);
32
23
  const subNavItemTestId = (item) => item['data-testid'] ?? joinTestId(rootTestId, `sub-nav-${item.id ?? slugifyTestId(item.label)}`);
33
- const activeParent = items.find((item) => isActive(item) || item.items?.some((sub) => isItemActive(sub.href, activeUrl)));
24
+ const activeParent = items.find((item) => isActive(item) || item.items?.some((sub) => isHrefActive(sub.href, activeUrl)));
34
25
  const activeSubNavItems = subItems || activeParent?.items;
35
26
  const showSecondaryNav = activeSubNavItems && activeSubNavItems.length > 0;
36
27
  const tabItems = showSecondaryNav
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/organisms/HeaderNavigation/index.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/organisms/HeaderNavigation/index.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var Badge = require('@flipdish/ui-library/components/atoms/Badge');
5
+ var Tabs = require('@flipdish/ui-library/components/molecules/Tabs');
6
+ var cx = require('@flipdish/ui-library/utilities/cx');
7
+ var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
8
+ var reactAriaComponents = require('react-aria-components');
9
+
10
+ /**
11
+ * Desktop section strip for `PageHeader`, styled via the Tabs class maps but rendered as a
12
+ * `<nav>` rather than a `tablist`: react-aria always points a selected `tab`'s
13
+ * `aria-controls` at a `tabpanel`, and the header never owns that content, so the
14
+ * reference could not resolve (fails axe `aria-valid-attr-value`).
15
+ */
16
+ const PageHeaderTabNav = ({ tabs, selectedTab, onSelect, 'aria-label': ariaLabel, className, 'data-testid': testId, }) => (jsxRuntime.jsx("nav", { "aria-label": ariaLabel, "data-testid": testId, className: cx.cx('w-full', className), children: jsxRuntime.jsx("ul", { className: "relative flex gap-3 before:absolute before:inset-x-0 before:bottom-0 before:h-px before:bg-border-secondary", children: tabs.map((tab) => {
17
+ const isSelected = tab.id === selectedTab;
18
+ const itemTestId = testIdUtils.joinTestId(testId, `tab-${testIdUtils.slugifyTestId(tab.id)}`);
19
+ const itemClassName = ({ isHovered, isFocusVisible, isDisabled }) => cx.cx('z-10 flex h-max cursor-pointer items-center justify-center whitespace-nowrap text-quaternary transition duration-100 ease-linear', Tabs.tabSizes.sm.base, Tabs.tabSizes.sm.underline, Tabs.getTabStyles({ isSelected, isHovered, isFocusVisible }).underline, isDisabled && 'cursor-not-allowed opacity-50');
20
+ const content = ({ isHovered }) => (jsxRuntime.jsxs("span", { className: "flex items-center gap-1.5 px-0.5", children: [tab.label, tab.badge !== undefined && (jsxRuntime.jsx(Badge.Badge, { size: "sm", type: "pill-color", color: isHovered || isSelected ? 'brand' : 'gray', className: "-my-px transition-inherit-all", children: tab.badge }))] }));
21
+ return (jsxRuntime.jsx("li", { className: "flex", children: tab.href ? (jsxRuntime.jsx(reactAriaComponents.Link, { href: tab.href, isDisabled: tab.isDisabled, "aria-current": isSelected ? 'page' : undefined, className: itemClassName, onPress: () => onSelect(tab.id), "data-testid": itemTestId, children: content })) : (jsxRuntime.jsx(reactAriaComponents.Button, { isDisabled: tab.isDisabled, "aria-current": isSelected ? 'true' : undefined, className: itemClassName, onPress: () => onSelect(tab.id), "data-testid": itemTestId, children: content })) }, tab.id));
22
+ }) }) }));
23
+
24
+ exports.PageHeaderTabNav = PageHeaderTabNav;
25
+ //# sourceMappingURL=page-header-tab-nav.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-header-tab-nav.cjs","sources":["../../../../../src/components/organisms/PageHeader/components/page-header-tab-nav.tsx"],"sourcesContent":[null],"names":["_jsx","cx","joinTestId","slugifyTestId","tabSizes","getTabStyles","_jsxs","Badge","AriaLink","AriaButton"],"mappings":";;;;;;;;;AAwBA;;;;;AAKG;AACI,MAAM,gBAAgB,GAAG,CAAC,EAC/B,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,SAAS,EACT,aAAa,EAAE,MAAM,GACC,MACtBA,sCAAiB,SAAS,EAAA,aAAA,EAAe,MAAM,EAAE,SAAS,EAAEC,KAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAA,QAAA,EACjFD,uBAAI,SAAS,EAAC,6GAA6G,EAAA,QAAA,EACxH,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AAChB,YAAA,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,KAAK,WAAW;AACzC,YAAA,MAAM,UAAU,GAAGE,sBAAU,CAAC,MAAM,EAAE,CAAA,IAAA,EAAOC,yBAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAE,CAAC;YAErE,MAAM,aAAa,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAoB,KAChFF,KAAE,CACA,kIAAkI,EAClIG,aAAQ,CAAC,EAAE,CAAC,IAAI,EAChBA,aAAQ,CAAC,EAAE,CAAC,SAAS,EACrBC,iBAAY,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,SAAS,EACjE,UAAU,IAAI,+BAA+B,CAC9C;AAEH,YAAA,MAAM,OAAO,GAAG,CAAC,EAAE,SAAS,EAAuC,MACjEC,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kCAAkC,EAAA,QAAA,EAAA,CAC/C,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,KAAK,KAAK,SAAS,KACtBN,cAAA,CAACO,WAAK,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAE,SAAS,IAAI,UAAU,GAAG,OAAO,GAAG,MAAM,EAAE,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAC5H,GAAG,CAAC,KAAK,EAAA,CACJ,CACT,CAAA,EAAA,CACI,CACR;YAED,QACEP,cAAA,CAAA,IAAA,EAAA,EAAiB,SAAS,EAAC,MAAM,YAC9B,GAAG,CAAC,IAAI,IACPA,cAAA,CAACQ,wBAAQ,EAAA,EACP,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,UAAU,EAAE,GAAG,CAAC,UAAU,EAAA,cAAA,EACZ,UAAU,GAAG,MAAM,GAAG,SAAS,EAC7C,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAA,aAAA,EAClB,UAAU,EAAA,QAAA,EAEtB,OAAO,EAAA,CACC,KAEXR,cAAA,CAACS,0BAAU,EAAA,EACT,UAAU,EAAE,GAAG,CAAC,UAAU,EAAA,cAAA,EACZ,UAAU,GAAG,MAAM,GAAG,SAAS,EAC7C,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAA,aAAA,EAClB,UAAU,EAAA,QAAA,EAEtB,OAAO,EAAA,CACG,CACd,EAAA,EAtBM,GAAG,CAAC,EAAE,CAuBV;AAET,QAAA,CAAC,CAAC,EAAA,CACC,EAAA,CACD;;;;"}
@@ -0,0 +1,19 @@
1
+ import type { PageHeaderTab } from '../index';
2
+ interface PageHeaderTabNavProps {
3
+ tabs: PageHeaderTab[];
4
+ selectedTab: string;
5
+ onSelect: (id: string) => void;
6
+ /** Accessible name for the `<nav>` landmark. */
7
+ 'aria-label': string;
8
+ className?: string;
9
+ 'data-testid': string;
10
+ }
11
+ /**
12
+ * Desktop section strip for `PageHeader`, styled via the Tabs class maps but rendered as a
13
+ * `<nav>` rather than a `tablist`: react-aria always points a selected `tab`'s
14
+ * `aria-controls` at a `tabpanel`, and the header never owns that content, so the
15
+ * reference could not resolve (fails axe `aria-valid-attr-value`).
16
+ */
17
+ export declare const PageHeaderTabNav: ({ tabs, selectedTab, onSelect, "aria-label": ariaLabel, className, "data-testid": testId, }: PageHeaderTabNavProps) => import("react").JSX.Element;
18
+ export {};
19
+ //# sourceMappingURL=page-header-tab-nav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-header-tab-nav.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/PageHeader/components/page-header-tab-nav.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,UAAU,qBAAqB;IAC7B,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAQD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,6FAO9B,qBAAqB,gCAwDvB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Badge } from '@flipdish/ui-library/components/atoms/Badge';
3
+ import { tabSizes, getTabStyles } from '@flipdish/ui-library/components/molecules/Tabs';
4
+ import { cx } from '@flipdish/ui-library/utilities/cx';
5
+ import { joinTestId, slugifyTestId } from '@flipdish/ui-library/utilities/testIdUtils';
6
+ import { Link, Button } from 'react-aria-components';
7
+
8
+ /**
9
+ * Desktop section strip for `PageHeader`, styled via the Tabs class maps but rendered as a
10
+ * `<nav>` rather than a `tablist`: react-aria always points a selected `tab`'s
11
+ * `aria-controls` at a `tabpanel`, and the header never owns that content, so the
12
+ * reference could not resolve (fails axe `aria-valid-attr-value`).
13
+ */
14
+ const PageHeaderTabNav = ({ tabs, selectedTab, onSelect, 'aria-label': ariaLabel, className, 'data-testid': testId, }) => (jsx("nav", { "aria-label": ariaLabel, "data-testid": testId, className: cx('w-full', className), children: jsx("ul", { className: "relative flex gap-3 before:absolute before:inset-x-0 before:bottom-0 before:h-px before:bg-border-secondary", children: tabs.map((tab) => {
15
+ const isSelected = tab.id === selectedTab;
16
+ const itemTestId = joinTestId(testId, `tab-${slugifyTestId(tab.id)}`);
17
+ const itemClassName = ({ isHovered, isFocusVisible, isDisabled }) => cx('z-10 flex h-max cursor-pointer items-center justify-center whitespace-nowrap text-quaternary transition duration-100 ease-linear', tabSizes.sm.base, tabSizes.sm.underline, getTabStyles({ isSelected, isHovered, isFocusVisible }).underline, isDisabled && 'cursor-not-allowed opacity-50');
18
+ const content = ({ isHovered }) => (jsxs("span", { className: "flex items-center gap-1.5 px-0.5", children: [tab.label, tab.badge !== undefined && (jsx(Badge, { size: "sm", type: "pill-color", color: isHovered || isSelected ? 'brand' : 'gray', className: "-my-px transition-inherit-all", children: tab.badge }))] }));
19
+ return (jsx("li", { className: "flex", children: tab.href ? (jsx(Link, { href: tab.href, isDisabled: tab.isDisabled, "aria-current": isSelected ? 'page' : undefined, className: itemClassName, onPress: () => onSelect(tab.id), "data-testid": itemTestId, children: content })) : (jsx(Button, { isDisabled: tab.isDisabled, "aria-current": isSelected ? 'true' : undefined, className: itemClassName, onPress: () => onSelect(tab.id), "data-testid": itemTestId, children: content })) }, tab.id));
20
+ }) }) }));
21
+
22
+ export { PageHeaderTabNav };
23
+ //# sourceMappingURL=page-header-tab-nav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-header-tab-nav.js","sources":["../../../../../src/components/organisms/PageHeader/components/page-header-tab-nav.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs","AriaLink","AriaButton"],"mappings":";;;;;;;AAwBA;;;;;AAKG;AACI,MAAM,gBAAgB,GAAG,CAAC,EAC/B,IAAI,EACJ,WAAW,EACX,QAAQ,EACR,YAAY,EAAE,SAAS,EACvB,SAAS,EACT,aAAa,EAAE,MAAM,GACC,MACtBA,2BAAiB,SAAS,EAAA,aAAA,EAAe,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAA,QAAA,EACjFA,YAAI,SAAS,EAAC,6GAA6G,EAAA,QAAA,EACxH,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AAChB,YAAA,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,KAAK,WAAW;AACzC,YAAA,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,CAAA,IAAA,EAAO,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA,CAAE,CAAC;YAErE,MAAM,aAAa,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAoB,KAChF,EAAE,CACA,kIAAkI,EAClI,QAAQ,CAAC,EAAE,CAAC,IAAI,EAChB,QAAQ,CAAC,EAAE,CAAC,SAAS,EACrB,YAAY,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,SAAS,EACjE,UAAU,IAAI,+BAA+B,CAC9C;AAEH,YAAA,MAAM,OAAO,GAAG,CAAC,EAAE,SAAS,EAAuC,MACjEC,IAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kCAAkC,EAAA,QAAA,EAAA,CAC/C,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,KAAK,KAAK,SAAS,KACtBD,GAAA,CAAC,KAAK,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,YAAY,EAAC,KAAK,EAAE,SAAS,IAAI,UAAU,GAAG,OAAO,GAAG,MAAM,EAAE,SAAS,EAAC,+BAA+B,EAAA,QAAA,EAC5H,GAAG,CAAC,KAAK,EAAA,CACJ,CACT,CAAA,EAAA,CACI,CACR;YAED,QACEA,GAAA,CAAA,IAAA,EAAA,EAAiB,SAAS,EAAC,MAAM,YAC9B,GAAG,CAAC,IAAI,IACPA,GAAA,CAACE,IAAQ,EAAA,EACP,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,UAAU,EAAE,GAAG,CAAC,UAAU,EAAA,cAAA,EACZ,UAAU,GAAG,MAAM,GAAG,SAAS,EAC7C,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAA,aAAA,EAClB,UAAU,EAAA,QAAA,EAEtB,OAAO,EAAA,CACC,KAEXF,GAAA,CAACG,MAAU,EAAA,EACT,UAAU,EAAE,GAAG,CAAC,UAAU,EAAA,cAAA,EACZ,UAAU,GAAG,MAAM,GAAG,SAAS,EAC7C,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAA,aAAA,EAClB,UAAU,EAAA,QAAA,EAEtB,OAAO,EAAA,CACG,CACd,EAAA,EAtBM,GAAG,CAAC,EAAE,CAuBV;AAET,QAAA,CAAC,CAAC,EAAA,CACC,EAAA,CACD;;;;"}
@@ -1,8 +1,43 @@
1
1
  'use strict';
2
2
 
3
- var pageHeaderSimple = require('./components/page-header-simple.cjs');
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var uiIcons = require('@flipdish/ui-icons');
5
+ var Button = require('@flipdish/ui-library/components/atoms/Button');
6
+ var Divider = require('@flipdish/ui-library/components/atoms/Divider');
7
+ var Breadcrumbs = require('@flipdish/ui-library/components/molecules/Breadcrumbs');
8
+ var Select = require('@flipdish/ui-library/components/molecules/Select');
9
+ var cx = require('@flipdish/ui-library/utilities/cx');
10
+ var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
11
+ var React = require('react');
12
+ var pageHeaderTabNav = require('./components/page-header-tab-nav.cjs');
4
13
 
14
+ /**
15
+ * Page-level header that anchors every page: a title (`h1`) with optional breadcrumbs
16
+ * (a back link below `lg`), supporting text, action buttons, section tabs and a divider.
17
+ * Navigation (breadcrumbs, tabs) is data-driven because the header re-renders it per
18
+ * breakpoint; actions are a slot because the header only positions them. Spans the full
19
+ * width of its container — `PageLayout` owns the page padding.
20
+ *
21
+ * @summary page header with title, breadcrumbs, actions and section tabs
22
+ */
23
+ const PageHeader = ({ title, description, breadcrumbs, actions, tabs, selectedTab, defaultSelectedTab, onTabChange, withDivider = false, className, 'data-testid': dataTestId, }) => {
24
+ const pageHeaderTestId = testIdUtils.useResolvedTestId({ testId: dataTestId, segment: 'page-header', rootName: 'page-header' });
25
+ const hasTabs = Boolean(tabs?.length);
26
+ const backCrumb = breadcrumbs
27
+ ?.slice(0, -1)
28
+ .reverse()
29
+ .find((crumb) => crumb.href);
30
+ // Uncontrolled fallback so the desktop strip and the mobile select always agree on the selection.
31
+ const [internalSelectedTab, setInternalSelectedTab] = React.useState(defaultSelectedTab);
32
+ const resolvedSelectedTab = selectedTab ?? internalSelectedTab ?? tabs?.[0]?.id ?? '';
33
+ const selectTab = (id) => {
34
+ setInternalSelectedTab(id);
35
+ onTabChange?.(id);
36
+ };
37
+ return (jsxRuntime.jsx(testIdUtils.TestIdProvider, { value: pageHeaderTestId, children: jsxRuntime.jsxs("div", { "data-testid": pageHeaderTestId, className: cx.cx('flex w-full flex-col gap-4', className), children: [breadcrumbs && breadcrumbs.length > 0 && (jsxRuntime.jsx(Breadcrumbs.Breadcrumbs, { divider: "slash", className: "max-lg:hidden", children: breadcrumbs.map((crumb) => (jsxRuntime.jsx(Breadcrumbs.Breadcrumbs.Item, {
38
+ // Pin the segment to the label so an icon-only crumb keeps `--item-<label>` rather than falling back to its href.
39
+ id: crumb.id ?? testIdUtils.slugifyTestId(crumb.label), href: crumb.href, icon: crumb.icon, "aria-label": crumb.hideLabel ? crumb.label : undefined, children: crumb.hideLabel ? undefined : crumb.label }, crumb.id ?? crumb.label))) })), backCrumb?.href && (jsxRuntime.jsx("div", { className: "flex lg:hidden", children: jsxRuntime.jsx(Button.Button, { href: backCrumb.href, color: "link-gray", size: "sm", iconLeading: uiIcons.ArrowLeft, "data-testid": testIdUtils.joinTestId(pageHeaderTestId, 'back'), children: backCrumb.label }) })), jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 lg:flex-row lg:flex-wrap lg:items-start lg:gap-x-4 lg:gap-y-5", children: [jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5 lg:min-w-80", children: [jsxRuntime.jsx("h1", { className: "text-xl font-semibold text-primary lg:text-display-xs", children: title }), description && jsxRuntime.jsx("p", { className: "text-md text-tertiary", children: description })] }), actions && jsxRuntime.jsx("div", { className: "flex flex-row-reverse flex-wrap items-center justify-end gap-3 lg:flex-row lg:justify-start", children: actions })] }), hasTabs && tabs && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(pageHeaderTabNav.PageHeaderTabNav, { className: "max-lg:hidden", tabs: tabs, selectedTab: resolvedSelectedTab, onSelect: selectTab, "aria-label": title, "data-testid": testIdUtils.joinTestId(pageHeaderTestId, 'tabs') }), jsxRuntime.jsx(Select.Select, { className: "w-full lg:hidden", size: "md", "aria-label": title, value: resolvedSelectedTab, onChange: (key) => key !== null && selectTab(String(key)), "data-testid": testIdUtils.joinTestId(pageHeaderTestId, 'tabs-select'), children: tabs.map((tab) => (jsxRuntime.jsx(Select.Select.Item, { id: tab.id, label: tab.label, isDisabled: tab.isDisabled }, tab.id))) })] })), withDivider && !hasTabs && jsxRuntime.jsx(Divider.Divider, {})] }) }));
40
+ };
5
41
 
6
-
7
- exports.PageHeaderSimple = pageHeaderSimple.PageHeaderSimple;
42
+ exports.PageHeader = PageHeader;
8
43
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/organisms/PageHeader/index.tsx"],"sourcesContent":[null],"names":["useResolvedTestId","useState","_jsx","TestIdProvider","_jsxs","cx","Breadcrumbs","slugifyTestId","Button","ArrowLeft","joinTestId","PageHeaderTabNav","Select","Divider"],"mappings":"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"}
@@ -1,7 +1,82 @@
1
+ import type { FC, ReactNode } from 'react';
2
+ export interface PageHeaderBreadcrumb {
3
+ /** Stable id used for the derived `data-testid`; defaults to a slug of `label`. */
4
+ id?: string;
5
+ /** Visible crumb label. Also labels the mobile back link when this is the parent crumb. */
6
+ label: string;
7
+ /** Link target. Omit on the last crumb (the current page). */
8
+ href?: string;
9
+ /** Leading icon, e.g. `HomeLine` on the root crumb. */
10
+ icon?: FC<{
11
+ className?: string;
12
+ }>;
13
+ /**
14
+ * Render only `icon` in the trail; `label` becomes the link's `aria-label` (and still
15
+ * labels the mobile back link). Use on the root home crumb, per the designs.
16
+ */
17
+ hideLabel?: boolean;
18
+ }
19
+ export interface PageHeaderTab {
20
+ /** Stable identifier — passed to `onTabChange` and matched against `selectedTab`. */
21
+ id: string;
22
+ /** Visible tab label. */
23
+ label: string;
24
+ /** Optional count/status badge shown after the label (desktop only). */
25
+ badge?: number | string;
26
+ /**
27
+ * Renders the desktop item as a link to this URL (with `aria-current="page"` when
28
+ * selected) instead of a button. `onTabChange` still fires on press.
29
+ */
30
+ href?: string;
31
+ /** Prevents the tab from being selected. */
32
+ isDisabled?: boolean;
33
+ }
34
+ export interface PageHeaderProps {
35
+ /** Page title (rendered as the `h1`). */
36
+ title: string;
37
+ /** Supporting text shown beneath the title. */
38
+ description?: string;
39
+ /**
40
+ * Breadcrumb trail, root first, current page last. Renders `<Breadcrumbs>` on desktop;
41
+ * below `lg` it collapses to a back link targeting the nearest ancestor crumb with an
42
+ * `href`, labelled with that crumb's label.
43
+ */
44
+ breadcrumbs?: PageHeaderBreadcrumb[];
45
+ /**
46
+ * Action buttons rendered to the right of the title on desktop and beneath it on
47
+ * mobile. Compose them primary-last (e.g. icon button, secondary, primary): the row is
48
+ * reversed below `lg` so the primary action comes first on mobile, as in the design.
49
+ */
50
+ actions?: ReactNode;
51
+ /**
52
+ * Section tabs rendered beneath the title row — an underline strip on desktop and a
53
+ * full-width `Select` on mobile. The header only renders the switcher; render the
54
+ * matching content yourself, keyed off `selectedTab` / `onTabChange`.
55
+ */
56
+ tabs?: PageHeaderTab[];
57
+ /** Controlled selected tab id. */
58
+ selectedTab?: string;
59
+ /** Initially selected tab id (uncontrolled). Defaults to the first tab. */
60
+ defaultSelectedTab?: string;
61
+ /** Called with the tab id when the user picks a tab (desktop strip or mobile select). */
62
+ onTabChange?: (id: string) => void;
63
+ /**
64
+ * Render a divider beneath the title row. Ignored when `tabs` are present — the tab
65
+ * strip draws its own bottom rule.
66
+ */
67
+ withDivider?: boolean;
68
+ className?: string;
69
+ /** Overrides the `data-testid` (defaults to `fd-page-header`). */
70
+ 'data-testid'?: string;
71
+ }
1
72
  /**
2
- * Page-level header bar containing a title, optional breadcrumb, and action slots.
73
+ * Page-level header that anchors every page: a title (`h1`) with optional breadcrumbs
74
+ * (a back link below `lg`), supporting text, action buttons, section tabs and a divider.
75
+ * Navigation (breadcrumbs, tabs) is data-driven because the header re-renders it per
76
+ * breakpoint; actions are a slot because the header only positions them. Spans the full
77
+ * width of its container — `PageLayout` owns the page padding.
3
78
  *
4
- * @summary page header with title and optional actions
79
+ * @summary page header with title, breadcrumbs, actions and section tabs
5
80
  */
6
- export { PageHeaderSimple } from './components/page-header-simple';
81
+ export declare const PageHeader: ({ title, description, breadcrumbs, actions, tabs, selectedTab, defaultSelectedTab, onTabChange, withDivider, className, "data-testid": dataTestId, }: PageHeaderProps) => import("react").JSX.Element;
7
82
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/PageHeader/index.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/PageHeader/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAI3C,MAAM,WAAW,oBAAoB;IACnC,mFAAmF;IACnF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2FAA2F;IAC3F,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,IAAI,CAAC,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,qFAAqF;IACrF,EAAE,EAAE,MAAM,CAAC;IACX,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yFAAyF;IACzF,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,UAAU,GAAI,sJAYxB,eAAe,gCAmFjB,CAAC"}
@@ -1,2 +1,41 @@
1
- export { PageHeaderSimple } from './components/page-header-simple.js';
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { ArrowLeft } from '@flipdish/ui-icons';
3
+ import { Button } from '@flipdish/ui-library/components/atoms/Button';
4
+ import { Divider } from '@flipdish/ui-library/components/atoms/Divider';
5
+ import { Breadcrumbs } from '@flipdish/ui-library/components/molecules/Breadcrumbs';
6
+ import { Select } from '@flipdish/ui-library/components/molecules/Select';
7
+ import { cx } from '@flipdish/ui-library/utilities/cx';
8
+ import { useResolvedTestId, TestIdProvider, slugifyTestId, joinTestId } from '@flipdish/ui-library/utilities/testIdUtils';
9
+ import { useState } from 'react';
10
+ import { PageHeaderTabNav } from './components/page-header-tab-nav.js';
11
+
12
+ /**
13
+ * Page-level header that anchors every page: a title (`h1`) with optional breadcrumbs
14
+ * (a back link below `lg`), supporting text, action buttons, section tabs and a divider.
15
+ * Navigation (breadcrumbs, tabs) is data-driven because the header re-renders it per
16
+ * breakpoint; actions are a slot because the header only positions them. Spans the full
17
+ * width of its container — `PageLayout` owns the page padding.
18
+ *
19
+ * @summary page header with title, breadcrumbs, actions and section tabs
20
+ */
21
+ const PageHeader = ({ title, description, breadcrumbs, actions, tabs, selectedTab, defaultSelectedTab, onTabChange, withDivider = false, className, 'data-testid': dataTestId, }) => {
22
+ const pageHeaderTestId = useResolvedTestId({ testId: dataTestId, segment: 'page-header', rootName: 'page-header' });
23
+ const hasTabs = Boolean(tabs?.length);
24
+ const backCrumb = breadcrumbs
25
+ ?.slice(0, -1)
26
+ .reverse()
27
+ .find((crumb) => crumb.href);
28
+ // Uncontrolled fallback so the desktop strip and the mobile select always agree on the selection.
29
+ const [internalSelectedTab, setInternalSelectedTab] = useState(defaultSelectedTab);
30
+ const resolvedSelectedTab = selectedTab ?? internalSelectedTab ?? tabs?.[0]?.id ?? '';
31
+ const selectTab = (id) => {
32
+ setInternalSelectedTab(id);
33
+ onTabChange?.(id);
34
+ };
35
+ return (jsx(TestIdProvider, { value: pageHeaderTestId, children: jsxs("div", { "data-testid": pageHeaderTestId, className: cx('flex w-full flex-col gap-4', className), children: [breadcrumbs && breadcrumbs.length > 0 && (jsx(Breadcrumbs, { divider: "slash", className: "max-lg:hidden", children: breadcrumbs.map((crumb) => (jsx(Breadcrumbs.Item, {
36
+ // Pin the segment to the label so an icon-only crumb keeps `--item-<label>` rather than falling back to its href.
37
+ id: crumb.id ?? slugifyTestId(crumb.label), href: crumb.href, icon: crumb.icon, "aria-label": crumb.hideLabel ? crumb.label : undefined, children: crumb.hideLabel ? undefined : crumb.label }, crumb.id ?? crumb.label))) })), backCrumb?.href && (jsx("div", { className: "flex lg:hidden", children: jsx(Button, { href: backCrumb.href, color: "link-gray", size: "sm", iconLeading: ArrowLeft, "data-testid": joinTestId(pageHeaderTestId, 'back'), children: backCrumb.label }) })), jsxs("div", { className: "flex flex-col gap-4 lg:flex-row lg:flex-wrap lg:items-start lg:gap-x-4 lg:gap-y-5", children: [jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5 lg:min-w-80", children: [jsx("h1", { className: "text-xl font-semibold text-primary lg:text-display-xs", children: title }), description && jsx("p", { className: "text-md text-tertiary", children: description })] }), actions && jsx("div", { className: "flex flex-row-reverse flex-wrap items-center justify-end gap-3 lg:flex-row lg:justify-start", children: actions })] }), hasTabs && tabs && (jsxs(Fragment, { children: [jsx(PageHeaderTabNav, { className: "max-lg:hidden", tabs: tabs, selectedTab: resolvedSelectedTab, onSelect: selectTab, "aria-label": title, "data-testid": joinTestId(pageHeaderTestId, 'tabs') }), jsx(Select, { className: "w-full lg:hidden", size: "md", "aria-label": title, value: resolvedSelectedTab, onChange: (key) => key !== null && selectTab(String(key)), "data-testid": joinTestId(pageHeaderTestId, 'tabs-select'), children: tabs.map((tab) => (jsx(Select.Item, { id: tab.id, label: tab.label, isDisabled: tab.isDisabled }, tab.id))) })] })), withDivider && !hasTabs && jsx(Divider, {})] }) }));
38
+ };
39
+
40
+ export { PageHeader };
2
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/organisms/PageHeader/index.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;AAoFA;;;;;;;;AAQG;AACI,MAAM,UAAU,GAAG,CAAC,EACzB,KAAK,EACL,WAAW,EACX,WAAW,EACX,OAAO,EACP,IAAI,EACJ,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,WAAW,GAAG,KAAK,EACnB,SAAS,EACT,aAAa,EAAE,UAAU,GACT,KAAI;AACpB,IAAA,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IACnH,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;IACrC,MAAM,SAAS,GAAG;AAChB,UAAE,KAAK,CAAC,CAAC,EAAE,EAAE;AACZ,SAAA,OAAO;SACP,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC;;IAG9B,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAqB,kBAAkB,CAAC;AACtG,IAAA,MAAM,mBAAmB,GAAG,WAAW,IAAI,mBAAmB,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE;AACrF,IAAA,MAAM,SAAS,GAAG,CAAC,EAAU,KAAI;QAC/B,sBAAsB,CAAC,EAAE,CAAC;AAC1B,QAAA,WAAW,GAAG,EAAE,CAAC;AACnB,IAAA,CAAC;IAED,QACEA,GAAA,CAAC,cAAc,EAAA,EAAC,KAAK,EAAE,gBAAgB,EAAA,QAAA,EACrCC,IAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EAAkB,gBAAgB,EAAE,SAAS,EAAE,EAAE,CAAC,4BAA4B,EAAE,SAAS,CAAC,aACvF,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,KACpCD,GAAA,CAAC,WAAW,EAAA,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,eAAe,EAAA,QAAA,EACnD,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,MACrBA,GAAA,CAAC,WAAW,CAAC,IAAI,EAAA;;AAGf,wBAAA,EAAE,EAAE,KAAK,CAAC,EAAE,IAAI,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,EAC1C,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,IAAI,EAAE,KAAK,CAAC,IAAI,EAAA,YAAA,EACJ,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,SAAS,EAAA,QAAA,EAEpD,KAAK,CAAC,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC,KAAK,EAAA,EAPrC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,CAQX,CACpB,CAAC,EAAA,CACU,CACf,EAEA,SAAS,EAAE,IAAI,KACdA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAC7BA,IAAC,MAAM,EAAA,EAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,EAAC,WAAW,EAAC,IAAI,EAAC,IAAI,EAAC,WAAW,EAAE,SAAS,EAAA,aAAA,EAAe,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,YAChI,SAAS,CAAC,KAAK,EAAA,CACT,EAAA,CACL,CACP,EAEDC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mFAAmF,EAAA,QAAA,EAAA,CAChGA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kDAAkD,EAAA,QAAA,EAAA,CAC/DD,YAAI,SAAS,EAAC,uDAAuD,EAAA,QAAA,EAAE,KAAK,EAAA,CAAM,EACjF,WAAW,IAAIA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,uBAAuB,EAAA,QAAA,EAAE,WAAW,EAAA,CAAK,CAAA,EAAA,CAClE,EAEL,OAAO,IAAIA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6FAA6F,EAAA,QAAA,EAAE,OAAO,EAAA,CAAO,CAAA,EAAA,CACpI,EAEL,OAAO,IAAI,IAAI,KACdC,4BACED,GAAA,CAAC,gBAAgB,EAAA,EACf,SAAS,EAAC,eAAe,EACzB,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,SAAS,EAAA,YAAA,EACP,KAAK,EAAA,aAAA,EACJ,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAA,CACjD,EAEFA,GAAA,CAAC,MAAM,EAAA,EACL,SAAS,EAAC,kBAAkB,EAC5B,IAAI,EAAC,IAAI,EAAA,YAAA,EACG,KAAK,EACjB,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAA,aAAA,EAC5C,UAAU,CAAC,gBAAgB,EAAE,aAAa,CAAC,YAEvD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,MACZA,GAAA,CAAC,MAAM,CAAC,IAAI,EAAA,EAAc,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAA,EAAhE,GAAG,CAAC,EAAE,CAA8D,CACvF,CAAC,EAAA,CACK,CAAA,EAAA,CACR,CACJ,EAEA,WAAW,IAAI,CAAC,OAAO,IAAIA,GAAA,CAAC,OAAO,EAAA,EAAA,CAAG,CAAA,EAAA,CACnC,EAAA,CACS;AAErB;;;;"}
@@ -5,6 +5,7 @@ var uiIcons = require('@flipdish/ui-icons');
5
5
  var Avatar = require('@flipdish/ui-library/components/atoms/Avatar');
6
6
  var useBreakpoints = require('@flipdish/ui-library/hooks/useBreakpoints');
7
7
  var cx = require('@flipdish/ui-library/utilities/cx');
8
+ var hrefUtils = require('@flipdish/ui-library/utilities/hrefUtils');
8
9
  var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
9
10
  var React = require('react');
10
11
  var reactAriaComponents = require('react-aria-components');
@@ -14,10 +15,24 @@ const menuItemTestId = (prefix, item) => item['data-testid'] ?? testIdUtils.join
14
15
  const POPOVER_ANIMATION = ({ isEntering, isExiting }) => cx.cx('origin-(--trigger-anchor-point) will-change-transform', isEntering &&
15
16
  'duration-150 ease-out animate-in fade-in placement-right:slide-in-from-left-0.5 placement-top:slide-in-from-bottom-0.5 placement-bottom:slide-in-from-top-0.5', isExiting &&
16
17
  'duration-100 ease-in animate-out fade-out placement-right:slide-out-to-left-0.5 placement-top:slide-out-to-bottom-0.5 placement-bottom:slide-out-to-top-0.5');
17
- const NavAccountCardMenuItem = ({ icon: Icon, label, shortcut, ...buttonProps }) => (jsxRuntime.jsx("button", { ...buttonProps, className: cx.cx('group/item w-full cursor-pointer px-1.5 focus:outline-hidden', buttonProps.className), children: jsxRuntime.jsxs("div", { className: cx.cx('flex w-full items-center justify-between gap-3 rounded-md p-2 group-hover/item:bg-primary_hover', 'outline-focus-ring group-focus-visible/item:outline-2 group-focus-visible/item:outline-offset-2'), children: [jsxRuntime.jsxs("div", { className: "flex gap-2 text-sm font-semibold text-secondary group-hover/item:text-secondary_hover", children: [Icon && jsxRuntime.jsx(Icon, { className: "size-5 text-fg-quaternary group-hover/item:text-fg-quaternary_hover" }), " ", label] }), shortcut && (jsxRuntime.jsx("kbd", { className: "flex rounded px-1 py-px font-body text-xs font-medium text-tertiary ring-1 ring-secondary ring-inset", children: shortcut }))] }) }));
18
+ const MENU_ITEM_CLASSNAME = 'group/item flex w-full cursor-pointer px-1.5 focus:outline-hidden';
19
+ const NavAccountCardMenuItem = ({ icon: Icon, label, shortcut, href, onClick, 'data-testid': dataTestId, }) => {
20
+ const content = (jsxRuntime.jsxs("div", { className: cx.cx('flex w-full items-center justify-between gap-3 rounded-md p-2 group-hover/item:bg-primary_hover', 'outline-focus-ring group-focus-visible/item:outline-2 group-focus-visible/item:outline-offset-2'), children: [jsxRuntime.jsxs("div", { className: "flex gap-2 text-sm font-semibold text-secondary group-hover/item:text-secondary_hover", children: [Icon && jsxRuntime.jsx(Icon, { className: "size-5 text-fg-quaternary group-hover/item:text-fg-quaternary_hover" }), " ", label] }), shortcut && (jsxRuntime.jsx("kbd", { className: "flex rounded px-1 py-px font-body text-xs font-medium text-tertiary ring-1 ring-secondary ring-inset", children: shortcut }))] }));
21
+ // A destination renders as a real anchor so it routes through `RouteProvider` and supports middle-click / new tab.
22
+ if (href !== undefined) {
23
+ const isExternal = hrefUtils.isExternalHref(href);
24
+ return (jsxRuntime.jsx(reactAriaComponents.Link, { href: hrefUtils.safeHref(href), target: isExternal ? '_blank' : '_self', rel: "noopener noreferrer", "data-testid": dataTestId, className: MENU_ITEM_CLASSNAME, onClick: onClick, children: content }));
25
+ }
26
+ return (jsxRuntime.jsx("button", { type: "button", "data-testid": dataTestId, className: MENU_ITEM_CLASSNAME, onClick: onClick, children: content }));
27
+ };
18
28
  const NavAccountMenu = ({ className, menuItems = [], bottomMenuItems = [], testIdPrefix, ...dialogProps }) => {
19
29
  const prefix = testIdPrefix ?? testIdUtils.rootTestId('nav-account-menu');
20
- return (jsxRuntime.jsxs(reactAriaComponents.Dialog, { ...dialogProps, className: cx.cx('w-66 rounded-xl bg-secondary_alt shadow-lg ring ring-secondary_alt outline-hidden', className), children: [menuItems.length > 0 && (jsxRuntime.jsx("div", { className: "rounded-xl bg-primary ring-1 ring-secondary", children: jsxRuntime.jsx("div", { className: "flex flex-col gap-0.5 py-1.5", children: menuItems.map((item) => (jsxRuntime.jsx(NavAccountCardMenuItem, { label: item.label, icon: item.icon, shortcut: item.shortcut, onClick: item.onClick, "data-testid": menuItemTestId(prefix, item) }, item.label))) }) })), bottomMenuItems.length > 0 && (jsxRuntime.jsx("div", { className: "pt-1 pb-1.5", children: bottomMenuItems.map((item) => (jsxRuntime.jsx(NavAccountCardMenuItem, { label: item.label, icon: item.icon, shortcut: item.shortcut, onClick: item.onClick, "data-testid": menuItemTestId(prefix, item) }, item.label))) }))] }));
30
+ // Activating an item dismisses the menu — otherwise it stays open over the page it just navigated to.
31
+ const renderItem = (item, close) => (jsxRuntime.jsx(NavAccountCardMenuItem, { label: item.label, icon: item.icon, shortcut: item.shortcut, href: item.href, onClick: () => {
32
+ close();
33
+ item.onClick?.();
34
+ }, "data-testid": menuItemTestId(prefix, item) }, item.label));
35
+ return (jsxRuntime.jsx(reactAriaComponents.Dialog, { ...dialogProps, className: cx.cx('w-66 rounded-xl bg-secondary_alt shadow-lg ring ring-secondary_alt outline-hidden', className), children: ({ close }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [menuItems.length > 0 && (jsxRuntime.jsx("div", { className: "rounded-xl bg-primary ring-1 ring-secondary", children: jsxRuntime.jsx("div", { className: "flex flex-col gap-0.5 py-1.5", children: menuItems.map((item) => renderItem(item, close)) }) })), bottomMenuItems.length > 0 && jsxRuntime.jsx("div", { className: "pt-1 pb-1.5", children: bottomMenuItems.map((item) => renderItem(item, close)) })] })) }));
21
36
  };
22
37
  const NavAccountCard = ({ popoverPlacement, account, avatarRounded, menuItems, bottomMenuItems, variant = 'full', onOpenChange, 'data-testid': dataTestId, }) => {
23
38
  const triggerRef = React.useRef(null);
@@ -1 +1 @@
1
- {"version":3,"file":"nav-account-card.cjs","sources":["../../../../../src/components/organisms/SidebarNavigation/components/nav-account-card.tsx"],"sourcesContent":[null],"names":["joinTestId","slugifyTestId","cx","_jsx","_jsxs","rootTestId","AriaDialog","useRef","useBreakpoints","useResolvedTestId","AriaDialogTrigger","AriaButton","testIdProps","Avatar","AriaPopover","AvatarLabelGroup","ChevronSelectorVertical"],"mappings":"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"}
1
+ {"version":3,"file":"nav-account-card.cjs","sources":["../../../../../src/components/organisms/SidebarNavigation/components/nav-account-card.tsx"],"sourcesContent":[null],"names":["joinTestId","slugifyTestId","cx","_jsxs","_jsx","isExternalHref","AriaLink","safeHref","rootTestId","AriaDialog","_Fragment","useRef","useBreakpoints","useResolvedTestId","AriaDialogTrigger","AriaButton","testIdProps","Avatar","AriaPopover","AvatarLabelGroup","ChevronSelectorVertical"],"mappings":"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"}
@@ -21,7 +21,12 @@ export type NavAccountMenuItemType = {
21
21
  }>;
22
22
  /** Keyboard shortcut hint to display. */
23
23
  shortcut?: string;
24
- /** Click handler. */
24
+ /**
25
+ * Destination URL. When set the item renders as a real link (router integration, middle-click,
26
+ * open in new tab); external `http(s)` hrefs open in a new tab. Omit for pure actions such as Log out.
27
+ */
28
+ href?: string;
29
+ /** Called when the item is activated. Runs alongside `href` navigation when both are set. */
25
30
  onClick?: () => void;
26
31
  /** Stable id used to derive the menu item's default `data-testid`. Falls back to a slug of `label`. */
27
32
  id?: string;