@quidgest/ui 0.16.3 → 0.16.4

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 (95) hide show
  1. package/dist/manifest/components.json +6 -0
  2. package/dist/ui.css +809 -31
  3. package/dist/ui.esm.js +5247 -4805
  4. package/dist/ui.js +24 -24
  5. package/dist/ui.min.css +2 -1
  6. package/dist/ui.min.js +959 -933
  7. package/dist/ui.scss +462 -39
  8. package/esm/_virtual/_plugin-vue_export-helper.js +9 -0
  9. package/esm/components/QCombobox/QCombobox.d.ts +14 -0
  10. package/esm/components/QCombobox/QCombobox.d.ts.map +1 -1
  11. package/esm/components/QCombobox/QCombobox.vue.js +9 -8
  12. package/esm/components/QCombobox/index.d.ts +7 -0
  13. package/esm/components/QCombobox/index.d.ts.map +1 -1
  14. package/esm/components/QDialog/QDialog.d.ts +4 -1
  15. package/esm/components/QDialog/QDialog.d.ts.map +1 -1
  16. package/esm/components/QDialog/QDialog.vue.js +115 -95
  17. package/esm/components/QDialog/index.d.ts +12 -1
  18. package/esm/components/QDialog/index.d.ts.map +1 -1
  19. package/esm/components/QDialog/types.d.ts +9 -0
  20. package/esm/components/QDialog/types.d.ts.map +1 -1
  21. package/esm/components/QDivider/QDivider.d.ts +21 -0
  22. package/esm/components/QDivider/QDivider.d.ts.map +1 -0
  23. package/esm/components/QDivider/QDivider.vue.js +57 -0
  24. package/esm/components/QDivider/QDivider.vue2.js +4 -0
  25. package/esm/components/QDivider/index.d.ts +25 -0
  26. package/esm/components/QDivider/index.d.ts.map +1 -0
  27. package/esm/components/QDivider/index.js +6 -0
  28. package/esm/components/QDivider/types.d.ts +11 -0
  29. package/esm/components/QDivider/types.d.ts.map +1 -0
  30. package/esm/components/QDropdownMenu/QDropdownMenuContent.d.ts +14 -0
  31. package/esm/components/QDropdownMenu/QDropdownMenuContent.d.ts.map +1 -1
  32. package/esm/components/QGrid/QCol.d.ts +19 -0
  33. package/esm/components/QGrid/QCol.d.ts.map +1 -0
  34. package/esm/components/QGrid/QCol.vue.js +46 -0
  35. package/esm/components/QGrid/QCol.vue2.js +4 -0
  36. package/esm/components/QGrid/QContainer.d.ts +19 -0
  37. package/esm/components/QGrid/QContainer.d.ts.map +1 -0
  38. package/esm/components/QGrid/QContainer.vue.js +24 -0
  39. package/esm/components/QGrid/QContainer.vue2.js +4 -0
  40. package/esm/components/QGrid/QRow.d.ts +23 -0
  41. package/esm/components/QGrid/QRow.d.ts.map +1 -0
  42. package/esm/components/QGrid/QRow.vue.js +36 -0
  43. package/esm/components/QGrid/QRow.vue2.js +4 -0
  44. package/esm/components/QGrid/QSpacer.d.ts +3 -0
  45. package/esm/components/QGrid/QSpacer.d.ts.map +1 -0
  46. package/esm/components/QGrid/QSpacer.vue.js +10 -0
  47. package/esm/components/QGrid/index.d.ts +66 -0
  48. package/esm/components/QGrid/index.d.ts.map +1 -0
  49. package/esm/components/QGrid/index.js +12 -0
  50. package/esm/components/QGrid/types.d.ts +47 -0
  51. package/esm/components/QGrid/types.d.ts.map +1 -0
  52. package/esm/components/QList/QList.d.ts +1 -0
  53. package/esm/components/QList/QList.d.ts.map +1 -1
  54. package/esm/components/QList/QList.vue.js +130 -120
  55. package/esm/components/QList/QListItem.d.ts.map +1 -1
  56. package/esm/components/QList/QListItem.vue.js +57 -43
  57. package/esm/components/QList/index.d.ts +7 -0
  58. package/esm/components/QList/index.d.ts.map +1 -1
  59. package/esm/components/QList/types.d.ts +8 -0
  60. package/esm/components/QList/types.d.ts.map +1 -1
  61. package/esm/components/QOverlay/QOverlay.d.ts.map +1 -1
  62. package/esm/components/QOverlay/QOverlay.vue.js +29 -27
  63. package/esm/components/QOverlay/index.d.ts +3 -0
  64. package/esm/components/QOverlay/index.d.ts.map +1 -1
  65. package/esm/components/QOverlay/types.d.ts +4 -0
  66. package/esm/components/QOverlay/types.d.ts.map +1 -1
  67. package/esm/components/QPasswordField/QPasswordFieldMeterOverlay.vue.js +8 -7
  68. package/esm/components/QSelect/QSelect.d.ts +14 -0
  69. package/esm/components/QSelect/QSelect.d.ts.map +1 -1
  70. package/esm/components/QSelect/QSelect.vue.js +1 -0
  71. package/esm/components/QSelect/index.d.ts +7 -0
  72. package/esm/components/QSelect/index.d.ts.map +1 -1
  73. package/esm/components/QSidebar/QSidebar.d.ts +39 -0
  74. package/esm/components/QSidebar/QSidebar.d.ts.map +1 -0
  75. package/esm/components/QSidebar/QSidebar.vue.js +155 -0
  76. package/esm/components/QSidebar/QSidebar.vue2.js +4 -0
  77. package/esm/components/QSidebar/QSidebarAnchor.d.ts +219 -0
  78. package/esm/components/QSidebar/QSidebarAnchor.d.ts.map +1 -0
  79. package/esm/components/QSidebar/QSidebarAnchor.vue.js +110 -0
  80. package/esm/components/QSidebar/QSidebarAnchor.vue2.js +4 -0
  81. package/esm/components/QSidebar/QSidebarPanel.d.ts +41 -0
  82. package/esm/components/QSidebar/QSidebarPanel.d.ts.map +1 -0
  83. package/esm/components/QSidebar/QSidebarPanel.vue.js +90 -0
  84. package/esm/components/QSidebar/QSidebarPanel.vue2.js +4 -0
  85. package/esm/components/QSidebar/index.d.ts +72 -0
  86. package/esm/components/QSidebar/index.d.ts.map +1 -0
  87. package/esm/components/QSidebar/index.js +6 -0
  88. package/esm/components/QSidebar/types.d.ts +63 -0
  89. package/esm/components/QSidebar/types.d.ts.map +1 -0
  90. package/esm/components/QToggleGroup/types.d.ts +1 -1
  91. package/esm/components/index.d.ts +3 -0
  92. package/esm/components/index.d.ts.map +1 -1
  93. package/esm/components/index.js +71 -62
  94. package/esm/index.d.ts +6 -0
  95. package/package.json +1 -1
@@ -0,0 +1,219 @@
1
+ import { QSidebarAnchorProps } from './types';
2
+ import { nextTick } from 'vue';
3
+ type __VLS_Props = QSidebarAnchorProps;
4
+ type __VLS_PublicProps = {
5
+ modelValue?: string;
6
+ } & __VLS_Props;
7
+ declare function __VLS_template(): {
8
+ attrs: Partial<{}>;
9
+ slots: Partial<Record<string, (_: {
10
+ item: import('./types').QSidebarAnchorItemProps;
11
+ }) => any>>;
12
+ refs: {
13
+ itemRefs: (({
14
+ $: import('vue').ComponentInternalInstance;
15
+ $data: {};
16
+ $props: {
17
+ readonly modelValue?: boolean | undefined;
18
+ readonly id?: string | undefined;
19
+ readonly class?: string | unknown[] | undefined;
20
+ readonly label?: string | undefined;
21
+ readonly variant?: import('../QButton/types').QButtonVariant | undefined;
22
+ readonly color?: string | undefined;
23
+ readonly disabled?: boolean | undefined;
24
+ readonly borderless?: boolean | undefined;
25
+ readonly elevated?: boolean | undefined;
26
+ readonly block?: boolean | undefined;
27
+ readonly loading?: boolean | undefined;
28
+ readonly size?: import('../QButton/types').QButtonSize | undefined;
29
+ readonly iconPos?: import('../QButton/types').QButtonIconPosition | undefined;
30
+ readonly pill?: boolean | undefined;
31
+ readonly "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
32
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
33
+ $attrs: {
34
+ [x: string]: unknown;
35
+ };
36
+ $refs: {
37
+ [x: string]: unknown;
38
+ };
39
+ $slots: Readonly<{
40
+ [name: string]: import('vue').Slot<any> | undefined;
41
+ }>;
42
+ $root: import('vue').ComponentPublicInstance | null;
43
+ $parent: import('vue').ComponentPublicInstance | null;
44
+ $host: Element | null;
45
+ $emit: (event: "update:modelValue", value: boolean) => void;
46
+ $el: HTMLButtonElement;
47
+ $options: import('vue').ComponentOptionsBase<Readonly<{
48
+ modelValue?: boolean;
49
+ } & import('../../types/component').QBaseComponentProps & {
50
+ label?: string;
51
+ variant?: import('../QButton/types').QButtonVariant;
52
+ color?: string;
53
+ disabled?: boolean;
54
+ borderless?: boolean;
55
+ elevated?: boolean;
56
+ block?: boolean;
57
+ loading?: boolean;
58
+ size?: import('../QButton/types').QButtonSize;
59
+ iconPos?: import('../QButton/types').QButtonIconPosition;
60
+ pill?: boolean;
61
+ }> & Readonly<{
62
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
63
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
64
+ "update:modelValue": (value: boolean) => any;
65
+ }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
66
+ beforeCreate?: (() => void) | (() => void)[];
67
+ created?: (() => void) | (() => void)[];
68
+ beforeMount?: (() => void) | (() => void)[];
69
+ mounted?: (() => void) | (() => void)[];
70
+ beforeUpdate?: (() => void) | (() => void)[];
71
+ updated?: (() => void) | (() => void)[];
72
+ activated?: (() => void) | (() => void)[];
73
+ deactivated?: (() => void) | (() => void)[];
74
+ beforeDestroy?: (() => void) | (() => void)[];
75
+ beforeUnmount?: (() => void) | (() => void)[];
76
+ destroyed?: (() => void) | (() => void)[];
77
+ unmounted?: (() => void) | (() => void)[];
78
+ renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
79
+ renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
80
+ errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
81
+ };
82
+ $forceUpdate: () => void;
83
+ $nextTick: typeof nextTick;
84
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
85
+ } & Readonly<{}> & Omit<Readonly<{
86
+ modelValue?: boolean;
87
+ } & import('../../types/component').QBaseComponentProps & {
88
+ label?: string;
89
+ variant?: import('../QButton/types').QButtonVariant;
90
+ color?: string;
91
+ disabled?: boolean;
92
+ borderless?: boolean;
93
+ elevated?: boolean;
94
+ block?: boolean;
95
+ loading?: boolean;
96
+ size?: import('../QButton/types').QButtonSize;
97
+ iconPos?: import('../QButton/types').QButtonIconPosition;
98
+ pill?: boolean;
99
+ }> & Readonly<{
100
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
101
+ }>, never> & import('vue').ShallowUnwrapRef<{}> & {} & import('vue').ComponentCustomProperties & {} & {
102
+ $slots: {
103
+ default?(_: {}): any;
104
+ };
105
+ }) | null)[];
106
+ };
107
+ rootEl: HTMLDivElement;
108
+ };
109
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
110
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
111
+ "update:modelValue": (value: string) => any;
112
+ } & {
113
+ "click:item": (id: string) => any;
114
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
115
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
116
+ "onClick:item"?: ((id: string) => any) | undefined;
117
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
118
+ itemRefs: (({
119
+ $: import('vue').ComponentInternalInstance;
120
+ $data: {};
121
+ $props: {
122
+ readonly modelValue?: boolean | undefined;
123
+ readonly id?: string | undefined;
124
+ readonly class?: string | unknown[] | undefined;
125
+ readonly label?: string | undefined;
126
+ readonly variant?: import('../QButton/types').QButtonVariant | undefined;
127
+ readonly color?: string | undefined;
128
+ readonly disabled?: boolean | undefined;
129
+ readonly borderless?: boolean | undefined;
130
+ readonly elevated?: boolean | undefined;
131
+ readonly block?: boolean | undefined;
132
+ readonly loading?: boolean | undefined;
133
+ readonly size?: import('../QButton/types').QButtonSize | undefined;
134
+ readonly iconPos?: import('../QButton/types').QButtonIconPosition | undefined;
135
+ readonly pill?: boolean | undefined;
136
+ readonly "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
137
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps;
138
+ $attrs: {
139
+ [x: string]: unknown;
140
+ };
141
+ $refs: {
142
+ [x: string]: unknown;
143
+ };
144
+ $slots: Readonly<{
145
+ [name: string]: import('vue').Slot<any> | undefined;
146
+ }>;
147
+ $root: import('vue').ComponentPublicInstance | null;
148
+ $parent: import('vue').ComponentPublicInstance | null;
149
+ $host: Element | null;
150
+ $emit: (event: "update:modelValue", value: boolean) => void;
151
+ $el: HTMLButtonElement;
152
+ $options: import('vue').ComponentOptionsBase<Readonly<{
153
+ modelValue?: boolean;
154
+ } & import('../../types/component').QBaseComponentProps & {
155
+ label?: string;
156
+ variant?: import('../QButton/types').QButtonVariant;
157
+ color?: string;
158
+ disabled?: boolean;
159
+ borderless?: boolean;
160
+ elevated?: boolean;
161
+ block?: boolean;
162
+ loading?: boolean;
163
+ size?: import('../QButton/types').QButtonSize;
164
+ iconPos?: import('../QButton/types').QButtonIconPosition;
165
+ pill?: boolean;
166
+ }> & Readonly<{
167
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
168
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
169
+ "update:modelValue": (value: boolean) => any;
170
+ }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
171
+ beforeCreate?: (() => void) | (() => void)[];
172
+ created?: (() => void) | (() => void)[];
173
+ beforeMount?: (() => void) | (() => void)[];
174
+ mounted?: (() => void) | (() => void)[];
175
+ beforeUpdate?: (() => void) | (() => void)[];
176
+ updated?: (() => void) | (() => void)[];
177
+ activated?: (() => void) | (() => void)[];
178
+ deactivated?: (() => void) | (() => void)[];
179
+ beforeDestroy?: (() => void) | (() => void)[];
180
+ beforeUnmount?: (() => void) | (() => void)[];
181
+ destroyed?: (() => void) | (() => void)[];
182
+ unmounted?: (() => void) | (() => void)[];
183
+ renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
184
+ renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
185
+ errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
186
+ };
187
+ $forceUpdate: () => void;
188
+ $nextTick: typeof nextTick;
189
+ $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
190
+ } & Readonly<{}> & Omit<Readonly<{
191
+ modelValue?: boolean;
192
+ } & import('../../types/component').QBaseComponentProps & {
193
+ label?: string;
194
+ variant?: import('../QButton/types').QButtonVariant;
195
+ color?: string;
196
+ disabled?: boolean;
197
+ borderless?: boolean;
198
+ elevated?: boolean;
199
+ block?: boolean;
200
+ loading?: boolean;
201
+ size?: import('../QButton/types').QButtonSize;
202
+ iconPos?: import('../QButton/types').QButtonIconPosition;
203
+ pill?: boolean;
204
+ }> & Readonly<{
205
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
206
+ }>, never> & import('vue').ShallowUnwrapRef<{}> & {} & import('vue').ComponentCustomProperties & {} & {
207
+ $slots: {
208
+ default?(_: {}): any;
209
+ };
210
+ }) | null)[];
211
+ }, HTMLDivElement>;
212
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
213
+ export default _default;
214
+ type __VLS_WithTemplateSlots<T, S> = T & {
215
+ new (): {
216
+ $slots: S;
217
+ };
218
+ };
219
+ //# sourceMappingURL=QSidebarAnchor.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QSidebarAnchor.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QSidebar/QSidebarAnchor.vue"],"names":[],"mappings":"AA8BA;AA+HC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAGlD,OAAO,EAAE,QAAQ,EAAc,MAAM,KAAK,CAAA;AAE1C,KAAK,WAAW,GAAG,mBAAmB,CAAC;AAmFxC,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,WAAW,CAAC;AAKhB,iBAAS,cAAc;WAoFT,OAAO,IAA6B;;;UAZoC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAyD09e,GAAG,8CAA8C,GAAG,yBAAyB,GAAG,6DAAmC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;EAxCxqf;AAeD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAwB8hf,GAAG,8CAA8C,GAAG,yBAAyB,GAAG,6DAAmC,GAAG;;;;;;;;;;;;;;;;;;;;;;kBAfvqf,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,110 @@
1
+ import { defineComponent as w, mergeModels as c, useModel as C, ref as d, watch as L, nextTick as q, createElementBlock as u, openBlock as s, normalizeStyle as f, createElementVNode as m, Fragment as I, renderList as V, createBlock as p, unref as h, withCtx as B, renderSlot as S, createCommentVNode as $, mergeProps as E } from "vue";
2
+ import { QIcon as M } from "../QIcon/index.js";
3
+ import { QToggle as Q } from "../QToggle/index.js";
4
+ const T = { class: "q-sidebar__items" }, W = /* @__PURE__ */ w({
5
+ __name: "QSidebarAnchor",
6
+ props: /* @__PURE__ */ c({
7
+ anchorWidth: {},
8
+ showLabels: { type: Boolean },
9
+ panels: {}
10
+ }, {
11
+ modelValue: {},
12
+ modelModifiers: {}
13
+ }),
14
+ emits: /* @__PURE__ */ c(["click:item"], ["update:modelValue"]),
15
+ setup(r, { emit: v }) {
16
+ const i = r, _ = v, o = C(r, "modelValue"), a = d({
17
+ height: "0",
18
+ transform: "translateY(0)",
19
+ opacity: "0",
20
+ transition: "transform 0.3s ease, height 0.3s ease, opacity 0.2s ease"
21
+ }), l = d([]);
22
+ function g(e) {
23
+ o.value = o.value === e ? void 0 : e, _("click:item", e);
24
+ }
25
+ function b() {
26
+ if (!o.value) {
27
+ a.value = {
28
+ ...a.value,
29
+ opacity: "0",
30
+ height: "0"
31
+ };
32
+ return;
33
+ }
34
+ const e = i.panels.findIndex((x) => x.id === o.value);
35
+ if (e === -1 || !l.value[e])
36
+ return;
37
+ const n = l.value[e].$el || l.value[e];
38
+ if (!n) return;
39
+ const k = e === l.value.length - 1 ? n.offsetHeight : n.offsetHeight - 1, y = n.offsetTop;
40
+ a.value = {
41
+ ...a.value,
42
+ height: `${k}px`,
43
+ transform: `translateY(${y}px)`,
44
+ opacity: "1"
45
+ };
46
+ }
47
+ return L(o, () => q(b), { immediate: !0 }), (e, n) => (s(), u(
48
+ "div",
49
+ {
50
+ class: "q-sidebar-anchor",
51
+ style: f({ width: i.anchorWidth + "px" })
52
+ },
53
+ [
54
+ m("div", T, [
55
+ m(
56
+ "div",
57
+ {
58
+ class: "q-sidebar__indicator",
59
+ style: f(a.value)
60
+ },
61
+ null,
62
+ 4
63
+ /* STYLE */
64
+ ),
65
+ (s(!0), u(
66
+ I,
67
+ null,
68
+ V(e.panels, (t) => (s(), p(h(Q), {
69
+ key: t.id,
70
+ ref_for: !0,
71
+ ref_key: "itemRefs",
72
+ ref: l,
73
+ "data-testid": "q-sidebar-panel-button",
74
+ "model-value": o.value === t.id,
75
+ label: i.showLabels ? t.title : void 0,
76
+ title: i.showLabels ? void 0 : t.title,
77
+ "icon-pos": "top",
78
+ class: "q-sidebar__item",
79
+ onClick: () => g(t.id)
80
+ }, {
81
+ default: B(() => [
82
+ S(e.$slots, t.id, { item: t }, () => [
83
+ t.icon ? (s(), p(
84
+ h(M),
85
+ E({
86
+ key: 0,
87
+ ref_for: !0
88
+ }, t.icon),
89
+ null,
90
+ 16
91
+ /* FULL_PROPS */
92
+ )) : $("v-if", !0)
93
+ ])
94
+ ]),
95
+ _: 2
96
+ /* DYNAMIC */
97
+ }, 1032, ["model-value", "label", "title", "onClick"]))),
98
+ 128
99
+ /* KEYED_FRAGMENT */
100
+ ))
101
+ ])
102
+ ],
103
+ 4
104
+ /* STYLE */
105
+ ));
106
+ }
107
+ });
108
+ export {
109
+ W as default
110
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./QSidebarAnchor.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,41 @@
1
+ import { QSidebarPanelProps } from './types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: {
5
+ header?(_: {}): any;
6
+ 'header.prepend'?(_: {}): any;
7
+ 'header.append'?(_: {}): any;
8
+ content?(_: {}): any;
9
+ footer?(_: {}): any;
10
+ };
11
+ refs: {
12
+ panelRef: HTMLDivElement;
13
+ };
14
+ rootEl: HTMLDivElement;
15
+ };
16
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
17
+ declare const __VLS_component: import('vue').DefineComponent<QSidebarPanelProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
18
+ resize: (width: number) => any;
19
+ "resize:start": () => any;
20
+ "resize:end": (finalWidth: number) => any;
21
+ }, string, import('vue').PublicProps, Readonly<QSidebarPanelProps> & Readonly<{
22
+ onResize?: ((width: number) => any) | undefined;
23
+ "onResize:start"?: (() => any) | undefined;
24
+ "onResize:end"?: ((finalWidth: number) => any) | undefined;
25
+ }>, {
26
+ showGrip: boolean;
27
+ initialWidth: import('./types').QSidebarPanelSize;
28
+ minWidth: import('./types').QSidebarPanelSize;
29
+ maxWidth: import('./types').QSidebarPanelSize;
30
+ resizePosition: "left" | "right";
31
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
32
+ panelRef: HTMLDivElement;
33
+ }, HTMLDivElement>;
34
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
35
+ export default _default;
36
+ type __VLS_WithTemplateSlots<T, S> = T & {
37
+ new (): {
38
+ $slots: S;
39
+ };
40
+ };
41
+ //# sourceMappingURL=QSidebarPanel.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QSidebarPanel.vue.d.ts","sourceRoot":"","sources":["../../../src/components/QSidebar/QSidebarPanel.vue"],"names":[],"mappings":"AAsCA;AAwIC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAuGlD,iBAAS,cAAc;WAsET,OAAO,IAA6B;;wBAftB,GAAG;kCACO,GAAG;iCACJ,GAAG;yBACX,GAAG;wBACJ,GAAG;;;;;;EAgB9B;AAWD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;kBAUnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,90 @@
1
+ import { defineComponent as y, useTemplateRef as q, ref as k, onUnmounted as R, createElementBlock as s, openBlock as i, createElementVNode as h, createCommentVNode as o, renderSlot as n, toDisplayString as W, normalizeClass as $ } from "vue";
2
+ const g = { class: "q-sidebar-panel__header" }, E = {
3
+ key: 0,
4
+ class: "q-sidebar-panel__title"
5
+ }, S = { class: "q-sidebar-panel__content" }, w = {
6
+ key: 0,
7
+ class: "q-sidebar-panel__footer"
8
+ }, B = {
9
+ key: 0,
10
+ class: "q-sidebar-panel__grip"
11
+ }, P = /* @__PURE__ */ y({
12
+ __name: "QSidebarPanel",
13
+ props: {
14
+ title: {},
15
+ icon: {},
16
+ resizable: { type: Boolean },
17
+ showGrip: { type: Boolean, default: !0 },
18
+ initialWidth: { default: "medium" },
19
+ minWidth: { default: "small" },
20
+ maxWidth: { default: "large" },
21
+ resizePosition: { default: "right" }
22
+ },
23
+ emits: ["resize", "resize:start", "resize:end"],
24
+ setup(v, { emit: _ }) {
25
+ const t = v, r = _, a = q("panelRef"), l = k(!1);
26
+ let d = 0, u = 0;
27
+ function z(e) {
28
+ t.resizable && (l.value = !0, d = e.clientX, u = a.value.clientWidth, document.addEventListener("mousemove", c), document.addEventListener("mouseup", p), document.body.style.userSelect = "none", r("resize:start"));
29
+ }
30
+ function c(e) {
31
+ if (!t.resizable || !l.value) return;
32
+ const f = t.resizePosition === "right" ? e.clientX - d : d - e.clientX, b = u + f;
33
+ r("resize", b);
34
+ }
35
+ function p() {
36
+ t.resizable && (l.value = !1, r("resize:end", a.value.clientWidth), m());
37
+ }
38
+ function m() {
39
+ t.resizable && (document.removeEventListener("mousemove", c), document.removeEventListener("mouseup", p), document.body.style.userSelect = "");
40
+ }
41
+ return R(m), (e, f) => (i(), s(
42
+ "div",
43
+ {
44
+ ref_key: "panelRef",
45
+ ref: a,
46
+ class: "q-sidebar-panel"
47
+ },
48
+ [
49
+ h("div", g, [
50
+ n(e.$slots, "header", {}, () => [
51
+ n(e.$slots, "header.prepend"),
52
+ t.title ? (i(), s(
53
+ "h3",
54
+ E,
55
+ W(t.title),
56
+ 1
57
+ /* TEXT */
58
+ )) : o("v-if", !0),
59
+ n(e.$slots, "header.append")
60
+ ])
61
+ ]),
62
+ h("div", S, [
63
+ n(e.$slots, "content")
64
+ ]),
65
+ e.$slots.footer ? (i(), s("div", w, [
66
+ n(e.$slots, "footer")
67
+ ])) : o("v-if", !0),
68
+ e.resizable ? (i(), s(
69
+ "div",
70
+ {
71
+ key: 1,
72
+ class: $(["q-sidebar-panel__handle", `q-sidebar-panel__handle--${e.resizePosition}`]),
73
+ "data-testid": "q-sidebar-panel-handle",
74
+ onMousedown: z
75
+ },
76
+ [
77
+ e.showGrip ? (i(), s("div", B)) : o("v-if", !0)
78
+ ],
79
+ 34
80
+ /* CLASS, NEED_HYDRATION */
81
+ )) : o("v-if", !0)
82
+ ],
83
+ 512
84
+ /* NEED_PATCH */
85
+ ));
86
+ }
87
+ });
88
+ export {
89
+ P as default
90
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./QSidebarPanel.vue.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,72 @@
1
+ declare const QSidebar: {
2
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{
3
+ modelValue?: string;
4
+ } & import('./types').QSidebarAnchorProps & {
5
+ position?: "left" | "right";
6
+ }> & Readonly<{
7
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
8
+ onResize?: ((width: number) => any) | undefined;
9
+ "onClick:item"?: ((id: string) => any) | undefined;
10
+ "onResize:start"?: (() => any) | undefined;
11
+ "onResize:end"?: ((finalWidth: number) => any) | undefined;
12
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
13
+ "update:modelValue": (value: string) => any;
14
+ } & {
15
+ resize: (width: number) => any;
16
+ "click:item": (id: string) => any;
17
+ "resize:start": () => any;
18
+ "resize:end": (finalWidth: number) => any;
19
+ }, import('vue').PublicProps, {
20
+ position: "left" | "right";
21
+ anchorWidth: number;
22
+ }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
23
+ P: {};
24
+ B: {};
25
+ D: {};
26
+ C: {};
27
+ M: {};
28
+ Defaults: {};
29
+ }, Readonly<{
30
+ modelValue?: string;
31
+ } & import('./types').QSidebarAnchorProps & {
32
+ position?: "left" | "right";
33
+ }> & Readonly<{
34
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
35
+ onResize?: ((width: number) => any) | undefined;
36
+ "onClick:item"?: ((id: string) => any) | undefined;
37
+ "onResize:start"?: (() => any) | undefined;
38
+ "onResize:end"?: ((finalWidth: number) => any) | undefined;
39
+ }>, {}, {}, {}, {}, {
40
+ position: "left" | "right";
41
+ anchorWidth: number;
42
+ }>;
43
+ __isFragment?: never;
44
+ __isTeleport?: never;
45
+ __isSuspense?: never;
46
+ } & import('vue').ComponentOptionsBase<Readonly<{
47
+ modelValue?: string;
48
+ } & import('./types').QSidebarAnchorProps & {
49
+ position?: "left" | "right";
50
+ }> & Readonly<{
51
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
52
+ onResize?: ((width: number) => any) | undefined;
53
+ "onClick:item"?: ((id: string) => any) | undefined;
54
+ "onResize:start"?: (() => any) | undefined;
55
+ "onResize:end"?: ((finalWidth: number) => any) | undefined;
56
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
57
+ "update:modelValue": (value: string) => any;
58
+ } & {
59
+ resize: (width: number) => any;
60
+ "click:item": (id: string) => any;
61
+ "resize:start": () => any;
62
+ "resize:end": (finalWidth: number) => any;
63
+ }, string, {
64
+ position: "left" | "right";
65
+ anchorWidth: number;
66
+ }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
67
+ $slots: Partial<Record<`anchor:${string}`, (_: {
68
+ item: import('./types').QSidebarAnchorItemProps;
69
+ }) => any>> & Partial<Record<`header.prepend:${string}`, (_: {}) => any>> & Partial<Record<`header:${string}`, (_: {}) => any>> & Partial<Record<`header.append:${string}`, (_: {}) => any>> & Partial<Record<`content:${string}`, (_: {}) => any>> & Partial<Record<`footer:${string}`, (_: {}) => any>>;
70
+ });
71
+ export { QSidebar };
72
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/QSidebar/index.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA6B,CAAA;AAG3C,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import o from "./QSidebar.vue.js";
2
+ import { setupPropsProxy as r } from "../../utils/setupPropsProxy.js";
3
+ const t = r(o);
4
+ export {
5
+ t as QSidebar
6
+ };
@@ -0,0 +1,63 @@
1
+ import { Icon } from '../QIcon';
2
+ /**
3
+ * Defines the base properties for a sidebar anchor item.
4
+ */
5
+ type QSidebarAnchorItemBaseProps = {
6
+ /** Unique identifier for the sidebar item. */
7
+ id: string;
8
+ /** Display title of the sidebar item. */
9
+ title: string;
10
+ /** Optional icon to be displayed alongside the title. */
11
+ icon?: Icon;
12
+ };
13
+ /**
14
+ * Predefined panel size options for the sidebar.
15
+ * These sizes help maintain a consistent and adjustable sidebar layout.
16
+ */
17
+ export type QSidebarPanelSize = 'small' | 'medium' | 'large';
18
+ /**
19
+ * Properties for a sidebar item, extending the base item properties,
20
+ * and adding options for resizability and panel dimensions.
21
+ */
22
+ export type QSidebarAnchorItemProps = QSidebarAnchorItemBaseProps & {
23
+ /** Whether the panel is resizable by the user. */
24
+ resizable?: boolean;
25
+ /** Whether to display the resize grip. Only applies if `resizable` is true. */
26
+ showGrip?: boolean;
27
+ /** Initial panel width using predefined size options. */
28
+ initialWidth?: QSidebarPanelSize;
29
+ /** Minimum allowed width for the panel (by predefined size). */
30
+ minWidth?: QSidebarPanelSize;
31
+ /** Maximum allowed width for the panel (by predefined size). */
32
+ maxWidth?: QSidebarPanelSize;
33
+ };
34
+ /**
35
+ * Extended panel properties used internally for rendering active panel views.
36
+ * Inherits from `QSidebarAnchorItemProps` with adjustments for resize position.
37
+ */
38
+ export type QSidebarPanelProps = Omit<QSidebarAnchorItemProps, 'id'> & {
39
+ /** Position of the resize grip relative to the panel. */
40
+ resizePosition?: 'left' | 'right';
41
+ };
42
+ /**
43
+ * Properties for configuring the anchor section of the sidebar.
44
+ * Includes the width of the anchor section and panel configurations.
45
+ */
46
+ export type QSidebarAnchorProps = {
47
+ /** Width of the anchor section (in pixels). */
48
+ anchorWidth?: number;
49
+ /** Whether to display labels alongside icons in anchor items. */
50
+ showLabels?: boolean;
51
+ /** List of panels that can be anchored in the sidebar. */
52
+ panels: QSidebarAnchorItemProps[];
53
+ };
54
+ /**
55
+ * Complete set of props for the `QSidebar` component, combining anchor section props
56
+ * with additional sidebar position configuration.
57
+ */
58
+ export type QSidebarProps = QSidebarAnchorProps & {
59
+ /** Position of the sidebar on the screen. Can be either 'left' or 'right'. */
60
+ position?: 'left' | 'right';
61
+ };
62
+ export {};
63
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/QSidebar/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAEpC;;GAEG;AACH,KAAK,2BAA2B,GAAG;IAClC,8CAA8C;IAC9C,EAAE,EAAE,MAAM,CAAA;IACV,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,yDAAyD;IACzD,IAAI,CAAC,EAAE,IAAI,CAAA;CACX,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE5D;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,2BAA2B,GAAG;IACnE,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,yDAAyD;IACzD,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,EAAE,iBAAiB,CAAA;CAC5B,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,GAAG;IACtE,yDAAyD;IACzD,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACjC,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG;IACjC,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,0DAA0D;IAC1D,MAAM,EAAE,uBAAuB,EAAE,CAAA;CACjC,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,mBAAmB,GAAG;IACjD,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAC3B,CAAA"}
@@ -6,7 +6,7 @@ export type QToggleGroupProps = QButtonGroupProps & {
6
6
  */
7
7
  multiple?: boolean;
8
8
  /**
9
- * Indicates if options can be deselected.
9
+ * Indicates if there should be at least one option selected.
10
10
  */
11
11
  required?: boolean;
12
12
  };
@@ -11,10 +11,12 @@ export * from './QCombobox';
11
11
  export * from './QDateTimePicker';
12
12
  export * from './QDialog';
13
13
  export * from './QDismissibleLayer';
14
+ export * from './QDivider';
14
15
  export * from './QDropdownMenu';
15
16
  export * from './QField';
16
17
  export * from './QFileUpload';
17
18
  export * from './QFocusTrap';
19
+ export * from './QGrid';
18
20
  export * from './QIcon';
19
21
  export * from './QInputGroup';
20
22
  export * from './QLabel';
@@ -27,6 +29,7 @@ export * from './QPopover';
27
29
  export * from './QPropertyList';
28
30
  export * from './QRadioGroup';
29
31
  export * from './QSelect';
32
+ export * from './QSidebar';
30
33
  export * from './QSkeletonLoader';
31
34
  export * from './QSpinnerLoader';
32
35
  export * from './QTextArea';