@epam/ai-dial-navigation-panel 1.3.0-dev.14 → 1.3.0-dev.142

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.
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { NavigationSidebarProps } from '../../models/navigation-sidebar-props';
3
+ /** Primary-navigation sidebar: items, a content slot and a footer, as a collapsible column or a drawer. */
4
+ export declare const NavigationSidebar: FC<NavigationSidebarProps>;
5
+ //# sourceMappingURL=NavigationSidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/NavigationSidebar/NavigationSidebar.tsx"],"names":[],"mappings":"AASA,OAAO,EAOL,KAAK,EAAE,EAGR,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAsCpF,2GAA2G;AAC3G,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CA2TxD,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import { FC } from 'react';
2
2
  import { UserMenuProps } from '../../models/user-menu-props';
3
3
  /**
4
- * Avatar trigger pinned to the bottom of the nav rail, opening a dropdown with
5
- * the user's identity, single-select settings submenus, and a log-out entry.
4
+ * User trigger that opens a dropdown with the user's identity, single-select
5
+ * settings submenus, an optional Settings entry and a log-out entry.
6
6
  */
7
7
  export declare const UserMenu: FC<UserMenuProps>;
8
8
  //# sourceMappingURL=UserMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../../src/components/UserMenu/UserMenu.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAiB,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAKlE;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CA6ItC,CAAC"}
1
+ {"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../../src/components/UserMenu/UserMenu.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAA2B,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAMlE;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,aAAa,CA6NtC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { FC } from 'react';
2
+ /** Props for `ItemGradients`. */
3
+ export interface ItemGradientsProps {
4
+ /** `id` of the gradient that paints an active glyph; referenced as `url(#id)`. */
5
+ activeGradientId: string;
6
+ }
7
+ /**
8
+ * Paint server for the active item's glyph: a gradient mapped onto the 24×24
9
+ * Tabler viewBox, colored by `--np-sidebar-gradient-start` and `-end`.
10
+ * `display: none` would drop it, so it is zero-sized instead.
11
+ */
12
+ export declare const ItemGradients: FC<ItemGradientsProps>;
13
+ //# sourceMappingURL=ItemGradients.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItemGradients.d.ts","sourceRoot":"","sources":["../../../src/components/common/ItemGradients.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,iCAAiC;AACjC,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CAgBhD,CAAC"}
@@ -6,6 +6,8 @@ export interface UserAvatarProps {
6
6
  profile: NavigationUserProfile;
7
7
  /** Alternative text for the image. Pass `''` when a sibling already names the row. */
8
8
  alt: string;
9
+ /** Diameter in pixels. Defaults to `28`. */
10
+ size?: number;
9
11
  }
10
12
  /** Avatar image with an initials badge fallback for a missing or broken image. */
11
13
  export declare const UserAvatar: FC<UserAvatarProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"UserAvatar.d.ts","sourceRoot":"","sources":["../../../src/components/common/UserAvatar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,OAAO,EAAE,qBAAqB,CAAC;IAC/B,sFAAsF;IACtF,GAAG,EAAE,MAAM,CAAC;CACb;AAED,kFAAkF;AAClF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAgBzC,CAAC"}
1
+ {"version":3,"file":"UserAvatar.d.ts","sourceRoot":"","sources":["../../../src/components/common/UserAvatar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,OAAO,EAAE,qBAAqB,CAAC;IAC/B,sFAAsF;IACtF,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,kFAAkF;AAClF,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAkB1C,CAAC"}
@@ -3,5 +3,11 @@ export declare const NAVIGATION_PANEL_CLASS: {
3
3
  readonly rail: "dial-navigation-panel-rail";
4
4
  /** Every item in the rail, whether or not it is the active one. */
5
5
  readonly item: "dial-navigation-panel-item";
6
+ /** The `nav` of `NavigationSidebar`. */
7
+ readonly sidebar: "dial-navigation-panel-sidebar";
8
+ /** Every item in `NavigationSidebar`, whether or not it is the active one. */
9
+ readonly sidebarItem: "dial-navigation-panel-sidebar-item";
10
+ /** The footer of `NavigationSidebar`. */
11
+ readonly sidebarFooter: "dial-navigation-panel-sidebar-footer";
6
12
  };
7
13
  //# sourceMappingURL=public-class-names.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public-class-names.d.ts","sourceRoot":"","sources":["../../src/constants/public-class-names.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,sBAAsB;IACjC,6BAA6B;;IAE7B,mEAAmE;;CAE3D,CAAC"}
1
+ {"version":3,"file":"public-class-names.d.ts","sourceRoot":"","sources":["../../src/constants/public-class-names.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,sBAAsB;IACjC,6BAA6B;;IAE7B,mEAAmE;;IAEnE,wCAAwC;;IAExC,8EAA8E;;IAE9E,yCAAyC;;CAEjC,CAAC"}
package/index.css CHANGED
@@ -1,2 +1,3 @@
1
- ._rail_1hxk4_1{background:var(--np-bg,var(--bg-layer-raised,#fcfcfc));font-family:var(--np-font-family,inherit)}._item_1hxk4_6{color:var(--np-item-text,var(--text-primary,#161b2d))}._item_1hxk4_6 svg{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}._item_1hxk4_6:hover svg,a:focus-visible>._item_1hxk4_6 svg{transform:translateY(-2px)}._item_1hxk4_6:active svg{transition-duration:.1s;transform:translateY(0)}@media (prefers-reduced-motion:reduce){._item_1hxk4_6 svg{transition:none}._item_1hxk4_6:hover svg,a:focus-visible>._item_1hxk4_6 svg{transform:none}}._item_1hxk4_6:not(._itemActive_1hxk4_33):hover{background:var(--np-item-hover-bg,transparent)}._item_1hxk4_6:not(._itemActive_1hxk4_33):hover svg,a:focus-visible>._item_1hxk4_6:not(._itemActive_1hxk4_33) svg{stroke:var(--np-item-hover-icon,currentColor)}._item_1hxk4_6:active{background:var(--np-item-active-bg,var(--bg-control-accent-alpha-active,#2764d933))}a:focus-visible>._item_1hxk4_6:not(._itemActive_1hxk4_33){background:var(--np-item-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}a:focus-visible>._item_1hxk4_6._itemActive_1hxk4_33{outline:2px solid var(--np-item-active-text,var(--text-accent,#1d4ed8));outline-offset:-2px}._item_1hxk4_6._itemActive_1hxk4_33{background:var(--np-item-selected-bg,var(--bg-control-accent-alpha-active,#2764d933));color:var(--np-item-active-text,var(--text-accent,#1d4ed8))}._item_1hxk4_6._itemActive_1hxk4_33 svg{stroke:var(--np-item-active-icon,currentColor)}._item_1hxk4_6._itemFilled_1hxk4_38 svg{fill:var(--np-item-active-icon,currentColor);stroke:none}._item_1hxk4_6._itemFilledOutline_1hxk4_79 svg{fill:var(--np-item-active-icon,currentColor)}._avatar_4hc9t_4._avatar_4hc9t_4{background:var(--np-avatar-bg,var(--bg-control-accent,#1d4ed8));color:var(--np-avatar-text,var(--text-control-permanent,#fcfcfc))}._wrapper_17aqp_1{font-family:var(--np-font-family,inherit)}._trigger_17aqp_5:hover{background:var(--np-trigger-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}._trigger_17aqp_5._trigger_17aqp_5:focus-visible{background:var(--np-trigger-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924));outline:1px solid var(--np-focus-outline,var(--stroke-focus,#161b2d));outline-offset:-1px}._identityText_17aqp_18,._menuLabel_17aqp_22{color:var(--np-menu-text,var(--text-primary,#161b2d))}._sheet_1k0ml_1{font-family:var(--np-font-family,inherit)}li>._row_1k0ml_12{color:var(--np-sheet-text,var(--text-primary,#161b2d))}li>._row_1k0ml_12:hover,li>._row_1k0ml_12:focus-visible{background:var(--np-sheet-item-hover,var(--bg-control-accent-alpha-hover,#2764d924))}li>._row_1k0ml_12:active{background:var(--np-sheet-item-active,var(--bg-control-neutral-active,#d1dbea))}li>._rowActive_1k0ml_24{color:var(--np-sheet-row-active-text,var(--text-accent,#1d4ed8));background:var(--np-sheet-row-active-bg,var(--bg-control-accent-alpha,#2764d90f))}li>._rowActive_1k0ml_24:hover,li>._rowActive_1k0ml_24:focus-visible{background:var(--np-sheet-row-active-bg-hover,var(--bg-control-accent-alpha-hover,#2764d924))}li>._rowActive_1k0ml_24 ._rowIcon_1k0ml_31{color:inherit}li>._rowActive_1k0ml_24 ._rowIcon_1k0ml_31 svg[fill=none]{fill:currentColor}._rowIcon_1k0ml_31{color:var(--np-sheet-icon,var(--text-secondary,#57647a))}._divider_1k0ml_46{border-color:var(--np-sheet-divider,var(--stroke-secondary,#d1dbea))}._mutedText_1k0ml_50{color:var(--np-sheet-muted-text,var(--text-secondary,#57647a))}._activeIcon_1k0ml_54{color:var(--np-menu-active-icon,var(--text-accent,#1d4ed8))}
2
- /*$vite$:1*/.absolute{position:absolute}.relative{position:relative}.z-10{z-index:10}.flex{display:flex}.contents{display:contents}.size-0{height:0;width:0}.size-\[44px\]{height:44px;width:44px}.size-\[60px\]{height:60px;width:60px}.h-16{height:4rem}.h-6{height:1.5rem}.h-\[40px\]{height:40px}.h-\[56px\]{height:56px}.h-auto{height:auto}.h-full{height:100%}.w-6{width:1.5rem}.w-\[60px\]{width:60px}.w-full{width:100%}.min-w-0{min-width:0}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\!rounded-full{border-radius:9999px!important}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.bg-contain{background-size:contain}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.p-0{padding:0}.p-2{padding:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-\[10px\]{padding-bottom:10px;padding-top:10px}.pb-4{padding-bottom:1rem}.shadow-sm{--tw-shadow:0 8px 10px 0 var(--shadow-sm,#2764d914);--tw-shadow-colored:0 8px 10px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline{outline-style:solid;outline-width:1px}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.rtl\:scale-x-\[-1\]:where([dir=rtl],[dir=rtl] *){--tw-scale-x:-1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}
1
+ ._rail_1hxk4_1{background:var(--np-bg,var(--bg-layer-raised,#fcfcfc));font-family:var(--np-font-family,inherit)}._item_1hxk4_6{color:var(--np-item-text,var(--text-primary,#161b2d))}._item_1hxk4_6 svg{transition:transform .2s cubic-bezier(.34,1.56,.64,1)}._item_1hxk4_6:hover svg,a:focus-visible>._item_1hxk4_6 svg{transform:translateY(-2px)}._item_1hxk4_6:active svg{transition-duration:.1s;transform:translateY(0)}@media (prefers-reduced-motion:reduce){._item_1hxk4_6 svg{transition:none}._item_1hxk4_6:hover svg,a:focus-visible>._item_1hxk4_6 svg{transform:none}}._item_1hxk4_6:not(._itemActive_1hxk4_33):hover{background:var(--np-item-hover-bg,transparent)}._item_1hxk4_6:not(._itemActive_1hxk4_33):hover svg,a:focus-visible>._item_1hxk4_6:not(._itemActive_1hxk4_33) svg{stroke:var(--np-item-hover-icon,currentColor)}._item_1hxk4_6:active{background:var(--np-item-active-bg,var(--bg-control-accent-alpha-active,#2764d933))}a:focus-visible>._item_1hxk4_6:not(._itemActive_1hxk4_33){background:var(--np-item-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}a:focus-visible>._item_1hxk4_6._itemActive_1hxk4_33{outline:2px solid var(--np-item-active-text,var(--text-accent,#1d4ed8));outline-offset:-2px}._item_1hxk4_6._itemActive_1hxk4_33{background:var(--np-item-selected-bg,var(--bg-control-accent-alpha-active,#2764d933));color:var(--np-item-active-text,var(--text-accent,#1d4ed8))}._item_1hxk4_6._itemActive_1hxk4_33 svg{stroke:var(--np-item-active-icon,currentColor)}._item_1hxk4_6._itemFilled_1hxk4_38 svg{fill:var(--np-item-active-icon,currentColor);stroke:none}._item_1hxk4_6._itemFilledOutline_1hxk4_79 svg{fill:var(--np-item-active-icon,currentColor)}._stopStart_8i550_1{stop-color:var(--np-sidebar-gradient-start,#1d4ed8)}._stopEnd_8i550_5{stop-color:var(--np-sidebar-gradient-end,#885df2)}._sidebar_1w4pz_1{background:var(--np-sidebar-bg,var(--bg-layer-raised,#fcfcfc));font-family:var(--np-sidebar-font-family,inherit)}._sidebarColumn_1w4pz_7{transition:width .2s}@media (prefers-reduced-motion:reduce){._sidebarColumn_1w4pz_7{transition:none}}._item_1w4pz_16{color:var(--np-sidebar-item-text,var(--text-primary,#161b2d));cursor:pointer}._item_1w4pz_16:not(._itemActive_1w4pz_21):hover,._item_1w4pz_16:not(._itemActive_1w4pz_21):focus-visible{background:var(--np-sidebar-item-hover-bg,var(--bg-control-accent-alpha-hover-subtle,#2764d90a))}._item_1w4pz_16:focus-visible{outline:1px solid var(--np-sidebar-focus-outline,var(--stroke-focus,#161b2d));outline-offset:2px}._item_1w4pz_16._itemActive_1w4pz_21{background:var(--np-sidebar-item-selected-bg,var(--bg-control-accent-alpha-active-subtle,#2764d914))}._item_1w4pz_16._itemActive_1w4pz_21 svg{stroke:var(--np-sidebar-item-active-icon,currentColor)}._item_1w4pz_16._itemFilled_1w4pz_38 svg{fill:var(--np-sidebar-item-active-icon,currentColor);stroke:none}._item_1w4pz_16._itemFilledOutline_1w4pz_45 svg{fill:var(--np-sidebar-item-active-icon,currentColor)}._itemIcon_1w4pz_49{color:var(--np-sidebar-item-text,var(--text-primary,#161b2d))}._footer_1w4pz_55{background:var(--np-sidebar-bg,var(--bg-layer-raised,#fcfcfc))}._avatar_4hc9t_4._avatar_4hc9t_4{background:var(--np-avatar-bg,var(--bg-control-accent,#1d4ed8));color:var(--np-avatar-text,var(--text-control-permanent,#fcfcfc))}._wrapper_11e9t_1{font-family:var(--np-font-family,inherit)}._trigger_11e9t_5:hover{background:var(--np-trigger-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924))}._trigger_11e9t_5._trigger_11e9t_5:focus-visible{background:var(--np-trigger-hover-bg,var(--bg-control-accent-alpha-hover,#2764d924));outline:1px solid var(--np-focus-outline,var(--stroke-focus,#161b2d));outline-offset:-1px}._triggerOpen_11e9t_18{background:var(--np-trigger-open-bg,var(--bg-control-accent-alpha-active-subtle,#2764d914))}._identityText_11e9t_22,._menuLabel_11e9t_26{color:var(--np-menu-text,var(--text-primary,#161b2d))}._sheet_1k0ml_1{font-family:var(--np-font-family,inherit)}li>._row_1k0ml_12{color:var(--np-sheet-text,var(--text-primary,#161b2d))}li>._row_1k0ml_12:hover,li>._row_1k0ml_12:focus-visible{background:var(--np-sheet-item-hover,var(--bg-control-accent-alpha-hover,#2764d924))}li>._row_1k0ml_12:active{background:var(--np-sheet-item-active,var(--bg-control-neutral-active,#d1dbea))}li>._rowActive_1k0ml_24{color:var(--np-sheet-row-active-text,var(--text-accent,#1d4ed8));background:var(--np-sheet-row-active-bg,var(--bg-control-accent-alpha,#2764d90f))}li>._rowActive_1k0ml_24:hover,li>._rowActive_1k0ml_24:focus-visible{background:var(--np-sheet-row-active-bg-hover,var(--bg-control-accent-alpha-hover,#2764d924))}li>._rowActive_1k0ml_24 ._rowIcon_1k0ml_31{color:inherit}li>._rowActive_1k0ml_24 ._rowIcon_1k0ml_31 svg[fill=none]{fill:currentColor}._rowIcon_1k0ml_31{color:var(--np-sheet-icon,var(--text-secondary,#57647a))}._divider_1k0ml_46{border-color:var(--np-sheet-divider,var(--stroke-secondary,#d1dbea))}._mutedText_1k0ml_50{color:var(--np-sheet-muted-text,var(--text-secondary,#57647a))}._activeIcon_1k0ml_54{color:var(--np-menu-active-icon,var(--text-accent,#1d4ed8))}
2
+ /*$vite$:1*//*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
3
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:0}.inset-y-0{inset-block:0}.start-0{inset-inline-start:0}.z-10{z-index:10}.z-50{z-index:50}.m-0{margin:0}.block{display:block}.contents{display:contents}.flex{display:flex}.hidden{display:none}.inline{display:inline}.\!size-10{width:2.5rem!important;height:2.5rem!important}.size-0{width:0;height:0}.size-6{width:1.5rem;height:1.5rem}.size-10{width:2.5rem;height:2.5rem}.size-10\!{width:2.5rem!important;height:2.5rem!important}.size-\[44px\]{width:44px;height:44px}.size-\[60px\]{width:60px;height:60px}.\!h-10{height:2.5rem!important}.h-6{height:1.5rem}.h-10{height:2.5rem}.h-16{height:4rem}.h-\[40px\]{height:40px}.h-\[56px\]{height:56px}.h-auto{height:auto}.h-full{height:100%}.\!min-h-0{min-height:0!important}.min-h-0{min-height:0}.min-h-0\!{min-height:0!important}.w-6{width:1.5rem}.w-\[60px\]{width:60px}.w-\[72px\]{width:72px}.w-\[320px\]{width:320px}.w-\[336px\]{width:336px}.w-full{width:100%}.max-w-full{max-width:100%}.\!min-w-0{min-width:0!important}.min-w-0{min-width:0}.min-w-0\!{min-width:0!important}.min-w-\[116px\]{min-width:116px}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.translate-x-0{--tw-translate-x:0px;translate:var(--tw-translate-x) var(--tw-translate-y)}.list-none{list-style-type:none}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.\!rounded-full{border-radius:3.40282e38px!important}.rounded-full{border-radius:3.40282e38px}.rounded-full\!{border-radius:3.40282e38px!important}.rounded-none{border-radius:0}.rounded-xl{border-radius:.75rem}.\!border-0{border-style:var(--tw-border-style)!important;border-width:0!important}.bg-contain{background-size:contain}.bg-center{background-position:50%}.bg-no-repeat{background-repeat:no-repeat}.\!p-2{padding:.5rem!important}.p-0{padding:0}.p-2{padding:.5rem}.p-2\!{padding:.5rem!important}.p-4{padding:1rem}.px-4{padding-inline:1rem}.py-2{padding-block:.5rem}.py-3{padding-block:.75rem}.py-\[10px\]{padding-block:10px}.ps-2{padding-inline-start:.5rem}.ps-4{padding-inline-start:1rem}.pe-2{padding-inline-end:.5rem}.pt-3{padding-top:.75rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.shadow-lg{--tw-shadow:0 8px 44px 0 var(--tw-shadow-color,var(--shadow-lg,#2764d914));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:4px 9px 16px 1px var(--tw-shadow-color,var(--shadow-sm-2,var(--shadow-sm,#2764d90f))), 0 -2px 4px 2px var(--tw-shadow-color,var(--shadow-sm-1,#2764d90a));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-\[transform\,visibility\]{transition-property:transform,visibility;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,cubic-bezier(.4, 0, .2, 1));transition-duration:var(--tw-duration,.15s)}.duration-200{--tw-duration:.2s;transition-duration:.2s}.ease-in-out{--tw-ease:cubic-bezier(.4, 0, .2, 1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.group-hover\/toggle\:opacity-0:is(:where(.group\/toggle):hover *){opacity:0}.group-hover\/toggle\:opacity-100:is(:where(.group\/toggle):hover *){opacity:1}}.group-focus-visible\/toggle\:opacity-0:is(:where(.group\/toggle):focus-visible *){opacity:0}.group-focus-visible\/toggle\:opacity-100:is(:where(.group\/toggle):focus-visible *){opacity:1}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}.ltr\:-translate-x-full:where(:dir(ltr),[dir=ltr],[dir=ltr] *){--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.rtl\:translate-x-full:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.rtl\:scale-x-\[-1\]:where(:dir(rtl),[dir=rtl],[dir=rtl] *){--tw-scale-x:-1;scale:var(--tw-scale-x) var(--tw-scale-y)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
package/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { NavigationPanel } from './components/NavigationPanel/NavigationPanel';
2
+ export { NavigationSidebar } from './components/NavigationSidebar/NavigationSidebar';
2
3
  export { UserMenu } from './components/UserMenu/UserMenu';
3
4
  export { NavigationSheet } from './components/NavigationSheet/NavigationSheet';
4
5
  export { NavigableBottomSheet } from './components/NavigationSheet/NavigableBottomSheet';
@@ -9,9 +10,10 @@ export { SheetRow } from './components/NavigationSheet/SheetRow';
9
10
  export { AvatarInitials } from './components/common/AvatarInitials';
10
11
  export { UserAvatar } from './components/common/UserAvatar';
11
12
  export { useSheetNavigation } from './hooks/useSheetNavigation';
12
- export type { NavigationItemIcon, NavigationLinkRenderer, NavigationPanelItem, } from './models/navigation-item';
13
+ export type { NavigationItemIcon, NavigationLinkRenderer, NavigationSidebarLinkProps, NavigationSidebarLinkRenderer, NavigationPanelItem, } from './models/navigation-item';
13
14
  export type { NavigationMenuGroup, NavigationMenuOption, } from './models/navigation-menu';
14
15
  export type { NavigationPanelColors, NavigationPanelLabels, NavigationPanelLogo, NavigationPanelProps, NavigationPanelStyles, NavigationPanelTypography, } from './models/navigation-panel-props';
16
+ export type { NavigationSidebarColors, NavigationSidebarLabels, NavigationSidebarLogo, NavigationSidebarProps, NavigationSidebarStyles, NavigationSidebarTypography, } from './models/navigation-sidebar-props';
15
17
  export type { NavigationSheetColors, NavigationSheetLabels, NavigationSheetProps, NavigationSheetStyles, NavigationSheetTypography, } from './models/navigation-sheet-props';
16
18
  export type { SheetNavigation, SheetPage } from './models/sheet-navigation';
17
19
  export type { UserMenuColors, UserMenuLabels, UserMenuProps, UserMenuStyles, UserMenuTypography, } from './models/user-menu-props';
@@ -23,5 +25,7 @@ export type { NavigationMenuPageProps } from './components/NavigationSheet/Navig
23
25
  export type { OptionListPageProps } from './components/NavigationSheet/OptionListPage';
24
26
  export type { ProfilePageProps } from './components/NavigationSheet/ProfilePage';
25
27
  export type { SheetRowProps } from './components/NavigationSheet/SheetRow';
28
+ export { NavigationSidebarVariant } from './types/navigation-sidebar-variant';
29
+ export { UserMenuTriggerVariant } from './types/user-menu-trigger-variant';
26
30
  export { NAVIGATION_PANEL_CLASS } from './constants/public-class-names';
27
31
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC5E,YAAY,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,yBAAyB,EAAE,MAAM,mDAAmD,CAAC;AACnG,YAAY,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAC/F,YAAY,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,YAAY,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACjF,YAAY,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,0BAA0B,EAC1B,6BAA6B,EAC7B,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACV,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC5E,YAAY,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,YAAY,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,yBAAyB,EAAE,MAAM,mDAAmD,CAAC;AACnG,YAAY,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAC/F,YAAY,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,YAAY,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AACjF,YAAY,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC"}
package/index.js CHANGED
@@ -1,98 +1,101 @@
1
1
  import { buildCssVars as e, mergeClasses as t } from "@epam/ai-dial-chat-shared";
2
- import { Avatar as n, BASE_ICON_SIZE as r, Button as i, DIAL_ICON_SIZE as a, DIAL_KIT_ICON_STROKE as o, Dropdown as s, DropdownItemType as c, EllipsisTooltip as l, IconButton as u, MenuItem as d, MenuItemMark as f } from "@epam/ai-dial-ui-kit";
3
- import { Fragment as p, createContext as m, memo as h, useCallback as g, useContext as _, useEffect as v, useId as y, useMemo as b, useState as x } from "react";
4
- import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
5
- import { IconCheck as T, IconChevronRight as E, IconLogout as D, IconSettings as O, IconUser as k } from "@tabler/icons-react";
6
- import { BottomSheetShell as A } from "@epam/ai-dial-conversation-input";
2
+ import { Avatar as n, BASE_ICON_SIZE as r, Button as i, DIAL_ICON_SIZE as a, DIAL_KIT_ICON_STROKE as o, Dropdown as s, DropdownItemType as c, ElementSize as l, EllipsisTooltip as u, GhostIconButton as d, IconButton as f, MenuItem as p, MenuItemMark as m, Tooltip as h } from "@epam/ai-dial-ui-kit";
3
+ import { Fragment as g, createContext as _, memo as v, useCallback as y, useContext as b, useEffect as x, useId as ee, useMemo as S, useRef as C, useState as w } from "react";
4
+ import { Fragment as T, jsx as E, jsxs as D } from "react/jsx-runtime";
5
+ import { IconCheck as O, IconChevronDown as k, IconChevronRight as A, IconChevronUp as te, IconLayoutSidebar as j, IconLogout as ne, IconSettings as M, IconUser as N, IconX as P } from "@tabler/icons-react";
6
+ import { BottomSheetShell as F } from "@epam/ai-dial-conversation-input";
7
7
  //#region src/constants/public-class-names.ts
8
- var j = {
8
+ var I = {
9
9
  rail: "dial-navigation-panel-rail",
10
- item: "dial-navigation-panel-item"
11
- }, M = {
10
+ item: "dial-navigation-panel-item",
11
+ sidebar: "dial-navigation-panel-sidebar",
12
+ sidebarItem: "dial-navigation-panel-sidebar-item",
13
+ sidebarFooter: "dial-navigation-panel-sidebar-footer"
14
+ }, L = {
12
15
  rail: "_rail_1hxk4_1",
13
16
  item: "_item_1hxk4_6",
14
17
  itemActive: "_itemActive_1hxk4_33",
15
18
  itemFilled: "_itemFilled_1hxk4_38",
16
19
  itemFilledOutline: "_itemFilledOutline_1hxk4_79"
17
- }, N = (e, t) => /* @__PURE__ */ C("a", {
20
+ }, R = (e, t) => /* @__PURE__ */ E("a", {
18
21
  href: e.href,
19
22
  className: "contents",
20
23
  children: t
21
- }), P = h(({ items: n, labels: r, logo: i, footer: s, renderLink: c = N, styles: l }) => {
22
- let { colors: d, typography: f, className: m, cssVars: h } = l ?? {}, g = y().replace(/[^\w-]/g, ""), _ = `np-hover-gradient-${g}`, v = `np-active-gradient-${g}`, x = b(() => e({
23
- "--np-bg": d?.background,
24
- "--np-item-text": d?.itemText,
25
- "--np-item-active-text": d?.itemActiveText,
26
- "--np-item-selected-bg": d?.itemSelectedBackground,
27
- "--np-item-hover-bg": d?.itemHoverBackground,
28
- "--np-item-hover-icon": d?.itemHoverIcon ?? `url(#${_})`,
29
- "--np-item-active-icon": d?.itemActiveIcon ?? `url(#${v})`,
30
- "--np-item-active-bg": d?.itemActiveBackground,
31
- "--np-font-family": f?.fontFamily
24
+ }), z = v(({ items: n, labels: r, logo: i, footer: s, renderLink: c = R, styles: l }) => {
25
+ let { colors: u, typography: d, className: p, cssVars: m } = l ?? {}, h = ee().replace(/[^\w-]/g, ""), _ = `np-hover-gradient-${h}`, v = `np-active-gradient-${h}`, y = S(() => e({
26
+ "--np-bg": u?.background,
27
+ "--np-item-text": u?.itemText,
28
+ "--np-item-active-text": u?.itemActiveText,
29
+ "--np-item-selected-bg": u?.itemSelectedBackground,
30
+ "--np-item-hover-bg": u?.itemHoverBackground,
31
+ "--np-item-hover-icon": u?.itemHoverIcon ?? `url(#${_})`,
32
+ "--np-item-active-icon": u?.itemActiveIcon ?? `url(#${v})`,
33
+ "--np-item-active-bg": u?.itemActiveBackground,
34
+ "--np-font-family": d?.fontFamily
32
35
  }), [
33
- d,
34
- f?.fontFamily,
36
+ u,
37
+ d?.fontFamily,
35
38
  _,
36
39
  v
37
40
  ]);
38
- return /* @__PURE__ */ w("nav", {
41
+ return /* @__PURE__ */ D("nav", {
39
42
  "aria-label": r.ariaLabel,
40
43
  style: {
41
- ...h,
42
- ...x
44
+ ...m,
45
+ ...y
43
46
  },
44
- className: t(M.rail, "relative z-10 flex h-full w-[60px] flex-col justify-between shadow-sm", f?.fontClassName, m, j.rail),
47
+ className: t(L.rail, "relative z-10 flex h-full w-[60px] flex-col justify-between shadow-sm", d?.fontClassName, p, I.rail),
45
48
  children: [
46
- /* @__PURE__ */ C("svg", {
49
+ /* @__PURE__ */ E("svg", {
47
50
  "aria-hidden": !0,
48
51
  className: "absolute size-0",
49
52
  focusable: "false",
50
- children: /* @__PURE__ */ w("defs", { children: [/* @__PURE__ */ w("linearGradient", {
53
+ children: /* @__PURE__ */ D("defs", { children: [/* @__PURE__ */ D("linearGradient", {
51
54
  id: _,
52
55
  gradientUnits: "userSpaceOnUse",
53
56
  x1: "30.2",
54
57
  y1: "-2.5",
55
58
  x2: "-4.6",
56
59
  y2: "25.2",
57
- children: [/* @__PURE__ */ C("stop", {
60
+ children: [/* @__PURE__ */ E("stop", {
58
61
  offset: "0",
59
62
  stopColor: "#1d4ed8"
60
- }), /* @__PURE__ */ C("stop", {
63
+ }), /* @__PURE__ */ E("stop", {
61
64
  offset: "1",
62
65
  stopColor: "#885df2"
63
66
  })]
64
- }), /* @__PURE__ */ w("linearGradient", {
67
+ }), /* @__PURE__ */ D("linearGradient", {
65
68
  id: v,
66
69
  gradientUnits: "userSpaceOnUse",
67
70
  x1: "31.3",
68
71
  y1: "-1.7",
69
72
  x2: "0.2",
70
73
  y2: "20.4",
71
- children: [/* @__PURE__ */ C("stop", {
74
+ children: [/* @__PURE__ */ E("stop", {
72
75
  offset: "0",
73
76
  stopColor: "#1d4ed8"
74
- }), /* @__PURE__ */ C("stop", {
77
+ }), /* @__PURE__ */ E("stop", {
75
78
  offset: "1",
76
79
  stopColor: "#885df2"
77
80
  })]
78
81
  })] })
79
82
  }),
80
- /* @__PURE__ */ w("div", {
83
+ /* @__PURE__ */ D("div", {
81
84
  className: "flex flex-col items-center",
82
- children: [i && /* @__PURE__ */ C("a", {
85
+ children: [i && /* @__PURE__ */ E("a", {
83
86
  href: i.href ?? "/",
84
87
  "aria-label": i.ariaLabel,
85
88
  className: "flex h-16 w-full shrink-0 items-center justify-center",
86
- children: /* @__PURE__ */ C("span", {
89
+ children: /* @__PURE__ */ E("span", {
87
90
  style: { backgroundImage: `url("${i.iconUrl}")` },
88
91
  className: "h-6 w-6 bg-contain bg-center bg-no-repeat"
89
92
  })
90
- }), /* @__PURE__ */ C("div", {
93
+ }), /* @__PURE__ */ E("div", {
91
94
  className: "flex flex-col items-center gap-2 p-2",
92
95
  children: n.map((e) => {
93
- let n = !!e.isActive && !!e.activeIcon;
94
- return /* @__PURE__ */ C(p, { children: c(e, /* @__PURE__ */ C(u, {
95
- icon: /* @__PURE__ */ C(n && e.activeIcon || e.icon, {
96
+ let n = !!e.isActive && !!e.activeIcon, r = n && e.activeIcon || e.icon;
97
+ return /* @__PURE__ */ E(g, { children: c(e, /* @__PURE__ */ E(f, {
98
+ icon: /* @__PURE__ */ E(r, {
96
99
  size: a.LG,
97
100
  stroke: o
98
101
  }),
@@ -100,7 +103,7 @@ var j = {
100
103
  "aria-current": e.isActive ? "page" : void 0,
101
104
  tooltipProps: { tooltip: e.label },
102
105
  tabIndex: -1,
103
- className: t(M.item, "rounded-xl", e.isActive && M.itemActive, n && M.itemFilled, e.isActive && !n && M.itemFilledOutline, j.item)
106
+ className: t(L.item, "rounded-xl", e.isActive && L.itemActive, n && L.itemFilled, e.isActive && !n && L.itemFilledOutline, I.item)
104
107
  })) }, e.id);
105
108
  })
106
109
  })]
@@ -108,52 +111,218 @@ var j = {
108
111
  s
109
112
  ]
110
113
  });
111
- }), F = { avatar: "_avatar_4hc9t_4" }, I = h(({ shortName: e, className: r, textClassName: i = "dial-tiny-text" }) => /* @__PURE__ */ C(n, {
114
+ }), B = /* @__PURE__ */ function(e) {
115
+ return e.Sidebar = "sidebar", e.Drawer = "drawer", e;
116
+ }({}), V = {
117
+ stopStart: "_stopStart_8i550_1",
118
+ stopEnd: "_stopEnd_8i550_5"
119
+ }, re = ({ activeGradientId: e }) => /* @__PURE__ */ E("svg", {
120
+ "aria-hidden": !0,
121
+ className: "absolute size-0",
122
+ focusable: "false",
123
+ children: /* @__PURE__ */ E("defs", { children: /* @__PURE__ */ D("linearGradient", {
124
+ id: e,
125
+ gradientUnits: "userSpaceOnUse",
126
+ x1: "31.3",
127
+ y1: "-1.7",
128
+ x2: "0.2",
129
+ y2: "20.4",
130
+ children: [/* @__PURE__ */ E("stop", {
131
+ offset: "0",
132
+ className: V.stopStart
133
+ }), /* @__PURE__ */ E("stop", {
134
+ offset: "1",
135
+ className: V.stopEnd
136
+ })]
137
+ }) })
138
+ }), H = {
139
+ sidebar: "_sidebar_1w4pz_1",
140
+ sidebarColumn: "_sidebarColumn_1w4pz_7",
141
+ item: "_item_1w4pz_16",
142
+ itemActive: "_itemActive_1w4pz_21",
143
+ itemFilled: "_itemFilled_1w4pz_38",
144
+ itemFilledOutline: "_itemFilledOutline_1w4pz_45",
145
+ itemIcon: "_itemIcon_1w4pz_49",
146
+ footer: "_footer_1w4pz_55"
147
+ }, ie = (e, t, n) => /* @__PURE__ */ E("a", {
148
+ href: e.href,
149
+ ...n,
150
+ children: t
151
+ }), ae = (e, t) => e ? "w-[320px] max-w-full" : t ? "w-[72px]" : "w-[336px]", oe = (e, n) => e ? t("fixed inset-y-0 start-0 z-50 flex flex-col overflow-hidden shadow-sm outline-none", "transition-[transform,visibility] duration-200 ease-in-out motion-reduce:transition-none", n ? "visible translate-x-0" : "invisible ltr:-translate-x-full rtl:translate-x-full") : t(H.sidebarColumn, "relative z-10 flex h-full shrink-0 flex-col overflow-hidden shadow-sm"), U = v(({ items: n, labels: r, variant: i = B.Sidebar, isCollapsed: s = !1, onToggleCollapse: c, isOpen: u = !1, onClose: f, id: p, logo: m, renderLink: _ = ie, children: v, userMenu: y, footerActions: b, styles: w }) => {
152
+ let { colors: O, typography: k, className: A, cssVars: te } = w ?? {}, ne = k?.fontClassName ?? "dial-small-text", M = i === B.Drawer, N = !M && s, F = ee(), L = p ?? F, R = `np-sidebar-gradient-${F.replace(/[^\w-]/g, "")}`, z = C(null), V = C(null), U = C(u);
153
+ x(() => {
154
+ let e = U.current;
155
+ U.current = u, M && (u && !e ? (V.current = document.activeElement instanceof HTMLElement ? document.activeElement : null, z.current?.focus()) : !u && e && (V.current?.focus(), V.current = null));
156
+ }, [M, u]);
157
+ let W = (e) => {
158
+ e.currentTarget.contains(e.target) && e.key === "Escape" && f?.();
159
+ }, G = S(() => e({
160
+ "--np-sidebar-bg": O?.background,
161
+ "--np-sidebar-item-text": O?.itemText,
162
+ "--np-sidebar-item-hover-bg": O?.itemHoverBackground,
163
+ "--np-sidebar-item-selected-bg": O?.itemSelectedBackground,
164
+ "--np-sidebar-focus-outline": O?.focusOutline,
165
+ "--np-sidebar-gradient-start": O?.itemActiveGradientStart,
166
+ "--np-sidebar-gradient-end": O?.itemActiveGradientEnd,
167
+ "--np-sidebar-item-active-icon": O?.itemActiveIcon ?? `url(#${R})`,
168
+ "--np-sidebar-font-family": k?.fontFamily
169
+ }), [
170
+ O,
171
+ k?.fontFamily,
172
+ R
173
+ ]), K = N ? r.expand ?? "Expand sidebar" : r.collapse ?? "Collapse sidebar", q = r.toggle ?? "Sidebar", J = r.close ?? "Close", Y = (e, n) => /* @__PURE__ */ E("span", {
174
+ style: { backgroundImage: `url("${e}")` },
175
+ className: t("bg-contain bg-center bg-no-repeat", n)
176
+ }), se = () => /* @__PURE__ */ E(d, {
177
+ icon: /* @__PURE__ */ D("span", {
178
+ className: "relative block size-6 shrink-0",
179
+ children: [N && m && Y(m.iconUrl, "absolute inset-0 transition-opacity group-focus-visible/toggle:opacity-0 group-hover/toggle:opacity-0"), /* @__PURE__ */ E(j, {
180
+ size: a.LG,
181
+ stroke: o,
182
+ className: t("absolute inset-0 rtl:scale-x-[-1]", N && m && "opacity-0 group-hover/toggle:opacity-100 group-focus-visible/toggle:opacity-100"),
183
+ "aria-hidden": !0
184
+ })]
185
+ }),
186
+ size: l.Large,
187
+ "aria-label": q,
188
+ "aria-expanded": !N,
189
+ "aria-controls": L,
190
+ tooltipProps: { tooltip: K },
191
+ onClick: c,
192
+ className: "group/toggle size-10! min-h-0! min-w-0! shrink-0 rounded-full! p-2!"
193
+ }), ce = () => /* @__PURE__ */ E(d, {
194
+ icon: /* @__PURE__ */ E(P, {
195
+ size: a.LG,
196
+ stroke: o,
197
+ "aria-hidden": !0
198
+ }),
199
+ size: l.Large,
200
+ "aria-label": J,
201
+ tooltipProps: { tooltip: J },
202
+ onClick: f,
203
+ className: "size-10! min-h-0! min-w-0! shrink-0 rounded-full! p-2!"
204
+ }), X = () => m && /* @__PURE__ */ E("a", {
205
+ href: m.href ?? "/",
206
+ "aria-label": m.ariaLabel,
207
+ className: t("flex h-10 items-center", !M && "ps-2"),
208
+ children: Y(N ? m.iconUrl : m.logoUrl ?? m.iconUrl, N ? "size-6" : "h-6 min-w-[116px]")
209
+ }), Z = () => /* @__PURE__ */ D("div", {
210
+ className: "flex shrink-0 items-center justify-between ps-4 pe-2 pt-3 pb-2",
211
+ children: [X(), f && ce()]
212
+ }), Q = () => /* @__PURE__ */ D(T, { children: [!(N && c) && X(), c && se()] }), $ = (e) => {
213
+ let n = !!e.isActive && !!e.activeIcon, r = n && e.activeIcon || e.icon, i = /* @__PURE__ */ E("span", {
214
+ className: t("flex size-6 shrink-0 items-center justify-center", H.itemIcon),
215
+ children: /* @__PURE__ */ E(r, {
216
+ size: a.LG,
217
+ stroke: o
218
+ })
219
+ }), s = _(e, /* @__PURE__ */ D(T, { children: [i, /* @__PURE__ */ E("span", {
220
+ className: N ? "sr-only" : ne,
221
+ children: e.label
222
+ })] }), {
223
+ className: t("flex items-center rounded-full p-2 no-underline", N ? "size-10 justify-center" : "h-10 w-full gap-2", H.item, e.isActive && H.itemActive, n && H.itemFilled, e.isActive && !n && H.itemFilledOutline, I.sidebarItem),
224
+ "aria-current": e.isActive ? "page" : void 0
225
+ });
226
+ return /* @__PURE__ */ E("li", { children: N ? /* @__PURE__ */ E(h, {
227
+ tooltip: e.label,
228
+ asChild: !0,
229
+ children: s
230
+ }) : s }, e.id);
231
+ }, le = N ? /* @__PURE__ */ D(g, { children: [b, y] }) : /* @__PURE__ */ D(g, { children: [y, b] });
232
+ return /* @__PURE__ */ D("nav", {
233
+ ref: z,
234
+ id: L,
235
+ "aria-label": r.ariaLabel,
236
+ tabIndex: M ? -1 : void 0,
237
+ inert: M && !u,
238
+ onKeyDown: M ? W : void 0,
239
+ style: {
240
+ ...te,
241
+ ...G
242
+ },
243
+ className: t(H.sidebar, oe(M, u), ae(M, N), A, I.sidebar),
244
+ children: [
245
+ !O?.itemActiveIcon && /* @__PURE__ */ E(re, { activeGradientId: R }),
246
+ M ? /* @__PURE__ */ D("div", {
247
+ className: "flex shrink-0 flex-col",
248
+ children: [Z(), /* @__PURE__ */ E("ul", {
249
+ className: "m-0 flex list-none flex-col gap-1 p-2",
250
+ children: n.map($)
251
+ })]
252
+ }) : /* @__PURE__ */ D("div", {
253
+ className: "flex shrink-0 flex-col gap-4 p-4",
254
+ children: [/* @__PURE__ */ E("div", {
255
+ className: "flex h-10 items-center justify-between",
256
+ children: Q()
257
+ }), /* @__PURE__ */ E("ul", {
258
+ className: "m-0 flex list-none flex-col gap-1 p-0",
259
+ children: n.map($)
260
+ })]
261
+ }),
262
+ /* @__PURE__ */ E("div", {
263
+ inert: N,
264
+ className: t("min-h-0 flex-1 overflow-hidden", N && "invisible"),
265
+ children: /* @__PURE__ */ E("div", {
266
+ className: t("flex h-full flex-col", M ? "w-full" : "w-[336px]"),
267
+ children: v
268
+ })
269
+ }),
270
+ /* @__PURE__ */ E("div", {
271
+ className: t("flex shrink-0 px-4 py-3 shadow-lg", H.footer, N ? "flex-col items-start gap-2" : "items-center justify-between gap-2", I.sidebarFooter),
272
+ children: le
273
+ })
274
+ ]
275
+ });
276
+ }), W = /* @__PURE__ */ function(e) {
277
+ return e.Avatar = "avatar", e.Profile = "profile", e.Compact = "compact", e;
278
+ }({}), G = { avatar: "_avatar_4hc9t_4" }, K = v(({ shortName: e, className: r, textClassName: i = "dial-tiny-text" }) => /* @__PURE__ */ E(n, {
112
279
  name: e ?? "",
113
280
  initials: e ?? "",
114
281
  size: 28,
115
282
  textClassName: i,
116
- className: t(F.avatar, r)
117
- })), L = h(({ profile: e, alt: t }) => {
118
- let r = e.isFallbackShown || !e.imageUrl;
119
- return /* @__PURE__ */ C(n, {
283
+ className: t(G.avatar, r)
284
+ })), q = v(({ profile: e, alt: t, size: r = 28 }) => {
285
+ let i = e.isFallbackShown || !e.imageUrl;
286
+ return /* @__PURE__ */ E(n, {
120
287
  name: e.displayName,
121
288
  initials: e.shortName ?? "",
122
- src: r ? void 0 : e.imageUrl,
123
- alt: r ? "" : t,
124
- size: 28,
289
+ src: i ? void 0 : e.imageUrl,
290
+ alt: i ? "" : t,
291
+ size: r,
125
292
  textClassName: "dial-tiny-text",
126
- className: F.avatar,
293
+ className: G.avatar,
127
294
  onImageError: e.onImageError
128
295
  });
129
- }), R = {
130
- wrapper: "_wrapper_17aqp_1",
131
- trigger: "_trigger_17aqp_5",
132
- identityText: "_identityText_17aqp_18",
133
- menuLabel: "_menuLabel_17aqp_22"
134
- }, z = h(({ profile: n, labels: r, groups: u, onLogout: d, onSettings: p, isTooltipHidden: m, styles: h }) => {
135
- let { colors: g, typography: _, className: v, cssVars: y } = h ?? {}, x = _?.fontClassName ?? "dial-small-text", S = b(() => e({
136
- "--np-avatar-bg": g?.avatarBackground,
137
- "--np-avatar-text": g?.avatarText,
138
- "--np-menu-text": g?.text,
139
- "--np-trigger-hover-bg": g?.triggerHoverBackground,
140
- "--np-font-family": _?.fontFamily
141
- }), [g, _?.fontFamily]), T = b(() => t(R.menuLabel, x), [x]), E = b(() => {
142
- let e = (u ?? []).filter(({ options: e }) => e.length > 0).map(({ id: e, label: t, icon: n, options: r }) => ({
296
+ }), J = {
297
+ wrapper: "_wrapper_11e9t_1",
298
+ trigger: "_trigger_11e9t_5",
299
+ triggerOpen: "_triggerOpen_11e9t_18",
300
+ identityText: "_identityText_11e9t_22",
301
+ menuLabel: "_menuLabel_11e9t_26"
302
+ }, Y = v(({ profile: n, labels: r, groups: l, onLogout: d, onSettings: f, triggerVariant: p = W.Avatar, isTooltipHidden: h, styles: g }) => {
303
+ let { colors: _, typography: v, className: y, cssVars: b } = g ?? {}, [x, ee] = w(!1), C = p === W.Profile, O = p === W.Compact, A = C || O, j = v?.fontClassName ?? "dial-small-text", N = S(() => e({
304
+ "--np-avatar-bg": _?.avatarBackground,
305
+ "--np-avatar-text": _?.avatarText,
306
+ "--np-menu-text": _?.text,
307
+ "--np-trigger-hover-bg": _?.triggerHoverBackground,
308
+ "--np-trigger-open-bg": _?.triggerOpenBackground,
309
+ "--np-font-family": v?.fontFamily
310
+ }), [_, v?.fontFamily]), P = S(() => t(J.menuLabel, j), [j]), F = S(() => {
311
+ let e = (l ?? []).filter(({ options: e }) => e.length > 0).map(({ id: e, label: t, icon: n, options: r }) => ({
143
312
  key: e,
144
- label: /* @__PURE__ */ C("span", {
145
- className: T,
313
+ label: /* @__PURE__ */ E("span", {
314
+ className: P,
146
315
  children: t
147
316
  }),
148
317
  icon: n,
149
318
  children: r.map((e) => ({
150
319
  key: e.id,
151
- label: /* @__PURE__ */ C("span", {
152
- className: T,
320
+ label: /* @__PURE__ */ E("span", {
321
+ className: P,
153
322
  children: e.label
154
323
  }),
155
324
  icon: e.icon,
156
- mark: f.Check,
325
+ mark: m.Check,
157
326
  checked: e.isActive,
158
327
  onClick: e.onSelect
159
328
  }))
@@ -162,11 +331,11 @@ var j = {
162
331
  {
163
332
  key: "identity",
164
333
  type: c.PlainText,
165
- label: /* @__PURE__ */ w("div", {
334
+ label: /* @__PURE__ */ D("div", {
166
335
  className: "flex h-[40px] min-w-0 items-center gap-3",
167
- children: [/* @__PURE__ */ C(I, { shortName: n.shortName }), /* @__PURE__ */ C(l, {
336
+ children: [/* @__PURE__ */ E(K, { shortName: n.shortName }), /* @__PURE__ */ E(u, {
168
337
  text: n.displayName,
169
- className: t(R.identityText, x, "min-w-0 flex-1 truncate")
338
+ className: t(J.identityText, j, "min-w-0 flex-1 truncate")
170
339
  })]
171
340
  })
172
341
  },
@@ -175,26 +344,26 @@ var j = {
175
344
  key: "divider-1",
176
345
  type: c.Divider
177
346
  },
178
- ...p ? [{
347
+ ...f ? [{
179
348
  key: "settings",
180
- label: /* @__PURE__ */ C("span", {
181
- className: T,
349
+ label: /* @__PURE__ */ E("span", {
350
+ className: P,
182
351
  children: r.settings
183
352
  }),
184
- icon: /* @__PURE__ */ C(O, {
353
+ icon: /* @__PURE__ */ E(M, {
185
354
  size: a.SM,
186
355
  "aria-hidden": !0,
187
356
  stroke: o
188
357
  }),
189
- onClick: p
358
+ onClick: f
190
359
  }] : [],
191
360
  {
192
361
  key: "logout",
193
- label: /* @__PURE__ */ C("span", {
194
- className: T,
362
+ label: /* @__PURE__ */ E("span", {
363
+ className: P,
195
364
  children: r.logOut
196
365
  }),
197
- icon: /* @__PURE__ */ C(D, {
366
+ icon: /* @__PURE__ */ E(ne, {
198
367
  size: a.SM,
199
368
  "aria-hidden": !0,
200
369
  stroke: o
@@ -203,52 +372,83 @@ var j = {
203
372
  }
204
373
  ];
205
374
  }, [
206
- u,
207
- x,
208
- T,
375
+ l,
376
+ j,
377
+ P,
209
378
  r.logOut,
210
379
  r.settings,
211
380
  d,
212
- p,
381
+ f,
213
382
  n.displayName,
214
383
  n.shortName
215
- ]);
216
- return /* @__PURE__ */ C("div", {
384
+ ]), I = () => {
385
+ if (!C) return /* @__PURE__ */ E(i, {
386
+ "aria-label": r.trigger,
387
+ tooltipProps: {
388
+ tooltip: n.email,
389
+ hideTooltip: h
390
+ },
391
+ iconBefore: /* @__PURE__ */ E(q, {
392
+ profile: n,
393
+ alt: r.avatarAlt,
394
+ size: O ? 24 : void 0
395
+ }),
396
+ className: t(O ? "!size-10 !min-h-0 !min-w-0 gap-0 !rounded-full !border-0 !p-2" : "size-[44px] gap-0 !rounded-full p-0", J.trigger, O && x && J.triggerOpen)
397
+ });
398
+ let e = x ? te : k;
399
+ return /* @__PURE__ */ E(i, {
400
+ tooltipProps: {
401
+ tooltip: n.email,
402
+ hideTooltip: h
403
+ },
404
+ iconBefore: /* @__PURE__ */ E(q, {
405
+ profile: n,
406
+ alt: "",
407
+ size: 24
408
+ }),
409
+ label: /* @__PURE__ */ D(T, { children: [/* @__PURE__ */ E(u, {
410
+ text: n.displayName,
411
+ className: t(J.identityText, j, "min-w-0 truncate")
412
+ }), /* @__PURE__ */ E("span", {
413
+ className: "sr-only",
414
+ children: r.trigger
415
+ })] }),
416
+ iconAfter: /* @__PURE__ */ E(e, {
417
+ size: a.SM,
418
+ stroke: o,
419
+ "aria-hidden": !0
420
+ }),
421
+ textClassName: "min-w-0",
422
+ className: t("!h-10 !min-h-0 max-w-full !min-w-0 gap-2 !rounded-full !border-0 !p-2", J.trigger, x && J.triggerOpen)
423
+ });
424
+ };
425
+ return /* @__PURE__ */ E("div", {
217
426
  style: {
218
- ...y,
219
- ...S
427
+ ...b,
428
+ ...N
220
429
  },
221
- className: t(R.wrapper, "flex size-[60px] items-center justify-center", v),
222
- children: /* @__PURE__ */ C(s, {
223
- placement: "top-end",
430
+ className: t(J.wrapper, A ? "flex min-w-0 items-center" : "flex size-[60px] items-center justify-center", C && "flex-1", y),
431
+ children: /* @__PURE__ */ E(s, {
432
+ className: A ? "max-w-full min-w-0" : void 0,
433
+ placement: A ? "top-start" : "top-end",
224
434
  matchReferenceWidth: !1,
225
- items: E,
226
- children: /* @__PURE__ */ C(i, {
227
- "aria-label": r.trigger,
228
- tooltipProps: {
229
- tooltip: n.email,
230
- hideTooltip: m
231
- },
232
- iconBefore: /* @__PURE__ */ C(L, {
233
- profile: n,
234
- alt: r.avatarAlt
235
- }),
236
- className: t("size-[44px] gap-0 !rounded-full p-0", R.trigger)
237
- })
435
+ items: F,
436
+ onOpenChange: ee,
437
+ children: I()
238
438
  })
239
439
  });
240
- }), B = m(void 0), V = h(({ isOpen: e, onClose: t, children: n, title: r, closeLabel: i, backLabel: a, className: o, style: s }) => {
241
- let [c, l] = x([]);
242
- v(() => {
440
+ }), se = _(void 0), ce = v(({ isOpen: e, onClose: t, children: n, title: r, closeLabel: i, backLabel: a, className: o, style: s }) => {
441
+ let [c, l] = w([]);
442
+ x(() => {
243
443
  e || l([]);
244
444
  }, [e]);
245
- let u = g((e) => {
445
+ let u = y((e) => {
246
446
  l((t) => [...t, e]);
247
- }, []), d = g(() => {
447
+ }, []), d = y(() => {
248
448
  l((e) => e.slice(0, -1));
249
- }, []), f = g(() => {
449
+ }, []), f = y(() => {
250
450
  l([]), t();
251
- }, [t]), p = b(() => ({
451
+ }, [t]), p = S(() => ({
252
452
  push: u,
253
453
  pop: d,
254
454
  close: f
@@ -257,9 +457,9 @@ var j = {
257
457
  d,
258
458
  f
259
459
  ]), m = c[c.length - 1];
260
- return /* @__PURE__ */ C(B.Provider, {
460
+ return /* @__PURE__ */ E(se.Provider, {
261
461
  value: p,
262
- children: /* @__PURE__ */ C(A, {
462
+ children: /* @__PURE__ */ E(F, {
263
463
  isOpen: e,
264
464
  onClose: f,
265
465
  title: m?.title ?? r,
@@ -271,11 +471,11 @@ var j = {
271
471
  children: m ? m.content : n
272
472
  })
273
473
  });
274
- }), H = () => {
275
- let e = _(B);
474
+ }), X = () => {
475
+ let e = b(se);
276
476
  if (!e) throw Error("useSheetNavigation must be used within a NavigableBottomSheet");
277
477
  return e;
278
- }, U = {
478
+ }, Z = {
279
479
  sheet: "_sheet_1k0ml_1",
280
480
  row: "_row_1k0ml_12",
281
481
  rowActive: "_rowActive_1k0ml_24",
@@ -283,79 +483,79 @@ var j = {
283
483
  divider: "_divider_1k0ml_46",
284
484
  mutedText: "_mutedText_1k0ml_50",
285
485
  activeIcon: "_activeIcon_1k0ml_54"
286
- }, W = h(({ label: e, onClick: n, icon: r, trailing: i, isCurrent: a = !1, isHighlighted: o = !1, textClassName: s = "dial-small-text" }) => /* @__PURE__ */ C("li", { children: /* @__PURE__ */ C(d, {
486
+ }, Q = v(({ label: e, onClick: n, icon: r, trailing: i, isCurrent: a = !1, isHighlighted: o = !1, textClassName: s = "dial-small-text" }) => /* @__PURE__ */ E("li", { children: /* @__PURE__ */ E(p, {
287
487
  label: e,
288
488
  labelClassName: s,
289
- icon: r && /* @__PURE__ */ C("span", {
290
- className: U.rowIcon,
489
+ icon: r && /* @__PURE__ */ E("span", {
490
+ className: Z.rowIcon,
291
491
  children: r
292
492
  }),
293
493
  trailing: i,
294
- mark: f.Highlight,
494
+ mark: m.Highlight,
295
495
  selected: o,
296
496
  "aria-current": a ? "true" : void 0,
297
- className: t("h-auto gap-3 rounded-none px-4 py-[10px]", U.row, o && U.rowActive),
497
+ className: t("h-auto gap-3 rounded-none px-4 py-[10px]", Z.row, o && Z.rowActive),
298
498
  onClick: n
299
- }) })), G = h(({ options: e, textClassName: t }) => {
300
- let { pop: n } = H();
301
- return /* @__PURE__ */ C("ul", {
499
+ }) })), $ = v(({ options: e, textClassName: t }) => {
500
+ let { pop: n } = X();
501
+ return /* @__PURE__ */ E("ul", {
302
502
  className: "flex flex-col pb-4",
303
- children: e.map((e) => /* @__PURE__ */ C(W, {
503
+ children: e.map((e) => /* @__PURE__ */ E(Q, {
304
504
  label: e.label,
305
505
  icon: e.icon,
306
506
  textClassName: t,
307
507
  isCurrent: e.isActive,
308
- trailing: e.isActive ? /* @__PURE__ */ C(T, {
508
+ trailing: e.isActive ? /* @__PURE__ */ E(O, {
309
509
  size: a.SM,
310
510
  stroke: o,
311
511
  "aria-hidden": !0,
312
- className: U.activeIcon
512
+ className: Z.activeIcon
313
513
  }) : void 0,
314
514
  onClick: () => {
315
515
  e.onSelect(), n();
316
516
  }
317
517
  }, e.id))
318
518
  });
319
- }), K = h(({ profile: e, logOutLabel: n, onLogout: i, settingsLabel: a, onSettings: s, groups: c, textClassName: u = "dial-small-text" }) => {
320
- let { push: d, close: f } = H(), p = (c ?? []).filter(({ options: e }) => e.length > 0);
321
- return /* @__PURE__ */ w(S, { children: [
322
- /* @__PURE__ */ w("div", {
519
+ }), le = v(({ profile: e, logOutLabel: n, onLogout: i, settingsLabel: a, onSettings: s, groups: c, textClassName: l = "dial-small-text" }) => {
520
+ let { push: d, close: f } = X(), p = (c ?? []).filter(({ options: e }) => e.length > 0);
521
+ return /* @__PURE__ */ D(T, { children: [
522
+ /* @__PURE__ */ D("div", {
323
523
  className: "flex h-[56px] items-center gap-3 px-4 py-2",
324
- children: [/* @__PURE__ */ C(L, {
524
+ children: [/* @__PURE__ */ E(q, {
325
525
  profile: e,
326
526
  alt: ""
327
- }), /* @__PURE__ */ C(l, {
527
+ }), /* @__PURE__ */ E(u, {
328
528
  text: e.displayName,
329
- className: t(U.mutedText, u, "min-w-0 flex-1 truncate")
529
+ className: t(Z.mutedText, l, "min-w-0 flex-1 truncate")
330
530
  })]
331
531
  }),
332
- p.length > 0 && /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ C("ul", {
532
+ p.length > 0 && /* @__PURE__ */ D(T, { children: [/* @__PURE__ */ E("ul", {
333
533
  className: "flex flex-col",
334
- children: p.map((e) => /* @__PURE__ */ C(W, {
534
+ children: p.map((e) => /* @__PURE__ */ E(Q, {
335
535
  label: e.label,
336
536
  icon: e.icon,
337
- textClassName: u,
338
- trailing: /* @__PURE__ */ C(E, {
537
+ textClassName: l,
538
+ trailing: /* @__PURE__ */ E(A, {
339
539
  size: r,
340
540
  stroke: o,
341
541
  "aria-hidden": !0,
342
- className: t(U.rowIcon, "rtl:scale-x-[-1]")
542
+ className: t(Z.rowIcon, "rtl:scale-x-[-1]")
343
543
  }),
344
544
  onClick: () => d({
345
545
  title: e.label,
346
- content: /* @__PURE__ */ C(G, {
546
+ content: /* @__PURE__ */ E($, {
347
547
  options: e.options,
348
- textClassName: u
548
+ textClassName: l
349
549
  })
350
550
  })
351
551
  }, e.id))
352
- }), /* @__PURE__ */ C("hr", { className: U.divider })] }),
353
- /* @__PURE__ */ w("ul", {
552
+ }), /* @__PURE__ */ E("hr", { className: Z.divider })] }),
553
+ /* @__PURE__ */ D("ul", {
354
554
  className: "flex flex-col pb-4",
355
- children: [s && a && /* @__PURE__ */ C(W, {
555
+ children: [s && a && /* @__PURE__ */ E(Q, {
356
556
  label: a,
357
- textClassName: u,
358
- icon: /* @__PURE__ */ C(O, {
557
+ textClassName: l,
558
+ icon: /* @__PURE__ */ E(M, {
359
559
  size: r,
360
560
  stroke: o,
361
561
  "aria-hidden": !0
@@ -363,10 +563,10 @@ var j = {
363
563
  onClick: () => {
364
564
  f(), s?.();
365
565
  }
366
- }), /* @__PURE__ */ C(W, {
566
+ }), /* @__PURE__ */ E(Q, {
367
567
  label: n,
368
- textClassName: u,
369
- icon: /* @__PURE__ */ C(D, {
568
+ textClassName: l,
569
+ icon: /* @__PURE__ */ E(ne, {
370
570
  size: r,
371
571
  stroke: o,
372
572
  "aria-hidden": !0
@@ -377,29 +577,29 @@ var j = {
377
577
  })]
378
578
  })
379
579
  ] });
380
- }), q = h(({ items: e, onSelectItem: t, profileLabel: n, logOutLabel: i, onLogout: a, settingsLabel: s, onSettings: c, profile: l, groups: u, footer: d, textClassName: f }) => {
381
- let { push: p, close: m } = H(), h = (e) => {
580
+ }), ue = v(({ items: e, onSelectItem: t, profileLabel: n, logOutLabel: i, onLogout: a, settingsLabel: s, onSettings: c, profile: l, groups: u, footer: d, textClassName: f }) => {
581
+ let { push: p, close: m } = X(), h = (e) => {
382
582
  m(), t(e);
383
583
  };
384
- return /* @__PURE__ */ w(S, { children: [/* @__PURE__ */ w("ul", {
584
+ return /* @__PURE__ */ D(T, { children: [/* @__PURE__ */ D("ul", {
385
585
  className: "flex flex-col pb-4",
386
586
  children: [e.map((e) => {
387
587
  let t = e.isActive && e.activeIcon || e.icon;
388
- return /* @__PURE__ */ C(W, {
588
+ return /* @__PURE__ */ E(Q, {
389
589
  label: e.label,
390
590
  textClassName: f,
391
591
  isCurrent: e.isActive,
392
592
  isHighlighted: e.isActive,
393
- icon: /* @__PURE__ */ C(t, {
593
+ icon: /* @__PURE__ */ E(t, {
394
594
  size: r,
395
595
  stroke: o
396
596
  }),
397
597
  onClick: () => h(e)
398
598
  }, e.id);
399
- }), l && /* @__PURE__ */ C(W, {
599
+ }), l && /* @__PURE__ */ E(Q, {
400
600
  label: n,
401
601
  textClassName: f,
402
- icon: /* @__PURE__ */ C(k, {
602
+ icon: /* @__PURE__ */ E(N, {
403
603
  size: r,
404
604
  stroke: o,
405
605
  "aria-hidden": !0
@@ -407,7 +607,7 @@ var j = {
407
607
  onClick: () => {
408
608
  l && p({
409
609
  title: n,
410
- content: /* @__PURE__ */ C(K, {
610
+ content: /* @__PURE__ */ E(le, {
411
611
  profile: l,
412
612
  groups: u,
413
613
  logOutLabel: i,
@@ -420,8 +620,8 @@ var j = {
420
620
  }
421
621
  })]
422
622
  }), d] });
423
- }), J = h(({ isOpen: n, onClose: r, items: i, onSelectItem: a, labels: o, profile: s, groups: c, onLogout: l, onSettings: u, footer: d, styles: f }) => {
424
- let { colors: p, typography: m, className: h, cssVars: g } = f ?? {}, _ = b(() => e({
623
+ }), de = v(({ isOpen: n, onClose: r, items: i, onSelectItem: a, labels: o, profile: s, groups: c, onLogout: l, onSettings: u, footer: d, styles: f }) => {
624
+ let { colors: p, typography: m, className: h, cssVars: g } = f ?? {}, _ = S(() => e({
425
625
  "--np-sheet-text": p?.text,
426
626
  "--np-sheet-item-hover": p?.itemHoverBackground,
427
627
  "--np-sheet-item-active": p?.itemActiveBackground,
@@ -435,18 +635,18 @@ var j = {
435
635
  "--np-menu-active-icon": p?.activeIcon,
436
636
  "--np-font-family": m?.fontFamily
437
637
  }), [p, m?.fontFamily]);
438
- return /* @__PURE__ */ C(V, {
638
+ return /* @__PURE__ */ E(ce, {
439
639
  isOpen: n,
440
640
  onClose: r,
441
641
  title: o.title,
442
642
  closeLabel: o.close,
443
643
  backLabel: o.back,
444
- className: t(U.sheet, h),
644
+ className: t(Z.sheet, h),
445
645
  style: {
446
646
  ...g,
447
647
  ..._
448
648
  },
449
- children: /* @__PURE__ */ C(q, {
649
+ children: /* @__PURE__ */ E(ue, {
450
650
  items: i,
451
651
  onSelectItem: a,
452
652
  profileLabel: o.profile,
@@ -462,4 +662,4 @@ var j = {
462
662
  });
463
663
  });
464
664
  //#endregion
465
- export { I as AvatarInitials, j as NAVIGATION_PANEL_CLASS, V as NavigableBottomSheet, q as NavigationMenuPage, P as NavigationPanel, J as NavigationSheet, G as OptionListPage, K as ProfilePage, W as SheetRow, L as UserAvatar, z as UserMenu, H as useSheetNavigation };
665
+ export { K as AvatarInitials, I as NAVIGATION_PANEL_CLASS, ce as NavigableBottomSheet, ue as NavigationMenuPage, z as NavigationPanel, de as NavigationSheet, U as NavigationSidebar, B as NavigationSidebarVariant, $ as OptionListPage, le as ProfilePage, Q as SheetRow, q as UserAvatar, Y as UserMenu, W as UserMenuTriggerVariant, X as useSheetNavigation };
@@ -27,4 +27,18 @@ export interface NavigationPanelItem {
27
27
  * lib never imports a routing library. Defaults to a plain `<a href>`.
28
28
  */
29
29
  export type NavigationLinkRenderer = (item: NavigationPanelItem, children: ReactNode) => ReactNode;
30
+ /** What a host's link element must carry for `NavigationSidebar` to style it and mark the current page. */
31
+ export interface NavigationSidebarLinkProps {
32
+ /** Class names that give the link the sidebar item's box, states and focus ring. */
33
+ className: string;
34
+ /** `'page'` while the item points at the page on screen. */
35
+ 'aria-current'?: 'page';
36
+ }
37
+ /**
38
+ * Renders a `NavigationSidebar` item as the host's link element (e.g. a router
39
+ * `Link`), spreading `linkProps` onto it. The link itself is the item: it
40
+ * holds the icon and the label, so no control is nested inside it. Defaults to
41
+ * a plain `<a href>`.
42
+ */
43
+ export type NavigationSidebarLinkRenderer = (item: NavigationPanelItem, children: ReactNode, linkProps: NavigationSidebarLinkProps) => ReactNode;
30
44
  //# sourceMappingURL=navigation-item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-item.d.ts","sourceRoot":"","sources":["../../src/models/navigation-item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3C;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAExE,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,IAAI,EAAE,kBAAkB,CAAC;IACzB,6MAA6M;IAC7M,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,SAAS,KAChB,SAAS,CAAC"}
1
+ {"version":3,"file":"navigation-item.d.ts","sourceRoot":"","sources":["../../src/models/navigation-item.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3C;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAExE,6EAA6E;AAC7E,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,EAAE,EAAE,MAAM,CAAC;IACX,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,IAAI,EAAE,kBAAkB,CAAC;IACzB,6MAA6M;IAC7M,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG,CACnC,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,SAAS,KAChB,SAAS,CAAC;AAEf,2GAA2G;AAC3G,MAAM,WAAW,0BAA0B;IACzC,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAC1C,IAAI,EAAE,mBAAmB,EACzB,QAAQ,EAAE,SAAS,EACnB,SAAS,EAAE,0BAA0B,KAClC,SAAS,CAAC"}
@@ -0,0 +1,91 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+ import { NavigationSidebarVariant } from '../types/navigation-sidebar-variant';
3
+ import { NavigationSidebarLinkRenderer, NavigationPanelItem } from './navigation-item';
4
+ import { NavigationPanelLogo } from './navigation-panel-props';
5
+ /** Brand mark of `NavigationSidebar`, already resolved by the host; `iconUrl` is the square mark shown while collapsed. */
6
+ export interface NavigationSidebarLogo extends NavigationPanelLogo {
7
+ /** Wide logo shown while expanded and in the drawer. When omitted, `iconUrl` is shown in every state. */
8
+ logoUrl?: string;
9
+ }
10
+ /** Translated labels required by `NavigationSidebar`. */
11
+ export interface NavigationSidebarLabels {
12
+ /** Accessible name for the `<nav>` landmark. */
13
+ ariaLabel: string;
14
+ /** Accessible name of the collapse toggle, the same in both states; `aria-expanded` reports the state. Defaults to `'Sidebar'`. */
15
+ toggle?: string;
16
+ /** Tooltip of the toggle while the sidebar is expanded. Defaults to `'Collapse sidebar'`. */
17
+ collapse?: string;
18
+ /** Tooltip of the toggle while the sidebar is collapsed. Defaults to `'Expand sidebar'`. */
19
+ expand?: string;
20
+ /** Accessible name and tooltip of the drawer's close button. Defaults to `'Close'`. */
21
+ close?: string;
22
+ }
23
+ /** CSS custom-property overrides for `NavigationSidebar`. */
24
+ export interface NavigationSidebarColors {
25
+ /** Sidebar background. Defaults to `--bg-layer-raised`. */
26
+ background?: string;
27
+ /** Text and icon color of an inactive item. Defaults to `--text-primary`. */
28
+ itemText?: string;
29
+ /** Item background on hover and keyboard focus. Defaults to `--bg-control-accent-alpha-hover-subtle`. */
30
+ itemHoverBackground?: string;
31
+ /** Background of the active item. Defaults to `--bg-control-accent-alpha-active-subtle`. */
32
+ itemSelectedBackground?: string;
33
+ /** Icon paint of the active item; replaces the built-in gradient. Defaults to a blue-to-violet gradient. */
34
+ itemActiveIcon?: string;
35
+ /** First color of the built-in active-icon gradient. Defaults to `#1d4ed8`. */
36
+ itemActiveGradientStart?: string;
37
+ /** Last color of the built-in active-icon gradient. Defaults to `#885df2`. */
38
+ itemActiveGradientEnd?: string;
39
+ /** Keyboard focus ring color of an item. Defaults to `--stroke-focus`. */
40
+ focusOutline?: string;
41
+ }
42
+ /** Typography overrides for `NavigationSidebar`. */
43
+ export interface NavigationSidebarTypography {
44
+ /** CSS class applied to item labels. Defaults to `'dial-small-text'`. */
45
+ fontClassName?: string;
46
+ /** `font-family` applied to the sidebar root. */
47
+ fontFamily?: string;
48
+ }
49
+ /** Combined style overrides for `NavigationSidebar`. */
50
+ export interface NavigationSidebarStyles {
51
+ /** Color overrides applied as CSS custom properties. */
52
+ colors?: NavigationSidebarColors;
53
+ /** Typography overrides. */
54
+ typography?: NavigationSidebarTypography;
55
+ /** Extra class name(s) merged onto the `<nav>` element. */
56
+ className?: string;
57
+ /** CSS custom properties applied to the `<nav>` element. */
58
+ cssVars?: CSSProperties;
59
+ }
60
+ /** Props accepted by `NavigationSidebar`. */
61
+ export interface NavigationSidebarProps {
62
+ /** Destinations rendered as rows (expanded and drawer) or icon buttons (collapsed), in display order. */
63
+ items: NavigationPanelItem[];
64
+ /** Translated labels for the landmark and the toggle. */
65
+ labels: NavigationSidebarLabels;
66
+ /** Layout of the sidebar. Defaults to `NavigationSidebarVariant.Sidebar`. */
67
+ variant?: NavigationSidebarVariant;
68
+ /** Whether the sidebar is collapsed to its icon-only width. Ignored by the drawer. Defaults to `false`. */
69
+ isCollapsed?: boolean;
70
+ /** Called when the toggle is activated. When absent no toggle renders. Not used by the drawer. */
71
+ onToggleCollapse?: () => void;
72
+ /** Whether the drawer is shown; while it is not, it is slid out of view, `inert` and `invisible`. Drawer only. Defaults to `false`. */
73
+ isOpen?: boolean;
74
+ /** Called when the drawer's close button is activated or Escape is pressed inside it. When absent the drawer renders no close button. Drawer only. */
75
+ onClose?: () => void;
76
+ /** `id` of the `<nav>`, referenced by an opener's `aria-controls`. Defaults to a generated id. */
77
+ id?: string;
78
+ /** Brand mark; omit to render no logo. */
79
+ logo?: NavigationSidebarLogo;
80
+ /** Renders each item as a host-owned link element, spreading the given link props onto it. Defaults to a plain `<a href>`. */
81
+ renderLink?: NavigationSidebarLinkRenderer;
82
+ /** Content between the items and the footer — typically the conversation list. It stays mounted but inert and hidden while collapsed. */
83
+ children?: ReactNode;
84
+ /** Pinned to the footer's inline start while expanded and below the actions while collapsed — typically `UserMenu`. */
85
+ userMenu?: ReactNode;
86
+ /** Pinned to the footer's inline end while expanded and above the user menu while collapsed. */
87
+ footerActions?: ReactNode;
88
+ /** Style overrides for colors, typography, and class names. */
89
+ styles?: NavigationSidebarStyles;
90
+ }
91
+ //# sourceMappingURL=navigation-sidebar-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-sidebar-props.d.ts","sourceRoot":"","sources":["../../src/models/navigation-sidebar-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,KAAK,EACV,6BAA6B,EAC7B,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,2HAA2H;AAC3H,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAChE,yGAAyG;IACzG,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yDAAyD;AACzD,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,mIAAmI;IACnI,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4FAA4F;IAC5F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,6DAA6D;AAC7D,MAAM,WAAW,uBAAuB;IACtC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yGAAyG;IACzG,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4FAA4F;IAC5F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,4GAA4G;IAC5G,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+EAA+E;IAC/E,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,oDAAoD;AACpD,MAAM,WAAW,2BAA2B;IAC1C,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wDAAwD;AACxD,MAAM,WAAW,uBAAuB;IACtC,wDAAwD;IACxD,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,4BAA4B;IAC5B,UAAU,CAAC,EAAE,2BAA2B,CAAC;IACzC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC,yGAAyG;IACzG,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,yDAAyD;IACzD,MAAM,EAAE,uBAAuB,CAAC;IAChC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,2GAA2G;IAC3G,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kGAAkG;IAClG,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC9B,uIAAuI;IACvI,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sJAAsJ;IACtJ,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,kGAAkG;IAClG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0CAA0C;IAC1C,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,8HAA8H;IAC9H,UAAU,CAAC,EAAE,6BAA6B,CAAC;IAC3C,yIAAyI;IACzI,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,uHAAuH;IACvH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,gGAAgG;IAChG,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC"}
@@ -1,4 +1,5 @@
1
1
  import { CSSProperties } from 'react';
2
+ import { UserMenuTriggerVariant } from '../types/user-menu-trigger-variant';
2
3
  import { NavigationMenuGroup } from './navigation-menu';
3
4
  import { NavigationUserProfile } from './user-profile';
4
5
  /** CSS custom-property overrides for `UserMenu`. */
@@ -9,8 +10,10 @@ export interface UserMenuColors {
9
10
  avatarText?: string;
10
11
  /** Menu label text color. */
11
12
  text?: string;
12
- /** Trigger background on hover. */
13
+ /** Trigger background on hover and keyboard focus. */
13
14
  triggerHoverBackground?: string;
15
+ /** Background of the `Profile` and `Compact` triggers while the menu is open. Defaults to `--bg-control-accent-alpha-active-subtle`. */
16
+ triggerOpenBackground?: string;
14
17
  }
15
18
  /** Typography overrides for `UserMenu`. */
16
19
  export interface UserMenuTypography {
@@ -53,6 +56,8 @@ export interface UserMenuProps {
53
56
  onLogout: () => void;
54
57
  /** When provided, renders a Settings entry that invokes this callback. */
55
58
  onSettings?: () => void;
59
+ /** Presentation of the trigger. Defaults to `UserMenuTriggerVariant.Avatar`. */
60
+ triggerVariant?: UserMenuTriggerVariant;
56
61
  /** Hides the avatar tooltip — set on touch layouts where hover never fires. */
57
62
  isTooltipHidden?: boolean;
58
63
  /** Style overrides for colors, typography, and class names. */
@@ -1 +1 @@
1
- {"version":3,"file":"user-menu-props.d.ts","sourceRoot":"","sources":["../../src/models/user-menu-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,oDAAoD;AACpD,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,mDAAmD;IACnD,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,OAAO,EAAE,qBAAqB,CAAC;IAC/B,oEAAoE;IACpE,MAAM,EAAE,cAAc,CAAC;IACvB,oFAAoF;IACpF,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,+EAA+E;IAC/E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB"}
1
+ {"version":3,"file":"user-menu-props.d.ts","sourceRoot":"","sources":["../../src/models/user-menu-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAE5D,oDAAoD;AACpD,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,wIAAwI;IACxI,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,mDAAmD;IACnD,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4DAA4D;IAC5D,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,OAAO,EAAE,qBAAqB,CAAC;IAC/B,oEAAoE;IACpE,MAAM,EAAE,cAAc,CAAC;IACvB,oFAAoF;IACpF,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,gFAAgF;IAChF,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,+EAA+E;IAC/E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,+DAA+D;IAC/D,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-navigation-panel",
3
3
  "description": "Primary application navigation — desktop nav rail, user menu, and mobile navigation bottom sheet",
4
- "version": "1.3.0-dev.14",
4
+ "version": "1.3.0-dev.142",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -18,12 +18,12 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "@tabler/icons-react": "^3.44.0",
21
- "@epam/ai-dial-conversation-input": "1.3.0-dev.14"
21
+ "@epam/ai-dial-conversation-input": "1.3.0-dev.142"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": "^19.2.8",
25
- "@epam/ai-dial-chat-shared": "1.3.0-dev.14",
26
- "@epam/ai-dial-ui-kit": "^0.15.1"
25
+ "@epam/ai-dial-chat-shared": "1.3.0-dev.142",
26
+ "@epam/ai-dial-ui-kit": "^0.16.0-dev.22"
27
27
  },
28
28
  "repository": {
29
29
  "type": "git",
@@ -0,0 +1,8 @@
1
+ /** How `NavigationSidebar` is laid out. */
2
+ export declare enum NavigationSidebarVariant {
3
+ /** A persistent column, 336px expanded or 72px collapsed, with a collapse toggle in its header. */
4
+ Sidebar = "sidebar",
5
+ /** A 320px panel the host slides over the content, with a close button in its header instead of the toggle. */
6
+ Drawer = "drawer"
7
+ }
8
+ //# sourceMappingURL=navigation-sidebar-variant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-sidebar-variant.d.ts","sourceRoot":"","sources":["../../src/types/navigation-sidebar-variant.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,oBAAY,wBAAwB;IAClC,mGAAmG;IACnG,OAAO,YAAY;IACnB,+GAA+G;IAC/G,MAAM,WAAW;CAClB"}
@@ -0,0 +1,10 @@
1
+ /** How `UserMenu` presents its trigger. */
2
+ export declare enum UserMenuTriggerVariant {
3
+ /** Avatar only, centred in a 60px square — the rail's footer. */
4
+ Avatar = "avatar",
5
+ /** Avatar, display name and a chevron in one pill — the expanded sidebar's footer. */
6
+ Profile = "profile",
7
+ /** Avatar only, in a 40px pill that opens the menu at the start edge — the collapsed sidebar's footer. */
8
+ Compact = "compact"
9
+ }
10
+ //# sourceMappingURL=user-menu-trigger-variant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-menu-trigger-variant.d.ts","sourceRoot":"","sources":["../../src/types/user-menu-trigger-variant.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,oBAAY,sBAAsB;IAChC,iEAAiE;IACjE,MAAM,WAAW;IACjB,sFAAsF;IACtF,OAAO,YAAY;IACnB,0GAA0G;IAC1G,OAAO,YAAY;CACpB"}