@sylwellsoftware/fray 0.1.0-alpha.1 → 0.2.0

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 (44) hide show
  1. package/README.md +246 -11
  2. package/colors/README.md +15 -0
  3. package/colors/gray/colors.css +29 -0
  4. package/colors/green/colors.css +29 -0
  5. package/colors/iceblue/colors.css +29 -0
  6. package/colors/ocean/colors.css +29 -0
  7. package/colors/orange/colors.css +29 -0
  8. package/colors/purple/colors.css +29 -0
  9. package/colors/red/colors.css +29 -0
  10. package/colors/yellow/colors.css +29 -0
  11. package/dist/Components/data/table/DataTable.d.ts.map +1 -1
  12. package/dist/Components/data/table/TableHeaderCell.d.ts.map +1 -1
  13. package/dist/Components/dialog/dialog.d.ts.map +1 -1
  14. package/dist/Components/layout/panel.d.ts.map +1 -1
  15. package/dist/Components/layout/tabpanel/tabline.d.ts.map +1 -1
  16. package/dist/Components/lineinputs/checkbox/Checkbox.d.ts.map +1 -1
  17. package/dist/Components/lineinputs/toggle.d.ts.map +1 -1
  18. package/dist/Components/status/progressBar.d.ts.map +1 -1
  19. package/dist/Components/theme/stylesheetPicker.d.ts +40 -0
  20. package/dist/Components/theme/stylesheetPicker.d.ts.map +1 -0
  21. package/dist/{button-BRDkmR1C.js → button-CqDGmkBt.js} +87 -78
  22. package/dist/{button-BRDkmR1C.js.map → button-CqDGmkBt.js.map} +1 -1
  23. package/dist/experimental.js +104 -66
  24. package/dist/experimental.js.map +1 -1
  25. package/dist/index.d.ts +2 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +801 -503
  28. package/dist/index.js.map +1 -1
  29. package/dist/{jsx-dev-runtime-CarwHDyL.js → jsx-dev-runtime-DukiDpV9.js} +202 -214
  30. package/dist/jsx-dev-runtime-DukiDpV9.js.map +1 -0
  31. package/dist/jsx-dev-runtime.js +1 -1
  32. package/dist/jsx-runtime.js +1 -1
  33. package/dist/styling/baseStyleDefinitions.d.ts +3 -0
  34. package/dist/styling/baseStyleDefinitions.d.ts.map +1 -1
  35. package/dist/styling/styleRegistry.d.ts.map +1 -1
  36. package/dist/styling/theme.d.ts +27 -0
  37. package/dist/styling/theme.d.ts.map +1 -0
  38. package/package.json +13 -5
  39. package/styles/structural.css +916 -0
  40. package/themes/README.md +84 -30
  41. package/themes/java/theme.css +140 -0
  42. package/themes/minimal/theme.css +128 -0
  43. package/themes/shiny/theme.css +314 -0
  44. package/dist/jsx-dev-runtime-CarwHDyL.js.map +0 -1
@@ -0,0 +1,916 @@
1
+ /* Generated by scripts/build-structural-css.mjs. Do not edit directly. */
2
+
3
+ *, *::before, *::after {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ @media (prefers-reduced-motion: reduce) {
8
+ *, *::before, *::after {
9
+ scroll-behavior: auto !important;
10
+ animation-duration: 0.01ms !important;
11
+ animation-iteration-count: 1 !important;
12
+ transition-duration: 0.01ms !important;
13
+ }
14
+ }
15
+
16
+ @media (forced-colors: active) {
17
+ :focus-visible {
18
+ outline: 2px solid Highlight !important;
19
+ outline-offset: 2px !important;
20
+ }
21
+ }
22
+
23
+ /* uiline */
24
+ button[data-fray-component="button"],
25
+ th[data-fray-component="table-header-cell"] > [data-part="sort"],
26
+ th[data-fray-component="table-header-cell"] > [data-part="filter-toggle"],
27
+ fray-tab-line > [data-part="tab"],
28
+ fieldset[data-fray-component="toggle"] > [data-part="options"],
29
+ fieldset[data-fray-component="toggle"] [data-part="option"] {
30
+ box-sizing: border-box;
31
+ line-height: var(--fray-line-height, 1.25);
32
+ font-size: var(--fray-font-size, var(--ui-font-size));
33
+ min-height: var(--fray-control-min-height, 2rem);
34
+ color: var(--fray-ui-color, var(--ui-text-color));
35
+ padding: var(--ui-padding-v, 0.25rem) var(--ui-padding-h, 0.5rem);
36
+ border-radius: var(--fray-radius-md, var(--ui-border-radius));
37
+ cursor: pointer;
38
+ user-select: none;
39
+ }
40
+
41
+ /* button */
42
+ button[data-fray-component="button"],
43
+ th[data-fray-component="table-header-cell"] > [data-part="sort"],
44
+ th[data-fray-component="table-header-cell"] > [data-part="filter-toggle"],
45
+ fray-tab-line > [data-part="tab"],
46
+ fieldset[data-fray-component="toggle"] [data-part="option"] {
47
+ box-sizing: border-box;
48
+ background: var(--fray-button-background, var(--button-background));
49
+ border: var(--fray-button-border, var(--button-border));
50
+ box-shadow: var(--fray-button-shadow, var(--button-shadow));
51
+ color: var(--fray-button-color, var(--button-color));
52
+ cursor: default;
53
+ user-select: none;
54
+ }
55
+
56
+ /* button:hover */
57
+ button[data-fray-component="button"]:hover,
58
+ th[data-fray-component="table-header-cell"] > [data-part="sort"]:hover,
59
+ th[data-fray-component="table-header-cell"] > [data-part="filter-toggle"]:hover,
60
+ fray-tab-line > [data-part="tab"]:hover,
61
+ fieldset[data-fray-component="toggle"] [data-part="option"]:hover {
62
+ background: var(--fray-button-background-hover, var(--button-background-hover));
63
+ box-shadow: var(--fray-button-shadow, var(--button-shadow));
64
+ }
65
+
66
+ /* button:focus-visible */
67
+ button[data-fray-component="button"]:focus-visible,
68
+ th[data-fray-component="table-header-cell"] > [data-part="sort"]:focus-visible,
69
+ th[data-fray-component="table-header-cell"] > [data-part="filter-toggle"]:focus-visible,
70
+ fray-tab-line > [data-part="tab"]:focus-visible,
71
+ fieldset[data-fray-component="toggle"] [data-part="option"]:focus-visible {
72
+ outline: 2px solid transparent;
73
+ outline-offset: 1px;
74
+ border: 1px solid var(--fray-color-focus, var(--ui-accent-color));
75
+ box-shadow: var(--fray-focus-ring, 0 0 0 2px var(--ui-accent-color-highlight));
76
+ }
77
+
78
+ /* button:disabled */
79
+ button[data-fray-component="button"]:disabled,
80
+ th[data-fray-component="table-header-cell"] > [data-part="sort"]:disabled,
81
+ th[data-fray-component="table-header-cell"] > [data-part="filter-toggle"]:disabled,
82
+ fray-tab-line > [data-part="tab"]:disabled,
83
+ fieldset[data-fray-component="toggle"] [data-part="option"]:disabled {
84
+ background: var(--fray-button-background-disabled, var(--button-background-disabled));
85
+ border: var(--button-border-disabled, var(--fray-button-border));
86
+ color: var(--fray-input-color-disabled, var(--ui-input-text-color-disabled));
87
+ cursor: not-allowed;
88
+ pointer-events: none;
89
+ }
90
+
91
+ /* inputline */
92
+ fray-checkbox,
93
+ fray-checkbox > [data-part="control"],
94
+ fray-color-picker,
95
+ fray-color-picker > select,
96
+ fray-dropdown,
97
+ fray-dropdown > select,
98
+ fray-list-view > [data-part="list"] > [data-part="row"],
99
+ fray-quad-checkbox,
100
+ fray-quad-checkbox > [data-part="control"],
101
+ fray-textbox,
102
+ fray-textbox > input,
103
+ fray-theme-picker,
104
+ fray-theme-picker > select,
105
+ fray-tri-checkbox,
106
+ fray-tri-checkbox > [data-part="control"] {
107
+ display: flex;
108
+ flex-flow: row nowrap;
109
+ position: relative;
110
+ line-height: var(--fray-line-height, 1.25);
111
+ font-size: var(--fray-font-size, var(--ui-font-size));
112
+ min-height: var(--fray-control-min-height, 2rem);
113
+ color: var(--fray-ui-color, var(--ui-text-color));
114
+ border-radius: var(--fray-radius-md, var(--ui-border-radius));
115
+ box-sizing: border-box;
116
+ }
117
+
118
+ /* input */
119
+ fray-checkbox > [data-part="control"],
120
+ fray-color-picker > select,
121
+ fray-dropdown > select,
122
+ fray-quad-checkbox > [data-part="control"],
123
+ fray-textbox > input,
124
+ fray-theme-picker > select,
125
+ fray-tri-checkbox > [data-part="control"] {
126
+ background: var(--fray-input-background, var(--ui-input-bg));
127
+ color: var(--fray-input-color, var(--fray-ui-color, var(--ui-text-color)));
128
+ padding: var(--ui-padding-v, 0.25rem) var(--ui-padding-h, 0.5rem);
129
+ pointer-events: all;
130
+ border: var(--fray-input-border, var(--ui-input-border));
131
+ width: var(--input-width, 15rem);
132
+ box-shadow: var(--fray-input-shadow, var(--input-shadow, none));
133
+ box-sizing: border-box;
134
+ white-space: nowrap;
135
+ }
136
+
137
+ /* input:focus-visible */
138
+ fray-checkbox > [data-part="control"]:focus-visible,
139
+ fray-color-picker > select:focus-visible,
140
+ fray-dropdown > select:focus-visible,
141
+ fray-quad-checkbox > [data-part="control"]:focus-visible,
142
+ fray-textbox > input:focus-visible,
143
+ fray-theme-picker > select:focus-visible,
144
+ fray-tri-checkbox > [data-part="control"]:focus-visible {
145
+ outline: 2px solid transparent;
146
+ outline-offset: 1px;
147
+ border-color: var(--fray-color-focus, var(--ui-accent-color));
148
+ box-shadow: var(--fray-focus-ring, 0 0 0 2px var(--ui-accent-color-highlight));
149
+ }
150
+
151
+ /* input:disabled */
152
+ fray-checkbox > [data-part="control"]:disabled,
153
+ fray-color-picker > select:disabled,
154
+ fray-dropdown > select:disabled,
155
+ fray-quad-checkbox > [data-part="control"]:disabled,
156
+ fray-textbox > input:disabled,
157
+ fray-theme-picker > select:disabled,
158
+ fray-tri-checkbox > [data-part="control"]:disabled {
159
+ background: var(--fray-input-background-disabled, var(--ui-input-bg-disabled));
160
+ border-color: var(--fray-color-border, var(--ui-input-border-disabled));
161
+ color: var(--fray-input-color-disabled, var(--ui-input-text-color-disabled));
162
+ cursor: not-allowed;
163
+ }
164
+
165
+ /* disabled */
166
+ fray-checkbox[data-disabled],
167
+ fray-color-picker[data-disabled],
168
+ fray-dropdown[data-disabled],
169
+ fray-quad-checkbox[data-disabled],
170
+ fray-textbox[data-disabled],
171
+ fray-theme-picker[data-disabled],
172
+ fray-tri-checkbox[data-disabled] {
173
+ border-color: var(--fray-color-border, var(--ui-input-border-disabled));
174
+ color: var(--fray-input-color-disabled, var(--ui-input-text-color-disabled));
175
+ }
176
+
177
+ /* labeledinput */
178
+ fray-color-picker,
179
+ fray-dropdown,
180
+ fray-textbox,
181
+ fray-theme-picker {
182
+ display: flex;
183
+ flex-flow: row nowrap;
184
+ align-items: center;
185
+ gap: .5em;
186
+ }
187
+
188
+ /* label */
189
+ fray-color-picker > label,
190
+ fray-dropdown > label,
191
+ fray-textbox > label,
192
+ fray-theme-picker > label {
193
+ color: var(--fray-ui-color, var(--ui-text-color));
194
+ font-size: var(--fray-font-size, var(--ui-font-size));
195
+ }
196
+
197
+ /* after */
198
+ fray-placeholder::after {
199
+ content: "";
200
+ display: block;
201
+ position: absolute;
202
+ top: 0;
203
+ left: 0;
204
+ width: 100%;
205
+ height: 100%;
206
+ pointer-events: none;
207
+ }
208
+
209
+ /* working */
210
+ fray-placeholder::after {
211
+ display: inline;
212
+ position: absolute;
213
+ z-index: 1;
214
+ margin: auto;
215
+ animation: fray-placeholder-progress 0.8s linear infinite;
216
+ background-repeat: repeat;
217
+ background-size: 2rem 2rem;
218
+ background-image: var(--fray-working-background-image);
219
+ border: 0 solid transparent;
220
+ border-radius: inherit;
221
+ box-sizing: border-box;
222
+ }
223
+
224
+ /* noselect */
225
+ th[data-fray-component="table-header-cell"] {
226
+ user-select: var(--noselect-user-select);
227
+ cursor: var(--noselect-cursor);
228
+ }
229
+
230
+ /* error */
231
+ fray-dropdown[data-error],
232
+ fray-textbox[data-error] {
233
+ color: var(--fray-color-error, var(--error-color));
234
+ }
235
+
236
+ /* inputlike */
237
+ fray-list-view {
238
+ background: var(--fray-input-background, var(--ui-input-bg));
239
+ color: var(--fray-input-color, var(--fray-ui-color, var(--ui-text-color)));
240
+ padding: var(--ui-padding-v, 0.25rem) var(--ui-padding-h, 0.5rem);
241
+ pointer-events: all;
242
+ border: var(--fray-input-border, var(--ui-input-border));
243
+ box-shadow: var(--fray-input-shadow, var(--input-shadow, none));
244
+ box-sizing: border-box;
245
+ white-space: nowrap;
246
+ border-radius: var(--fray-radius-md, var(--ui-border-radius));
247
+ }
248
+
249
+ /* panel */
250
+ fray-panel,
251
+ aside[data-fray-component="sidebar"] {
252
+ background: var(--fray-panel-background, var(--panel-bg));
253
+ border: var(--fray-panel-border, var(--panel-border));
254
+ border-radius: var(--fray-panel-radius, var(--panel-radius));
255
+ box-shadow: var(--fray-panel-shadow, var(--panel-shadow));
256
+ color: var(--fray-panel-color, var(--panel-color));
257
+ }
258
+
259
+ /* sectionheader */
260
+ fray-panel > [data-part="header"],
261
+ aside[data-fray-component="sidebar"] > [data-part="header"] {
262
+ box-shadow: var(--fray-section-header-shadow, var(--fray-header-shadow, var(--sectionheader-shadow)));
263
+ background: var(--fray-section-header-background, var(--fray-header-background, var(--sectionheader-bg)));
264
+ color: var(--fray-section-header-color, var(--fray-header-color, var(--sectionheader-color)));
265
+ border: var(--fray-section-header-border, var(--fray-header-border, 0 solid transparent));
266
+ }
267
+
268
+ /* toolbar */
269
+ fray-toolbar {
270
+ background: var(--fray-toolbar-background, var(--toolbar-bg));
271
+ border: var(--fray-toolbar-border, var(--toolbar-border));
272
+ border-radius: var(--toolbar-radius, var(--fray-radius-md));
273
+ box-shadow: var(--fray-toolbar-shadow, var(--toolbar-shadow));
274
+ color: var(--fray-toolbar-color, var(--toolbar-color));
275
+ }
276
+
277
+ button[data-fray-component="button"] {
278
+ font-family: inherit;
279
+ }
280
+
281
+ fray-checkbox > [data-part="control"] {
282
+ display: inline-flex;
283
+ align-items: center;
284
+ gap: 0.35em;
285
+ width: auto;
286
+ font-family: inherit;
287
+ }
288
+
289
+ fray-checkbox [data-part="symbol"] {
290
+ display: inline-grid;
291
+ width: 1em;
292
+ height: 1em;
293
+ line-height: 1;
294
+ place-items: center;
295
+ color: var(--fray-checkbox-symbol-color, currentColor);
296
+ background: var(--fray-checkbox-box-background, transparent);
297
+ border: var(--fray-checkbox-box-border, var(--cbx-o-border));
298
+ border-radius: var(--cbx-border-radius, var(--fray-radius-sm));
299
+ }
300
+
301
+ fray-checkbox [data-part="control"][aria-checked="true"] [data-part="symbol"] {
302
+ background: var(
303
+ --fray-checkbox-box-background-checked,
304
+ var(--fray-selection-background)
305
+ );
306
+ }
307
+
308
+ fray-color-picker {
309
+ position: relative;
310
+ }
311
+
312
+ fray-color-picker > select {
313
+ min-width: 8rem;
314
+ }
315
+
316
+ fray-data-table {
317
+ overflow: auto;
318
+ color: var(--ui-text-color);
319
+ }
320
+
321
+ fray-data-table > table {
322
+ width: 100%;
323
+ border-collapse: collapse;
324
+ }
325
+
326
+ fray-data-table th,
327
+ fray-data-table td {
328
+ padding: var(--ui-padding-v) var(--ui-padding-h);
329
+ text-align: start;
330
+ }
331
+
332
+ fray-data-table tbody tr[data-fray-selectable-row] {
333
+ cursor: default;
334
+ user-select: none;
335
+ }
336
+
337
+ fray-data-table tbody tr:nth-child(odd) {
338
+ background: var(--fray-table-row-background, transparent);
339
+ }
340
+
341
+ fray-data-table tbody tr:nth-child(even) {
342
+ background: var(--fray-table-row-alt-background, transparent);
343
+ }
344
+
345
+ fray-data-table tbody tr[data-fray-selectable-row]:hover {
346
+ background: var(--fray-row-hover-background, var(--button-background-hover));
347
+ }
348
+
349
+ fray-data-table tbody tr[data-fray-selectable-row]:focus-visible {
350
+ outline: 2px solid var(--fray-color-focus, var(--ui-accent-color));
351
+ outline-offset: -2px;
352
+ }
353
+
354
+ fray-data-table tbody tr[data-fray-selectable-row][aria-selected="true"] {
355
+ color: var(--fray-selection-color, var(--toggle-selected-text));
356
+ background: var(--fray-selection-background, var(--toggle-selected-bg));
357
+ }
358
+
359
+ fray-data-table > [data-part="error"] {
360
+ color: var(--error-color);
361
+ }
362
+
363
+ fray-placeholder {
364
+ display: block;
365
+ min-width: 3rem;
366
+ height: 1em;
367
+ overflow: hidden;
368
+ background: currentColor;
369
+ border-radius: var(--ui-border-radius);
370
+ opacity: 0.18;
371
+ position: relative;
372
+ }
373
+
374
+ @keyframes fray-placeholder-progress {
375
+ from { background-position: 0 0; }
376
+ to { background-position: 2rem 0; }
377
+ }
378
+
379
+ th[data-fray-component="table-header-cell"] {
380
+ position: relative;
381
+ text-align: start;
382
+ color: var(
383
+ --fray-table-header-color,
384
+ var(--fray-section-header-color, var(--fray-header-color))
385
+ );
386
+ background: var(
387
+ --fray-table-header-background,
388
+ var(--fray-section-header-background, var(--fray-header-background))
389
+ );
390
+ border-block-end: var(--fray-section-header-border, var(--fray-header-border));
391
+ box-shadow: var(--fray-section-header-shadow, var(--fray-header-shadow));
392
+ }
393
+
394
+ th[data-fray-component="table-header-cell"] > [data-part="sort"],
395
+ th[data-fray-component="table-header-cell"] > [data-part="filter-toggle"] {
396
+ width: auto;
397
+ font-family: inherit;
398
+ color: inherit;
399
+ background: var(
400
+ --fray-table-header-button-background,
401
+ var(--fray-button-background)
402
+ );
403
+ }
404
+
405
+ th[data-fray-component="table-header-cell"] > [data-part="filter-toggle"] {
406
+ margin-inline-start: var(--ui-padding-h);
407
+ font-size: 0.75em;
408
+ }
409
+
410
+ fray-filter-panel {
411
+ position: absolute;
412
+ z-index: 1000;
413
+ inset-block-start: 100%;
414
+ inset-inline-end: 0;
415
+ display: flex;
416
+ min-width: 12rem;
417
+ padding: var(--ui-padding);
418
+ flex-flow: column nowrap;
419
+ align-items: stretch;
420
+ color: var(--panel-color);
421
+ background: var(--panel-bg);
422
+ border: var(--panel-border);
423
+ border-radius: var(--panel-radius);
424
+ box-shadow: var(--panel-shadow);
425
+ }
426
+
427
+ div[data-fray-component="description-item"] {
428
+ display: grid;
429
+ grid-template-columns: minmax(7rem, 0.7fr) minmax(0, 1.3fr);
430
+ gap: var(--spacing-small, 0.5rem);
431
+ padding-block: var(--spacing-small, 0.5rem);
432
+ border-block-end: 1px solid var(--ui-border-color);
433
+ }
434
+
435
+ div[data-fray-component="description-item"] > dt {
436
+ color: var(--ui-muted-text-color, var(--ui-text-color));
437
+ font-weight: 600;
438
+ }
439
+
440
+ div[data-fray-component="description-item"] > dd {
441
+ min-width: 0;
442
+ margin: 0;
443
+ overflow-wrap: anywhere;
444
+ }
445
+
446
+ @media (max-width: 36rem) {
447
+ div[data-fray-component="description-item"] {
448
+ grid-template-columns: minmax(0, 1fr);
449
+ gap: 0.15rem;
450
+ }
451
+ }
452
+
453
+ dl[data-fray-component="description-list"] {
454
+ display: grid;
455
+ margin: 0;
456
+ }
457
+
458
+ dialog[data-fray-component="dialog"] {
459
+ width: min(38rem, calc(100vw - 2rem));
460
+ max-height: min(42rem, calc(100dvh - 2rem));
461
+ padding: 0;
462
+ color: var(--fray-panel-color, var(--ui-text-color));
463
+ background: var(--fray-panel-background, var(--panel-bg));
464
+ border: var(--fray-panel-border, var(--panel-border));
465
+ border-radius: var(--fray-panel-radius, var(--panel-radius));
466
+ box-shadow: var(--fray-dialog-shadow, var(--fray-panel-shadow));
467
+ }
468
+
469
+ dialog[data-fray-component="dialog"]::backdrop {
470
+ background: var(--fray-dialog-backdrop-background);
471
+ }
472
+
473
+ dialog[data-fray-component="dialog"] > [data-part] {
474
+ padding: var(--panel-padding, 0.75rem);
475
+ }
476
+
477
+ dialog[data-fray-component="dialog"] > [data-part="header"] {
478
+ color: var(
479
+ --fray-dialog-header-color,
480
+ var(--fray-section-header-color, var(--fray-header-color))
481
+ );
482
+ background: var(
483
+ --fray-dialog-header-background,
484
+ var(--fray-section-header-background, var(--fray-header-background))
485
+ );
486
+ border-block-end: var(
487
+ --fray-section-header-border,
488
+ var(--fray-header-border)
489
+ );
490
+ }
491
+
492
+ dialog[data-fray-component="dialog"] > [data-part="header"] h2,
493
+ dialog[data-fray-component="dialog"] > [data-part="description"] {
494
+ margin: 0;
495
+ }
496
+
497
+ dialog[data-fray-component="dialog"] > [data-part="content"] {
498
+ overflow: auto;
499
+ }
500
+
501
+ dialog[data-fray-component="dialog"] > [data-part="actions"] {
502
+ display: flex;
503
+ justify-content: flex-end;
504
+ gap: var(--spacing-small, 0.5rem);
505
+ border-block-start: 1px solid var(--ui-border-color);
506
+ }
507
+
508
+ @media (prefers-reduced-motion: no-preference) {
509
+ dialog[data-fray-component="dialog"][open] {
510
+ animation: fray-dialog-enter 120ms ease-out;
511
+ }
512
+ }
513
+
514
+ @keyframes fray-dialog-enter {
515
+ from {
516
+ transform: translateY(0.4rem);
517
+ }
518
+ }
519
+
520
+ @media (forced-colors: active) {
521
+ dialog[data-fray-component="dialog"] {
522
+ border: 2px solid CanvasText;
523
+ }
524
+ }
525
+
526
+ fray-dropdown {
527
+ position: relative;
528
+ }
529
+
530
+ fray-list-view {
531
+ display: flex;
532
+ flex-direction: column;
533
+ overflow-y: auto;
534
+ min-height: 0;
535
+ }
536
+
537
+ fray-list-view > [data-part="list"],
538
+ fray-list-view > [data-part="loading"] {
539
+ display: flex;
540
+ flex-direction: column;
541
+ }
542
+
543
+ fray-list-view > [data-part="list"] > [data-part="row"] {
544
+ cursor: default;
545
+ user-select: none;
546
+ }
547
+
548
+ fray-list-view > [data-part="list"] > [data-part="row"]:hover,
549
+ fray-list-view > [data-part="list"] > [data-part="row"]:focus-visible {
550
+ background: var(--button-background-hover);
551
+ outline: 2px solid var(--ui-accent-color);
552
+ outline-offset: -2px;
553
+ }
554
+
555
+ fray-list-view > [data-part="list"] > [data-part="row"][aria-selected="true"] {
556
+ color: var(--toggle-selected-text);
557
+ background: var(--toggle-selected-bg);
558
+ }
559
+
560
+ fray-list-view > [data-part="empty"],
561
+ fray-list-view > [data-part="error"] {
562
+ margin: 0;
563
+ padding: var(--ui-padding);
564
+ }
565
+
566
+ fray-list-view > [data-part="error"] {
567
+ color: var(--error-color);
568
+ }
569
+
570
+ fray-panel {
571
+ display: flex;
572
+ flex-direction: column;
573
+ overflow: auto;
574
+ flex: 0 0 auto;
575
+ }
576
+
577
+ fray-panel > [data-part="header"] h2 {
578
+ margin: 0;
579
+ font: inherit;
580
+ }
581
+
582
+ fray-panel > [data-part="header"] {
583
+ background: var(
584
+ --fray-panel-header-background,
585
+ var(--fray-section-header-background, var(--fray-header-background))
586
+ );
587
+ color: var(
588
+ --fray-panel-header-color,
589
+ var(--fray-section-header-color, var(--fray-header-color))
590
+ );
591
+ border: var(--fray-section-header-border, var(--fray-header-border));
592
+ box-shadow: var(--fray-section-header-shadow, var(--fray-header-shadow));
593
+ }
594
+
595
+ fray-panel > [data-part="content"] {
596
+ display: flex;
597
+ flex: 1;
598
+ overflow: auto;
599
+ padding: var(--panel-padding, 0.75rem);
600
+ gap: var(--spacing-medium, 1rem);
601
+ }
602
+
603
+ fray-panel > [data-part="content"][data-orientation="horizontal"] {
604
+ flex-direction: row;
605
+ }
606
+
607
+ fray-panel > [data-part="content"][data-orientation="vertical"] {
608
+ flex-direction: column;
609
+ }
610
+
611
+ fray-progress-bar {
612
+ display: grid;
613
+ gap: var(--spacing-small, 0.5rem);
614
+ }
615
+
616
+ fray-progress-bar > [data-part="label-line"] {
617
+ display: flex;
618
+ justify-content: space-between;
619
+ gap: var(--spacing-medium, 1rem);
620
+ }
621
+
622
+ fray-progress-bar > [data-part="label-line"] > label {
623
+ font-weight: 600;
624
+ }
625
+
626
+ fray-progress-bar > progress {
627
+ width: 100%;
628
+ min-height: 0.8rem;
629
+ color: var(--fray-progress-value-background, var(--ui-accent-color));
630
+ background: var(--fray-progress-track-background, transparent);
631
+ accent-color: var(--fray-color-primary, var(--ui-accent-color));
632
+ }
633
+
634
+ @media (forced-colors: active) {
635
+ fray-progress-bar > progress {
636
+ forced-color-adjust: auto;
637
+ }
638
+ }
639
+
640
+ fray-quad-checkbox > [data-part="control"] {
641
+ display: inline-flex;
642
+ align-items: center;
643
+ gap: 0.35em;
644
+ width: auto;
645
+ font-family: inherit;
646
+ }
647
+
648
+ fray-quad-checkbox [data-part="symbol"] {
649
+ display: inline-grid;
650
+ width: 1em;
651
+ height: 1em;
652
+ line-height: 1;
653
+ place-items: center;
654
+ color: var(--fray-checkbox-symbol-color, currentColor);
655
+ background: var(--fray-checkbox-box-background, transparent);
656
+ border: var(--fray-checkbox-box-border, var(--cbx-o-border));
657
+ border-radius: var(--cbx-border-radius, var(--fray-radius-sm));
658
+ }
659
+
660
+ fray-quad-checkbox [data-part="control"][aria-checked="true"] [data-part="symbol"] {
661
+ background: var(
662
+ --fray-checkbox-box-background-checked,
663
+ var(--fray-selection-background)
664
+ );
665
+ }
666
+
667
+ aside[data-fray-component="sidebar"] {
668
+ display: flex;
669
+ flex-direction: column;
670
+ min-width: 0;
671
+ min-height: 0;
672
+ overflow: hidden;
673
+ }
674
+
675
+ aside[data-fray-component="sidebar"] > [data-part="header"],
676
+ aside[data-fray-component="sidebar"] > [data-part="toolbar"] {
677
+ flex: 0 0 auto;
678
+ }
679
+
680
+ aside[data-fray-component="sidebar"] > [data-part="header"] h2 {
681
+ margin: 0;
682
+ font: inherit;
683
+ }
684
+
685
+ aside[data-fray-component="sidebar"] > [data-part="content"] {
686
+ flex: 1 1 auto;
687
+ min-width: 0;
688
+ min-height: 0;
689
+ overflow-x: hidden;
690
+ overflow-y: auto;
691
+ }
692
+
693
+ fray-split-view {
694
+ display: grid;
695
+ flex: 1 1 auto;
696
+ min-width: 0;
697
+ min-height: 0;
698
+ overflow: hidden;
699
+ }
700
+
701
+ fray-split-view[data-direction="horizontal"] {
702
+ grid-template-columns:
703
+ var(--split-primary-size, minmax(16rem, 0.8fr))
704
+ minmax(0, 1.2fr);
705
+ }
706
+
707
+ fray-split-view[data-direction="vertical"] {
708
+ grid-template-rows:
709
+ var(--split-primary-size, minmax(12rem, 0.8fr))
710
+ minmax(0, 1.2fr);
711
+ }
712
+
713
+ fray-split-view > [data-part] {
714
+ min-width: 0;
715
+ min-height: 0;
716
+ overflow: auto;
717
+ }
718
+
719
+ fray-split-view[data-direction="horizontal"] > [data-part="primary"] {
720
+ border-inline-end: 1px solid var(--ui-border-color);
721
+ }
722
+
723
+ fray-split-view[data-direction="vertical"] > [data-part="primary"] {
724
+ border-block-end: 1px solid var(--ui-border-color);
725
+ }
726
+
727
+ fray-tab-line {
728
+ display: flex;
729
+ flex-flow: row wrap;
730
+ padding-top: 3px;
731
+ background: var(--fray-tabline-background, var(--tabline-bg));
732
+ }
733
+
734
+ fray-tab-line > [data-part="tab"] {
735
+ background: var(--fray-tab-button-background, var(--fray-button-background));
736
+ border-radius: var(--fray-radius-md, var(--ui-border-radius)) var(--fray-radius-md, var(--ui-border-radius)) 0 0;
737
+ }
738
+
739
+ fray-tab-line > [data-part="tab"][aria-selected="true"] {
740
+ background: var(
741
+ --fray-tab-button-background-active,
742
+ var(--fray-tab-active-background, var(--tab-bg-active))
743
+ );
744
+ }
745
+
746
+ fray-tab-panel {
747
+ display: flex;
748
+ flex-direction: column;
749
+ width: 100%;
750
+ min-height: 0;
751
+ overflow: hidden;
752
+ background: var(--fray-panel-background, var(--panel-bg, transparent));
753
+ border-radius: var(--fray-panel-radius, var(--panel-radius));
754
+ box-shadow: var(--fray-panel-shadow, var(--panel-shadow, none));
755
+ }
756
+
757
+ fray-tab-panel > [data-part="content"] {
758
+ display: flex;
759
+ flex-direction: column;
760
+ flex: 1;
761
+ overflow: auto;
762
+ background: var(--fray-panel-background, var(--panel-bg, transparent));
763
+ }
764
+
765
+ fray-textbox input {
766
+ cursor: text;
767
+ }
768
+
769
+ fray-textbox > [data-part="error"] {
770
+ margin: 0;
771
+ color: var(--fray-color-error, var(--error-color));
772
+ }
773
+
774
+ fray-theme-picker {
775
+ position: relative;
776
+ }
777
+
778
+ fray-theme-picker > select {
779
+ min-width: 8rem;
780
+ }
781
+
782
+ fieldset[data-fray-component="toggle"] {
783
+ margin: 0;
784
+ padding: 0;
785
+ border: 0;
786
+ }
787
+
788
+ fieldset[data-fray-component="toggle"] > [data-part="options"] {
789
+ display: flex;
790
+ padding: 0;
791
+ }
792
+
793
+ fieldset[data-fray-component="toggle"] [data-part="option"] {
794
+ background: var(--fray-toggle-button-background, var(--fray-button-background));
795
+ border-radius: 0;
796
+ }
797
+
798
+ fieldset[data-fray-component="toggle"] [data-part="option"]:first-child {
799
+ border-radius: var(--ui-border-radius) 0 0 var(--ui-border-radius);
800
+ }
801
+
802
+ fieldset[data-fray-component="toggle"] [data-part="option"]:last-child {
803
+ border-radius: 0 var(--ui-border-radius) var(--ui-border-radius) 0;
804
+ }
805
+
806
+ fieldset[data-fray-component="toggle"] [data-part="option"][aria-checked="true"] {
807
+ background: var(
808
+ --fray-toggle-button-background-checked,
809
+ var(--fray-selection-background, var(--toggle-selected-bg))
810
+ );
811
+ color: var(--fray-selection-color, var(--toggle-selected-text));
812
+ }
813
+
814
+ fray-toolbar {
815
+ display: flex;
816
+ flex-wrap: wrap;
817
+ align-items: center;
818
+ gap: var(--spacing-small, 0.5rem);
819
+ padding: var(--ui-padding);
820
+ }
821
+
822
+ fray-toolbar[data-orientation="vertical"] {
823
+ flex-direction: column;
824
+ align-items: stretch;
825
+ }
826
+
827
+ fray-tree-view {
828
+ display: flex;
829
+ flex-direction: column;
830
+ min-width: 0;
831
+ min-height: 0;
832
+ overflow: auto;
833
+ }
834
+
835
+ fray-tree-view > [data-part="tree"] {
836
+ display: grid;
837
+ align-content: start;
838
+ }
839
+
840
+ fray-tree-view [data-part="item"] {
841
+ display: flex;
842
+ align-items: flex-start;
843
+ gap: 0.35rem;
844
+ min-width: 0;
845
+ padding: 0.38rem 0.5rem;
846
+ padding-inline-start: calc(0.5rem + var(--tree-depth) * 1.1rem);
847
+ cursor: default;
848
+ user-select: none;
849
+ }
850
+
851
+ fray-tree-view [data-part="item"]:hover {
852
+ background: var(--button-background-hover);
853
+ }
854
+
855
+ fray-tree-view [data-part="item"]:focus-visible {
856
+ outline: 2px solid var(--ui-accent-color);
857
+ outline-offset: -2px;
858
+ }
859
+
860
+ fray-tree-view [data-part="item"][aria-selected="true"] {
861
+ color: var(--toggle-selected-text);
862
+ background: var(--toggle-selected-bg);
863
+ }
864
+
865
+ fray-tree-view [data-part="expander"] {
866
+ flex: 0 0 1rem;
867
+ text-align: center;
868
+ }
869
+
870
+ fray-tree-view [data-part="expander"][data-expandable] {
871
+ cursor: pointer;
872
+ }
873
+
874
+ fray-tree-view [data-part="label"] {
875
+ min-width: 0;
876
+ overflow-wrap: anywhere;
877
+ }
878
+
879
+ fray-tree-view > [data-part="empty"] {
880
+ margin: 0;
881
+ padding: var(--ui-padding, 0.75rem);
882
+ }
883
+
884
+ @media (forced-colors: active) {
885
+ fray-tree-view [data-part="item"][aria-selected="true"] {
886
+ outline: 2px solid Highlight;
887
+ forced-color-adjust: auto;
888
+ }
889
+ }
890
+
891
+ fray-tri-checkbox > [data-part="control"] {
892
+ display: inline-flex;
893
+ align-items: center;
894
+ gap: 0.35em;
895
+ width: auto;
896
+ font-family: inherit;
897
+ }
898
+
899
+ fray-tri-checkbox [data-part="symbol"] {
900
+ display: inline-grid;
901
+ width: 1em;
902
+ height: 1em;
903
+ line-height: 1;
904
+ place-items: center;
905
+ color: var(--fray-checkbox-symbol-color, currentColor);
906
+ background: var(--fray-checkbox-box-background, transparent);
907
+ border: var(--fray-checkbox-box-border, var(--cbx-o-border));
908
+ border-radius: var(--cbx-border-radius, var(--fray-radius-sm));
909
+ }
910
+
911
+ fray-tri-checkbox [data-part="control"][aria-checked="true"] [data-part="symbol"] {
912
+ background: var(
913
+ --fray-checkbox-box-background-checked,
914
+ var(--fray-selection-background)
915
+ );
916
+ }