@vc-shell/framework 2.1.0-pr254.42766e0 → 2.1.0-pr255.4dc5c0d

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 (160) hide show
  1. package/dist/ai-agent/index.js +11 -10
  2. package/dist/ai-agent/index.js.map +1 -1
  3. package/dist/charts/index.d.ts +2 -0
  4. package/dist/charts/index.d.ts.map +1 -0
  5. package/dist/charts/index.js +9 -0
  6. package/dist/charts/index.js.map +1 -0
  7. package/dist/chunks/DashboardDonutChart.vue_vue_type_script_setup_true_lang-hTcM33bM.js +446 -0
  8. package/dist/chunks/DashboardDonutChart.vue_vue_type_script_setup_true_lang-hTcM33bM.js.map +1 -0
  9. package/dist/chunks/VcAiAgentPanel.vue_vue_type_script_setup_true_lang-Cx8_DCu_.js +1124 -0
  10. package/dist/chunks/VcAiAgentPanel.vue_vue_type_script_setup_true_lang-Cx8_DCu_.js.map +1 -0
  11. package/dist/chunks/{VcAiAgentPanel.vue_vue_type_style_index_0_lang-D077_c8I.js → VcAiAgentPanel.vue_vue_type_style_index_0_lang-D2KmNhhl.js} +834 -1907
  12. package/dist/chunks/VcAiAgentPanel.vue_vue_type_style_index_0_lang-D2KmNhhl.js.map +1 -0
  13. package/dist/chunks/VcTableAdapter.vue_vue_type_script_setup_true_lang-BL653h9q.js +18282 -0
  14. package/dist/chunks/VcTableAdapter.vue_vue_type_script_setup_true_lang-BL653h9q.js.map +1 -0
  15. package/dist/chunks/VcTableAdapter.vue_vue_type_style_index_0_lang-CtkZR5a1.js +4227 -0
  16. package/dist/chunks/VcTableAdapter.vue_vue_type_style_index_0_lang-CtkZR5a1.js.map +1 -0
  17. package/dist/chunks/dashboard-feed-row.vue_vue_type_script_setup_true_lang-Cs-yidUE.js +641 -0
  18. package/dist/chunks/dashboard-feed-row.vue_vue_type_script_setup_true_lang-Cs-yidUE.js.map +1 -0
  19. package/dist/chunks/{index-DELXU1qy.js → index-CvSe3hjU.js} +11 -10
  20. package/dist/chunks/{index-DELXU1qy.js.map → index-CvSe3hjU.js.map} +1 -1
  21. package/dist/chunks/vendor-js-beautify-D-6mWVv0.js +1784 -0
  22. package/dist/chunks/vendor-js-beautify-D-6mWVv0.js.map +1 -0
  23. package/dist/chunks/{vendor-vueuse-core-CEdpDfzx.js → vendor-vueuse-core-BYWoPpF_.js} +5 -5
  24. package/dist/chunks/{vendor-vueuse-core-CEdpDfzx.js.map → vendor-vueuse-core-BYWoPpF_.js.map} +1 -1
  25. package/dist/core/blade-navigation/bladeConfigRegistry.d.ts +0 -11
  26. package/dist/core/blade-navigation/bladeConfigRegistry.d.ts.map +1 -1
  27. package/dist/core/blade-navigation/descriptorFactory.d.ts +2 -0
  28. package/dist/core/blade-navigation/descriptorFactory.d.ts.map +1 -0
  29. package/dist/core/blade-navigation/singletons.d.ts +0 -2
  30. package/dist/core/blade-navigation/singletons.d.ts.map +1 -1
  31. package/dist/core/blade-navigation/types/index.d.ts +12 -6
  32. package/dist/core/blade-navigation/types/index.d.ts.map +1 -1
  33. package/dist/core/blade-navigation/useBladeMessaging.d.ts +1 -17
  34. package/dist/core/blade-navigation/useBladeMessaging.d.ts.map +1 -1
  35. package/dist/core/blade-navigation/useBladeStack.d.ts +1 -18
  36. package/dist/core/blade-navigation/useBladeStack.d.ts.map +1 -1
  37. package/dist/core/composables/createServiceRegistry.d.ts +42 -0
  38. package/dist/core/composables/createServiceRegistry.d.ts.map +1 -0
  39. package/dist/core/composables/useBladeNavigationAdapter/index.d.ts +0 -5
  40. package/dist/core/composables/useBladeNavigationAdapter/index.d.ts.map +1 -1
  41. package/dist/core/composables/useDashboard/index.d.ts.map +1 -1
  42. package/dist/core/composables/useEnvironmentName/index.d.ts +0 -5
  43. package/dist/core/composables/useEnvironmentName/index.d.ts.map +1 -1
  44. package/dist/core/composables/useMenuService/index.d.ts.map +1 -1
  45. package/dist/core/composables/usePopup/index.d.ts.map +1 -1
  46. package/dist/core/composables/usePopup/preset-registry.d.ts +0 -2
  47. package/dist/core/composables/usePopup/preset-registry.d.ts.map +1 -1
  48. package/dist/core/composables/usePopup/singleton.d.ts +0 -2
  49. package/dist/core/composables/usePopup/singleton.d.ts.map +1 -1
  50. package/dist/core/composables/useSettings/index.d.ts.map +1 -1
  51. package/dist/core/composables/useSettingsMenu/index.d.ts.map +1 -1
  52. package/dist/core/composables/useSlowNetworkDetection/index.d.ts +0 -2
  53. package/dist/core/composables/useSlowNetworkDetection/index.d.ts.map +1 -1
  54. package/dist/core/composables/useTheme/index.d.ts.map +1 -1
  55. package/dist/core/composables/useToolbar/index.d.ts.map +1 -1
  56. package/dist/core/composables/useUser/index.d.ts +0 -2
  57. package/dist/core/composables/useUser/index.d.ts.map +1 -1
  58. package/dist/core/interceptors/index.d.ts.map +1 -1
  59. package/dist/core/notifications/notification.d.ts.map +1 -1
  60. package/dist/core/plugins/ai-agent/constants.d.ts.map +1 -1
  61. package/dist/core/plugins/ai-agent/services/message-transport.d.ts.map +1 -1
  62. package/dist/core/plugins/ai-agent/types.d.ts +12 -1
  63. package/dist/core/plugins/ai-agent/types.d.ts.map +1 -1
  64. package/dist/core/plugins/permissions/index.d.ts.map +1 -1
  65. package/dist/core/plugins/validation/rules.d.ts.map +1 -1
  66. package/dist/core/services/_internal/createGenericItemRegistry.d.ts +35 -0
  67. package/dist/core/services/_internal/createGenericItemRegistry.d.ts.map +1 -0
  68. package/dist/core/services/_internal/index.d.ts +1 -0
  69. package/dist/core/services/_internal/index.d.ts.map +1 -1
  70. package/dist/core/services/app-bar-menu-service.d.ts.map +1 -1
  71. package/dist/core/services/app-bar-mobile-buttons-service.d.ts +2 -0
  72. package/dist/core/services/app-bar-mobile-buttons-service.d.ts.map +1 -1
  73. package/dist/core/services/settings-menu-service.d.ts.map +1 -1
  74. package/dist/core/utilities/backendRegistry.d.ts +38 -0
  75. package/dist/core/utilities/backendRegistry.d.ts.map +1 -0
  76. package/dist/core/utilities/index.d.ts +1 -0
  77. package/dist/core/utilities/index.d.ts.map +1 -1
  78. package/dist/dashboard/index.d.ts +3 -0
  79. package/dist/dashboard/index.d.ts.map +1 -0
  80. package/dist/dashboard/index.js +16 -0
  81. package/dist/dashboard/index.js.map +1 -0
  82. package/dist/framework.js +2149 -3060
  83. package/dist/framework.js.map +1 -1
  84. package/dist/index.css +2 -2
  85. package/dist/index.d.ts +1 -1
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/locales/de.js +91 -3
  88. package/dist/locales/en.js +91 -3
  89. package/dist/locales/en.json +91 -3
  90. package/dist/locales/types.d.ts +88 -0
  91. package/dist/shell/_internal/blade-navigation/components/vc-blade-slot/vc-blade-slot.vue.d.ts.map +1 -1
  92. package/dist/shell/_internal/notifications/components/notification-container/computeToastOffsets.d.ts +33 -0
  93. package/dist/shell/_internal/notifications/components/notification-container/computeToastOffsets.d.ts.map +1 -0
  94. package/dist/shell/_internal/notifications/components/notification-container/index.d.ts.map +1 -1
  95. package/dist/shell/_internal/notifications/components/notification-container/useToastStack.d.ts +17 -0
  96. package/dist/shell/_internal/notifications/components/notification-container/useToastStack.d.ts.map +1 -0
  97. package/dist/shell/auth/LoginPage/components/login/Login.vue.d.ts.map +1 -1
  98. package/dist/shell/auth/utils.d.ts +6 -2
  99. package/dist/shell/auth/utils.d.ts.map +1 -1
  100. package/dist/tailwind.config.d.ts.map +1 -1
  101. package/dist/tsconfig.tsbuildinfo +1 -1
  102. package/dist/ui/components/atoms/vc-container/vc-container.vue.d.ts.map +1 -1
  103. package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts +8 -0
  104. package/dist/ui/components/atoms/vc-video/vc-video.vue.d.ts.map +1 -1
  105. package/dist/ui/components/molecules/vc-breadcrumbs/vc-breadcrumbs.vue.d.ts.map +1 -1
  106. package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.vue.d.ts +2 -0
  107. package/dist/ui/components/molecules/vc-checkbox/vc-checkbox.vue.d.ts.map +1 -1
  108. package/dist/ui/components/molecules/vc-color-input/vc-color-input.vue.d.ts.map +1 -1
  109. package/dist/ui/components/molecules/vc-dropdown/vc-dropdown.vue.d.ts +3 -0
  110. package/dist/ui/components/molecules/vc-dropdown/vc-dropdown.vue.d.ts.map +1 -1
  111. package/dist/ui/components/molecules/vc-dropdown-panel/vc-dropdown-panel.vue.d.ts.map +1 -1
  112. package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-custom-button.vue.d.ts.map +1 -1
  113. package/dist/ui/components/molecules/vc-editor/_internal/vc-editor-font-selector.vue.d.ts.map +1 -1
  114. package/dist/ui/components/molecules/vc-editor/vc-editor.vue.d.ts.map +1 -1
  115. package/dist/ui/components/molecules/vc-file-upload/vc-file-upload.vue.d.ts.map +1 -1
  116. package/dist/ui/components/molecules/vc-input-currency/vc-input-currency.vue.d.ts.map +1 -1
  117. package/dist/ui/components/molecules/vc-input-dropdown/vc-input-dropdown.vue.d.ts.map +1 -1
  118. package/dist/ui/components/molecules/vc-radio-button/vc-radio-button.vue.d.ts +2 -0
  119. package/dist/ui/components/molecules/vc-radio-button/vc-radio-button.vue.d.ts.map +1 -1
  120. package/dist/ui/components/molecules/vc-switch/vc-switch.vue.d.ts +2 -0
  121. package/dist/ui/components/molecules/vc-switch/vc-switch.vue.d.ts.map +1 -1
  122. package/dist/ui/components/molecules/vc-toast/vc-toast.vue.d.ts.map +1 -1
  123. package/dist/ui/components/organisms/vc-app/_internal/app-bar/components/AppBarMobileActions.vue.d.ts.map +1 -1
  124. package/dist/ui/components/organisms/vc-app/_internal/layouts/DesktopLayout.vue.d.ts.map +1 -1
  125. package/dist/ui/components/organisms/vc-app/_internal/sidebar/SidebarHeader.vue.d.ts.map +1 -1
  126. package/dist/ui/components/organisms/vc-blade/_internal/BladeStatusBanners.vue.d.ts.map +1 -1
  127. package/dist/ui/components/organisms/vc-blade/vc-blade.vue.d.ts.map +1 -1
  128. package/dist/ui/components/organisms/vc-data-table/VcDataTable.vue.d.ts.map +1 -1
  129. package/dist/ui/components/organisms/vc-data-table/components/ColumnFilter.vue.d.ts.map +1 -1
  130. package/dist/ui/components/organisms/vc-data-table/components/DataTableBody.vue.d.ts.map +1 -1
  131. package/dist/ui/components/organisms/vc-data-table/components/DataTableCellRenderer.vue.d.ts.map +1 -1
  132. package/dist/ui/components/organisms/vc-data-table/components/DataTableHeader.vue.d.ts.map +1 -1
  133. package/dist/ui/components/organisms/vc-data-table/components/DataTableRow.vue.d.ts.map +1 -1
  134. package/dist/ui/components/organisms/vc-data-table/components/TableAddRowButton.vue.d.ts.map +1 -1
  135. package/dist/ui/components/organisms/vc-data-table/components/TableCheckbox.vue.d.ts +5 -1
  136. package/dist/ui/components/organisms/vc-data-table/components/TableCheckbox.vue.d.ts.map +1 -1
  137. package/dist/ui/components/organisms/vc-data-table/components/TableGroupRow.vue.d.ts.map +1 -1
  138. package/dist/ui/components/organisms/vc-data-table/components/TableRow.vue.d.ts.map +1 -1
  139. package/dist/ui/components/organisms/vc-data-table/components/TableRowActions.vue.d.ts.map +1 -1
  140. package/dist/ui/components/organisms/vc-data-table/composables/createTableSelectionFacade.d.ts +50 -0
  141. package/dist/ui/components/organisms/vc-data-table/composables/createTableSelectionFacade.d.ts.map +1 -0
  142. package/dist/ui/components/organisms/vc-data-table/composables/index.d.ts +2 -0
  143. package/dist/ui/components/organisms/vc-data-table/composables/index.d.ts.map +1 -1
  144. package/dist/ui/components/organisms/vc-data-table/composables/useDataTableOrchestrator.d.ts +0 -248
  145. package/dist/ui/components/organisms/vc-data-table/composables/useDataTableOrchestrator.d.ts.map +1 -1
  146. package/dist/ui/components/organisms/vc-data-table/composables/useDataTableState.d.ts.map +1 -1
  147. package/dist/ui/components/organisms/vc-data-table/composables/useTableColumnsResize.d.ts +3 -0
  148. package/dist/ui/components/organisms/vc-data-table/composables/useTableColumnsResize.d.ts.map +1 -1
  149. package/dist/ui/components/organisms/vc-data-table/vc-data-table.stories.helpers.d.ts +32 -0
  150. package/dist/ui/components/organisms/vc-data-table/vc-data-table.stories.helpers.d.ts.map +1 -0
  151. package/dist/ui/components/organisms/vc-gallery/_internal/vc-gallery-filmstrip/vc-gallery-filmstrip.vue.d.ts.map +1 -1
  152. package/dist/ui/index.js +142 -141
  153. package/dist/ui/index.js.map +1 -1
  154. package/package.json +19 -7
  155. package/tailwind.config.ts +0 -6
  156. package/dist/chunks/VcAiAgentPanel.vue_vue_type_style_index_0_lang-D077_c8I.js.map +0 -1
  157. package/dist/chunks/VcTableAdapter.vue_vue_type_style_index_0_lang-BnbquDGw.js +0 -22319
  158. package/dist/chunks/VcTableAdapter.vue_vue_type_style_index_0_lang-BnbquDGw.js.map +0 -1
  159. package/dist/chunks/vendor-prettier-2Sf6a5jB.js +0 -5309
  160. package/dist/chunks/vendor-prettier-2Sf6a5jB.js.map +0 -1
@@ -0,0 +1,641 @@
1
+ import { shallowRef as Q, ref as $, watch as V, nextTick as Y, onUnmounted as X, openBlock as u, createElementBlock as v, createStaticVNode as Z, defineComponent as L, inject as ee, computed as j, onMounted as te, createBlock as A, withCtx as ae, unref as R, Fragment as q, renderList as K, normalizeStyle as oe, createElementVNode as h, createCommentVNode as x, resolveDynamicComponent as se, mergeProps as ie, toDisplayString as T, renderSlot as k, createVNode as re, withDirectives as ne, normalizeClass as de } from "vue";
2
+ import { s as le, t as ce, v as ue, l as me } from "./VcTableAdapter.vue_vue_type_style_index_0_lang-CtkZR5a1.js";
3
+ import { G as pe } from "./vendor-gridstack-Beau2jQ7.js";
4
+ import { M as ve, _ as fe } from "./VcAiAgentPanel.vue_vue_type_style_index_0_lang-D2KmNhhl.js";
5
+ import "vee-validate";
6
+ import "./vendor-tiptap-starter-kit-ny-AoaO_.js";
7
+ import "./vendor-tiptap-extension-underline-Bo1pXXDN.js";
8
+ import "./vendor-tiptap-extension-table-QVjcLO_H.js";
9
+ import "./vendor-tiptap-extension-link-CETrc0Mo.js";
10
+ import "./vendor-tiptap-extension-image-BpqLcXdw.js";
11
+ import "./vendor-tiptap-extensions-D7eaegpB.js";
12
+ import "./vendor-tiptap-extension-text-style-Bc6nvmn0.js";
13
+ import "./vendor-js-beautify-D-6mWVv0.js";
14
+ import "./vendor-dompurify-DpIUMBYC.js";
15
+ import "./vendor-vuepic-vue-datepicker-CaZ_qpJp.js";
16
+ import "./vendor-swiper-BgqGfw3Y.js";
17
+ import "vue-router";
18
+ import "../assets/d5f9664ebbfb104b.svg";
19
+ import "../assets/4e43c74354534fb3.svg";
20
+ import "../assets/e98196a9f8dcb2f0.svg";
21
+ import "../assets/74ed5f8a78e71106.svg";
22
+ import "../assets/1ea01de36eb5491b.svg";
23
+ import "../assets/d5a5b8630120073d.svg";
24
+ import "../assets/6798e4dd4add9b48.svg";
25
+ import "../assets/2d4e6190eec72737.svg";
26
+ import "../assets/9392bf1d591e1abb.svg";
27
+ import "../assets/204eaf512fde2023.svg";
28
+ import "../assets/0ba156439a339f2a.svg";
29
+ import "../assets/2857c513073467da.svg";
30
+ import "../assets/b645a4a2181b9dc1.svg";
31
+ import "../assets/b94421fadd23b0f2.svg";
32
+ import "../assets/6a3e73faf406cf33.svg";
33
+ import "../assets/e38acaa1757232e0.svg";
34
+ import "../assets/ca791c5ca5848a03.svg";
35
+ import "../assets/10768e2cc79fc60b.svg";
36
+ import "../assets/67230f05dc94a265.svg";
37
+ import "../assets/4d7a77b0e5373992.svg";
38
+ import "../assets/f7fc8bf46089d8b2.svg";
39
+ import "../assets/92508f8707159b51.svg";
40
+ import "../assets/b6499ddce0a4ef7d.svg";
41
+ import "../assets/fed13b0d59903483.svg";
42
+ import "../assets/34ff7dd0c2285956.svg";
43
+ import "../assets/bb28fb0f27f1c11b.svg";
44
+ import "../assets/21220a9d10e6c558.svg";
45
+ import "../assets/b372390551ca2fa1.svg";
46
+ import "../assets/262f46a0b6d94bb6.svg";
47
+ import "../assets/042c75b764bc78a7.svg";
48
+ import "../assets/b1a596e31ad1185a.svg";
49
+ import "../assets/15e91cdd649cde9a.svg";
50
+ import "../assets/e72bb11356af94c7.svg";
51
+ import "../assets/4fe75f5117100705.svg";
52
+ import "../assets/dd05d43ff0df2fc7.svg";
53
+ import "../assets/b325adcae33bbe7a.svg";
54
+ import "../assets/f09d89268e4c0317.svg";
55
+ import "../assets/9cb83236f6bb7ab1.svg";
56
+ import "../assets/d084bda16abe8a56.svg";
57
+ import "../assets/7eda727273fd98d3.svg";
58
+ import "../assets/572bb1bb4156a9c1.svg";
59
+ import "../assets/41275bcb979cb650.svg";
60
+ import "../assets/1de63eb118636cce.svg";
61
+ import "../assets/e5adb5ae3a3698f6.svg";
62
+ import "../assets/b5bb1e8fc975decd.svg";
63
+ import "../assets/157b8721e0600ea8.svg";
64
+ import "../assets/a18404194e3f9047.svg";
65
+ import "../assets/a2017fe7f0a26510.svg";
66
+ import "../assets/0f590f8a94577092.svg";
67
+ import "../assets/259e6ad461a52ad7.svg";
68
+ import "../assets/7d55399c2a7bc985.svg";
69
+ import "../assets/910b0d99b9e26568.svg";
70
+ import "../assets/e4a8550f1c7ffe36.svg";
71
+ import "../assets/2088983edf42e153.svg";
72
+ import "../assets/225da11d23968333.svg";
73
+ import "../assets/d32b129cae2fffd6.svg";
74
+ import "../assets/abf88f301a0730f4.svg";
75
+ import "../assets/0fc5820f8be53a1b.svg";
76
+ import "../assets/d3f792f54ae4c307.svg";
77
+ import "../assets/208f810a9321a327.svg";
78
+ import "../assets/72de3a63bc0b70dd.svg";
79
+ import "./vendor-iso-639-1-BEjYyfKo.js";
80
+ import "./vendor-cypress-signalr-mock-itnm2wpA.js";
81
+ import "./ExtensionPoint.vue_vue_type_style_index_0_lang-B1R06zHa.js";
82
+ import "./vendor-truncate-html-ChA1T5zy.js";
83
+ import "./vendor-sortablejs-Bsvu-FKn.js";
84
+ const D = "vc-dashboard-layout";
85
+ function N(e, i) {
86
+ const o = i ?? e.position;
87
+ return {
88
+ id: e.id,
89
+ x: o?.x ?? 0,
90
+ y: o?.y ?? 0,
91
+ w: e.size.width,
92
+ h: e.size.height,
93
+ minW: 2,
94
+ minH: 2
95
+ };
96
+ }
97
+ function C(e) {
98
+ return {
99
+ id: e.id ?? "",
100
+ position: {
101
+ x: e.x ?? 0,
102
+ y: e.y ?? 0
103
+ },
104
+ size: {
105
+ width: e.w ?? 1,
106
+ height: e.h ?? 1
107
+ }
108
+ };
109
+ }
110
+ function he(e) {
111
+ const i = /* @__PURE__ */ new Map();
112
+ for (const o of e)
113
+ o.id && i.set(o.id, {
114
+ x: o.x ?? 0,
115
+ y: o.y ?? 0
116
+ });
117
+ return i;
118
+ }
119
+ function F() {
120
+ try {
121
+ const e = localStorage.getItem(D);
122
+ if (!e) return null;
123
+ const i = JSON.parse(e);
124
+ if (Array.isArray(i))
125
+ return he(i);
126
+ if (typeof i == "object" && i !== null) {
127
+ const o = /* @__PURE__ */ new Map();
128
+ for (const [l, c] of Object.entries(i))
129
+ c && typeof c.x == "number" && typeof c.y == "number" && o.set(l, { x: c.x, y: c.y });
130
+ return o;
131
+ }
132
+ return null;
133
+ } catch (e) {
134
+ return console.warn("[GridstackAdapter] Failed to load layout from storage:", e), null;
135
+ }
136
+ }
137
+ function J(e, i) {
138
+ try {
139
+ const o = e.map((l) => {
140
+ const c = i.get(l.id);
141
+ return {
142
+ id: l.id,
143
+ x: c?.x ?? l.position?.x ?? 0,
144
+ y: c?.y ?? l.position?.y ?? 0,
145
+ w: l.size.width,
146
+ h: l.size.height
147
+ };
148
+ });
149
+ localStorage.setItem(D, JSON.stringify(o));
150
+ } catch (o) {
151
+ console.warn("[GridstackAdapter] Failed to save layout to storage:", o);
152
+ }
153
+ }
154
+ function ge() {
155
+ try {
156
+ localStorage.removeItem(D);
157
+ } catch (e) {
158
+ console.warn("[GridstackAdapter] Failed to clear layout storage:", e);
159
+ }
160
+ }
161
+ function _e(e, i = 12) {
162
+ const o = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), c = (a, m, p, _) => {
163
+ for (let g = m; g < m + _; g++) {
164
+ const w = l.get(g) || [];
165
+ for (let y = a; y < a + p; y++)
166
+ if (w.includes(y)) return !1;
167
+ }
168
+ return !0;
169
+ }, b = (a, m, p, _) => {
170
+ for (let g = m; g < m + _; g++) {
171
+ const w = l.get(g) || [];
172
+ for (let y = a; y < a + p; y++)
173
+ w.push(y);
174
+ l.set(g, w);
175
+ }
176
+ }, r = (a, m) => {
177
+ let p = 0;
178
+ for (; ; ) {
179
+ for (let _ = 0; _ <= i - a; _++)
180
+ if (c(_, p, a, m))
181
+ return { x: _, y: p };
182
+ if (p++, p > 100) break;
183
+ }
184
+ return { x: 0, y: p };
185
+ };
186
+ for (const a of e) {
187
+ const m = r(a.size.width, a.size.height);
188
+ o.set(a.id, m), b(m.x, m.y, a.size.width, a.size.height);
189
+ }
190
+ return o;
191
+ }
192
+ function U(e, i) {
193
+ if (i && i.size > 0) {
194
+ const l = /* @__PURE__ */ new Map();
195
+ for (const c of e) {
196
+ const b = i.get(c.id), r = c.position, a = b ?? r ?? { x: 0, y: 0 };
197
+ l.set(c.id, a);
198
+ }
199
+ return l;
200
+ }
201
+ if (e.every((l) => l.position !== void 0)) {
202
+ const l = /* @__PURE__ */ new Map();
203
+ for (const c of e)
204
+ l.set(c.id, c.position);
205
+ return l;
206
+ }
207
+ return _e(e);
208
+ }
209
+ const ye = {
210
+ column: 12,
211
+ cellHeight: 80,
212
+ margin: "10px",
213
+ float: !1,
214
+ animate: !0,
215
+ // Disable responsive column changes - always use 12 columns
216
+ columnOpts: {
217
+ breakpoints: [{ w: 0, c: 12 }]
218
+ // Always 12 columns regardless of width
219
+ },
220
+ draggable: {
221
+ handle: ".grid-stack-item-content"
222
+ },
223
+ resizable: {
224
+ handles: "se"
225
+ // Only bottom-right corner
226
+ }
227
+ };
228
+ function be(e, i = {}) {
229
+ const { gridOptions: o = {}, resizable: l = !1, autoSave: c = !0, onLayoutChange: b } = i, r = Q(null), a = $(/* @__PURE__ */ new Map()), m = $(!1), p = $(!1), _ = {
230
+ ...ye,
231
+ ...o,
232
+ disableResize: !l
233
+ }, g = (t) => {
234
+ if (r.value) {
235
+ console.warn("[useGridstack] Grid already initialized");
236
+ return;
237
+ }
238
+ const n = F();
239
+ a.value = U(e.value, n), r.value = pe.init(_, t), r.value.on("change", w), r.value.on("added", y), r.value.on("removed", I);
240
+ const s = e.value.map((d) => {
241
+ const f = a.value.get(d.id);
242
+ return N(d, f);
243
+ });
244
+ r.value.load(s), m.value = !0;
245
+ }, w = (t, n) => {
246
+ if (!p.value) {
247
+ for (const s of n) {
248
+ const { id: d, position: f } = C(s);
249
+ d && a.value.set(d, f);
250
+ }
251
+ a.value = new Map(a.value), b?.(a.value), c && W();
252
+ }
253
+ }, y = (t, n) => {
254
+ for (const s of n) {
255
+ const { id: d, position: f } = C(s);
256
+ d && !a.value.has(d) && a.value.set(d, f);
257
+ }
258
+ a.value = new Map(a.value);
259
+ }, I = (t, n) => {
260
+ for (const s of n)
261
+ s.id && a.value.delete(s.id);
262
+ a.value = new Map(a.value);
263
+ }, G = () => {
264
+ r.value && (r.value.off("change"), r.value.off("added"), r.value.off("removed"), r.value.destroy(!1), r.value = null, m.value = !1);
265
+ }, S = (t) => {
266
+ if (!r.value) return;
267
+ const n = a.value.get(t.id) ?? t.position, s = N(t, n), d = document.querySelector(`[gs-id="${t.id}"]`);
268
+ d && r.value.makeWidget(d, s);
269
+ }, z = (t) => {
270
+ if (!r.value) return;
271
+ const n = document.querySelector(`[gs-id="${t}"]`);
272
+ n && r.value.removeWidget(n, !1), a.value.delete(t);
273
+ }, M = (t, n) => {
274
+ if (!r.value) return;
275
+ const s = document.querySelector(`[gs-id="${t}"]`);
276
+ s && (p.value = !0, r.value.update(s, { x: n.x, y: n.y }), a.value.set(t, n), a.value = new Map(a.value), p.value = !1);
277
+ }, W = () => {
278
+ J(e.value, a.value);
279
+ }, P = () => {
280
+ const t = F();
281
+ t && (a.value = U(e.value, t), O());
282
+ }, E = () => {
283
+ a.value = /* @__PURE__ */ new Map();
284
+ for (const t of e.value)
285
+ t.position && a.value.set(t.id, { ...t.position });
286
+ O(), W();
287
+ }, O = () => {
288
+ if (r.value) {
289
+ p.value = !0, r.value.batchUpdate();
290
+ for (const t of e.value) {
291
+ const n = a.value.get(t.id);
292
+ if (n) {
293
+ const s = document.querySelector(`[gs-id="${t.id}"]`);
294
+ s && r.value.update(s, {
295
+ x: n.x,
296
+ y: n.y
297
+ });
298
+ }
299
+ }
300
+ r.value.batchUpdate(!1), p.value = !1;
301
+ }
302
+ }, H = (t) => {
303
+ if (!r.value) {
304
+ t();
305
+ return;
306
+ }
307
+ p.value = !0, r.value.batchUpdate(), t(), r.value.batchUpdate(!1), p.value = !1;
308
+ };
309
+ return V(
310
+ e,
311
+ async (t, n) => {
312
+ if (!r.value || !m.value) return;
313
+ await Y();
314
+ const s = t.filter((f) => !n?.some((B) => B.id === f.id)), d = n?.filter((f) => !t.some((B) => B.id === f.id)).map((f) => f.id) ?? [];
315
+ for (const f of d)
316
+ z(f);
317
+ for (const f of s)
318
+ S(f);
319
+ },
320
+ { deep: !1 }
321
+ ), X(() => {
322
+ G();
323
+ }), {
324
+ grid: r,
325
+ layout: a,
326
+ isInitialized: m,
327
+ initGrid: g,
328
+ destroyGrid: G,
329
+ addWidget: S,
330
+ removeWidget: z,
331
+ updateWidgetPosition: M,
332
+ saveLayout: W,
333
+ loadLayout: P,
334
+ resetToDefaults: E,
335
+ batchUpdate: H
336
+ };
337
+ }
338
+ const we = {}, ke = {
339
+ class: "dashboard-widget-skeleton",
340
+ "aria-hidden": "true"
341
+ };
342
+ function $e(e, i) {
343
+ return u(), v("div", ke, [...i[0] || (i[0] = [
344
+ Z('<div class="dashboard-widget-skeleton__header"><div class="dashboard-widget-skeleton__icon"></div><div class="dashboard-widget-skeleton__title"></div></div><div class="dashboard-widget-skeleton__stats"><div class="dashboard-widget-skeleton__stat"></div><div class="dashboard-widget-skeleton__stat"></div><div class="dashboard-widget-skeleton__stat"></div></div><div class="dashboard-widget-skeleton__body"><div class="dashboard-widget-skeleton__line dashboard-widget-skeleton__line--w80"></div><div class="dashboard-widget-skeleton__line dashboard-widget-skeleton__line--w60"></div><div class="dashboard-widget-skeleton__line dashboard-widget-skeleton__line--w90"></div><div class="dashboard-widget-skeleton__line dashboard-widget-skeleton__line--w70"></div></div>', 3)
345
+ ])]);
346
+ }
347
+ const xe = /* @__PURE__ */ le(we, [["render", $e]]), Le = ["aria-label"], Se = ["aria-label"], ze = ["gs-id", "gs-x", "gs-y", "gs-w", "gs-h", "aria-label"], We = { class: "grid-stack-item-content" }, De = {
348
+ key: 0,
349
+ class: "vc-gridstack-dashboard__drag-handle",
350
+ "aria-hidden": "true"
351
+ }, Ge = {
352
+ class: "vc-gridstack-dashboard__live-region",
353
+ role: "status",
354
+ "aria-live": "polite",
355
+ "aria-atomic": "true"
356
+ }, Pe = /* @__PURE__ */ L({
357
+ __name: "GridstackDashboard",
358
+ props: {
359
+ showDragHandles: { type: Boolean, default: !1 },
360
+ resizable: { type: Boolean, default: !1 },
361
+ ariaLabel: { default: "Dashboard widgets. Drag widgets to rearrange." }
362
+ },
363
+ setup(e, { expose: i }) {
364
+ const o = [
365
+ { x: 0, y: 0, w: 6, h: 6 },
366
+ { x: 6, y: 0, w: 6, h: 6 },
367
+ { x: 0, y: 6, w: 6, h: 6 },
368
+ { x: 6, y: 6, w: 6, h: 6 }
369
+ ];
370
+ function l() {
371
+ if (typeof window > "u") return null;
372
+ try {
373
+ const t = window.localStorage.getItem(D);
374
+ if (!t) return null;
375
+ const n = JSON.parse(t);
376
+ if (!Array.isArray(n)) return null;
377
+ const s = n.filter(
378
+ (d) => !!d && typeof d == "object" && typeof d.w == "number" && typeof d.h == "number" && typeof d.x == "number" && typeof d.y == "number"
379
+ ).map((d) => ({ x: d.x, y: d.y, w: d.w, h: d.h }));
380
+ return s.length > 0 ? s : null;
381
+ } catch {
382
+ return null;
383
+ }
384
+ }
385
+ const c = e, b = $(null), r = $(""), a = ee(ve, $(!0)), m = j(() => a.value ? [] : l() ?? o), p = (t) => ({
386
+ gridColumn: `${t.x + 1} / span ${t.w}`,
387
+ gridRow: `${t.y + 1} / span ${t.h}`
388
+ }), _ = ce(), g = j(() => _.getWidgets()), { layout: w, isInitialized: y, initGrid: I, saveLayout: G, resetToDefaults: S } = be(g, {
389
+ resizable: c.resizable,
390
+ autoSave: !0,
391
+ gridOptions: {
392
+ draggable: {
393
+ handle: c.showDragHandles ? ".vc-gridstack-dashboard__drag-handle" : ".grid-stack-item-content"
394
+ }
395
+ },
396
+ onLayoutChange: (t) => {
397
+ for (const [n, s] of t)
398
+ _.updateWidgetPosition(n, s);
399
+ W("Widget positions updated");
400
+ }
401
+ }), z = (t) => w.value.get(t), M = (t, n) => `${t.name || t.id}, widget ${n + 1} of ${g.value.length}. Drag to reorder.`, W = (t) => {
402
+ r.value = t, setTimeout(() => {
403
+ r.value = "";
404
+ }, 1e3);
405
+ }, P = async () => {
406
+ await Y(), b.value && !y.value && I(b.value);
407
+ };
408
+ return te(P), V(a, (t) => {
409
+ t && P();
410
+ }), i({
411
+ rearrangeWidgets: () => {
412
+ S();
413
+ },
414
+ recalculateLayout: () => {
415
+ },
416
+ saveLayout: G,
417
+ useBuiltInPositions: () => (S(), !0)
418
+ }), (t, n) => (u(), A(ue, {
419
+ "no-padding": "",
420
+ class: "vc-gridstack-dashboard"
421
+ }, {
422
+ default: ae(() => [
423
+ R(a) ? (u(), v("div", {
424
+ key: 1,
425
+ ref_key: "gridRef",
426
+ ref: b,
427
+ class: "grid-stack vc-gridstack-dashboard__grid",
428
+ role: "list",
429
+ "aria-label": e.ariaLabel
430
+ }, [
431
+ (u(!0), v(q, null, K(g.value, (s, d) => (u(), v("div", {
432
+ key: s.id,
433
+ class: "grid-stack-item",
434
+ "gs-id": s.id,
435
+ "gs-x": z(s.id)?.x ?? s.position?.x ?? 0,
436
+ "gs-y": z(s.id)?.y ?? s.position?.y ?? 0,
437
+ "gs-w": s.size.width,
438
+ "gs-h": s.size.height,
439
+ "gs-min-w": 2,
440
+ "gs-min-h": 2,
441
+ role: "listitem",
442
+ "aria-label": M(s, d)
443
+ }, [
444
+ h("div", We, [
445
+ e.showDragHandles ? (u(), v("div", De, [...n[0] || (n[0] = [
446
+ h("svg", {
447
+ width: "16",
448
+ height: "16",
449
+ viewBox: "0 0 16 16",
450
+ fill: "currentColor"
451
+ }, [
452
+ h("circle", {
453
+ cx: "5",
454
+ cy: "3",
455
+ r: "1.5"
456
+ }),
457
+ h("circle", {
458
+ cx: "11",
459
+ cy: "3",
460
+ r: "1.5"
461
+ }),
462
+ h("circle", {
463
+ cx: "5",
464
+ cy: "8",
465
+ r: "1.5"
466
+ }),
467
+ h("circle", {
468
+ cx: "11",
469
+ cy: "8",
470
+ r: "1.5"
471
+ }),
472
+ h("circle", {
473
+ cx: "5",
474
+ cy: "13",
475
+ r: "1.5"
476
+ }),
477
+ h("circle", {
478
+ cx: "11",
479
+ cy: "13",
480
+ r: "1.5"
481
+ })
482
+ ], -1)
483
+ ])])) : x("", !0),
484
+ (u(), A(se(s.component), ie({ ref_for: !0 }, s.props || {}, { class: "vc-gridstack-dashboard__widget-content" }), null, 16))
485
+ ])
486
+ ], 8, ze))), 128))
487
+ ], 8, Se)) : (u(), v("div", {
488
+ key: 0,
489
+ class: "vc-gridstack-dashboard__skeleton-grid",
490
+ role: "status",
491
+ "aria-busy": "true",
492
+ "aria-label": e.ariaLabel
493
+ }, [
494
+ (u(!0), v(q, null, K(m.value, (s, d) => (u(), A(xe, {
495
+ key: `skeleton-${d}`,
496
+ class: "vc-gridstack-dashboard__skeleton-item",
497
+ style: oe(p(s))
498
+ }, null, 8, ["style"]))), 128))
499
+ ], 8, Le)),
500
+ h("div", Ge, T(r.value), 1)
501
+ ]),
502
+ _: 1
503
+ }));
504
+ }
505
+ }), wa = /* @__PURE__ */ L({
506
+ __name: "DraggableDashboard",
507
+ props: {
508
+ showDragHandles: { type: Boolean, default: !1 },
509
+ resizable: { type: Boolean, default: !1 },
510
+ ariaLabel: { default: "Dashboard widgets. Drag widgets to rearrange." }
511
+ },
512
+ setup(e, { expose: i }) {
513
+ const o = $(null);
514
+ return i({
515
+ rearrangeWidgets: () => {
516
+ o.value?.rearrangeWidgets?.();
517
+ },
518
+ recalculateLayout: () => {
519
+ o.value?.recalculateLayout?.();
520
+ },
521
+ saveLayout: () => {
522
+ o.value?.saveLayout?.();
523
+ },
524
+ useBuiltInPositions: () => o.value?.useBuiltInPositions?.() ?? !1
525
+ }), (a, m) => (u(), A(Pe, {
526
+ ref_key: "dashboardRef",
527
+ ref: o,
528
+ "show-drag-handles": e.showDragHandles,
529
+ resizable: e.resizable,
530
+ "aria-label": e.ariaLabel
531
+ }, null, 8, ["show-drag-handles", "resizable", "aria-label"]));
532
+ }
533
+ }), ka = N, $a = C, xa = F, La = J, Sa = U, za = ge, Wa = D, Ae = { class: "dashboard-widget-card" }, Te = { class: "dashboard-widget-card__header" }, Ie = { class: "dashboard-widget-card__header-content" }, Me = {
534
+ key: 0,
535
+ class: "dashboard-widget-card__icon-wrapper"
536
+ }, Oe = { class: "dashboard-widget-card__title" }, Be = {
537
+ key: 0,
538
+ class: "dashboard-widget-card__actions"
539
+ }, Re = {
540
+ key: 0,
541
+ class: "dashboard-widget-card__stats"
542
+ }, Ne = { class: "dashboard-widget-card__body" }, Ce = {
543
+ key: 1,
544
+ class: "dashboard-widget-card__footer"
545
+ }, Da = /* @__PURE__ */ L({
546
+ __name: "dashboard-widget-card",
547
+ props: {
548
+ header: {},
549
+ icon: {},
550
+ loading: { type: Boolean }
551
+ },
552
+ setup(e) {
553
+ const i = e;
554
+ return (o, l) => (u(), v("div", Ae, [
555
+ h("div", Te, [
556
+ k(o.$slots, "header", {}, () => [
557
+ h("div", Ie, [
558
+ e.icon ? (u(), v("div", Me, [
559
+ re(R(fe), {
560
+ class: "dashboard-widget-card__icon",
561
+ icon: e.icon,
562
+ size: "l"
563
+ }, null, 8, ["icon"])
564
+ ])) : x("", !0),
565
+ h("div", Oe, T(i.header), 1)
566
+ ])
567
+ ]),
568
+ o.$slots.actions ? (u(), v("div", Be, [
569
+ k(o.$slots, "actions")
570
+ ])) : x("", !0)
571
+ ]),
572
+ o.$slots.stats ? (u(), v("div", Re, [
573
+ k(o.$slots, "stats")
574
+ ])) : x("", !0),
575
+ ne((u(), v("div", Ne, [
576
+ k(o.$slots, "content")
577
+ ])), [
578
+ [R(me), e.loading]
579
+ ]),
580
+ o.$slots.footer ? (u(), v("div", Ce, [
581
+ k(o.$slots, "footer")
582
+ ])) : x("", !0)
583
+ ]));
584
+ }
585
+ }), Fe = { class: "dashboard-stat-item" }, Ue = { class: "dashboard-stat-item__label" }, Ga = /* @__PURE__ */ L({
586
+ __name: "dashboard-stat-item",
587
+ props: {
588
+ value: {},
589
+ label: {},
590
+ variant: {}
591
+ },
592
+ setup(e) {
593
+ return (i, o) => (u(), v("div", Fe, [
594
+ h("div", {
595
+ class: de(["dashboard-stat-item__value", e.variant ? `dashboard-stat-item__value--${e.variant}` : ""])
596
+ }, T(e.value), 3),
597
+ h("div", Ue, T(e.label), 1)
598
+ ]));
599
+ }
600
+ }), Ee = { class: "tw-divide-y tw-divide-[var(--neutrals-200)]" }, Pa = /* @__PURE__ */ L({
601
+ __name: "dashboard-feed-list",
602
+ setup(e) {
603
+ return (i, o) => (u(), v("div", Ee, [
604
+ k(i.$slots, "default")
605
+ ]));
606
+ }
607
+ }), He = { class: "tw-flex tw-items-center tw-gap-2.5 tw-min-w-0" }, je = {
608
+ key: 0,
609
+ class: "tw-flex tw-items-center tw-gap-3 tw-flex-shrink-0 tw-ml-3"
610
+ }, Aa = /* @__PURE__ */ L({
611
+ __name: "dashboard-feed-row",
612
+ emits: ["click"],
613
+ setup(e) {
614
+ return (i, o) => (u(), v("div", {
615
+ class: "dashboard-feed-row",
616
+ onClick: o[0] || (o[0] = (l) => i.$emit("click"))
617
+ }, [
618
+ h("div", He, [
619
+ k(i.$slots, "default")
620
+ ]),
621
+ i.$slots.trailing ? (u(), v("div", je, [
622
+ k(i.$slots, "trailing")
623
+ ])) : x("", !0)
624
+ ]));
625
+ }
626
+ });
627
+ export {
628
+ Wa as L,
629
+ Pa as _,
630
+ Aa as a,
631
+ Ga as b,
632
+ Da as c,
633
+ wa as d,
634
+ za as e,
635
+ $a as f,
636
+ xa as l,
637
+ Sa as m,
638
+ La as s,
639
+ ka as t,
640
+ be as u
641
+ };