vlite3 1.4.31 → 1.4.33

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 (102) hide show
  1. package/components/Accordion/Accordion.vue.js +19 -16
  2. package/components/Accordion/AccordionContent.vue.js +2 -2
  3. package/components/Accordion/AccordionItem.vue.js +38 -36
  4. package/components/CategoryManager/CategoryManager.vue2.js +4 -3
  5. package/components/CategoryManager/CategoryNode.vue.js +30 -30
  6. package/components/CategoryMenu/CategoryMenu.vue.js +9 -11
  7. package/components/Chart/GanttChart.vue.d.ts +18 -2
  8. package/components/Chart/GanttChart.vue.js +1 -1
  9. package/components/Chart/GanttChart.vue2.js +1347 -604
  10. package/components/Chart/GanttChartConnectorRouting.d.ts +83 -0
  11. package/components/Chart/GanttChartConnectorRouting.js +405 -0
  12. package/components/Chart/GanttChartDateUtils.d.ts +38 -0
  13. package/components/Chart/GanttChartDateUtils.js +79 -0
  14. package/components/Chart/GanttChartDependencyUtils.d.ts +92 -0
  15. package/components/Chart/GanttChartDependencyUtils.js +109 -0
  16. package/components/Chart/GanttChartResizePreviewUtils.d.ts +52 -0
  17. package/components/Chart/GanttChartResizePreviewUtils.js +53 -0
  18. package/components/Chart/GanttChartTooltipUtils.d.ts +41 -0
  19. package/components/Chart/GanttChartTooltipUtils.js +63 -0
  20. package/components/Chart/index.d.ts +3 -1
  21. package/components/Chart/types.d.ts +92 -2
  22. package/components/Chart/types.js +8 -0
  23. package/components/ColorPicker/ColorIro.vue2.js +155 -0
  24. package/components/ColorPicker/ColorIro.vue3.js +2 -2
  25. package/components/ColorPicker/ColorPicker.vue.d.ts +5 -0
  26. package/components/ColorPicker/ColorPicker.vue.js +111 -65
  27. package/components/ColorPicker/constants.d.ts +2 -0
  28. package/components/ColorPicker/constants.js +4 -0
  29. package/components/ColorPicker/index.d.ts +1 -0
  30. package/components/CommandPalette/CommandPaletteContent.vue2.js +1 -1
  31. package/components/CommandPalette/{CommandPaletteItem.vue.js → CommandPaletteItem.vue2.js} +1 -1
  32. package/components/Dropdown/Dropdown.vue.js +100 -97
  33. package/components/Dropdown/DropdownMenu.vue.js +1 -1
  34. package/components/Form/AccordionView.vue.js +5 -220
  35. package/components/Form/AccordionView.vue3.js +250 -0
  36. package/components/Form/Form.vue.js +2 -2
  37. package/components/Form/Form.vue2.js +309 -280
  38. package/components/Form/FormField.vue.js +177 -197
  39. package/components/Form/FormFields.vue.js +1 -1
  40. package/components/Form/FormFields.vue2.js +60 -60
  41. package/components/Form/FormSkeleton.vue.js +50 -35
  42. package/components/Form/TableView.vue.js +59 -43
  43. package/components/Form/composables/useForm.js +159 -148
  44. package/components/Form/index.vue2.js +7 -7
  45. package/components/Form/utils/form.utils.d.ts +2 -0
  46. package/components/Form/utils/form.utils.js +17 -13
  47. package/components/GoogleMap.vue.d.ts +1 -1
  48. package/components/Kanban/Kanban.vue.d.ts +16 -2
  49. package/components/Kanban/Kanban.vue.js +2 -2
  50. package/components/Kanban/Kanban.vue2.js +150 -86
  51. package/components/Kanban/types.d.ts +37 -0
  52. package/components/NavbarCommandPalette.vue.js +1 -1
  53. package/components/PanZoomViewport/PanZoomViewport.vue.d.ts +189 -0
  54. package/components/PanZoomViewport/PanZoomViewport.vue.js +7 -0
  55. package/components/PanZoomViewport/PanZoomViewport.vue2.js +536 -0
  56. package/components/PanZoomViewport/index.d.ts +2 -0
  57. package/components/PanZoomViewport/types.d.ts +121 -0
  58. package/components/ScaleGenerator/ScaleGenerator.vue.d.ts +3 -0
  59. package/components/ScaleGenerator/ScaleGenerator.vue.js +5 -108
  60. package/components/ScaleGenerator/ScaleGenerator.vue2.js +143 -2
  61. package/components/ScaleGenerator/types.d.ts +2 -0
  62. package/components/Screen/ScreenFilter.vue.js +19 -18
  63. package/components/SeoProvider/SeoProvider.vue.d.ts +4 -1
  64. package/components/SeoProvider/SeoProvider.vue.js +39 -33
  65. package/components/SeoProvider/domAdapter.d.ts +1 -4
  66. package/components/SeoProvider/domAdapter.js +71 -58
  67. package/components/SeoProvider/index.d.ts +5 -2
  68. package/components/SeoProvider/normalizeSeo.d.ts +10 -49
  69. package/components/SeoProvider/normalizeSeo.js +246 -182
  70. package/components/SeoProvider/plainText.d.ts +8 -0
  71. package/components/SeoProvider/plainText.js +117 -0
  72. package/components/SeoProvider/seoUrl.d.ts +13 -0
  73. package/components/SeoProvider/seoUrl.js +25 -0
  74. package/components/SeoProvider/structuredData.d.ts +100 -0
  75. package/components/SeoProvider/structuredData.js +33 -0
  76. package/components/SeoProvider/types.d.ts +47 -109
  77. package/components/Tabes/Tabes.vue.js +1 -1
  78. package/components/Tabes/Tabes.vue2.js +215 -193
  79. package/components/Tabes/TabesMarkerGeometry.d.ts +34 -0
  80. package/components/Tabes/TabesMarkerGeometry.js +21 -0
  81. package/components/ThemeProvider/ThemeProvider.vue.d.ts +2 -0
  82. package/components/ThemeProvider/ThemeProvider.vue.js +29 -23
  83. package/components/ThemeProvider/index.d.ts +1 -1
  84. package/components/ThemeProvider/themeVars.d.ts +9 -13
  85. package/components/ThemeProvider/themeVars.js +173 -125
  86. package/components/ThemeProvider/types.d.ts +10 -0
  87. package/components/ToastNotification.vue.js +1 -1
  88. package/components/ToastNotification.vue2.js +3 -3
  89. package/components/index.d.ts +3 -2
  90. package/composables/useKeyStroke.d.ts +18 -0
  91. package/composables/useKeyStroke.js +103 -77
  92. package/composables/useTheme.js +1 -1
  93. package/index.d.ts +2 -0
  94. package/index.js +380 -350
  95. package/package.json +12 -4
  96. package/style.css +1 -1
  97. package/utils/environment.d.ts +29 -0
  98. package/utils/environment.js +4 -0
  99. package/utils/functions.js +14 -13
  100. package/components/ColorPicker/ColorIro.vue.js +0 -141
  101. package/components/Form/AccordionView.vue2.js +0 -4
  102. /package/components/Dropdown/{DropdownMenu.vue2.js → DropdownMenu.vue3.js} +0 -0
@@ -1,6 +1,6 @@
1
- import { defineComponent as D, ref as b, watch as k, openBlock as v, createElementBlock as h, normalizeClass as B, Fragment as w, renderList as P, createBlock as E, withCtx as i, renderSlot as m, mergeProps as c } from "vue";
2
- import $ from "./KanbanBoard.vue.js";
3
- const U = /* @__PURE__ */ D({
1
+ import { defineComponent as G, ref as K, watch as U, openBlock as C, createElementBlock as P, normalizeClass as j, Fragment as q, renderList as w, createBlock as z, withCtx as v, renderSlot as g, mergeProps as h } from "vue";
2
+ import F from "./KanbanBoard.vue.js";
3
+ const T = /* @__PURE__ */ G({
4
4
  __name: "Kanban",
5
5
  props: {
6
6
  columns: {},
@@ -17,109 +17,173 @@ const U = /* @__PURE__ */ D({
17
17
  draggableClass: {},
18
18
  ghostClass: {},
19
19
  class: { default: "h-full w-full" },
20
- isItemDisabled: {}
20
+ isItemDisabled: {},
21
+ onItemMoved: {}
21
22
  },
22
- emits: ["change", "move", "update:data", "item-moved"],
23
- setup(s, { emit: I }) {
24
- const o = s, d = I, r = b({}), u = b({});
25
- k(
26
- [() => o.data, () => o.rawData],
27
- ([e, n]) => {
28
- if (n && Array.isArray(n)) {
29
- const t = {};
30
- o.columns.forEach((a) => t[a.id] = []), n.forEach((a) => {
31
- const l = a[o.groupKey];
32
- t[l] ? t[l].push({ ...a }) : t[l] = [{ ...a }];
33
- }), Object.keys(t).forEach((a) => {
34
- t[a].sort((l, x) => (l[o.positionKey] || 0) - (x[o.positionKey] || 0));
35
- }), u.value = t;
36
- } else e && (u.value = { ...e });
23
+ emits: ["change", "move", "update:data", "item-move-failed"],
24
+ setup(l, { emit: B }) {
25
+ const s = l, c = B, u = K({}), d = K({}), p = K(!1);
26
+ U(
27
+ [() => s.data, () => s.rawData],
28
+ ([e, a]) => {
29
+ if (!p.value)
30
+ if (a && Array.isArray(a)) {
31
+ const o = {};
32
+ s.columns.forEach((t) => o[t.id] = []), a.forEach((t) => {
33
+ const i = t[s.groupKey];
34
+ o[i] ? o[i].push({ ...t }) : o[i] = [{ ...t }];
35
+ }), Object.keys(o).forEach((t) => {
36
+ o[t].sort((i, r) => (i[s.positionKey] || 0) - (r[s.positionKey] || 0));
37
+ }), d.value = o;
38
+ } else e && (d.value = { ...e });
37
39
  },
38
40
  { immediate: !0, deep: !0 }
39
41
  );
40
- const C = (e, n) => {
41
- let t = 0, a = 0;
42
- return n > 0 && (t = Number(e[n - 1]?.[o.positionKey]) || 0), n < e.length - 1 && (a = Number(e[n + 1]?.[o.positionKey]) || 0), t === 0 && a === 0 ? 1024 : t === 0 ? a / 2 : a === 0 ? t + 1024 : (t + a) / 2;
43
- }, g = (e, n) => {
44
- const t = u.value[e];
45
- if (!t) return;
46
- const a = t[n];
47
- if (!a) return;
48
- const l = C(t, n);
49
- a[o.positionKey] = l, a[o.groupKey] = e, d("item-moved", a[o.itemKey], e, l, a);
50
- }, f = (e) => o.columns.find((n) => n.id === e)?.disabled === !0, K = (e) => {
51
- if (d("change", e), e.type === "remove")
52
- r.value.remove = { columnId: e.columnId, event: e.event };
42
+ const A = (e, a) => {
43
+ let o = 0, t = 0;
44
+ return a > 0 && (o = Number(e[a - 1]?.[s.positionKey]) || 0), a < e.length - 1 && (t = Number(e[a + 1]?.[s.positionKey]) || 0), o === 0 && t === 0 ? 1024 : o === 0 ? t / 2 : t === 0 ? o + 1024 : (o + t) / 2;
45
+ }, E = (e) => {
46
+ p.value = !0;
47
+ try {
48
+ const a = s.itemKey, o = { ...d.value }, t = [...o[e.toColumnId] || []];
49
+ let i = t.find((n) => n?.[a] === e.itemId) || e.item;
50
+ const r = t.findIndex((n) => n?.[a] === e.itemId);
51
+ if (r >= 0)
52
+ i = t.splice(r, 1)[0];
53
+ else if (e.fromColumnId === e.toColumnId) {
54
+ const n = t.findIndex((m) => m?.[a] === e.itemId);
55
+ n >= 0 && (i = t.splice(n, 1)[0]);
56
+ }
57
+ if (!i) return;
58
+ if (i[s.positionKey] = e.previousPosition, i[s.groupKey] = e.previousGroupValue, e.fromColumnId === e.toColumnId) {
59
+ const n = Math.min(Math.max(e.oldIndex, 0), t.length);
60
+ t.splice(n, 0, i), o[e.toColumnId] = t;
61
+ } else {
62
+ o[e.toColumnId] = t;
63
+ const n = [...o[e.fromColumnId] || []], m = n.findIndex((f) => f?.[a] === e.itemId);
64
+ m >= 0 && n.splice(m, 1);
65
+ const I = Math.min(Math.max(e.oldIndex, 0), n.length);
66
+ n.splice(I, 0, i), o[e.fromColumnId] = n;
67
+ }
68
+ d.value = o, s.data && c("update:data", { ...o });
69
+ } finally {
70
+ queueMicrotask(() => {
71
+ p.value = !1;
72
+ });
73
+ }
74
+ }, k = async (e, a, o, t) => {
75
+ const i = d.value[e];
76
+ if (!i) return;
77
+ const r = i[a];
78
+ if (!r) return;
79
+ const n = r[s.itemKey], m = r[s.positionKey], I = r[s.groupKey], f = A(i, a);
80
+ r[s.positionKey] = f, r[s.groupKey] = e;
81
+ const y = () => E({
82
+ itemId: n,
83
+ item: r,
84
+ fromColumnId: o,
85
+ toColumnId: e,
86
+ oldIndex: t,
87
+ previousPosition: m,
88
+ previousGroupValue: I
89
+ }), V = {
90
+ fromColumnId: o,
91
+ oldIndex: t,
92
+ newIndex: a,
93
+ previousPosition: m,
94
+ revert: y
95
+ };
96
+ c("move", {
97
+ itemId: n,
98
+ item: r,
99
+ fromColumnId: o,
100
+ toColumnId: e,
101
+ oldIndex: t,
102
+ newIndex: a
103
+ });
104
+ const D = s.onItemMoved;
105
+ if (D)
106
+ try {
107
+ await D(n, e, f, r, V) === !1 && y();
108
+ } catch (M) {
109
+ y(), c("item-move-failed", {
110
+ itemId: n,
111
+ toColumnId: e,
112
+ fromColumnId: o,
113
+ newPosition: f,
114
+ item: r,
115
+ error: M
116
+ });
117
+ }
118
+ }, b = (e) => s.columns.find((a) => a.id === e)?.disabled === !0, $ = (e) => {
119
+ if (c("change", e), e.type === "remove")
120
+ u.value.remove = { columnId: e.columnId, event: e.event };
53
121
  else if (e.type === "add")
54
- r.value.add = { columnId: e.columnId, event: e.event };
122
+ u.value.add = { columnId: e.columnId, event: e.event };
55
123
  else if (e.type === "update") {
56
- if (f(e.columnId)) {
57
- r.value = {};
124
+ if (b(e.columnId)) {
125
+ u.value = {};
58
126
  return;
59
127
  }
60
- g(e.columnId, e.event.newIndex), d("move", {
61
- itemId: e.event.data?.[o.itemKey] || e.event.item?._underlying_vm_?.[o.itemKey],
62
- item: e.event.data,
63
- fromColumnId: e.columnId,
64
- toColumnId: e.columnId,
65
- oldIndex: e.event.oldIndex,
66
- newIndex: e.event.newIndex
67
- });
128
+ k(
129
+ e.columnId,
130
+ e.event.newIndex,
131
+ e.columnId,
132
+ e.event.oldIndex
133
+ );
68
134
  }
69
- if (r.value.remove && r.value.add) {
70
- const { remove: n, add: t } = r.value;
71
- if (f(n.columnId) || f(t.columnId)) {
72
- r.value = {};
135
+ if (u.value.remove && u.value.add) {
136
+ const { remove: a, add: o } = u.value;
137
+ if (b(a.columnId) || b(o.columnId)) {
138
+ u.value = {};
73
139
  return;
74
140
  }
75
- g(t.columnId, t.event.newIndex), d("move", {
76
- itemId: t.event.data?.[o.itemKey],
77
- item: t.event.data,
78
- fromColumnId: n.columnId,
79
- toColumnId: t.columnId,
80
- oldIndex: n.event.oldIndex,
81
- newIndex: t.event.newIndex
82
- }), r.value = {};
141
+ k(
142
+ o.columnId,
143
+ o.event.newIndex,
144
+ a.columnId,
145
+ a.event.oldIndex
146
+ ), u.value = {};
83
147
  }
84
148
  setTimeout(() => {
85
- r.value = {};
149
+ u.value = {};
86
150
  }, 100);
87
- }, p = (e, n) => {
88
- u.value[e] = n, o.data && d("update:data", { ...o.data, [e]: n });
89
- }, y = (e) => u.value[e] || [];
90
- return (e, n) => (v(), h("div", {
91
- class: B([
151
+ }, L = (e, a) => {
152
+ d.value[e] = a, s.data && c("update:data", { ...s.data, [e]: a });
153
+ }, N = (e) => d.value[e] || [];
154
+ return (e, a) => (C(), P("div", {
155
+ class: j([
92
156
  "flex gap-4 scrollbar-thin overflow-x-auto p-1 scrollbar-thin-x scrollable-container",
93
- o.class
157
+ s.class
94
158
  ])
95
159
  }, [
96
- (v(!0), h(w, null, P(s.columns, (t) => (v(), E($, {
97
- key: t.id,
98
- column: t,
99
- group: s.group,
100
- "item-key": s.itemKey,
101
- "load-data": s.loadData,
102
- "column-data": y(t.id),
103
- "board-class": s.boardClass,
104
- "header-class": s.headerClass,
105
- "body-class": s.bodyClass,
106
- "draggable-class": s.draggableClass,
107
- "ghost-class": s.ghostClass,
108
- "is-item-disabled": s.isItemDisabled,
109
- onChange: K,
110
- "onUpdate:columnData": (a) => p(t.id, a)
160
+ (C(!0), P(q, null, w(l.columns, (o) => (C(), z(F, {
161
+ key: o.id,
162
+ column: o,
163
+ group: l.group,
164
+ "item-key": l.itemKey,
165
+ "load-data": l.loadData,
166
+ "column-data": N(o.id),
167
+ "board-class": l.boardClass,
168
+ "header-class": l.headerClass,
169
+ "body-class": l.bodyClass,
170
+ "draggable-class": l.draggableClass,
171
+ "ghost-class": l.ghostClass,
172
+ "is-item-disabled": l.isItemDisabled,
173
+ onChange: $,
174
+ "onUpdate:columnData": (t) => L(o.id, t)
111
175
  }, {
112
- header: i((a) => [
113
- m(e.$slots, "column-header", c({ ref_for: !0 }, a), void 0, !0)
176
+ header: v((t) => [
177
+ g(e.$slots, "column-header", h({ ref_for: !0 }, t), void 0, !0)
114
178
  ]),
115
- "prepend-item": i((a) => [
116
- m(e.$slots, "prepend-item", c({ ref_for: !0 }, a), void 0, !0)
179
+ "prepend-item": v((t) => [
180
+ g(e.$slots, "prepend-item", h({ ref_for: !0 }, t), void 0, !0)
117
181
  ]),
118
- item: i((a) => [
119
- m(e.$slots, "item", c({ ref_for: !0 }, a), void 0, !0)
182
+ item: v((t) => [
183
+ g(e.$slots, "item", h({ ref_for: !0 }, t), void 0, !0)
120
184
  ]),
121
- "append-item": i((a) => [
122
- m(e.$slots, "append-item", c({ ref_for: !0 }, a), void 0, !0)
185
+ "append-item": v((t) => [
186
+ g(e.$slots, "append-item", h({ ref_for: !0 }, t), void 0, !0)
123
187
  ]),
124
188
  _: 3
125
189
  }, 8, ["column", "group", "item-key", "load-data", "column-data", "board-class", "header-class", "body-class", "draggable-class", "ghost-class", "is-item-disabled", "onUpdate:columnData"]))), 128))
@@ -127,5 +191,5 @@ const U = /* @__PURE__ */ D({
127
191
  }
128
192
  });
129
193
  export {
130
- U as default
194
+ T as default
131
195
  };
@@ -38,6 +38,36 @@ export interface KanbanMoveEvent {
38
38
  oldIndex: number;
39
39
  newIndex: number;
40
40
  }
41
+ /**
42
+ * Extra context passed as the 5th argument to `onItemMoved` / `@item-moved`.
43
+ * `revert()` restores the card to its pre-drop column and index immediately.
44
+ */
45
+ export interface KanbanItemMovedMeta {
46
+ fromColumnId: string | number;
47
+ oldIndex: number;
48
+ newIndex: number;
49
+ previousPosition: any;
50
+ /** Imperative escape hatch — usually unnecessary; the board auto-reverts on reject/false. */
51
+ revert: () => void;
52
+ }
53
+ /**
54
+ * Async move handler. Return a Promise that settles when the server confirms.
55
+ *
56
+ * - resolve / return `void` | `true` → keep the optimistic placement
57
+ * - return `false` → auto-revert the card to its previous column/index
58
+ * - reject / throw → auto-revert (same as `false`)
59
+ *
60
+ * Bound via `:on-item-moved` or `@item-moved` (both map to this prop).
61
+ */
62
+ export type KanbanItemMovedHandler = (itemId: string | number, toColumnId: string | number, newPosition: number, item: any, meta: KanbanItemMovedMeta) => void | boolean | Promise<void | boolean>;
63
+ export interface KanbanItemMoveFailedPayload {
64
+ itemId: string | number;
65
+ toColumnId: string | number;
66
+ fromColumnId: string | number;
67
+ newPosition: number;
68
+ item: any;
69
+ error: unknown;
70
+ }
41
71
  export interface KanbanProps {
42
72
  columns: KanbanColumn[];
43
73
  group?: string;
@@ -61,4 +91,11 @@ export interface KanbanProps {
61
91
  * Example: :is-item-disabled="(item) => item.locked === true"
62
92
  */
63
93
  isItemDisabled?: (item: any) => boolean;
94
+ /**
95
+ * Called after an optimistic drop. Await a mutation here — if it rejects
96
+ * (or returns `false`), the board automatically moves the card back.
97
+ *
98
+ * Use `@item-moved` or `:on-item-moved` — both bind this prop.
99
+ */
100
+ onItemMoved?: KanbanItemMovedHandler;
64
101
  }
@@ -3,7 +3,7 @@ import L from "./Icon.vue.js";
3
3
  import v from "./Modal.vue.js";
4
4
  import N from "./CommandPalette/CommandPaletteContent.vue.js";
5
5
  import { $t as U } from "../utils/i18n.js";
6
- /* empty css */
6
+ /* empty css */
7
7
  const V = { class: "block truncate -text-fs-1.5" }, S = { class: "ml-auto inline-flex items-center gap-0.5 px-1.5 py-0.5 rounded text-[10px] font-mono font-medium border border-border/80 bg-background text-muted-foreground ml-1" }, A = /* @__PURE__ */ x({
8
8
  __name: "NavbarCommandPalette",
9
9
  props: {
@@ -0,0 +1,189 @@
1
+ import { PanZoomViewportActionOptions, PanZoomViewportAlignment, PanZoomViewportChangeMeta, PanZoomViewportFitOptions, PanZoomViewportPanOptions, PanZoomViewportProps, PanZoomViewportSize, PanZoomViewportTransform, PanZoomViewportZoomAvailability, PanZoomViewportZoomOptions } from './types';
2
+ declare function __VLS_template(): {
3
+ attrs: Partial<{}>;
4
+ slots: {
5
+ default?(_: {
6
+ transform: PanZoomViewportTransform;
7
+ viewportSize: PanZoomViewportSize;
8
+ contentSize: PanZoomViewportSize;
9
+ ready: boolean;
10
+ panning: boolean;
11
+ canZoomIn: boolean;
12
+ canZoomOut: boolean;
13
+ }): any;
14
+ };
15
+ refs: {
16
+ viewportRef: HTMLDivElement;
17
+ contentRef: HTMLDivElement;
18
+ };
19
+ rootEl: HTMLDivElement;
20
+ };
21
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
22
+ declare const __VLS_component: import('vue').DefineComponent<PanZoomViewportProps, {
23
+ zoomIn: (options
24
+ /**
25
+ * Generic transform-only viewport for arbitrary slotted content.
26
+ *
27
+ * Gesture deltas arrive in visual/client pixels while the transform is written
28
+ * in this element's local CSS pixels. Every client-space operation therefore
29
+ * normalizes through getBoundingClientRect() / layout size so nested ancestor
30
+ * transforms and non-unity browser pixel ratios do not distort navigation.
31
+ *
32
+ * Performance (docs/6-performance.md): DOM nodes and replace-only geometry use
33
+ * shallowRef; translate/scale is painted directly onto the content layer each
34
+ * rAF; layout style objects keep stable identity when unchanged; both layers
35
+ * use will-change + contain; observers/frames/timers are cleared on unmount.
36
+ */
37
+ ?: PanZoomViewportZoomOptions) => void;
38
+ zoomOut: (options
39
+ /**
40
+ * Generic transform-only viewport for arbitrary slotted content.
41
+ *
42
+ * Gesture deltas arrive in visual/client pixels while the transform is written
43
+ * in this element's local CSS pixels. Every client-space operation therefore
44
+ * normalizes through getBoundingClientRect() / layout size so nested ancestor
45
+ * transforms and non-unity browser pixel ratios do not distort navigation.
46
+ *
47
+ * Performance (docs/6-performance.md): DOM nodes and replace-only geometry use
48
+ * shallowRef; translate/scale is painted directly onto the content layer each
49
+ * rAF; layout style objects keep stable identity when unchanged; both layers
50
+ * use will-change + contain; observers/frames/timers are cleared on unmount.
51
+ */
52
+ ?: PanZoomViewportZoomOptions) => void;
53
+ setScale: (scale: number, options
54
+ /**
55
+ * Generic transform-only viewport for arbitrary slotted content.
56
+ *
57
+ * Gesture deltas arrive in visual/client pixels while the transform is written
58
+ * in this element's local CSS pixels. Every client-space operation therefore
59
+ * normalizes through getBoundingClientRect() / layout size so nested ancestor
60
+ * transforms and non-unity browser pixel ratios do not distort navigation.
61
+ *
62
+ * Performance (docs/6-performance.md): DOM nodes and replace-only geometry use
63
+ * shallowRef; translate/scale is painted directly onto the content layer each
64
+ * rAF; layout style objects keep stable identity when unchanged; both layers
65
+ * use will-change + contain; observers/frames/timers are cleared on unmount.
66
+ */
67
+ ?: PanZoomViewportZoomOptions) => void;
68
+ setTransform: (transform: PanZoomViewportTransform, options
69
+ /**
70
+ * Generic transform-only viewport for arbitrary slotted content.
71
+ *
72
+ * Gesture deltas arrive in visual/client pixels while the transform is written
73
+ * in this element's local CSS pixels. Every client-space operation therefore
74
+ * normalizes through getBoundingClientRect() / layout size so nested ancestor
75
+ * transforms and non-unity browser pixel ratios do not distort navigation.
76
+ *
77
+ * Performance (docs/6-performance.md): DOM nodes and replace-only geometry use
78
+ * shallowRef; translate/scale is painted directly onto the content layer each
79
+ * rAF; layout style objects keep stable identity when unchanged; both layers
80
+ * use will-change + contain; observers/frames/timers are cleared on unmount.
81
+ */
82
+ ?: PanZoomViewportActionOptions) => void;
83
+ panBy: (deltaX: number, deltaY: number, options
84
+ /**
85
+ * Generic transform-only viewport for arbitrary slotted content.
86
+ *
87
+ * Gesture deltas arrive in visual/client pixels while the transform is written
88
+ * in this element's local CSS pixels. Every client-space operation therefore
89
+ * normalizes through getBoundingClientRect() / layout size so nested ancestor
90
+ * transforms and non-unity browser pixel ratios do not distort navigation.
91
+ *
92
+ * Performance (docs/6-performance.md): DOM nodes and replace-only geometry use
93
+ * shallowRef; translate/scale is painted directly onto the content layer each
94
+ * rAF; layout style objects keep stable identity when unchanged; both layers
95
+ * use will-change + contain; observers/frames/timers are cleared on unmount.
96
+ */
97
+ ?: PanZoomViewportPanOptions) => void;
98
+ reset: (options
99
+ /**
100
+ * Generic transform-only viewport for arbitrary slotted content.
101
+ *
102
+ * Gesture deltas arrive in visual/client pixels while the transform is written
103
+ * in this element's local CSS pixels. Every client-space operation therefore
104
+ * normalizes through getBoundingClientRect() / layout size so nested ancestor
105
+ * transforms and non-unity browser pixel ratios do not distort navigation.
106
+ *
107
+ * Performance (docs/6-performance.md): DOM nodes and replace-only geometry use
108
+ * shallowRef; translate/scale is painted directly onto the content layer each
109
+ * rAF; layout style objects keep stable identity when unchanged; both layers
110
+ * use will-change + contain; observers/frames/timers are cleared on unmount.
111
+ */
112
+ ?: PanZoomViewportActionOptions) => void;
113
+ fitToContent: (options
114
+ /**
115
+ * Generic transform-only viewport for arbitrary slotted content.
116
+ *
117
+ * Gesture deltas arrive in visual/client pixels while the transform is written
118
+ * in this element's local CSS pixels. Every client-space operation therefore
119
+ * normalizes through getBoundingClientRect() / layout size so nested ancestor
120
+ * transforms and non-unity browser pixel ratios do not distort navigation.
121
+ *
122
+ * Performance (docs/6-performance.md): DOM nodes and replace-only geometry use
123
+ * shallowRef; translate/scale is painted directly onto the content layer each
124
+ * rAF; layout style objects keep stable identity when unchanged; both layers
125
+ * use will-change + contain; observers/frames/timers are cleared on unmount.
126
+ */
127
+ ?: PanZoomViewportFitOptions) => boolean;
128
+ canZoomIn: () => boolean;
129
+ canZoomOut: () => boolean;
130
+ focus: () => void;
131
+ getViewportElement: () => HTMLElement | null;
132
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
133
+ change: (value: PanZoomViewportTransform, meta: PanZoomViewportChangeMeta) => any;
134
+ "update:modelValue": (value: PanZoomViewportTransform) => any;
135
+ "update:ready": (value: boolean) => any;
136
+ "update:viewportSize": (value: PanZoomViewportSize) => any;
137
+ "update:contentSize": (value: PanZoomViewportSize) => any;
138
+ "pan-start": () => any;
139
+ "pan-end": () => any;
140
+ "zoom-availability-change": (value: PanZoomViewportZoomAvailability) => any;
141
+ }, string, import('vue').PublicProps, Readonly<PanZoomViewportProps> & Readonly<{
142
+ onChange?: (value: PanZoomViewportTransform, meta: PanZoomViewportChangeMeta) => any;
143
+ "onUpdate:modelValue"?: (value: PanZoomViewportTransform) => any;
144
+ "onUpdate:ready"?: (value: boolean) => any;
145
+ "onUpdate:viewportSize"?: (value: PanZoomViewportSize) => any;
146
+ "onUpdate:contentSize"?: (value: PanZoomViewportSize) => any;
147
+ "onPan-start"?: () => any;
148
+ "onPan-end"?: () => any;
149
+ "onZoom-availability-change"?: (value: PanZoomViewportZoomAvailability) => any;
150
+ }>, {
151
+ disabled: boolean;
152
+ modelValue: PanZoomViewportTransform;
153
+ contentClass: string;
154
+ minScale: number;
155
+ maxScale: number;
156
+ keyboard: boolean;
157
+ zoomStep: number;
158
+ wheelZoomSpeed: number;
159
+ keyboardPanStep: number;
160
+ fitPadding: number;
161
+ fitMode: import('./types').PanZoomViewportFitMode;
162
+ fitAlignX: PanZoomViewportAlignment;
163
+ fitAlignY: PanZoomViewportAlignment;
164
+ initialFit: boolean;
165
+ autoFitOnResize: boolean;
166
+ zoomEnabled: boolean;
167
+ zoomInEnabled: boolean;
168
+ zoomOutEnabled: boolean;
169
+ panEnabled: boolean;
170
+ pointerPanEnabled: boolean;
171
+ wheelPanEnabled: boolean;
172
+ keyboardPanEnabled: boolean;
173
+ horizontalPanEnabled: boolean;
174
+ verticalPanEnabled: boolean;
175
+ panOnWheel: boolean;
176
+ wheelZoomMode: import('./types').PanZoomViewportWheelZoomMode;
177
+ panOnPrimaryDrag: boolean;
178
+ ariaLabel: string;
179
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
180
+ viewportRef: HTMLDivElement;
181
+ contentRef: HTMLDivElement;
182
+ }, HTMLDivElement>;
183
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
184
+ export default _default;
185
+ type __VLS_WithTemplateSlots<T, S> = T & {
186
+ new (): {
187
+ $slots: S;
188
+ };
189
+ };
@@ -0,0 +1,7 @@
1
+ import o from "./PanZoomViewport.vue2.js";
2
+ /* empty css */
3
+ import t from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const a = /* @__PURE__ */ t(o, [["__scopeId", "data-v-9dc36c93"]]);
5
+ export {
6
+ a as default
7
+ };