@fungi.computer/caps 0.3.1 → 0.5.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 +9 -6
- package/dist/blocks/composer.d.ts +18 -13
- package/dist/blocks/composer.js +10 -11
- package/dist/blocks/faq-chat.js +4 -4
- package/dist/blocks/status-tray.d.ts +8 -2
- package/dist/blocks/status-tray.js +26 -10
- package/dist/components/dropdown-menu.js +4 -4
- package/dist/components/field.d.ts +20 -0
- package/dist/components/field.js +8 -8
- package/dist/components/send-action.d.ts +9 -8
- package/dist/components/send-action.js +10 -8
- package/dist/form-fields.d.ts +3 -1
- package/dist/form-fields.js +25 -18
- package/dist/lib/format-money.d.ts +8 -2
- package/dist/lib/format-money.js +10 -7
- package/dist/schema-form.d.ts +13 -1
- package/dist/schema-form.js +46 -13
- package/dist/styles.css +353 -78
- package/docs/api/blocks/composer.md +10 -7
- package/docs/api/blocks/release-tag.md +7 -7
- package/docs/api/blocks/status-tray.md +11 -10
- package/docs/api/components/field.md +12 -9
- package/docs/api/components/send-action.md +25 -6
- package/docs/api/form.md +48 -8
- package/docs/api/lib/format-money.md +8 -6
- package/package.json +3 -3
- package/src/app-status-bar.css +21 -0
- package/src/styles.css +451 -114
package/dist/styles.css
CHANGED
|
@@ -4304,6 +4304,9 @@
|
|
|
4304
4304
|
.end {
|
|
4305
4305
|
inset-inline-end: var(--spacing);
|
|
4306
4306
|
}
|
|
4307
|
+
.top-\(--resize-pane\) {
|
|
4308
|
+
top: var(--resize-pane);
|
|
4309
|
+
}
|
|
4307
4310
|
.top-0 {
|
|
4308
4311
|
top: calc(var(--spacing) * 0);
|
|
4309
4312
|
}
|
|
@@ -4319,6 +4322,9 @@
|
|
|
4319
4322
|
.bottom-4 {
|
|
4320
4323
|
bottom: calc(var(--spacing) * 4);
|
|
4321
4324
|
}
|
|
4325
|
+
.left-\(--resize-pane\) {
|
|
4326
|
+
left: var(--resize-pane);
|
|
4327
|
+
}
|
|
4322
4328
|
.left-0 {
|
|
4323
4329
|
left: calc(var(--spacing) * 0);
|
|
4324
4330
|
}
|
|
@@ -6166,9 +6172,6 @@
|
|
|
6166
6172
|
margin-block-end: calc(var(--spacing-sm) * calc(1 - var(--tw-space-y-reverse)));
|
|
6167
6173
|
}
|
|
6168
6174
|
}
|
|
6169
|
-
.self-stretch {
|
|
6170
|
-
align-self: stretch;
|
|
6171
|
-
}
|
|
6172
6175
|
.truncate {
|
|
6173
6176
|
overflow: hidden;
|
|
6174
6177
|
text-overflow: ellipsis;
|
|
@@ -6180,9 +6183,6 @@
|
|
|
6180
6183
|
.overflow-hidden {
|
|
6181
6184
|
overflow: hidden;
|
|
6182
6185
|
}
|
|
6183
|
-
.overflow-visible {
|
|
6184
|
-
overflow: visible;
|
|
6185
|
-
}
|
|
6186
6186
|
.overflow-y-auto {
|
|
6187
6187
|
overflow-y: auto;
|
|
6188
6188
|
}
|
|
@@ -6225,10 +6225,6 @@
|
|
|
6225
6225
|
border-bottom-style: var(--tw-border-style);
|
|
6226
6226
|
border-bottom-width: 1px;
|
|
6227
6227
|
}
|
|
6228
|
-
.border-none {
|
|
6229
|
-
--tw-border-style: none;
|
|
6230
|
-
border-style: none;
|
|
6231
|
-
}
|
|
6232
6228
|
.badge-outline {
|
|
6233
6229
|
@layer daisyui.l1.l2 {
|
|
6234
6230
|
color: var(--badge-color);
|
|
@@ -6370,9 +6366,6 @@
|
|
|
6370
6366
|
.p-2xl {
|
|
6371
6367
|
padding: var(--spacing-2xl);
|
|
6372
6368
|
}
|
|
6373
|
-
.p-2xs {
|
|
6374
|
-
padding: var(--spacing-2xs);
|
|
6375
|
-
}
|
|
6376
6369
|
.p-4 {
|
|
6377
6370
|
padding: calc(var(--spacing) * 4);
|
|
6378
6371
|
}
|
|
@@ -8740,6 +8733,20 @@
|
|
|
8740
8733
|
white-space: nowrap;
|
|
8741
8734
|
}
|
|
8742
8735
|
}
|
|
8736
|
+
.caps-app-status-bar .badge {
|
|
8737
|
+
height: auto;
|
|
8738
|
+
min-width: 0;
|
|
8739
|
+
padding: 0;
|
|
8740
|
+
border: 0;
|
|
8741
|
+
background: none;
|
|
8742
|
+
color: var(--stipe-fg-muted);
|
|
8743
|
+
font-size: 0.625rem;
|
|
8744
|
+
font-weight: 600;
|
|
8745
|
+
line-height: 1;
|
|
8746
|
+
}
|
|
8747
|
+
.caps-app-status-bar .badge-warning {
|
|
8748
|
+
color: var(--color-warning);
|
|
8749
|
+
}
|
|
8743
8750
|
.caps-status-bar-picker-list {
|
|
8744
8751
|
min-width: min(18rem, calc(100vw - 1.5rem));
|
|
8745
8752
|
}
|
|
@@ -10990,17 +10997,61 @@
|
|
|
10990
10997
|
color: var(--color-base-content);
|
|
10991
10998
|
font-size: 0.875rem;
|
|
10992
10999
|
}
|
|
10993
|
-
.caps-composer
|
|
10994
|
-
|
|
10995
|
-
|
|
10996
|
-
|
|
10997
|
-
|
|
10998
|
-
|
|
10999
|
-
|
|
11000
|
-
|
|
11001
|
-
|
|
11002
|
-
|
|
11003
|
-
|
|
11000
|
+
.caps-composer {
|
|
11001
|
+
display: flex;
|
|
11002
|
+
min-width: 0;
|
|
11003
|
+
flex-direction: column;
|
|
11004
|
+
gap: var(--spacing-xs);
|
|
11005
|
+
}
|
|
11006
|
+
.caps-composer-attachments {
|
|
11007
|
+
display: flex;
|
|
11008
|
+
flex-wrap: wrap;
|
|
11009
|
+
gap: var(--spacing-xs);
|
|
11010
|
+
}
|
|
11011
|
+
.caps-composer-input {
|
|
11012
|
+
position: relative;
|
|
11013
|
+
min-width: 0;
|
|
11014
|
+
}
|
|
11015
|
+
.caps-composer-input :is(textarea, input), .caps-composer-input :is(textarea, input):focus, .caps-composer-input :is(textarea, input):focus-visible {
|
|
11016
|
+
width: 100%;
|
|
11017
|
+
border: 0;
|
|
11018
|
+
border-radius: 0;
|
|
11019
|
+
background: transparent;
|
|
11020
|
+
box-shadow: none;
|
|
11021
|
+
outline: none;
|
|
11022
|
+
padding-inline: 0;
|
|
11023
|
+
}
|
|
11024
|
+
.caps-composer-bar {
|
|
11025
|
+
display: flex;
|
|
11026
|
+
min-width: 0;
|
|
11027
|
+
align-items: center;
|
|
11028
|
+
gap: var(--spacing-xs);
|
|
11029
|
+
}
|
|
11030
|
+
.caps-composer-toolbar {
|
|
11031
|
+
display: flex;
|
|
11032
|
+
min-width: 0;
|
|
11033
|
+
flex: 1;
|
|
11034
|
+
align-items: center;
|
|
11035
|
+
gap: var(--spacing-xs);
|
|
11036
|
+
}
|
|
11037
|
+
.caps-composer-toolbar > .caps-status-tray {
|
|
11038
|
+
flex: 1;
|
|
11039
|
+
min-width: 0;
|
|
11040
|
+
--caps-status-tray-row-wrap: wrap;
|
|
11041
|
+
--caps-status-tray-chips-display: contents;
|
|
11042
|
+
--caps-status-tray-key-height: calc(var(--size-field) * 8);
|
|
11043
|
+
--caps-status-tray-chip-height: var(--caps-status-tray-key-height);
|
|
11044
|
+
--caps-status-tray-width: 28rem;
|
|
11045
|
+
--caps-keycap-width: auto;
|
|
11046
|
+
--caps-keycap-height: var(--caps-status-tray-key-height);
|
|
11047
|
+
}
|
|
11048
|
+
.caps-composer-toolbar > .caps-status-tray .caps-status-tray-row :is(.caps-keycap-button, .caps-status-tray-chip, .caps-select) {
|
|
11049
|
+
height: var(--caps-status-tray-key-height);
|
|
11050
|
+
min-height: var(--caps-status-tray-key-height);
|
|
11051
|
+
}
|
|
11052
|
+
.caps-composer-toolbar > .caps-status-tray .caps-status-tray-label {
|
|
11053
|
+
display: flex;
|
|
11054
|
+
align-items: center;
|
|
11004
11055
|
}
|
|
11005
11056
|
.caps-alert[data-tone="error"] h3 {
|
|
11006
11057
|
color: var(--color-error);
|
|
@@ -11448,29 +11499,23 @@
|
|
|
11448
11499
|
}
|
|
11449
11500
|
.caps-resize-handle {
|
|
11450
11501
|
display: grid;
|
|
11451
|
-
width:
|
|
11452
|
-
height:
|
|
11502
|
+
width: 44px;
|
|
11503
|
+
height: 24px;
|
|
11504
|
+
grid-template-columns: minmax(0, 1fr);
|
|
11453
11505
|
place-items: center;
|
|
11454
|
-
border:
|
|
11506
|
+
border: 0;
|
|
11455
11507
|
border-radius: var(--radius-field);
|
|
11456
|
-
background:
|
|
11508
|
+
background: transparent;
|
|
11457
11509
|
cursor: row-resize;
|
|
11458
11510
|
touch-action: none;
|
|
11459
11511
|
user-select: none;
|
|
11460
11512
|
}
|
|
11461
11513
|
.caps-resize-handle[aria-orientation="vertical"] {
|
|
11462
|
-
width:
|
|
11463
|
-
height:
|
|
11514
|
+
width: 24px;
|
|
11515
|
+
height: 44px;
|
|
11464
11516
|
cursor: col-resize;
|
|
11465
11517
|
}
|
|
11466
|
-
.caps-resize-handle
|
|
11467
|
-
border-radius: var(--radius-box) var(--radius-box) var(--radius-field) var(--radius-field);
|
|
11468
|
-
box-shadow: inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.55)), 0 calc(var(--depth) * 1px) calc(var(--depth) * 2px) var(--color-base-content);
|
|
11469
|
-
@supports (color: color-mix(in lab, red, red)) {
|
|
11470
|
-
box-shadow: inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.55)), 0 calc(var(--depth) * 1px) calc(var(--depth) * 2px) color-mix( in oklab, var(--color-base-content) calc(var(--depth) * 12%), transparent );
|
|
11471
|
-
}
|
|
11472
|
-
}
|
|
11473
|
-
.caps-resize-handle:is(:hover, :focus-visible) {
|
|
11518
|
+
.caps-resize-handle:focus-visible {
|
|
11474
11519
|
outline: 2px solid var(--color-info);
|
|
11475
11520
|
outline-offset: 2px;
|
|
11476
11521
|
}
|
|
@@ -11479,29 +11524,45 @@
|
|
|
11479
11524
|
}
|
|
11480
11525
|
.caps-resize-grip {
|
|
11481
11526
|
position: relative;
|
|
11482
|
-
width:
|
|
11483
|
-
height:
|
|
11527
|
+
width: 28px;
|
|
11528
|
+
height: 6px;
|
|
11484
11529
|
border-radius: var(--radius-button);
|
|
11485
|
-
background-color: var(--color-
|
|
11486
|
-
|
|
11487
|
-
box-shadow: var( --stipe-shadow-raised, inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.6)), inset 0 -2px 0 var(--color-neutral), inset 0 0 0 1px var(--color-neutral) );
|
|
11530
|
+
background-color: var(--color-base-200);
|
|
11531
|
+
box-shadow: 0 0 0 1px var(--stipe-linework), inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.18)), 0 1px 0 var(--color-base-200);
|
|
11488
11532
|
@supports (color: color-mix(in lab, red, red)) {
|
|
11489
|
-
box-shadow: var(
|
|
11533
|
+
box-shadow: 0 0 0 1px color-mix(in oklab, var(--stipe-linework) 80%, var(--color-base-200)), inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.18)), 0 1px 0 color-mix( in oklab, var(--color-base-200), var(--color-base-content) 14% );
|
|
11490
11534
|
}
|
|
11491
11535
|
}
|
|
11536
|
+
.caps-resize-handle:hover .caps-resize-grip {
|
|
11537
|
+
background-color: var(--color-base-300);
|
|
11538
|
+
}
|
|
11492
11539
|
.caps-resize-grip::after {
|
|
11493
11540
|
content: "";
|
|
11494
11541
|
position: absolute;
|
|
11495
|
-
|
|
11542
|
+
left: 50%;
|
|
11496
11543
|
top: 50%;
|
|
11544
|
+
width: 2px;
|
|
11497
11545
|
height: 2px;
|
|
11498
|
-
transform:
|
|
11499
|
-
border-radius: var(--radius-
|
|
11500
|
-
background:
|
|
11501
|
-
|
|
11546
|
+
transform: translate(-50%, -50%);
|
|
11547
|
+
border-radius: var(--radius-selector);
|
|
11548
|
+
background: var(--color-base-content);
|
|
11549
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
11550
|
+
background: color-mix(in oklab, var(--color-base-content) 45%, transparent);
|
|
11551
|
+
}
|
|
11552
|
+
box-shadow: -5px 0 0 var(--color-base-content), 5px 0 0 var(--color-base-content);
|
|
11553
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
11554
|
+
box-shadow: -5px 0 0 color-mix(in oklab, var(--color-base-content) 45%, transparent), 5px 0 0 color-mix(in oklab, var(--color-base-content) 45%, transparent);
|
|
11555
|
+
}
|
|
11502
11556
|
}
|
|
11503
11557
|
.caps-resize-handle[aria-orientation="vertical"] .caps-resize-grip {
|
|
11504
|
-
|
|
11558
|
+
width: 6px;
|
|
11559
|
+
height: 28px;
|
|
11560
|
+
}
|
|
11561
|
+
.caps-resize-handle[aria-orientation="vertical"] .caps-resize-grip::after {
|
|
11562
|
+
box-shadow: 0 -5px 0 var(--color-base-content), 0 5px 0 var(--color-base-content);
|
|
11563
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
11564
|
+
box-shadow: 0 -5px 0 color-mix(in oklab, var(--color-base-content) 45%, transparent), 0 5px 0 color-mix(in oklab, var(--color-base-content) 45%, transparent);
|
|
11565
|
+
}
|
|
11505
11566
|
}
|
|
11506
11567
|
@media (prefers-reduced-motion: reduce) {
|
|
11507
11568
|
.caps-scroll-thumb-surface {
|
|
@@ -11509,6 +11570,10 @@
|
|
|
11509
11570
|
}
|
|
11510
11571
|
}
|
|
11511
11572
|
@media (forced-colors: active) {
|
|
11573
|
+
.caps-resize-grip {
|
|
11574
|
+
border: 1px solid ButtonText;
|
|
11575
|
+
box-shadow: none;
|
|
11576
|
+
}
|
|
11512
11577
|
.caps-scroll-track {
|
|
11513
11578
|
background: Canvas;
|
|
11514
11579
|
box-shadow: none;
|
|
@@ -12643,6 +12708,13 @@
|
|
|
12643
12708
|
padding: var(--spacing-md);
|
|
12644
12709
|
text-align: center;
|
|
12645
12710
|
}
|
|
12711
|
+
.caps-send-action {
|
|
12712
|
+
--caps-keycap-width: auto;
|
|
12713
|
+
--caps-keycap-justify: center;
|
|
12714
|
+
--caps-keycap-padding: 0;
|
|
12715
|
+
--caps-keycap-min-width: var(--caps-keycap-height, 2.5rem);
|
|
12716
|
+
flex: none;
|
|
12717
|
+
}
|
|
12646
12718
|
.caps-send-glyph {
|
|
12647
12719
|
display: inline-grid;
|
|
12648
12720
|
place-items: center;
|
|
@@ -12983,6 +13055,136 @@
|
|
|
12983
13055
|
.caps-form-footer .caps-field-error {
|
|
12984
13056
|
padding-bottom: var(--spacing-sm);
|
|
12985
13057
|
}
|
|
13058
|
+
:is(.caps-form, .caps-form-section, .caps-fieldset)[data-layout="columns"] {
|
|
13059
|
+
--caps-form-label-col: 9rem;
|
|
13060
|
+
}
|
|
13061
|
+
.caps-form[data-layout="columns"] :is(.caps-form-body, .caps-form-section-fields) {
|
|
13062
|
+
gap: var(--spacing-sm);
|
|
13063
|
+
}
|
|
13064
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) {
|
|
13065
|
+
display: grid;
|
|
13066
|
+
grid-template-columns: var(--caps-form-label-col) minmax(0, 1fr);
|
|
13067
|
+
column-gap: var(--spacing-md);
|
|
13068
|
+
row-gap: var(--spacing-2xs);
|
|
13069
|
+
align-items: center;
|
|
13070
|
+
justify-content: stretch;
|
|
13071
|
+
--caps-field-control-width: 100%;
|
|
13072
|
+
}
|
|
13073
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-field-copy {
|
|
13074
|
+
display: contents;
|
|
13075
|
+
}
|
|
13076
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-field-copy > label {
|
|
13077
|
+
grid-column: 1;
|
|
13078
|
+
grid-row: 1;
|
|
13079
|
+
min-width: 0;
|
|
13080
|
+
overflow: hidden;
|
|
13081
|
+
text-overflow: ellipsis;
|
|
13082
|
+
white-space: nowrap;
|
|
13083
|
+
}
|
|
13084
|
+
.caps-fieldset[data-layout="columns"] > .caps-fieldset-legend {
|
|
13085
|
+
min-width: 0;
|
|
13086
|
+
overflow: hidden;
|
|
13087
|
+
text-overflow: ellipsis;
|
|
13088
|
+
white-space: nowrap;
|
|
13089
|
+
}
|
|
13090
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-field-copy > .caps-field-description {
|
|
13091
|
+
grid-column: 2;
|
|
13092
|
+
grid-row: 2;
|
|
13093
|
+
}
|
|
13094
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > :not(.caps-field-copy, .caps-field-lead, .caps-field-error-reveal) {
|
|
13095
|
+
grid-column: 2;
|
|
13096
|
+
grid-row: 1;
|
|
13097
|
+
width: 100%;
|
|
13098
|
+
max-width: 30rem;
|
|
13099
|
+
}
|
|
13100
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-switch {
|
|
13101
|
+
width: 40px;
|
|
13102
|
+
justify-self: start;
|
|
13103
|
+
}
|
|
13104
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-checkbox {
|
|
13105
|
+
width: 24px;
|
|
13106
|
+
justify-self: start;
|
|
13107
|
+
}
|
|
13108
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field[data-orientation="vertical"] > .caps-field-lead {
|
|
13109
|
+
grid-column: 1;
|
|
13110
|
+
grid-row: 1;
|
|
13111
|
+
margin: 0;
|
|
13112
|
+
}
|
|
13113
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field[data-orientation="vertical"] > .caps-field-error-reveal {
|
|
13114
|
+
grid-column: 2;
|
|
13115
|
+
grid-row: 2;
|
|
13116
|
+
}
|
|
13117
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field[data-orientation="horizontal"] > .caps-field-row > .caps-field-lead {
|
|
13118
|
+
grid-column: 1;
|
|
13119
|
+
grid-row: 1;
|
|
13120
|
+
}
|
|
13121
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field[data-orientation="horizontal"] > .caps-field-error-reveal {
|
|
13122
|
+
padding-inline-start: calc(var(--caps-form-label-col) + var(--spacing-md));
|
|
13123
|
+
}
|
|
13124
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field:has(> .caps-field-error-reveal[data-open="true"]) .caps-field-description, .caps-fieldset[data-layout="columns"]:has( > .caps-field-error-reveal[data-open="true"] ) > .caps-fieldset-description {
|
|
13125
|
+
display: none;
|
|
13126
|
+
}
|
|
13127
|
+
.caps-fieldset[data-layout="columns"] {
|
|
13128
|
+
display: grid;
|
|
13129
|
+
grid-template-columns: var(--caps-form-label-col) minmax(0, 1fr);
|
|
13130
|
+
column-gap: var(--spacing-md);
|
|
13131
|
+
row-gap: var(--spacing-2xs);
|
|
13132
|
+
align-items: start;
|
|
13133
|
+
}
|
|
13134
|
+
.caps-fieldset[data-layout="columns"] > .caps-fieldset-legend {
|
|
13135
|
+
grid-column: 1;
|
|
13136
|
+
grid-row: 1;
|
|
13137
|
+
margin: 0;
|
|
13138
|
+
}
|
|
13139
|
+
.caps-fieldset[data-layout="columns"] > .caps-fieldset-fields {
|
|
13140
|
+
grid-column: 2;
|
|
13141
|
+
grid-row: 1;
|
|
13142
|
+
flex-direction: row;
|
|
13143
|
+
flex-wrap: wrap;
|
|
13144
|
+
margin: 0;
|
|
13145
|
+
}
|
|
13146
|
+
.caps-fieldset[data-layout="columns"] > :is(.caps-fieldset-description, .caps-field-error-reveal) {
|
|
13147
|
+
grid-column: 2;
|
|
13148
|
+
grid-row: 2;
|
|
13149
|
+
}
|
|
13150
|
+
.caps-form[data-layout="columns"] .caps-form-footer {
|
|
13151
|
+
padding-inline-start: calc(var(--caps-form-label-col) + var(--spacing-md));
|
|
13152
|
+
max-width: calc(var(--caps-form-label-col) + var(--spacing-md) + 30rem);
|
|
13153
|
+
}
|
|
13154
|
+
@container (min-width: 36rem) {
|
|
13155
|
+
.caps-form[data-layout="columns"] .caps-form-body:has(> .caps-field:first-child:nth-last-child(2)) {
|
|
13156
|
+
display: grid;
|
|
13157
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
13158
|
+
align-items: start;
|
|
13159
|
+
}
|
|
13160
|
+
.caps-form[data-layout="columns"] .caps-form-body:has(> .caps-field:first-child:nth-last-child(2)) > .caps-form-footer {
|
|
13161
|
+
padding-inline-start: 0;
|
|
13162
|
+
max-width: none;
|
|
13163
|
+
}
|
|
13164
|
+
}
|
|
13165
|
+
@container (max-width: 20rem) {
|
|
13166
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ), .caps-fieldset[data-layout="columns"] {
|
|
13167
|
+
grid-template-columns: minmax(0, 1fr);
|
|
13168
|
+
}
|
|
13169
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > :not(.caps-field-copy, .caps-field-lead, .caps-field-error-reveal), .caps-fieldset[data-layout="columns"] > .caps-fieldset-fields {
|
|
13170
|
+
grid-column: 1;
|
|
13171
|
+
grid-row: 2;
|
|
13172
|
+
max-width: none;
|
|
13173
|
+
}
|
|
13174
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-field-copy > .caps-field-description, :is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field[data-orientation="vertical"] > .caps-field-error-reveal, .caps-fieldset[data-layout="columns"] > :is(.caps-fieldset-description, .caps-field-error-reveal) {
|
|
13175
|
+
grid-column: 1;
|
|
13176
|
+
grid-row: 3;
|
|
13177
|
+
}
|
|
13178
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] :is( .caps-field[data-orientation="vertical"], .caps-field[data-orientation="horizontal"] > .caps-field-row ) > .caps-field-copy > label, .caps-fieldset[data-layout="columns"] > .caps-fieldset-legend {
|
|
13179
|
+
overflow: visible;
|
|
13180
|
+
text-overflow: clip;
|
|
13181
|
+
white-space: normal;
|
|
13182
|
+
}
|
|
13183
|
+
:is(.caps-form, .caps-form-section)[data-layout="columns"] .caps-field[data-orientation="horizontal"] > .caps-field-error-reveal, .caps-form[data-layout="columns"] .caps-form-footer {
|
|
13184
|
+
padding-inline-start: 0;
|
|
13185
|
+
max-width: none;
|
|
13186
|
+
}
|
|
13187
|
+
}
|
|
12986
13188
|
.caps-choice-card {
|
|
12987
13189
|
display: flex;
|
|
12988
13190
|
flex: 1 1 var(--caps-choice-card-basis, 14rem);
|
|
@@ -13587,15 +13789,15 @@
|
|
|
13587
13789
|
isolation: var(--caps-button-outline-isolation, auto);
|
|
13588
13790
|
}
|
|
13589
13791
|
.caps-button.btn-outline:not(:disabled):not([aria-disabled="true"]) {
|
|
13590
|
-
background-color: var(--caps-
|
|
13591
|
-
color: var(--caps-button-outline-ink,
|
|
13792
|
+
background-color: var(--caps-key-face);
|
|
13793
|
+
color: var(--caps-button-outline-ink, var(--color-base-content));
|
|
13592
13794
|
}
|
|
13593
13795
|
.caps-button.btn-outline:is(:disabled, [aria-disabled="true"]) {
|
|
13594
13796
|
background-color: var( --caps-button-outline-disabled-face, var(--color-base-200) );
|
|
13595
13797
|
}
|
|
13596
13798
|
.caps-button.btn-outline:not(:disabled):not([aria-disabled="true"]):hover {
|
|
13597
|
-
background-color: var( --caps-button-outline-hover-face, var(--caps-
|
|
13598
|
-
color: var( --caps-button-outline-hover-ink, var(--caps-button-outline-ink,
|
|
13799
|
+
background-color: var( --caps-button-outline-hover-face, var(--caps-keycap-hover-face, var(--caps-key-face)) );
|
|
13800
|
+
color: var( --caps-button-outline-hover-ink, var(--caps-button-outline-ink, var(--color-base-content)) );
|
|
13599
13801
|
}
|
|
13600
13802
|
.caps-button.btn-outline::before {
|
|
13601
13803
|
content: var(--caps-button-outline-inset-content, none);
|
|
@@ -13608,21 +13810,36 @@
|
|
|
13608
13810
|
.caps-button.btn-outline:hover::before {
|
|
13609
13811
|
background: var(--color-base-content);
|
|
13610
13812
|
}
|
|
13611
|
-
.caps-button.btn-outline {
|
|
13612
|
-
--
|
|
13813
|
+
.caps-keycap-button, .caps-button-filled, .caps-button.btn-outline {
|
|
13814
|
+
--caps-key-lip: calc(var(--depth) * 1px);
|
|
13815
|
+
--caps-key-rest-shadow: inset 0 1px 0
|
|
13816
|
+
oklch(100% 0 0 / calc(var(--depth) * var(--caps-key-top-edge, 0.14))),
|
|
13817
|
+
0 var(--caps-key-lip) 0
|
|
13818
|
+
var(--caps-key-face);
|
|
13613
13819
|
@supports (color: color-mix(in lab, red, red)) {
|
|
13614
|
-
--
|
|
13615
|
-
|
|
13616
|
-
var(--
|
|
13617
|
-
|
|
13618
|
-
|
|
13820
|
+
--caps-key-rest-shadow: inset 0 1px 0
|
|
13821
|
+
oklch(100% 0 0 / calc(var(--depth) * var(--caps-key-top-edge, 0.14))),
|
|
13822
|
+
0 var(--caps-key-lip) 0
|
|
13823
|
+
color-mix(
|
|
13824
|
+
in oklab,
|
|
13825
|
+
var(--caps-key-face),
|
|
13826
|
+
var(--caps-key-lip-ink, var(--color-base-content)) 14%
|
|
13827
|
+
);
|
|
13619
13828
|
}
|
|
13829
|
+
--caps-key-pressed-shadow: inset 0 1px 0 oklch(0% 0 0 / calc(var(--depth) * 0.08)), 0 0 0 transparent;
|
|
13830
|
+
}
|
|
13831
|
+
.caps-button.btn-outline {
|
|
13832
|
+
--btn-border: var(--stipe-linework);
|
|
13833
|
+
--caps-key-face: var(--caps-button-outline-face, var(--color-base-200));
|
|
13620
13834
|
font-weight: var(--caps-button-weight, 500);
|
|
13621
|
-
box-shadow: var(--caps-button-outline-drop, var(--caps-button-drop,
|
|
13835
|
+
box-shadow: var( --caps-button-outline-drop, var(--caps-button-drop, var(--caps-key-rest-shadow)) );
|
|
13836
|
+
transition-property: background-color, border-color, box-shadow, translate;
|
|
13837
|
+
transition-duration: var(--stipe-motion-fast);
|
|
13838
|
+
transition-timing-function: ease-out;
|
|
13622
13839
|
}
|
|
13623
13840
|
.caps-button.btn-outline:not(:disabled):not([aria-disabled="true"]):active {
|
|
13624
|
-
translate: 0 var(--caps-button-press, var(--
|
|
13625
|
-
box-shadow: var( --caps-button-outline-drop, var(--caps-button-drop-active,
|
|
13841
|
+
translate: 0 var(--caps-button-press, var(--caps-key-lip));
|
|
13842
|
+
box-shadow: var( --caps-button-outline-drop, var(--caps-button-drop-active, var(--caps-key-pressed-shadow)) );
|
|
13626
13843
|
}
|
|
13627
13844
|
.caps-button.btn-ghost {
|
|
13628
13845
|
font-weight: 500;
|
|
@@ -13632,6 +13849,9 @@
|
|
|
13632
13849
|
}
|
|
13633
13850
|
.caps-button-filled {
|
|
13634
13851
|
--btn-bg: var(--btn-color);
|
|
13852
|
+
--caps-key-face: var(--btn-color);
|
|
13853
|
+
--caps-key-lip-ink: black;
|
|
13854
|
+
--caps-key-top-edge: 0.06;
|
|
13635
13855
|
--caps-button-filled-edge: var(
|
|
13636
13856
|
--caps-button-border-color,
|
|
13637
13857
|
var(--btn-bg)
|
|
@@ -13641,7 +13861,7 @@
|
|
|
13641
13861
|
--caps-button-border-color,
|
|
13642
13862
|
color-mix(
|
|
13643
13863
|
in oklab,
|
|
13644
|
-
color-mix(in oklab, var(--btn-bg), black calc(var(--depth) *
|
|
13864
|
+
color-mix(in oklab, var(--btn-bg), black calc(var(--depth) * 6%)),
|
|
13645
13865
|
var(--stipe-linework)
|
|
13646
13866
|
calc((1 - var(--depth)) * var(--caps-button-linework, 100%))
|
|
13647
13867
|
)
|
|
@@ -13649,7 +13869,7 @@
|
|
|
13649
13869
|
}
|
|
13650
13870
|
--caps-button-filled-drop: var(
|
|
13651
13871
|
--caps-button-drop,
|
|
13652
|
-
|
|
13872
|
+
var(--caps-key-rest-shadow)
|
|
13653
13873
|
);
|
|
13654
13874
|
background-color: var(--btn-bg);
|
|
13655
13875
|
color: var(--btn-fg);
|
|
@@ -13692,9 +13912,9 @@
|
|
|
13692
13912
|
@supports (color: color-mix(in lab, red, red)) {
|
|
13693
13913
|
--btn-bg: color-mix(in oklab, var(--btn-color) 92%, black);
|
|
13694
13914
|
}
|
|
13695
|
-
translate: 0 var(--caps-button-press, var(--
|
|
13915
|
+
translate: 0 var(--caps-button-press, var(--caps-key-lip));
|
|
13696
13916
|
scale: var(--stipe-press-scale);
|
|
13697
|
-
box-shadow: var(
|
|
13917
|
+
box-shadow: var(--caps-button-drop-active, var(--caps-key-pressed-shadow));
|
|
13698
13918
|
transition-duration: var(--stipe-motion-squish);
|
|
13699
13919
|
}
|
|
13700
13920
|
.caps-button.caps-button-menubar {
|
|
@@ -14675,7 +14895,7 @@
|
|
|
14675
14895
|
scale: none;
|
|
14676
14896
|
}
|
|
14677
14897
|
.caps-button-filled:not(:disabled):not([aria-disabled="true"]):active {
|
|
14678
|
-
translate: var(--caps-button-press-reduced,
|
|
14898
|
+
translate: var(--caps-button-press-reduced, 0 var(--caps-key-lip));
|
|
14679
14899
|
}
|
|
14680
14900
|
.caps-gooey-motion, .caps-gooey-motion::before, .caps-switch, .caps-radio, .caps-checkbox, .caps-checkbox-track, .caps-input, .caps-status-bead {
|
|
14681
14901
|
animation: none !important;
|
|
@@ -15860,7 +16080,7 @@
|
|
|
15860
16080
|
}
|
|
15861
16081
|
}
|
|
15862
16082
|
@media (prefers-reduced-motion: reduce) {
|
|
15863
|
-
.caps-keycap, .caps-keycap-button {
|
|
16083
|
+
.caps-keycap, .caps-keycap-button, .caps-button.btn-outline {
|
|
15864
16084
|
transition: none;
|
|
15865
16085
|
}
|
|
15866
16086
|
}
|
|
@@ -15931,7 +16151,21 @@
|
|
|
15931
16151
|
height: 0.625rem;
|
|
15932
16152
|
}
|
|
15933
16153
|
.caps-keycap-button {
|
|
15934
|
-
--caps-
|
|
16154
|
+
--caps-key-face: var(--caps-keycap-face, var(--color-base-200));
|
|
16155
|
+
--caps-keycap-rest-shadow: inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.18)),
|
|
16156
|
+
0 var(--caps-key-lip) 0
|
|
16157
|
+
var(--caps-key-face),
|
|
16158
|
+
0 var(--caps-key-lip) calc(var(--depth) * 2px)
|
|
16159
|
+
oklch(0% 0 0 / calc(var(--depth) * 0.15));
|
|
16160
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
16161
|
+
--caps-keycap-rest-shadow: inset 0 1px 0 oklch(100% 0 0 / calc(var(--depth) * 0.18)),
|
|
16162
|
+
0 var(--caps-key-lip) 0
|
|
16163
|
+
color-mix(in oklab, var(--caps-key-face), var(--color-base-content) 14%),
|
|
16164
|
+
0 var(--caps-key-lip) calc(var(--depth) * 2px)
|
|
16165
|
+
oklch(0% 0 0 / calc(var(--depth) * 0.15));
|
|
16166
|
+
}
|
|
16167
|
+
--caps-keycap-pressed-shadow: inset 0 1px 0 oklch(0% 0 0 / calc(var(--depth) * 0.08)),
|
|
16168
|
+
0 0 0 transparent, 0 0 0 transparent;
|
|
15935
16169
|
display: flex;
|
|
15936
16170
|
width: var(--caps-keycap-width, 100%);
|
|
15937
16171
|
min-width: var(--caps-keycap-min-width, 0);
|
|
@@ -15940,7 +16174,10 @@
|
|
|
15940
16174
|
justify-content: var(--caps-keycap-justify, space-between);
|
|
15941
16175
|
gap: var(--spacing-sm);
|
|
15942
16176
|
padding: var(--caps-keycap-padding, var(--spacing-xs) var(--spacing-sm));
|
|
15943
|
-
border: var( --caps-keycap-context-border, var(--border) solid var(--caps-keycap-edge, var(--stipe-linework)) );
|
|
16177
|
+
border: var( --caps-keycap-context-border, var(--border) solid var( --caps-keycap-edge, var(--stipe-linework) ) );
|
|
16178
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
16179
|
+
border: var( --caps-keycap-context-border, var(--border) solid var( --caps-keycap-edge, color-mix(in oklab, var(--stipe-linework) 80%, var(--caps-key-face)) ) );
|
|
16180
|
+
}
|
|
15944
16181
|
font-size: var(--caps-keycap-font-size, inherit);
|
|
15945
16182
|
font-weight: var( --caps-keycap-context-weight, var(--caps-keycap-font-weight, inherit) );
|
|
15946
16183
|
border-radius: var(--radius-field);
|
|
@@ -15949,12 +16186,28 @@
|
|
|
15949
16186
|
var(--caps-keycap-face, var(--color-base-200))
|
|
15950
16187
|
);
|
|
15951
16188
|
background-color: var(--caps-keycap-painted-face);
|
|
15952
|
-
--caps-keycap-default-image:
|
|
15953
|
-
|
|
15954
|
-
|
|
16189
|
+
--caps-keycap-default-image: linear-gradient(
|
|
16190
|
+
to bottom,
|
|
16191
|
+
var(--caps-keycap-painted-face),
|
|
16192
|
+
var(--caps-keycap-painted-face)
|
|
16193
|
+
);
|
|
15955
16194
|
@supports (color: color-mix(in lab, red, red)) {
|
|
15956
|
-
|
|
16195
|
+
--caps-keycap-default-image: linear-gradient(
|
|
16196
|
+
to bottom,
|
|
16197
|
+
color-mix(
|
|
16198
|
+
in oklab,
|
|
16199
|
+
var(--caps-keycap-painted-face),
|
|
16200
|
+
white calc(var(--depth) * 3%)
|
|
16201
|
+
),
|
|
16202
|
+
color-mix(
|
|
16203
|
+
in oklab,
|
|
16204
|
+
var(--caps-keycap-painted-face),
|
|
16205
|
+
black calc(var(--depth) * 3%)
|
|
16206
|
+
)
|
|
16207
|
+
);
|
|
15957
16208
|
}
|
|
16209
|
+
background-image: var( --caps-keycap-context-image, var(--caps-keycap-default-image) );
|
|
16210
|
+
box-shadow: var( --caps-keycap-context-shadow, var(--caps-keycap-rest-shadow) );
|
|
15958
16211
|
color: var(--caps-keycap-ink, var(--color-base-content));
|
|
15959
16212
|
text-align: left;
|
|
15960
16213
|
cursor: pointer;
|
|
@@ -15963,8 +16216,8 @@
|
|
|
15963
16216
|
transition-timing-function: ease-out;
|
|
15964
16217
|
}
|
|
15965
16218
|
.caps-keycap-button:active {
|
|
15966
|
-
translate: 0 var(--caps-keycap-context-travel, var(--caps-
|
|
15967
|
-
box-shadow: var( --caps-keycap-active-shadow,
|
|
16219
|
+
translate: 0 var(--caps-keycap-context-travel, var(--caps-key-lip));
|
|
16220
|
+
box-shadow: var( --caps-keycap-active-shadow, var(--caps-keycap-pressed-shadow) );
|
|
15968
16221
|
}
|
|
15969
16222
|
.caps-keycap-button:focus-visible {
|
|
15970
16223
|
outline: 2px solid var(--caps-keycap-focus-ink, var(--color-base-content));
|
|
@@ -16011,6 +16264,28 @@
|
|
|
16011
16264
|
--caps-keycap-ink: var(--color-neutral-content);
|
|
16012
16265
|
--caps-keycap-edge: var(--color-neutral);
|
|
16013
16266
|
}
|
|
16267
|
+
.caps-keycap-button.caps-send-action[data-tone="primary"] {
|
|
16268
|
+
--caps-keycap-face: var(--color-primary);
|
|
16269
|
+
--caps-keycap-ink: var(--color-primary-content);
|
|
16270
|
+
--caps-keycap-edge: var(--color-primary);
|
|
16271
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
16272
|
+
--caps-keycap-edge: color-mix(in oklab, var(--color-primary) 82%, black);
|
|
16273
|
+
}
|
|
16274
|
+
--caps-keycap-hover-face: var(--color-primary);
|
|
16275
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
16276
|
+
--caps-keycap-hover-face: color-mix(
|
|
16277
|
+
in oklab,
|
|
16278
|
+
var(--color-primary) 92%,
|
|
16279
|
+
black
|
|
16280
|
+
);
|
|
16281
|
+
}
|
|
16282
|
+
}
|
|
16283
|
+
.caps-keycap-button.caps-send-action[data-send-state="empty"] {
|
|
16284
|
+
--caps-keycap-face: var(--color-base-200);
|
|
16285
|
+
--caps-keycap-ink: var(--color-base-content);
|
|
16286
|
+
--caps-keycap-edge: var(--stipe-linework);
|
|
16287
|
+
--caps-keycap-hover-face: var(--color-base-200);
|
|
16288
|
+
}
|
|
16014
16289
|
.caps-keycap-button[data-tone="destructive"]:is(:hover, :focus-visible) {
|
|
16015
16290
|
--caps-keycap-ink: var(--color-error);
|
|
16016
16291
|
--caps-keycap-edge: var(--color-error);
|
|
@@ -20,12 +20,12 @@ Props accepted by Composer.
|
|
|
20
20
|
|
|
21
21
|
#### Type Declaration
|
|
22
22
|
|
|
23
|
-
| Name
|
|
24
|
-
|
|
|
25
|
-
| `input`
|
|
26
|
-
| `action?`
|
|
27
|
-
| `
|
|
28
|
-
| `
|
|
23
|
+
| Name | Type | Description |
|
|
24
|
+
| -------------- | ----------- | ---------------------------------------------------------------------------- |
|
|
25
|
+
| `input` | `ReactNode` | The caller-owned field, typed into directly: the surface is the field. |
|
|
26
|
+
| `action?` | `ReactNode` | The caller-owned key at the end of the bottom row, such as a SendAction. |
|
|
27
|
+
| `toolbar?` | `ReactNode` | Caller-owned controls and readouts along the bottom edge, before the action. |
|
|
28
|
+
| `attachments?` | `ReactNode` | Caller-owned items riding with the draft, shown above the text. |
|
|
29
29
|
|
|
30
30
|
## Variables
|
|
31
31
|
|
|
@@ -37,4 +37,7 @@ const Composer: ForwardRefExoticComponent<
|
|
|
37
37
|
>;
|
|
38
38
|
```
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
One composer surface: attachments, then the text, then a slim row along the
|
|
41
|
+
bottom edge holding the toolbar and, at its end, the action. It draws no box of
|
|
42
|
+
its own: the host region is the field. Layout and slots only; it never assigns
|
|
43
|
+
action-control semantics.
|