@turquoisehealth/pit-viper 2.253.0 → 2.254.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 (44) hide show
  1. package/_site/assets/css/pit-viper-a11y.css +6 -5
  2. package/_site/assets/css/pit-viper-v2.css +6 -5
  3. package/package.json +1 -1
  4. package/pv-components/dist/stats/vue/base/stats.html +1 -1
  5. package/pv-components/dist/stats/vue/visualizations/stats.html +1 -1
  6. package/pv-components/dist/stats/web/pv-filter-modal-stats.html +1 -1
  7. package/pv-components/dist/stats/web/pv-multi-select-button-stats.html +1 -1
  8. package/pv-components/dist/stats/web/pv-sidebar-stats.html +1 -1
  9. package/pv-components/dist/stats/web/pv-sidebar-v2-stats.html +1 -1
  10. package/pv-components/dist/vue/ai/components/base/PvFilterPanel/types.d.ts +5 -0
  11. package/pv-components/dist/vue/ai/components/base/PvMultiSelectButton/PvMultiSelectButton.vue.d.ts +51 -1
  12. package/pv-components/dist/vue/ai/components/base/PvMultiSelectButton/types.d.ts +3 -0
  13. package/pv-components/dist/vue/ai/components/base/PvSidebar/PvSidebar.vue.d.ts +15 -10
  14. package/pv-components/dist/vue/ai/components/base/PvSidebar/PvSidebarNavFlyout.vue.d.ts +9 -0
  15. package/pv-components/dist/vue/ai/components/base/PvSidebar/helpers.d.ts +3 -0
  16. package/pv-components/dist/vue/ai/components/base/PvSidebar/types.d.ts +44 -0
  17. package/pv-components/dist/vue/ai/components/base/PvSidebarV2/types.d.ts +2 -0
  18. package/pv-components/dist/vue/base/components/base/PvFilterPanel/types.d.ts +5 -0
  19. package/pv-components/dist/vue/base/components/base/PvMultiSelectButton/PvMultiSelectButton.vue.d.ts +51 -1
  20. package/pv-components/dist/vue/base/components/base/PvMultiSelectButton/types.d.ts +3 -0
  21. package/pv-components/dist/vue/base/components/base/PvSidebar/PvSidebar.vue.d.ts +15 -10
  22. package/pv-components/dist/vue/base/components/base/PvSidebar/PvSidebarNavFlyout.vue.d.ts +9 -0
  23. package/pv-components/dist/vue/base/components/base/PvSidebar/helpers.d.ts +3 -0
  24. package/pv-components/dist/vue/base/components/base/PvSidebar/types.d.ts +44 -0
  25. package/pv-components/dist/vue/base/components/base/PvSidebarV2/types.d.ts +2 -0
  26. package/pv-components/dist/vue/base/pv-components-base.mjs +1984 -1399
  27. package/pv-components/dist/vue/base/pv-components-base.mjs.map +1 -1
  28. package/pv-components/dist/vue/visualizations/components/base/PvFilterPanel/types.d.ts +5 -0
  29. package/pv-components/dist/vue/visualizations/components/base/PvMultiSelectButton/PvMultiSelectButton.vue.d.ts +51 -1
  30. package/pv-components/dist/vue/visualizations/components/base/PvMultiSelectButton/types.d.ts +3 -0
  31. package/pv-components/dist/vue/visualizations/components/base/PvSidebar/PvSidebar.vue.d.ts +15 -10
  32. package/pv-components/dist/vue/visualizations/components/base/PvSidebar/PvSidebarNavFlyout.vue.d.ts +9 -0
  33. package/pv-components/dist/vue/visualizations/components/base/PvSidebar/helpers.d.ts +3 -0
  34. package/pv-components/dist/vue/visualizations/components/base/PvSidebar/types.d.ts +44 -0
  35. package/pv-components/dist/vue/visualizations/components/base/PvSidebarV2/types.d.ts +2 -0
  36. package/pv-components/dist/vue/visualizations/components/tables/PvDataTable/useSetFilter.d.ts +2 -0
  37. package/pv-components/dist/vue/visualizations/pv-components-visualizations.mjs +1402 -1395
  38. package/pv-components/dist/vue/visualizations/pv-components-visualizations.mjs.map +1 -1
  39. package/pv-components/dist/web/components/pv-filter-modal/pv-filter-modal.js +1030 -1022
  40. package/pv-components/dist/web/components/pv-multi-select-button/pv-multi-select-button.js +757 -749
  41. package/pv-components/dist/web/components/pv-sidebar/pv-sidebar.js +2739 -618
  42. package/pv-components/dist/web/components/pv-sidebar-v2/pv-sidebar-v2.js +457 -453
  43. package/pv-components/dist/web/pv-components.iife.js +13 -13
  44. package/pv-components/dist/web/pv-components.iife.js.map +1 -1
@@ -1,4 +1,4 @@
1
- import { PvMultiSelectButtonProps, PvSelectButtonVariant, PvSelectButtonSize, MenuActionsVariant } from './types';
1
+ import { PvMultiSelectButtonProps, PvSelectButtonVariant, PvSelectButtonSize, MenuActionsVariant, FooterPosition } from './types';
2
2
  import { MenuOption, MultiSelectState, SeeMoreEvent, MenuAction } from '../../../types';
3
3
  import { VNodeProps, AllowedComponentProps, ComponentCustomProps, PublicProps, ShallowUnwrapRef, Component, CSSProperties, VNode } from 'vue';
4
4
  import { PvCounterBadgeVariant } from '../PvCounterBadge/types';
@@ -62,6 +62,7 @@ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>
62
62
  optionsVariant: "checkbox" | "icon" | "toggle" | "simple" | "company" | "avatar" | "checkmark";
63
63
  options: MenuOption<T>[];
64
64
  menuActionsVariant: MenuActionsVariant | null;
65
+ footerPosition: FooterPosition;
65
66
  singleSelect: boolean;
66
67
  highlightSearchText: boolean;
67
68
  enableCascadeSelection: boolean;
@@ -108,6 +109,7 @@ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>
108
109
  optionsVariant: "checkbox" | "icon" | "toggle" | "simple" | "company" | "avatar" | "checkmark";
109
110
  options: MenuOption<T>[];
110
111
  menuActionsVariant: MenuActionsVariant | null;
112
+ footerPosition: FooterPosition;
111
113
  singleSelect: boolean;
112
114
  highlightSearchText: boolean;
113
115
  enableCascadeSelection: boolean;
@@ -154,6 +156,54 @@ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>
154
156
  optionsVariant: "checkbox" | "icon" | "toggle" | "simple" | "company" | "avatar" | "checkmark";
155
157
  options: MenuOption<T>[];
156
158
  menuActionsVariant: MenuActionsVariant | null;
159
+ footerPosition: FooterPosition;
160
+ singleSelect: boolean;
161
+ highlightSearchText: boolean;
162
+ enableCascadeSelection: boolean;
163
+ counterStyle: "primary" | "secondary";
164
+ }): any;
165
+ footer?(_: {
166
+ selectedItems: MenuOption<T>[];
167
+ searchInput: string;
168
+ slotContext: Record<string, unknown> | undefined;
169
+ isOpen: boolean;
170
+ isLoading: boolean;
171
+ companyLogo: string;
172
+ counterBadgeVariant: PvCounterBadgeVariant;
173
+ countSelectedParents: boolean;
174
+ defaultOpen: boolean;
175
+ enableChildExpansion: boolean;
176
+ groupings: string[];
177
+ hideParentOnChildQueryMatch: boolean;
178
+ icon: string;
179
+ isSeeMoreLoading: boolean;
180
+ hasMoreOptions: boolean;
181
+ loadingText: string;
182
+ optionsAction: MenuAction<T> | undefined;
183
+ optionsRenderer: Component;
184
+ overlayTrigger: boolean;
185
+ parentSelectsAllChildren: boolean;
186
+ popoverCssProperties: CSSProperties;
187
+ popoverProperties: PvPopoverV2Props;
188
+ prefixLabel: string;
189
+ searchPlaceholder: string;
190
+ teleportLocation: string;
191
+ totalOptionCount: number;
192
+ additionalCounter: number;
193
+ rumFilterName: string;
194
+ rumActionName: string;
195
+ counterPosition: "none" | "left" | "right";
196
+ variant: PvSelectButtonVariant;
197
+ size: PvSelectButtonSize;
198
+ label: string;
199
+ disableDropdownIcon: boolean;
200
+ disableClearIcon: boolean;
201
+ disableSearchInput: boolean;
202
+ disabled: boolean;
203
+ optionsVariant: "checkbox" | "icon" | "toggle" | "simple" | "company" | "avatar" | "checkmark";
204
+ options: MenuOption<T>[];
205
+ menuActionsVariant: MenuActionsVariant | null;
206
+ footerPosition: FooterPosition;
157
207
  singleSelect: boolean;
158
208
  highlightSearchText: boolean;
159
209
  enableCascadeSelection: boolean;
@@ -6,6 +6,7 @@ import { PvCounterBadgeVariant } from '../PvCounterBadge/types.ts';
6
6
  export type PvSelectButtonVariant = Extract<PvVariants, "secondary" | "ghost">;
7
7
  export type PvSelectButtonSize = Extract<PvSize, "lg" | "xl">;
8
8
  export type MenuActionsVariant = "select-clear" | "cancel-confirm";
9
+ export type FooterPosition = "above-actions" | "below-actions";
9
10
  export interface PvMultiSelectButtonProps<T = unknown, SlotContext extends Record<string, unknown> = Record<string, unknown>> {
10
11
  /** Company logo name displayed on the trigger button */
11
12
  companyLogo?: string;
@@ -36,6 +37,8 @@ export interface PvMultiSelectButtonProps<T = unknown, SlotContext extends Recor
36
37
  enableCascadeSelection?: boolean;
37
38
  /** Display an expand/collapse icon for options that have children */
38
39
  enableChildExpansion?: boolean;
40
+ /** Where the footer slot renders relative to the menu actions. Defaults to "above-actions". */
41
+ footerPosition?: FooterPosition;
39
42
  /** Labels used to group options into named sections */
40
43
  groupings?: string[];
41
44
  /** When enableCascadeSelection is true, hide parent options in the dropdown when
@@ -1,20 +1,22 @@
1
+ import { PvSidebarProps } from './types.ts';
1
2
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
- type __VLS_Props = {
3
- disableToggle?: boolean;
4
- variant?: "primary" | "secondary";
5
- newVersion?: boolean;
6
- };
3
+ type __VLS_Props = PvSidebarProps;
7
4
  type __VLS_PublicProps = {
8
5
  modelValue?: boolean;
9
6
  } & __VLS_Props;
10
7
  declare function __VLS_template(): {
11
8
  attrs: Partial<{}>;
12
- slots: {
13
- 'sidebar-header'?(_: {}): any;
14
- sidebar?(_: {}): any;
9
+ slots: Partial<Record<string, (_: {}) => any>> & {
10
+ 'sidebar-additional-header'?(_: {}): any;
11
+ 'sidebar-additional-content'?(_: {}): any;
12
+ 'sidebar-help-content'?(_: {}): any;
13
+ 'sidebar-profile-content'?(_: {}): any;
15
14
  default?(_: {}): any;
16
15
  };
17
- refs: {};
16
+ refs: {
17
+ sidebarPanel: HTMLDivElement;
18
+ popoverTeleportTarget: HTMLDivElement;
19
+ };
18
20
  rootEl: HTMLDivElement;
19
21
  };
20
22
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
@@ -29,7 +31,10 @@ declare const __VLS_component: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}
29
31
  onChange?: ((payload: {
30
32
  collapsed: boolean;
31
33
  }) => any) | undefined;
32
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
34
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
35
+ sidebarPanel: HTMLDivElement;
36
+ popoverTeleportTarget: HTMLDivElement;
37
+ }, HTMLDivElement>;
33
38
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
34
39
  export default _default;
35
40
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -0,0 +1,9 @@
1
+ import { PvSidebarNavItem } from './types.ts';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ items: PvSidebarNavItem[];
5
+ /** Keeps nested flyouts closed while the surface hosting this list is inactive. */
6
+ disabled?: boolean;
7
+ };
8
+ declare const _default: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
9
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import { PvSidebarNavItem } from './types.ts';
2
+ /** True when the item itself or any of its descendants is the current page. */
3
+ export declare const isNavItemActive: (item: PvSidebarNavItem) => boolean;
@@ -0,0 +1,44 @@
1
+ export interface PvSidebarProps {
2
+ /** @deprecated Organization and profile menus are always click-only. This prop has no effect. */
3
+ disableOrgProfileHover?: boolean;
4
+ disableToggle?: boolean;
5
+ /** Top-level nav items, with optional nested children rendered as an accordion / hover flyout. */
6
+ navItems?: PvSidebarNavItem[];
7
+ /** Organizations rendered in the org-switcher dropdown, with optional nested entities. */
8
+ organizations?: PvSidebarOrgEntity[];
9
+ /** Identity rendered by the Profile footer trigger. */
10
+ profile?: PvSidebarProfile;
11
+ variant?: "primary" | "secondary";
12
+ }
13
+ export interface PvSidebarProfile {
14
+ avatarUrl?: string;
15
+ name: string;
16
+ }
17
+ export interface PvSidebarOrgEntity {
18
+ value: string | number;
19
+ label: string;
20
+ url: string;
21
+ avatarUrl?: string;
22
+ /** Marks this as the currently active organization/entity (server already knows from the current page). */
23
+ active?: boolean;
24
+ entities?: PvSidebarOrgEntity[];
25
+ }
26
+ export interface PvSidebarNavItem {
27
+ value: string | number;
28
+ label: string;
29
+ /** Leaf items link directly; parents with children may omit it. */
30
+ url?: string;
31
+ /** SVG symbol id, e.g. "home" — only rendered at the top level. */
32
+ icon?: string;
33
+ /** Marks this as the currently active item (server already knows from the current page). */
34
+ active?: boolean;
35
+ /** Named slot rendered in a full-height hover and focus panel instead of the compact flyout. */
36
+ hoverPanelSlot?: string;
37
+ /** Extra attributes spread directly onto the rendered <a> (e.g. { "data-turbolinks": "false" }). */
38
+ linkAttrs?: Record<string, string>;
39
+ external?: boolean;
40
+ badge?: "beta" | "legacy";
41
+ /** Draws a divider line above this item, starting a new group. Only rendered at the top level. */
42
+ separatorAtTop?: boolean;
43
+ children?: PvSidebarNavItem[];
44
+ }
@@ -38,5 +38,7 @@ export interface PvSidebarNavItem {
38
38
  linkAttrs?: Record<string, string>;
39
39
  external?: boolean;
40
40
  badge?: "beta" | "legacy";
41
+ /** Draws a divider line above this item, starting a new group. Only rendered at the top level. */
42
+ separatorAtTop?: boolean;
41
43
  children?: PvSidebarNavItem[];
42
44
  }
@@ -3,6 +3,7 @@ import { AdvancedFilterModel, FilterModel } from 'ag-grid-enterprise';
3
3
  import { MenuOption, MultiSelectState } from '../../../types';
4
4
  import { ColDef, ValueFormatterFunc } from 'ag-grid-community';
5
5
  import { PvRangeScale, PvRangeValue } from '../PvRange/types';
6
+ import { FooterPosition } from '../PvMultiSelectButton/types';
6
7
  export type PvFilterPanelCategory = string;
7
8
  export type PvFilterPanelFilterType = "value" | "range" | "boolean" | "exists";
8
9
  export type PvFilterPanelFilterModelType = "advanced" | "regular";
@@ -124,6 +125,10 @@ export interface PvFilterPanelColDefContext {
124
125
  * Optional renderer to provide content below the filter options list
125
126
  */
126
127
  filterFooterRenderer?: Component;
128
+ /**
129
+ * Where filterFooterRenderer renders relative to the Select All / Clear All actions. Defaults to "above-actions".
130
+ */
131
+ filterFooterPosition?: FooterPosition;
127
132
  /**
128
133
  * A group of boolean sub-fields to render as a hover submenu above the filter options.
129
134
  * Each field in `fields` must be present as a column in the table.
@@ -1,4 +1,4 @@
1
- import { PvMultiSelectButtonProps, PvSelectButtonVariant, PvSelectButtonSize, MenuActionsVariant } from './types';
1
+ import { PvMultiSelectButtonProps, PvSelectButtonVariant, PvSelectButtonSize, MenuActionsVariant, FooterPosition } from './types';
2
2
  import { MenuOption, MultiSelectState, SeeMoreEvent, MenuAction } from '../../../types';
3
3
  import { VNodeProps, AllowedComponentProps, ComponentCustomProps, PublicProps, ShallowUnwrapRef, Component, CSSProperties, VNode } from 'vue';
4
4
  import { PvCounterBadgeVariant } from '../PvCounterBadge/types';
@@ -62,6 +62,7 @@ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>
62
62
  optionsVariant: "toggle" | "checkbox" | "icon" | "simple" | "company" | "avatar" | "checkmark";
63
63
  options: MenuOption<T>[];
64
64
  menuActionsVariant: MenuActionsVariant | null;
65
+ footerPosition: FooterPosition;
65
66
  singleSelect: boolean;
66
67
  highlightSearchText: boolean;
67
68
  enableCascadeSelection: boolean;
@@ -108,6 +109,7 @@ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>
108
109
  optionsVariant: "toggle" | "checkbox" | "icon" | "simple" | "company" | "avatar" | "checkmark";
109
110
  options: MenuOption<T>[];
110
111
  menuActionsVariant: MenuActionsVariant | null;
112
+ footerPosition: FooterPosition;
111
113
  singleSelect: boolean;
112
114
  highlightSearchText: boolean;
113
115
  enableCascadeSelection: boolean;
@@ -154,6 +156,54 @@ declare const _default: <T>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>
154
156
  optionsVariant: "toggle" | "checkbox" | "icon" | "simple" | "company" | "avatar" | "checkmark";
155
157
  options: MenuOption<T>[];
156
158
  menuActionsVariant: MenuActionsVariant | null;
159
+ footerPosition: FooterPosition;
160
+ singleSelect: boolean;
161
+ highlightSearchText: boolean;
162
+ enableCascadeSelection: boolean;
163
+ counterStyle: "primary" | "secondary";
164
+ }): any;
165
+ footer?(_: {
166
+ selectedItems: MenuOption<T>[];
167
+ searchInput: string;
168
+ slotContext: Record<string, unknown> | undefined;
169
+ isOpen: boolean;
170
+ isLoading: boolean;
171
+ companyLogo: string;
172
+ counterBadgeVariant: PvCounterBadgeVariant;
173
+ countSelectedParents: boolean;
174
+ defaultOpen: boolean;
175
+ enableChildExpansion: boolean;
176
+ groupings: string[];
177
+ hideParentOnChildQueryMatch: boolean;
178
+ icon: string;
179
+ isSeeMoreLoading: boolean;
180
+ hasMoreOptions: boolean;
181
+ loadingText: string;
182
+ optionsAction: MenuAction<T> | undefined;
183
+ optionsRenderer: Component;
184
+ overlayTrigger: boolean;
185
+ parentSelectsAllChildren: boolean;
186
+ popoverCssProperties: CSSProperties;
187
+ popoverProperties: PvPopoverV2Props;
188
+ prefixLabel: string;
189
+ searchPlaceholder: string;
190
+ teleportLocation: string;
191
+ totalOptionCount: number;
192
+ additionalCounter: number;
193
+ rumFilterName: string;
194
+ rumActionName: string;
195
+ counterPosition: "right" | "left" | "none";
196
+ variant: PvSelectButtonVariant;
197
+ size: PvSelectButtonSize;
198
+ label: string;
199
+ disableDropdownIcon: boolean;
200
+ disableClearIcon: boolean;
201
+ disableSearchInput: boolean;
202
+ disabled: boolean;
203
+ optionsVariant: "toggle" | "checkbox" | "icon" | "simple" | "company" | "avatar" | "checkmark";
204
+ options: MenuOption<T>[];
205
+ menuActionsVariant: MenuActionsVariant | null;
206
+ footerPosition: FooterPosition;
157
207
  singleSelect: boolean;
158
208
  highlightSearchText: boolean;
159
209
  enableCascadeSelection: boolean;
@@ -6,6 +6,7 @@ import { PvCounterBadgeVariant } from '../PvCounterBadge/types.ts';
6
6
  export type PvSelectButtonVariant = Extract<PvVariants, "secondary" | "ghost">;
7
7
  export type PvSelectButtonSize = Extract<PvSize, "lg" | "xl">;
8
8
  export type MenuActionsVariant = "select-clear" | "cancel-confirm";
9
+ export type FooterPosition = "above-actions" | "below-actions";
9
10
  export interface PvMultiSelectButtonProps<T = unknown, SlotContext extends Record<string, unknown> = Record<string, unknown>> {
10
11
  /** Company logo name displayed on the trigger button */
11
12
  companyLogo?: string;
@@ -36,6 +37,8 @@ export interface PvMultiSelectButtonProps<T = unknown, SlotContext extends Recor
36
37
  enableCascadeSelection?: boolean;
37
38
  /** Display an expand/collapse icon for options that have children */
38
39
  enableChildExpansion?: boolean;
40
+ /** Where the footer slot renders relative to the menu actions. Defaults to "above-actions". */
41
+ footerPosition?: FooterPosition;
39
42
  /** Labels used to group options into named sections */
40
43
  groupings?: string[];
41
44
  /** When enableCascadeSelection is true, hide parent options in the dropdown when
@@ -1,20 +1,22 @@
1
+ import { PvSidebarProps } from './types.ts';
1
2
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
- type __VLS_Props = {
3
- disableToggle?: boolean;
4
- variant?: "primary" | "secondary";
5
- newVersion?: boolean;
6
- };
3
+ type __VLS_Props = PvSidebarProps;
7
4
  type __VLS_PublicProps = {
8
5
  modelValue?: boolean;
9
6
  } & __VLS_Props;
10
7
  declare function __VLS_template(): {
11
8
  attrs: Partial<{}>;
12
- slots: {
13
- 'sidebar-header'?(_: {}): any;
14
- sidebar?(_: {}): any;
9
+ slots: Partial<Record<string, (_: {}) => any>> & {
10
+ 'sidebar-additional-header'?(_: {}): any;
11
+ 'sidebar-additional-content'?(_: {}): any;
12
+ 'sidebar-help-content'?(_: {}): any;
13
+ 'sidebar-profile-content'?(_: {}): any;
15
14
  default?(_: {}): any;
16
15
  };
17
- refs: {};
16
+ refs: {
17
+ sidebarPanel: HTMLDivElement;
18
+ popoverTeleportTarget: HTMLDivElement;
19
+ };
18
20
  rootEl: HTMLDivElement;
19
21
  };
20
22
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
@@ -29,7 +31,10 @@ declare const __VLS_component: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}
29
31
  collapsed: boolean;
30
32
  }) => any) | undefined;
31
33
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
32
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
34
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {
35
+ sidebarPanel: HTMLDivElement;
36
+ popoverTeleportTarget: HTMLDivElement;
37
+ }, HTMLDivElement>;
33
38
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
34
39
  export default _default;
35
40
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -0,0 +1,9 @@
1
+ import { PvSidebarNavItem } from './types.ts';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ items: PvSidebarNavItem[];
5
+ /** Keeps nested flyouts closed while the surface hosting this list is inactive. */
6
+ disabled?: boolean;
7
+ };
8
+ declare const _default: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
9
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import { PvSidebarNavItem } from './types.ts';
2
+ /** True when the item itself or any of its descendants is the current page. */
3
+ export declare const isNavItemActive: (item: PvSidebarNavItem) => boolean;
@@ -0,0 +1,44 @@
1
+ export interface PvSidebarProps {
2
+ /** @deprecated Organization and profile menus are always click-only. This prop has no effect. */
3
+ disableOrgProfileHover?: boolean;
4
+ disableToggle?: boolean;
5
+ /** Top-level nav items, with optional nested children rendered as an accordion / hover flyout. */
6
+ navItems?: PvSidebarNavItem[];
7
+ /** Organizations rendered in the org-switcher dropdown, with optional nested entities. */
8
+ organizations?: PvSidebarOrgEntity[];
9
+ /** Identity rendered by the Profile footer trigger. */
10
+ profile?: PvSidebarProfile;
11
+ variant?: "primary" | "secondary";
12
+ }
13
+ export interface PvSidebarProfile {
14
+ avatarUrl?: string;
15
+ name: string;
16
+ }
17
+ export interface PvSidebarOrgEntity {
18
+ value: string | number;
19
+ label: string;
20
+ url: string;
21
+ avatarUrl?: string;
22
+ /** Marks this as the currently active organization/entity (server already knows from the current page). */
23
+ active?: boolean;
24
+ entities?: PvSidebarOrgEntity[];
25
+ }
26
+ export interface PvSidebarNavItem {
27
+ value: string | number;
28
+ label: string;
29
+ /** Leaf items link directly; parents with children may omit it. */
30
+ url?: string;
31
+ /** SVG symbol id, e.g. "home" — only rendered at the top level. */
32
+ icon?: string;
33
+ /** Marks this as the currently active item (server already knows from the current page). */
34
+ active?: boolean;
35
+ /** Named slot rendered in a full-height hover and focus panel instead of the compact flyout. */
36
+ hoverPanelSlot?: string;
37
+ /** Extra attributes spread directly onto the rendered <a> (e.g. { "data-turbolinks": "false" }). */
38
+ linkAttrs?: Record<string, string>;
39
+ external?: boolean;
40
+ badge?: "beta" | "legacy";
41
+ /** Draws a divider line above this item, starting a new group. Only rendered at the top level. */
42
+ separatorAtTop?: boolean;
43
+ children?: PvSidebarNavItem[];
44
+ }
@@ -38,5 +38,7 @@ export interface PvSidebarNavItem {
38
38
  linkAttrs?: Record<string, string>;
39
39
  external?: boolean;
40
40
  badge?: "beta" | "legacy";
41
+ /** Draws a divider line above this item, starting a new group. Only rendered at the top level. */
42
+ separatorAtTop?: boolean;
41
43
  children?: PvSidebarNavItem[];
42
44
  }