@turquoisehealth/pit-viper 2.104.1 → 2.104.2-dev.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 (128) hide show
  1. package/_site/assets/css/pit-viper-v2-scoped.css +19 -0
  2. package/_site/assets/css/pit-viper-v2.css +21 -0
  3. package/_site/assets/css/pit-viper.css +21 -0
  4. package/package.json +38 -11
  5. package/pv-components/dist/stats/vue/base/stats.html +4949 -0
  6. package/pv-components/dist/stats/vue/visualizations/stats.html +4949 -0
  7. package/pv-components/dist/stats/web/pv-accordion-stats.html +4949 -0
  8. package/pv-components/dist/stats/web/pv-action-bar-stats.html +4949 -0
  9. package/pv-components/dist/stats/web/pv-avatar-group-stats.html +4949 -0
  10. package/pv-components/dist/stats/web/pv-avatar-stats.html +4949 -0
  11. package/pv-components/dist/stats/web/pv-banner-stats.html +4949 -0
  12. package/pv-components/dist/stats/web/pv-breadcrumbs-stats.html +4949 -0
  13. package/pv-components/dist/stats/web/pv-button-stats.html +4949 -0
  14. package/pv-components/dist/stats/web/pv-card-stats.html +4949 -0
  15. package/pv-components/dist/stats/web/pv-checkbox-stats.html +4949 -0
  16. package/pv-components/dist/stats/web/pv-company-label-stats.html +4949 -0
  17. package/pv-components/dist/stats/web/pv-company-logo-stats.html +4949 -0
  18. package/pv-components/dist/stats/web/pv-company-tag-stats.html +4949 -0
  19. package/pv-components/dist/stats/web/pv-counter-badge-stats.html +4949 -0
  20. package/pv-components/dist/stats/web/pv-date-picker-stats.html +4949 -0
  21. package/pv-components/dist/stats/web/pv-date-time-stats.html +4949 -0
  22. package/pv-components/dist/stats/web/pv-drawer-stats.html +4949 -0
  23. package/pv-components/dist/stats/web/pv-dropdown-stats.html +4949 -0
  24. package/pv-components/dist/stats/web/pv-expandable-content-stats.html +4949 -0
  25. package/pv-components/dist/stats/web/pv-ghost-input-stats.html +4949 -0
  26. package/pv-components/dist/stats/web/pv-icon-stats.html +4949 -0
  27. package/pv-components/dist/stats/web/pv-input-stats.html +4949 -0
  28. package/pv-components/dist/stats/web/pv-insight-card-stats.html +4949 -0
  29. package/pv-components/dist/stats/web/pv-modal-stats.html +4949 -0
  30. package/pv-components/dist/stats/web/pv-multi-select-button-stats.html +4949 -0
  31. package/pv-components/dist/stats/web/pv-pagination-stats.html +4949 -0
  32. package/pv-components/dist/stats/web/pv-pill-stats.html +4949 -0
  33. package/pv-components/dist/stats/web/pv-popover-menu-stats.html +4949 -0
  34. package/pv-components/dist/stats/web/pv-popover-stats.html +4949 -0
  35. package/pv-components/dist/stats/web/pv-popover-v2-stats.html +4949 -0
  36. package/pv-components/dist/stats/web/pv-rating-stats.html +4949 -0
  37. package/pv-components/dist/stats/web/pv-release-badge-stats.html +4949 -0
  38. package/pv-components/dist/stats/web/pv-search-input-stats.html +4949 -0
  39. package/pv-components/dist/stats/web/pv-segmented-control-stats.html +4949 -0
  40. package/pv-components/dist/stats/web/pv-select-button-stats.html +4949 -0
  41. package/pv-components/dist/stats/web/pv-selectable-card-stats.html +4949 -0
  42. package/pv-components/dist/stats/web/pv-side-panel-stats.html +4949 -0
  43. package/pv-components/dist/stats/web/pv-skeleton-stats.html +4949 -0
  44. package/pv-components/dist/stats/web/pv-spinner-stats.html +4949 -0
  45. package/pv-components/dist/stats/web/pv-sprite-stats.html +4949 -0
  46. package/pv-components/dist/stats/web/pv-suggestion-tag-stats.html +4949 -0
  47. package/pv-components/dist/stats/web/pv-switch-stats.html +4949 -0
  48. package/pv-components/dist/stats/web/pv-tab-list-stats.html +4949 -0
  49. package/pv-components/dist/stats/web/pv-tabs-stats.html +4949 -0
  50. package/pv-components/dist/stats/web/pv-tag-stats.html +4949 -0
  51. package/pv-components/dist/stats/web/pv-text-area-stats.html +4949 -0
  52. package/pv-components/dist/stats/web/pv-toast-stats.html +4949 -0
  53. package/pv-components/dist/stats/web/pv-toggle-button-stats.html +4949 -0
  54. package/pv-components/dist/stats/web/pv-toggle-group-stats.html +4949 -0
  55. package/pv-components/dist/stats/web/pv-tooltip-stats.html +4949 -0
  56. package/pv-components/dist/stats/web/pv-tooltip-v2-stats.html +4949 -0
  57. package/pv-components/dist/stats/web/pv-widget-stats.html +4949 -0
  58. package/pv-components/dist/vue/base/components/base/PvMultiSelectButton/PvMultiSelectButton.vue.d.ts +3 -4
  59. package/pv-components/dist/vue/base/components/base/PvSelectButton/PvSelectButton.vue.d.ts +1 -1
  60. package/pv-components/dist/vue/base/components/base/PvTooltipV2/PvTooltipV2.vue.d.ts +1 -0
  61. package/pv-components/dist/vue/base/components/base/PvTooltipV2/types.d.ts +2 -1
  62. package/pv-components/dist/vue/base/pv-components-base.mjs +3429 -5665
  63. package/pv-components/dist/vue/visualizations/pv-components-visualizations.mjs +3428 -5941
  64. package/pv-components/dist/web/components/pv-accordion/pv-accordion.js +186 -0
  65. package/pv-components/dist/web/components/pv-action-bar/pv-action-bar.js +66 -0
  66. package/pv-components/dist/web/components/pv-avatar/pv-avatar.js +96 -0
  67. package/pv-components/dist/web/components/pv-avatar-group/pv-avatar-group.js +102 -0
  68. package/pv-components/dist/web/components/pv-banner/pv-banner.js +155 -0
  69. package/pv-components/dist/web/components/pv-breadcrumbs/pv-breadcrumbs.js +92 -0
  70. package/pv-components/dist/web/components/pv-button/pv-button.js +173 -0
  71. package/pv-components/dist/web/components/pv-card/pv-card.js +80 -0
  72. package/pv-components/dist/web/components/pv-checkbox/pv-checkbox.js +77 -0
  73. package/pv-components/dist/web/components/pv-company-label/pv-company-label.js +153 -0
  74. package/pv-components/dist/web/components/pv-company-logo/pv-company-logo.js +124 -0
  75. package/pv-components/dist/web/components/pv-company-tag/pv-company-tag.js +204 -0
  76. package/pv-components/dist/web/components/pv-counter-badge/pv-counter-badge.js +89 -0
  77. package/pv-components/dist/web/components/pv-date-picker/pv-date-picker.js +7481 -0
  78. package/pv-components/dist/web/components/pv-date-time/pv-date-time.js +577 -0
  79. package/pv-components/dist/web/components/pv-drawer/pv-drawer.js +486 -0
  80. package/pv-components/dist/web/components/pv-dropdown/pv-dropdown.js +1724 -0
  81. package/pv-components/dist/web/components/pv-expandable-content/pv-expandable-content.js +235 -0
  82. package/pv-components/dist/web/components/pv-ghost-input/pv-ghost-input.js +251 -0
  83. package/pv-components/dist/web/components/pv-icon/pv-icon.js +81 -0
  84. package/pv-components/dist/web/components/pv-input/pv-input.js +123 -0
  85. package/pv-components/dist/web/components/pv-insight-card/pv-insight-card.js +293 -0
  86. package/pv-components/dist/web/components/pv-modal/pv-modal.js +118 -0
  87. package/pv-components/dist/web/components/pv-multi-select-button/pv-multi-select-button.js +2752 -0
  88. package/pv-components/dist/web/components/pv-pagination/pv-pagination.js +286 -0
  89. package/pv-components/dist/web/components/pv-pill/pv-pill.js +160 -0
  90. package/pv-components/dist/web/components/pv-popover/pv-popover.js +1417 -0
  91. package/pv-components/dist/web/components/pv-popover-menu/pv-popover-menu.js +1439 -0
  92. package/pv-components/dist/web/components/pv-popover-v2/pv-popover-v2.js +1421 -0
  93. package/pv-components/dist/web/components/pv-rating/pv-rating.js +78 -0
  94. package/pv-components/dist/web/components/pv-release-badge/pv-release-badge.js +74 -0
  95. package/pv-components/dist/web/components/pv-search-input/pv-search-input.js +170 -0
  96. package/pv-components/dist/web/components/pv-segmented-control/pv-segmented-control.js +145 -0
  97. package/pv-components/dist/web/components/pv-select-button/pv-select-button.js +2563 -0
  98. package/pv-components/dist/web/components/pv-selectable-card/pv-selectable-card.js +85 -0
  99. package/pv-components/dist/web/components/pv-side-panel/pv-side-panel.js +80 -0
  100. package/pv-components/dist/web/components/pv-skeleton/pv-skeleton.js +1525 -0
  101. package/pv-components/dist/web/components/pv-spinner/pv-spinner.js +83 -0
  102. package/pv-components/dist/web/components/pv-sprite/pv-sprite.js +82 -0
  103. package/pv-components/dist/web/components/pv-suggestion-tag/pv-suggestion-tag.js +126 -0
  104. package/pv-components/dist/web/components/pv-switch/pv-switch.js +94 -0
  105. package/pv-components/dist/web/components/pv-tab-list/pv-tab-list.js +100 -0
  106. package/pv-components/dist/web/components/pv-tabs/pv-tabs.js +178 -0
  107. package/pv-components/dist/web/components/pv-tag/pv-tag.js +141 -0
  108. package/pv-components/dist/web/components/pv-text-area/pv-text-area.js +120 -0
  109. package/pv-components/dist/web/components/pv-toast/pv-toast.js +223 -0
  110. package/pv-components/dist/web/components/pv-toggle-button/pv-toggle-button.js +139 -0
  111. package/pv-components/dist/web/components/pv-toggle-group/pv-toggle-group.js +2887 -0
  112. package/pv-components/dist/web/components/pv-tooltip/pv-tooltip.js +90 -0
  113. package/pv-components/dist/web/components/pv-tooltip-v2/pv-tooltip-v2.js +1489 -0
  114. package/pv-components/dist/web/components/pv-widget/pv-widget.js +91 -0
  115. package/pv-components/dist/web/pv-components.iife.js +21 -21
  116. package/pv-components/dist/web/vue.runtime.esm-browser.prod.js +7 -0
  117. package/pv-components/dist/vue/base/pv-components-base.js +0 -1546
  118. package/pv-components/dist/vue/base/pv-components-base.umd.js +0 -1546
  119. package/pv-components/dist/vue/charts/pv-components-charts.d.ts +0 -491
  120. package/pv-components/dist/vue/charts/pv-components-charts.js +0 -259
  121. package/pv-components/dist/vue/charts/pv-components-charts.mjs +0 -121834
  122. package/pv-components/dist/vue/charts/pv-components-charts.umd.js +0 -259
  123. package/pv-components/dist/vue/tables/pv-components-tables.d.ts +0 -299
  124. package/pv-components/dist/vue/tables/pv-components-tables.js +0 -223
  125. package/pv-components/dist/vue/tables/pv-components-tables.mjs +0 -47028
  126. package/pv-components/dist/vue/tables/pv-components-tables.umd.js +0 -223
  127. package/pv-components/dist/vue/visualizations/pv-components-visualizations.js +0 -176
  128. package/pv-components/dist/vue/visualizations/pv-components-visualizations.umd.js +0 -176
@@ -0,0 +1,486 @@
1
+ import { watch as K, getCurrentScope as X, onScopeDispose as Y, computed as P, toValue as y, unref as ee, defineComponent as C, mergeModels as B, useTemplateRef as F, useModel as z, onMounted as L, createElementBlock as m, openBlock as f, withDirectives as te, createCommentVNode as h, createElementVNode as b, normalizeClass as T, vModelText as ne, toDisplayString as I, ref as H, getCurrentInstance as oe, normalizeStyle as se, createBlock as x, Fragment as Z, renderSlot as O, createVNode as N, mergeProps as le, defineCustomElement as ie } from "vue";
2
+ function re(e) {
3
+ return X() ? (Y(e), !0) : !1;
4
+ }
5
+ const J = typeof window < "u" && typeof document < "u";
6
+ typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
7
+ const ae = Object.prototype.toString, ue = (e) => ae.call(e) === "[object Object]", g = () => {
8
+ }, ce = /* @__PURE__ */ de();
9
+ function de() {
10
+ var e, t;
11
+ return J && ((e = window?.navigator) == null ? void 0 : e.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((t = window?.navigator) == null ? void 0 : t.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window?.navigator.userAgent));
12
+ }
13
+ function M(e) {
14
+ return Array.isArray(e) ? e : [e];
15
+ }
16
+ function pe(e, t, n) {
17
+ return K(
18
+ e,
19
+ t,
20
+ {
21
+ ...n,
22
+ immediate: !0
23
+ }
24
+ );
25
+ }
26
+ const R = J ? window : void 0;
27
+ function w(e) {
28
+ var t;
29
+ const n = y(e);
30
+ return (t = n?.$el) != null ? t : n;
31
+ }
32
+ function _(...e) {
33
+ const t = [], n = () => {
34
+ t.forEach((r) => r()), t.length = 0;
35
+ }, o = (r, l, a, p) => (r.addEventListener(l, a, p), () => r.removeEventListener(l, a, p)), s = P(() => {
36
+ const r = M(y(e[0])).filter((l) => l != null);
37
+ return r.every((l) => typeof l != "string") ? r : void 0;
38
+ }), d = pe(
39
+ () => {
40
+ var r, l;
41
+ return [
42
+ (l = (r = s.value) == null ? void 0 : r.map((a) => w(a))) != null ? l : [R].filter((a) => a != null),
43
+ M(y(s.value ? e[1] : e[0])),
44
+ M(ee(s.value ? e[2] : e[1])),
45
+ // @ts-expect-error - TypeScript gets the correct types, but somehow still complains
46
+ y(s.value ? e[3] : e[2])
47
+ ];
48
+ },
49
+ ([r, l, a, p]) => {
50
+ if (n(), !r?.length || !l?.length || !a?.length)
51
+ return;
52
+ const S = ue(p) ? { ...p } : p;
53
+ t.push(
54
+ ...r.flatMap(
55
+ (E) => l.flatMap(
56
+ (k) => a.map(($) => o(E, k, $, S))
57
+ )
58
+ )
59
+ );
60
+ },
61
+ { flush: "post" }
62
+ ), c = () => {
63
+ d(), n();
64
+ };
65
+ return re(n), c;
66
+ }
67
+ let W = !1;
68
+ function fe(e, t, n = {}) {
69
+ const { window: o = R, ignore: s = [], capture: d = !0, detectIframe: c = !1, controls: r = !1 } = n;
70
+ if (!o)
71
+ return r ? { stop: g, cancel: g, trigger: g } : g;
72
+ if (ce && !W) {
73
+ W = !0;
74
+ const i = { passive: !0 };
75
+ Array.from(o.document.body.children).forEach((u) => u.addEventListener("click", g, i)), o.document.documentElement.addEventListener("click", g, i);
76
+ }
77
+ let l = !0;
78
+ const a = (i) => y(s).some((u) => {
79
+ if (typeof u == "string")
80
+ return Array.from(o.document.querySelectorAll(u)).some((v) => v === i.target || i.composedPath().includes(v));
81
+ {
82
+ const v = w(u);
83
+ return v && (i.target === v || i.composedPath().includes(v));
84
+ }
85
+ });
86
+ function p(i) {
87
+ const u = y(i);
88
+ return u && u.$.subTree.shapeFlag === 16;
89
+ }
90
+ function S(i, u) {
91
+ const v = y(i), A = v.$.subTree && v.$.subTree.children;
92
+ return A == null || !Array.isArray(A) ? !1 : A.some((j) => j.el === u.target || u.composedPath().includes(j.el));
93
+ }
94
+ const E = (i) => {
95
+ const u = w(e);
96
+ if (i.target != null && !(!(u instanceof Element) && p(e) && S(e, i)) && !(!u || u === i.target || i.composedPath().includes(u))) {
97
+ if ("detail" in i && i.detail === 0 && (l = !a(i)), !l) {
98
+ l = !0;
99
+ return;
100
+ }
101
+ t(i);
102
+ }
103
+ };
104
+ let k = !1;
105
+ const $ = [
106
+ _(o, "click", (i) => {
107
+ k || (k = !0, setTimeout(() => {
108
+ k = !1;
109
+ }, 0), E(i));
110
+ }, { passive: !0, capture: d }),
111
+ _(o, "pointerdown", (i) => {
112
+ const u = w(e);
113
+ l = !a(i) && !!(u && !i.composedPath().includes(u));
114
+ }, { passive: !0 }),
115
+ c && _(o, "blur", (i) => {
116
+ setTimeout(() => {
117
+ var u;
118
+ const v = w(e);
119
+ ((u = o.document.activeElement) == null ? void 0 : u.tagName) === "IFRAME" && !v?.contains(o.document.activeElement) && t(i);
120
+ }, 0);
121
+ }, { passive: !0 })
122
+ ].filter(Boolean), D = () => $.forEach((i) => i());
123
+ return r ? {
124
+ stop: D,
125
+ cancel: () => {
126
+ l = !1;
127
+ },
128
+ trigger: (i) => {
129
+ l = !0, E(i), l = !1;
130
+ }
131
+ } : D;
132
+ }
133
+ function ve(e) {
134
+ return typeof e == "function" ? e : typeof e == "string" ? (t) => t.key === e : Array.isArray(e) ? (t) => e.includes(t.key) : () => !0;
135
+ }
136
+ function Q(...e) {
137
+ let t, n, o = {};
138
+ e.length === 3 ? (t = e[0], n = e[1], o = e[2]) : e.length === 2 ? typeof e[1] == "object" ? (t = !0, n = e[0], o = e[1]) : (t = e[0], n = e[1]) : (t = !0, n = e[0]);
139
+ const {
140
+ target: s = R,
141
+ eventName: d = "keydown",
142
+ passive: c = !1,
143
+ dedupe: r = !1
144
+ } = o, l = ve(t);
145
+ return _(s, d, (p) => {
146
+ p.repeat && y(r) || l(p) && n(p);
147
+ }, c);
148
+ }
149
+ const me = { class: "pv-relative" }, he = ["disabled", "placeholder"], ye = {
150
+ key: 0,
151
+ "data-testid": "pv-search-input-shortcut",
152
+ class: "pv-kbd"
153
+ }, q = "/", be = /* @__PURE__ */ C({
154
+ __name: "PvSearchInput",
155
+ props: /* @__PURE__ */ B({
156
+ placeholder: { default: "Search", type: String },
157
+ disabled: { type: Boolean, default: !1 },
158
+ displayShortcut: { type: Boolean }
159
+ }, {
160
+ modelValue: { required: !1, default: "" },
161
+ modelModifiers: {}
162
+ }),
163
+ emits: ["update:modelValue"],
164
+ setup(e, { expose: t }) {
165
+ const n = e, o = F("search-input"), s = z(e, "modelValue"), d = P(() => ({
166
+ "pv-input-search": !0,
167
+ "pv-full-width": !0,
168
+ "pv-input-padded-end": !0
169
+ }));
170
+ return L(() => {
171
+ n.displayShortcut && Q(q, (c) => {
172
+ const r = c.target, l = r instanceof HTMLInputElement || r instanceof HTMLTextAreaElement || (r?.isContentEditable ?? !1), a = document.activeElement === o.value;
173
+ (!l || a) && (a || (c.preventDefault(), o.value?.focus()));
174
+ });
175
+ }), t({ input: o }), (c, r) => (f(), m("div", me, [
176
+ te(b("input", {
177
+ ref: "search-input",
178
+ "onUpdate:modelValue": r[0] || (r[0] = (l) => s.value = l),
179
+ "data-testid": "pv-search-input",
180
+ type: "text",
181
+ disabled: e.disabled,
182
+ class: T(d.value),
183
+ placeholder: e.placeholder
184
+ }, null, 10, he), [
185
+ [ne, s.value]
186
+ ]),
187
+ e.displayShortcut ? (f(), m("kbd", ye, I(q))) : h("v-if", !0)
188
+ ]));
189
+ }
190
+ }), ge = [void 0, 10, 12, 20, 24, 32, 64], Se = ["xlink:href"], G = /* @__PURE__ */ C({
191
+ __name: "PvIcon",
192
+ props: {
193
+ name: { type: String },
194
+ size: { type: null }
195
+ },
196
+ setup(e) {
197
+ const t = e, n = H(!1), o = H(null), s = P(() => ({
198
+ "pv-icon": !0,
199
+ [`pv-icon-${t.size}`]: ge.includes(t.size)
200
+ })), d = P(() => n.value && o.value ? `${o.value}#${t.name}` : `#${t.name}`);
201
+ return globalThis.__PV_GLOBAL_SPRITE_PATH__ && (o.value = globalThis.__PV_GLOBAL_SPRITE_PATH__), L(() => {
202
+ const c = oe()?.root;
203
+ n.value = c && "isCE" in c && c.isCE;
204
+ }), (c, r) => (f(), m(
205
+ "svg",
206
+ {
207
+ "data-testid": "pv-icon",
208
+ "aria-hidden": "true",
209
+ class: T(s.value)
210
+ },
211
+ [
212
+ b("use", { "xlink:href": d.value }, null, 8, Se)
213
+ ],
214
+ 2
215
+ /* CLASS */
216
+ ));
217
+ }
218
+ }), ke = /* @__PURE__ */ C({
219
+ __name: "PvSpinner",
220
+ props: {
221
+ variant: { default: "primary", type: String },
222
+ size: { default: "lg", type: String }
223
+ },
224
+ setup(e) {
225
+ const t = {
226
+ xs: "0.75rem",
227
+ sm: "1rem",
228
+ md: "1.25rem",
229
+ lg: "1.5rem",
230
+ xl: "2rem"
231
+ }, n = {
232
+ primary: "pv-spinner",
233
+ dark: "pv-spinner-dark",
234
+ white: "pv-spinner-light"
235
+ };
236
+ return (o, s) => (f(), m(
237
+ "div",
238
+ {
239
+ "data-testid": "pv-spinner",
240
+ class: T(n[e.variant]),
241
+ style: se({ "--size": t[e.size] })
242
+ },
243
+ null,
244
+ 6
245
+ /* CLASS, STYLE */
246
+ ));
247
+ }
248
+ }), U = {
249
+ md: "pv-button-small",
250
+ lg: void 0,
251
+ xl: "pv-button-large"
252
+ }, we = (e) => e == null || !U.hasOwnProperty(e) ? null : U[e] || null, Pe = ["disabled"], Ce = {
253
+ key: 1,
254
+ "data-testid": "pv-button-label"
255
+ }, Ee = /* @__PURE__ */ C({
256
+ __name: "PvButton",
257
+ props: {
258
+ variant: { default: "primary", type: String },
259
+ disabled: { type: Boolean, default: !1 },
260
+ size: { default: "lg", type: String },
261
+ loading: { type: Boolean, default: !1 },
262
+ label: { type: String },
263
+ leftIcon: { type: String },
264
+ rightIcon: { type: String },
265
+ inverse: { type: Boolean, default: !1 }
266
+ },
267
+ setup(e) {
268
+ const t = ["ghost"], n = e, o = P(() => {
269
+ const s = [];
270
+ n.inverse && t.includes(n.variant) ? s.push(`pv-button-${n.variant}-inverse`) : s.push(`pv-button-${n.variant}`);
271
+ const d = we(n.size);
272
+ return d && s.push(d), s;
273
+ });
274
+ return (s, d) => (f(), m("button", {
275
+ type: "button",
276
+ class: T(o.value),
277
+ disabled: e.disabled,
278
+ "data-testid": "pv-button"
279
+ }, [
280
+ e.loading ? (f(), x(ke, {
281
+ key: 0,
282
+ size: "sm"
283
+ })) : (f(), m(
284
+ Z,
285
+ { key: 1 },
286
+ [
287
+ e.leftIcon ? (f(), x(G, {
288
+ key: 0,
289
+ name: e.leftIcon,
290
+ "data-testid": "pv-button-left-icon"
291
+ }, null, 8, ["name"])) : h("v-if", !0),
292
+ e.label ? (f(), m(
293
+ "span",
294
+ Ce,
295
+ I(e.label),
296
+ 1
297
+ /* TEXT */
298
+ )) : h("v-if", !0),
299
+ e.rightIcon ? (f(), x(G, {
300
+ key: 2,
301
+ name: e.rightIcon,
302
+ "data-testid": "pv-button-right-icon"
303
+ }, null, 8, ["name"])) : h("v-if", !0)
304
+ ],
305
+ 64
306
+ /* STABLE_FRAGMENT */
307
+ ))
308
+ ], 10, Pe));
309
+ }
310
+ }), _e = {
311
+ class: "pv-inset-squish-12 pv-border-bottom",
312
+ style: { "flex-shrink": "0" }
313
+ }, Ie = {
314
+ class: "pv-flex-vertical pv-stack-16",
315
+ style: { "--flex-align": "flex-start" }
316
+ }, Te = { class: "pv-flex pv-full-width" }, $e = { class: "pv-full-width pv-heading-3" }, Ae = {
317
+ key: 0,
318
+ class: "pv-text-body-md"
319
+ }, xe = {
320
+ key: 0,
321
+ class: "pv-inset-inline-16"
322
+ }, Oe = {
323
+ class: "pv-inset-inline-16",
324
+ style: { flex: "1", "overflow-y": "auto", "min-height": "0" }
325
+ }, Me = {
326
+ key: 0,
327
+ class: "pv-inset-squish-12 pv-border-top",
328
+ style: { "flex-shrink": "0" }
329
+ }, Ve = /* @__PURE__ */ C({
330
+ __name: "PvDrawer",
331
+ props: /* @__PURE__ */ B({
332
+ header: { type: String },
333
+ subheader: { type: String },
334
+ showSearchbar: { type: Boolean },
335
+ closeOnClickOutside: { type: Boolean, default: !1 },
336
+ searchInputProps: { type: Object }
337
+ }, {
338
+ searchInput: {
339
+ required: !1
340
+ },
341
+ searchInputModifiers: {},
342
+ modelValue: { type: Boolean, required: !0 },
343
+ modelModifiers: {}
344
+ }),
345
+ emits: /* @__PURE__ */ B(["click-outside"], ["update:searchInput", "update:modelValue"]),
346
+ setup(e, { emit: t }) {
347
+ const n = e, o = t, s = F("sidePanel"), d = z(e, "searchInput"), c = z(e, "modelValue");
348
+ L(() => {
349
+ c.value && s?.value?.setAttribute("open", "true"), n.closeOnClickOutside && r();
350
+ });
351
+ const r = () => {
352
+ s.value && fe(
353
+ s.value,
354
+ () => {
355
+ c.value && (o("click-outside"), l());
356
+ },
357
+ { ignore: [".pv-click-outside-ignore"] }
358
+ );
359
+ }, l = () => {
360
+ s?.value?.removeAttribute("open"), c.value = !1;
361
+ };
362
+ return K(
363
+ () => c.value,
364
+ () => {
365
+ c.value ? s?.value?.setAttribute("open", "true") : s?.value?.removeAttribute("open");
366
+ }
367
+ ), Q("Escape", () => {
368
+ s.value && c.value && l();
369
+ }), (a, p) => (f(), m(
370
+ "div",
371
+ {
372
+ class: "pv-drawer pv-surface",
373
+ ref_key: "sidePanel",
374
+ ref: s,
375
+ "data-testid": "pv-drawer",
376
+ style: { display: "flex", "flex-direction": "column", height: "100%" }
377
+ },
378
+ [
379
+ h(" Header Section (Fixed) "),
380
+ b("div", _e, [
381
+ a.$slots.header ? O(a.$slots, "header", { key: 0 }) : (f(), m(
382
+ Z,
383
+ { key: 1 },
384
+ [
385
+ b("div", Ie, [
386
+ b("div", Te, [
387
+ b(
388
+ "span",
389
+ $e,
390
+ I(e.header),
391
+ 1
392
+ /* TEXT */
393
+ ),
394
+ N(Ee, {
395
+ "left-icon": "close",
396
+ size: "md",
397
+ onClick: l,
398
+ "data-testid": "pv-side-panel-close-button",
399
+ variant: "ghost"
400
+ })
401
+ ]),
402
+ e.subheader ? (f(), m(
403
+ "span",
404
+ Ae,
405
+ I(e.subheader),
406
+ 1
407
+ /* TEXT */
408
+ )) : h("v-if", !0)
409
+ ]),
410
+ e.showSearchbar && d.value !== void 0 ? (f(), m("div", xe, [
411
+ N(be, le({
412
+ "data-testid": "pv-side-panel-input-search",
413
+ modelValue: d.value,
414
+ "onUpdate:modelValue": p[0] || (p[0] = (S) => d.value = S)
415
+ }, n.searchInputProps), null, 16, ["modelValue"])
416
+ ])) : h("v-if", !0)
417
+ ],
418
+ 64
419
+ /* STABLE_FRAGMENT */
420
+ ))
421
+ ]),
422
+ h(" Main Content Section (Scrollable) "),
423
+ b("div", Oe, [
424
+ O(a.$slots, "default")
425
+ ]),
426
+ h(" Footer Section (Fixed) "),
427
+ a.$slots.footer ? (f(), m("div", Me, [
428
+ O(a.$slots, "footer")
429
+ ])) : h("v-if", !0)
430
+ ],
431
+ 512
432
+ /* NEED_PATCH */
433
+ ));
434
+ }
435
+ }), Be = /* @__PURE__ */ new Set(["PvIcon", "PvPopoverMenu", "PvPopover"]);
436
+ function ze(e) {
437
+ return !Be.has(e);
438
+ }
439
+ function V(e, t) {
440
+ const n = document.querySelector('link[href*="' + t + '"]');
441
+ if (!e.shadowRoot)
442
+ return !1;
443
+ if (n && e.shadowRoot) {
444
+ const o = n.href;
445
+ if (e.shadowRoot.querySelector(`link[href="${o}"]`))
446
+ return;
447
+ const s = document.createElement("link");
448
+ return s.rel = "stylesheet", s.href = o, e.shadowRoot.prepend(s), !0;
449
+ }
450
+ return !1;
451
+ }
452
+ function Le(e) {
453
+ if (!V(e, "pit-viper-v2")) {
454
+ if (V(e, "pit-viper")) {
455
+ V(e, "pit-viper-v2-scoped");
456
+ return;
457
+ }
458
+ console.warn(
459
+ "No global styles found for Pit Viper components. Make sure to include pit-viper.css or pit-viper-v2.css in your project."
460
+ );
461
+ }
462
+ }
463
+ const Re = (e) => ({ shadowRoot: ze(e) });
464
+ function De(e) {
465
+ const t = e.__name || e.name;
466
+ if (!t)
467
+ throw new Error("Component must have a __name or name property");
468
+ const n = ie(e, Re(t));
469
+ class o extends n {
470
+ connectedCallback() {
471
+ super.connectedCallback?.(), Le(this);
472
+ }
473
+ }
474
+ return o;
475
+ }
476
+ function je(e) {
477
+ return e.replace(/([A-Z])/g, "-$1").toLowerCase().replace(/^-/, "");
478
+ }
479
+ function He(e) {
480
+ const t = e.__name || e.name;
481
+ if (!t)
482
+ throw new Error("Component must have a __name or name property");
483
+ const n = je(t), o = De(e);
484
+ customElements.get(n) || customElements.define(n, o);
485
+ }
486
+ He(Ve);