@dodlhuat/basix 1.1.0 → 1.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.
- package/README.md +651 -482
- package/css/badge.scss +104 -0
- package/css/bottom-sheet.scss +192 -0
- package/css/breadcrumb.scss +158 -0
- package/css/context-menu.scss +182 -0
- package/css/editor.scss +628 -461
- package/css/form.scss +139 -0
- package/css/stepper.scss +212 -0
- package/css/style.css +1495 -70
- package/css/style.css.map +1 -1
- package/css/style.min.css +1 -1
- package/css/style.scss +7 -1
- package/css/typography.scss +194 -161
- package/js/bottom-sheet.js +173 -0
- package/js/bottom-sheet.ts +222 -0
- package/js/carousel.js +26 -13
- package/js/context-menu.js +212 -0
- package/js/context-menu.ts +252 -0
- package/js/editor.js +46 -32
- package/js/editor.ts +56 -37
- package/js/gallery.js +11 -10
- package/js/index.js +472 -374
- package/js/index.ts +116 -2
- package/js/push-menu.js +113 -113
- package/js/stepper.js +80 -0
- package/js/stepper.ts +104 -0
- package/js/timepicker.js +21 -8
- package/package.json +3 -2
- package/fonts/Outfit-VariableFont_wght.woff +0 -0
- package/fonts/material-icons.woff2 +0 -0
- package/icons/activity-outline.svg +0 -1
- package/icons/alert-circle-outline.svg +0 -1
- package/icons/alert-triangle-outline.svg +0 -1
- package/icons/archive-outline.svg +0 -1
- package/icons/arrow-back-outline.svg +0 -1
- package/icons/arrow-circle-down-outline.svg +0 -1
- package/icons/arrow-circle-left-outline.svg +0 -1
- package/icons/arrow-circle-right-outline.svg +0 -1
- package/icons/arrow-circle-up-outline.svg +0 -1
- package/icons/arrow-down-outline.svg +0 -1
- package/icons/arrow-downward-outline.svg +0 -1
- package/icons/arrow-forward-outline.svg +0 -1
- package/icons/arrow-ios-back-outline.svg +0 -1
- package/icons/arrow-ios-downward-outline.svg +0 -1
- package/icons/arrow-ios-forward-outline.svg +0 -1
- package/icons/arrow-ios-upward-outline.svg +0 -1
- package/icons/arrow-left-outline.svg +0 -1
- package/icons/arrow-right-outline.svg +0 -1
- package/icons/arrow-up-outline.svg +0 -1
- package/icons/arrow-upward-outline.svg +0 -1
- package/icons/arrowhead-down-outline.svg +0 -1
- package/icons/arrowhead-left-outline.svg +0 -1
- package/icons/arrowhead-right-outline.svg +0 -1
- package/icons/arrowhead-up-outline.svg +0 -1
- package/icons/at-outline.svg +0 -1
- package/icons/attach-2-outline.svg +0 -1
- package/icons/attach-outline.svg +0 -1
- package/icons/award-outline.svg +0 -1
- package/icons/backspace-outline.svg +0 -1
- package/icons/bar-chart-2-outline.svg +0 -1
- package/icons/bar-chart-outline.svg +0 -1
- package/icons/battery-outline.svg +0 -1
- package/icons/behance-outline.svg +0 -1
- package/icons/bell-off-outline.svg +0 -1
- package/icons/bell-outline.svg +0 -1
- package/icons/bluetooth-outline.svg +0 -1
- package/icons/book-open-outline.svg +0 -1
- package/icons/book-outline.svg +0 -1
- package/icons/bookmark-outline.svg +0 -1
- package/icons/briefcase-outline.svg +0 -1
- package/icons/browser-outline.svg +0 -1
- package/icons/brush-outline.svg +0 -1
- package/icons/bulb-outline.svg +0 -1
- package/icons/calendar-outline.svg +0 -1
- package/icons/camera-outline.svg +0 -1
- package/icons/car-outline.svg +0 -1
- package/icons/cast-outline.svg +0 -1
- package/icons/charging-outline.svg +0 -1
- package/icons/checkmark-circle-2-outline.svg +0 -1
- package/icons/checkmark-circle-outline.svg +0 -1
- package/icons/checkmark-outline.svg +0 -1
- package/icons/checkmark-square-2-outline.svg +0 -1
- package/icons/checkmark-square-outline.svg +0 -1
- package/icons/chevron-down-outline.svg +0 -1
- package/icons/chevron-left-outline.svg +0 -1
- package/icons/chevron-right-outline.svg +0 -1
- package/icons/chevron-up-outline.svg +0 -1
- package/icons/clipboard-outline.svg +0 -1
- package/icons/clock-outline.svg +0 -1
- package/icons/close-circle-outline.svg +0 -1
- package/icons/close-outline.svg +0 -1
- package/icons/close-square-outline.svg +0 -1
- package/icons/cloud-download-outline.svg +0 -1
- package/icons/cloud-upload-outline.svg +0 -1
- package/icons/code-download-outline.svg +0 -1
- package/icons/code-outline.svg +0 -1
- package/icons/collapse-outline.svg +0 -1
- package/icons/color-palette-outline.svg +0 -1
- package/icons/color-picker-outline.svg +0 -1
- package/icons/compass-outline.svg +0 -1
- package/icons/copy-outline.svg +0 -1
- package/icons/corner-down-left-outline.svg +0 -1
- package/icons/corner-down-right-outline.svg +0 -1
- package/icons/corner-left-down-outline.svg +0 -1
- package/icons/corner-left-up-outline.svg +0 -1
- package/icons/corner-right-down-outline.svg +0 -1
- package/icons/corner-right-up-outline.svg +0 -1
- package/icons/corner-up-left-outline.svg +0 -1
- package/icons/corner-up-right-outline.svg +0 -1
- package/icons/credit-card-outline.svg +0 -1
- package/icons/crop-outline.svg +0 -1
- package/icons/cube-outline.svg +0 -1
- package/icons/diagonal-arrow-left-down-outline.svg +0 -1
- package/icons/diagonal-arrow-left-up-outline.svg +0 -1
- package/icons/diagonal-arrow-right-down-outline.svg +0 -1
- package/icons/diagonal-arrow-right-up-outline.svg +0 -1
- package/icons/done-all-outline.svg +0 -1
- package/icons/download-outline.svg +0 -1
- package/icons/droplet-off-outline.svg +0 -1
- package/icons/droplet-outline.svg +0 -1
- package/icons/edit-2-outline.svg +0 -1
- package/icons/edit-outline.svg +0 -1
- package/icons/email-outline.svg +0 -1
- package/icons/expand-outline.svg +0 -1
- package/icons/external-link-outline.svg +0 -1
- package/icons/eye-off-2-outline.svg +0 -1
- package/icons/eye-off-outline.svg +0 -1
- package/icons/eye-outline.svg +0 -1
- package/icons/facebook-outline.svg +0 -1
- package/icons/file-add-outline.svg +0 -1
- package/icons/file-outline.svg +0 -1
- package/icons/file-remove-outline.svg +0 -1
- package/icons/file-text-outline.svg +0 -1
- package/icons/film-outline.svg +0 -1
- package/icons/flag-outline.svg +0 -1
- package/icons/flash-off-outline.svg +0 -1
- package/icons/flash-outline.svg +0 -1
- package/icons/flip-2-outline.svg +0 -1
- package/icons/flip-outline.svg +0 -1
- package/icons/folder-add-outline.svg +0 -1
- package/icons/folder-outline.svg +0 -1
- package/icons/folder-remove-outline.svg +0 -1
- package/icons/funnel-outline.svg +0 -1
- package/icons/gift-outline.svg +0 -1
- package/icons/github-outline.svg +0 -1
- package/icons/globe-2-outline.svg +0 -1
- package/icons/globe-outline.svg +0 -1
- package/icons/google-outline.svg +0 -1
- package/icons/grid-outline.svg +0 -1
- package/icons/hard-drive-outline.svg +0 -1
- package/icons/hash-outline.svg +0 -1
- package/icons/headphones-outline.svg +0 -1
- package/icons/heart-outline.svg +0 -1
- package/icons/home-outline.svg +0 -1
- package/icons/image-outline.svg +0 -1
- package/icons/inbox-outline.svg +0 -1
- package/icons/info-outline.svg +0 -1
- package/icons/keypad-outline.svg +0 -1
- package/icons/layers-outline.svg +0 -1
- package/icons/layout-outline.svg +0 -1
- package/icons/link-2-outline.svg +0 -1
- package/icons/link-outline.svg +0 -1
- package/icons/linkedin-outline.svg +0 -1
- package/icons/list-outline.svg +0 -1
- package/icons/loader-outline.svg +0 -1
- package/icons/lock-outline.svg +0 -1
- package/icons/log-in-outline.svg +0 -1
- package/icons/log-out-outline.svg +0 -1
- package/icons/map-outline.svg +0 -1
- package/icons/maximize-outline.svg +0 -1
- package/icons/menu-2-outline.svg +0 -1
- package/icons/menu-arrow-outline.svg +0 -1
- package/icons/menu-outline.svg +0 -1
- package/icons/message-circle-outline.svg +0 -1
- package/icons/message-square-outline.svg +0 -1
- package/icons/mic-off-outline.svg +0 -1
- package/icons/mic-outline.svg +0 -1
- package/icons/minimize-outline.svg +0 -1
- package/icons/minus-circle-outline.svg +0 -1
- package/icons/minus-outline.svg +0 -1
- package/icons/minus-square-outline.svg +0 -1
- package/icons/monitor-outline.svg +0 -1
- package/icons/moon-outline.svg +0 -1
- package/icons/more-horizontal-outline.svg +0 -1
- package/icons/more-vertical-outline.svg +0 -1
- package/icons/move-outline.svg +0 -1
- package/icons/music-outline.svg +0 -1
- package/icons/navigation-2-outline.svg +0 -1
- package/icons/navigation-outline.svg +0 -1
- package/icons/npm-outline.svg +0 -1
- package/icons/options-2-outline.svg +0 -1
- package/icons/options-outline.svg +0 -1
- package/icons/pantone-outline.svg +0 -1
- package/icons/paper-plane-outline.svg +0 -1
- package/icons/pause-circle-outline.svg +0 -1
- package/icons/people-outline.svg +0 -1
- package/icons/percent-outline.svg +0 -1
- package/icons/person-add-outline.svg +0 -1
- package/icons/person-delete-outline.svg +0 -1
- package/icons/person-done-outline.svg +0 -1
- package/icons/person-outline.svg +0 -1
- package/icons/person-remove-outline.svg +0 -1
- package/icons/phone-call-outline.svg +0 -1
- package/icons/phone-missed-outline.svg +0 -1
- package/icons/phone-off-outline.svg +0 -1
- package/icons/phone-outline.svg +0 -1
- package/icons/pie-chart-outline.svg +0 -1
- package/icons/pin-outline.svg +0 -1
- package/icons/play-circle-outline.svg +0 -1
- package/icons/plus-circle-outline.svg +0 -1
- package/icons/plus-outline.svg +0 -1
- package/icons/plus-square-outline.svg +0 -1
- package/icons/power-outline.svg +0 -1
- package/icons/pricetags-outline.svg +0 -1
- package/icons/printer-outline.svg +0 -1
- package/icons/question-mark-circle-outline.svg +0 -1
- package/icons/question-mark-outline.svg +0 -1
- package/icons/radio-button-off-outline.svg +0 -1
- package/icons/radio-button-on-outline.svg +0 -1
- package/icons/radio-outline.svg +0 -1
- package/icons/recording-outline.svg +0 -1
- package/icons/refresh-outline.svg +0 -1
- package/icons/repeat-outline.svg +0 -1
- package/icons/rewind-left-outline.svg +0 -1
- package/icons/rewind-right-outline.svg +0 -1
- package/icons/save-outline.svg +0 -1
- package/icons/scissors-outline.svg +0 -1
- package/icons/search-outline.svg +0 -1
- package/icons/settings-2-outline.svg +0 -1
- package/icons/settings-outline.svg +0 -1
- package/icons/shake-outline.svg +0 -1
- package/icons/share-outline.svg +0 -1
- package/icons/shield-off-outline.svg +0 -1
- package/icons/shield-outline.svg +0 -1
- package/icons/shopping-bag-outline.svg +0 -1
- package/icons/shopping-cart-outline.svg +0 -1
- package/icons/shuffle-2-outline.svg +0 -1
- package/icons/shuffle-outline.svg +0 -1
- package/icons/skip-back-outline.svg +0 -1
- package/icons/skip-forward-outline.svg +0 -1
- package/icons/slash-outline.svg +0 -1
- package/icons/smartphone-outline.svg +0 -1
- package/icons/smiling-face-outline.svg +0 -1
- package/icons/speaker-outline.svg +0 -1
- package/icons/square-outline.svg +0 -1
- package/icons/star-outline.svg +0 -1
- package/icons/stop-circle-outline.svg +0 -1
- package/icons/sun-outline.svg +0 -1
- package/icons/swap-outline.svg +0 -1
- package/icons/sync-outline.svg +0 -1
- package/icons/text-outline.svg +0 -1
- package/icons/thermometer-minus-outline.svg +0 -1
- package/icons/thermometer-outline.svg +0 -1
- package/icons/thermometer-plus-outline.svg +0 -1
- package/icons/toggle-left-outline.svg +0 -1
- package/icons/toggle-right-outline.svg +0 -1
- package/icons/trash-2-outline.svg +0 -1
- package/icons/trash-outline.svg +0 -1
- package/icons/trending-down-outline.svg +0 -1
- package/icons/trending-up-outline.svg +0 -1
- package/icons/tv-outline.svg +0 -1
- package/icons/twitter-outline.svg +0 -1
- package/icons/umbrella-outline.svg +0 -1
- package/icons/undo-outline.svg +0 -1
- package/icons/unlock-outline.svg +0 -1
- package/icons/upload-outline.svg +0 -1
- package/icons/video-off-outline.svg +0 -1
- package/icons/video-outline.svg +0 -1
- package/icons/volume-down-outline.svg +0 -1
- package/icons/volume-mute-outline.svg +0 -1
- package/icons/volume-off-outline.svg +0 -1
- package/icons/volume-up-outline.svg +0 -1
- package/icons/wifi-off-outline.svg +0 -1
- package/icons/wifi-outline.svg +0 -1
package/css/style.css
CHANGED
|
@@ -249,6 +249,7 @@ code.code .code-content {
|
|
|
249
249
|
@font-face {
|
|
250
250
|
font-family: "Outfit";
|
|
251
251
|
src: url("../fonts/Outfit-VariableFont_wght.woff2") format("woff2");
|
|
252
|
+
font-display: swap;
|
|
252
253
|
}
|
|
253
254
|
body {
|
|
254
255
|
font-family: "Outfit", helvetica, arial, sans-serif;
|
|
@@ -264,13 +265,14 @@ p, li, td, th, div {
|
|
|
264
265
|
}
|
|
265
266
|
|
|
266
267
|
p {
|
|
267
|
-
|
|
268
|
+
margin-bottom: 0.5rem;
|
|
268
269
|
}
|
|
269
270
|
|
|
270
271
|
code {
|
|
271
272
|
font-family: "Courier New", Courier, monospace;
|
|
272
273
|
font-size: 0.875em;
|
|
273
274
|
background: var(--secondary-background);
|
|
275
|
+
border: 1px solid var(--divider);
|
|
274
276
|
padding: 0.15em 0.4em;
|
|
275
277
|
border-radius: 0.2rem;
|
|
276
278
|
}
|
|
@@ -281,6 +283,7 @@ pre code {
|
|
|
281
283
|
overflow-x: auto;
|
|
282
284
|
border-radius: 0.4rem;
|
|
283
285
|
line-height: 1.5;
|
|
286
|
+
border: none;
|
|
284
287
|
}
|
|
285
288
|
|
|
286
289
|
strong {
|
|
@@ -295,9 +298,7 @@ h1, .h1,
|
|
|
295
298
|
h2, .h2,
|
|
296
299
|
h3, .h3,
|
|
297
300
|
h4, .h4,
|
|
298
|
-
h5 {
|
|
299
|
-
margin: 0.5rem 0 0.6666666667rem 0;
|
|
300
|
-
line-height: 1.15;
|
|
301
|
+
h5, .h5 {
|
|
301
302
|
font-weight: 700;
|
|
302
303
|
color: var(--primary-text);
|
|
303
304
|
letter-spacing: -0.02em;
|
|
@@ -307,20 +308,36 @@ h1, .h1 {
|
|
|
307
308
|
font-size: 2rem;
|
|
308
309
|
font-weight: 800;
|
|
309
310
|
letter-spacing: -0.03em;
|
|
311
|
+
line-height: 1.1;
|
|
312
|
+
margin: 1.5rem 0 0.6666666667rem 0;
|
|
310
313
|
}
|
|
311
314
|
|
|
312
315
|
h2, .h2 {
|
|
313
316
|
font-size: 1.625rem;
|
|
314
317
|
font-weight: 750;
|
|
318
|
+
line-height: 1.12;
|
|
319
|
+
margin: 1.5rem 0 0.6666666667rem 0;
|
|
315
320
|
}
|
|
316
321
|
|
|
317
322
|
h3, .h3 {
|
|
318
323
|
font-size: 1.375rem;
|
|
324
|
+
line-height: 1.2;
|
|
325
|
+
margin: 1rem 0 0.5rem 0;
|
|
319
326
|
}
|
|
320
327
|
|
|
321
328
|
h4, .h4 {
|
|
322
329
|
font-size: 1.125rem;
|
|
323
330
|
letter-spacing: -0.01em;
|
|
331
|
+
line-height: 1.25;
|
|
332
|
+
margin: 1rem 0 0.5rem 0;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
h5, .h5 {
|
|
336
|
+
font-size: 1rem;
|
|
337
|
+
font-weight: 600;
|
|
338
|
+
letter-spacing: 0;
|
|
339
|
+
line-height: 1.3;
|
|
340
|
+
margin: 0.5rem 0 0.25rem 0;
|
|
324
341
|
}
|
|
325
342
|
|
|
326
343
|
small, .text-small {
|
|
@@ -347,8 +364,24 @@ small, .text-small {
|
|
|
347
364
|
color: var(--secondary-text);
|
|
348
365
|
}
|
|
349
366
|
|
|
367
|
+
blockquote {
|
|
368
|
+
border-left: 3px solid var(--divider);
|
|
369
|
+
padding: 0.5rem 1rem;
|
|
370
|
+
margin-block: 0.5rem;
|
|
371
|
+
color: var(--secondary-text);
|
|
372
|
+
font-style: italic;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
mark {
|
|
376
|
+
background-color: color-mix(in srgb, var(--accent-color) 18%, transparent);
|
|
377
|
+
color: var(--primary-text);
|
|
378
|
+
border-radius: 0.1rem;
|
|
379
|
+
padding: 0 0.2em;
|
|
380
|
+
}
|
|
381
|
+
|
|
350
382
|
ul, ol {
|
|
351
|
-
list-style-position:
|
|
383
|
+
list-style-position: outside;
|
|
384
|
+
padding-left: 1.5rem;
|
|
352
385
|
margin-bottom: 0.6666666667rem;
|
|
353
386
|
}
|
|
354
387
|
|
|
@@ -942,6 +975,120 @@ select {
|
|
|
942
975
|
}
|
|
943
976
|
}
|
|
944
977
|
|
|
978
|
+
.form-group {
|
|
979
|
+
display: flex;
|
|
980
|
+
flex-direction: column;
|
|
981
|
+
gap: 0.3rem;
|
|
982
|
+
}
|
|
983
|
+
.form-group label {
|
|
984
|
+
font-size: 0.8125rem;
|
|
985
|
+
font-weight: 500;
|
|
986
|
+
color: var(--primary-text);
|
|
987
|
+
letter-spacing: 0.01em;
|
|
988
|
+
}
|
|
989
|
+
.form-group .form-hint {
|
|
990
|
+
display: flex;
|
|
991
|
+
align-items: flex-start;
|
|
992
|
+
gap: 0.3rem;
|
|
993
|
+
font-size: 0.75rem;
|
|
994
|
+
line-height: 1.45;
|
|
995
|
+
color: var(--secondary-text);
|
|
996
|
+
margin-top: 0.125rem;
|
|
997
|
+
}
|
|
998
|
+
.form-group .form-hint::before {
|
|
999
|
+
content: "";
|
|
1000
|
+
display: block;
|
|
1001
|
+
width: 4px;
|
|
1002
|
+
height: 4px;
|
|
1003
|
+
border-radius: 50%;
|
|
1004
|
+
background: currentColor;
|
|
1005
|
+
flex-shrink: 0;
|
|
1006
|
+
margin-top: 0.38em;
|
|
1007
|
+
opacity: 0.55;
|
|
1008
|
+
}
|
|
1009
|
+
.form-group.error input, .form-group.error textarea, .form-group.error select {
|
|
1010
|
+
border-color: var(--error);
|
|
1011
|
+
background-color: color-mix(in srgb, var(--error) 4%, var(--background));
|
|
1012
|
+
}
|
|
1013
|
+
.form-group.error input:focus, .form-group.error textarea:focus, .form-group.error select:focus {
|
|
1014
|
+
border-color: var(--error);
|
|
1015
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--error) 15%, transparent);
|
|
1016
|
+
}
|
|
1017
|
+
.form-group.error .form-hint {
|
|
1018
|
+
color: var(--error);
|
|
1019
|
+
}
|
|
1020
|
+
.form-group.error .form-hint::before {
|
|
1021
|
+
opacity: 1;
|
|
1022
|
+
}
|
|
1023
|
+
.form-group.success input, .form-group.success textarea, .form-group.success select {
|
|
1024
|
+
border-color: var(--success);
|
|
1025
|
+
}
|
|
1026
|
+
.form-group.success input:focus, .form-group.success textarea:focus, .form-group.success select:focus {
|
|
1027
|
+
border-color: var(--success);
|
|
1028
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--success) 15%, transparent);
|
|
1029
|
+
}
|
|
1030
|
+
.form-group.success .form-hint {
|
|
1031
|
+
color: var(--success);
|
|
1032
|
+
}
|
|
1033
|
+
.form-group.success .form-hint::before {
|
|
1034
|
+
opacity: 1;
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1037
|
+
.input-group {
|
|
1038
|
+
display: flex;
|
|
1039
|
+
}
|
|
1040
|
+
.input-group input {
|
|
1041
|
+
flex: 1;
|
|
1042
|
+
min-width: 0;
|
|
1043
|
+
}
|
|
1044
|
+
.input-group .input-addon {
|
|
1045
|
+
display: flex;
|
|
1046
|
+
align-items: center;
|
|
1047
|
+
padding: 0 0.5rem;
|
|
1048
|
+
background-color: var(--secondary-background);
|
|
1049
|
+
border: 1px solid var(--divider);
|
|
1050
|
+
color: var(--secondary-text);
|
|
1051
|
+
font-size: 1rem;
|
|
1052
|
+
white-space: nowrap;
|
|
1053
|
+
box-shadow: 0 1px 2px rgba(56, 65, 74, 0.15);
|
|
1054
|
+
}
|
|
1055
|
+
.input-group .input-addon:first-child {
|
|
1056
|
+
border-right: none;
|
|
1057
|
+
border-radius: 0.2rem 0 0 0.2rem;
|
|
1058
|
+
}
|
|
1059
|
+
.input-group .input-addon:first-child + input {
|
|
1060
|
+
border-top-left-radius: 0;
|
|
1061
|
+
border-bottom-left-radius: 0;
|
|
1062
|
+
}
|
|
1063
|
+
.input-group .input-addon:last-child {
|
|
1064
|
+
border-left: none;
|
|
1065
|
+
border-radius: 0 0.2rem 0.2rem 0;
|
|
1066
|
+
}
|
|
1067
|
+
.input-group input:not(:last-child) {
|
|
1068
|
+
border-right: none;
|
|
1069
|
+
border-top-right-radius: 0;
|
|
1070
|
+
border-bottom-right-radius: 0;
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
input[readonly], textarea[readonly] {
|
|
1074
|
+
background-color: var(--secondary-background);
|
|
1075
|
+
color: var(--secondary-text);
|
|
1076
|
+
cursor: default;
|
|
1077
|
+
box-shadow: none;
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
input.input-sm, textarea.input-sm {
|
|
1081
|
+
min-height: 1.6rem;
|
|
1082
|
+
font-size: 0.875rem;
|
|
1083
|
+
padding: 0.25rem 0.5rem;
|
|
1084
|
+
}
|
|
1085
|
+
|
|
1086
|
+
input.input-lg, textarea.input-lg {
|
|
1087
|
+
min-height: 2.8rem;
|
|
1088
|
+
font-size: 1.125rem;
|
|
1089
|
+
padding: 0.6rem 0.5rem;
|
|
1090
|
+
}
|
|
1091
|
+
|
|
945
1092
|
@font-face {
|
|
946
1093
|
font-family: "Material Symbols Outlined 24pt";
|
|
947
1094
|
src: url("../fonts/MaterialSymbolsOutlined.woff2") format("woff2");
|
|
@@ -2231,6 +2378,131 @@ nav.pushed {
|
|
|
2231
2378
|
border-radius: 0.2rem;
|
|
2232
2379
|
}
|
|
2233
2380
|
|
|
2381
|
+
.breadcrumb ol {
|
|
2382
|
+
display: flex;
|
|
2383
|
+
align-items: center;
|
|
2384
|
+
flex-wrap: wrap;
|
|
2385
|
+
row-gap: 0.25rem;
|
|
2386
|
+
list-style: none;
|
|
2387
|
+
margin: 0;
|
|
2388
|
+
padding: 0;
|
|
2389
|
+
}
|
|
2390
|
+
.breadcrumb li {
|
|
2391
|
+
display: flex;
|
|
2392
|
+
align-items: center;
|
|
2393
|
+
min-width: 0;
|
|
2394
|
+
}
|
|
2395
|
+
.breadcrumb li + li::before {
|
|
2396
|
+
content: "\e409";
|
|
2397
|
+
font-family: "Material Symbols Outlined 24pt";
|
|
2398
|
+
font-size: 1.125rem;
|
|
2399
|
+
line-height: 1;
|
|
2400
|
+
color: var(--divider);
|
|
2401
|
+
flex-shrink: 0;
|
|
2402
|
+
user-select: none;
|
|
2403
|
+
pointer-events: none;
|
|
2404
|
+
}
|
|
2405
|
+
.breadcrumb li a {
|
|
2406
|
+
display: flex;
|
|
2407
|
+
align-items: center;
|
|
2408
|
+
gap: 0.3rem;
|
|
2409
|
+
font-size: 0.8125rem;
|
|
2410
|
+
font-weight: 450;
|
|
2411
|
+
color: var(--secondary-text);
|
|
2412
|
+
text-decoration: none;
|
|
2413
|
+
padding: 0.25rem 0.375rem;
|
|
2414
|
+
border-radius: 0.2rem;
|
|
2415
|
+
white-space: nowrap;
|
|
2416
|
+
transition: color 0.15s ease, background 0.15s ease;
|
|
2417
|
+
}
|
|
2418
|
+
.breadcrumb li a .icon {
|
|
2419
|
+
font-size: 1rem;
|
|
2420
|
+
}
|
|
2421
|
+
.breadcrumb li a:hover {
|
|
2422
|
+
color: var(--primary-text);
|
|
2423
|
+
background: var(--secondary-background);
|
|
2424
|
+
}
|
|
2425
|
+
.breadcrumb li a:focus-visible {
|
|
2426
|
+
outline: 2px solid var(--accent-color);
|
|
2427
|
+
outline-offset: -1px;
|
|
2428
|
+
border-radius: 0.2rem;
|
|
2429
|
+
}
|
|
2430
|
+
.breadcrumb li[aria-current=page] > span {
|
|
2431
|
+
display: block;
|
|
2432
|
+
font-size: 0.8125rem;
|
|
2433
|
+
font-weight: 550;
|
|
2434
|
+
color: var(--primary-text);
|
|
2435
|
+
padding: 0.25rem 0.375rem;
|
|
2436
|
+
white-space: nowrap;
|
|
2437
|
+
overflow: hidden;
|
|
2438
|
+
text-overflow: ellipsis;
|
|
2439
|
+
max-width: 28ch;
|
|
2440
|
+
}
|
|
2441
|
+
@media (max-width: 600px) {
|
|
2442
|
+
.breadcrumb--collapse li:not(:nth-last-child(-n+2)) {
|
|
2443
|
+
display: none;
|
|
2444
|
+
}
|
|
2445
|
+
.breadcrumb--collapse li:nth-last-child(2):not(:first-child)::before {
|
|
2446
|
+
content: "···";
|
|
2447
|
+
font-family: inherit;
|
|
2448
|
+
font-size: 0.875rem;
|
|
2449
|
+
letter-spacing: 0.04em;
|
|
2450
|
+
color: var(--divider);
|
|
2451
|
+
padding: 0 0.125rem;
|
|
2452
|
+
}
|
|
2453
|
+
}
|
|
2454
|
+
|
|
2455
|
+
.page-header {
|
|
2456
|
+
padding-block: 1.25rem 1rem;
|
|
2457
|
+
}
|
|
2458
|
+
.page-header .breadcrumb {
|
|
2459
|
+
margin-bottom: 0.5rem;
|
|
2460
|
+
}
|
|
2461
|
+
.page-header__title-row {
|
|
2462
|
+
display: flex;
|
|
2463
|
+
align-items: flex-start;
|
|
2464
|
+
gap: 1rem;
|
|
2465
|
+
}
|
|
2466
|
+
.page-header__title-row h1, .page-header__title-row h2, .page-header__title-row h3, .page-header__title-row h4,
|
|
2467
|
+
.page-header__title-row .h1, .page-header__title-row .h2, .page-header__title-row .h3, .page-header__title-row .h4 {
|
|
2468
|
+
margin: 0;
|
|
2469
|
+
flex: 1;
|
|
2470
|
+
min-width: 0;
|
|
2471
|
+
}
|
|
2472
|
+
.page-header__actions {
|
|
2473
|
+
display: flex;
|
|
2474
|
+
align-items: center;
|
|
2475
|
+
gap: 0.5rem;
|
|
2476
|
+
flex-shrink: 0;
|
|
2477
|
+
padding-top: 0.3rem;
|
|
2478
|
+
}
|
|
2479
|
+
.page-header__description {
|
|
2480
|
+
margin: 0.375rem 0 0;
|
|
2481
|
+
padding-bottom: 0;
|
|
2482
|
+
font-size: 0.875rem;
|
|
2483
|
+
line-height: 1.55;
|
|
2484
|
+
color: var(--secondary-text);
|
|
2485
|
+
}
|
|
2486
|
+
.page-header--bordered {
|
|
2487
|
+
border-bottom: 1px solid var(--divider);
|
|
2488
|
+
padding-bottom: 1.25rem;
|
|
2489
|
+
margin-bottom: 1.5rem;
|
|
2490
|
+
}
|
|
2491
|
+
@media (max-width: 540px) {
|
|
2492
|
+
.page-header__title-row {
|
|
2493
|
+
flex-wrap: wrap;
|
|
2494
|
+
}
|
|
2495
|
+
.page-header__actions {
|
|
2496
|
+
width: 100%;
|
|
2497
|
+
padding-top: 0.25rem;
|
|
2498
|
+
}
|
|
2499
|
+
.page-header__actions button,
|
|
2500
|
+
.page-header__actions .button {
|
|
2501
|
+
flex: 1;
|
|
2502
|
+
justify-content: center;
|
|
2503
|
+
}
|
|
2504
|
+
}
|
|
2505
|
+
|
|
2234
2506
|
.chips .chip {
|
|
2235
2507
|
margin: 0 0.25rem 0.2rem 0;
|
|
2236
2508
|
display: inline-block;
|
|
@@ -2272,85 +2544,360 @@ nav.pushed {
|
|
|
2272
2544
|
position: relative;
|
|
2273
2545
|
}
|
|
2274
2546
|
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
}
|
|
2278
|
-
ul.tree li {
|
|
2279
|
-
list-style: none;
|
|
2280
|
-
}
|
|
2281
|
-
|
|
2282
|
-
.tree-node {
|
|
2283
|
-
position: relative;
|
|
2284
|
-
margin: 0.25rem 0;
|
|
2285
|
-
}
|
|
2286
|
-
|
|
2287
|
-
.tree-item {
|
|
2288
|
-
position: relative;
|
|
2289
|
-
display: flex;
|
|
2547
|
+
.badge {
|
|
2548
|
+
display: inline-flex;
|
|
2290
2549
|
align-items: center;
|
|
2291
|
-
|
|
2292
|
-
padding: 0.
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2550
|
+
gap: 0.3rem;
|
|
2551
|
+
padding: 0.15rem 0.5rem;
|
|
2552
|
+
border-radius: 1.6rem;
|
|
2553
|
+
font-size: 0.75rem;
|
|
2554
|
+
font-weight: 500;
|
|
2555
|
+
line-height: 1.4;
|
|
2556
|
+
letter-spacing: 0.01em;
|
|
2557
|
+
white-space: nowrap;
|
|
2558
|
+
vertical-align: middle;
|
|
2296
2559
|
border: 1px solid transparent;
|
|
2297
|
-
border-radius: 0.8rem;
|
|
2298
|
-
transition: background 0.2s ease, border-color 0.2s ease;
|
|
2299
|
-
-webkit-tap-highlight-color: transparent;
|
|
2300
|
-
}
|
|
2301
|
-
.tree-item::before {
|
|
2302
|
-
content: "";
|
|
2303
|
-
position: absolute;
|
|
2304
|
-
inset: 0;
|
|
2305
2560
|
background: var(--secondary-background);
|
|
2306
|
-
|
|
2307
|
-
transition: opacity 0.2s ease;
|
|
2561
|
+
color: var(--secondary-text);
|
|
2308
2562
|
}
|
|
2309
|
-
.
|
|
2310
|
-
|
|
2563
|
+
.badge-info {
|
|
2564
|
+
background: color-mix(in srgb, var(--accent-color) 12%, var(--background));
|
|
2565
|
+
color: var(--accent-color);
|
|
2566
|
+
border-color: color-mix(in srgb, var(--accent-color) 20%, transparent);
|
|
2311
2567
|
}
|
|
2312
|
-
.
|
|
2568
|
+
.badge-success {
|
|
2569
|
+
background: color-mix(in srgb, var(--success) 12%, var(--background));
|
|
2570
|
+
color: var(--success);
|
|
2571
|
+
border-color: color-mix(in srgb, var(--success) 20%, transparent);
|
|
2572
|
+
}
|
|
2573
|
+
.badge-warning {
|
|
2574
|
+
background: color-mix(in srgb, var(--warning) 12%, var(--background));
|
|
2575
|
+
color: var(--warning);
|
|
2576
|
+
border-color: color-mix(in srgb, var(--warning) 20%, transparent);
|
|
2577
|
+
}
|
|
2578
|
+
.badge-error {
|
|
2579
|
+
background: color-mix(in srgb, var(--error) 12%, var(--background));
|
|
2580
|
+
color: var(--error);
|
|
2581
|
+
border-color: color-mix(in srgb, var(--error) 20%, transparent);
|
|
2582
|
+
}
|
|
2583
|
+
.badge-solid.badge-info {
|
|
2313
2584
|
background: var(--accent-color);
|
|
2314
|
-
|
|
2585
|
+
color: #fff;
|
|
2586
|
+
border-color: transparent;
|
|
2315
2587
|
}
|
|
2316
|
-
.
|
|
2317
|
-
|
|
2588
|
+
.badge-solid.badge-success {
|
|
2589
|
+
background: var(--success);
|
|
2590
|
+
color: #fff;
|
|
2591
|
+
border-color: transparent;
|
|
2318
2592
|
}
|
|
2319
|
-
.
|
|
2320
|
-
|
|
2593
|
+
.badge-solid.badge-warning {
|
|
2594
|
+
background: var(--warning);
|
|
2595
|
+
color: #fff;
|
|
2596
|
+
border-color: transparent;
|
|
2321
2597
|
}
|
|
2322
|
-
.
|
|
2323
|
-
|
|
2598
|
+
.badge-solid.badge-error {
|
|
2599
|
+
background: var(--error);
|
|
2600
|
+
color: #fff;
|
|
2601
|
+
border-color: transparent;
|
|
2324
2602
|
}
|
|
2325
|
-
.
|
|
2603
|
+
.badge-outline {
|
|
2604
|
+
background: transparent;
|
|
2605
|
+
border-color: var(--divider);
|
|
2326
2606
|
color: var(--secondary-text);
|
|
2327
|
-
font-weight: 400;
|
|
2328
2607
|
}
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
z-index: 1;
|
|
2333
|
-
width: 24px;
|
|
2334
|
-
height: 24px;
|
|
2335
|
-
margin-right: 0.75rem;
|
|
2336
|
-
display: flex;
|
|
2337
|
-
align-items: center;
|
|
2338
|
-
justify-content: center;
|
|
2339
|
-
flex-shrink: 0;
|
|
2608
|
+
.badge-outline.badge-info {
|
|
2609
|
+
border-color: var(--accent-color);
|
|
2610
|
+
color: var(--accent-color);
|
|
2340
2611
|
}
|
|
2341
|
-
.
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
stroke: var(--primary-text);
|
|
2345
|
-
stroke-width: 2;
|
|
2346
|
-
fill: none;
|
|
2347
|
-
transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
|
|
2612
|
+
.badge-outline.badge-success {
|
|
2613
|
+
border-color: var(--success);
|
|
2614
|
+
color: var(--success);
|
|
2348
2615
|
}
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2616
|
+
.badge-outline.badge-warning {
|
|
2617
|
+
border-color: var(--warning);
|
|
2618
|
+
color: var(--warning);
|
|
2619
|
+
}
|
|
2620
|
+
.badge-outline.badge-error {
|
|
2621
|
+
border-color: var(--error);
|
|
2622
|
+
color: var(--error);
|
|
2623
|
+
}
|
|
2624
|
+
.badge-sm {
|
|
2625
|
+
padding: 0.1rem 0.35rem;
|
|
2626
|
+
font-size: 0.6875rem;
|
|
2627
|
+
}
|
|
2628
|
+
.badge-lg {
|
|
2629
|
+
padding: 0.25rem 0.65rem;
|
|
2630
|
+
font-size: 0.875rem;
|
|
2631
|
+
}
|
|
2632
|
+
.badge-dot {
|
|
2633
|
+
width: 0.5rem;
|
|
2634
|
+
height: 0.5rem;
|
|
2635
|
+
padding: 0;
|
|
2636
|
+
border-radius: 50%;
|
|
2637
|
+
background: var(--divider);
|
|
2638
|
+
border: none;
|
|
2639
|
+
}
|
|
2640
|
+
.badge-dot.badge-info {
|
|
2641
|
+
background: var(--accent-color);
|
|
2642
|
+
}
|
|
2643
|
+
.badge-dot.badge-success {
|
|
2644
|
+
background: var(--success);
|
|
2645
|
+
}
|
|
2646
|
+
.badge-dot.badge-warning {
|
|
2647
|
+
background: var(--warning);
|
|
2648
|
+
}
|
|
2649
|
+
.badge-dot.badge-error {
|
|
2650
|
+
background: var(--error);
|
|
2651
|
+
}
|
|
2652
|
+
|
|
2653
|
+
@keyframes stepper-pulse {
|
|
2654
|
+
0% {
|
|
2655
|
+
box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent-color) 35%, transparent);
|
|
2656
|
+
}
|
|
2657
|
+
65% {
|
|
2658
|
+
box-shadow: 0 0 0 5px transparent;
|
|
2659
|
+
}
|
|
2660
|
+
100% {
|
|
2661
|
+
box-shadow: 0 0 0 0 transparent;
|
|
2662
|
+
}
|
|
2663
|
+
}
|
|
2664
|
+
.stepper {
|
|
2665
|
+
display: flex;
|
|
2666
|
+
align-items: flex-start;
|
|
2667
|
+
}
|
|
2668
|
+
|
|
2669
|
+
.stepper-step {
|
|
2670
|
+
display: flex;
|
|
2671
|
+
flex-direction: column;
|
|
2672
|
+
align-items: center;
|
|
2673
|
+
gap: 0.4rem;
|
|
2674
|
+
flex-shrink: 0;
|
|
2675
|
+
}
|
|
2676
|
+
|
|
2677
|
+
.stepper-indicator {
|
|
2678
|
+
width: 2rem;
|
|
2679
|
+
height: 2rem;
|
|
2680
|
+
border-radius: 50%;
|
|
2681
|
+
display: flex;
|
|
2682
|
+
align-items: center;
|
|
2683
|
+
justify-content: center;
|
|
2684
|
+
flex-shrink: 0;
|
|
2685
|
+
font-size: 0.8125rem;
|
|
2686
|
+
font-weight: 600;
|
|
2687
|
+
line-height: 1;
|
|
2688
|
+
border: 2px solid var(--divider);
|
|
2689
|
+
background: var(--background);
|
|
2690
|
+
color: var(--secondary-text);
|
|
2691
|
+
transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease;
|
|
2692
|
+
position: relative;
|
|
2693
|
+
z-index: 1;
|
|
2694
|
+
}
|
|
2695
|
+
.stepper-indicator .icon-svg {
|
|
2696
|
+
width: 1rem;
|
|
2697
|
+
height: 1rem;
|
|
2698
|
+
}
|
|
2699
|
+
|
|
2700
|
+
.stepper-label {
|
|
2701
|
+
display: flex;
|
|
2702
|
+
flex-direction: column;
|
|
2703
|
+
align-items: center;
|
|
2704
|
+
text-align: center;
|
|
2705
|
+
gap: 0.125rem;
|
|
2706
|
+
}
|
|
2707
|
+
|
|
2708
|
+
.stepper-title {
|
|
2709
|
+
font-size: 0.8125rem;
|
|
2710
|
+
font-weight: 500;
|
|
2711
|
+
color: var(--secondary-text);
|
|
2712
|
+
transition: color 0.2s ease;
|
|
2713
|
+
white-space: nowrap;
|
|
2714
|
+
}
|
|
2715
|
+
|
|
2716
|
+
.stepper-desc {
|
|
2717
|
+
font-size: 0.6875rem;
|
|
2718
|
+
color: var(--secondary-text);
|
|
2719
|
+
opacity: 0.6;
|
|
2720
|
+
white-space: nowrap;
|
|
2721
|
+
}
|
|
2722
|
+
|
|
2723
|
+
.stepper-connector {
|
|
2724
|
+
flex: 1;
|
|
2725
|
+
height: 2px;
|
|
2726
|
+
margin-top: calc(2rem / 2 - 2px / 2);
|
|
2727
|
+
min-width: 1rem;
|
|
2728
|
+
background: var(--divider);
|
|
2729
|
+
position: relative;
|
|
2730
|
+
overflow: hidden;
|
|
2731
|
+
}
|
|
2732
|
+
.stepper-connector::after {
|
|
2733
|
+
content: "";
|
|
2734
|
+
position: absolute;
|
|
2735
|
+
inset: 0;
|
|
2736
|
+
background: var(--accent-color);
|
|
2737
|
+
transform: scaleX(0);
|
|
2738
|
+
transform-origin: left;
|
|
2739
|
+
transition: transform 0.38s cubic-bezier(0.4, 0, 0.2, 1);
|
|
2740
|
+
}
|
|
2741
|
+
.stepper-connector.completed::after {
|
|
2742
|
+
transform: scaleX(1);
|
|
2743
|
+
}
|
|
2744
|
+
|
|
2745
|
+
.stepper-step.active .stepper-indicator {
|
|
2746
|
+
border-color: var(--accent-color);
|
|
2747
|
+
background: color-mix(in srgb, var(--accent-color) 10%, var(--background));
|
|
2748
|
+
color: var(--accent-color);
|
|
2749
|
+
animation: stepper-pulse 2.4s ease-out infinite;
|
|
2750
|
+
}
|
|
2751
|
+
.stepper-step.active .stepper-title {
|
|
2752
|
+
color: var(--accent-color);
|
|
2753
|
+
font-weight: 600;
|
|
2754
|
+
}
|
|
2755
|
+
.stepper-step.completed .stepper-indicator {
|
|
2756
|
+
border-color: var(--accent-color);
|
|
2757
|
+
background: var(--accent-color);
|
|
2758
|
+
color: #fff;
|
|
2759
|
+
}
|
|
2760
|
+
.stepper-step.completed .stepper-title {
|
|
2761
|
+
color: var(--primary-text);
|
|
2762
|
+
}
|
|
2763
|
+
.stepper-step.error .stepper-indicator {
|
|
2764
|
+
border-color: var(--error);
|
|
2765
|
+
background: color-mix(in srgb, var(--error) 10%, var(--background));
|
|
2766
|
+
color: var(--error);
|
|
2767
|
+
animation: none;
|
|
2768
|
+
}
|
|
2769
|
+
.stepper-step.error .stepper-title {
|
|
2770
|
+
color: var(--error);
|
|
2771
|
+
}
|
|
2772
|
+
|
|
2773
|
+
.stepper-vertical {
|
|
2774
|
+
flex-direction: column;
|
|
2775
|
+
}
|
|
2776
|
+
.stepper-vertical .stepper-step {
|
|
2777
|
+
flex-direction: row;
|
|
2778
|
+
align-items: flex-start;
|
|
2779
|
+
gap: 1rem;
|
|
2780
|
+
}
|
|
2781
|
+
.stepper-vertical .stepper-label {
|
|
2782
|
+
align-items: flex-start;
|
|
2783
|
+
text-align: left;
|
|
2784
|
+
padding-top: calc((2rem - 1.15rem) / 2);
|
|
2785
|
+
}
|
|
2786
|
+
.stepper-vertical .stepper-connector {
|
|
2787
|
+
width: 2px;
|
|
2788
|
+
height: auto;
|
|
2789
|
+
min-height: 1.5rem;
|
|
2790
|
+
min-width: unset;
|
|
2791
|
+
flex: unset;
|
|
2792
|
+
margin-top: 0;
|
|
2793
|
+
margin-left: calc(2rem / 2 - 2px / 2);
|
|
2794
|
+
align-self: flex-start;
|
|
2795
|
+
}
|
|
2796
|
+
.stepper-vertical .stepper-connector::after {
|
|
2797
|
+
transform: scaleY(0);
|
|
2798
|
+
transform-origin: top;
|
|
2799
|
+
}
|
|
2800
|
+
.stepper-vertical .stepper-connector.completed::after {
|
|
2801
|
+
transform: scaleY(1);
|
|
2802
|
+
}
|
|
2803
|
+
|
|
2804
|
+
.stepper-clickable .stepper-step.completed, .stepper-clickable .stepper-step.active {
|
|
2805
|
+
cursor: pointer;
|
|
2806
|
+
}
|
|
2807
|
+
.stepper-clickable .stepper-step.completed .stepper-indicator, .stepper-clickable .stepper-step.active .stepper-indicator {
|
|
2808
|
+
transition: background 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.15s ease;
|
|
2809
|
+
}
|
|
2810
|
+
.stepper-clickable .stepper-step.completed:hover .stepper-indicator, .stepper-clickable .stepper-step.active:hover .stepper-indicator {
|
|
2811
|
+
transform: scale(1.1);
|
|
2812
|
+
}
|
|
2813
|
+
|
|
2814
|
+
@media (max-width: 480px) {
|
|
2815
|
+
.stepper:not(.stepper-vertical) .stepper-label {
|
|
2816
|
+
display: none;
|
|
2817
|
+
}
|
|
2818
|
+
.stepper:not(.stepper-vertical) .stepper-connector {
|
|
2819
|
+
min-width: 0.5rem;
|
|
2820
|
+
}
|
|
2821
|
+
}
|
|
2822
|
+
ul.tree {
|
|
2823
|
+
list-style: none;
|
|
2824
|
+
}
|
|
2825
|
+
ul.tree li {
|
|
2826
|
+
list-style: none;
|
|
2827
|
+
}
|
|
2828
|
+
|
|
2829
|
+
.tree-node {
|
|
2830
|
+
position: relative;
|
|
2831
|
+
margin: 0.25rem 0;
|
|
2832
|
+
}
|
|
2833
|
+
|
|
2834
|
+
.tree-item {
|
|
2835
|
+
position: relative;
|
|
2836
|
+
display: flex;
|
|
2837
|
+
align-items: center;
|
|
2838
|
+
min-height: 3rem;
|
|
2839
|
+
padding: 0.875rem 1rem;
|
|
2840
|
+
cursor: pointer;
|
|
2841
|
+
user-select: none;
|
|
2842
|
+
overflow: hidden;
|
|
2843
|
+
border: 1px solid transparent;
|
|
2844
|
+
border-radius: 0.8rem;
|
|
2845
|
+
transition: background 0.2s ease, border-color 0.2s ease;
|
|
2846
|
+
-webkit-tap-highlight-color: transparent;
|
|
2847
|
+
}
|
|
2848
|
+
.tree-item::before {
|
|
2849
|
+
content: "";
|
|
2850
|
+
position: absolute;
|
|
2851
|
+
inset: 0;
|
|
2852
|
+
background: var(--secondary-background);
|
|
2853
|
+
opacity: 0;
|
|
2854
|
+
transition: opacity 0.2s ease;
|
|
2855
|
+
}
|
|
2856
|
+
.tree-item:hover:not(.selected)::before {
|
|
2857
|
+
opacity: 1;
|
|
2858
|
+
}
|
|
2859
|
+
.tree-item.selected {
|
|
2860
|
+
background: var(--accent-color);
|
|
2861
|
+
border-color: var(--accent-color);
|
|
2862
|
+
}
|
|
2863
|
+
.tree-item.selected .tree-label {
|
|
2864
|
+
color: var(--accent-color-text);
|
|
2865
|
+
}
|
|
2866
|
+
.tree-item.selected .tree-icon svg {
|
|
2867
|
+
stroke: var(--accent-color-text);
|
|
2868
|
+
}
|
|
2869
|
+
.tree-item.expanded > .tree-icon svg.chevron {
|
|
2870
|
+
transform: rotate(90deg);
|
|
2871
|
+
}
|
|
2872
|
+
.tree-item.file .tree-label {
|
|
2873
|
+
color: var(--secondary-text);
|
|
2874
|
+
font-weight: 400;
|
|
2875
|
+
}
|
|
2876
|
+
|
|
2877
|
+
.tree-icon {
|
|
2878
|
+
position: relative;
|
|
2879
|
+
z-index: 1;
|
|
2880
|
+
width: 24px;
|
|
2881
|
+
height: 24px;
|
|
2882
|
+
margin-right: 0.75rem;
|
|
2883
|
+
display: flex;
|
|
2884
|
+
align-items: center;
|
|
2885
|
+
justify-content: center;
|
|
2886
|
+
flex-shrink: 0;
|
|
2887
|
+
}
|
|
2888
|
+
.tree-icon svg {
|
|
2889
|
+
width: 100%;
|
|
2890
|
+
height: 100%;
|
|
2891
|
+
stroke: var(--primary-text);
|
|
2892
|
+
stroke-width: 2;
|
|
2893
|
+
fill: none;
|
|
2894
|
+
transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
|
|
2895
|
+
}
|
|
2896
|
+
|
|
2897
|
+
.tree-label {
|
|
2898
|
+
position: relative;
|
|
2899
|
+
z-index: 1;
|
|
2900
|
+
flex: 1;
|
|
2354
2901
|
font-family: "JetBrains Mono", ui-monospace, "Cascadia Code", "Fira Code", monospace;
|
|
2355
2902
|
font-size: 0.9375rem;
|
|
2356
2903
|
font-weight: 500;
|
|
@@ -4348,4 +4895,882 @@ body {
|
|
|
4348
4895
|
cursor: not-allowed;
|
|
4349
4896
|
}
|
|
4350
4897
|
|
|
4898
|
+
/* ── Editor Component ───────────────────────────────────────────────── */
|
|
4899
|
+
.editor {
|
|
4900
|
+
background: var(--secondary-background);
|
|
4901
|
+
border: 1px solid var(--divider);
|
|
4902
|
+
border-radius: 0.4rem;
|
|
4903
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
4904
|
+
display: flex;
|
|
4905
|
+
flex-direction: column;
|
|
4906
|
+
overflow: hidden;
|
|
4907
|
+
}
|
|
4908
|
+
|
|
4909
|
+
/* ── Toolbar ───────────────────────────────────────────────────────── */
|
|
4910
|
+
.editor-toolbar {
|
|
4911
|
+
display: flex;
|
|
4912
|
+
align-items: center;
|
|
4913
|
+
gap: 0.25rem;
|
|
4914
|
+
padding: 0.375rem 0.5rem;
|
|
4915
|
+
border-bottom: 1px solid var(--divider);
|
|
4916
|
+
background: var(--secondary-background);
|
|
4917
|
+
overflow-x: auto;
|
|
4918
|
+
-webkit-overflow-scrolling: touch;
|
|
4919
|
+
scrollbar-width: none;
|
|
4920
|
+
}
|
|
4921
|
+
.editor-toolbar::-webkit-scrollbar {
|
|
4922
|
+
display: none;
|
|
4923
|
+
}
|
|
4924
|
+
|
|
4925
|
+
/* SVG icon sizing */
|
|
4926
|
+
.editor-toolbar .icon-svg {
|
|
4927
|
+
fill: currentColor;
|
|
4928
|
+
display: block;
|
|
4929
|
+
width: 1.125rem;
|
|
4930
|
+
height: 1.125rem;
|
|
4931
|
+
pointer-events: none;
|
|
4932
|
+
flex-shrink: 0;
|
|
4933
|
+
}
|
|
4934
|
+
|
|
4935
|
+
/* Button base */
|
|
4936
|
+
.editor-toolbar button {
|
|
4937
|
+
display: inline-flex;
|
|
4938
|
+
align-items: center;
|
|
4939
|
+
justify-content: center;
|
|
4940
|
+
width: 2rem;
|
|
4941
|
+
height: 2rem;
|
|
4942
|
+
padding: 0;
|
|
4943
|
+
border: none;
|
|
4944
|
+
border-radius: 0.24rem;
|
|
4945
|
+
background: transparent;
|
|
4946
|
+
color: var(--secondary-text);
|
|
4947
|
+
cursor: pointer;
|
|
4948
|
+
font-size: 0.75rem;
|
|
4949
|
+
font-weight: 800;
|
|
4950
|
+
letter-spacing: -0.03em;
|
|
4951
|
+
transition: background 0.1s ease, color 0.1s ease;
|
|
4952
|
+
flex-shrink: 0;
|
|
4953
|
+
position: relative;
|
|
4954
|
+
}
|
|
4955
|
+
.editor-toolbar button:hover {
|
|
4956
|
+
background: var(--divider);
|
|
4957
|
+
color: var(--primary-text);
|
|
4958
|
+
}
|
|
4959
|
+
.editor-toolbar button:active {
|
|
4960
|
+
opacity: 0.75;
|
|
4961
|
+
}
|
|
4962
|
+
.editor-toolbar button.active {
|
|
4963
|
+
background: color-mix(in srgb, var(--accent-color) 12%, transparent);
|
|
4964
|
+
color: var(--accent-color);
|
|
4965
|
+
}
|
|
4966
|
+
.editor-toolbar button.active::after {
|
|
4967
|
+
content: "";
|
|
4968
|
+
position: absolute;
|
|
4969
|
+
bottom: 2px;
|
|
4970
|
+
left: 50%;
|
|
4971
|
+
translate: -50% 0;
|
|
4972
|
+
width: 3px;
|
|
4973
|
+
height: 3px;
|
|
4974
|
+
border-radius: 50%;
|
|
4975
|
+
background: var(--accent-color);
|
|
4976
|
+
}
|
|
4977
|
+
|
|
4978
|
+
/* Button clusters — pill-shaped groups */
|
|
4979
|
+
.toolbar-group {
|
|
4980
|
+
display: flex;
|
|
4981
|
+
align-items: center;
|
|
4982
|
+
gap: 1px;
|
|
4983
|
+
background: color-mix(in srgb, var(--divider) 55%, transparent);
|
|
4984
|
+
border-radius: 0.3rem;
|
|
4985
|
+
padding: 2px;
|
|
4986
|
+
flex-shrink: 0;
|
|
4987
|
+
}
|
|
4988
|
+
.toolbar-group button {
|
|
4989
|
+
border-radius: 0.18rem;
|
|
4990
|
+
}
|
|
4991
|
+
|
|
4992
|
+
/* Separators: invisible spacers — visual grouping comes from .toolbar-group */
|
|
4993
|
+
.toolbar-separator {
|
|
4994
|
+
width: 0.35rem;
|
|
4995
|
+
flex-shrink: 0;
|
|
4996
|
+
}
|
|
4997
|
+
|
|
4998
|
+
/* Right-pinned actions */
|
|
4999
|
+
.toolbar-end {
|
|
5000
|
+
display: flex;
|
|
5001
|
+
align-items: center;
|
|
5002
|
+
gap: 3px;
|
|
5003
|
+
margin-left: auto;
|
|
5004
|
+
padding-left: 0.5rem;
|
|
5005
|
+
flex-shrink: 0;
|
|
5006
|
+
}
|
|
5007
|
+
.toolbar-end:empty {
|
|
5008
|
+
display: none;
|
|
5009
|
+
}
|
|
5010
|
+
|
|
5011
|
+
/* Variant button states — scoped to avoid !important */
|
|
5012
|
+
.editor-toolbar button.toolbar-btn-accent {
|
|
5013
|
+
background: color-mix(in srgb, var(--accent-color) 10%, transparent);
|
|
5014
|
+
color: var(--accent-color);
|
|
5015
|
+
}
|
|
5016
|
+
.editor-toolbar button.toolbar-btn-accent:hover {
|
|
5017
|
+
background: color-mix(in srgb, var(--accent-color) 20%, transparent);
|
|
5018
|
+
}
|
|
5019
|
+
|
|
5020
|
+
.editor-toolbar button.toolbar-btn-danger:hover {
|
|
5021
|
+
background: color-mix(in srgb, var(--error) 12%, transparent);
|
|
5022
|
+
color: var(--error);
|
|
5023
|
+
}
|
|
5024
|
+
|
|
5025
|
+
/* ── Editor Body ───────────────────────────────────────────────────── */
|
|
5026
|
+
.editor-body {
|
|
5027
|
+
display: flex;
|
|
5028
|
+
flex: 1;
|
|
5029
|
+
min-height: 0;
|
|
5030
|
+
}
|
|
5031
|
+
|
|
5032
|
+
.editor-main {
|
|
5033
|
+
flex: 1;
|
|
5034
|
+
display: flex;
|
|
5035
|
+
flex-direction: column;
|
|
5036
|
+
min-width: 0;
|
|
5037
|
+
}
|
|
5038
|
+
|
|
5039
|
+
.editable {
|
|
5040
|
+
flex: 1;
|
|
5041
|
+
padding: 1.5rem 1.75rem;
|
|
5042
|
+
outline: none;
|
|
5043
|
+
overflow-y: auto;
|
|
5044
|
+
min-height: 360px;
|
|
5045
|
+
max-height: 70vh;
|
|
5046
|
+
color: var(--primary-text);
|
|
5047
|
+
line-height: 1.75;
|
|
5048
|
+
font-size: 1rem;
|
|
5049
|
+
background: var(--background);
|
|
5050
|
+
caret-color: var(--accent-color);
|
|
5051
|
+
transition: box-shadow 0.15s ease;
|
|
5052
|
+
}
|
|
5053
|
+
.editable:focus {
|
|
5054
|
+
box-shadow: inset 2px 0 0 var(--accent-color);
|
|
5055
|
+
}
|
|
5056
|
+
.editable:empty::before {
|
|
5057
|
+
content: "Start writing…";
|
|
5058
|
+
color: var(--disabled);
|
|
5059
|
+
pointer-events: none;
|
|
5060
|
+
}
|
|
5061
|
+
.editable h1 {
|
|
5062
|
+
font-size: 1.75rem;
|
|
5063
|
+
font-weight: 700;
|
|
5064
|
+
margin: 0.75rem 0 0.4rem;
|
|
5065
|
+
line-height: 1.2;
|
|
5066
|
+
letter-spacing: -0.025em;
|
|
5067
|
+
color: var(--primary-text);
|
|
5068
|
+
}
|
|
5069
|
+
.editable h2 {
|
|
5070
|
+
font-size: 1.3rem;
|
|
5071
|
+
font-weight: 600;
|
|
5072
|
+
margin: 0.625rem 0 0.35rem;
|
|
5073
|
+
line-height: 1.3;
|
|
5074
|
+
letter-spacing: -0.015em;
|
|
5075
|
+
}
|
|
5076
|
+
.editable p {
|
|
5077
|
+
margin-bottom: 0.6rem;
|
|
5078
|
+
}
|
|
5079
|
+
.editable ul, .editable ol {
|
|
5080
|
+
margin-left: 1.5rem;
|
|
5081
|
+
margin-bottom: 0.5rem;
|
|
5082
|
+
}
|
|
5083
|
+
.editable ul {
|
|
5084
|
+
list-style: disc;
|
|
5085
|
+
}
|
|
5086
|
+
.editable ol {
|
|
5087
|
+
list-style: decimal;
|
|
5088
|
+
}
|
|
5089
|
+
.editable li {
|
|
5090
|
+
margin-bottom: 0.2rem;
|
|
5091
|
+
line-height: 1.65;
|
|
5092
|
+
}
|
|
5093
|
+
.editable img {
|
|
5094
|
+
max-width: 100%;
|
|
5095
|
+
height: auto;
|
|
5096
|
+
border-radius: 0.35rem;
|
|
5097
|
+
margin: 0.75rem 0;
|
|
5098
|
+
display: block;
|
|
5099
|
+
}
|
|
5100
|
+
.editable a {
|
|
5101
|
+
color: var(--accent-color);
|
|
5102
|
+
text-decoration: underline;
|
|
5103
|
+
text-underline-offset: 3px;
|
|
5104
|
+
text-decoration-thickness: 1px;
|
|
5105
|
+
}
|
|
5106
|
+
.editable blockquote {
|
|
5107
|
+
border-left: 3px solid var(--accent-color);
|
|
5108
|
+
background: color-mix(in srgb, var(--accent-color) 5%, transparent);
|
|
5109
|
+
padding: 0.5rem 0.75rem 0.5rem 1rem;
|
|
5110
|
+
margin: 0.75rem 0;
|
|
5111
|
+
border-radius: 0 0.2rem 0.2rem 0;
|
|
5112
|
+
color: var(--secondary-text);
|
|
5113
|
+
font-style: italic;
|
|
5114
|
+
}
|
|
5115
|
+
.editable strong {
|
|
5116
|
+
font-weight: 700;
|
|
5117
|
+
}
|
|
5118
|
+
|
|
5119
|
+
/* ── Side Panel ────────────────────────────────────────────────────── */
|
|
5120
|
+
.editor-side {
|
|
5121
|
+
width: 320px;
|
|
5122
|
+
min-width: 240px;
|
|
5123
|
+
border-left: 1px solid var(--divider);
|
|
5124
|
+
display: flex;
|
|
5125
|
+
flex-direction: column;
|
|
5126
|
+
background: var(--secondary-background);
|
|
5127
|
+
}
|
|
5128
|
+
.editor-side.hidden {
|
|
5129
|
+
display: none;
|
|
5130
|
+
}
|
|
5131
|
+
.editor-side textarea {
|
|
5132
|
+
flex: 1;
|
|
5133
|
+
font-family: ui-monospace, "Cascadia Code", "SF Mono", monospace;
|
|
5134
|
+
font-size: 0.78rem;
|
|
5135
|
+
line-height: 1.6;
|
|
5136
|
+
resize: none;
|
|
5137
|
+
border: 1px solid var(--divider);
|
|
5138
|
+
background: var(--background);
|
|
5139
|
+
color: var(--primary-text);
|
|
5140
|
+
border-radius: 0.3rem;
|
|
5141
|
+
padding: 0.625rem;
|
|
5142
|
+
tab-size: 2;
|
|
5143
|
+
outline: none;
|
|
5144
|
+
transition: border-color 0.12s ease;
|
|
5145
|
+
}
|
|
5146
|
+
.editor-side textarea:focus {
|
|
5147
|
+
border-color: color-mix(in srgb, var(--accent-color) 50%, transparent);
|
|
5148
|
+
}
|
|
5149
|
+
.editor-side textarea::placeholder {
|
|
5150
|
+
color: var(--disabled);
|
|
5151
|
+
}
|
|
5152
|
+
|
|
5153
|
+
.side-tabs {
|
|
5154
|
+
display: flex;
|
|
5155
|
+
border-bottom: 1px solid var(--divider);
|
|
5156
|
+
padding: 0 0.375rem;
|
|
5157
|
+
}
|
|
5158
|
+
|
|
5159
|
+
.side-tab {
|
|
5160
|
+
padding: 0.4rem 0.75rem;
|
|
5161
|
+
font-size: 0.75rem;
|
|
5162
|
+
font-weight: 500;
|
|
5163
|
+
color: var(--secondary-text);
|
|
5164
|
+
background: none;
|
|
5165
|
+
border: none;
|
|
5166
|
+
border-bottom: 2px solid transparent;
|
|
5167
|
+
cursor: pointer;
|
|
5168
|
+
transition: color 0.12s ease, border-color 0.12s ease;
|
|
5169
|
+
}
|
|
5170
|
+
.side-tab:hover {
|
|
5171
|
+
color: var(--primary-text);
|
|
5172
|
+
}
|
|
5173
|
+
.side-tab.active {
|
|
5174
|
+
color: var(--accent-color);
|
|
5175
|
+
border-bottom-color: var(--accent-color);
|
|
5176
|
+
font-weight: 600;
|
|
5177
|
+
}
|
|
5178
|
+
|
|
5179
|
+
.side-panels {
|
|
5180
|
+
flex: 1;
|
|
5181
|
+
overflow: hidden;
|
|
5182
|
+
display: flex;
|
|
5183
|
+
flex-direction: column;
|
|
5184
|
+
}
|
|
5185
|
+
|
|
5186
|
+
.side-panel {
|
|
5187
|
+
display: none;
|
|
5188
|
+
flex-direction: column;
|
|
5189
|
+
flex: 1;
|
|
5190
|
+
padding: 0.5rem;
|
|
5191
|
+
overflow: hidden;
|
|
5192
|
+
gap: 0.4rem;
|
|
5193
|
+
}
|
|
5194
|
+
.side-panel.active {
|
|
5195
|
+
display: flex;
|
|
5196
|
+
}
|
|
5197
|
+
|
|
5198
|
+
.code-actions {
|
|
5199
|
+
display: flex;
|
|
5200
|
+
gap: 0.3rem;
|
|
5201
|
+
}
|
|
5202
|
+
.code-actions button {
|
|
5203
|
+
flex: 1;
|
|
5204
|
+
padding: 0.3rem 0.5rem;
|
|
5205
|
+
font-size: 0.72rem;
|
|
5206
|
+
font-weight: 600;
|
|
5207
|
+
border-radius: 0.24rem;
|
|
5208
|
+
background: var(--divider);
|
|
5209
|
+
color: var(--secondary-text);
|
|
5210
|
+
border: none;
|
|
5211
|
+
cursor: pointer;
|
|
5212
|
+
transition: background 0.1s, color 0.1s;
|
|
5213
|
+
}
|
|
5214
|
+
.code-actions button:hover {
|
|
5215
|
+
background: color-mix(in srgb, var(--divider) 70%, var(--primary-text) 30%);
|
|
5216
|
+
color: var(--primary-text);
|
|
5217
|
+
}
|
|
5218
|
+
|
|
5219
|
+
.preview-content {
|
|
5220
|
+
flex: 1;
|
|
5221
|
+
overflow-y: auto;
|
|
5222
|
+
padding: 0.75rem 1rem;
|
|
5223
|
+
background: var(--background);
|
|
5224
|
+
border: 1px solid var(--divider);
|
|
5225
|
+
border-radius: 0.3rem;
|
|
5226
|
+
line-height: 1.65;
|
|
5227
|
+
font-size: 0.9rem;
|
|
5228
|
+
color: var(--primary-text);
|
|
5229
|
+
}
|
|
5230
|
+
.preview-content h1 {
|
|
5231
|
+
font-size: 1.4rem;
|
|
5232
|
+
font-weight: 700;
|
|
5233
|
+
margin-bottom: 0.35rem;
|
|
5234
|
+
letter-spacing: -0.02em;
|
|
5235
|
+
}
|
|
5236
|
+
.preview-content h2 {
|
|
5237
|
+
font-size: 1.1rem;
|
|
5238
|
+
font-weight: 600;
|
|
5239
|
+
margin-bottom: 0.3rem;
|
|
5240
|
+
}
|
|
5241
|
+
.preview-content p {
|
|
5242
|
+
margin-bottom: 0.4rem;
|
|
5243
|
+
}
|
|
5244
|
+
.preview-content ul, .preview-content ol {
|
|
5245
|
+
margin-left: 1.25rem;
|
|
5246
|
+
margin-bottom: 0.4rem;
|
|
5247
|
+
}
|
|
5248
|
+
.preview-content ul {
|
|
5249
|
+
list-style: disc;
|
|
5250
|
+
}
|
|
5251
|
+
.preview-content ol {
|
|
5252
|
+
list-style: decimal;
|
|
5253
|
+
}
|
|
5254
|
+
.preview-content img {
|
|
5255
|
+
max-width: 100%;
|
|
5256
|
+
height: auto;
|
|
5257
|
+
border-radius: 0.3rem;
|
|
5258
|
+
}
|
|
5259
|
+
.preview-content a {
|
|
5260
|
+
color: var(--accent-color);
|
|
5261
|
+
text-decoration: underline;
|
|
5262
|
+
text-underline-offset: 2px;
|
|
5263
|
+
}
|
|
5264
|
+
|
|
5265
|
+
/* ── Footer ────────────────────────────────────────────────────────── */
|
|
5266
|
+
.editor-footer {
|
|
5267
|
+
display: flex;
|
|
5268
|
+
align-items: center;
|
|
5269
|
+
justify-content: space-between;
|
|
5270
|
+
padding: 0.35rem 0.875rem;
|
|
5271
|
+
border-top: 1px solid var(--divider);
|
|
5272
|
+
background: var(--secondary-background);
|
|
5273
|
+
font-size: 0.72rem;
|
|
5274
|
+
color: var(--secondary-text);
|
|
5275
|
+
gap: 1rem;
|
|
5276
|
+
}
|
|
5277
|
+
|
|
5278
|
+
.editor-wordcount {
|
|
5279
|
+
white-space: nowrap;
|
|
5280
|
+
font-variant-numeric: tabular-nums;
|
|
5281
|
+
font-weight: 500;
|
|
5282
|
+
}
|
|
5283
|
+
|
|
5284
|
+
.editor-shortcuts {
|
|
5285
|
+
display: flex;
|
|
5286
|
+
align-items: center;
|
|
5287
|
+
gap: 0.75rem;
|
|
5288
|
+
overflow: hidden;
|
|
5289
|
+
}
|
|
5290
|
+
.editor-shortcuts span {
|
|
5291
|
+
display: flex;
|
|
5292
|
+
align-items: center;
|
|
5293
|
+
gap: 0.25rem;
|
|
5294
|
+
white-space: nowrap;
|
|
5295
|
+
}
|
|
5296
|
+
.editor-shortcuts kbd {
|
|
5297
|
+
display: inline-block;
|
|
5298
|
+
padding: 0.1rem 0.3rem;
|
|
5299
|
+
font-family: inherit;
|
|
5300
|
+
font-size: 0.65rem;
|
|
5301
|
+
font-weight: 600;
|
|
5302
|
+
color: var(--secondary-text);
|
|
5303
|
+
background: var(--background);
|
|
5304
|
+
border: 1px solid var(--divider);
|
|
5305
|
+
border-radius: 0.2rem;
|
|
5306
|
+
box-shadow: 0 1px 0 var(--divider);
|
|
5307
|
+
}
|
|
5308
|
+
|
|
5309
|
+
/* ── Responsive ────────────────────────────────────────────────────── */
|
|
5310
|
+
@media screen and (max-width: 768px) {
|
|
5311
|
+
.editor-body {
|
|
5312
|
+
flex-direction: column;
|
|
5313
|
+
}
|
|
5314
|
+
.editor-side {
|
|
5315
|
+
width: 100%;
|
|
5316
|
+
min-width: 0;
|
|
5317
|
+
border-left: none;
|
|
5318
|
+
border-top: 1px solid var(--divider);
|
|
5319
|
+
max-height: 48vh;
|
|
5320
|
+
}
|
|
5321
|
+
.editable {
|
|
5322
|
+
min-height: 240px;
|
|
5323
|
+
max-height: 50vh;
|
|
5324
|
+
padding: 1rem 1.125rem;
|
|
5325
|
+
}
|
|
5326
|
+
.editable:focus {
|
|
5327
|
+
box-shadow: inset 0 2px 0 var(--accent-color);
|
|
5328
|
+
}
|
|
5329
|
+
.editor-toolbar {
|
|
5330
|
+
padding: 0.3rem 0.375rem;
|
|
5331
|
+
gap: 0.2rem;
|
|
5332
|
+
mask-image: linear-gradient(to right, black 85%, transparent 100%);
|
|
5333
|
+
}
|
|
5334
|
+
.editor-toolbar button {
|
|
5335
|
+
width: 2.25rem;
|
|
5336
|
+
height: 2.25rem;
|
|
5337
|
+
}
|
|
5338
|
+
.editor-toolbar .icon-svg {
|
|
5339
|
+
width: 1.25rem;
|
|
5340
|
+
height: 1.25rem;
|
|
5341
|
+
}
|
|
5342
|
+
.toolbar-group {
|
|
5343
|
+
gap: 2px;
|
|
5344
|
+
padding: 2px;
|
|
5345
|
+
}
|
|
5346
|
+
.toolbar-separator {
|
|
5347
|
+
width: 0.2rem;
|
|
5348
|
+
}
|
|
5349
|
+
.editor-shortcuts {
|
|
5350
|
+
display: none;
|
|
5351
|
+
}
|
|
5352
|
+
}
|
|
5353
|
+
/* ── Link Popover ──────────────────────────────────────────────────── */
|
|
5354
|
+
.editor-link-popover {
|
|
5355
|
+
display: flex;
|
|
5356
|
+
flex-direction: column;
|
|
5357
|
+
gap: 0.4rem;
|
|
5358
|
+
padding: 0.625rem 0.75rem;
|
|
5359
|
+
border-bottom: 1px solid var(--divider);
|
|
5360
|
+
background: var(--secondary-background);
|
|
5361
|
+
}
|
|
5362
|
+
.editor-link-popover[hidden] {
|
|
5363
|
+
display: none;
|
|
5364
|
+
}
|
|
5365
|
+
|
|
5366
|
+
.link-popover-row {
|
|
5367
|
+
display: flex;
|
|
5368
|
+
align-items: center;
|
|
5369
|
+
gap: 0.5rem;
|
|
5370
|
+
}
|
|
5371
|
+
|
|
5372
|
+
.link-popover-input {
|
|
5373
|
+
flex: 1;
|
|
5374
|
+
height: 2rem;
|
|
5375
|
+
padding: 0 0.625rem;
|
|
5376
|
+
border: 1px solid var(--divider);
|
|
5377
|
+
border-radius: 0.24rem;
|
|
5378
|
+
background: var(--background);
|
|
5379
|
+
color: var(--primary-text);
|
|
5380
|
+
font-size: 0.8125rem;
|
|
5381
|
+
outline: none;
|
|
5382
|
+
transition: border-color 0.12s ease;
|
|
5383
|
+
}
|
|
5384
|
+
.link-popover-input:focus {
|
|
5385
|
+
border-color: color-mix(in srgb, var(--accent-color) 60%, transparent);
|
|
5386
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-color) 12%, transparent);
|
|
5387
|
+
}
|
|
5388
|
+
.link-popover-input::placeholder {
|
|
5389
|
+
color: var(--disabled, var(--secondary-text));
|
|
5390
|
+
opacity: 0.7;
|
|
5391
|
+
}
|
|
5392
|
+
|
|
5393
|
+
.link-popover-actions {
|
|
5394
|
+
justify-content: space-between;
|
|
5395
|
+
}
|
|
5396
|
+
|
|
5397
|
+
.link-popover-check {
|
|
5398
|
+
display: flex;
|
|
5399
|
+
align-items: center;
|
|
5400
|
+
gap: 0.35rem;
|
|
5401
|
+
font-size: 0.78rem;
|
|
5402
|
+
color: var(--secondary-text);
|
|
5403
|
+
cursor: pointer;
|
|
5404
|
+
user-select: none;
|
|
5405
|
+
}
|
|
5406
|
+
.link-popover-check input[type=checkbox] {
|
|
5407
|
+
accent-color: var(--accent-color);
|
|
5408
|
+
width: 0.875rem;
|
|
5409
|
+
height: 0.875rem;
|
|
5410
|
+
cursor: pointer;
|
|
5411
|
+
}
|
|
5412
|
+
|
|
5413
|
+
.link-popover-btns {
|
|
5414
|
+
display: flex;
|
|
5415
|
+
gap: 0.3rem;
|
|
5416
|
+
}
|
|
5417
|
+
.link-popover-btns button {
|
|
5418
|
+
height: 1.875rem;
|
|
5419
|
+
padding: 0 0.75rem;
|
|
5420
|
+
border: none;
|
|
5421
|
+
border-radius: 0.24rem;
|
|
5422
|
+
font-size: 0.78rem;
|
|
5423
|
+
font-weight: 600;
|
|
5424
|
+
cursor: pointer;
|
|
5425
|
+
transition: background 0.1s ease, color 0.1s ease;
|
|
5426
|
+
}
|
|
5427
|
+
.link-popover-btns button[hidden] {
|
|
5428
|
+
display: none;
|
|
5429
|
+
}
|
|
5430
|
+
|
|
5431
|
+
.link-popover-cancel {
|
|
5432
|
+
background: var(--divider);
|
|
5433
|
+
color: var(--secondary-text);
|
|
5434
|
+
}
|
|
5435
|
+
.link-popover-cancel:hover {
|
|
5436
|
+
background: color-mix(in srgb, var(--divider) 70%, var(--primary-text) 30%);
|
|
5437
|
+
color: var(--primary-text);
|
|
5438
|
+
}
|
|
5439
|
+
|
|
5440
|
+
.link-popover-confirm {
|
|
5441
|
+
background: var(--accent-color);
|
|
5442
|
+
color: #fff;
|
|
5443
|
+
}
|
|
5444
|
+
.link-popover-confirm:hover {
|
|
5445
|
+
opacity: 0.88;
|
|
5446
|
+
}
|
|
5447
|
+
|
|
5448
|
+
.link-popover-remove {
|
|
5449
|
+
background: color-mix(in srgb, var(--error) 10%, transparent);
|
|
5450
|
+
color: var(--error);
|
|
5451
|
+
border: 1px solid color-mix(in srgb, var(--error) 30%, transparent) !important;
|
|
5452
|
+
}
|
|
5453
|
+
.link-popover-remove:hover {
|
|
5454
|
+
background: color-mix(in srgb, var(--error) 18%, transparent);
|
|
5455
|
+
}
|
|
5456
|
+
|
|
5457
|
+
@media screen and (max-width: 480px) {
|
|
5458
|
+
.editor-toolbar button {
|
|
5459
|
+
width: 2.125rem;
|
|
5460
|
+
height: 2.125rem;
|
|
5461
|
+
}
|
|
5462
|
+
.editor-footer {
|
|
5463
|
+
padding: 0.3rem 0.625rem;
|
|
5464
|
+
}
|
|
5465
|
+
}
|
|
5466
|
+
.bottom-sheet-wrapper {
|
|
5467
|
+
position: fixed;
|
|
5468
|
+
inset: 0;
|
|
5469
|
+
z-index: 999;
|
|
5470
|
+
pointer-events: none;
|
|
5471
|
+
}
|
|
5472
|
+
.bottom-sheet-wrapper.is-visible {
|
|
5473
|
+
pointer-events: auto;
|
|
5474
|
+
}
|
|
5475
|
+
.bottom-sheet-wrapper.is-visible .bottom-sheet-backdrop {
|
|
5476
|
+
opacity: 1;
|
|
5477
|
+
}
|
|
5478
|
+
.bottom-sheet-wrapper.is-visible .bottom-sheet {
|
|
5479
|
+
transform: translateY(0);
|
|
5480
|
+
}
|
|
5481
|
+
|
|
5482
|
+
.bottom-sheet-backdrop {
|
|
5483
|
+
position: absolute;
|
|
5484
|
+
inset: 0;
|
|
5485
|
+
background: rgba(0, 0, 0, 0.5);
|
|
5486
|
+
backdrop-filter: blur(6px);
|
|
5487
|
+
-webkit-backdrop-filter: blur(6px);
|
|
5488
|
+
opacity: 0;
|
|
5489
|
+
transition: opacity 0.32s ease;
|
|
5490
|
+
}
|
|
5491
|
+
|
|
5492
|
+
.bottom-sheet {
|
|
5493
|
+
position: fixed;
|
|
5494
|
+
bottom: 0;
|
|
5495
|
+
left: 0;
|
|
5496
|
+
right: 0;
|
|
5497
|
+
z-index: 1;
|
|
5498
|
+
background: var(--background);
|
|
5499
|
+
border: 1px solid var(--divider);
|
|
5500
|
+
border-bottom: none;
|
|
5501
|
+
border-radius: 1.6rem 1.6rem 0 0;
|
|
5502
|
+
box-shadow: 0 -2px 0 rgba(255, 255, 255, 0.06) inset, 0 -8px 40px rgba(0, 0, 0, 0.18), 0 -2px 12px rgba(0, 0, 0, 0.1), 0 -1px 3px rgba(0, 0, 0, 0.08);
|
|
5503
|
+
max-height: 90vh;
|
|
5504
|
+
overflow: hidden;
|
|
5505
|
+
display: flex;
|
|
5506
|
+
flex-direction: column;
|
|
5507
|
+
transform: translateY(100%);
|
|
5508
|
+
transition: transform 0.42s cubic-bezier(0.32, 0.72, 0, 1);
|
|
5509
|
+
will-change: transform;
|
|
5510
|
+
overscroll-behavior: contain;
|
|
5511
|
+
}
|
|
5512
|
+
.bottom-sheet.snap-half {
|
|
5513
|
+
height: 50vh;
|
|
5514
|
+
}
|
|
5515
|
+
.bottom-sheet.snap-full {
|
|
5516
|
+
height: calc(100dvh - env(safe-area-inset-top) - 1rem);
|
|
5517
|
+
max-height: none;
|
|
5518
|
+
}
|
|
5519
|
+
|
|
5520
|
+
.bottom-sheet-handle {
|
|
5521
|
+
flex-shrink: 0;
|
|
5522
|
+
display: flex;
|
|
5523
|
+
align-items: center;
|
|
5524
|
+
justify-content: center;
|
|
5525
|
+
padding: 0.75rem 1rem 0.5rem;
|
|
5526
|
+
cursor: grab;
|
|
5527
|
+
touch-action: none;
|
|
5528
|
+
user-select: none;
|
|
5529
|
+
}
|
|
5530
|
+
.bottom-sheet-handle:active {
|
|
5531
|
+
cursor: grabbing;
|
|
5532
|
+
}
|
|
5533
|
+
.bottom-sheet-handle::after {
|
|
5534
|
+
content: "";
|
|
5535
|
+
display: block;
|
|
5536
|
+
width: 40px;
|
|
5537
|
+
height: 4px;
|
|
5538
|
+
border-radius: 2px;
|
|
5539
|
+
background: var(--divider);
|
|
5540
|
+
transition: background 0.15s ease, width 0.15s ease;
|
|
5541
|
+
}
|
|
5542
|
+
.bottom-sheet-handle:hover::after, .bottom-sheet-handle:active::after {
|
|
5543
|
+
background: var(--secondary-text);
|
|
5544
|
+
width: 48px;
|
|
5545
|
+
}
|
|
5546
|
+
|
|
5547
|
+
.bottom-sheet-body {
|
|
5548
|
+
flex: 1;
|
|
5549
|
+
overflow-x: hidden;
|
|
5550
|
+
overflow-y: auto;
|
|
5551
|
+
overscroll-behavior: contain;
|
|
5552
|
+
padding: 0 1rem 1rem;
|
|
5553
|
+
padding-bottom: calc(1rem + env(safe-area-inset-bottom));
|
|
5554
|
+
mask-image: linear-gradient(to bottom, black calc(100% - 2rem), transparent 100%);
|
|
5555
|
+
-webkit-mask-image: linear-gradient(to bottom, black calc(100% - 2rem), transparent 100%);
|
|
5556
|
+
}
|
|
5557
|
+
.bottom-sheet-body:not(.is-scrollable) {
|
|
5558
|
+
mask-image: none;
|
|
5559
|
+
-webkit-mask-image: none;
|
|
5560
|
+
}
|
|
5561
|
+
|
|
5562
|
+
.bottom-sheet-header {
|
|
5563
|
+
flex-shrink: 0;
|
|
5564
|
+
display: flex;
|
|
5565
|
+
align-items: center;
|
|
5566
|
+
gap: 0.5rem;
|
|
5567
|
+
padding: 0.25rem 1rem 0.75rem;
|
|
5568
|
+
}
|
|
5569
|
+
.bottom-sheet-header.has-divider {
|
|
5570
|
+
border-bottom: 1px solid var(--divider);
|
|
5571
|
+
margin-bottom: 0.5rem;
|
|
5572
|
+
padding-bottom: 0.75rem;
|
|
5573
|
+
}
|
|
5574
|
+
.bottom-sheet-header .title {
|
|
5575
|
+
flex: 1;
|
|
5576
|
+
font-weight: 600;
|
|
5577
|
+
font-size: 1rem;
|
|
5578
|
+
color: var(--primary-text);
|
|
5579
|
+
line-height: 1.3;
|
|
5580
|
+
}
|
|
5581
|
+
.bottom-sheet-header .subtitle {
|
|
5582
|
+
flex: 1;
|
|
5583
|
+
font-size: 0.8125rem;
|
|
5584
|
+
color: var(--secondary-text);
|
|
5585
|
+
margin-top: 0.125rem;
|
|
5586
|
+
}
|
|
5587
|
+
.bottom-sheet-header .close {
|
|
5588
|
+
cursor: pointer;
|
|
5589
|
+
color: var(--secondary-text);
|
|
5590
|
+
transition: color 0.15s ease;
|
|
5591
|
+
}
|
|
5592
|
+
.bottom-sheet-header .close:hover {
|
|
5593
|
+
color: var(--primary-text);
|
|
5594
|
+
}
|
|
5595
|
+
|
|
5596
|
+
.bottom-sheet-footer {
|
|
5597
|
+
flex-shrink: 0;
|
|
5598
|
+
border-top: 1px solid var(--divider);
|
|
5599
|
+
padding: 1rem;
|
|
5600
|
+
padding-bottom: calc(1rem + env(safe-area-inset-bottom));
|
|
5601
|
+
display: flex;
|
|
5602
|
+
justify-content: flex-end;
|
|
5603
|
+
}
|
|
5604
|
+
.bottom-sheet-footer .buttons {
|
|
5605
|
+
display: flex;
|
|
5606
|
+
gap: 0.5rem;
|
|
5607
|
+
}
|
|
5608
|
+
|
|
5609
|
+
@media (min-width: 768px) {
|
|
5610
|
+
.bottom-sheet {
|
|
5611
|
+
left: 50%;
|
|
5612
|
+
right: auto;
|
|
5613
|
+
width: 480px;
|
|
5614
|
+
bottom: 1rem;
|
|
5615
|
+
border: 1px solid var(--divider);
|
|
5616
|
+
border-radius: 1.6rem;
|
|
5617
|
+
transform: translateX(-50%) translateY(calc(100% + 1rem));
|
|
5618
|
+
max-height: 80vh;
|
|
5619
|
+
}
|
|
5620
|
+
.bottom-sheet .bottom-sheet-footer {
|
|
5621
|
+
border-radius: 0 0 1.6rem 1.6rem;
|
|
5622
|
+
}
|
|
5623
|
+
.bottom-sheet-wrapper.is-visible .bottom-sheet {
|
|
5624
|
+
transform: translateX(-50%) translateY(0);
|
|
5625
|
+
}
|
|
5626
|
+
}
|
|
5627
|
+
.context-menu {
|
|
5628
|
+
position: fixed;
|
|
5629
|
+
z-index: 9999;
|
|
5630
|
+
min-width: 200px;
|
|
5631
|
+
padding: 0.375rem 0;
|
|
5632
|
+
background: var(--background);
|
|
5633
|
+
border: 1px solid var(--divider);
|
|
5634
|
+
border-radius: 1rem;
|
|
5635
|
+
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);
|
|
5636
|
+
list-style: none;
|
|
5637
|
+
margin: 0;
|
|
5638
|
+
opacity: 0;
|
|
5639
|
+
transform: scale(0.94);
|
|
5640
|
+
transform-origin: top left;
|
|
5641
|
+
transition: opacity 0.14s ease, transform 0.14s ease;
|
|
5642
|
+
pointer-events: none;
|
|
5643
|
+
}
|
|
5644
|
+
.context-menu.is-visible {
|
|
5645
|
+
opacity: 1;
|
|
5646
|
+
transform: scale(1);
|
|
5647
|
+
pointer-events: auto;
|
|
5648
|
+
}
|
|
5649
|
+
|
|
5650
|
+
.context-menu-item {
|
|
5651
|
+
display: flex;
|
|
5652
|
+
align-items: center;
|
|
5653
|
+
gap: 0.55rem;
|
|
5654
|
+
padding: 0.45rem 0.75rem;
|
|
5655
|
+
font-size: 0.875rem;
|
|
5656
|
+
color: var(--primary-text);
|
|
5657
|
+
cursor: pointer;
|
|
5658
|
+
user-select: none;
|
|
5659
|
+
white-space: nowrap;
|
|
5660
|
+
transition: background 0.1s ease, color 0.1s ease;
|
|
5661
|
+
position: relative;
|
|
5662
|
+
}
|
|
5663
|
+
.context-menu-item .context-menu-icon {
|
|
5664
|
+
flex-shrink: 0;
|
|
5665
|
+
width: 1rem;
|
|
5666
|
+
height: 1rem;
|
|
5667
|
+
display: flex;
|
|
5668
|
+
align-items: center;
|
|
5669
|
+
justify-content: center;
|
|
5670
|
+
color: var(--secondary-text);
|
|
5671
|
+
transition: color 0.1s ease;
|
|
5672
|
+
}
|
|
5673
|
+
.context-menu-item .context-menu-icon .icon-svg {
|
|
5674
|
+
width: 1rem;
|
|
5675
|
+
height: 1rem;
|
|
5676
|
+
}
|
|
5677
|
+
.context-menu-item .context-menu-label {
|
|
5678
|
+
flex: 1;
|
|
5679
|
+
}
|
|
5680
|
+
.context-menu-item .context-menu-shortcut {
|
|
5681
|
+
padding-left: 1.5rem;
|
|
5682
|
+
font-size: 0.75rem;
|
|
5683
|
+
color: var(--secondary-text);
|
|
5684
|
+
opacity: 0.6;
|
|
5685
|
+
letter-spacing: 0.02em;
|
|
5686
|
+
flex-shrink: 0;
|
|
5687
|
+
}
|
|
5688
|
+
.context-menu-item .context-menu-chevron {
|
|
5689
|
+
flex-shrink: 0;
|
|
5690
|
+
width: 0.35rem;
|
|
5691
|
+
height: 0.35rem;
|
|
5692
|
+
border-right: 1.5px solid currentColor;
|
|
5693
|
+
border-bottom: 1.5px solid currentColor;
|
|
5694
|
+
transform: rotate(-45deg);
|
|
5695
|
+
opacity: 0.5;
|
|
5696
|
+
margin-left: 0.25rem;
|
|
5697
|
+
color: var(--secondary-text);
|
|
5698
|
+
}
|
|
5699
|
+
.context-menu-item:hover, .context-menu-item.is-focused {
|
|
5700
|
+
background: var(--secondary-background);
|
|
5701
|
+
color: var(--accent-color);
|
|
5702
|
+
}
|
|
5703
|
+
.context-menu-item:hover .context-menu-icon, .context-menu-item.is-focused .context-menu-icon {
|
|
5704
|
+
color: var(--accent-color);
|
|
5705
|
+
}
|
|
5706
|
+
.context-menu-item:hover .context-menu-chevron, .context-menu-item.is-focused .context-menu-chevron {
|
|
5707
|
+
color: var(--accent-color);
|
|
5708
|
+
opacity: 0.8;
|
|
5709
|
+
}
|
|
5710
|
+
.context-menu-item.is-active {
|
|
5711
|
+
background: var(--secondary-background);
|
|
5712
|
+
color: var(--accent-color);
|
|
5713
|
+
}
|
|
5714
|
+
.context-menu-item.is-active .context-menu-icon {
|
|
5715
|
+
color: var(--accent-color);
|
|
5716
|
+
}
|
|
5717
|
+
.context-menu-item.is-active .context-menu-chevron {
|
|
5718
|
+
color: var(--accent-color);
|
|
5719
|
+
opacity: 0.8;
|
|
5720
|
+
}
|
|
5721
|
+
.context-menu-item.is-destructive {
|
|
5722
|
+
color: var(--error);
|
|
5723
|
+
}
|
|
5724
|
+
.context-menu-item.is-destructive .context-menu-icon {
|
|
5725
|
+
color: var(--error);
|
|
5726
|
+
}
|
|
5727
|
+
.context-menu-item.is-destructive:hover, .context-menu-item.is-destructive.is-focused {
|
|
5728
|
+
background: color-mix(in srgb, var(--error) 8%, var(--background));
|
|
5729
|
+
color: var(--error);
|
|
5730
|
+
}
|
|
5731
|
+
.context-menu-item.is-destructive:hover .context-menu-icon, .context-menu-item.is-destructive.is-focused .context-menu-icon {
|
|
5732
|
+
color: var(--error);
|
|
5733
|
+
}
|
|
5734
|
+
.context-menu-item.is-disabled {
|
|
5735
|
+
opacity: 0.38;
|
|
5736
|
+
cursor: default;
|
|
5737
|
+
pointer-events: none;
|
|
5738
|
+
}
|
|
5739
|
+
.context-menu-item.has-submenu > .context-menu {
|
|
5740
|
+
position: absolute;
|
|
5741
|
+
top: -0.375rem;
|
|
5742
|
+
left: 100%;
|
|
5743
|
+
margin-left: 4px;
|
|
5744
|
+
transform-origin: top left;
|
|
5745
|
+
}
|
|
5746
|
+
.context-menu-item.has-submenu.is-active > .context-menu {
|
|
5747
|
+
opacity: 1;
|
|
5748
|
+
transform: scale(1);
|
|
5749
|
+
pointer-events: auto;
|
|
5750
|
+
}
|
|
5751
|
+
.context-menu-item.has-submenu.submenu-flip > .context-menu {
|
|
5752
|
+
left: auto;
|
|
5753
|
+
right: 100%;
|
|
5754
|
+
margin-left: 0;
|
|
5755
|
+
margin-right: 4px;
|
|
5756
|
+
transform-origin: top right;
|
|
5757
|
+
}
|
|
5758
|
+
|
|
5759
|
+
.context-menu-separator {
|
|
5760
|
+
height: 1px;
|
|
5761
|
+
background: var(--divider);
|
|
5762
|
+
margin: 0.375rem 0;
|
|
5763
|
+
}
|
|
5764
|
+
|
|
5765
|
+
.context-menu-group-label {
|
|
5766
|
+
padding: 0.3rem 0.75rem;
|
|
5767
|
+
font-size: 0.6875rem;
|
|
5768
|
+
font-weight: 600;
|
|
5769
|
+
text-transform: uppercase;
|
|
5770
|
+
letter-spacing: 0.07em;
|
|
5771
|
+
color: var(--secondary-text);
|
|
5772
|
+
opacity: 0.55;
|
|
5773
|
+
user-select: none;
|
|
5774
|
+
}
|
|
5775
|
+
|
|
4351
5776
|
/*# sourceMappingURL=style.css.map */
|