@trilogy-data/trilogy-studio-components 0.1.25 → 0.1.26

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 (114) hide show
  1. package/dist/AssetAutoImporter-CBzvBaOt.js +405 -0
  2. package/dist/ChatCreatorModal-CL-jBnc3.js +218 -0
  3. package/dist/ChatModelSelect-Do-VRUFc.js +40 -0
  4. package/dist/{CommunityModels-D7zWnHgG.js → CommunityModels-Cmro0hV3.js} +101 -70
  5. package/dist/{Dashboard-D1ZCTw5r.js → Dashboard-BH9ZwMVJ.js} +8 -8
  6. package/dist/{DashboardCreatorInline-LWvf--2x.js → DashboardCreatorInline-CDU7kLy3.js} +3 -3
  7. package/dist/{DashboardImportSelector-CNxibXlS.js → DashboardImportSelector-DQSvu9T-.js} +1 -1
  8. package/dist/{DashboardMobile-D_m0xv17.js → DashboardMobile-BUPtdN2V.js} +4 -4
  9. package/dist/{Editor-DhsP18KE.js → Editor-DQsYpkwl.js} +6 -6
  10. package/dist/{GlobalChatPanel-DFx9A4yP.js → GlobalChatPanel-DhnOaige.js} +155 -119
  11. package/dist/{IDE-BRMLxTfP.js → IDE-HLa8vybk.js} +9 -9
  12. package/dist/{JobsView-C9PYS6pZ.js → JobsView-B97HBoIE.js} +8 -8
  13. package/dist/{LLMChat-Cqg6pTgC.js → LLMChat-CxJcPLEG.js} +1 -1
  14. package/dist/{LLMView-VkJpP-49.js → LLMView-C1MUf0c2.js} +21 -21
  15. package/dist/{MobileIDE-CHGJoh05.js → MobileIDE-BpqXoaMR.js} +258 -253
  16. package/dist/{ModelCard-D8tKkK9-.js → ModelCard-BhN25jaV.js} +10 -10
  17. package/dist/{ModelCreator-DrxLxeyH.js → ModelCreator-CCdC7EXt.js} +1 -1
  18. package/dist/{ModelView-rAurf9n8.js → ModelView-DUDA_PtZ.js} +3 -3
  19. package/dist/{PageLoading-I6mr-7NB.js → PageLoading-BzniJM0C.js} +622 -619
  20. package/dist/{ResultComponent-_-1qZCfv.js → ResultComponent-CAn_r3BL.js} +3 -3
  21. package/dist/{Results-CQGpFmPQ.js → Results-BJtlwebY.js} +3 -3
  22. package/dist/{SymbolsPane-BpmL___H.js → SymbolsPane-KYSwN9Sv.js} +1 -1
  23. package/dist/{TutorialPage-CZGBRJdq.js → TutorialPage-NRcee6Dx.js} +8 -8
  24. package/dist/{VegaLiteChart-CmkOw6yD.js → VegaLiteChart-D1slfOUY.js} +11227 -11195
  25. package/dist/{WelcomePage-CLKvAvk-.js → WelcomePage-D5mU2x1L.js} +1 -1
  26. package/dist/components/AssetAutoImporter.vue.d.ts.map +1 -1
  27. package/dist/components/TipsCTA.vue.d.ts +1 -1
  28. package/dist/components/VegaLiteChart.vue.d.ts.map +1 -1
  29. package/dist/components/chartHelpers.d.ts +9 -1
  30. package/dist/components/chartHelpers.d.ts.map +1 -1
  31. package/dist/components/chartRenderManager.d.ts +4 -1
  32. package/dist/components/chartRenderManager.d.ts.map +1 -1
  33. package/dist/components/community/AddStoreModal.vue.d.ts +1 -1
  34. package/dist/components/community/AddStoreModal.vue.d.ts.map +1 -1
  35. package/dist/components/community/CommunityModelCard.vue.d.ts.map +1 -1
  36. package/dist/components/editor/Editor.vue.d.ts.map +1 -1
  37. package/dist/components/jobs/JobsAddStoreModal.vue.d.ts.map +1 -1
  38. package/dist/components/llm/ChatCreatorModal.vue.d.ts +17 -1
  39. package/dist/components/llm/ChatCreatorModal.vue.d.ts.map +1 -1
  40. package/dist/components/llm/ChatModelSelect.vue.d.ts +13 -0
  41. package/dist/components/llm/ChatModelSelect.vue.d.ts.map +1 -0
  42. package/dist/components/llm/GlobalChatPanel.vue.d.ts.map +1 -1
  43. package/dist/components/sidebar/CommunityModelList.vue.d.ts +33 -50
  44. package/dist/components/sidebar/CommunityModelList.vue.d.ts.map +1 -1
  45. package/dist/components/sidebar/CommunityModelListItem.vue.d.ts.map +1 -1
  46. package/dist/components/sidebar/EditorList.vue.d.ts +32 -49
  47. package/dist/components/sidebar/EditorList.vue.d.ts.map +1 -1
  48. package/dist/components/sidebar/Sidebar.vue.d.ts +65 -99
  49. package/dist/components/sidebar/Sidebar.vue.d.ts.map +1 -1
  50. package/dist/dashboard.js +52 -52
  51. package/dist/{dashboardStore-CNkWQ4r7.js → dashboardStore-ppM6nGks.js} +33 -33
  52. package/dist/dashboards/layerSpec.d.ts +38 -4
  53. package/dist/dashboards/layerSpec.d.ts.map +1 -1
  54. package/dist/dashboards/lineAreaSpec.d.ts +8 -80
  55. package/dist/dashboards/lineAreaSpec.d.ts.map +1 -1
  56. package/dist/dashboards/mapSpec.d.ts +1 -0
  57. package/dist/dashboards/mapSpec.d.ts.map +1 -1
  58. package/dist/dashboards/spec.d.ts.map +1 -1
  59. package/dist/data/tutorial/documentation.d.ts.map +1 -1
  60. package/dist/data/tutorial/startupScripts.d.ts +3 -0
  61. package/dist/data/tutorial/startupScripts.d.ts.map +1 -0
  62. package/dist/{demoSetup-DiW3ROFQ.js → demoSetup-mwa-RDC6.js} +19 -18
  63. package/dist/{editorRefinementRuntime-C_YmXRy4.js → editorRefinementRuntime-DoP9P5J2.js} +892 -871
  64. package/dist/{editorRefinementToolExecutor-mX8ClQ63.js → editorRefinementToolExecutor-CVY3FA7k.js} +389 -263
  65. package/dist/{editorStore-Ch7k-gse.js → editorStore-BhhmXbi-.js} +230 -183
  66. package/dist/entry.dashboard.d.ts +1 -0
  67. package/dist/entry.dashboard.d.ts.map +1 -1
  68. package/dist/{globalChatRuntime-oMLiPLNC.js → globalChatRuntime-DWZxeS57.js} +13 -13
  69. package/dist/{helpers-DcWCa6bX.js → helpers-BLQAgX3C.js} +17 -16
  70. package/dist/llm/data/constants.d.ts +1 -1
  71. package/dist/llm/data/constants.d.ts.map +1 -1
  72. package/dist/llm/data/trilogySyntax.generated.d.ts +7 -1
  73. package/dist/llm/data/trilogySyntax.generated.d.ts.map +1 -1
  74. package/dist/llm/docsIndex.d.ts.map +1 -1
  75. package/dist/llm/openai.d.ts +2 -1
  76. package/dist/llm/openai.d.ts.map +1 -1
  77. package/dist/{llm-_807I79k.js → llm-BBOVWb-F.js} +7 -5
  78. package/dist/llm.js +3 -3
  79. package/dist/{llmStore-CSzM1IZd.js → llmStore-DJM2JhzY.js} +2 -2
  80. package/dist/{localStorage-CSuYS7QE.js → localStorage-D9uyOFEO.js} +14 -14
  81. package/dist/models/helpers.d.ts.map +1 -1
  82. package/dist/monaco.js +1 -1
  83. package/dist/{reconcile-Bk7M797_.js → reconcile-Dyf4UZmj.js} +1 -1
  84. package/dist/{remoteStoreSync-CLvZJrTK.js → remoteStoreSync-Z-yjlYtI.js} +1 -1
  85. package/dist/remotes/displayHelpers.d.ts.map +1 -1
  86. package/dist/remotes/genericStoreMetadata.d.ts +1 -0
  87. package/dist/remotes/genericStoreMetadata.d.ts.map +1 -1
  88. package/dist/remotes/models.d.ts +37 -5
  89. package/dist/remotes/models.d.ts.map +1 -1
  90. package/dist/remotes/staticStorePresets.d.ts +22 -0
  91. package/dist/remotes/staticStorePresets.d.ts.map +1 -0
  92. package/dist/remotes/storeService.d.ts +25 -4
  93. package/dist/remotes/storeService.d.ts.map +1 -1
  94. package/dist/stores/communityApiStore.d.ts +32 -60
  95. package/dist/stores/communityApiStore.d.ts.map +1 -1
  96. package/dist/stores/connectionStore.d.ts.map +1 -1
  97. package/dist/stores/resolver.d.ts +5 -0
  98. package/dist/stores/resolver.d.ts.map +1 -1
  99. package/dist/stores/urlStore.d.ts +1 -0
  100. package/dist/stores/urlStore.d.ts.map +1 -1
  101. package/dist/{stores-C1wUWiFm.js → stores-BT9hTLny.js} +47 -47
  102. package/dist/stores.js +7 -7
  103. package/dist/trilogy-studio-components.css +1 -1
  104. package/dist/{urlStore-Dgmwx1YI.js → urlStore-52HG6lsX.js} +1 -0
  105. package/dist/{useChatWithTools-GV1ufcqw.js → useChatWithTools-B0HZ_DVh.js} +1 -1
  106. package/dist/{useDashboard-OoBKkkuQ.js → useDashboard-CdSnPe_6.js} +186 -186
  107. package/dist/{useGlobalChatPanel-CIeUyZba.js → useGlobalChatPanel-D_0luajQ.js} +2 -2
  108. package/dist/views/MobileIDE.vue.d.ts.map +1 -1
  109. package/dist/views/TutorialPage.vue.d.ts +32 -49
  110. package/dist/views/TutorialPage.vue.d.ts.map +1 -1
  111. package/dist/views.js +16 -16
  112. package/package.json +1 -1
  113. package/dist/AssetAutoImporter-DfMd_DSk.js +0 -403
  114. package/dist/ChatCreatorModal-BTqY06B6.js +0 -177
@@ -1,9 +1,9 @@
1
1
  import { n as e } from "./rolldown-runtime-Dqa2HsxW.js";
2
2
  import { t } from "./_plugin-vue_export-helper-B3ysoDQm.js";
3
- import { D as n } from "./editorStore-Ch7k-gse.js";
3
+ import { j as n } from "./editorStore-BhhmXbi-.js";
4
4
  import { t as r } from "./ErrorMessage-XMn_08gJ.js";
5
5
  import { t as i } from "./MarkdownRenderer-BNDuEyG-.js";
6
- import { t as a } from "./ModelCreator-DrxLxeyH.js";
6
+ import { t as a } from "./ModelCreator-CCdC7EXt.js";
7
7
  import { t as o } from "./StoreTokenModal-zCSYhfrw.js";
8
8
  import { Fragment as s, computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createTextVNode as p, createVNode as m, defineComponent as h, inject as g, normalizeClass as _, onMounted as v, openBlock as y, ref as b, renderList as x, toDisplayString as S, unref as C, watch as w, withCtx as T } from "vue";
9
9
  //#region components/community/CommunityModelHeader.vue?vue&type=script&setup=true&lang.ts
@@ -65,22 +65,26 @@ var E = { class: "section-header" }, D = { class: "header-actions" }, O = ["disa
65
65
  ]], 40, z)])
66
66
  ])])]));
67
67
  }
68
- }), [["__scopeId", "data-v-b6accb9f"]]), B = { class: "model-item" }, te = ["data-testid"], ne = { class: "model-item-header" }, re = { class: "model-info" }, ie = ["data-testid"], V = ["data-testid"], H = { class: "text-faint" }, U = ["title", "data-testid"], W = { class: "expand-text" }, G = {
68
+ }), [["__scopeId", "data-v-b6accb9f"]]), B = { class: "model-item" }, te = { class: "model-item-header" }, ne = { class: "model-info" }, re = ["data-testid"], ie = ["data-testid"], V = { class: "text-faint" }, H = ["title", "data-testid"], U = { class: "expand-text" }, W = { class: "model-actions" }, G = ["disabled", "title"], K = ["data-testid"], q = {
69
69
  key: 0,
70
- class: "model-creator-container"
71
- }, K = { class: "model-description" }, q = { class: "description-content" }, J = ["data-testid"], Y = {
70
+ class: "share-status",
71
+ role: "status"
72
+ }, J = {
72
73
  key: 1,
74
+ class: "model-creator-container"
75
+ }, Y = { class: "model-description" }, ae = { class: "description-content" }, oe = ["data-testid"], se = {
76
+ key: 2,
73
77
  class: "model-content-expanded"
74
- }, ae = { class: "components-grid" }, oe = { class: "component-main" }, se = { class: "component-info" }, ce = ["href"], le = {
78
+ }, ce = { class: "components-grid" }, le = { class: "component-main" }, ue = { class: "component-info" }, de = ["href"], fe = {
75
79
  key: 0,
76
80
  class: "component-purpose"
77
- }, ue = {
81
+ }, pe = {
78
82
  key: 0,
79
83
  class: "component-actions"
80
- }, de = ["onClick", "title"], fe = {
84
+ }, me = ["onClick", "title"], he = {
81
85
  key: 1,
82
86
  class: "component-actions"
83
- }, pe = ["onClick", "title"], X = /*#__PURE__*/ t(/* @__PURE__ */ h({
87
+ }, ge = ["onClick", "title"], X = /*#__PURE__*/ t(/* @__PURE__ */ h({
84
88
  __name: "CommunityModelCard",
85
89
  props: {
86
90
  file: {},
@@ -107,115 +111,142 @@ var E = { class: "section-header" }, D = { class: "header-actions" }, O = ["disa
107
111
  setup(e, { expose: t, emit: r }) {
108
112
  let o = e, l = r, h = g("modelStore");
109
113
  if (!h) throw Error("ModelConfigStore not found in context");
110
- let v = b(o.initialCreatorExpanded), C = b(o.initialComponentsExpanded), w = b(o.initialDescriptionExpanded), T = c(() => o.file.name in h.models), E = c(() => n(o.file.engine)), D = c(() => o.file.description ? o.file.description.split("\n").length > 5 : !1), O = (e) => {
114
+ let v = b(o.initialCreatorExpanded), C = b(o.initialComponentsExpanded), w = b(o.initialDescriptionExpanded), T = b(""), E = c(() => {
115
+ let e = o.file.components.filter((e) => e.name?.trim() && [
116
+ "trilogy",
117
+ "sql",
118
+ "dashboard"
119
+ ].includes(e.type));
120
+ return e.find((e) => e.purpose?.trim().toLowerCase() === "example") ?? e[0];
121
+ }), D = c(() => o.file.name in h.models), O = c(() => n(o.file.engine)), k = c(() => o.file.description ? o.file.description.split("\n").length > 5 : !1), A = (e) => {
111
122
  switch (e) {
112
123
  case "dashboard": return "mdi mdi-view-dashboard";
113
124
  case "trilogy": return "mdi mdi-database";
114
125
  case "sql": return "mdi mdi-code-tags";
115
126
  default: return "mdi mdi-file";
116
127
  }
117
- }, k = () => {
128
+ }, j = () => {
118
129
  v.value = !v.value, l("creator-toggled", v.value);
119
- }, A = () => {
130
+ }, M = () => {
120
131
  C.value = !C.value, l("components-toggled", C.value);
121
- }, j = () => {
132
+ }, N = () => {
122
133
  w.value = !w.value, l("description-toggled", w.value);
123
- }, M = async (e, t) => {
134
+ }, P = async (e, t) => {
135
+ T.value = "";
124
136
  let n = window.location.origin + window.location.pathname, r = new URLSearchParams({
125
137
  screen: "asset-import",
126
138
  import: o.file.downloadUrl,
127
139
  assetType: t,
128
- assetName: e.name,
140
+ assetName: e.name || "",
129
141
  modelName: o.file.name,
130
142
  connection: o.file.engine
131
143
  });
132
- o.file.store?.type === "generic" && (r.set("store", o.file.store.baseUrl), o.file.store.token && r.set("token", o.file.store.token));
144
+ o.file.store?.type === "generic" ? (r.set("store", o.file.store.baseUrl), o.file.store.token && r.set("token", o.file.store.token)) : o.file.store?.type === "static" && (r.set("store", o.file.store.baseUrl), r.set("kind", "static"));
133
145
  let i = `${n}#${r.toString()}`;
134
146
  try {
135
- await navigator.clipboard.writeText(i), l(t === "dashboard" ? "dashboard-link-copied" : "editor-link-copied", e), console.log(`${t} import link copied to clipboard:`, i);
136
- } catch (n) {
137
- console.error(`Failed to copy ${t} import link:`, n);
138
- let r = document.createElement("textarea");
139
- r.value = i, document.body.appendChild(r), r.select(), document.execCommand("copy"), document.body.removeChild(r), l(t === "dashboard" ? "dashboard-link-copied" : "editor-link-copied", e);
147
+ try {
148
+ await navigator.clipboard.writeText(i);
149
+ } catch {
150
+ let e = document.createElement("textarea");
151
+ e.value = i, e.style.position = "fixed", e.style.opacity = "0", document.body.appendChild(e);
152
+ try {
153
+ if (e.select(), !document.execCommand("copy")) throw Error("Copy failed");
154
+ } finally {
155
+ e.remove();
156
+ }
157
+ }
158
+ l(t === "dashboard" ? "dashboard-link-copied" : "editor-link-copied", e), T.value = "Share link copied.";
159
+ } catch {
160
+ T.value = "Unable to copy the share link. Please try again.";
140
161
  }
141
- }, N = async (e) => {
142
- await M(e, "dashboard");
143
- }, P = async (e) => {
144
- await M(e, "editor");
162
+ }, F = async () => {
163
+ let e = E.value;
164
+ e && await P(e, e.type === "dashboard" ? "dashboard" : "editor");
165
+ }, I = async (e) => {
166
+ await P(e, "dashboard");
167
+ }, L = async (e) => {
168
+ await P(e, "editor");
145
169
  };
146
170
  return t({
147
- toggleCreator: k,
148
- toggleComponents: A,
149
- toggleDescription: j,
171
+ toggleCreator: j,
172
+ toggleComponents: M,
173
+ toggleDescription: N,
150
174
  creatorIsExpanded: () => v.value,
151
175
  isComponentsExpanded: () => C.value,
152
176
  isDescriptionExpanded: () => w.value
153
177
  }), (t, n) => (y(), d("div", B, [
154
- f("button", {
155
- onClick: k,
156
- "data-testid": `import-${e.file.name}`,
157
- class: "action-button-topright"
158
- }, S(v.value ? "Hide" : T.value ? "Reload" : "Import"), 9, te),
159
- f("div", ne, [f("div", re, [f("div", {
178
+ f("div", te, [f("div", ne, [f("div", {
160
179
  class: "font-semibold flex items-center",
161
180
  "data-testid": `model-card-title-${e.file.name}`
162
181
  }, [
163
- T.value ? (y(), d("span", {
182
+ D.value ? (y(), d("span", {
164
183
  key: 0,
165
184
  class: "imported-indicator mr-2",
166
185
  "data-testid": `imported-${e.file.name}`
167
- }, [...n[0] ||= [f("i", { class: "mdi mdi-check check-icon" }, null, -1)]], 8, V)) : u("", !0),
186
+ }, [...n[0] ||= [f("i", { class: "mdi mdi-check check-icon" }, null, -1)]], 8, ie)) : u("", !0),
168
187
  p(" " + S(e.file.name) + " ", 1),
169
- f("span", H, "(" + S(e.file.engine) + ")", 1)
170
- ], 8, ie), f("button", {
188
+ f("span", V, "(" + S(e.file.engine) + ")", 1)
189
+ ], 8, re), f("button", {
171
190
  class: _(["expand-button", { expanded: C.value }]),
172
- onClick: A,
191
+ onClick: M,
173
192
  title: C.value ? "Collapse Content" : "Show Content",
174
193
  "data-testid": `${C.value ? "collapse" : "expand"}-${e.file.name}`
175
- }, [n[1] ||= f("i", { class: "mdi mdi-chevron-down expand-icon" }, null, -1), f("span", W, S(C.value ? "Collapse" : "Expand") + " (" + S(e.file.components.length) + " items)", 1)], 10, U)])]),
176
- v.value ? (y(), d("div", G, [m(a, {
194
+ }, [n[1] ||= f("i", { class: "mdi mdi-chevron-down expand-icon" }, null, -1), f("span", U, S(C.value ? "Collapse" : "Expand") + " (" + S(e.file.components.length) + " items)", 1)], 10, H)]), f("div", W, [f("button", {
195
+ onClick: F,
196
+ disabled: !E.value,
197
+ title: E.value ? `Copy import link opening ${E.value.name}` : "No shareable components in this model",
198
+ "data-testid": "copy-model-share-button"
199
+ }, [...n[2] ||= [f("i", {
200
+ class: "mdi mdi-content-copy",
201
+ "aria-hidden": "true"
202
+ }, null, -1), p(" Share Model ", -1)]], 8, G), f("button", {
203
+ onClick: j,
204
+ "data-testid": `import-${e.file.name}`
205
+ }, S(v.value ? "Hide" : D.value ? "Reload" : "Import"), 9, K)])]),
206
+ T.value ? (y(), d("p", q, S(T.value), 1)) : u("", !0),
207
+ v.value ? (y(), d("div", J, [m(a, {
177
208
  formDefaults: {
178
209
  importAddress: e.file.downloadUrl,
179
210
  importToken: e.file.store?.type === "generic" ? e.file.store.token : void 0,
180
- connection: E.value,
211
+ connection: O.value,
181
212
  name: e.file.name
182
213
  },
183
214
  absolute: !1,
184
215
  visible: v.value,
185
- onClose: k
216
+ onClose: j
186
217
  }, null, 8, ["formDefaults", "visible"])])) : u("", !0),
187
- f("div", K, [f("div", q, [f("div", {
188
- class: _(["description-text", { "description-truncated": !w.value && D.value }]),
218
+ f("div", Y, [f("div", ae, [f("div", {
219
+ class: _(["description-text", { "description-truncated": !w.value && k.value }]),
189
220
  "data-testid": `model-card-description-${e.file.name}`
190
- }, [m(i, { markdown: e.file.description }, null, 8, ["markdown"])], 10, J), D.value ? (y(), d("button", {
221
+ }, [m(i, { markdown: e.file.description }, null, 8, ["markdown"])], 10, oe), k.value ? (y(), d("button", {
191
222
  key: 0,
192
- onClick: j,
223
+ onClick: N,
193
224
  class: "description-toggle-button"
194
225
  }, S(w.value ? "Show Less" : "Show More"), 1)) : u("", !0)])]),
195
- C.value ? (y(), d("div", Y, [n[4] ||= f("div", { class: "content-header" }, [f("h4", null, "Model Components")], -1), f("div", ae, [(y(!0), d(s, null, x(e.file.components, (e) => (y(), d("div", {
226
+ C.value ? (y(), d("div", se, [n[5] ||= f("div", { class: "content-header" }, [f("h4", null, "Model Components")], -1), f("div", ce, [(y(!0), d(s, null, x(e.file.components, (e) => (y(), d("div", {
196
227
  key: e.url,
197
228
  class: "component-item"
198
- }, [f("div", oe, [f("i", { class: _([O(e.type), "component-icon"]) }, null, 2), f("div", se, [f("a", {
229
+ }, [f("div", le, [f("i", { class: _([A(e.type), "component-icon"]) }, null, 2), f("div", ue, [f("a", {
199
230
  href: e.url,
200
231
  target: "_blank",
201
232
  class: "component-link"
202
- }, S(e.name || "Unnamed Component"), 9, ce), e.purpose ? (y(), d("span", le, S(e.purpose), 1)) : u("", !0)])]), e.type === "dashboard" ? (y(), d("div", ue, [f("button", {
203
- onClick: (t) => N(e),
233
+ }, S(e.name || "Unnamed Component"), 9, de), e.purpose ? (y(), d("span", fe, S(e.purpose), 1)) : u("", !0)])]), e.type === "dashboard" ? (y(), d("div", pe, [f("button", {
234
+ onClick: (t) => I(e),
204
235
  class: "copy-import-button",
205
236
  title: "Copy import link for " + e.name,
206
237
  "data-testid": "copy-dashboard-share-button"
207
- }, [...n[2] ||= [f("i", { class: "mdi mdi-content-copy" }, null, -1), p(" Copy Share Link ", -1)]], 8, de)])) : e.type === "trilogy" || e.type === "sql" ? (y(), d("div", fe, [f("button", {
208
- onClick: (t) => P(e),
238
+ }, [...n[3] ||= [f("i", { class: "mdi mdi-content-copy" }, null, -1), p(" Copy Share Link ", -1)]], 8, me)])) : e.type === "trilogy" || e.type === "sql" ? (y(), d("div", he, [f("button", {
239
+ onClick: (t) => L(e),
209
240
  class: "copy-import-button",
210
241
  title: "Copy import link for " + e.name,
211
242
  "data-testid": "copy-editor-share-button"
212
- }, [...n[3] ||= [f("i", { class: "mdi mdi-content-copy" }, null, -1), p(" Copy Share Link ", -1)]], 8, pe)])) : u("", !0)]))), 128))])])) : u("", !0)
243
+ }, [...n[4] ||= [f("i", { class: "mdi mdi-content-copy" }, null, -1), p(" Copy Share Link ", -1)]], 8, ge)])) : u("", !0)]))), 128))])])) : u("", !0)
213
244
  ]));
214
245
  }
215
- }), [["__scopeId", "data-v-aa54f264"]]), me = { class: "model-page" }, he = { class: "model-content" }, ge = { key: 0 }, _e = { class: "error-actions" }, ve = {
246
+ }), [["__scopeId", "data-v-15d20c5b"]]), _e = { class: "model-page" }, ve = { class: "model-content" }, ye = { key: 0 }, be = { class: "error-actions" }, xe = {
216
247
  key: 2,
217
248
  class: "text-loading"
218
- }, ye = {
249
+ }, Se = {
219
250
  key: 3,
220
251
  class: "text-faint mt-4"
221
252
  }, Z = /*#__PURE__*/ t(/* @__PURE__ */ h({
@@ -257,7 +288,7 @@ var E = { class: "section-header" }, D = { class: "header-actions" }, O = ["disa
257
288
  break;
258
289
  }
259
290
  e && await i();
260
- }), (n, c) => (y(), d("div", me, [
291
+ }), (n, c) => (y(), d("div", _e, [
261
292
  m(ee, {
262
293
  searchQuery: A.value,
263
294
  "onUpdate:searchQuery": c[0] ||= (e) => A.value = e,
@@ -283,7 +314,7 @@ var E = { class: "section-header" }, D = { class: "header-actions" }, O = ["disa
283
314
  "showTokenButton",
284
315
  "onRefresh"
285
316
  ]),
286
- f("div", he, [L.value.length ? (y(), d("div", ge, [(y(!0), d(s, null, x(L.value, (e) => (y(), l(X, {
317
+ f("div", ve, [L.value.length ? (y(), d("div", ye, [(y(!0), d(s, null, x(L.value, (e) => (y(), l(X, {
287
318
  key: e.name,
288
319
  file: e,
289
320
  initialCreatorExpanded: D.value[e.name] || !1,
@@ -305,7 +336,7 @@ var E = { class: "section-header" }, D = { class: "header-actions" }, O = ["disa
305
336
  key: 1,
306
337
  type: "error"
307
338
  }, {
308
- action: T(() => [f("div", _e, [I.value ? (y(), d("button", {
339
+ action: T(() => [f("div", be, [I.value ? (y(), d("button", {
309
340
  key: 0,
310
341
  onClick: c[4] ||= (e) => h.value = !0,
311
342
  class: "retry-button secondary",
@@ -317,7 +348,7 @@ var E = { class: "section-header" }, D = { class: "header-actions" }, O = ["disa
317
348
  }, " Retry ")])]),
318
349
  default: T(() => [p(S(_.value) + " ", 1)]),
319
350
  _: 1
320
- })) : P.value ? (y(), d("p", ve, "Loading community models...")) : L.value.length ? u("", !0) : (y(), d("p", ye, " No models match your search criteria. "))]),
351
+ })) : P.value ? (y(), d("p", xe, "Loading community models...")) : L.value.length ? u("", !0) : (y(), d("p", Se, " No models match your search criteria. "))]),
321
352
  F.value ? (y(), l(o, {
322
353
  key: 0,
323
354
  show: h.value,
@@ -332,19 +363,19 @@ var E = { class: "section-header" }, D = { class: "header-actions" }, O = ["disa
332
363
  ])) : u("", !0)
333
364
  ]));
334
365
  }
335
- }), [["__scopeId", "data-v-85026b43"]]), be = { class: "view-container" }, xe = {
366
+ }), [["__scopeId", "data-v-85026b43"]]), Ce = { class: "view-container" }, we = {
336
367
  key: 2,
337
368
  class: "single-model-view"
338
- }, Q = { class: "error-actions" }, Se = {
369
+ }, Q = { class: "error-actions" }, Te = {
339
370
  key: 2,
340
371
  class: "loading-state"
341
- }, Ce = {
372
+ }, Ee = {
342
373
  key: 0,
343
374
  class: "text-loading"
344
- }, we = {
375
+ }, De = {
345
376
  key: 1,
346
377
  class: "text-error"
347
- }, Te = /*@__PURE__*/ h({
378
+ }, Oe = /*@__PURE__*/ h({
348
379
  __name: "CommunityModels",
349
380
  props: {
350
381
  activeCommunityModelKey: {},
@@ -404,7 +435,7 @@ var E = { class: "section-header" }, D = { class: "header-actions" }, O = ["disa
404
435
  s.value = !1;
405
436
  }
406
437
  }
407
- }, { immediate: !0 }), (t, n) => (y(), d("div", be, [h.value === "root" ? (y(), l(Z, {
438
+ }, { immediate: !0 }), (t, n) => (y(), d("div", Ce, [h.value === "root" ? (y(), l(Z, {
408
439
  key: 0,
409
440
  remote: _.value,
410
441
  "initial-search": e.initialSearch
@@ -417,7 +448,7 @@ var E = { class: "section-header" }, D = { class: "header-actions" }, O = ["disa
417
448
  "engine",
418
449
  "remote",
419
450
  "initial-search"
420
- ])) : h.value === "model" ? (y(), d("div", xe, [C.value ? (y(), l(X, {
451
+ ])) : h.value === "model" ? (y(), d("div", we, [C.value ? (y(), l(X, {
421
452
  key: C.value.name,
422
453
  file: C.value,
423
454
  initialCreatorExpanded: !1,
@@ -441,7 +472,7 @@ var E = { class: "section-header" }, D = { class: "header-actions" }, O = ["disa
441
472
  }, "Retry")])]),
442
473
  default: T(() => [p(S(D.value) + " ", 1)]),
443
474
  _: 1
444
- })) : (y(), d("div", Se, [s.value ? (y(), d("p", Ce, "Loading model...")) : (y(), d("p", we, "Model not found"))]))])) : u("", !0), E.value?.type === "generic" ? (y(), l(o, {
475
+ })) : (y(), d("div", Te, [s.value ? (y(), d("p", Ee, "Loading model...")) : (y(), d("p", De, "Model not found"))]))])) : u("", !0), E.value?.type === "generic" ? (y(), l(o, {
445
476
  key: 3,
446
477
  show: m.value,
447
478
  "store-name": E.value.name,
@@ -454,6 +485,6 @@ var E = { class: "section-header" }, D = { class: "header-actions" }, O = ["disa
454
485
  "token"
455
486
  ])) : u("", !0)]));
456
487
  }
457
- }), Ee = /* @__PURE__ */ e({ default: () => $ }), $ = /*#__PURE__*/ t(Te, [["__scopeId", "data-v-bcd63b28"]]);
488
+ }), ke = /* @__PURE__ */ e({ default: () => $ }), $ = /*#__PURE__*/ t(Oe, [["__scopeId", "data-v-bcd63b28"]]);
458
489
  //#endregion
459
- export { Ee as n, $ as t };
490
+ export { ke as n, $ as t };
@@ -2,14 +2,14 @@ import { n as e } from "./rolldown-runtime-Dqa2HsxW.js";
2
2
  import { n as t, o as n, s as r } from "./config-DwTONafa.js";
3
3
  import { t as i } from "./_plugin-vue_export-helper-B3ysoDQm.js";
4
4
  import { n as a, r as o } from "./screenBridge-BLlMdfhn.js";
5
- import { Qt as s, tn as c } from "./editorRefinementToolExecutor-mX8ClQ63.js";
6
- import "./stores-C1wUWiFm.js";
7
- import { i as l, s as u } from "./editorRefinementRuntime-C_YmXRy4.js";
8
- import { r as d, t as f } from "./editorStore-Ch7k-gse.js";
9
- import { n as p } from "./dashboardStore-CNkWQ4r7.js";
10
- import { a as m, i as h, m as g, n as _, o as v, r as y, s as b, t as x } from "./useDashboard-OoBKkkuQ.js";
11
- import { t as ee } from "./DashboardCreatorInline-LWvf--2x.js";
12
- import { t as S } from "./useGlobalChatPanel-CIeUyZba.js";
5
+ import { en as s, rn as c } from "./editorRefinementToolExecutor-CVY3FA7k.js";
6
+ import "./stores-BT9hTLny.js";
7
+ import { i as l, s as u } from "./editorRefinementRuntime-DoP9P5J2.js";
8
+ import { r as d, t as f } from "./editorStore-BhhmXbi-.js";
9
+ import { n as p } from "./dashboardStore-ppM6nGks.js";
10
+ import { a as m, i as h, m as g, n as _, o as v, r as y, s as b, t as x } from "./useDashboard-CdSnPe_6.js";
11
+ import { t as ee } from "./DashboardCreatorInline-CDU7kLy3.js";
12
+ import { t as S } from "./useGlobalChatPanel-D_0luajQ.js";
13
13
  import { Fragment as C, Teleport as w, computed as T, createBlock as E, createCommentVNode as te, createElementBlock as D, createElementVNode as O, createVNode as k, defineComponent as A, getCurrentInstance as ne, inject as re, nextTick as j, normalizeClass as ie, normalizeStyle as ae, onBeforeMount as oe, onBeforeUnmount as se, onMounted as ce, openBlock as M, provide as le, ref as N, renderList as P, renderSlot as ue, toDisplayString as F, unref as I, useSlots as de, vShow as L, watch as R, withCtx as fe, withDirectives as z } from "vue";
14
14
  //#region node_modules/.pnpm/vue3-grid-layout-next@1.0.7_typescript@5.9.3/node_modules/vue3-grid-layout-next/dist/vue3-grid-layout.js
15
15
  var pe = Object.defineProperty, B = (e, t, n) => t in e ? pe(e, t, {
@@ -1,7 +1,7 @@
1
1
  import { t as e } from "./_plugin-vue_export-helper-B3ysoDQm.js";
2
- import "./editorRefinementToolExecutor-mX8ClQ63.js";
3
- import { E as t } from "./editorRefinementRuntime-C_YmXRy4.js";
4
- import "./editorStore-Ch7k-gse.js";
2
+ import "./editorRefinementToolExecutor-CVY3FA7k.js";
3
+ import { E as t } from "./editorRefinementRuntime-DoP9P5J2.js";
4
+ import "./editorStore-BhhmXbi-.js";
5
5
  import { Fragment as n, computed as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, createTextVNode as s, inject as c, openBlock as l, ref as u, renderList as d, toDisplayString as f, vModelSelect as p, vModelText as m, withDirectives as h, withKeys as g, withModifiers as _ } from "vue";
6
6
  //#region components/dashboard/DashboardCreatorInline.vue?vue&type=script&lang.ts
7
7
  var v = {
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./_plugin-vue_export-helper-B3ysoDQm.js";
2
- import "./editorRefinementToolExecutor-mX8ClQ63.js";
2
+ import "./editorRefinementToolExecutor-CVY3FA7k.js";
3
3
  import { Fragment as t, computed as n, createCommentVNode as r, createElementBlock as i, createElementVNode as a, defineComponent as o, normalizeClass as s, onMounted as c, onUnmounted as l, openBlock as u, ref as d, renderList as f, toDisplayString as p, unref as m, vModelText as h, watch as g, withDirectives as _, withModifiers as v } from "vue";
4
4
  //#region composables/useClickOutside.ts
5
5
  function y(e) {
@@ -1,9 +1,9 @@
1
1
  import { n as e, o as t, s as n } from "./config-DwTONafa.js";
2
2
  import { t as r } from "./_plugin-vue_export-helper-B3ysoDQm.js";
3
- import { Et as i, Qt as a, tn as o } from "./editorRefinementToolExecutor-mX8ClQ63.js";
4
- import { n as ee } from "./dashboardStore-CNkWQ4r7.js";
5
- import { a as te, i as s, m as c, n as l, o as u, r as d, s as f, t as ne } from "./useDashboard-OoBKkkuQ.js";
6
- import { t as re } from "./DashboardCreatorInline-LWvf--2x.js";
3
+ import { Ot as i, en as a, rn as o } from "./editorRefinementToolExecutor-CVY3FA7k.js";
4
+ import { n as ee } from "./dashboardStore-ppM6nGks.js";
5
+ import { a as te, i as s, m as c, n as l, o as u, r as d, s as f, t as ne } from "./useDashboard-CdSnPe_6.js";
6
+ import { t as re } from "./DashboardCreatorInline-CDU7kLy3.js";
7
7
  import { Fragment as p, Teleport as m, computed as h, createBlock as g, createCommentVNode as _, createElementBlock as v, createElementVNode as y, createTextVNode as b, createVNode as x, defineComponent as S, inject as ie, nextTick as ae, normalizeClass as oe, normalizeStyle as C, openBlock as w, renderList as se, toDisplayString as ce, unref as T } from "vue";
8
8
  //#region components/dashboard/DashboardMobile.vue?vue&type=script&setup=true&lang.ts
9
9
  var E = {
@@ -1,17 +1,17 @@
1
1
  import { n as e } from "./rolldown-runtime-Dqa2HsxW.js";
2
2
  import { t } from "./_plugin-vue_export-helper-B3ysoDQm.js";
3
3
  import { r as n } from "./results-DTgAKr5j.js";
4
- import "./editorRefinementToolExecutor-mX8ClQ63.js";
5
- import "./stores-C1wUWiFm.js";
6
- import { A as r, M as i, N as a, S as o, T as s, j as c, k as l } from "./editorRefinementRuntime-C_YmXRy4.js";
7
- import { n as u } from "./globalChatRuntime-oMLiPLNC.js";
4
+ import "./editorRefinementToolExecutor-CVY3FA7k.js";
5
+ import "./stores-BT9hTLny.js";
6
+ import { A as r, M as i, N as a, S as o, T as s, j as c, k as l } from "./editorRefinementRuntime-DoP9P5J2.js";
7
+ import { n as u } from "./globalChatRuntime-DWZxeS57.js";
8
8
  import { t as d } from "./LoadingButton-OH3frQuO.js";
9
9
  import { t as f } from "./ErrorMessage-XMn_08gJ.js";
10
10
  import { t as p } from "./useIsMobile-CNpUQAvk.js";
11
11
  import { c as m, n as h, o as ee, r as g, u as te } from "./editor.api2-ClD5pp8H.js";
12
12
  import "./editor.main-Cl8i7rHY.js";
13
13
  import { t as _ } from "./tokenTheme-DBbeCrCg.js";
14
- import { t as ne } from "./SymbolsPane-BpmL___H.js";
14
+ import { t as ne } from "./SymbolsPane-KYSwN9Sv.js";
15
15
  import { Fragment as re, computed as ie, createBlock as v, createCommentVNode as y, createElementBlock as b, createElementVNode as x, createTextVNode as S, createVNode as C, defineComponent as w, inject as T, mergeProps as E, nextTick as D, normalizeClass as O, normalizeStyle as ae, onMounted as oe, onUnmounted as se, openBlock as k, ref as A, resolveComponent as j, toDisplayString as M, unref as N, vModelText as P, watch as F, withCtx as I, withDirectives as L, withKeys as R } from "vue";
16
16
  //#region components/editor/EditorToolbarActions.vue?vue&type=script&setup=true&lang.ts
17
17
  var z = { class: "action-group action-group-scope" }, B = ["aria-pressed"], V = {
@@ -685,7 +685,7 @@ var Ne = w({
685
685
  let e = this.editorConnection?.model;
686
686
  e && (this.modelStore.models[e].addModelSourceSimple(this.editorData.id, this.editorData.name), this.$emit("save-models"));
687
687
  }
688
- this.editorData.tags = this.editorData.tags.includes(e) ? this.editorData.tags.filter((t) => t !== e) : [...this.editorData.tags, e];
688
+ this.editorData.tags.includes(e) ? this.editorData.removeTag(e) : this.editorData.addTag(e);
689
689
  },
690
690
  handleContentsChange(e) {
691
691
  this.editorStore.setEditorContents(this.editorId, e);