intelligent-system-design-language 0.3.22 → 0.3.23
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.
- package/.claude/agents/langium-language-designer.md +38 -38
- package/.claude/agents/typescript-vscode-expert.md +29 -29
- package/.claude/agents/ui-ux-designer.md +36 -36
- package/.claude/settings.local.json +33 -33
- package/.idea/inspectionProfiles/Project_Default.xml +6 -6
- package/.idea/isdl.iml +13 -13
- package/.idea/modules.xml +8 -8
- package/.idea/vcs.xml +6 -6
- package/.idea/watcherTasks.xml +3 -3
- package/.vscodeignore +18 -18
- package/LICENSE +673 -673
- package/README.md +86 -86
- package/bin/cli.js +4 -4
- package/bin/lsp.js +8 -8
- package/out/_backgrounds.scss +91 -91
- package/out/_handlebars.scss +497 -497
- package/out/_isdlStyles.scss +1444 -1444
- package/out/_vuetifyOverrides.scss +425 -425
- package/out/_vuetifyStyles.scss +31957 -31957
- package/out/cli/components/_backgrounds.scss +91 -91
- package/out/cli/components/_handlebars.scss +497 -497
- package/out/cli/components/_isdlStyles.scss +1444 -1444
- package/out/cli/components/_vuetifyOverrides.scss +425 -425
- package/out/cli/components/_vuetifyStyles.scss +31957 -31957
- package/out/cli/components/active-effect-sheet-generator.js +453 -453
- package/out/cli/components/chat-card-generator.js +654 -654
- package/out/cli/components/css-generator.js +4 -4
- package/out/cli/components/damage-roll-generator.js +160 -160
- package/out/cli/components/datamodel-generator.js +257 -257
- package/out/cli/components/derived-data-generator.js +923 -923
- package/out/cli/components/hotbar-drop-hook-generator.js +82 -82
- package/out/cli/components/init-hook-generator.js +495 -495
- package/out/cli/components/measured-template-preview.js +221 -221
- package/out/cli/components/method-generator.js +548 -548
- package/out/cli/components/ready-hook-generator.js +404 -404
- package/out/cli/components/token-generator.js +116 -116
- package/out/cli/components/vue/base-components/vue-attribute.js +138 -138
- package/out/cli/components/vue/base-components/vue-boolean.js +64 -64
- package/out/cli/components/vue/base-components/vue-calculator.js +93 -93
- package/out/cli/components/vue/base-components/vue-damage-application.js +356 -356
- package/out/cli/components/vue/base-components/vue-damage-bonuses.js +165 -165
- package/out/cli/components/vue/base-components/vue-damage-resistances.js +196 -196
- package/out/cli/components/vue/base-components/vue-damage-track.js +121 -121
- package/out/cli/components/vue/base-components/vue-date-time.js +42 -42
- package/out/cli/components/vue/base-components/vue-dice.js +98 -98
- package/out/cli/components/vue/base-components/vue-die.js +73 -73
- package/out/cli/components/vue/base-components/vue-document-choice.js +149 -149
- package/out/cli/components/vue/base-components/vue-document-choices.js +179 -179
- package/out/cli/components/vue/base-components/vue-document-link.js +60 -60
- package/out/cli/components/vue/base-components/vue-extended-choice.js +88 -88
- package/out/cli/components/vue/base-components/vue-inventory.js +519 -519
- package/out/cli/components/vue/base-components/vue-macro-choice.js +138 -138
- package/out/cli/components/vue/base-components/vue-measured-template.js +530 -530
- package/out/cli/components/vue/base-components/vue-money.js +483 -483
- package/out/cli/components/vue/base-components/vue-number.js +174 -174
- package/out/cli/components/vue/base-components/vue-paperdoll.js +43 -43
- package/out/cli/components/vue/base-components/vue-parent-property-reference.js +76 -76
- package/out/cli/components/vue/base-components/vue-prosemirror.js +18 -18
- package/out/cli/components/vue/base-components/vue-resource.js +136 -136
- package/out/cli/components/vue/base-components/vue-roll-visualizer.js +285 -285
- package/out/cli/components/vue/base-components/vue-self-property-reference.js +62 -62
- package/out/cli/components/vue/base-components/vue-string-choice.js +98 -98
- package/out/cli/components/vue/base-components/vue-string-choices.js +203 -203
- package/out/cli/components/vue/base-components/vue-string.js +60 -60
- package/out/cli/components/vue/base-components/vue-text-field.js +53 -53
- package/out/cli/components/vue/base-components/vue-tracker.js +431 -431
- package/out/cli/components/vue/vue-action-component-generator.js +64 -64
- package/out/cli/components/vue/vue-active-effect-sheet-generator.js +856 -856
- package/out/cli/components/vue/vue-datatable-sheet-class-generator.js +292 -292
- package/out/cli/components/vue/vue-datatable2-component-generator.js +824 -824
- package/out/cli/components/vue/vue-document-creation-app.js +121 -121
- package/out/cli/components/vue/vue-document-creation-sheet.js +94 -94
- package/out/cli/components/vue/vue-generator.js +40 -40
- package/out/cli/components/vue/vue-mixin.js +296 -296
- package/out/cli/components/vue/vue-pinned-datatable-component-generator.js +260 -260
- package/out/cli/components/vue/vue-prompt-generator.js +80 -80
- package/out/cli/components/vue/vue-prompt-sheet-class-generator.js +317 -317
- package/out/cli/components/vue/vue-sheet-application-generator.js +1171 -1171
- package/out/cli/components/vue/vue-sheet-class-generator.js +510 -510
- package/out/cli/generator.js +438 -438
- package/out/extension/github/githubManager.js +35 -35
- package/out/extension/github/githubQuickActions.js +120 -120
- package/out/extension/github/system-workflow.yml +47 -47
- package/out/extension/main.cjs.map +1 -1
- package/out/extension/package.json +419 -419
- package/out/language/generated/grammar.js +14240 -14240
- package/out/language/main.cjs.map +1 -1
- package/out/package.json +419 -419
- package/out/progressbar.min.js +6 -6
- package/out/styles.scss +762 -762
- package/package.json +419 -419
|
@@ -7,68 +7,68 @@ export default function generateSelfPropertyReferenceComponent(destination, entr
|
|
|
7
7
|
if (!fs.existsSync(generatedFileDir)) {
|
|
8
8
|
fs.mkdirSync(generatedFileDir, { recursive: true });
|
|
9
9
|
}
|
|
10
|
-
const fileNode = expandToNode `
|
|
11
|
-
<script setup>
|
|
12
|
-
import { ref, computed, inject } from "vue";
|
|
13
|
-
|
|
14
|
-
const props = defineProps({
|
|
15
|
-
label: String,
|
|
16
|
-
systemPath: String,
|
|
17
|
-
context: Object,
|
|
18
|
-
disabled: Boolean,
|
|
19
|
-
icon: String,
|
|
20
|
-
color: String,
|
|
21
|
-
propertyType: String,
|
|
22
|
-
choices: Array
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
const document = inject("rawDocument");
|
|
26
|
-
|
|
27
|
-
const value = computed({
|
|
28
|
-
get: () => foundry.utils.getProperty(props.context, props.systemPath),
|
|
29
|
-
set: (newValue) => foundry.utils.setProperty(props.context, props.systemPath, newValue)
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
// Filter choices based on property type if provided
|
|
33
|
-
const availableChoices = computed(() => {
|
|
34
|
-
if (!props.choices || !props.propertyType) return [];
|
|
35
|
-
|
|
36
|
-
// Filter properties based on type
|
|
37
|
-
return props.choices.filter(choice => {
|
|
38
|
-
// Here we would check if the choice matches the expected property type
|
|
39
|
-
// For now, return all choices - this could be enhanced with type checking
|
|
40
|
-
return true;
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const fieldColor = computed(() => {
|
|
46
|
-
return props.color || 'primary';
|
|
47
|
-
});
|
|
48
|
-
</script>
|
|
49
|
-
|
|
50
|
-
<template>
|
|
51
|
-
<div class="isdl-self-property-reference single-wide">
|
|
52
|
-
<v-select
|
|
53
|
-
:model-value="value"
|
|
54
|
-
@update:model-value="(v) => { value = v; if (document) document.update({ [props.systemPath]: v }); }"
|
|
55
|
-
:items="availableChoices"
|
|
56
|
-
:name="props.systemPath"
|
|
57
|
-
:disabled="disabled"
|
|
58
|
-
:color="fieldColor"
|
|
59
|
-
variant="outlined"
|
|
60
|
-
density="compact"
|
|
61
|
-
clearable
|
|
62
|
-
>
|
|
63
|
-
<template #label>
|
|
64
|
-
<span class="field-label">
|
|
65
|
-
<v-icon v-if="props.icon" :icon="props.icon" size="small" class="me-1"></v-icon>
|
|
66
|
-
{{ game.i18n.localize(props.label) }}
|
|
67
|
-
</span>
|
|
68
|
-
</template>
|
|
69
|
-
</v-select>
|
|
70
|
-
</div>
|
|
71
|
-
</template>
|
|
10
|
+
const fileNode = expandToNode `
|
|
11
|
+
<script setup>
|
|
12
|
+
import { ref, computed, inject } from "vue";
|
|
13
|
+
|
|
14
|
+
const props = defineProps({
|
|
15
|
+
label: String,
|
|
16
|
+
systemPath: String,
|
|
17
|
+
context: Object,
|
|
18
|
+
disabled: Boolean,
|
|
19
|
+
icon: String,
|
|
20
|
+
color: String,
|
|
21
|
+
propertyType: String,
|
|
22
|
+
choices: Array
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const document = inject("rawDocument");
|
|
26
|
+
|
|
27
|
+
const value = computed({
|
|
28
|
+
get: () => foundry.utils.getProperty(props.context, props.systemPath),
|
|
29
|
+
set: (newValue) => foundry.utils.setProperty(props.context, props.systemPath, newValue)
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// Filter choices based on property type if provided
|
|
33
|
+
const availableChoices = computed(() => {
|
|
34
|
+
if (!props.choices || !props.propertyType) return [];
|
|
35
|
+
|
|
36
|
+
// Filter properties based on type
|
|
37
|
+
return props.choices.filter(choice => {
|
|
38
|
+
// Here we would check if the choice matches the expected property type
|
|
39
|
+
// For now, return all choices - this could be enhanced with type checking
|
|
40
|
+
return true;
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
const fieldColor = computed(() => {
|
|
46
|
+
return props.color || 'primary';
|
|
47
|
+
});
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<template>
|
|
51
|
+
<div class="isdl-self-property-reference single-wide">
|
|
52
|
+
<v-select
|
|
53
|
+
:model-value="value"
|
|
54
|
+
@update:model-value="(v) => { value = v; if (document) document.update({ [props.systemPath]: v }); }"
|
|
55
|
+
:items="availableChoices"
|
|
56
|
+
:name="props.systemPath"
|
|
57
|
+
:disabled="disabled"
|
|
58
|
+
:color="fieldColor"
|
|
59
|
+
variant="outlined"
|
|
60
|
+
density="compact"
|
|
61
|
+
clearable
|
|
62
|
+
>
|
|
63
|
+
<template #label>
|
|
64
|
+
<span class="field-label">
|
|
65
|
+
<v-icon v-if="props.icon" :icon="props.icon" size="small" class="me-1"></v-icon>
|
|
66
|
+
{{ game.i18n.localize(props.label) }}
|
|
67
|
+
</span>
|
|
68
|
+
</template>
|
|
69
|
+
</v-select>
|
|
70
|
+
</div>
|
|
71
|
+
</template>
|
|
72
72
|
`.appendNewLine();
|
|
73
73
|
fs.writeFileSync(generatedFilePath, toString(fileNode));
|
|
74
74
|
}
|
|
@@ -7,104 +7,104 @@ export default function generateStringChoiceComponent(destination, entry) {
|
|
|
7
7
|
if (!fs.existsSync(generatedFileDir)) {
|
|
8
8
|
fs.mkdirSync(generatedFileDir, { recursive: true });
|
|
9
9
|
}
|
|
10
|
-
const fileNode = expandToNode `
|
|
11
|
-
<script setup>
|
|
12
|
-
import { ref, computed, inject } from "vue";
|
|
13
|
-
|
|
14
|
-
const props = defineProps({
|
|
15
|
-
label: String,
|
|
16
|
-
systemPath: String,
|
|
17
|
-
context: Object,
|
|
18
|
-
visibility: String,
|
|
19
|
-
editMode: Boolean,
|
|
20
|
-
icon: String,
|
|
21
|
-
color: String,
|
|
22
|
-
disabled: Boolean,
|
|
23
|
-
items: {
|
|
24
|
-
type: Array,
|
|
25
|
-
default: () => []
|
|
26
|
-
},
|
|
27
|
-
isExtended: {
|
|
28
|
-
type: Boolean,
|
|
29
|
-
default: false
|
|
30
|
-
},
|
|
31
|
-
primaryColor: String,
|
|
32
|
-
secondaryColor: String
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
const document = inject("rawDocument");
|
|
36
|
-
|
|
37
|
-
const value = computed({
|
|
38
|
-
get: () => foundry.utils.getProperty(props.context, props.systemPath),
|
|
39
|
-
set: (newValue) => foundry.utils.setProperty(props.context, props.systemPath, newValue)
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
const isHidden = computed(() => {
|
|
43
|
-
if (props.visibility === "hidden") {
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
if (props.visibility === "gm" && !game.user.isGM) {
|
|
47
|
-
return true;
|
|
48
|
-
}
|
|
49
|
-
return false;
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
const isDisabled = computed(() => {
|
|
53
|
-
return props.disabled ||
|
|
54
|
-
props.visibility === "locked" ||
|
|
55
|
-
props.visibility === "readonly" ||
|
|
56
|
-
(props.visibility === "gmOnly" && !game.user.isGM);
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
const fieldColor = computed(() => {
|
|
60
|
-
return props.color || 'primary';
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
const localizedLabel = computed(() => {
|
|
64
|
-
return game.i18n.localize(props.label);
|
|
65
|
-
});
|
|
66
|
-
</script>
|
|
67
|
-
|
|
68
|
-
<template>
|
|
69
|
-
<div v-if="!isHidden" class="isdl-string-choice single-wide">
|
|
70
|
-
<!-- Simple choice field - uses v-select -->
|
|
71
|
-
<v-select
|
|
72
|
-
v-if="!props.isExtended"
|
|
73
|
-
:model-value="value"
|
|
74
|
-
@update:model-value="(v) => { value = v; if (document) document.update({ [props.systemPath]: v }); }"
|
|
75
|
-
:name="props.systemPath"
|
|
76
|
-
:items="props.items"
|
|
77
|
-
item-title="label"
|
|
78
|
-
item-value="value"
|
|
79
|
-
:disabled="isDisabled"
|
|
80
|
-
:color="fieldColor"
|
|
81
|
-
variant="outlined"
|
|
82
|
-
density="compact"
|
|
83
|
-
>
|
|
84
|
-
<template #label>
|
|
85
|
-
<span class="field-label">
|
|
86
|
-
<v-icon v-if="props.icon" :icon="props.icon" size="small" class="me-1"></v-icon>
|
|
87
|
-
{{ localizedLabel }}
|
|
88
|
-
</span>
|
|
89
|
-
</template>
|
|
90
|
-
</v-select>
|
|
91
|
-
|
|
92
|
-
<!-- Extended choice field - uses i-extended-choice -->
|
|
93
|
-
<i-extended-choice
|
|
94
|
-
v-else
|
|
95
|
-
:label="props.label"
|
|
96
|
-
:icon="props.icon"
|
|
97
|
-
:systemPath="props.systemPath"
|
|
98
|
-
:context="props.context"
|
|
99
|
-
:items="props.items"
|
|
100
|
-
:primaryColor="props.primaryColor"
|
|
101
|
-
:secondaryColor="props.secondaryColor"
|
|
102
|
-
:visibility="props.visibility"
|
|
103
|
-
:disabled="props.disabled"
|
|
104
|
-
:color="props.color">
|
|
105
|
-
</i-extended-choice>
|
|
106
|
-
</div>
|
|
107
|
-
</template>
|
|
10
|
+
const fileNode = expandToNode `
|
|
11
|
+
<script setup>
|
|
12
|
+
import { ref, computed, inject } from "vue";
|
|
13
|
+
|
|
14
|
+
const props = defineProps({
|
|
15
|
+
label: String,
|
|
16
|
+
systemPath: String,
|
|
17
|
+
context: Object,
|
|
18
|
+
visibility: String,
|
|
19
|
+
editMode: Boolean,
|
|
20
|
+
icon: String,
|
|
21
|
+
color: String,
|
|
22
|
+
disabled: Boolean,
|
|
23
|
+
items: {
|
|
24
|
+
type: Array,
|
|
25
|
+
default: () => []
|
|
26
|
+
},
|
|
27
|
+
isExtended: {
|
|
28
|
+
type: Boolean,
|
|
29
|
+
default: false
|
|
30
|
+
},
|
|
31
|
+
primaryColor: String,
|
|
32
|
+
secondaryColor: String
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
const document = inject("rawDocument");
|
|
36
|
+
|
|
37
|
+
const value = computed({
|
|
38
|
+
get: () => foundry.utils.getProperty(props.context, props.systemPath),
|
|
39
|
+
set: (newValue) => foundry.utils.setProperty(props.context, props.systemPath, newValue)
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
const isHidden = computed(() => {
|
|
43
|
+
if (props.visibility === "hidden") {
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
if (props.visibility === "gm" && !game.user.isGM) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
return false;
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
const isDisabled = computed(() => {
|
|
53
|
+
return props.disabled ||
|
|
54
|
+
props.visibility === "locked" ||
|
|
55
|
+
props.visibility === "readonly" ||
|
|
56
|
+
(props.visibility === "gmOnly" && !game.user.isGM);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
const fieldColor = computed(() => {
|
|
60
|
+
return props.color || 'primary';
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
const localizedLabel = computed(() => {
|
|
64
|
+
return game.i18n.localize(props.label);
|
|
65
|
+
});
|
|
66
|
+
</script>
|
|
67
|
+
|
|
68
|
+
<template>
|
|
69
|
+
<div v-if="!isHidden" class="isdl-string-choice single-wide">
|
|
70
|
+
<!-- Simple choice field - uses v-select -->
|
|
71
|
+
<v-select
|
|
72
|
+
v-if="!props.isExtended"
|
|
73
|
+
:model-value="value"
|
|
74
|
+
@update:model-value="(v) => { value = v; if (document) document.update({ [props.systemPath]: v }); }"
|
|
75
|
+
:name="props.systemPath"
|
|
76
|
+
:items="props.items"
|
|
77
|
+
item-title="label"
|
|
78
|
+
item-value="value"
|
|
79
|
+
:disabled="isDisabled"
|
|
80
|
+
:color="fieldColor"
|
|
81
|
+
variant="outlined"
|
|
82
|
+
density="compact"
|
|
83
|
+
>
|
|
84
|
+
<template #label>
|
|
85
|
+
<span class="field-label">
|
|
86
|
+
<v-icon v-if="props.icon" :icon="props.icon" size="small" class="me-1"></v-icon>
|
|
87
|
+
{{ localizedLabel }}
|
|
88
|
+
</span>
|
|
89
|
+
</template>
|
|
90
|
+
</v-select>
|
|
91
|
+
|
|
92
|
+
<!-- Extended choice field - uses i-extended-choice -->
|
|
93
|
+
<i-extended-choice
|
|
94
|
+
v-else
|
|
95
|
+
:label="props.label"
|
|
96
|
+
:icon="props.icon"
|
|
97
|
+
:systemPath="props.systemPath"
|
|
98
|
+
:context="props.context"
|
|
99
|
+
:items="props.items"
|
|
100
|
+
:primaryColor="props.primaryColor"
|
|
101
|
+
:secondaryColor="props.secondaryColor"
|
|
102
|
+
:visibility="props.visibility"
|
|
103
|
+
:disabled="props.disabled"
|
|
104
|
+
:color="props.color">
|
|
105
|
+
</i-extended-choice>
|
|
106
|
+
</div>
|
|
107
|
+
</template>
|
|
108
108
|
`.appendNewLine();
|
|
109
109
|
fs.writeFileSync(generatedFilePath, toString(fileNode));
|
|
110
110
|
}
|