intelligent-system-design-language 0.3.13

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 (209) hide show
  1. package/.claude/agents/langium-language-designer.md +38 -0
  2. package/.claude/agents/typescript-vscode-expert.md +29 -0
  3. package/.claude/agents/ui-ux-designer.md +36 -0
  4. package/.claude/settings.local.json +33 -0
  5. package/.idea/inspectionProfiles/Project_Default.xml +7 -0
  6. package/.idea/isdl.iml +14 -0
  7. package/.idea/modules.xml +9 -0
  8. package/.idea/vcs.xml +7 -0
  9. package/.idea/watcherTasks.xml +4 -0
  10. package/.vscodeignore +18 -0
  11. package/LICENSE +674 -0
  12. package/README.md +86 -0
  13. package/bin/cli.js +4 -0
  14. package/bin/lsp.js +8 -0
  15. package/isdl.png +0 -0
  16. package/out/_backgrounds.scss +91 -0
  17. package/out/_handlebars.scss +505 -0
  18. package/out/_isdlStyles.scss +1357 -0
  19. package/out/_vuetifyOverrides.scss +425 -0
  20. package/out/_vuetifyStyles.scss +31957 -0
  21. package/out/cli/cli-util.js +39 -0
  22. package/out/cli/cli-util.js.map +1 -0
  23. package/out/cli/components/_backgrounds.scss +91 -0
  24. package/out/cli/components/_handlebars.scss +505 -0
  25. package/out/cli/components/_isdlStyles.scss +1357 -0
  26. package/out/cli/components/_vuetifyOverrides.scss +425 -0
  27. package/out/cli/components/_vuetifyStyles.scss +31957 -0
  28. package/out/cli/components/active-effect-sheet-generator.js +643 -0
  29. package/out/cli/components/active-effect-sheet-generator.js.map +1 -0
  30. package/out/cli/components/base-actor-sheet-generator.js +125 -0
  31. package/out/cli/components/base-actor-sheet-generator.js.map +1 -0
  32. package/out/cli/components/base-sheet-generator.js +525 -0
  33. package/out/cli/components/base-sheet-generator.js.map +1 -0
  34. package/out/cli/components/chat-card-generator.js +683 -0
  35. package/out/cli/components/chat-card-generator.js.map +1 -0
  36. package/out/cli/components/css-generator.js +58 -0
  37. package/out/cli/components/css-generator.js.map +1 -0
  38. package/out/cli/components/damage-roll-generator.js +173 -0
  39. package/out/cli/components/damage-roll-generator.js.map +1 -0
  40. package/out/cli/components/datamodel-generator.js +672 -0
  41. package/out/cli/components/datamodel-generator.js.map +1 -0
  42. package/out/cli/components/derived-data-generator.js +1340 -0
  43. package/out/cli/components/derived-data-generator.js.map +1 -0
  44. package/out/cli/components/hotbar-drop-hook-generator.js +95 -0
  45. package/out/cli/components/hotbar-drop-hook-generator.js.map +1 -0
  46. package/out/cli/components/init-hook-generator.js +597 -0
  47. package/out/cli/components/init-hook-generator.js.map +1 -0
  48. package/out/cli/components/keywords-generator.js +220 -0
  49. package/out/cli/components/keywords-generator.js.map +1 -0
  50. package/out/cli/components/language-generator.js +110 -0
  51. package/out/cli/components/language-generator.js.map +1 -0
  52. package/out/cli/components/measured-template-preview.js +234 -0
  53. package/out/cli/components/measured-template-preview.js.map +1 -0
  54. package/out/cli/components/method-generator.js +1812 -0
  55. package/out/cli/components/method-generator.js.map +1 -0
  56. package/out/cli/components/ready-hook-generator.js +448 -0
  57. package/out/cli/components/ready-hook-generator.js.map +1 -0
  58. package/out/cli/components/token-generator.js +138 -0
  59. package/out/cli/components/token-generator.js.map +1 -0
  60. package/out/cli/components/utils.js +176 -0
  61. package/out/cli/components/utils.js.map +1 -0
  62. package/out/cli/components/vue/base-components/vue-attribute.js +148 -0
  63. package/out/cli/components/vue/base-components/vue-attribute.js.map +1 -0
  64. package/out/cli/components/vue/base-components/vue-boolean.js +77 -0
  65. package/out/cli/components/vue/base-components/vue-boolean.js.map +1 -0
  66. package/out/cli/components/vue/base-components/vue-calculator.js +106 -0
  67. package/out/cli/components/vue/base-components/vue-calculator.js.map +1 -0
  68. package/out/cli/components/vue/base-components/vue-damage-application.js +369 -0
  69. package/out/cli/components/vue/base-components/vue-damage-application.js.map +1 -0
  70. package/out/cli/components/vue/base-components/vue-damage-bonuses.js +225 -0
  71. package/out/cli/components/vue/base-components/vue-damage-bonuses.js.map +1 -0
  72. package/out/cli/components/vue/base-components/vue-damage-resistances.js +256 -0
  73. package/out/cli/components/vue/base-components/vue-damage-resistances.js.map +1 -0
  74. package/out/cli/components/vue/base-components/vue-damage-track.js +134 -0
  75. package/out/cli/components/vue/base-components/vue-damage-track.js.map +1 -0
  76. package/out/cli/components/vue/base-components/vue-date-time.js +55 -0
  77. package/out/cli/components/vue/base-components/vue-date-time.js.map +1 -0
  78. package/out/cli/components/vue/base-components/vue-dice.js +111 -0
  79. package/out/cli/components/vue/base-components/vue-dice.js.map +1 -0
  80. package/out/cli/components/vue/base-components/vue-die.js +86 -0
  81. package/out/cli/components/vue/base-components/vue-die.js.map +1 -0
  82. package/out/cli/components/vue/base-components/vue-document-choice.js +172 -0
  83. package/out/cli/components/vue/base-components/vue-document-choice.js.map +1 -0
  84. package/out/cli/components/vue/base-components/vue-document-choices.js +203 -0
  85. package/out/cli/components/vue/base-components/vue-document-choices.js.map +1 -0
  86. package/out/cli/components/vue/base-components/vue-document-link.js +73 -0
  87. package/out/cli/components/vue/base-components/vue-document-link.js.map +1 -0
  88. package/out/cli/components/vue/base-components/vue-extended-choice.js +101 -0
  89. package/out/cli/components/vue/base-components/vue-extended-choice.js.map +1 -0
  90. package/out/cli/components/vue/base-components/vue-inventory.js +532 -0
  91. package/out/cli/components/vue/base-components/vue-inventory.js.map +1 -0
  92. package/out/cli/components/vue/base-components/vue-macro-choice.js +150 -0
  93. package/out/cli/components/vue/base-components/vue-macro-choice.js.map +1 -0
  94. package/out/cli/components/vue/base-components/vue-measured-template.js +543 -0
  95. package/out/cli/components/vue/base-components/vue-measured-template.js.map +1 -0
  96. package/out/cli/components/vue/base-components/vue-money.js +496 -0
  97. package/out/cli/components/vue/base-components/vue-money.js.map +1 -0
  98. package/out/cli/components/vue/base-components/vue-number.js +184 -0
  99. package/out/cli/components/vue/base-components/vue-number.js.map +1 -0
  100. package/out/cli/components/vue/base-components/vue-paperdoll.js +56 -0
  101. package/out/cli/components/vue/base-components/vue-paperdoll.js.map +1 -0
  102. package/out/cli/components/vue/base-components/vue-parent-property-reference.js +89 -0
  103. package/out/cli/components/vue/base-components/vue-parent-property-reference.js.map +1 -0
  104. package/out/cli/components/vue/base-components/vue-prosemirror.js +31 -0
  105. package/out/cli/components/vue/base-components/vue-prosemirror.js.map +1 -0
  106. package/out/cli/components/vue/base-components/vue-resource.js +149 -0
  107. package/out/cli/components/vue/base-components/vue-resource.js.map +1 -0
  108. package/out/cli/components/vue/base-components/vue-roll-visualizer.js +121 -0
  109. package/out/cli/components/vue/base-components/vue-roll-visualizer.js.map +1 -0
  110. package/out/cli/components/vue/base-components/vue-self-property-reference.js +75 -0
  111. package/out/cli/components/vue/base-components/vue-self-property-reference.js.map +1 -0
  112. package/out/cli/components/vue/base-components/vue-string-choice.js +111 -0
  113. package/out/cli/components/vue/base-components/vue-string-choice.js.map +1 -0
  114. package/out/cli/components/vue/base-components/vue-string-choices.js +216 -0
  115. package/out/cli/components/vue/base-components/vue-string-choices.js.map +1 -0
  116. package/out/cli/components/vue/base-components/vue-string.js +73 -0
  117. package/out/cli/components/vue/base-components/vue-string.js.map +1 -0
  118. package/out/cli/components/vue/base-components/vue-text-field.js +66 -0
  119. package/out/cli/components/vue/base-components/vue-text-field.js.map +1 -0
  120. package/out/cli/components/vue/base-components/vue-tracker.js +444 -0
  121. package/out/cli/components/vue/base-components/vue-tracker.js.map +1 -0
  122. package/out/cli/components/vue/vue-action-component-generator.js +88 -0
  123. package/out/cli/components/vue/vue-action-component-generator.js.map +1 -0
  124. package/out/cli/components/vue/vue-active-effect-sheet-generator.js +1016 -0
  125. package/out/cli/components/vue/vue-active-effect-sheet-generator.js.map +1 -0
  126. package/out/cli/components/vue/vue-base-components-generator.js +59 -0
  127. package/out/cli/components/vue/vue-base-components-generator.js.map +1 -0
  128. package/out/cli/components/vue/vue-datatable-component-generator.js +307 -0
  129. package/out/cli/components/vue/vue-datatable-component-generator.js.map +1 -0
  130. package/out/cli/components/vue/vue-datatable-sheet-class-generator.js +342 -0
  131. package/out/cli/components/vue/vue-datatable-sheet-class-generator.js.map +1 -0
  132. package/out/cli/components/vue/vue-datatable2-component-generator.js +939 -0
  133. package/out/cli/components/vue/vue-datatable2-component-generator.js.map +1 -0
  134. package/out/cli/components/vue/vue-document-creation-app.js +140 -0
  135. package/out/cli/components/vue/vue-document-creation-app.js.map +1 -0
  136. package/out/cli/components/vue/vue-document-creation-sheet.js +105 -0
  137. package/out/cli/components/vue/vue-document-creation-sheet.js.map +1 -0
  138. package/out/cli/components/vue/vue-generator.js +240 -0
  139. package/out/cli/components/vue/vue-generator.js.map +1 -0
  140. package/out/cli/components/vue/vue-mixin.js +338 -0
  141. package/out/cli/components/vue/vue-mixin.js.map +1 -0
  142. package/out/cli/components/vue/vue-pinned-datatable-component-generator.js +306 -0
  143. package/out/cli/components/vue/vue-pinned-datatable-component-generator.js.map +1 -0
  144. package/out/cli/components/vue/vue-prompt-generator.js +201 -0
  145. package/out/cli/components/vue/vue-prompt-generator.js.map +1 -0
  146. package/out/cli/components/vue/vue-prompt-sheet-class-generator.js +252 -0
  147. package/out/cli/components/vue/vue-prompt-sheet-class-generator.js.map +1 -0
  148. package/out/cli/components/vue/vue-sheet-application-generator.js +2008 -0
  149. package/out/cli/components/vue/vue-sheet-application-generator.js.map +1 -0
  150. package/out/cli/components/vue/vue-sheet-class-generator.js +484 -0
  151. package/out/cli/components/vue/vue-sheet-class-generator.js.map +1 -0
  152. package/out/cli/generator.js +659 -0
  153. package/out/cli/generator.js.map +1 -0
  154. package/out/cli/main.js +43 -0
  155. package/out/cli/main.js.map +1 -0
  156. package/out/datatables.min.css +54 -0
  157. package/out/datatables.min.js +178 -0
  158. package/out/extension/github/githubAuthProvider.js +345 -0
  159. package/out/extension/github/githubAuthProvider.js.map +1 -0
  160. package/out/extension/github/githubConfig.js +132 -0
  161. package/out/extension/github/githubConfig.js.map +1 -0
  162. package/out/extension/github/githubGistActions.js +251 -0
  163. package/out/extension/github/githubGistActions.js.map +1 -0
  164. package/out/extension/github/githubGistManager.js +255 -0
  165. package/out/extension/github/githubGistManager.js.map +1 -0
  166. package/out/extension/github/githubManager.js +1735 -0
  167. package/out/extension/github/githubManager.js.map +1 -0
  168. package/out/extension/github/githubQuickActions.js +659 -0
  169. package/out/extension/github/githubQuickActions.js.map +1 -0
  170. package/out/extension/github/githubTreeProvider.js +181 -0
  171. package/out/extension/github/githubTreeProvider.js.map +1 -0
  172. package/out/extension/github/system-workflow.yml +48 -0
  173. package/out/extension/main.cjs +70315 -0
  174. package/out/extension/main.cjs.map +7 -0
  175. package/out/extension/main.js +237 -0
  176. package/out/extension/main.js.map +1 -0
  177. package/out/extension/package.json +426 -0
  178. package/out/isdl.png +0 -0
  179. package/out/language/generated/ast.js +2992 -0
  180. package/out/language/generated/ast.js.map +1 -0
  181. package/out/language/generated/grammar.js +13970 -0
  182. package/out/language/generated/grammar.js.map +1 -0
  183. package/out/language/generated/module.js +20 -0
  184. package/out/language/generated/module.js.map +1 -0
  185. package/out/language/intelligent-system-design-language-formatter.js +85 -0
  186. package/out/language/intelligent-system-design-language-formatter.js.map +1 -0
  187. package/out/language/intelligent-system-design-language-module.js +69 -0
  188. package/out/language/intelligent-system-design-language-module.js.map +1 -0
  189. package/out/language/intelligent-system-design-language-quickfixes.js +37 -0
  190. package/out/language/intelligent-system-design-language-quickfixes.js.map +1 -0
  191. package/out/language/intelligent-system-design-language-validator.js +515 -0
  192. package/out/language/intelligent-system-design-language-validator.js.map +1 -0
  193. package/out/language/isdl-hover-provider.js +77 -0
  194. package/out/language/isdl-hover-provider.js.map +1 -0
  195. package/out/language/isdl-scope-provider.js +149 -0
  196. package/out/language/isdl-scope-provider.js.map +1 -0
  197. package/out/language/main.cjs +47655 -0
  198. package/out/language/main.cjs.map +7 -0
  199. package/out/language/main.js +11 -0
  200. package/out/language/main.js.map +1 -0
  201. package/out/missing-character.png +0 -0
  202. package/out/package.json +426 -0
  203. package/out/paperdoll_default.png +0 -0
  204. package/out/progressbar.min.js +7 -0
  205. package/out/styles.scss +722 -0
  206. package/out/test/formatting/formatter.test.js +46 -0
  207. package/out/test/formatting/formatter.test.js.map +1 -0
  208. package/out/vuetify.esm.js +30279 -0
  209. package/package.json +426 -0
@@ -0,0 +1,722 @@
1
+ @use "./backgrounds";
2
+ @use "./handlebars";
3
+ @use "./vuetifyStyles";
4
+ @use "./vuetifyOverrides";
5
+ @use "./isdlStyles";
6
+
7
+ /* -------------------------------------------- */
8
+ /* Vuetify Overrides */
9
+ /* -------------------------------------------- */
10
+
11
+ .#{$dynamic-id}.vue-application {
12
+
13
+ html {
14
+ overflow-x: hidden;
15
+ overflow-y: scroll;
16
+ }
17
+ }
18
+
19
+ /* -------------------------------------------- */
20
+ /* System Stylesheet */
21
+ /* -------------------------------------------- */
22
+
23
+ .#{$dynamic-id}.handlebars-sheet {
24
+ @include handlebars.handlebarsSheet;
25
+ }
26
+
27
+ .v-overlay-container {
28
+ @include vuetifyStyles.vuetifyStyles;
29
+ @include vuetifyOverrides.vuetifyOverrides;
30
+
31
+ --v-theme-overlay-multiplier: 1;
32
+ --v-disabled-opacity: 0.7;
33
+ }
34
+
35
+ // Copy of Foundry app styles for vue apps
36
+ .#{$dynamic-id}.vue-application {
37
+
38
+ --color-text-primary: var(--color-light-2);
39
+ --color-header-background: rgba(0, 0, 0, 0.5);
40
+ --color-border: var(--color-cool-4);
41
+ --color-fieldset-border: var(--color-light-6);
42
+ --color-form-hint: var(--color-light-5);
43
+ --color-form-hint-hover: var(--color-light-4);
44
+ --color-form-label: var(--color-light-4);
45
+ --color-form-label-hover: var(--color-light-2);
46
+ --color-select-option-bg: transparent;
47
+ --v-theme-overlay-multiplier: 1;
48
+ --v-disabled-opacity: 0.7;
49
+
50
+
51
+ .window-content {
52
+ @include vuetifyStyles.vuetifyStyles;
53
+ @include vuetifyOverrides.vuetifyOverrides;
54
+
55
+ --color-text-primary: var(--color-light-2);
56
+ --color-header-background: rgba(0, 0, 0, 0.5);
57
+ --color-border: var(--color-cool-4);
58
+ --color-fieldset-border: var(--color-light-6);
59
+ --color-form-hint: var(--color-light-5);
60
+ --color-form-hint-hover: var(--color-light-4);
61
+ --color-form-label: var(--color-light-4);
62
+ --color-form-label-hover: var(--color-light-2);
63
+ --color-select-option-bg: transparent;
64
+ --v-theme-overlay-multiplier: 1;
65
+ --v-disabled-opacity: 0.7;
66
+
67
+ overflow-y: scroll;
68
+
69
+ input[type="text"]:focus,
70
+ input[type="number"]:focus,
71
+ input[type="password"]:focus,
72
+ input[type="date"]:focus,
73
+ input[type="time"]:focus,
74
+ input[type="search"]:focus {
75
+ box-shadow: none;
76
+ }
77
+
78
+ .v-application {
79
+ @include isdlStyles.isdlStyles;
80
+ }
81
+ }
82
+
83
+ &.document-creation {
84
+
85
+ .window-content {
86
+ overflow: hidden;
87
+ }
88
+
89
+ .v-application__wrap {
90
+ min-height: unset;
91
+ }
92
+
93
+ .v-container {
94
+ padding: 1rem;
95
+ }
96
+ }
97
+
98
+ &.active-effect {
99
+ .v-col {
100
+ padding: 0;
101
+ }
102
+
103
+ .v-card {
104
+ padding: 0.25rem;
105
+
106
+ > .v-card-title {
107
+ padding-top: 0;
108
+ padding-bottom: 0;
109
+ }
110
+ }
111
+
112
+ .v-autocomplete__selection {
113
+ .v-chip__close {
114
+ border: none;
115
+ background: none;
116
+ }
117
+ }
118
+
119
+ }
120
+
121
+ position: absolute;
122
+ z-index: var(--z-index-window);
123
+ transform-origin: top left;
124
+ display: flex;
125
+ flex-direction: column;
126
+ flex-wrap: nowrap;
127
+ min-width: 200px;
128
+ max-height: 100%;
129
+ max-width: 100%;
130
+ overflow: hidden;
131
+ background: var(--background);
132
+ font-size: var(--font-size-14);
133
+ color: var(--color-text-primary);
134
+ border: 1px solid var(--color-border);
135
+ border-radius: 6px;
136
+ box-shadow: 0 0 10px #000;
137
+
138
+ > .window-resize-handle {
139
+ position: absolute;
140
+ inset: auto 0px 0px auto;
141
+ width: 11px;
142
+ height: 11px;
143
+ cursor: nwse-resize;
144
+ background: transparent url(/ui/resize-handle.webp) no-repeat center / contain;
145
+ }
146
+
147
+ > .window-header {
148
+ --button-size: 24px;
149
+ display: flex;
150
+ flex-wrap: nowrap;
151
+ align-items: center;
152
+ flex: 0 0 var(--header-height);
153
+ position: relative;
154
+ overflow: hidden;
155
+ padding: 0 0.5rem;
156
+ gap: 0.25rem;
157
+ z-index: 1;
158
+ cursor: grab;
159
+ background: var(--color-cool-5-90);
160
+ font-size: var(--font-size-13);
161
+ color: var(--color-light-1);
162
+ border-bottom: 1px solid var(--color-border);
163
+ font: unset;
164
+
165
+ > .window-title {
166
+ flex: 1;
167
+ font-size: inherit;
168
+ font-family: inherit;
169
+ font-weight: inherit;
170
+ text-shadow: none;
171
+ margin: 0;
172
+ line-height: var(--header-height);
173
+ border: none;
174
+ overflow: hidden;
175
+ text-align: left;
176
+ white-space: nowrap;
177
+ text-overflow: ellipsis;
178
+ }
179
+
180
+ > .header-control {
181
+ flex: 0 0 var(--button-size);
182
+ height: var(--button-size);
183
+ padding: 0;
184
+ margin: 0;
185
+ border: none;
186
+ color: var(--color-light-text-heading);
187
+ background: none;
188
+ }
189
+ }
190
+
191
+ > .controls-dropdown {
192
+ position: absolute;
193
+ overflow: hidden auto;
194
+ top: var(--header-height);
195
+ right: 0;
196
+ width: max-content;
197
+ min-width: 100px;
198
+ max-width: 300px;
199
+ max-height: 0;
200
+ z-index: 1;
201
+ list-style: none;
202
+ margin: 0 0.25rem;
203
+ padding: 0;
204
+ background: var(--background);
205
+ border-radius: 0 0 4px 4px;
206
+ transition: max-height 0.5s;
207
+ pointer-events: none;
208
+
209
+ > .header-control {
210
+ margin: 0.25rem;
211
+
212
+ > button {
213
+ --button-background-color: none;
214
+ --button-text-color: var(--color-text-primary);
215
+ width: 100%;
216
+ display: flex;
217
+ justify-content: space-between;
218
+ border: none;
219
+ font-size: var(--font-size-12);
220
+ color: var(--button-text-color);
221
+ background: var(--button-background-color);
222
+
223
+ > i {
224
+ line-height: 28px;
225
+ }
226
+ }
227
+ }
228
+
229
+ &.expanded {
230
+ max-height: calc(100% - var(--header-height));
231
+ pointer-events: all;
232
+ box-shadow: 0 0 8px var(--color-cool-3);
233
+ }
234
+ }
235
+
236
+ > .window-content {
237
+ backdrop-filter: blur(4px);
238
+ }
239
+
240
+
241
+ }
242
+
243
+
244
+ .#{$dynamic-id} {
245
+
246
+
247
+ --header-height: 36px;
248
+ --minimized-width: 200px;
249
+ --background: var(--color-cool-5-90);
250
+ --color-text-primary: var(--color-light-2);
251
+ --color-header-background: rgba(0, 0, 0, 0.5);
252
+ --color-border: var(--color-cool-4);
253
+ --color-fieldset-border: var(--color-light-6);
254
+ --color-form-hint: var(--color-light-5);
255
+ --color-form-hint-hover: var(--color-light-4);
256
+ --color-form-label: var(--color-light-4);
257
+ --color-form-label-hover: var(--color-light-2);
258
+ --color-select-option-bg: transparent;
259
+ --color-text-light-highlight: #f0f0e0;
260
+ --color-text-light-heading: #c9c7b8;
261
+ --color-text-light-primary: #b5b3a4;
262
+ --color-text-dark-primary: #191813;
263
+ --color-text-dark-secondary: #4b4a44;
264
+ --color-text-dark-header: #23221d;
265
+ --color-text-dark-inactive: #7a7971;
266
+ --color-text-hyperlink: #ff6400;
267
+ --color-text-selection: #f7f3e8;
268
+ --color-text-selection-bg: #777;
269
+ --color-text-light-0: #fff;
270
+ --color-text-light-1: #eee;
271
+ --color-text-light-2: #ddd;
272
+ --color-text-light-3: #ccc;
273
+ --color-text-light-4: #bbb;
274
+ --color-text-light-5: #aaa;
275
+ --color-text-light-6: #999;
276
+ --color-text-light-7: #888;
277
+ --color-text-dark-1: #111;
278
+ --color-text-dark-2: #222;
279
+ --color-text-dark-3: #444;
280
+ --color-text-dark-4: #555;
281
+ --color-text-dark-5: #666;
282
+ --color-text-dark-6: #777;
283
+ --color-border-light-1: #ddd;
284
+ --color-border-light-2: #999;
285
+ --color-border-dark-1: #111;
286
+ --color-border-dark-2: #222;
287
+ --color-border-dark-3: #333;
288
+ --color-border-dark-4: #444;
289
+ --color-border-dark-5: #666;
290
+ --color-shadow-primary: #ff0000;
291
+ --color-shadow-highlight: #ff6400;
292
+ --color-shadow-dark: #000;
293
+ --color-underline-inactive: #7a7971;
294
+ --color-underline-active: #44191A;
295
+ --color-underline-header: #782e22;
296
+ --color-border-light-highlight: #f0f0e0;
297
+ --color-border-light-primary: #b5b3a4;
298
+ --color-border-light-secondary: #c9c7b8;
299
+ --color-border-light-tertiary: #7a7971;
300
+ --color-border-dark: #000;
301
+ --color-border-dark-primary: #191813;
302
+ --color-border-dark-secondary: #23221d;
303
+ --color-border-dark-tertiary: #4b4a44;
304
+ --color-border-highlight: #ff6400;
305
+ --color-border-highlight-alt: #ff0000;
306
+ --color-bg-btn-minor-inactive: #c9c7b8;
307
+ --color-bg-btn-minor-active: #b5b3a4;
308
+ --color-select-option-bg: #dad8cc;
309
+ --color-checkbox-checked: #666;
310
+ --color-ownership-none: #5500ff;
311
+ --color-ownership-observer: #7a7971;
312
+ --color-ownership-owner: #b5b3a4;
313
+ --sidebar-width: 300px;
314
+ --sidebar-header-height: 32px;
315
+ --sidebar-item-height: 48px;
316
+ --hotbar-height: 52px;
317
+ --hotbar-width: 578px;
318
+ --macro-size: 50px;
319
+ --color-scrollbar: #782e22;
320
+ --color-scrollbar-track: transparent;
321
+ --color-scrollbar-border: #ff6400;
322
+ --players-width: 200px;
323
+ --form-field-height: 26px;
324
+ --font-primary: "Signika", sans-serif;
325
+ --line-height-12: 0.75rem;
326
+ --line-height-16: 1rem;
327
+ --line-height-20: 1.25rem;
328
+ --line-height-30: 1.875rem;
329
+
330
+ &.create-document {
331
+ ol.unlist {
332
+ display: grid;
333
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
334
+ gap: 1rem;
335
+ list-style: none;
336
+
337
+ label {
338
+ display: block;
339
+ padding-bottom: 5px;
340
+ }
341
+
342
+ img {
343
+ border-bottom: none;
344
+ }
345
+ }
346
+ }
347
+
348
+ &.chat-card {
349
+
350
+ .chat-header {
351
+ border: 2px solid gray;
352
+ border-radius: 2px;
353
+ align-items: center;
354
+ transition: max-height 500ms ease;
355
+
356
+ .name {
357
+ font-size: 16px;
358
+ font-weight: bold;
359
+ }
360
+
361
+ .type {
362
+ font-style: italic;
363
+ font-size: 14px;
364
+ }
365
+
366
+ > header {
367
+ align-items: center;
368
+
369
+ > img {
370
+ flex: 0;
371
+ border-radius: 0;
372
+ margin-right: 1rem;
373
+ }
374
+
375
+ > i {
376
+ flex: 0;
377
+ }
378
+ }
379
+ }
380
+
381
+ i {
382
+ transition: all 250ms ease;
383
+ margin-right: 0.25rem;
384
+ }
385
+
386
+ .collapsible-content {
387
+ transition: height 500ms ease;
388
+ padding: 0.25rem;
389
+ }
390
+
391
+ .collapsible > header {
392
+ cursor: pointer;
393
+ }
394
+
395
+ .collapsed {
396
+ max-height: 54px;
397
+ overflow: hidden;
398
+
399
+ .collapse-icon {
400
+ transform: rotate(-90deg);
401
+ }
402
+
403
+ .collapsible-content {
404
+ opacity: 0;
405
+ height: 0px;
406
+ }
407
+ }
408
+
409
+ .chat-info {
410
+ color: black;
411
+ .wide {
412
+ flex-basis: 100%;
413
+
414
+ > dd {
415
+ padding-left: 0.5rem;
416
+ }
417
+ }
418
+
419
+ dl {
420
+ display: flex;
421
+ flex-wrap: wrap;
422
+ margin: 0.5em 0;
423
+ color: black;
424
+ text-shadow: none;
425
+ }
426
+
427
+ dt {
428
+ flex-basis: 25%;
429
+ color: black;
430
+ text-shadow: none;
431
+ }
432
+
433
+ dd {
434
+ flex-basis: 25%;
435
+ margin: 0;
436
+ padding: 0 0 10px 0;
437
+
438
+ > p {
439
+ line-height: 1.5rem;
440
+ }
441
+ }
442
+
443
+ .dice-roll {
444
+ .dice-total {
445
+ height: 35px;
446
+ line-height: 35px;
447
+ margin-bottom: 0.5rem;
448
+ font-weight: normal;
449
+ font-size: 16px;
450
+ text-align: left;
451
+
452
+ > i {
453
+ padding-left: 0.5rem;
454
+ line-height: 35px;
455
+ position: absolute;
456
+ }
457
+
458
+ .dice-info {
459
+ display: inline-block;
460
+ width: 200px;
461
+ white-space: nowrap;
462
+ overflow: hidden;
463
+ text-overflow: ellipsis;
464
+ margin-left: 30px;
465
+ }
466
+
467
+ > .label {
468
+ font-weight: bold;
469
+ }
470
+
471
+ > .result {
472
+ font-size: 20px;
473
+ font-weight: bold;
474
+ right: 10px;
475
+ position: absolute;
476
+ border-left: 1px solid gray;
477
+ padding-left: 10px;
478
+ line-height: 33px;
479
+ }
480
+ }
481
+
482
+ // Enhanced styling for damage rolls
483
+ &.damage-roll {
484
+ position: relative;
485
+
486
+ .dice-total {
487
+ .damage-type {
488
+ font-weight: normal;
489
+ font-size: 14px;
490
+ margin-left: 8px;
491
+ opacity: 0.9;
492
+ }
493
+ }
494
+
495
+ .damage-metadata {
496
+ margin-top: 0.25rem;
497
+ margin-left: 0.25px;
498
+ font-size: 12px;
499
+ color: var(--color-text-dark-1);
500
+
501
+ .damage-property {
502
+ display: inline-block;
503
+ padding: 2px 6px;
504
+ background: rgba(0, 0, 0, 0.2);
505
+ border-radius: 3px;
506
+ border: 1px solid rgba(255, 255, 255, 0.1);
507
+ }
508
+ }
509
+
510
+ }
511
+ }
512
+
513
+ .measured-template {
514
+ display: flex;
515
+
516
+ .measured-template-button {
517
+ flex: 0 0 100%;
518
+ height: 35px;
519
+ line-height: 35px;
520
+ margin: 0;
521
+ margin-bottom: 0.5rem;
522
+ font-weight: normal;
523
+ font-size: 16px;
524
+ text-align: left;
525
+ position: relative;
526
+ background: rgba(0, 0, 0, 0.1);
527
+ --color-border-light-2: #999;
528
+ border: 1px solid var(--color-border-light-2);
529
+ border-radius: 3px;
530
+ box-shadow: 0 0 2px #FFF inset;
531
+ word-break: break-all;
532
+
533
+ > i {
534
+ padding-left: 0.5rem;
535
+ line-height: 30px;
536
+ position: absolute;
537
+ }
538
+
539
+ .summary {
540
+ display: inline-block;
541
+ width: 100%;
542
+ white-space: nowrap;
543
+ overflow: hidden;
544
+ text-overflow: ellipsis;
545
+ margin-left: 8px;
546
+ font-size: 16px;
547
+ font-weight: normal;
548
+
549
+ > .result {
550
+ font-size: 20px;
551
+ font-weight: bold;
552
+ right: 2px;
553
+ position: absolute;
554
+ border-left: 1px solid gray;
555
+ padding-left: 7px;
556
+ height: 34px;
557
+
558
+ > i {
559
+ &:hover {
560
+ cursor: pointer;
561
+ box-shadow: 0 0 10px var(--color-shadow-highlight);
562
+ }
563
+ }
564
+ }
565
+ }
566
+ }
567
+ }
568
+
569
+ .chat-info-tags {
570
+ display: grid;
571
+ grid-template-columns: repeat(4, auto);
572
+ gap: 5px;
573
+ /* Space between items */
574
+
575
+ .tag {
576
+ border: 2px outset whitesmoke;
577
+ border-radius: 2px;
578
+ display: flex;
579
+ flex-direction: column;
580
+ font-size: 12px;
581
+ text-align: center;
582
+
583
+ .label {
584
+ font-weight: bold;
585
+ }
586
+ }
587
+ }
588
+ }
589
+
590
+ .chat-effects {
591
+
592
+ .title {
593
+ margin-top: 1rem;
594
+ font-size: 1.25em;
595
+ border-bottom: 1px solid var(--color-underline-header);
596
+ color: var(--color-text-dark-primary);
597
+
598
+ > i {
599
+ right: 1rem;
600
+ }
601
+ }
602
+
603
+ img {
604
+ flex: 0;
605
+ }
606
+
607
+ .effect {
608
+ .name {
609
+ margin-left: 0.5rem;
610
+ line-height: 30px;
611
+ font-size: 16px;
612
+ }
613
+
614
+ &:not(:last-child) {
615
+ border-bottom: 1px dashed gray;
616
+ margin-bottom: 0.75rem;
617
+ padding-bottom: 0.25rem;
618
+ }
619
+
620
+ &:hover {
621
+ cursor: pointer;
622
+ border: 1px dashed var(--color-shadow-primary);
623
+ }
624
+ }
625
+ }
626
+ }
627
+ }
628
+
629
+
630
+ /* ----------------------------------------- */
631
+ /* Context Dropdown Menu
632
+ /* ----------------------------------------- */
633
+ #context-menu2 {
634
+ width: 100%;
635
+ height: max-content;
636
+ min-width: 200px;
637
+ max-width: 360px;
638
+ position: absolute;
639
+ left: 0;
640
+ background: linear-gradient(180deg, rgba(24, 23, 20, 0.8) 0%, rgba(35, 34, 29, 0.8) 100%);
641
+ border: 1px solid #000;
642
+ box-shadow: 0 0 20px -2px #000;
643
+ border-radius: 5px;
644
+ color: #EEE;
645
+ z-index: 31;
646
+
647
+ h2 {
648
+ font-family: 'warnock-pro', sans-serif;
649
+ line-height: 44px;
650
+ padding: 0 5px;
651
+ border-bottom: 1px solid var(--color-border-highlight);
652
+ text-shadow: none;
653
+ }
654
+ }
655
+
656
+ #context-menu2.expand-down {
657
+ top: calc(100% + 2px);
658
+ }
659
+
660
+ #context-menu2.expand-up {
661
+ bottom: calc(100% + 2px);
662
+ }
663
+
664
+ #context-menu2 ol.context-items {
665
+ list-style: none;
666
+ margin: 0;
667
+ padding: 0;
668
+ }
669
+
670
+ #context-menu2 li.context-item {
671
+ padding: 0 5px;
672
+ line-height: 32px;
673
+ text-shadow: none;
674
+ }
675
+
676
+ #context-menu2 li.context-item:hover {
677
+ color: #FFF;
678
+ text-shadow: 0 0 4px red;
679
+ }
680
+
681
+ #context-menu2 li.context-item > i {
682
+ margin-right: 5px;
683
+ }
684
+
685
+ .window-app #context-menu2 {
686
+ z-index: 101;
687
+ }
688
+
689
+ #chat-log #context-menu2 {
690
+ button {
691
+ font-size: 12px;
692
+ background: transparent;
693
+ color: #fff;
694
+ border: 1px dashed var(--color-border-highlight);
695
+ box-shadow: none;
696
+ opacity: 0.5;
697
+ background: rgba(160, 157, 231, 0.5);
698
+
699
+ &.active,
700
+ &:hover {
701
+ border: 1px solid var(--color-border-highlight);
702
+ color: #fff;
703
+ opacity: 1;
704
+ box-shadow: inset 0 0 10px 0px var(--color-shadow-primary);
705
+ }
706
+
707
+ &:hover {
708
+ border: 1px solid #35a7e9;
709
+ box-shadow: inset 0 0 8px 2px var(--color-shadow-primary);
710
+ }
711
+ }
712
+
713
+ .reroll,
714
+ .modifiers {
715
+ border-top: 1px solid var(--color-border-highlight);
716
+ }
717
+
718
+ .modifiers {
719
+ margin: 6px 0 0;
720
+ padding-top: 6px;
721
+ }
722
+ }