intelligent-system-design-language 0.3.28 → 0.3.34

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 (48) hide show
  1. package/.claude/commands/discord-sweep.md +95 -0
  2. package/.claude/commands/release-notes.md +86 -0
  3. package/.claude/commands/support-reply.md +61 -0
  4. package/.claude/commands/wiki-sync.md +90 -0
  5. package/.claude/feedback-sweep.json +12 -0
  6. package/.claude/settings.json +14 -0
  7. package/.codegraph/daemon.pid +6 -0
  8. package/.mcp.json +12 -0
  9. package/out/_isdlStyles.scss +2 -1
  10. package/out/cli/components/_isdlStyles.scss +2 -1
  11. package/out/cli/components/derived-data-generator.js +5 -2
  12. package/out/cli/components/derived-data-generator.js.map +1 -1
  13. package/out/cli/components/method-generator.js +67 -20
  14. package/out/cli/components/method-generator.js.map +1 -1
  15. package/out/cli/components/utils.js +5 -3
  16. package/out/cli/components/utils.js.map +1 -1
  17. package/out/cli/components/vue/base-components/vue-attribute.js +1 -1
  18. package/out/cli/components/vue/base-components/vue-resource.js +3 -2
  19. package/out/cli/components/vue/base-components/vue-resource.js.map +1 -1
  20. package/out/cli/components/vue/base-components/vue-tracker.js +10 -4
  21. package/out/cli/components/vue/base-components/vue-tracker.js.map +1 -1
  22. package/out/cli/components/vue/vue-datatable2-component-generator.js +185 -24
  23. package/out/cli/components/vue/vue-datatable2-component-generator.js.map +1 -1
  24. package/out/cli/components/vue/vue-generator.js +45 -4
  25. package/out/cli/components/vue/vue-generator.js.map +1 -1
  26. package/out/cli/components/vue/vue-sheet-application-generator.js +196 -43
  27. package/out/cli/components/vue/vue-sheet-application-generator.js.map +1 -1
  28. package/out/cli/components/vue/vue-sheet-class-generator.js +4 -5
  29. package/out/cli/components/vue/vue-sheet-class-generator.js.map +1 -1
  30. package/out/extension/main.cjs +1627 -898
  31. package/out/extension/main.cjs.map +3 -3
  32. package/out/extension/package.json +1 -1
  33. package/out/language/generated/ast.js +132 -12
  34. package/out/language/generated/ast.js.map +1 -1
  35. package/out/language/generated/grammar.js +1460 -876
  36. package/out/language/generated/grammar.js.map +1 -1
  37. package/out/language/intelligent-system-design-language-formatter.js +4 -1
  38. package/out/language/intelligent-system-design-language-formatter.js.map +1 -1
  39. package/out/language/intelligent-system-design-language-validator.js +43 -5
  40. package/out/language/intelligent-system-design-language-validator.js.map +1 -1
  41. package/out/language/isdl-document-validator.js +3 -3
  42. package/out/language/isdl-document-validator.js.map +1 -1
  43. package/out/language/isdl-scope-provider.js +6 -4
  44. package/out/language/isdl-scope-provider.js.map +1 -1
  45. package/out/language/main.cjs +1629 -900
  46. package/out/language/main.cjs.map +3 -3
  47. package/out/package.json +1 -1
  48. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import * as path from 'node:path';
2
2
  import * as fs from 'node:fs';
3
+ import { createRequire } from 'node:module';
3
4
  import { isActor, isPage, isPinnedField, isPrompt, isTableField, isVariableExpression } from "../../../language/generated/ast.js";
4
5
  import { generateDocumentVueComponent } from "./vue-sheet-application-generator.js";
5
6
  import { expandToNode, joinToNode, toString } from 'langium/generate';
@@ -48,19 +49,59 @@ export async function runViteBuild(destination) {
48
49
  try {
49
50
  const __filename = fileURLToPath(import.meta.url);
50
51
  const __dirname = path.dirname(__filename);
52
+ // The generated system directory has no node_modules of its own, so
53
+ // we must redirect all bare-specifier imports at the CLI's own
54
+ // node_modules. A simple string-prefix alias
55
+ // { vuetify: ".../node_modules/vuetify" }
56
+ // works for the root package but **bypasses the exports map** for
57
+ // sub-paths. vite-plugin-vuetify / @vuetify/loader-shared emits
58
+ // per-component imports such as "vuetify/components/VBtn". After the
59
+ // prefix alias that becomes ".../node_modules/vuetify/components/VBtn"
60
+ // — a path that doesn't exist on disk (real files live under lib/).
61
+ // On Linux (case-sensitive FS) this is a hard ENOENT; issue #85.
62
+ //
63
+ // Fix: use a custom Vite plugin with a resolveId hook that forwards
64
+ // all "vuetify/*" specifiers through Node's require() resolver, which
65
+ // honours the exports map and returns the real lib/ path regardless of
66
+ // which sub-path shape loader-shared generated.
67
+ const nodeModules = path.resolve(__dirname, "../../../../node_modules");
68
+ // createRequire needs a file URL; any file inside nodeModules works as anchor.
69
+ const cliRequire = createRequire(path.join(nodeModules, "vuetify", "package.json"));
70
+ // enforce:'pre' so this plugin runs BEFORE @rollup/plugin-alias, preventing
71
+ // the alias from mangling "vuetify/components/VBtn" into an absolute path
72
+ // (which would no longer start with "vuetify" and bypass the resolver).
73
+ const vuetifyResolverPlugin = {
74
+ name: "isdl:vuetify-resolver",
75
+ enforce: "pre",
76
+ resolveId(id) {
77
+ // Intercept any import that starts with "vuetify" (bare or sub-path).
78
+ if (!id.startsWith("vuetify"))
79
+ return null;
80
+ try {
81
+ return cliRequire.resolve(id);
82
+ }
83
+ catch (_a) {
84
+ // Not resolvable — let Vite handle it (shouldn't happen in practice).
85
+ return null;
86
+ }
87
+ }
88
+ };
51
89
  const config = defineConfig({
52
90
  root: destination,
53
91
  plugins: [
54
92
  vue(),
55
- vuetify({ autoImport: true })
93
+ vuetify({ autoImport: true }),
94
+ vuetifyResolverPlugin
56
95
  ],
57
96
  optimizeDeps: {
58
97
  include: ["vuetify"]
59
98
  },
60
99
  resolve: {
61
- alias: {
62
- vuetify: path.resolve(__dirname, "../../../../node_modules/vuetify"),
63
- }
100
+ // No alias for vuetify — the vuetifyResolverPlugin above handles all
101
+ // "vuetify/*" specifiers via Node's exports-map-aware resolver, which
102
+ // correctly maps e.g. "vuetify/components/VBtn" -> lib/components/VBtn/index.mjs
103
+ // regardless of which loader-shared version generated the import (issue #85).
104
+ alias: {}
64
105
  },
65
106
  build: {
66
107
  emptyOutDir: true,
@@ -1 +1 @@
1
- {"version":3,"file":"vue-generator.js","sourceRoot":"","sources":["../../../../src/cli/components/vue/vue-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vue-generator.js","sourceRoot":"","sources":["../../../../src/cli/components/vue/vue-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAGH,OAAO,EACP,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,YAAY,EACtB,oBAAoB,EAGvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,EAA0B,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,GAAG,MAAM,oBAAoB,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,iBAAiB,EAAmB,MAAM,aAAa,CAAC;AAC5G,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,4BAA4B,EAAC,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAC,gCAAgC,EAAC,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAC,8BAA8B,EAAC,MAAM,kCAAkC,CAAC;AAEhF,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,EAAU,EAAE,WAAmB;IAErE,0BAA0B;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACpE,IAAI;QACA,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACvB,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SACvD;KACJ;IAAC,OAAO,GAAG,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,kCAAkC,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;KACnE;IAED,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC9B,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3B,cAAc,CAAC,WAAW,CAAC,CAAC;IAC5B,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEhC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC9B,4BAA4B,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;IACrD,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACrC,yBAAyB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAE9C,yBAAyB,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;IAClD,8BAA8B,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;IACvD,gCAAgC,CAAC,KAAK,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;IAEzD,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACxB,wBAAwB,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;QACpD,4BAA4B,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB;IAClD,IAAI;QACA,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,oEAAoE;QACpE,+DAA+D;QAC/D,8CAA8C;QAC9C,4CAA4C;QAC5C,kEAAkE;QAClE,iEAAiE;QACjE,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,iEAAiE;QACjE,EAAE;QACF,oEAAoE;QACpE,sEAAsE;QACtE,uEAAuE;QACvE,gDAAgD;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;QACxE,+EAA+E;QAC/E,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;QAEpF,4EAA4E;QAC5E,0EAA0E;QAC1E,wEAAwE;QACxE,MAAM,qBAAqB,GAAG;YAC1B,IAAI,EAAE,uBAAuB;YAC7B,OAAO,EAAE,KAAc;YACvB,SAAS,CAAC,EAAU;gBAChB,sEAAsE;gBACtE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC3C,IAAI;oBACA,OAAO,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;iBACjC;gBAAC,WAAM;oBACJ,sEAAsE;oBACtE,OAAO,IAAI,CAAC;iBACf;YACL,CAAC;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,YAAY,CAAC;YACxB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE;gBACL,GAAG,EAAE;gBACL,OAAO,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;gBAC7B,qBAAqB;aACxB;YACD,YAAY,EAAE;gBACV,OAAO,EAAE,CAAC,SAAS,CAAC;aACvB;YACD,OAAO,EAAE;gBACL,qEAAqE;gBACrE,sEAAsE;gBACtE,iFAAiF;gBACjF,8EAA8E;gBAC9E,KAAK,EAAE,EAAE;aACZ;YACD,KAAK,EAAE;gBACH,WAAW,EAAE,IAAI;gBACjB,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE,gCAAgC;gBACxC,GAAG,EAAE;oBACD,KAAK,EAAE,kCAAkC;oBACzC,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,mBAAmB;iBAChC;gBACD,aAAa,EAAE;oBACX,QAAQ,EAAE,CAAC,KAAK,CAAC;oBACjB,MAAM,EAAE;wBACJ,OAAO,EAAE;4BACL,GAAG,EAAE,KAAK;yBACb;wBACD,4DAA4D;wBAC5D,KAAK,EAAE;4BACH,GAAG,EAAE,oCAAoC;yBAC5C;qBACJ;iBACJ;aACJ;SACJ,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;QACxB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;KACvB;IACD,OAAO,CAAC,EAAE;QACN,kEAAkE;QAClE,mEAAmE;QACnE,qEAAqE;QACrE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjB,MAAM,CAAC,CAAC;KACX;AACL,CAAC;AAED,iDAAiD;AACjD,0EAA0E;AAE1E,qCAAqC;AACrC,2CAA2C;AAE3C,gDAAgD;AAChD,qGAAqG;AACrG,mBAAmB;AACnB,qCAAqC;AACrC,aAAa;AACb,UAAU;AACV,yBAAyB;AAEzB,+DAA+D;AAC/D,IAAI;AAIJ,SAAS,gBAAgB,CAAC,WAAmB;IACzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC;IAE9E,mBAAmB,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc,EAAE,WAAmB;IAC5D,uDAAuD;IACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QAClC,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACvD;IAED,kDAAkD;IAClD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAC5F,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,WAAmB;IACtC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAE1E,QAAQ,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,cAAc,CAAC,WAAmB;IACvC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAE3E,mBAAmB,CAAC,mCAAmC,EAAE,iBAAiB,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,QAAQ,CAAC,MAAc,EAAE,WAAmB;IACjD,uDAAuD;IACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QAClC,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACvD;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEpD,OAAO,CAAC,GAAG,CAAC,WAAW,cAAc,OAAO,WAAW,EAAE,CAAC,CAAC;IAE3D,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,kBAAkB,CAAC,WAAmB;IAC3C,WAAW;IACX,mBAAmB,CAAC,2CAA2C,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,6BAA6B,CAAC,CAAC,CAAC;IAE/H,aAAa;IACb,mBAAmB,CAAC,iDAAiD,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,iCAAiC,CAAC,CAAC,CAAC;IAC3I,mBAAmB,CAAC,iDAAiD,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,iCAAiC,CAAC,CAAC,CAAC;IAC3I,mBAAmB,CAAC,kDAAkD,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,kCAAkC,CAAC,CAAC,CAAC;IAC7I,mBAAmB,CAAC,mDAAmD,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,mCAAmC,CAAC,CAAC,CAAC;AACnJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAY,EAAE,WAAmB;IACvD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC9E,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAEnE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QAClC,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACvD;IAED,SAAS,cAAc,CAAC,QAAkB;QACtC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAClD,OAAO,uBAAuB,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC;IAC/J,CAAC;IAED,SAAS,6BAA6B,CAAC,QAAkB;QACrD,MAAM,UAAU,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QACzD,OAAO,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAA2B,CAAC,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC;IACrL,CAAC;IAED,SAAS,qBAAqB,CAAC,SAA0B,EAAE,QAAkB;QACzE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAClD,MAAM,eAAe,GAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAE5I,OAAO,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACtC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACjD,OAAO,uBAAuB,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,oBAAoB,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,uBAAuB,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,cAAc,CAAC;QAC9M,CAAC,CAAC,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS,kCAAkC,CAAC,QAAkB;QAE1D,SAAS,4BAA4B,CAAC,SAAqB;YACvD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAElD,OAAO,YAAY,CAAA;sCACO,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI,8BAA8B,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,0BAA0B,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI;aAC3N,CAAC;QACN,CAAC;QAED,SAAS,oBAAoB,CAAC,SAAsB;YAChD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;YAElD,OAAO,YAAY,CAAA;sCACO,IAAI,GAAG,QAAQ,CAAC,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI,8BAA8B,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,0BAA0B,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,GAAG,SAAS,CAAC,IAAI;aAC3N,CAAC;QACN,CAAC;QAED,MAAM,MAAM,GAAG,YAAY,CAAa,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;QAC5E,MAAM,MAAM,GAAG,YAAY,CAAc,QAAQ,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAC9E,OAAO,YAAY,CAAA;cACb,UAAU,CAAC,MAAM,EAAE,4BAA4B,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;cACrE,UAAU,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SAClE,CAAC;IACN,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA+B3B,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;MAClF,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;MACjG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,kCAAkC,CAAC,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAC;KACvG,CAAC,aAAa,EAAE,CAAC;IAElB,EAAE,CAAC,aAAa,CAAC,iBAAiB,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import * as path from 'node:path';
2
2
  import * as fs from 'node:fs';
3
3
  import { expandToNode, joinToNode, toString } from 'langium/generate';
4
- import { isAccess, isAction, isActor, isConfigFlag, isTheme, isThemeFieldParam, isThemePrimaryParam, isThemeSecondaryParam, isThemeTertiaryParam, isAttributeExp, isAttributeParamMod, isAttributeRollParam, isAttributeFunctionParam, isAttributeStyleParam, isBackgroundParam, isBooleanExp, isBooleanParamValue, isChoiceCustomProperty, isChoiceStringValue, isColorParam, isColumn, isDateExp, isDateTimeExp, isDiceField, isDiceFields, isDieChoicesParam, isDieNoneParam, isDieField, isDocumentChoiceExp, isDocumentChoicesExp, isEntry, isHtmlExp, isIconParam, isImageParam, isLabelParam, isMacroField, isMeasuredTemplateField, isDamageBonusesField, isDamageResistancesField, isPinnedField, isMoneyField, isDamageTrackExp, isDamageTrackTypesParam, isRollVisualizerField, isImageField, isImagePrimaryParam, isHideLabelParam, isMethodBlock, isNumberExp, isNumberParamMax, isNumberParamMin, isNumberParamValue, isNumberParamCalculator, isPage, isPaperDollExp, isParentPropertyRefChoiceParam, isParentPropertyRefExp, isSelfPropertyRefExp, isProperty, isResourceExp, isRow, isSection, isSegmentsParameter, isSingleDocumentExp, isSizeParam, isStatusProperty, isStringChoiceField, isDamageTypeChoiceField, isStringChoicesField, isStringExp, isStringExtendedChoice, isStringParamChoices, isStringParamValue, isTableField, isTimeExp, isTrackerExp, isTrackerStyleParameter, isVisibilityParam, isInventoryField, isInventorySlotsParam, isInventoryRowsParam, isInventoryColumnsParam, isInventorySlotSizeParam, isInventoryQuantityParam, isInventoryMoneyParam, isInventorySumParam, isInventorySumMaxParam, isInventorySortParam, isInventoryEmptySlotsParam, isInventorySummaryParam, isWhereParam, isGlobalParam } from "../../../language/generated/ast.js";
4
+ import { isAccess, isAction, isActor, isConfigFlag, isTheme, isThemeFieldParam, isThemePrimaryParam, isThemeSecondaryParam, isThemeTertiaryParam, isAttributeExp, isAttributeParamMod, isAttributeRollParam, isAttributeFunctionParam, isAttributeStyleParam, isBackgroundParam, isBooleanExp, isBooleanParamValue, isChoiceCustomProperty, isChoiceStringValue, isColorParam, isColumn, isDateExp, isDateTimeExp, isDiceField, isDiceFields, isDieChoicesParam, isDieNoneParam, isDieField, isDocumentChoiceExp, isDocumentChoicesExp, isEntry, isHtmlExp, isIconParam, isImageParam, isLabelParam, isMacroField, isMeasuredTemplateField, isDamageBonusesField, isDamageResistancesField, isPinnedField, isMoneyField, isDamageTrackExp, isDamageTrackTypesParam, isRollVisualizerField, isImageField, isImagePrimaryParam, isHideLabelParam, isCollapsibleParam, isCollapsedParam, isEmptyColorParam, isThemeElevationParam, isMethodBlock, isNumberExp, isNumberParamMax, isNumberParamMin, isNumberParamValue, isNumberParamCalculator, isPage, isPaperDollExp, isParentPropertyRefChoiceParam, isParentPropertyRefExp, isSelfPropertyRefExp, isProperty, isResourceExp, isRow, isSection, isSegmentsParameter, isSingleDocumentExp, isSizeParam, isStatusProperty, isStringChoiceField, isDamageTypeChoiceField, isStringChoicesField, isStringExp, isStringExtendedChoice, isStringParamChoices, isStringParamValue, isTableField, isTimeExp, isTrackerExp, isTrackerStyleParameter, isVisibilityParam, isInventoryField, isInventorySlotsParam, isInventoryRowsParam, isInventoryColumnsParam, isInventorySlotSizeParam, isInventoryQuantityParam, isInventoryMoneyParam, isInventorySumParam, isInventorySumMaxParam, isInventorySortParam, isInventoryEmptySlotsParam, isInventorySummaryParam, isWhereParam, isGlobalParam } from "../../../language/generated/ast.js";
5
5
  import { getAllOfType, getDocument, getSystemPath, globalGetAllOfType, toMachineIdentifier } from '../utils.js';
6
6
  import { AstUtils } from 'langium';
7
7
  import { generateActionComponent, generateDocumentPromptApps } from './vue-action-component-generator.js';
@@ -41,6 +41,17 @@ function getUserColorsEnabled(entry) {
41
41
  const flag = entry.config.body.find(x => isConfigFlag(x) && x.type === 'userColors');
42
42
  return flag ? flag.value : true;
43
43
  }
44
+ // Returns the elevation integer from the global `theme { elevation: N }` block, or 4 if unset.
45
+ const DEFAULT_ELEVATION = 4;
46
+ function getGlobalThemeElevation(entry) {
47
+ const theme = entry.config.body.find(isTheme);
48
+ if (theme) {
49
+ const ep = theme.params.find(isThemeElevationParam);
50
+ if (ep != null)
51
+ return ep.value;
52
+ }
53
+ return DEFAULT_ELEVATION;
54
+ }
44
55
  export function generateDocumentVueComponent(entry, id, document, destination) {
45
56
  const type = isActor(document) ? 'actor' : 'item';
46
57
  const generatedFileDir = path.join(destination, "system", "templates", "vue", type, document.name.toLowerCase());
@@ -57,6 +68,31 @@ export function generateDocumentVueComponent(entry, id, document, destination) {
57
68
  `.appendNewLineIfNotEmpty();
58
69
  fs.writeFileSync(generatedFilePath, toString(fileNode));
59
70
  }
71
+ function generateCollapsibleSectionsSetup(document) {
72
+ const allSections = getAllOfType(document.body, isSection);
73
+ const collapsibleSections = allSections.filter(s => { var _a; return ((_a = s.params) !== null && _a !== void 0 ? _a : []).some(p => isCollapsibleParam(p) && p.value); });
74
+ if (collapsibleSections.length === 0)
75
+ return '';
76
+ const defaultCollapsedEntries = collapsibleSections
77
+ .filter(s => { var _a; return ((_a = s.params) !== null && _a !== void 0 ? _a : []).some(p => isCollapsedParam(p) && p.value); })
78
+ .map(s => `'${s.name.toLowerCase()}': true`)
79
+ .join(', ');
80
+ const defaultsObj = `{ ${defaultCollapsedEntries} }`;
81
+ return `
82
+ // Collapsible sections — state persisted per-document in localStorage.
83
+ const _collapsibleDefaults = ${defaultsObj};
84
+ const collapsedSections = ref((() => {
85
+ try {
86
+ const s = JSON.parse(localStorage.getItem(\`isdl-sections-\${document.uuid}\`) ?? 'null');
87
+ return s !== null ? s : { ..._collapsibleDefaults };
88
+ } catch { return { ..._collapsibleDefaults }; }
89
+ })());
90
+ const toggleSection = (name) => {
91
+ collapsedSections.value[name] = !collapsedSections.value[name];
92
+ localStorage.setItem(\`isdl-sections-\${document.uuid}\`, JSON.stringify(collapsedSections.value));
93
+ };
94
+ `;
95
+ }
60
96
  function generateVueComponentScript(entry, id, document, destination) {
61
97
  const pages = getAllOfType(document.body, isPage);
62
98
  const actions = getAllOfType(document.body, isAction, false);
@@ -710,6 +746,8 @@ function generateVueComponentScript(entry, id, document, destination) {
710
746
  document.setFlag('${id}', 'edit-mode', editModeRef.value);
711
747
  };
712
748
 
749
+ ${generateCollapsibleSectionsSetup(document)}
750
+
713
751
  function spawnDatatableWindow(e, pageName, tabName) {
714
752
  if (event.button === 1) {
715
753
  event.preventDefault();
@@ -1022,7 +1060,7 @@ function generateVueComponentTemplate(entry, id, document) {
1022
1060
  `.appendNewLine();
1023
1061
  }
1024
1062
  function generateInventoryTabWindow(pageName, element) {
1025
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
1063
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
1026
1064
  const systemPath = getSystemPath(element, [], undefined, false);
1027
1065
  const iconParam = element.params.find(p => isIconParam(p));
1028
1066
  const labelParam = element.params.find(p => isLabelParam(p));
@@ -1044,21 +1082,21 @@ function generateVueComponentTemplate(entry, id, document) {
1044
1082
  const slots = (_a = slotsParam === null || slotsParam === void 0 ? void 0 : slotsParam.value) !== null && _a !== void 0 ? _a : 20;
1045
1083
  const rows = rowsParam === null || rowsParam === void 0 ? void 0 : rowsParam.value;
1046
1084
  const slotSize = slotSizeParam ? parseInt(slotSizeParam.value.replace('px', '')) : 60;
1047
- const documentType = (_b = element.document.ref) === null || _b === void 0 ? void 0 : _b.name.toLowerCase();
1048
- const quantityField = (_c = quantityParam === null || quantityParam === void 0 ? void 0 : quantityParam.field.ref) === null || _c === void 0 ? void 0 : _c.name.toLowerCase();
1049
- const moneyField = (_d = moneyParam === null || moneyParam === void 0 ? void 0 : moneyParam.field.ref) === null || _d === void 0 ? void 0 : _d.name.toLowerCase();
1050
- const moneyFieldLabel = moneyField ? `${document.name}.${(_f = (_e = moneyParam === null || moneyParam === void 0 ? void 0 : moneyParam.field) === null || _e === void 0 ? void 0 : _e.ref) === null || _f === void 0 ? void 0 : _f.name}` : undefined;
1051
- const moneyFieldIcon = moneyField ? (_j = (_h = (_g = moneyParam === null || moneyParam === void 0 ? void 0 : moneyParam.field) === null || _g === void 0 ? void 0 : _g.ref) === null || _h === void 0 ? void 0 : _h.params.find(isIconParam)) === null || _j === void 0 ? void 0 : _j.value : undefined;
1052
- const sortProperty = (_k = sortParam === null || sortParam === void 0 ? void 0 : sortParam.property.ref) === null || _k === void 0 ? void 0 : _k.name;
1053
- const sortOrder = (_l = sortParam === null || sortParam === void 0 ? void 0 : sortParam.order) !== null && _l !== void 0 ? _l : 'asc';
1054
- const globalAllowed = (_m = globalParam === null || globalParam === void 0 ? void 0 : globalParam.value) !== null && _m !== void 0 ? _m : false;
1055
- const emptySlots = (_o = emptySlotsParam === null || emptySlotsParam === void 0 ? void 0 : emptySlotsParam.value) !== null && _o !== void 0 ? _o : 'show';
1056
- const summary = (_p = summaryParam === null || summaryParam === void 0 ? void 0 : summaryParam.value) !== null && _p !== void 0 ? _p : 'full';
1085
+ const documentType = (_c = (_b = element.documents[0]) === null || _b === void 0 ? void 0 : _b.ref) === null || _c === void 0 ? void 0 : _c.name.toLowerCase();
1086
+ const quantityField = (_d = quantityParam === null || quantityParam === void 0 ? void 0 : quantityParam.field.ref) === null || _d === void 0 ? void 0 : _d.name.toLowerCase();
1087
+ const moneyField = (_e = moneyParam === null || moneyParam === void 0 ? void 0 : moneyParam.field.ref) === null || _e === void 0 ? void 0 : _e.name.toLowerCase();
1088
+ const moneyFieldLabel = moneyField ? `${document.name}.${(_g = (_f = moneyParam === null || moneyParam === void 0 ? void 0 : moneyParam.field) === null || _f === void 0 ? void 0 : _f.ref) === null || _g === void 0 ? void 0 : _g.name}` : undefined;
1089
+ const moneyFieldIcon = moneyField ? (_k = (_j = (_h = moneyParam === null || moneyParam === void 0 ? void 0 : moneyParam.field) === null || _h === void 0 ? void 0 : _h.ref) === null || _j === void 0 ? void 0 : _j.params.find(isIconParam)) === null || _k === void 0 ? void 0 : _k.value : undefined;
1090
+ const sortProperty = (_l = sortParam === null || sortParam === void 0 ? void 0 : sortParam.property.ref) === null || _l === void 0 ? void 0 : _l.name;
1091
+ const sortOrder = (_m = sortParam === null || sortParam === void 0 ? void 0 : sortParam.order) !== null && _m !== void 0 ? _m : 'asc';
1092
+ const globalAllowed = (_o = globalParam === null || globalParam === void 0 ? void 0 : globalParam.value) !== null && _o !== void 0 ? _o : false;
1093
+ const emptySlots = (_p = emptySlotsParam === null || emptySlotsParam === void 0 ? void 0 : emptySlotsParam.value) !== null && _p !== void 0 ? _p : 'show';
1094
+ const summary = (_q = summaryParam === null || summaryParam === void 0 ? void 0 : summaryParam.value) !== null && _q !== void 0 ? _q : 'full';
1057
1095
  // Handle sum properties (can be single or array)
1058
1096
  let sumProperties = [];
1059
1097
  if (sumParam) {
1060
1098
  if (sumParam.properties.property) {
1061
- sumProperties = [((_q = sumParam.properties.property.ref) === null || _q === void 0 ? void 0 : _q.name) || ''];
1099
+ sumProperties = [((_r = sumParam.properties.property.ref) === null || _r === void 0 ? void 0 : _r.name) || ''];
1062
1100
  }
1063
1101
  else if (sumParam.properties.properties) {
1064
1102
  sumProperties = sumParam.properties.properties
@@ -1081,7 +1119,7 @@ function generateVueComponentTemplate(entry, id, document) {
1081
1119
  sumMax = `context.${toString(sumMaxNode)}`;
1082
1120
  }
1083
1121
  }
1084
- else if ((_r = sumMaxParam.values) === null || _r === void 0 ? void 0 : _r.values) {
1122
+ else if ((_s = sumMaxParam.values) === null || _s === void 0 ? void 0 : _s.values) {
1085
1123
  // It's an array of ints/expressions
1086
1124
  const maxValues = sumMaxParam.values.values.map((val) => {
1087
1125
  if (typeof val === 'number') {
@@ -1163,7 +1201,7 @@ function generateVueComponentTemplate(entry, id, document) {
1163
1201
  `.appendNewLine();
1164
1202
  }
1165
1203
  function generateElement(element, isTopLevel = false) {
1166
- var _a, _b;
1204
+ var _a, _b, _c, _d;
1167
1205
  // A layout container's `theme: { ... }` compiles to an inline `style="..."` of ACTUAL
1168
1206
  // CSS (not `--isdl-*` vars, which would inherit and leak sizing into nested children).
1169
1207
  // The themed style is split by who owns the geometry: WIDTH governs the flex item that
@@ -1178,12 +1216,39 @@ function generateVueComponentTemplate(entry, id, document) {
1178
1216
  const cardStyle = [themeHeightToInlineStyle(themeParam), themePaintToInlineStyle(themeParam)]
1179
1217
  .filter(s => s.length > 0).join('; ');
1180
1218
  const cardAttr = cardStyle.length > 0 ? ` style="${cardStyle}"` : '';
1219
+ const sectionParams = (_b = element.params) !== null && _b !== void 0 ? _b : [];
1181
1220
  // `hideLabel: true` on a section drops its title bar entirely (compact, unlabeled panel).
1182
- const hideTitle = ((_b = element.params) !== null && _b !== void 0 ? _b : []).some((p) => isHideLabelParam(p) && p.value);
1183
- const titleNode = hideTitle ? '' : `<v-card-title>{{ game.i18n.localize('${document.name}.${element.name}') }}</v-card-title>`;
1221
+ const hideTitle = sectionParams.some((p) => isHideLabelParam(p) && p.value);
1222
+ // Elevation: per-section theme override, falling back to global theme elevation (default 4).
1223
+ const sectionElevationParam = (_c = themeParam === null || themeParam === void 0 ? void 0 : themeParam.params) === null || _c === void 0 ? void 0 : _c.find(isThemeElevationParam);
1224
+ const elevation = (_d = sectionElevationParam === null || sectionElevationParam === void 0 ? void 0 : sectionElevationParam.value) !== null && _d !== void 0 ? _d : getGlobalThemeElevation(entry);
1225
+ // Collapsible: `collapsible: true` wraps body in a toggled expand-transition.
1226
+ const isCollapsible = sectionParams.some((p) => isCollapsibleParam(p) && p.value);
1227
+ const sectionName = element.name.toLowerCase();
1228
+ const localizeKey = `${document.name}.${element.name}`;
1229
+ if (isCollapsible) {
1230
+ const titleBar = hideTitle
1231
+ ? ''
1232
+ : `<v-card-title class="isdl-section-title" @click.stop="toggleSection('${sectionName}')" style="cursor:pointer;display:flex;align-items:center;">{{ game.i18n.localize('${localizeKey}') }}<v-icon class="ml-auto" :icon="collapsedSections['${sectionName}'] ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-up'"></v-icon></v-card-title>`;
1233
+ return expandToNode `
1234
+ <v-col class="section isdl-section isdl-section-${sectionName}"${colAttr}>
1235
+ <v-card variant="outlined" elevation="${elevation}"${cardAttr}>
1236
+ ${titleBar}
1237
+ <v-expand-transition>
1238
+ <v-card-text v-show="!collapsedSections['${sectionName}']">
1239
+ <v-row dense>
1240
+ ${joinToNode(element.body, element => generateElement(element), { appendNewLineIfNotEmpty: true })}
1241
+ </v-row>
1242
+ </v-card-text>
1243
+ </v-expand-transition>
1244
+ </v-card>
1245
+ </v-col>
1246
+ `;
1247
+ }
1248
+ const titleNode = hideTitle ? '' : `<v-card-title>{{ game.i18n.localize('${localizeKey}') }}</v-card-title>`;
1184
1249
  return expandToNode `
1185
- <v-col class="section isdl-section isdl-section-${element.name.toLowerCase()}"${colAttr}>
1186
- <v-card variant="outlined" elevation="4"${cardAttr}>
1250
+ <v-col class="section isdl-section isdl-section-${sectionName}"${colAttr}>
1251
+ <v-card variant="outlined" elevation="${elevation}"${cardAttr}>
1187
1252
  ${titleNode}
1188
1253
 
1189
1254
  <v-card-text>
@@ -1204,9 +1269,11 @@ function generateVueComponentTemplate(entry, id, document) {
1204
1269
  const styleAttr = containerStyle.length > 0 ? ` style="${containerStyle}"` : '';
1205
1270
  if (isRow(element)) {
1206
1271
  return expandToNode `
1207
- <v-row dense class="isdl-row"${styleAttr}>
1208
- ${joinToNode(element.body, element => generateElement(element), { appendNewLineIfNotEmpty: true })}
1209
- </v-row>
1272
+ <v-col cols="12"${styleAttr}>
1273
+ <v-row dense class="isdl-row">
1274
+ ${joinToNode(element.body, element => generateElement(element), { appendNewLineIfNotEmpty: true })}
1275
+ </v-row>
1276
+ </v-col>
1210
1277
  `;
1211
1278
  }
1212
1279
  if (isColumn(element)) {
@@ -1254,7 +1321,7 @@ function generateVueComponentTemplate(entry, id, document) {
1254
1321
  // Every field branch returns an <i-...> root, so this reaches ALL field types -- no
1255
1322
  // per-branch allowlist to drift out of sync as new field types are added.
1256
1323
  const fieldComponent = (() => {
1257
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8;
1324
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9;
1258
1325
  if (isRollVisualizerField(element)) {
1259
1326
  const { formula, data } = compileVisualizerFormula(entry, id, element);
1260
1327
  return expandToNode `
@@ -1919,6 +1986,8 @@ function generateVueComponentTemplate(entry, id, document) {
1919
1986
  const primaryColor = colorParam ? `'${colorParam.value}'` : "primaryColor";
1920
1987
  const segmentParm = element.params.find(x => isSegmentsParameter(x));
1921
1988
  const segments = (_o = segmentParm === null || segmentParm === void 0 ? void 0 : segmentParm.segments) !== null && _o !== void 0 ? _o : 1;
1989
+ const emptyColorParam = element.params.find(x => isEmptyColorParam(x));
1990
+ const emptyColor = emptyColorParam === null || emptyColorParam === void 0 ? void 0 : emptyColorParam.value;
1922
1991
  let isHealth = false;
1923
1992
  let isWounds = false;
1924
1993
  if (isResourceExp(element)) {
@@ -1934,8 +2003,9 @@ function generateVueComponentTemplate(entry, id, document) {
1934
2003
  :visibility="visibilityStates['${element.name.toLowerCase()}'].value"
1935
2004
  :editMode="editModeRef"
1936
2005
  :primaryColor="${primaryColor}" :secondaryColor="secondaryColor" :tertiaryColor="tertiaryColor"
2006
+ ${emptyColor != null ? `emptyColor="${emptyColor}"` : ''}
1937
2007
  trackerStyle="${style}"
1938
- icon="${icon}"
2008
+ icon="${icon}"
1939
2009
  :hideMin="${hideMin}"
1940
2010
  :disableMin="${disableMin}"
1941
2011
  :disableValue="${disableValue}"
@@ -2064,9 +2134,9 @@ function generateVueComponentTemplate(entry, id, document) {
2064
2134
  // wrapper they have no drop target. The wrapper only exists in the layout
2065
2135
  // case (never nested inside a .tabs-container), so no double drop binding.
2066
2136
  return expandToNode `
2067
- <div class="datatable-drop-zone" v-if="!isHidden('${element.name.toLowerCase()}')">
2137
+ <v-col class="pa-1 datatable-drop-zone" cols="12" v-if="!isHidden('${element.name.toLowerCase()}')">
2068
2138
  <${componentName} systemPath="${systemPath}" :context="context" :primaryColor="primaryColor" :secondaryColor="secondaryColor" :tertiaryColor="tertiaryColor"></${componentName}>
2069
- </div>
2139
+ </v-col>
2070
2140
  `.appendNewLine();
2071
2141
  }
2072
2142
  if (isInventoryField(element)) {
@@ -2094,21 +2164,21 @@ function generateVueComponentTemplate(entry, id, document) {
2094
2164
  const rows = rowsParam === null || rowsParam === void 0 ? void 0 : rowsParam.value;
2095
2165
  const columns = columnsParam === null || columnsParam === void 0 ? void 0 : columnsParam.value;
2096
2166
  const slotSize = slotSizeParam ? parseInt(slotSizeParam.value.replace('px', '')) : 60;
2097
- const documentType = (_u = element.document.ref) === null || _u === void 0 ? void 0 : _u.name.toLowerCase();
2098
- const quantityField = (_v = quantityParam === null || quantityParam === void 0 ? void 0 : quantityParam.field.ref) === null || _v === void 0 ? void 0 : _v.name.toLowerCase();
2099
- const moneyField = (_w = moneyParam === null || moneyParam === void 0 ? void 0 : moneyParam.field.ref) === null || _w === void 0 ? void 0 : _w.name.toLowerCase();
2100
- const moneyFieldLabel = moneyField ? `${document.name}.${(_y = (_x = moneyParam === null || moneyParam === void 0 ? void 0 : moneyParam.field) === null || _x === void 0 ? void 0 : _x.ref) === null || _y === void 0 ? void 0 : _y.name}` : undefined;
2101
- const moneyFieldIcon = moneyField ? (_1 = (_0 = (_z = moneyParam === null || moneyParam === void 0 ? void 0 : moneyParam.field) === null || _z === void 0 ? void 0 : _z.ref) === null || _0 === void 0 ? void 0 : _0.params.find(isIconParam)) === null || _1 === void 0 ? void 0 : _1.value : undefined;
2102
- const sortProperty = (_2 = sortParam === null || sortParam === void 0 ? void 0 : sortParam.property.ref) === null || _2 === void 0 ? void 0 : _2.name;
2103
- const sortOrder = (_3 = sortParam === null || sortParam === void 0 ? void 0 : sortParam.order) !== null && _3 !== void 0 ? _3 : 'asc';
2104
- const globalAllowed = (_4 = globalParam === null || globalParam === void 0 ? void 0 : globalParam.value) !== null && _4 !== void 0 ? _4 : false;
2105
- const emptySlots = (_5 = emptySlotsParam === null || emptySlotsParam === void 0 ? void 0 : emptySlotsParam.value) !== null && _5 !== void 0 ? _5 : 'show';
2106
- const summary = (_6 = summaryParam === null || summaryParam === void 0 ? void 0 : summaryParam.value) !== null && _6 !== void 0 ? _6 : 'full';
2167
+ const documentType = (_v = (_u = element.documents[0]) === null || _u === void 0 ? void 0 : _u.ref) === null || _v === void 0 ? void 0 : _v.name.toLowerCase();
2168
+ const quantityField = (_w = quantityParam === null || quantityParam === void 0 ? void 0 : quantityParam.field.ref) === null || _w === void 0 ? void 0 : _w.name.toLowerCase();
2169
+ const moneyField = (_x = moneyParam === null || moneyParam === void 0 ? void 0 : moneyParam.field.ref) === null || _x === void 0 ? void 0 : _x.name.toLowerCase();
2170
+ const moneyFieldLabel = moneyField ? `${document.name}.${(_z = (_y = moneyParam === null || moneyParam === void 0 ? void 0 : moneyParam.field) === null || _y === void 0 ? void 0 : _y.ref) === null || _z === void 0 ? void 0 : _z.name}` : undefined;
2171
+ const moneyFieldIcon = moneyField ? (_2 = (_1 = (_0 = moneyParam === null || moneyParam === void 0 ? void 0 : moneyParam.field) === null || _0 === void 0 ? void 0 : _0.ref) === null || _1 === void 0 ? void 0 : _1.params.find(isIconParam)) === null || _2 === void 0 ? void 0 : _2.value : undefined;
2172
+ const sortProperty = (_3 = sortParam === null || sortParam === void 0 ? void 0 : sortParam.property.ref) === null || _3 === void 0 ? void 0 : _3.name;
2173
+ const sortOrder = (_4 = sortParam === null || sortParam === void 0 ? void 0 : sortParam.order) !== null && _4 !== void 0 ? _4 : 'asc';
2174
+ const globalAllowed = (_5 = globalParam === null || globalParam === void 0 ? void 0 : globalParam.value) !== null && _5 !== void 0 ? _5 : false;
2175
+ const emptySlots = (_6 = emptySlotsParam === null || emptySlotsParam === void 0 ? void 0 : emptySlotsParam.value) !== null && _6 !== void 0 ? _6 : 'show';
2176
+ const summary = (_7 = summaryParam === null || summaryParam === void 0 ? void 0 : summaryParam.value) !== null && _7 !== void 0 ? _7 : 'full';
2107
2177
  // Handle sum properties (can be single or array)
2108
2178
  let sumProperties = [];
2109
2179
  if (sumParam) {
2110
2180
  if (sumParam.properties.property) {
2111
- sumProperties = [((_7 = sumParam.properties.property.ref) === null || _7 === void 0 ? void 0 : _7.name) || ''];
2181
+ sumProperties = [((_8 = sumParam.properties.property.ref) === null || _8 === void 0 ? void 0 : _8.name) || ''];
2112
2182
  }
2113
2183
  else if (sumParam.properties.properties) {
2114
2184
  sumProperties = sumParam.properties.properties
@@ -2131,7 +2201,7 @@ function generateVueComponentTemplate(entry, id, document) {
2131
2201
  sumMax = `context.${toString(sumMaxNode)}`;
2132
2202
  }
2133
2203
  }
2134
- else if ((_8 = sumMaxParam.values) === null || _8 === void 0 ? void 0 : _8.values) {
2204
+ else if ((_9 = sumMaxParam.values) === null || _9 === void 0 ? void 0 : _9.values) {
2135
2205
  // It's an array of ints/expressions
2136
2206
  const maxValues = sumMaxParam.values.values.map((val) => {
2137
2207
  if (typeof val === 'number') {
@@ -2197,13 +2267,96 @@ function generateVueComponentTemplate(entry, id, document) {
2197
2267
  <v-alert text="Unknown Element" type="warning" density="compact" class="ga-2 ma-1" variant="outlined"></v-alert>
2198
2268
  `;
2199
2269
  }
2200
- // Stamp the universal field marker onto a rendered field's <i-...> component root (the
2201
- // element that also carries the type + single/double-wide classes via attribute fallthrough).
2202
- // `.isdl-field` is the one selector theme-token consumption targets; `.isdl-field-<name>` is
2203
- // the per-field hook + the target a per-field theme override is emitted against.
2270
+ function getFieldTypeClass(element) {
2271
+ if (isNumberExp(element))
2272
+ return 'isdl-number';
2273
+ if (isStringExp(element))
2274
+ return 'isdl-string';
2275
+ if (isHtmlExp(element))
2276
+ return 'isdl-html';
2277
+ if (isBooleanExp(element))
2278
+ return 'isdl-boolean';
2279
+ if (isAttributeExp(element))
2280
+ return 'isdl-attribute';
2281
+ if (isTrackerExp(element))
2282
+ return 'isdl-tracker';
2283
+ if (isResourceExp(element))
2284
+ return 'isdl-resource';
2285
+ if (isImageField(element))
2286
+ return 'isdl-image';
2287
+ if (isMoneyField(element))
2288
+ return 'isdl-money';
2289
+ if (isStringChoiceField(element))
2290
+ return 'isdl-string-choice';
2291
+ if (isDamageTypeChoiceField(element))
2292
+ return 'isdl-damage-type-choice';
2293
+ if (isStringChoicesField(element))
2294
+ return 'isdl-string-choices';
2295
+ if (isDamageTrackExp(element))
2296
+ return 'isdl-damage-track';
2297
+ if (isDamageBonusesField(element))
2298
+ return 'isdl-bonuses';
2299
+ if (isDamageResistancesField(element))
2300
+ return 'isdl-resistances';
2301
+ if (isRollVisualizerField(element))
2302
+ return 'isdl-roll-visualizer';
2303
+ if (isMeasuredTemplateField(element))
2304
+ return 'isdl-measured-template';
2305
+ if (isMacroField(element))
2306
+ return 'isdl-macro';
2307
+ if (isPaperDollExp(element))
2308
+ return 'isdl-paperdoll';
2309
+ if (isDieField(element))
2310
+ return 'isdl-die';
2311
+ if (isDiceField(element))
2312
+ return 'isdl-dice';
2313
+ if (isDateExp(element))
2314
+ return 'isdl-date';
2315
+ if (isTimeExp(element))
2316
+ return 'isdl-time';
2317
+ if (isDateTimeExp(element))
2318
+ return 'isdl-datetime';
2319
+ if (isSingleDocumentExp(element))
2320
+ return 'isdl-document-link';
2321
+ if (isDocumentChoiceExp(element))
2322
+ return 'isdl-document-choice';
2323
+ if (isDocumentChoicesExp(element))
2324
+ return 'isdl-document-choices';
2325
+ if (isTableField(element))
2326
+ return 'isdl-table';
2327
+ if (isInventoryField(element))
2328
+ return 'isdl-inventory';
2329
+ if (isPinnedField(element))
2330
+ return 'isdl-pinned';
2331
+ if (isParentPropertyRefExp(element))
2332
+ return 'isdl-parent-property-reference';
2333
+ if (isSelfPropertyRefExp(element))
2334
+ return 'isdl-self-property-reference';
2335
+ return '';
2336
+ }
2337
+ function getVisibilityClass(element) {
2338
+ var _a;
2339
+ const standardParams = (_a = element.params) !== null && _a !== void 0 ? _a : [];
2340
+ const visibilityParam = standardParams.find(p => isVisibilityParam(p));
2341
+ if (element.modifier != null && !visibilityParam)
2342
+ return `isdl-visibility-${element.modifier}`;
2343
+ if (visibilityParam) {
2344
+ if (isMethodBlock(visibilityParam.visibility))
2345
+ return 'isdl-visibility-dynamic';
2346
+ return `isdl-visibility-${visibilityParam.visibility}`;
2347
+ }
2348
+ return 'isdl-visibility-default';
2349
+ }
2350
+ // Stamp field type, name, and declared visibility classes onto a rendered field's <i-...>
2351
+ // component root (the element that also carries single/double-wide via attribute fallthrough).
2352
+ // `.isdl-field` is the shared selector theme tokens target; `.isdl-<type>` is the type hook;
2353
+ // `.isdl-field-<name>` is the per-field hook; `.isdl-visibility-<value>` reflects declared
2354
+ // visibility for CSS authoring (runtime show/hide is handled by v-if / :disabled separately).
2204
2355
  function injectFieldMarker(node, element) {
2205
2356
  const html = toString(node);
2206
- const marker = `isdl-field isdl-field-${element.name.toLowerCase()}`;
2357
+ const typeClass = getFieldTypeClass(element);
2358
+ const visibilityClass = getVisibilityClass(element);
2359
+ const marker = `isdl-field${typeClass ? ` ${typeClass}` : ''} isdl-field-${element.name.toLowerCase()} ${visibilityClass}`;
2207
2360
  // Stamp the marker onto the FIRST element tag of the rendered field, whatever its name --
2208
2361
  // <i-number>, a datatable <div class="datatable-drop-zone">, a <DocumentChoice> component,
2209
2362
  // etc. Insert right after the tag NAME so attribute values (which can contain '>') are never