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,425 +1,425 @@
1
- @mixin vuetifyOverrides {
2
- /* #region Vuetify Overrides */
3
- html {
4
- overflow: unset;
5
- }
6
-
7
- input:focus {
8
- outline: none;
9
- }
10
-
11
- /* Text Input */
12
- input[type="text"],
13
- input[type="number"],
14
- input[type="password"],
15
- input[type="date"],
16
- input[type="time"],
17
- input[type="datetime-local"],
18
- input[type="search"] {
19
- width: calc(100% - 2px);
20
- min-width: 20px;
21
- height: var(--form-field-height);
22
- background: rgba(0, 0, 0, 0.05);
23
- padding: 1px 3px;
24
- margin: 0;
25
- color: var(--color-text-dark-primary);
26
- font-family: inherit;
27
- font-size: inherit;
28
- text-align: inherit;
29
- line-height: inherit;
30
- border: 1px solid var(--color-border-light-tertiary);
31
- border-radius: 3px;
32
- -webkit-user-select: text;
33
- -moz-user-select: text;
34
- -ms-user-select: text;
35
- user-select: text;
36
- }
37
-
38
- input[type="text"]:focus,
39
- input[type="number"]:focus,
40
- input[type="password"]:focus,
41
- input[type="date"]:focus,
42
- input[type="time"]:focus,
43
- input[type="datetime-local"]:focus,
44
- input[type="search"]:focus {
45
- box-shadow: 0 0 5px var(--color-shadow-primary);
46
- }
47
-
48
- input[type="number"]::-webkit-inner-spin-button,
49
- input[type="number"]::-webkit-outer-spin-button {
50
- -webkit-appearance: none;
51
- }
52
-
53
- input[type="number"] {
54
- -moz-appearance: textfield;
55
- }
56
-
57
- input[type="search"]::-webkit-search-cancel-button {
58
- -webkit-appearance: none;
59
- display: inline-block;
60
- width: 12px;
61
- height: 12px;
62
- margin-left: 0.5rem;
63
- background: linear-gradient(45deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 43%, #333 45%, #333 55%, rgba(0, 0, 0, 0) 57%, rgba(0, 0, 0, 0) 100%), linear-gradient(135deg, transparent 0%, transparent 43%, #333 45%, #333 55%, transparent 57%, transparent 100%);
64
- cursor: pointer;
65
- }
66
-
67
- input[type="checkbox"] {
68
- flex: 0 0 20px;
69
- width: 20px;
70
- height: 20px;
71
- margin: 3px 5px;
72
- }
73
-
74
- input[type="radio"] {
75
- position: relative;
76
- top: 2px;
77
- margin: 0 0 0 5px;
78
- }
79
-
80
- input[type="checkbox"]:checked,
81
- input[type="radio"]:checked {
82
- accent-color: var(--color-checkbox-checked);
83
- }
84
-
85
- input[type="checkbox"]:focus-visible,
86
- input[type="radio"]:focus-visible {
87
- box-shadow: 0 0 5px var(--color-shadow-primary);
88
- outline: 1px solid transparent;
89
- }
90
-
91
- input.placeholder-fa-solid::placeholder {
92
- -moz-osx-font-smoothing: grayscale;
93
- -webkit-font-smoothing: antialiased;
94
- font-family: "Font Awesome 6 Pro";
95
- font-weight: 900;
96
- font-style: normal;
97
- font-variant: normal;
98
- line-height: 1;
99
- text-rendering: auto;
100
- }
101
-
102
- /* Checkbox Labels */
103
- label.checkbox {
104
- flex: auto;
105
- padding: 0;
106
- margin: 0;
107
- height: 22px;
108
- line-height: 22px;
109
- font-size: var(--font-size-11);
110
- }
111
-
112
- label.checkbox>input[type="checkbox"] {
113
- width: 16px;
114
- height: 16px;
115
- margin: 0 3px;
116
- position: relative;
117
- top: 4px;
118
- }
119
-
120
- label.checkbox.right>input[type="checkbox"] {
121
- margin: 0 0 0 2px;
122
- }
123
-
124
- /* Select Boxes */
125
- select {
126
- height: calc(var(--form-field-height) + 1px);
127
- background: rgba(0, 0, 0, 0.05);
128
- border: 1px solid var(--color-border-light-tertiary);
129
- border-radius: 3px;
130
- padding: 0 3px;
131
- text-overflow: ellipsis;
132
- font-family: inherit;
133
- font-size: inherit;
134
- }
135
-
136
- select:focus {
137
- box-shadow: 0 0 5px var(--color-shadow-primary);
138
- outline: none;
139
- }
140
-
141
- select[multiple] {
142
- height: auto;
143
- padding: 3px;
144
- }
145
-
146
- option,
147
- optgroup {
148
- font-family: inherit;
149
- background: var(--color-select-option-bg);
150
- }
151
-
152
- /* Text Areas */
153
- textarea {
154
- width: 100%;
155
- min-height: 50px;
156
- padding: 5px;
157
- background: rgba(0, 0, 0, 0.05);
158
- border: 1px solid var(--color-border-dark);
159
- border-radius: 3px;
160
- font-family: var(--font-monospace);
161
- -webkit-user-select: text;
162
- -moz-user-select: text;
163
- -ms-user-select: text;
164
- user-select: text;
165
- }
166
-
167
- textarea:focus {
168
- box-shadow: 0 0 6px var(--color-shadow-primary);
169
- outline: none;
170
- }
171
-
172
- textarea:read-only {
173
- color: var(--color-text-dark-secondary);
174
- box-shadow: none;
175
- }
176
-
177
- /* Buttons */
178
- button {
179
- width: 100%;
180
- margin: 0 1px;
181
- background: rgba(255, 255, 240, 0.8);
182
- border: 1px solid var(--color-border-light-primary);
183
- border-radius: 3px;
184
- font-size: var(--font-size-14);
185
- line-height: 28px;
186
- font-family: var(--font-primary);
187
- cursor: pointer;
188
- color: buttontext;
189
- }
190
-
191
- button>i {
192
- margin-right: 3px;
193
- }
194
-
195
- button>* {
196
- cursor: inherit;
197
- }
198
-
199
- button:hover,
200
- button:focus {
201
- outline: none;
202
- box-shadow: 0 0 5px var(--color-shadow-primary);
203
- }
204
-
205
- button:disabled {
206
- color: var(--color-text-dark-secondary);
207
- box-shadow: none;
208
- }
209
-
210
- button.hidden {
211
- display: none;
212
- }
213
-
214
- form button {
215
- background: rgba(0, 0, 0, 0.1);
216
- border: 2px groove var(--color-border-light-highlight);
217
- }
218
-
219
- input:disabled {
220
- border: none;
221
- color: var(--color-text-dark-secondary);
222
- }
223
-
224
- input:disabled:hover {
225
- border: none;
226
- box-shadow: none;
227
- outline: none;
228
- }
229
-
230
- input::placeholder {
231
- color: var(--color-text-dark-secondary);
232
- opacity: 1;
233
- }
234
-
235
- /* Color Picker V1 (deprecated) */
236
- input[type="text"].color {
237
- flex: 1.45;
238
- }
239
-
240
- input[type="color"][data-edit] {
241
- height: var(--form-field-height);
242
- background: transparent;
243
- border: 2px groove var(--color-border-light-highlight);
244
- }
245
-
246
- input[type="color"][data-edit][data-edit] {
247
- margin-left: 5px;
248
- flex: 1.45;
249
- }
250
-
251
- /* File Pickers */
252
- button.file-picker {
253
- flex: 0 0 24px;
254
- line-height: 24px;
255
- margin: -1px 0 -1px 4px;
256
- order: 99;
257
- }
258
-
259
- button.file-picker+input[type="text"] {
260
- height: 28px;
261
- margin-right: 5px !important;
262
- }
263
-
264
- /* Range Input */
265
- input[type=range] {
266
- -webkit-appearance: none;
267
- background: transparent;
268
- height: 20px;
269
- margin: 0;
270
- width: 100%;
271
- }
272
-
273
- input[type=range]::-webkit-slider-runnable-track {
274
- width: 100%;
275
- height: 6px;
276
- cursor: pointer;
277
- box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
278
- background: #999999;
279
- border-radius: 3px;
280
- border: 1px solid #111;
281
- }
282
-
283
- input[type=range]::-webkit-slider-thumb {
284
- box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
285
- border: 1px solid var(--color-border-dark);
286
- height: 12px;
287
- width: 12px;
288
- border-radius: 2px;
289
- background: #c85019;
290
- cursor: pointer;
291
- -webkit-appearance: none;
292
- margin-top: -4px;
293
- }
294
-
295
- input[type=range]::-moz-range-track {
296
- width: 100%;
297
- height: 6px;
298
- cursor: pointer;
299
- box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
300
- background: #999999;
301
- border-radius: 3px;
302
- border: 1px solid var(--color-border-dark-1);
303
- }
304
-
305
- input[type=range]::-moz-range-thumb {
306
- box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
307
- border: 1px solid var(--color-border-dark);
308
- height: 12px;
309
- width: 12px;
310
- border-radius: 2px;
311
- background: #c85019;
312
- cursor: pointer;
313
- }
314
-
315
- input[type=range]::-ms-track {
316
- width: 100%;
317
- height: 6px;
318
- cursor: pointer;
319
- background: transparent;
320
- border-color: transparent;
321
- color: transparent;
322
- }
323
-
324
- input[type=range]::-ms-fill-lower {
325
- background: #8c8c8c;
326
- border: 1px solid var(--color-border-dark-1);
327
- border-radius: 6px;
328
- box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
329
- }
330
-
331
- input[type=range]::-ms-fill-upper {
332
- background: #999999;
333
- border: 1px solid var(--color-border-dark-1);
334
- border-radius: 6px;
335
- box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
336
- }
337
-
338
- input[type=range]::-ms-thumb {
339
- box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
340
- border: 1px solid var(--color-border-dark);
341
- height: 12px;
342
- width: 12px;
343
- border-radius: 2px;
344
- background: #c85019;
345
- cursor: pointer;
346
- }
347
-
348
- input[type=range]:focus::-ms-fill-lower {
349
- background: #999999;
350
- }
351
-
352
- input[type=range]:focus::-ms-fill-upper {
353
- background: #a6a6a6;
354
- }
355
-
356
- input[type="range"]+.range-value {
357
- display: block;
358
- flex: 0 1 48px;
359
- text-align: center;
360
- border: 1px solid var(--color-border-light-primary);
361
- padding: 2px;
362
- margin-left: 10px;
363
- }
364
-
365
- input[type="range"]:disabled {
366
- filter: grayscale(1) opacity(0.33);
367
- }
368
-
369
- input[type="range"]:disabled+.range-value {
370
- opacity: 0.67;
371
- }
372
-
373
- input[type="range"]:disabled:hover {
374
- text-shadow: none;
375
- cursor: default;
376
- }
377
-
378
- input[type="range"]:disabled::-moz-range-thumb,
379
- input[type="range"].disabled::-webkit-slider-thumb {
380
- background-color: var(--color-text-dark-4);
381
- }
382
-
383
- input[type="range"]:focus {
384
- outline: none;
385
- }
386
-
387
- input[type="range"]:focus::-webkit-slider-runnable-track {
388
- background: #a6a6a6;
389
- }
390
-
391
- input[type="range"]:focus::-moz-range-track {
392
- background: #a6a6a6;
393
- }
394
-
395
- input[type="range"]:focus::-webkit-slider-runnable-track {
396
- box-shadow: 0 0 5px var(--color-shadow-primary);
397
- }
398
-
399
- input[type="range"]:focus::-moz-range-track {
400
- box-shadow: 0 0 5px var(--color-shadow-primary);
401
- }
402
-
403
- input[type="range"]:focus::-webkit-slider-thumb {
404
- box-shadow: 0 0 5px var(--color-shadow-primary);
405
- }
406
-
407
- input[type="range"]:focus::-moz-range-thumb {
408
- box-shadow: 0 0 5px var(--color-shadow-primary);
409
- }
410
-
411
- /**
412
- * Dark mode inputs
413
- */
414
- .dark button {
415
- background: rgba(255, 255, 240, 0.8);
416
- border: 2px solid var(--color-border-light-secondary);
417
- }
418
-
419
- .dark input,
420
- .dark select {
421
- background: rgba(255, 255, 240, 0.8);
422
- }
423
-
424
- /* #endregion */
425
- }
1
+ @mixin vuetifyOverrides {
2
+ /* #region Vuetify Overrides */
3
+ html {
4
+ overflow: unset;
5
+ }
6
+
7
+ input:focus {
8
+ outline: none;
9
+ }
10
+
11
+ /* Text Input */
12
+ input[type="text"],
13
+ input[type="number"],
14
+ input[type="password"],
15
+ input[type="date"],
16
+ input[type="time"],
17
+ input[type="datetime-local"],
18
+ input[type="search"] {
19
+ width: calc(100% - 2px);
20
+ min-width: 20px;
21
+ height: var(--form-field-height);
22
+ background: rgba(0, 0, 0, 0.05);
23
+ padding: 1px 3px;
24
+ margin: 0;
25
+ color: var(--color-text-dark-primary);
26
+ font-family: inherit;
27
+ font-size: inherit;
28
+ text-align: inherit;
29
+ line-height: inherit;
30
+ border: 1px solid var(--color-border-light-tertiary);
31
+ border-radius: 3px;
32
+ -webkit-user-select: text;
33
+ -moz-user-select: text;
34
+ -ms-user-select: text;
35
+ user-select: text;
36
+ }
37
+
38
+ input[type="text"]:focus,
39
+ input[type="number"]:focus,
40
+ input[type="password"]:focus,
41
+ input[type="date"]:focus,
42
+ input[type="time"]:focus,
43
+ input[type="datetime-local"]:focus,
44
+ input[type="search"]:focus {
45
+ box-shadow: 0 0 5px var(--color-shadow-primary);
46
+ }
47
+
48
+ input[type="number"]::-webkit-inner-spin-button,
49
+ input[type="number"]::-webkit-outer-spin-button {
50
+ -webkit-appearance: none;
51
+ }
52
+
53
+ input[type="number"] {
54
+ -moz-appearance: textfield;
55
+ }
56
+
57
+ input[type="search"]::-webkit-search-cancel-button {
58
+ -webkit-appearance: none;
59
+ display: inline-block;
60
+ width: 12px;
61
+ height: 12px;
62
+ margin-left: 0.5rem;
63
+ background: linear-gradient(45deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 43%, #333 45%, #333 55%, rgba(0, 0, 0, 0) 57%, rgba(0, 0, 0, 0) 100%), linear-gradient(135deg, transparent 0%, transparent 43%, #333 45%, #333 55%, transparent 57%, transparent 100%);
64
+ cursor: pointer;
65
+ }
66
+
67
+ input[type="checkbox"] {
68
+ flex: 0 0 20px;
69
+ width: 20px;
70
+ height: 20px;
71
+ margin: 3px 5px;
72
+ }
73
+
74
+ input[type="radio"] {
75
+ position: relative;
76
+ top: 2px;
77
+ margin: 0 0 0 5px;
78
+ }
79
+
80
+ input[type="checkbox"]:checked,
81
+ input[type="radio"]:checked {
82
+ accent-color: var(--color-checkbox-checked);
83
+ }
84
+
85
+ input[type="checkbox"]:focus-visible,
86
+ input[type="radio"]:focus-visible {
87
+ box-shadow: 0 0 5px var(--color-shadow-primary);
88
+ outline: 1px solid transparent;
89
+ }
90
+
91
+ input.placeholder-fa-solid::placeholder {
92
+ -moz-osx-font-smoothing: grayscale;
93
+ -webkit-font-smoothing: antialiased;
94
+ font-family: "Font Awesome 6 Pro";
95
+ font-weight: 900;
96
+ font-style: normal;
97
+ font-variant: normal;
98
+ line-height: 1;
99
+ text-rendering: auto;
100
+ }
101
+
102
+ /* Checkbox Labels */
103
+ label.checkbox {
104
+ flex: auto;
105
+ padding: 0;
106
+ margin: 0;
107
+ height: 22px;
108
+ line-height: 22px;
109
+ font-size: var(--font-size-11);
110
+ }
111
+
112
+ label.checkbox>input[type="checkbox"] {
113
+ width: 16px;
114
+ height: 16px;
115
+ margin: 0 3px;
116
+ position: relative;
117
+ top: 4px;
118
+ }
119
+
120
+ label.checkbox.right>input[type="checkbox"] {
121
+ margin: 0 0 0 2px;
122
+ }
123
+
124
+ /* Select Boxes */
125
+ select {
126
+ height: calc(var(--form-field-height) + 1px);
127
+ background: rgba(0, 0, 0, 0.05);
128
+ border: 1px solid var(--color-border-light-tertiary);
129
+ border-radius: 3px;
130
+ padding: 0 3px;
131
+ text-overflow: ellipsis;
132
+ font-family: inherit;
133
+ font-size: inherit;
134
+ }
135
+
136
+ select:focus {
137
+ box-shadow: 0 0 5px var(--color-shadow-primary);
138
+ outline: none;
139
+ }
140
+
141
+ select[multiple] {
142
+ height: auto;
143
+ padding: 3px;
144
+ }
145
+
146
+ option,
147
+ optgroup {
148
+ font-family: inherit;
149
+ background: var(--color-select-option-bg);
150
+ }
151
+
152
+ /* Text Areas */
153
+ textarea {
154
+ width: 100%;
155
+ min-height: 50px;
156
+ padding: 5px;
157
+ background: rgba(0, 0, 0, 0.05);
158
+ border: 1px solid var(--color-border-dark);
159
+ border-radius: 3px;
160
+ font-family: var(--font-monospace);
161
+ -webkit-user-select: text;
162
+ -moz-user-select: text;
163
+ -ms-user-select: text;
164
+ user-select: text;
165
+ }
166
+
167
+ textarea:focus {
168
+ box-shadow: 0 0 6px var(--color-shadow-primary);
169
+ outline: none;
170
+ }
171
+
172
+ textarea:read-only {
173
+ color: var(--color-text-dark-secondary);
174
+ box-shadow: none;
175
+ }
176
+
177
+ /* Buttons */
178
+ button {
179
+ width: 100%;
180
+ margin: 0 1px;
181
+ background: rgba(255, 255, 240, 0.8);
182
+ border: 1px solid var(--color-border-light-primary);
183
+ border-radius: 3px;
184
+ font-size: var(--font-size-14);
185
+ line-height: 28px;
186
+ font-family: var(--font-primary);
187
+ cursor: pointer;
188
+ color: buttontext;
189
+ }
190
+
191
+ button>i {
192
+ margin-right: 3px;
193
+ }
194
+
195
+ button>* {
196
+ cursor: inherit;
197
+ }
198
+
199
+ button:hover,
200
+ button:focus {
201
+ outline: none;
202
+ box-shadow: 0 0 5px var(--color-shadow-primary);
203
+ }
204
+
205
+ button:disabled {
206
+ color: var(--color-text-dark-secondary);
207
+ box-shadow: none;
208
+ }
209
+
210
+ button.hidden {
211
+ display: none;
212
+ }
213
+
214
+ form button {
215
+ background: rgba(0, 0, 0, 0.1);
216
+ border: 2px groove var(--color-border-light-highlight);
217
+ }
218
+
219
+ input:disabled {
220
+ border: none;
221
+ color: var(--color-text-dark-secondary);
222
+ }
223
+
224
+ input:disabled:hover {
225
+ border: none;
226
+ box-shadow: none;
227
+ outline: none;
228
+ }
229
+
230
+ input::placeholder {
231
+ color: var(--color-text-dark-secondary);
232
+ opacity: 1;
233
+ }
234
+
235
+ /* Color Picker V1 (deprecated) */
236
+ input[type="text"].color {
237
+ flex: 1.45;
238
+ }
239
+
240
+ input[type="color"][data-edit] {
241
+ height: var(--form-field-height);
242
+ background: transparent;
243
+ border: 2px groove var(--color-border-light-highlight);
244
+ }
245
+
246
+ input[type="color"][data-edit][data-edit] {
247
+ margin-left: 5px;
248
+ flex: 1.45;
249
+ }
250
+
251
+ /* File Pickers */
252
+ button.file-picker {
253
+ flex: 0 0 24px;
254
+ line-height: 24px;
255
+ margin: -1px 0 -1px 4px;
256
+ order: 99;
257
+ }
258
+
259
+ button.file-picker+input[type="text"] {
260
+ height: 28px;
261
+ margin-right: 5px !important;
262
+ }
263
+
264
+ /* Range Input */
265
+ input[type=range] {
266
+ -webkit-appearance: none;
267
+ background: transparent;
268
+ height: 20px;
269
+ margin: 0;
270
+ width: 100%;
271
+ }
272
+
273
+ input[type=range]::-webkit-slider-runnable-track {
274
+ width: 100%;
275
+ height: 6px;
276
+ cursor: pointer;
277
+ box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
278
+ background: #999999;
279
+ border-radius: 3px;
280
+ border: 1px solid #111;
281
+ }
282
+
283
+ input[type=range]::-webkit-slider-thumb {
284
+ box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
285
+ border: 1px solid var(--color-border-dark);
286
+ height: 12px;
287
+ width: 12px;
288
+ border-radius: 2px;
289
+ background: #c85019;
290
+ cursor: pointer;
291
+ -webkit-appearance: none;
292
+ margin-top: -4px;
293
+ }
294
+
295
+ input[type=range]::-moz-range-track {
296
+ width: 100%;
297
+ height: 6px;
298
+ cursor: pointer;
299
+ box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
300
+ background: #999999;
301
+ border-radius: 3px;
302
+ border: 1px solid var(--color-border-dark-1);
303
+ }
304
+
305
+ input[type=range]::-moz-range-thumb {
306
+ box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
307
+ border: 1px solid var(--color-border-dark);
308
+ height: 12px;
309
+ width: 12px;
310
+ border-radius: 2px;
311
+ background: #c85019;
312
+ cursor: pointer;
313
+ }
314
+
315
+ input[type=range]::-ms-track {
316
+ width: 100%;
317
+ height: 6px;
318
+ cursor: pointer;
319
+ background: transparent;
320
+ border-color: transparent;
321
+ color: transparent;
322
+ }
323
+
324
+ input[type=range]::-ms-fill-lower {
325
+ background: #8c8c8c;
326
+ border: 1px solid var(--color-border-dark-1);
327
+ border-radius: 6px;
328
+ box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
329
+ }
330
+
331
+ input[type=range]::-ms-fill-upper {
332
+ background: #999999;
333
+ border: 1px solid var(--color-border-dark-1);
334
+ border-radius: 6px;
335
+ box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
336
+ }
337
+
338
+ input[type=range]::-ms-thumb {
339
+ box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
340
+ border: 1px solid var(--color-border-dark);
341
+ height: 12px;
342
+ width: 12px;
343
+ border-radius: 2px;
344
+ background: #c85019;
345
+ cursor: pointer;
346
+ }
347
+
348
+ input[type=range]:focus::-ms-fill-lower {
349
+ background: #999999;
350
+ }
351
+
352
+ input[type=range]:focus::-ms-fill-upper {
353
+ background: #a6a6a6;
354
+ }
355
+
356
+ input[type="range"]+.range-value {
357
+ display: block;
358
+ flex: 0 1 48px;
359
+ text-align: center;
360
+ border: 1px solid var(--color-border-light-primary);
361
+ padding: 2px;
362
+ margin-left: 10px;
363
+ }
364
+
365
+ input[type="range"]:disabled {
366
+ filter: grayscale(1) opacity(0.33);
367
+ }
368
+
369
+ input[type="range"]:disabled+.range-value {
370
+ opacity: 0.67;
371
+ }
372
+
373
+ input[type="range"]:disabled:hover {
374
+ text-shadow: none;
375
+ cursor: default;
376
+ }
377
+
378
+ input[type="range"]:disabled::-moz-range-thumb,
379
+ input[type="range"].disabled::-webkit-slider-thumb {
380
+ background-color: var(--color-text-dark-4);
381
+ }
382
+
383
+ input[type="range"]:focus {
384
+ outline: none;
385
+ }
386
+
387
+ input[type="range"]:focus::-webkit-slider-runnable-track {
388
+ background: #a6a6a6;
389
+ }
390
+
391
+ input[type="range"]:focus::-moz-range-track {
392
+ background: #a6a6a6;
393
+ }
394
+
395
+ input[type="range"]:focus::-webkit-slider-runnable-track {
396
+ box-shadow: 0 0 5px var(--color-shadow-primary);
397
+ }
398
+
399
+ input[type="range"]:focus::-moz-range-track {
400
+ box-shadow: 0 0 5px var(--color-shadow-primary);
401
+ }
402
+
403
+ input[type="range"]:focus::-webkit-slider-thumb {
404
+ box-shadow: 0 0 5px var(--color-shadow-primary);
405
+ }
406
+
407
+ input[type="range"]:focus::-moz-range-thumb {
408
+ box-shadow: 0 0 5px var(--color-shadow-primary);
409
+ }
410
+
411
+ /**
412
+ * Dark mode inputs
413
+ */
414
+ .dark button {
415
+ background: rgba(255, 255, 240, 0.8);
416
+ border: 2px solid var(--color-border-light-secondary);
417
+ }
418
+
419
+ .dark input,
420
+ .dark select {
421
+ background: rgba(255, 255, 240, 0.8);
422
+ }
423
+
424
+ /* #endregion */
425
+ }