intelligent-system-design-language 0.3.21 → 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.
Files changed (116) hide show
  1. package/.claude/agents/langium-language-designer.md +38 -38
  2. package/.claude/agents/typescript-vscode-expert.md +29 -29
  3. package/.claude/agents/ui-ux-designer.md +36 -36
  4. package/.claude/settings.local.json +33 -33
  5. package/.idea/inspectionProfiles/Project_Default.xml +6 -6
  6. package/.idea/isdl.iml +13 -13
  7. package/.idea/modules.xml +8 -8
  8. package/.idea/vcs.xml +6 -6
  9. package/.idea/watcherTasks.xml +3 -3
  10. package/.vscodeignore +18 -18
  11. package/LICENSE +673 -673
  12. package/README.md +86 -86
  13. package/bin/cli.js +4 -4
  14. package/bin/lsp.js +8 -8
  15. package/out/_backgrounds.scss +91 -91
  16. package/out/_handlebars.scss +497 -497
  17. package/out/_isdlStyles.scss +1444 -1381
  18. package/out/_vuetifyOverrides.scss +425 -425
  19. package/out/_vuetifyStyles.scss +31957 -31957
  20. package/out/cli/components/_backgrounds.scss +91 -91
  21. package/out/cli/components/_handlebars.scss +497 -497
  22. package/out/cli/components/_isdlStyles.scss +1444 -1381
  23. package/out/cli/components/_vuetifyOverrides.scss +425 -425
  24. package/out/cli/components/_vuetifyStyles.scss +31957 -31957
  25. package/out/cli/components/active-effect-sheet-generator.js +453 -453
  26. package/out/cli/components/chat-card-generator.js +654 -651
  27. package/out/cli/components/chat-card-generator.js.map +1 -1
  28. package/out/cli/components/css-generator.js +4 -4
  29. package/out/cli/components/damage-roll-generator.js +160 -160
  30. package/out/cli/components/datamodel-generator.js +264 -257
  31. package/out/cli/components/datamodel-generator.js.map +1 -1
  32. package/out/cli/components/derived-data-generator.js +923 -923
  33. package/out/cli/components/hotbar-drop-hook-generator.js +82 -82
  34. package/out/cli/components/init-hook-generator.js +495 -495
  35. package/out/cli/components/language-generator.js +1 -1
  36. package/out/cli/components/language-generator.js.map +1 -1
  37. package/out/cli/components/measured-template-preview.js +221 -221
  38. package/out/cli/components/method-generator.js +979 -887
  39. package/out/cli/components/method-generator.js.map +1 -1
  40. package/out/cli/components/ready-hook-generator.js +404 -404
  41. package/out/cli/components/token-generator.js +116 -116
  42. package/out/cli/components/vue/base-components/vue-attribute.js +138 -138
  43. package/out/cli/components/vue/base-components/vue-boolean.js +64 -64
  44. package/out/cli/components/vue/base-components/vue-calculator.js +93 -93
  45. package/out/cli/components/vue/base-components/vue-damage-application.js +356 -356
  46. package/out/cli/components/vue/base-components/vue-damage-bonuses.js +165 -165
  47. package/out/cli/components/vue/base-components/vue-damage-resistances.js +196 -196
  48. package/out/cli/components/vue/base-components/vue-damage-track.js +121 -121
  49. package/out/cli/components/vue/base-components/vue-date-time.js +42 -42
  50. package/out/cli/components/vue/base-components/vue-dice.js +98 -98
  51. package/out/cli/components/vue/base-components/vue-die.js +73 -73
  52. package/out/cli/components/vue/base-components/vue-document-choice.js +149 -149
  53. package/out/cli/components/vue/base-components/vue-document-choices.js +179 -179
  54. package/out/cli/components/vue/base-components/vue-document-link.js +60 -60
  55. package/out/cli/components/vue/base-components/vue-extended-choice.js +88 -88
  56. package/out/cli/components/vue/base-components/vue-inventory.js +519 -519
  57. package/out/cli/components/vue/base-components/vue-macro-choice.js +138 -138
  58. package/out/cli/components/vue/base-components/vue-measured-template.js +530 -530
  59. package/out/cli/components/vue/base-components/vue-money.js +483 -483
  60. package/out/cli/components/vue/base-components/vue-number.js +174 -174
  61. package/out/cli/components/vue/base-components/vue-paperdoll.js +43 -43
  62. package/out/cli/components/vue/base-components/vue-parent-property-reference.js +76 -76
  63. package/out/cli/components/vue/base-components/vue-prosemirror.js +18 -18
  64. package/out/cli/components/vue/base-components/vue-resource.js +136 -136
  65. package/out/cli/components/vue/base-components/vue-roll-visualizer.js +286 -109
  66. package/out/cli/components/vue/base-components/vue-roll-visualizer.js.map +1 -1
  67. package/out/cli/components/vue/base-components/vue-self-property-reference.js +62 -62
  68. package/out/cli/components/vue/base-components/vue-string-choice.js +98 -98
  69. package/out/cli/components/vue/base-components/vue-string-choices.js +203 -203
  70. package/out/cli/components/vue/base-components/vue-string.js +60 -60
  71. package/out/cli/components/vue/base-components/vue-text-field.js +53 -53
  72. package/out/cli/components/vue/base-components/vue-tracker.js +431 -431
  73. package/out/cli/components/vue/vue-action-component-generator.js +64 -64
  74. package/out/cli/components/vue/vue-active-effect-sheet-generator.js +856 -856
  75. package/out/cli/components/vue/vue-datatable-sheet-class-generator.js +292 -292
  76. package/out/cli/components/vue/vue-datatable2-component-generator.js +824 -824
  77. package/out/cli/components/vue/vue-document-creation-app.js +121 -121
  78. package/out/cli/components/vue/vue-document-creation-sheet.js +94 -94
  79. package/out/cli/components/vue/vue-generator.js +40 -40
  80. package/out/cli/components/vue/vue-mixin.js +296 -296
  81. package/out/cli/components/vue/vue-pinned-datatable-component-generator.js +260 -260
  82. package/out/cli/components/vue/vue-prompt-generator.js +91 -76
  83. package/out/cli/components/vue/vue-prompt-generator.js.map +1 -1
  84. package/out/cli/components/vue/vue-prompt-sheet-class-generator.js +317 -317
  85. package/out/cli/components/vue/vue-sheet-application-generator.js +1177 -1167
  86. package/out/cli/components/vue/vue-sheet-application-generator.js.map +1 -1
  87. package/out/cli/components/vue/vue-sheet-class-generator.js +510 -510
  88. package/out/cli/generator.js +438 -433
  89. package/out/cli/generator.js.map +1 -1
  90. package/out/extension/github/githubAuthProvider.js +71 -29
  91. package/out/extension/github/githubAuthProvider.js.map +1 -1
  92. package/out/extension/github/githubGistManager.js +4 -3
  93. package/out/extension/github/githubGistManager.js.map +1 -1
  94. package/out/extension/github/githubManager.js +40 -38
  95. package/out/extension/github/githubManager.js.map +1 -1
  96. package/out/extension/github/githubQuickActions.js +120 -120
  97. package/out/extension/github/system-workflow.yml +47 -47
  98. package/out/extension/main.cjs +909 -532
  99. package/out/extension/main.cjs.map +3 -3
  100. package/out/extension/package.json +419 -419
  101. package/out/language/generated/ast.js +51 -2
  102. package/out/language/generated/ast.js.map +1 -1
  103. package/out/language/generated/grammar.js +14240 -13991
  104. package/out/language/generated/grammar.js.map +1 -1
  105. package/out/language/intelligent-system-design-language-validator.js +32 -2
  106. package/out/language/intelligent-system-design-language-validator.js.map +1 -1
  107. package/out/language/isdl-scope-provider.js +14 -1
  108. package/out/language/isdl-scope-provider.js.map +1 -1
  109. package/out/language/main.cjs +913 -569
  110. package/out/language/main.cjs.map +3 -3
  111. package/out/package.json +419 -419
  112. package/out/progressbar.min.js +6 -6
  113. package/out/styles.scss +762 -747
  114. package/out/test/validating/diagnostics.test.js +40 -0
  115. package/out/test/validating/diagnostics.test.js.map +1 -1
  116. package/package.json +419 -419
@@ -1,497 +1,497 @@
1
- @use "./backgrounds";
2
-
3
- @mixin handlebarsSheet {
4
-
5
- .property {
6
- padding-left: 5px;
7
- padding-right: 5px;
8
- }
9
-
10
- .notification {
11
- margin-top: 1rem;
12
- flex-grow: 0;
13
- }
14
-
15
- .window-app {
16
- min-width: 400px;
17
- }
18
-
19
- .window-content {
20
- padding: 0;
21
- }
22
-
23
- &.dialog {
24
- height: unset;
25
- }
26
-
27
- .dialog-content {
28
- margin: 0.5rem;
29
- }
30
-
31
- .window-content>form {
32
- padding: 8px;
33
- @include backgrounds.topography;
34
-
35
- &.dead {
36
- @include backgrounds.skulls;
37
- }
38
-
39
- &.dark {
40
- @include backgrounds.topography-dark;
41
-
42
- // &.dead {
43
- // @include background-skulls-dark;
44
- // }
45
- }
46
-
47
- &.hideout {
48
- @include backgrounds.hideout;
49
- }
50
-
51
- &.graphpaper {
52
- @include backgrounds.graphpaper;
53
- }
54
-
55
- &.texture {
56
- @include backgrounds.texture;
57
- }
58
-
59
- &.squares {
60
- @include backgrounds.squares;
61
- }
62
-
63
- &.dominoes {
64
- @include backgrounds.dominoes;
65
- }
66
-
67
- &.temple {
68
- @include backgrounds.temple;
69
- }
70
-
71
- &.food {
72
- @include backgrounds.food;
73
- }
74
-
75
- &.anchors {
76
- @include backgrounds.anchors;
77
- }
78
-
79
- &.bubbles {
80
- @include backgrounds.bubbles;
81
- }
82
-
83
- &.diamonds {
84
- @include backgrounds.diamonds;
85
- }
86
-
87
- &.circuitboard {
88
- @include backgrounds.circuitboard;
89
- }
90
-
91
- &.bricks {
92
- @include backgrounds.bricks;
93
- }
94
-
95
- &.signal {
96
- @include backgrounds.signal;
97
- }
98
- }
99
-
100
- &.edit-mode {
101
- .window-content>form {
102
- @include backgrounds.cogs;
103
- }
104
- }
105
-
106
- .sheet-header,
107
- .sheet-tabs,
108
- footer {
109
- flex: 0;
110
- }
111
-
112
- .editor {
113
- height: 190px;
114
- }
115
-
116
- .grid-container {
117
- display: grid;
118
- grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
119
- gap: 10px;
120
- }
121
-
122
- .form-group {
123
- &.double-wide {
124
- grid-column: span 2;
125
- }
126
-
127
- &.triple-wide {
128
- grid-column: span 3;
129
- }
130
- }
131
-
132
- .section {
133
- display: grid;
134
- grid-template-columns: repeat(3, 1fr);
135
- align-items: start;
136
- align-content: start;
137
- border-radius: 0.5rem;
138
- box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);
139
-
140
- >fieldset {
141
- margin-bottom: 0.25rem;
142
- }
143
-
144
- >.property {
145
- grid-column: span 3;
146
- }
147
-
148
- >.attributeExp {
149
- grid-column: span 1;
150
- }
151
- }
152
-
153
- label {
154
- background: #333;
155
- color: #fff;
156
- text-align: left;
157
- width: 100%;
158
- font-weight: bold;
159
- padding-left: 0.5rem;
160
- }
161
-
162
- input,
163
- select {
164
- background: #e9e9e9;
165
- border: 1px solid #e9e9e9;
166
- font-size: 19px;
167
- box-shadow: inset #c9c9c9 0px 0px 4px 0px;
168
-
169
- &:disabled {
170
- background: rgba(233, 233, 233, 0.3);
171
- border: 1px solid rgba(233, 233, 233, 0.3);
172
- }
173
- }
174
-
175
- input[type="checkbox"] {
176
- flex: 0 0 26px;
177
- width: 26px;
178
- height: 26px;
179
- margin-left: 0;
180
- }
181
-
182
- button {
183
- max-height: 4rem;
184
- padding: 0.25rem;
185
- margin: 0.25rem;
186
- }
187
-
188
- .dt-body-center {
189
- text-align: center;
190
- }
191
-
192
- .dt-buttons {
193
- display: flex;
194
- height: 52px;
195
- }
196
-
197
- .pages-container {
198
- >.tab {
199
- height: 100%;
200
- }
201
- }
202
-
203
- .pages {
204
- flex: 0;
205
- margin-left: -10px;
206
- margin-right: -10px;
207
- margin-top: 15px;
208
- margin-bottom: 1rem;
209
- display: flex;
210
- flex-direction: row;
211
- flex-wrap: nowrap;
212
- justify-content: space-around;
213
- text-align: center;
214
-
215
- a.item {
216
- width: 100%;
217
- padding: 10px 0;
218
- border-bottom: 2px solid #000;
219
- font-size: 16px;
220
-
221
- &.active {
222
- color: #000;
223
- border: 2px solid #000;
224
- border-bottom: 0;
225
- text-shadow: none;
226
- font-weight: bold;
227
- }
228
- }
229
- }
230
-
231
- .tabs {
232
- flex: 0;
233
- margin: 15px 2px 0;
234
-
235
- a.item {
236
- width: 100%;
237
- padding: 10px 0;
238
- border-bottom: 2px solid #000;
239
-
240
- &.active {
241
- color: #000;
242
- border: 2px solid #000;
243
- border-bottom: 0;
244
- text-shadow: none;
245
- font-weight: bold;
246
- }
247
- }
248
- }
249
-
250
- fieldset {
251
- border-width: 2px;
252
- border-style: solid;
253
- border-color: #333;
254
- }
255
-
256
- legend {
257
- font-weight: bold;
258
- font-size: 15px;
259
- padding: 0px 5px;
260
- }
261
-
262
- .tabs-container fieldset {
263
- border-top: 0;
264
- }
265
-
266
- .tabs-container {
267
- >.tab {
268
- height: 100%;
269
- }
270
- }
271
-
272
- .attributeExp {
273
- display: flex;
274
- flex-direction: column;
275
- margin: 5px;
276
- border: 3px solid #333;
277
- border-radius: 4px;
278
-
279
- >label {
280
- text-align: center;
281
- }
282
-
283
- >input {
284
- text-align: center;
285
- }
286
-
287
- >.mod {
288
- font-size: 26px;
289
- font-weight: bold;
290
- margin: 10px 0;
291
- }
292
- }
293
-
294
- .date {
295
- >input {
296
- min-width: 100px;
297
- }
298
- }
299
-
300
- .time {
301
- >input {
302
- min-width: 100px;
303
- }
304
- }
305
-
306
- .paper-doll {
307
- .paper-doll-container {
308
- position: relative;
309
- height: 275px;
310
- width: 275px;
311
- background-size: contain;
312
- background-repeat: no-repeat;
313
- }
314
-
315
- .paper-doll-slot {
316
- position: absolute;
317
- width: 40px;
318
- height: 40px;
319
- border: 2px dashed rgba(0, 0, 0, 0.5);
320
- background: rgba(255, 255, 255, 0.1);
321
- }
322
- }
323
-
324
- .damage-track {
325
- .damage-track-container {
326
- margin-left: 5px;
327
- display: flex;
328
- gap: 5px;
329
-
330
- &.circles {
331
- .pip {
332
- border-radius: 50%;
333
- }
334
- }
335
- }
336
-
337
- .damage {
338
- width: 20px;
339
- height: 20px;
340
- background-color: white;
341
- border: 1px solid black;
342
- display: flex;
343
- align-items: center;
344
- justify-content: center;
345
-
346
- // Up to 5 tiers of damage types, progressing from pale yellow to bright red
347
- &.tier-1 {
348
- background-color: #f0f0a0;
349
- }
350
-
351
- &.tier-2 {
352
- background-color: #c9a511;
353
- }
354
-
355
- &.tier-3 {
356
- background-color: #f09880;
357
- }
358
-
359
- &.tier-4 {
360
- background-color: #f06060;
361
- }
362
-
363
- &.tier-5 {
364
- background-color: #f01515;
365
- }
366
- }
367
- }
368
-
369
- .calculator-toggle {
370
- flex: 0 25px;
371
- text-align: center;
372
- font-size: 18px;
373
- line-height: 26px;
374
- padding-left: 0.5rem;
375
- }
376
-
377
- .calc-button:hover {
378
- background: rgba(50, 50, 50, 0.7);
379
- }
380
-
381
- .calculator {
382
- display: none;
383
- position: absolute;
384
- top: 50px;
385
- left: 50px;
386
- background: rgba(30, 30, 30, 0.8);
387
- padding: 10px;
388
- border-radius: 8px;
389
- box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5);
390
- backdrop-filter: blur(5px);
391
-
392
- input {
393
- width: 100%;
394
- padding: 5px;
395
- font-size: 14px;
396
- border-radius: 4px;
397
- border: none;
398
- margin-bottom: 5px;
399
- }
400
-
401
- .calc-buttons {
402
- display: flex;
403
- }
404
-
405
- button {
406
- background: rgba(255, 255, 255, 0.4);
407
- border: none;
408
- padding: 8px;
409
- font-size: 16px;
410
- margin: 2px;
411
- cursor: pointer;
412
- border-radius: 4px;
413
-
414
- &.active {
415
- background: rgba(195, 111, 110, 0.8);
416
- }
417
- }
418
- }
419
-
420
- .numberExp {
421
-
422
- >label {
423
- max-width: 40%;
424
- }
425
-
426
- &.calc {
427
- input[type="number"] {
428
- flex: 1 94px;
429
- }
430
- }
431
- }
432
-
433
- .resourceExp {
434
-
435
- margin-left: 5px;
436
- margin-right: 5px;
437
-
438
- .max>input[type="number"] {
439
- flex: 1 110px;
440
- }
441
-
442
- .values {
443
- flex: 1 110px;
444
- }
445
-
446
- .temp {
447
- flex: 0 40px;
448
- text-align: center;
449
- }
450
- }
451
-
452
- .single-document {
453
-
454
- .single-document-content {
455
- display: flex;
456
- margin-left: 8px;
457
-
458
- >.content-link {
459
- flex: 3;
460
- margin-left: -8px;
461
- height: 26px;
462
- line-height: 24px;
463
- }
464
- }
465
-
466
- >.content-link {
467
- height: 26px;
468
- line-height: 22px;
469
- }
470
-
471
- .single-document-remove {
472
- margin-left: 0.25rem;
473
- flex: 0;
474
- line-height: 26px;
475
- }
476
-
477
- .single-document-none {
478
- padding-left: 0.25rem;
479
- border: 1px gray dashed;
480
- height: 26px;
481
- line-height: 22px;
482
- margin: 0;
483
- }
484
- }
485
-
486
- /* Dark mode */
487
- // @media (prefers-color-scheme: dark) {
488
- // .window-content {
489
- // @include background-topography-dark;
490
- // color: antiquewhite;
491
-
492
- // &.dead {
493
-
494
- // }
495
- // }
496
- // }
497
- }
1
+ @use "./backgrounds";
2
+
3
+ @mixin handlebarsSheet {
4
+
5
+ .property {
6
+ padding-left: 5px;
7
+ padding-right: 5px;
8
+ }
9
+
10
+ .notification {
11
+ margin-top: 1rem;
12
+ flex-grow: 0;
13
+ }
14
+
15
+ .window-app {
16
+ min-width: 400px;
17
+ }
18
+
19
+ .window-content {
20
+ padding: 0;
21
+ }
22
+
23
+ &.dialog {
24
+ height: unset;
25
+ }
26
+
27
+ .dialog-content {
28
+ margin: 0.5rem;
29
+ }
30
+
31
+ .window-content>form {
32
+ padding: 8px;
33
+ @include backgrounds.topography;
34
+
35
+ &.dead {
36
+ @include backgrounds.skulls;
37
+ }
38
+
39
+ &.dark {
40
+ @include backgrounds.topography-dark;
41
+
42
+ // &.dead {
43
+ // @include background-skulls-dark;
44
+ // }
45
+ }
46
+
47
+ &.hideout {
48
+ @include backgrounds.hideout;
49
+ }
50
+
51
+ &.graphpaper {
52
+ @include backgrounds.graphpaper;
53
+ }
54
+
55
+ &.texture {
56
+ @include backgrounds.texture;
57
+ }
58
+
59
+ &.squares {
60
+ @include backgrounds.squares;
61
+ }
62
+
63
+ &.dominoes {
64
+ @include backgrounds.dominoes;
65
+ }
66
+
67
+ &.temple {
68
+ @include backgrounds.temple;
69
+ }
70
+
71
+ &.food {
72
+ @include backgrounds.food;
73
+ }
74
+
75
+ &.anchors {
76
+ @include backgrounds.anchors;
77
+ }
78
+
79
+ &.bubbles {
80
+ @include backgrounds.bubbles;
81
+ }
82
+
83
+ &.diamonds {
84
+ @include backgrounds.diamonds;
85
+ }
86
+
87
+ &.circuitboard {
88
+ @include backgrounds.circuitboard;
89
+ }
90
+
91
+ &.bricks {
92
+ @include backgrounds.bricks;
93
+ }
94
+
95
+ &.signal {
96
+ @include backgrounds.signal;
97
+ }
98
+ }
99
+
100
+ &.edit-mode {
101
+ .window-content>form {
102
+ @include backgrounds.cogs;
103
+ }
104
+ }
105
+
106
+ .sheet-header,
107
+ .sheet-tabs,
108
+ footer {
109
+ flex: 0;
110
+ }
111
+
112
+ .editor {
113
+ height: 190px;
114
+ }
115
+
116
+ .grid-container {
117
+ display: grid;
118
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
119
+ gap: 10px;
120
+ }
121
+
122
+ .form-group {
123
+ &.double-wide {
124
+ grid-column: span 2;
125
+ }
126
+
127
+ &.triple-wide {
128
+ grid-column: span 3;
129
+ }
130
+ }
131
+
132
+ .section {
133
+ display: grid;
134
+ grid-template-columns: repeat(3, 1fr);
135
+ align-items: start;
136
+ align-content: start;
137
+ border-radius: 0.5rem;
138
+ box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);
139
+
140
+ >fieldset {
141
+ margin-bottom: 0.25rem;
142
+ }
143
+
144
+ >.property {
145
+ grid-column: span 3;
146
+ }
147
+
148
+ >.attributeExp {
149
+ grid-column: span 1;
150
+ }
151
+ }
152
+
153
+ label {
154
+ background: #333;
155
+ color: #fff;
156
+ text-align: left;
157
+ width: 100%;
158
+ font-weight: bold;
159
+ padding-left: 0.5rem;
160
+ }
161
+
162
+ input,
163
+ select {
164
+ background: #e9e9e9;
165
+ border: 1px solid #e9e9e9;
166
+ font-size: 19px;
167
+ box-shadow: inset #c9c9c9 0px 0px 4px 0px;
168
+
169
+ &:disabled {
170
+ background: rgba(233, 233, 233, 0.3);
171
+ border: 1px solid rgba(233, 233, 233, 0.3);
172
+ }
173
+ }
174
+
175
+ input[type="checkbox"] {
176
+ flex: 0 0 26px;
177
+ width: 26px;
178
+ height: 26px;
179
+ margin-left: 0;
180
+ }
181
+
182
+ button {
183
+ max-height: 4rem;
184
+ padding: 0.25rem;
185
+ margin: 0.25rem;
186
+ }
187
+
188
+ .dt-body-center {
189
+ text-align: center;
190
+ }
191
+
192
+ .dt-buttons {
193
+ display: flex;
194
+ height: 52px;
195
+ }
196
+
197
+ .pages-container {
198
+ >.tab {
199
+ height: 100%;
200
+ }
201
+ }
202
+
203
+ .pages {
204
+ flex: 0;
205
+ margin-left: -10px;
206
+ margin-right: -10px;
207
+ margin-top: 15px;
208
+ margin-bottom: 1rem;
209
+ display: flex;
210
+ flex-direction: row;
211
+ flex-wrap: nowrap;
212
+ justify-content: space-around;
213
+ text-align: center;
214
+
215
+ a.item {
216
+ width: 100%;
217
+ padding: 10px 0;
218
+ border-bottom: 2px solid #000;
219
+ font-size: 16px;
220
+
221
+ &.active {
222
+ color: #000;
223
+ border: 2px solid #000;
224
+ border-bottom: 0;
225
+ text-shadow: none;
226
+ font-weight: bold;
227
+ }
228
+ }
229
+ }
230
+
231
+ .tabs {
232
+ flex: 0;
233
+ margin: 15px 2px 0;
234
+
235
+ a.item {
236
+ width: 100%;
237
+ padding: 10px 0;
238
+ border-bottom: 2px solid #000;
239
+
240
+ &.active {
241
+ color: #000;
242
+ border: 2px solid #000;
243
+ border-bottom: 0;
244
+ text-shadow: none;
245
+ font-weight: bold;
246
+ }
247
+ }
248
+ }
249
+
250
+ fieldset {
251
+ border-width: 2px;
252
+ border-style: solid;
253
+ border-color: #333;
254
+ }
255
+
256
+ legend {
257
+ font-weight: bold;
258
+ font-size: 15px;
259
+ padding: 0px 5px;
260
+ }
261
+
262
+ .tabs-container fieldset {
263
+ border-top: 0;
264
+ }
265
+
266
+ .tabs-container {
267
+ >.tab {
268
+ height: 100%;
269
+ }
270
+ }
271
+
272
+ .attributeExp {
273
+ display: flex;
274
+ flex-direction: column;
275
+ margin: 5px;
276
+ border: 3px solid #333;
277
+ border-radius: 4px;
278
+
279
+ >label {
280
+ text-align: center;
281
+ }
282
+
283
+ >input {
284
+ text-align: center;
285
+ }
286
+
287
+ >.mod {
288
+ font-size: 26px;
289
+ font-weight: bold;
290
+ margin: 10px 0;
291
+ }
292
+ }
293
+
294
+ .date {
295
+ >input {
296
+ min-width: 100px;
297
+ }
298
+ }
299
+
300
+ .time {
301
+ >input {
302
+ min-width: 100px;
303
+ }
304
+ }
305
+
306
+ .paper-doll {
307
+ .paper-doll-container {
308
+ position: relative;
309
+ height: 275px;
310
+ width: 275px;
311
+ background-size: contain;
312
+ background-repeat: no-repeat;
313
+ }
314
+
315
+ .paper-doll-slot {
316
+ position: absolute;
317
+ width: 40px;
318
+ height: 40px;
319
+ border: 2px dashed rgba(0, 0, 0, 0.5);
320
+ background: rgba(255, 255, 255, 0.1);
321
+ }
322
+ }
323
+
324
+ .damage-track {
325
+ .damage-track-container {
326
+ margin-left: 5px;
327
+ display: flex;
328
+ gap: 5px;
329
+
330
+ &.circles {
331
+ .pip {
332
+ border-radius: 50%;
333
+ }
334
+ }
335
+ }
336
+
337
+ .damage {
338
+ width: 20px;
339
+ height: 20px;
340
+ background-color: white;
341
+ border: 1px solid black;
342
+ display: flex;
343
+ align-items: center;
344
+ justify-content: center;
345
+
346
+ // Up to 5 tiers of damage types, progressing from pale yellow to bright red
347
+ &.tier-1 {
348
+ background-color: #f0f0a0;
349
+ }
350
+
351
+ &.tier-2 {
352
+ background-color: #c9a511;
353
+ }
354
+
355
+ &.tier-3 {
356
+ background-color: #f09880;
357
+ }
358
+
359
+ &.tier-4 {
360
+ background-color: #f06060;
361
+ }
362
+
363
+ &.tier-5 {
364
+ background-color: #f01515;
365
+ }
366
+ }
367
+ }
368
+
369
+ .calculator-toggle {
370
+ flex: 0 25px;
371
+ text-align: center;
372
+ font-size: 18px;
373
+ line-height: 26px;
374
+ padding-left: 0.5rem;
375
+ }
376
+
377
+ .calc-button:hover {
378
+ background: rgba(50, 50, 50, 0.7);
379
+ }
380
+
381
+ .calculator {
382
+ display: none;
383
+ position: absolute;
384
+ top: 50px;
385
+ left: 50px;
386
+ background: rgba(30, 30, 30, 0.8);
387
+ padding: 10px;
388
+ border-radius: 8px;
389
+ box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5);
390
+ backdrop-filter: blur(5px);
391
+
392
+ input {
393
+ width: 100%;
394
+ padding: 5px;
395
+ font-size: 14px;
396
+ border-radius: 4px;
397
+ border: none;
398
+ margin-bottom: 5px;
399
+ }
400
+
401
+ .calc-buttons {
402
+ display: flex;
403
+ }
404
+
405
+ button {
406
+ background: rgba(255, 255, 255, 0.4);
407
+ border: none;
408
+ padding: 8px;
409
+ font-size: 16px;
410
+ margin: 2px;
411
+ cursor: pointer;
412
+ border-radius: 4px;
413
+
414
+ &.active {
415
+ background: rgba(195, 111, 110, 0.8);
416
+ }
417
+ }
418
+ }
419
+
420
+ .numberExp {
421
+
422
+ >label {
423
+ max-width: 40%;
424
+ }
425
+
426
+ &.calc {
427
+ input[type="number"] {
428
+ flex: 1 94px;
429
+ }
430
+ }
431
+ }
432
+
433
+ .resourceExp {
434
+
435
+ margin-left: 5px;
436
+ margin-right: 5px;
437
+
438
+ .max>input[type="number"] {
439
+ flex: 1 110px;
440
+ }
441
+
442
+ .values {
443
+ flex: 1 110px;
444
+ }
445
+
446
+ .temp {
447
+ flex: 0 40px;
448
+ text-align: center;
449
+ }
450
+ }
451
+
452
+ .single-document {
453
+
454
+ .single-document-content {
455
+ display: flex;
456
+ margin-left: 8px;
457
+
458
+ >.content-link {
459
+ flex: 3;
460
+ margin-left: -8px;
461
+ height: 26px;
462
+ line-height: 24px;
463
+ }
464
+ }
465
+
466
+ >.content-link {
467
+ height: 26px;
468
+ line-height: 22px;
469
+ }
470
+
471
+ .single-document-remove {
472
+ margin-left: 0.25rem;
473
+ flex: 0;
474
+ line-height: 26px;
475
+ }
476
+
477
+ .single-document-none {
478
+ padding-left: 0.25rem;
479
+ border: 1px gray dashed;
480
+ height: 26px;
481
+ line-height: 22px;
482
+ margin: 0;
483
+ }
484
+ }
485
+
486
+ /* Dark mode */
487
+ // @media (prefers-color-scheme: dark) {
488
+ // .window-content {
489
+ // @include background-topography-dark;
490
+ // color: antiquewhite;
491
+
492
+ // &.dead {
493
+
494
+ // }
495
+ // }
496
+ // }
497
+ }