@turquoisehealth/pit-viper 2.197.3-dev.2 → 2.199.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 (80) hide show
  1. package/_site/assets/css/pit-viper-a11y.css +2 -0
  2. package/_site/assets/css/pit-viper-consumer.css +2 -0
  3. package/_site/assets/css/pit-viper-v2-scoped.css +2 -0
  4. package/_site/assets/css/pit-viper-v2.css +2 -0
  5. package/_site/assets/css/pit-viper.css +2 -0
  6. package/package.json +3 -3
  7. package/pv-components/dist/stats/vue/base/stats.html +1 -1
  8. package/pv-components/dist/stats/vue/visualizations/stats.html +1 -1
  9. package/pv-components/dist/stats/web/pv-filter-modal-stats.html +4950 -0
  10. package/pv-components/dist/stats/web/pv-filter-panel-stats.html +1 -1
  11. package/pv-components/dist/stats/web/pv-input-stats.html +1 -1
  12. package/pv-components/dist/stats/web/pv-menu-stats.html +1 -1
  13. package/pv-components/dist/stats/web/pv-modal-stats.html +1 -1
  14. package/pv-components/dist/stats/web/pv-multi-select-button-stats.html +1 -1
  15. package/pv-components/dist/stats/web/pv-query-builder-input-stats.html +1 -1
  16. package/pv-components/dist/stats/web/pv-select-button-stats.html +1 -1
  17. package/pv-components/dist/vue/base/components/base/PvFilterModal/PvFilterModal.vue.d.ts +77 -0
  18. package/pv-components/dist/vue/base/components/base/PvFilterModal/PvFilterModalSelectItem.vue.d.ts +33 -0
  19. package/pv-components/dist/vue/base/components/base/PvFilterModal/types.d.ts +11 -0
  20. package/pv-components/dist/vue/base/components/base/PvFilterPanel/PvFilterPanel.vue.d.ts +14 -14
  21. package/pv-components/dist/vue/base/components/base/PvFilterPanel/PvFilterPanelAccordion.vue.d.ts +2 -2
  22. package/pv-components/dist/vue/base/components/base/PvFilterPanel/PvFilterPanelOptionRow.vue.d.ts +2 -2
  23. package/pv-components/dist/vue/base/components/base/PvFilterPanel/types.d.ts +35 -0
  24. package/pv-components/dist/vue/base/components/base/PvFilterPanel/usePvFilterPanel.d.ts +30 -0
  25. package/pv-components/dist/vue/base/components/base/PvInput/PvInput.vue.d.ts +6 -0
  26. package/pv-components/dist/vue/base/components/base/PvModal/PvModal.vue.d.ts +1 -0
  27. package/pv-components/dist/vue/base/components/base/index.d.ts +2 -0
  28. package/pv-components/dist/vue/base/pv-components-base.mjs +3137 -2714
  29. package/pv-components/dist/vue/base/pv-components-base.mjs.map +1 -1
  30. package/pv-components/dist/vue/visualizations/components/base/PvDrawer/PvDrawer.vue.d.ts +1 -1
  31. package/pv-components/dist/vue/visualizations/components/base/PvDropdown/PvDropdown.vue.d.ts +5 -5
  32. package/pv-components/dist/vue/visualizations/components/base/PvFilterModal/PvFilterModal.vue.d.ts +77 -0
  33. package/pv-components/dist/vue/visualizations/components/base/PvFilterModal/PvFilterModalSelectItem.vue.d.ts +33 -0
  34. package/pv-components/dist/vue/visualizations/components/base/PvFilterModal/types.d.ts +11 -0
  35. package/pv-components/dist/vue/visualizations/components/base/PvFilterPanel/PvFilterPanel.vue.d.ts +14 -14
  36. package/pv-components/dist/vue/visualizations/components/base/PvFilterPanel/PvFilterPanelAccordion.vue.d.ts +2 -2
  37. package/pv-components/dist/vue/visualizations/components/base/PvFilterPanel/PvFilterPanelOptionRow.vue.d.ts +1 -1
  38. package/pv-components/dist/vue/visualizations/components/base/PvFilterPanel/types.d.ts +35 -0
  39. package/pv-components/dist/vue/visualizations/components/base/PvFilterPanel/usePvFilterPanel.d.ts +30 -0
  40. package/pv-components/dist/vue/visualizations/components/base/PvInput/PvInput.vue.d.ts +6 -0
  41. package/pv-components/dist/vue/visualizations/components/base/PvInsightCard/PvInsightCard.vue.d.ts +1 -1
  42. package/pv-components/dist/vue/visualizations/components/base/PvModal/PvModal.vue.d.ts +1 -0
  43. package/pv-components/dist/vue/visualizations/components/base/PvMultiSelectButton/PvMultiSelectButton.vue.d.ts +7 -7
  44. package/pv-components/dist/vue/visualizations/components/base/PvPopoverV2/PvPopoverV2.vue.d.ts +2 -2
  45. package/pv-components/dist/vue/visualizations/components/base/PvRange/PvRange.vue.d.ts +2 -2
  46. package/pv-components/dist/vue/visualizations/components/base/PvSelectButton/PvSelectButton.vue.d.ts +3 -3
  47. package/pv-components/dist/vue/visualizations/components/base/index.d.ts +2 -0
  48. package/pv-components/dist/vue/visualizations/components/charts/PvChartWidget/PvChartWidget.vue.d.ts +180 -0
  49. package/pv-components/dist/vue/visualizations/components/charts/PvChartWidget/constants.d.ts +4 -0
  50. package/pv-components/dist/vue/visualizations/components/charts/PvChartWidget/types.d.ts +31 -0
  51. package/pv-components/dist/vue/visualizations/components/charts/PvDataTableWithChart/table-chart-components/PvChartOptionsPanel.vue.d.ts +2 -0
  52. package/pv-components/dist/vue/visualizations/components/charts/PvDataTableWithChart/types.d.ts +2 -0
  53. package/pv-components/dist/vue/visualizations/components/charts/PvDataWidget/PvDataWidget.vue.d.ts +43 -0
  54. package/pv-components/dist/vue/visualizations/components/charts/PvDataWidget/PvDataWidgetTable.vue.d.ts +4 -0
  55. package/pv-components/dist/vue/visualizations/components/charts/PvDataWidget/constants.d.ts +9 -0
  56. package/pv-components/dist/vue/visualizations/components/charts/PvDataWidget/helpers.d.ts +63 -0
  57. package/pv-components/dist/vue/visualizations/components/charts/PvDataWidget/types.d.ts +130 -0
  58. package/pv-components/dist/vue/visualizations/components/charts/PvDataWidget/usePvDataWidgetData.d.ts +40 -0
  59. package/pv-components/dist/vue/visualizations/components/charts/PvMapChart/PvMapChart.vue.d.ts +3 -8
  60. package/pv-components/dist/vue/visualizations/components/charts/widgetOptions.d.ts +58 -0
  61. package/pv-components/dist/vue/visualizations/components/visualizations/index.d.ts +6 -0
  62. package/pv-components/dist/vue/visualizations/pv-components-visualizations.mjs +11534 -10746
  63. package/pv-components/dist/vue/visualizations/pv-components-visualizations.mjs.map +1 -1
  64. package/pv-components/dist/web/components/pv-filter-modal/pv-filter-modal.js +9603 -0
  65. package/pv-components/dist/web/components/pv-filter-panel/pv-filter-panel.js +2425 -2391
  66. package/pv-components/dist/web/components/pv-input/pv-input.js +517 -470
  67. package/pv-components/dist/web/components/pv-menu/pv-menu.js +360 -357
  68. package/pv-components/dist/web/components/pv-modal/pv-modal.js +4 -2
  69. package/pv-components/dist/web/components/pv-multi-select-button/pv-multi-select-button.js +438 -435
  70. package/pv-components/dist/web/components/pv-query-builder-input/pv-query-builder-input.js +431 -428
  71. package/pv-components/dist/web/components/pv-select-button/pv-select-button.js +732 -729
  72. package/pv-components/dist/web/pv-components.iife.js +19 -19
  73. package/pv-components/dist/web/pv-components.iife.js.map +1 -1
  74. package/claude-plugin/.claude-plugin/plugin.json +0 -11
  75. package/claude-plugin/.mcp.json +0 -8
  76. package/claude-plugin/CLAUDE.md +0 -107
  77. package/claude-plugin/README.md +0 -173
  78. package/claude-plugin/skills/pit-viper/SKILL.md +0 -182
  79. package/claude-plugin/skills/pit-viper/assets/pv-html-starter.html +0 -77
  80. package/claude-plugin/skills/pit-viper/examples/pv-html-example.html +0 -229
@@ -0,0 +1,77 @@
1
+ import { PvFilterPanelFilterModel, PvFilterPanelOption, PvFilterPanelColDef, PvFilterPanelFilterChangeEvent, PvFilterPanelSuggestion } from '../PvFilterPanel/types';
2
+ import { PvFilterModalProps } from './types';
3
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
4
+ type __VLS_Props = PvFilterModalProps;
5
+ type __VLS_PublicProps = {
6
+ "filterModel"?: PvFilterPanelFilterModel;
7
+ "visible"?: boolean;
8
+ } & __VLS_Props;
9
+ declare function __VLS_template(): {
10
+ attrs: Partial<{}>;
11
+ slots: {
12
+ trigger?(_: {}): any;
13
+ };
14
+ refs: {};
15
+ rootEl: HTMLDivElement;
16
+ };
17
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
18
+ declare const __VLS_component: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
19
+ cancel: () => any;
20
+ "load-more": (field: string, colDef: PvFilterPanelColDef, query: string, parentId?: string | undefined) => any;
21
+ apply: (filterModel: PvFilterPanelFilterModel) => any;
22
+ "filter-change": (event: PvFilterPanelFilterChangeEvent) => any;
23
+ "focus-change": (field: string, value: string, option: PvFilterPanelOption) => any;
24
+ "handle-settings-icon": (field: string, colDef: PvFilterPanelColDef) => any;
25
+ "open-change": (field: string, open: boolean, colDef: PvFilterPanelColDef) => any;
26
+ "search-change": (field: string, query: string, colDef: PvFilterPanelColDef) => any;
27
+ "suggestion-click": (suggestion: PvFilterPanelSuggestion) => any;
28
+ "update:filterModel": (value: PvFilterPanelFilterModel) => any;
29
+ "update:visible": (value: boolean) => any;
30
+ }, string, PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
31
+ onCancel?: (() => any) | undefined;
32
+ "onLoad-more"?: ((field: string, colDef: PvFilterPanelColDef, query: string, parentId?: string | undefined) => any) | undefined;
33
+ onApply?: ((filterModel: PvFilterPanelFilterModel) => any) | undefined;
34
+ "onFilter-change"?: ((event: PvFilterPanelFilterChangeEvent) => any) | undefined;
35
+ "onFocus-change"?: ((field: string, value: string, option: PvFilterPanelOption) => any) | undefined;
36
+ "onHandle-settings-icon"?: ((field: string, colDef: PvFilterPanelColDef) => any) | undefined;
37
+ "onOpen-change"?: ((field: string, open: boolean, colDef: PvFilterPanelColDef) => any) | undefined;
38
+ "onSearch-change"?: ((field: string, query: string, colDef: PvFilterPanelColDef) => any) | undefined;
39
+ "onSuggestion-click"?: ((suggestion: PvFilterPanelSuggestion) => any) | undefined;
40
+ "onUpdate:filterModel"?: ((value: PvFilterPanelFilterModel) => any) | undefined;
41
+ "onUpdate:visible"?: ((value: boolean) => any) | undefined;
42
+ }>, {
43
+ header: string;
44
+ ariaLabel: string;
45
+ maxWidth: string;
46
+ readOnly: boolean;
47
+ colDefs: PvFilterPanelColDef[];
48
+ devMode: boolean;
49
+ displayPreferencesIcon: boolean;
50
+ enableFocusView: boolean;
51
+ filterHasMoreMap: Record<string, boolean | undefined>;
52
+ filterLoadingMap: Record<string, boolean | undefined>;
53
+ filterLoadingMoreMap: Record<string, boolean | undefined>;
54
+ filterOptions: Record<string, PvFilterPanelOption[]>;
55
+ filterSearchQueries: Record<string, string | undefined>;
56
+ filterSuggestions: PvFilterPanelSuggestion[];
57
+ focusableFields: string[];
58
+ focusedValues: Record<string, string[] | undefined>;
59
+ focusText: string;
60
+ rangeDebounceMs: number;
61
+ staged: boolean;
62
+ applyLabel: string;
63
+ autoHideRelatedFilterFields: boolean;
64
+ cancelLabel: string;
65
+ clearAllBody: string;
66
+ clearAllHeader: string;
67
+ clearAllLabel: string;
68
+ selectAllLabel: string;
69
+ clearSelectionLabel: string;
70
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
71
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
72
+ export default _default;
73
+ type __VLS_WithTemplateSlots<T, S> = T & {
74
+ new (): {
75
+ $slots: S;
76
+ };
77
+ };
@@ -0,0 +1,33 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ interface PvFilterModalSelectItem {
3
+ /** When true, applies fully rounded (pill) corners. */
4
+ rounded?: boolean;
5
+ /** When true, the toggle button is non-interactive and visually dimmed. */
6
+ disabled?: boolean;
7
+ /** The value emitted when this toggle is selected (used with radio-style groups). */
8
+ value?: string;
9
+ /** Visible text label displayed inside the toggle. */
10
+ label?: string;
11
+ /** HTML id for the underlying input element. Auto-generated from label when omitted. */
12
+ id?: string;
13
+ /** HTML name attribute, used to group radio-style toggles. */
14
+ name?: string;
15
+ /**
16
+ * When true, renders as a checkbox (can be deselected). When false, renders as a radio (stays selected).
17
+ */
18
+ deselect?: boolean;
19
+ /** Optional counter on the right side of the button */
20
+ rightCounterBadge?: number;
21
+ }
22
+ type __VLS_Props = PvFilterModalSelectItem;
23
+ type __VLS_PublicProps = {
24
+ modelValue?: boolean | string;
25
+ } & __VLS_Props;
26
+ declare const _default: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
27
+ "update:modelValue": (value: string | boolean) => any;
28
+ }, string, PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
29
+ "onUpdate:modelValue"?: ((value: string | boolean) => any) | undefined;
30
+ }>, {
31
+ deselect: boolean;
32
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLLabelElement>;
33
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import { PvFilterPanelProps } from '../PvFilterPanel/types';
2
+ export interface PvFilterModalProps extends PvFilterPanelProps {
3
+ /** Header text shown in the modal title bar. */
4
+ header?: string;
5
+ /** Label for the per-category "select all" action in the options pane footer. */
6
+ selectAllLabel?: string;
7
+ /** Label for the per-category "clear" action in the options pane footer. */
8
+ clearSelectionLabel?: string;
9
+ /** Max width applied to the modal shell. */
10
+ maxWidth?: string;
11
+ }
@@ -1,4 +1,4 @@
1
- import { PvFilterPanelColDef, PvFilterPanelFilterChangeEvent, PvFilterPanelFilterModel, PvFilterPanelOption, PvFilterPanelProps, PvFilterPanelSuggestion } from './types';
1
+ import { PvFilterPanelFilterModel, PvFilterPanelProps, PvFilterPanelColDef, PvFilterPanelFilterChangeEvent, PvFilterPanelOption, PvFilterPanelSuggestion } from './types';
2
2
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
3
  type __VLS_Props = PvFilterPanelProps;
4
4
  type __VLS_PublicProps = {
@@ -17,24 +17,24 @@ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
17
17
  declare const __VLS_component: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
18
18
  cancel: () => any;
19
19
  "load-more": (field: string, colDef: PvFilterPanelColDef, query: string, parentId?: string | undefined) => any;
20
+ apply: (filterModel: PvFilterPanelFilterModel) => any;
21
+ "filter-change": (event: PvFilterPanelFilterChangeEvent) => any;
20
22
  "focus-change": (field: string, value: string, option: PvFilterPanelOption) => any;
21
23
  "handle-settings-icon": (field: string, colDef: PvFilterPanelColDef) => any;
22
24
  "open-change": (field: string, open: boolean, colDef: PvFilterPanelColDef) => any;
23
- "filter-change": (event: PvFilterPanelFilterChangeEvent) => any;
24
25
  "search-change": (field: string, query: string, colDef: PvFilterPanelColDef) => any;
25
- apply: (filterModel: PvFilterPanelFilterModel) => any;
26
26
  "suggestion-click": (suggestion: PvFilterPanelSuggestion) => any;
27
27
  "update:filterModel": (value: PvFilterPanelFilterModel) => any;
28
28
  "update:isCollapsed": (value: boolean) => any;
29
29
  }, string, PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
30
30
  onCancel?: (() => any) | undefined;
31
31
  "onLoad-more"?: ((field: string, colDef: PvFilterPanelColDef, query: string, parentId?: string | undefined) => any) | undefined;
32
+ onApply?: ((filterModel: PvFilterPanelFilterModel) => any) | undefined;
33
+ "onFilter-change"?: ((event: PvFilterPanelFilterChangeEvent) => any) | undefined;
32
34
  "onFocus-change"?: ((field: string, value: string, option: PvFilterPanelOption) => any) | undefined;
33
35
  "onHandle-settings-icon"?: ((field: string, colDef: PvFilterPanelColDef) => any) | undefined;
34
36
  "onOpen-change"?: ((field: string, open: boolean, colDef: PvFilterPanelColDef) => any) | undefined;
35
- "onFilter-change"?: ((event: PvFilterPanelFilterChangeEvent) => any) | undefined;
36
37
  "onSearch-change"?: ((field: string, query: string, colDef: PvFilterPanelColDef) => any) | undefined;
37
- onApply?: ((filterModel: PvFilterPanelFilterModel) => any) | undefined;
38
38
  "onSuggestion-click"?: ((suggestion: PvFilterPanelSuggestion) => any) | undefined;
39
39
  "onUpdate:filterModel"?: ((value: PvFilterPanelFilterModel) => any) | undefined;
40
40
  "onUpdate:isCollapsed"?: ((value: boolean) => any) | undefined;
@@ -42,14 +42,6 @@ declare const __VLS_component: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}
42
42
  ariaLabel: string;
43
43
  width: string;
44
44
  readOnly: boolean;
45
- focusText: string;
46
- filterOptions: Record<string, PvFilterPanelOption[]>;
47
- applyLabel: string;
48
- autoHideRelatedFilterFields: boolean;
49
- cancelLabel: string;
50
- clearAllBody: string;
51
- clearAllHeader: string;
52
- clearAllLabel: string;
53
45
  colDefs: PvFilterPanelColDef[];
54
46
  devMode: boolean;
55
47
  displayPreferencesIcon: boolean;
@@ -57,13 +49,21 @@ declare const __VLS_component: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}
57
49
  filterHasMoreMap: Record<string, boolean | undefined>;
58
50
  filterLoadingMap: Record<string, boolean | undefined>;
59
51
  filterLoadingMoreMap: Record<string, boolean | undefined>;
52
+ filterOptions: Record<string, PvFilterPanelOption[]>;
60
53
  filterSearchQueries: Record<string, string | undefined>;
61
54
  filterSuggestions: PvFilterPanelSuggestion[];
62
55
  focusableFields: string[];
63
56
  focusedValues: Record<string, string[] | undefined>;
64
- hideCollapseButton: boolean;
57
+ focusText: string;
65
58
  rangeDebounceMs: number;
66
59
  staged: boolean;
60
+ applyLabel: string;
61
+ autoHideRelatedFilterFields: boolean;
62
+ cancelLabel: string;
63
+ clearAllBody: string;
64
+ clearAllHeader: string;
65
+ clearAllLabel: string;
66
+ hideCollapseButton: boolean;
67
67
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
68
68
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
69
69
  export default _default;
@@ -2,17 +2,17 @@ import { PvFilterPanelAccordionProps, PvFilterPanelControlChange, PvFilterPanelO
2
2
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
3
  declare const _default: DefineComponent<PvFilterPanelAccordionProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
4
4
  "load-more": (query: string, parentId?: string | undefined) => any;
5
+ "filter-change": (change: PvFilterPanelControlChange) => any;
5
6
  "focus-change": (field: string, value: string, option: PvFilterPanelOption) => any;
6
7
  "handle-settings-icon": (field: string, colDef: PvFilterPanelColDef) => any;
7
8
  "open-change": (open: boolean) => any;
8
- "filter-change": (change: PvFilterPanelControlChange) => any;
9
9
  "search-change": (query: string) => any;
10
10
  }, string, PublicProps, Readonly<PvFilterPanelAccordionProps> & Readonly<{
11
11
  "onLoad-more"?: ((query: string, parentId?: string | undefined) => any) | undefined;
12
+ "onFilter-change"?: ((change: PvFilterPanelControlChange) => any) | undefined;
12
13
  "onFocus-change"?: ((field: string, value: string, option: PvFilterPanelOption) => any) | undefined;
13
14
  "onHandle-settings-icon"?: ((field: string, colDef: PvFilterPanelColDef) => any) | undefined;
14
15
  "onOpen-change"?: ((open: boolean) => any) | undefined;
15
- "onFilter-change"?: ((change: PvFilterPanelControlChange) => any) | undefined;
16
16
  "onSearch-change"?: ((query: string) => any) | undefined;
17
17
  }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDetailsElement>;
18
18
  export default _default;
@@ -19,10 +19,10 @@ declare const __VLS_component: DefineComponent<PvFilterPanelOptionRowProps, {},
19
19
  disabled: boolean;
20
20
  selected: boolean;
21
21
  indeterminate: boolean;
22
- resultCount: PvFilterPanelResultCount | null;
23
- depth: number;
24
22
  focusText: string;
23
+ depth: number;
25
24
  isFocused: boolean;
25
+ resultCount: PvFilterPanelResultCount | null;
26
26
  showFocusAction: boolean;
27
27
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLLabelElement>;
28
28
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
@@ -364,6 +364,18 @@ export interface PvFilterPanelOptionRowProps {
364
364
  subduedText?: string;
365
365
  value: string;
366
366
  }
367
+ export type PvFilterPanelEmits = {
368
+ apply: [filterModel: PvFilterPanelFilterModel];
369
+ cancel: [];
370
+ "filter-change": [event: PvFilterPanelFilterChangeEvent];
371
+ "focus-change": [field: string, value: string, option: PvFilterPanelOption];
372
+ "handle-settings-icon": [field: string, colDef: PvFilterPanelColDef];
373
+ "load-more": [field: string, colDef: PvFilterPanelColDef, query: string, parentId?: string];
374
+ "open-change": [field: string, open: boolean, colDef: PvFilterPanelColDef];
375
+ "search-change": [field: string, query: string, colDef: PvFilterPanelColDef];
376
+ "suggestion-click": [suggestion: PvFilterPanelSuggestion];
377
+ };
378
+ export type PvFilterPanelEmitFn = <K extends keyof PvFilterPanelEmits>(event: K, ...args: PvFilterPanelEmits[K]) => void;
367
379
  export interface PvFilterPanelProps {
368
380
  applyLabel?: string;
369
381
  ariaLabel?: string;
@@ -413,3 +425,26 @@ export interface PvFilterPanelProps {
413
425
  staged?: boolean;
414
426
  width?: string;
415
427
  }
428
+ /**
429
+ * Props consumed by the `usePvFilterPanel` composable. Mirrors `PvFilterPanelProps` but marks the
430
+ * fields that consuming components default via `withDefaults` as required, so the composable can rely
431
+ * on them being present. Both `PvFilterPanel` and `PvFilterModal` satisfy this after applying defaults.
432
+ */
433
+ export type PvFilterPanelCoreProps = Omit<PvFilterPanelProps, "colDefs" | "devMode" | "displayPreferencesIcon" | "enableFocusView" | "filterHasMoreMap" | "filterLoadingMap" | "filterLoadingMoreMap" | "filterOptions" | "filterSearchQueries" | "filterSuggestions" | "focusableFields" | "focusedValues" | "focusText" | "rangeDebounceMs" | "readOnly" | "staged"> & {
434
+ colDefs: PvFilterPanelColDef[];
435
+ devMode: boolean;
436
+ displayPreferencesIcon: boolean;
437
+ enableFocusView: boolean;
438
+ filterHasMoreMap: Record<string, boolean | undefined>;
439
+ filterLoadingMap: Record<string, boolean | undefined>;
440
+ filterLoadingMoreMap: Record<string, boolean | undefined>;
441
+ filterOptions: Record<string, PvFilterPanelOption[]>;
442
+ filterSearchQueries: Record<string, string | undefined>;
443
+ filterSuggestions: PvFilterPanelSuggestion[];
444
+ focusableFields: string[];
445
+ focusedValues: Record<string, string[] | undefined>;
446
+ focusText: string;
447
+ rangeDebounceMs: number;
448
+ readOnly: boolean;
449
+ staged: boolean;
450
+ };
@@ -0,0 +1,30 @@
1
+ import { Ref, ComputedRef } from 'vue';
2
+ import { PvFilterPanelAppliedGroup, PvFilterPanelColDef, PvFilterPanelControlChange, PvFilterPanelCoreProps, PvFilterPanelEmitFn, PvFilterPanelFilterModel, PvFilterPanelFilterType, PvFilterPanelResolvedFilter, PvFilterPanelSuggestion, PvFilterStore, PvFilterPanelFilterModelType } from './types';
3
+ /**
4
+ * View-agnostic "brain" for filter panel presentations. Owns option/store wiring, the resolved filter
5
+ * model, applied-filter derivation, and all mutation handlers. Presentation components (`PvFilterPanel`
6
+ * drawer, `PvFilterModal`) consume this and supply their own layout + local view state.
7
+ */
8
+ export declare function usePvFilterPanel(props: PvFilterPanelCoreProps, filterModel: Ref<PvFilterPanelFilterModel>, emit: PvFilterPanelEmitFn): {
9
+ resolvedFilters: ComputedRef<PvFilterPanelResolvedFilter[]>;
10
+ appliedGroups: ComputedRef<PvFilterPanelAppliedGroup[]>;
11
+ appliedCount: ComputedRef<number>;
12
+ hasActiveFilters: ComputedRef<boolean>;
13
+ showClearAll: ComputedRef<boolean>;
14
+ visibleSuggestions: ComputedRef<PvFilterPanelSuggestion[]>;
15
+ effectiveFilterModelType: ComputedRef<PvFilterPanelFilterModelType>;
16
+ activeFilterModel: ComputedRef<PvFilterPanelFilterModel>;
17
+ effectiveFilterStore: ComputedRef<PvFilterStore>;
18
+ findResolvedFilter: (field: string) => PvFilterPanelResolvedFilter | undefined;
19
+ getRepresentedFields: (colDef: PvFilterPanelColDef) => string[];
20
+ activateFilter: (filter: PvFilterPanelResolvedFilter, query?: string) => void;
21
+ applyStagedFilters: () => void;
22
+ cancelStagedFilters: () => void;
23
+ clearAllFilters: () => void;
24
+ getSuggestionKey: (suggestion: PvFilterPanelSuggestion) => string;
25
+ handleControlChange: (field: string, change: PvFilterPanelControlChange) => void;
26
+ handleLoadMore: (filter: PvFilterPanelResolvedFilter, query: string, parentId?: string) => void;
27
+ handleSearchChange: (filter: PvFilterPanelResolvedFilter, query: string) => void;
28
+ handleSuggestionClick: (suggestion: PvFilterPanelSuggestion) => void;
29
+ removeAppliedFilter: (field: string, value: string, type?: PvFilterPanelFilterType) => void;
30
+ };
@@ -1,6 +1,8 @@
1
1
  import { PvInputType, PvInputVariant } from './types';
2
2
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
3
  interface PvInputProps {
4
+ /** When true, upper label is visible */
5
+ showLabel?: boolean;
4
6
  /** When true, applies invalid/error styling to the input and lower label. */
5
7
  error?: boolean;
6
8
  /** When true, the input is non-interactive and visually dimmed. */
@@ -21,6 +23,10 @@ interface PvInputProps {
21
23
  variant?: PvInputVariant;
22
24
  /** The step attribute for number inputs (e.g. '0.01' for currency). */
23
25
  step?: string;
26
+ /** Static text shown before the Input */
27
+ prefixLabel?: string;
28
+ /** Optional Icon on the left of the Input */
29
+ inputIcon?: string;
24
30
  }
25
31
  type __VLS_Props = PvInputProps;
26
32
  type __VLS_PublicProps = {
@@ -4,6 +4,7 @@ export interface ModalProps {
4
4
  subheader?: string;
5
5
  disableCloseOnClickOutside?: boolean;
6
6
  hideFooter?: boolean;
7
+ hideHeader?: boolean;
7
8
  }
8
9
  declare const _default: __VLS_WithTemplateSlots< DefineComponent<{
9
10
  modelValue: boolean;
@@ -61,6 +61,7 @@ export { default as PvTreeGroup } from './PvTree/PvTreeGroup.vue';
61
61
  export { default as PvProgressBar } from './PvProgressBar/PvProgressBar.vue';
62
62
  export { default as PvDistributionBar } from './PvDistributionBar/PvDistributionBar.vue';
63
63
  export { default as PvFilterPanel } from './PvFilterPanel/PvFilterPanel.vue';
64
+ export { default as PvFilterModal } from './PvFilterModal/PvFilterModal.vue';
64
65
  export { default as PvHorizontalScroller } from './PvHorizontalScroller/PvHorizontalScroller.vue';
65
66
  export { default as PvHoverActionMenu } from './PvHoverActionMenu/PvHoverActionMenu.vue';
66
67
  export { default as PvQueryBuilderInput } from './PvQueryBuilderInput/PvQueryBuilderInput.vue';
@@ -81,6 +82,7 @@ export type { PvTreeOption, PvTreeSetting, PvTreeSettings } from './PvTree/types
81
82
  export type { RadioGroupOption } from './PvRadioGroup/types';
82
83
  export type { PvTableOfContentsItem } from './PvTableOfContents/types';
83
84
  export type { PvHorizontalScrollerProps } from './PvHorizontalScroller/types';
85
+ export type { PvFilterModalProps } from './PvFilterModal/types';
84
86
  export type { PvHoverActionMenuPosition } from './PvHoverActionMenu/types';
85
87
  export type { PvFilterPanelAggregateFieldHierarchy, PvFilterPanelColDef, PvFilterPanelColDefContext, PvFilterPanelControlChange, PvFilterPanelFilterChangeEvent, PvFilterPanelFilterChangeReason, PvFilterPanelFilterGroup, PvFilterPanelFilterModel, PvFilterPanelFilterModelType, PvFilterPanelFilterType, PvFilterPanelOption, PvFilterPanelOptionsHandler, PvFilterPanelOptionsHandlerParams, PvFilterPanelOptionsHandlerReason, PvFilterPanelOptionsResponse, PvFilterPanelOptionRawValue, PvFilterPanelProps, PvFilterPanelRangeConfig, PvFilterPanelResultCount, PvFilterPanelSuggestion, PvFilterStore, PvFilterStoreFetchOptionsParams, } from './PvFilterPanel/types';
86
88
  export { createPvFilterStore, providePvFilterStore, useOptionalPvFilterStore, usePvFilterStore, } from './PvFilterPanel/usePvFilterStore';