@hjmds/react 1.7.0 → 1.9.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 +21 -0
- package/THIRD_PARTY_NOTICES.md +57 -0
- package/dist/advanced-display.d.ts +3 -1
- package/dist/advanced-display.d.ts.map +1 -1
- package/dist/advanced-display.js +2 -2
- package/dist/advanced-display.js.map +1 -1
- package/dist/affix.d.ts +10 -0
- package/dist/affix.d.ts.map +1 -0
- package/dist/affix.js +51 -0
- package/dist/affix.js.map +1 -0
- package/dist/carousel-motion.d.ts +13 -0
- package/dist/carousel-motion.d.ts.map +1 -0
- package/dist/carousel-motion.js +35 -0
- package/dist/carousel-motion.js.map +1 -0
- package/dist/celebration.d.ts +8 -0
- package/dist/celebration.d.ts.map +1 -0
- package/dist/celebration.js +51 -0
- package/dist/celebration.js.map +1 -0
- package/dist/color-picker.d.ts +18 -0
- package/dist/color-picker.d.ts.map +1 -0
- package/dist/color-picker.js +40 -0
- package/dist/color-picker.js.map +1 -0
- package/dist/content-transition.d.ts +18 -0
- package/dist/content-transition.d.ts.map +1 -0
- package/dist/content-transition.js +33 -0
- package/dist/content-transition.js.map +1 -0
- package/dist/context-menu.d.ts.map +1 -1
- package/dist/context-menu.js +36 -9
- package/dist/context-menu.js.map +1 -1
- package/dist/date-picker.d.ts.map +1 -1
- package/dist/date-picker.js +39 -1
- package/dist/date-picker.js.map +1 -1
- package/dist/evidence.d.ts +106 -2
- package/dist/evidence.d.ts.map +1 -1
- package/dist/evidence.js +136 -64
- package/dist/evidence.js.map +1 -1
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +3 -2
- package/dist/layout.js.map +1 -1
- package/dist/masonry.d.ts +14 -0
- package/dist/masonry.d.ts.map +1 -0
- package/dist/masonry.js +13 -0
- package/dist/masonry.js.map +1 -0
- package/dist/menu-morph.d.ts +12 -0
- package/dist/menu-morph.d.ts.map +1 -0
- package/dist/menu-morph.js +80 -0
- package/dist/menu-morph.js.map +1 -0
- package/dist/menubar.d.ts.map +1 -1
- package/dist/menubar.js +24 -15
- package/dist/menubar.js.map +1 -1
- package/dist/modal.d.ts +1 -0
- package/dist/modal.d.ts.map +1 -1
- package/dist/modal.js.map +1 -1
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +13 -1
- package/dist/navigation.js.map +1 -1
- package/dist/overlays.d.ts.map +1 -1
- package/dist/overlays.js +33 -2
- package/dist/overlays.js.map +1 -1
- package/dist/qr-code.d.ts +11 -0
- package/dist/qr-code.d.ts.map +1 -0
- package/dist/qr-code.js +14 -0
- package/dist/qr-code.js.map +1 -0
- package/dist/sortable.d.ts +14 -0
- package/dist/sortable.d.ts.map +1 -0
- package/dist/sortable.js +87 -0
- package/dist/sortable.js.map +1 -0
- package/dist/statistic-motion.d.ts +12 -0
- package/dist/statistic-motion.d.ts.map +1 -0
- package/dist/statistic-motion.js +23 -0
- package/dist/statistic-motion.js.map +1 -0
- package/dist/styles.css +166 -134
- package/dist/styles.layered.css +166 -134
- package/dist/swipe-actions.d.ts +13 -0
- package/dist/swipe-actions.d.ts.map +1 -0
- package/dist/swipe-actions.js +25 -0
- package/dist/swipe-actions.js.map +1 -0
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +2 -1
- package/dist/theme.js.map +1 -1
- package/dist/thinking-orb.d.ts +9 -0
- package/dist/thinking-orb.d.ts.map +1 -0
- package/dist/thinking-orb.js +86 -0
- package/dist/thinking-orb.js.map +1 -0
- package/dist/tree.d.ts.map +1 -1
- package/dist/tree.js +14 -3
- package/dist/tree.js.map +1 -1
- package/dist/virtual-list.d.ts +14 -0
- package/dist/virtual-list.d.ts.map +1 -0
- package/dist/virtual-list.js +48 -0
- package/dist/virtual-list.js.map +1 -0
- package/dist/watermark.d.ts +12 -0
- package/dist/watermark.d.ts.map +1 -0
- package/dist/watermark.js +10 -0
- package/dist/watermark.js.map +1 -0
- package/package.json +122 -5
package/dist/styles.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/* Broad neutral and pale-brand surfaces use the theme canvas. Selection stays visible through borders; primary actions and compact state marks retain their semantic fills. */
|
|
1
2
|
.hjm-root,
|
|
2
3
|
.hjm-root *,
|
|
3
4
|
.hjm-root *::before,
|
|
@@ -70,14 +71,14 @@
|
|
|
70
71
|
overflow-wrap: anywhere;
|
|
71
72
|
border: 1px solid transparent;
|
|
72
73
|
border-radius: var(--hjm-radius-lg);
|
|
73
|
-
background: var(--hjm-color-
|
|
74
|
+
background: var(--hjm-color-bg);
|
|
74
75
|
}
|
|
75
76
|
/* A child image would otherwise spill past the rounded corner. An elevated tone
|
|
76
77
|
opts out because clipping cuts off its own shadow. */
|
|
77
78
|
.hjm-surface[data-clips="true"] { overflow: hidden; }
|
|
78
79
|
.hjm-surface[data-tone="raised"] { background: var(--hjm-color-bg); box-shadow: 0 4px 12px rgb(0 0 0 / 12%); }
|
|
79
|
-
.hjm-surface[data-tone="accent"] { background: var(--hjm-color-
|
|
80
|
-
.hjm-surface[data-tone="sunken"] { background: var(--hjm-color-
|
|
80
|
+
.hjm-surface[data-tone="accent"] { background: var(--hjm-color-bg); }
|
|
81
|
+
.hjm-surface[data-tone="sunken"] { background: var(--hjm-color-bg); }
|
|
81
82
|
.hjm-surface[data-tone="subtle"] { background: var(--hjm-color-bg); }
|
|
82
83
|
.hjm-surface[data-bordered="true"] { border-color: var(--hjm-color-border); }
|
|
83
84
|
.hjm-surface[data-tone="accent"][data-bordered="true"] { border-color: color-mix(in srgb, var(--hjm-color-primary) 30%, transparent); }
|
|
@@ -165,7 +166,7 @@
|
|
|
165
166
|
max-inline-size: 100%;
|
|
166
167
|
overflow: hidden;
|
|
167
168
|
border-radius: var(--hjm-radius-md);
|
|
168
|
-
background: var(--hjm-color-
|
|
169
|
+
background: var(--hjm-color-bg);
|
|
169
170
|
vertical-align: middle;
|
|
170
171
|
}
|
|
171
172
|
.hjm-image__asset,
|
|
@@ -179,7 +180,7 @@
|
|
|
179
180
|
display: grid;
|
|
180
181
|
place-items: center;
|
|
181
182
|
color: var(--hjm-color-text-muted);
|
|
182
|
-
background: var(--hjm-color-
|
|
183
|
+
background: var(--hjm-color-bg);
|
|
183
184
|
}
|
|
184
185
|
.hjm-image__fallback-icon { display: inline-grid; place-items: center; }
|
|
185
186
|
|
|
@@ -230,7 +231,7 @@
|
|
|
230
231
|
line-height: var(--hjm-type-body-large-line-height);
|
|
231
232
|
}
|
|
232
233
|
.hjm-button[data-tone="primary"], .hjm-icon-button[data-tone="primary"] { color: var(--hjm-color-on-primary); background: var(--hjm-color-primary); }
|
|
233
|
-
.hjm-button[data-tone="secondary"], .hjm-icon-button[data-tone="secondary"] { color: var(--hjm-color-text); background: var(--hjm-color-
|
|
234
|
+
.hjm-button[data-tone="secondary"], .hjm-icon-button[data-tone="secondary"] { color: var(--hjm-color-text); background: var(--hjm-color-bg); border-color: var(--hjm-color-border-control); }
|
|
234
235
|
.hjm-button[data-tone="ghost"], .hjm-icon-button[data-tone="ghost"] { color: var(--hjm-color-text-muted); background: transparent; }
|
|
235
236
|
.hjm-button[data-tone="danger"], .hjm-icon-button[data-tone="danger"] { color: var(--hjm-color-on-danger); background: var(--hjm-color-danger-fill); }
|
|
236
237
|
/* A link-tone control is inline copy; the size axis' padding would push it out
|
|
@@ -238,7 +239,7 @@
|
|
|
238
239
|
.hjm-button[data-tone="link"] { color: var(--hjm-color-content-brand); background: transparent; padding-inline: 0; }
|
|
239
240
|
/* Toggle treatment: aria-pressed already carried the state, so without a paired
|
|
240
241
|
visual every consumer painted the selected background in product styles. */
|
|
241
|
-
.hjm-button[data-selected="true"], .hjm-icon-button[data-selected="true"] { color: var(--hjm-color-content-brand); background: var(--hjm-color-
|
|
242
|
+
.hjm-button[data-selected="true"], .hjm-icon-button[data-selected="true"] { color: var(--hjm-color-content-brand); background: var(--hjm-color-bg); border-color: var(--hjm-color-content-brand); }
|
|
242
243
|
.hjm-button:active:not(:disabled):not([aria-disabled="true"]), .hjm-icon-button:active:not(:disabled):not([aria-disabled="true"]) { opacity: var(--hjm-button-pressed-opacity); }
|
|
243
244
|
.hjm-button:disabled, .hjm-icon-button:disabled { cursor: not-allowed; opacity: var(--hjm-button-disabled-opacity); }
|
|
244
245
|
/* 라벨은 자르지 않고 두 줄까지 접는다(buttonRecipe.label). 잘린 행동 라벨은 무엇을 하는
|
|
@@ -281,11 +282,15 @@
|
|
|
281
282
|
.hjm-switch:focus-visible .hjm-switch__track,
|
|
282
283
|
.hjm-segmented__item:has(input:focus-visible),
|
|
283
284
|
.hjm-tabs__tab:focus-visible,
|
|
284
|
-
.hjm-list-row:focus-visible
|
|
285
|
+
.hjm-list-row:focus-visible,
|
|
286
|
+
.hjm-virtual-list:focus-visible,
|
|
287
|
+
.hjm-virtual-list__row:focus-visible {
|
|
285
288
|
outline: var(--hjm-focus-width) solid var(--hjm-color-focus);
|
|
286
289
|
outline-offset: var(--hjm-focus-offset);
|
|
287
290
|
}
|
|
288
291
|
|
|
292
|
+
/* Input interiors use the theme canvas (white in light mode), not tinted
|
|
293
|
+
surfaces. Focus and selection still use blue borders and compact indicators. */
|
|
289
294
|
.hjm-field { display: grid; gap: var(--hjm-space-xs); min-inline-size: 0; }
|
|
290
295
|
.hjm-field__label { color: var(--hjm-color-text-body); font-weight: var(--hjm-font-weight-semibold); }
|
|
291
296
|
.hjm-field__control {
|
|
@@ -293,9 +298,9 @@
|
|
|
293
298
|
align-items: center;
|
|
294
299
|
min-block-size: var(--hjm-control-field-height);
|
|
295
300
|
padding-inline: var(--hjm-space-md);
|
|
296
|
-
border: var(--hjm-field-border-width) solid var(--hjm-color-
|
|
301
|
+
border: var(--hjm-field-border-width) solid var(--hjm-color-border-control);
|
|
297
302
|
border-radius: var(--hjm-radius-md);
|
|
298
|
-
background: var(--hjm-color-
|
|
303
|
+
background: var(--hjm-color-bg);
|
|
299
304
|
}
|
|
300
305
|
.hjm-field[data-variant="inset"] .hjm-field__control { background: var(--hjm-color-bg); }
|
|
301
306
|
.hjm-field[data-shape="large"] .hjm-field__control { border-radius: var(--hjm-radius-lg); }
|
|
@@ -338,7 +343,7 @@
|
|
|
338
343
|
.hjm-field__affix { display: inline-flex; align-items: center; color: var(--hjm-color-text-muted); }
|
|
339
344
|
.hjm-field__description, .hjm-choice__description { color: var(--hjm-color-text-muted); font-size: var(--hjm-type-label-size); line-height: var(--hjm-type-label-line-height); }
|
|
340
345
|
.hjm-field__error { color: var(--hjm-color-danger); font-size: var(--hjm-type-label-size); line-height: var(--hjm-type-label-line-height); }
|
|
341
|
-
.hjm-search-field__clear { inline-size:
|
|
346
|
+
.hjm-search-field__clear { inline-size: var(--hjm-control-min-touch-target); block-size: var(--hjm-control-min-touch-target); display: inline-grid; place-items: center; border: 0; border-radius: 50%; color: inherit; background: transparent; font: inherit; cursor: pointer; }
|
|
342
347
|
.hjm-search-field__spinner { inline-size: 32px; block-size: 32px; display: inline-grid; place-items: center; color: var(--hjm-color-content-brand); }
|
|
343
348
|
.hjm-search-field__spinner:empty::before { content: ""; inline-size: 1em; block-size: 1em; border: 2px solid currentColor; border-inline-end-color: transparent; border-radius: 50%; animation: hjm-spin 800ms linear infinite; }
|
|
344
349
|
.hjm-password-field--large .hjm-field__control { min-block-size: var(--hjm-control-button-large); padding-inline: var(--hjm-space-lg); }
|
|
@@ -394,6 +399,7 @@
|
|
|
394
399
|
(var(--hjm-otp-slot-size) * var(--hjm-otp-length)) +
|
|
395
400
|
(var(--hjm-otp-gap) * (var(--hjm-otp-length) - 1))
|
|
396
401
|
);
|
|
402
|
+
/* Numeric codes keep their entry order in RTL (docs/otp-field.md); mirroring digits would reorder the code. */
|
|
397
403
|
direction: ltr;
|
|
398
404
|
}
|
|
399
405
|
.hjm-otp-field__control[data-size="large"] {
|
|
@@ -427,10 +433,10 @@
|
|
|
427
433
|
display: grid;
|
|
428
434
|
place-items: center;
|
|
429
435
|
padding-block: var(--hjm-space-xxs);
|
|
430
|
-
border: 1px solid var(--hjm-color-
|
|
436
|
+
border: 1px solid var(--hjm-color-border-control);
|
|
431
437
|
border-radius: var(--hjm-radius-md);
|
|
432
438
|
color: var(--hjm-color-text);
|
|
433
|
-
background: var(--hjm-color-
|
|
439
|
+
background: var(--hjm-color-bg);
|
|
434
440
|
font-size: var(--hjm-type-title-size);
|
|
435
441
|
line-height: var(--hjm-type-title-line-height);
|
|
436
442
|
font-weight: var(--hjm-font-weight-semibold);
|
|
@@ -497,7 +503,7 @@
|
|
|
497
503
|
text-decoration: none;
|
|
498
504
|
overflow-wrap: anywhere;
|
|
499
505
|
}
|
|
500
|
-
.hjm-bottom-navigation__item:hover { background: var(--hjm-color-
|
|
506
|
+
.hjm-bottom-navigation__item:hover { background: var(--hjm-color-bg); }
|
|
501
507
|
.hjm-bottom-navigation__item:active { background: var(--hjm-bottom-navigation-pressed-background); }
|
|
502
508
|
.hjm-bottom-navigation__item:focus-visible {
|
|
503
509
|
outline: 2px solid var(--hjm-color-content-brand);
|
|
@@ -581,8 +587,8 @@
|
|
|
581
587
|
.hjm-number-field__stepper[data-direction="increment"] {
|
|
582
588
|
border-inline-start: 1px solid var(--hjm-color-border);
|
|
583
589
|
}
|
|
584
|
-
.hjm-number-field__stepper:hover:not(:disabled) { background: var(--hjm-color-
|
|
585
|
-
.hjm-number-field__stepper:active:not(:disabled) { background: var(--hjm-color-
|
|
590
|
+
.hjm-number-field__stepper:hover:not(:disabled) { background: var(--hjm-color-bg); }
|
|
591
|
+
.hjm-number-field__stepper:active:not(:disabled) { background: var(--hjm-color-bg); }
|
|
586
592
|
.hjm-number-field__stepper:disabled { cursor: not-allowed; opacity: 0.5; }
|
|
587
593
|
.hjm-number-field__stepper:focus-visible {
|
|
588
594
|
outline: 2px solid var(--hjm-color-content-brand);
|
|
@@ -698,7 +704,8 @@
|
|
|
698
704
|
}
|
|
699
705
|
.hjm-slider__input:disabled { cursor: not-allowed; }
|
|
700
706
|
|
|
701
|
-
|
|
707
|
+
/* Long choice labels wrap within the parent. */
|
|
708
|
+
.hjm-choice { display: inline-flex; align-items: center; gap: var(--hjm-space-sm); min-block-size: 56px; max-inline-size: 100%; padding: var(--hjm-space-sm) var(--hjm-space-md); border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); background: var(--hjm-color-bg); cursor: pointer; }
|
|
702
709
|
.hjm-choice[data-disabled="true"] { opacity: 0.5; cursor: not-allowed; }
|
|
703
710
|
.hjm-choice[data-readonly="true"] { cursor: default; }
|
|
704
711
|
.hjm-choice[data-presentation="plain"] { padding: 0; border-color: transparent; background: transparent; }
|
|
@@ -706,11 +713,11 @@
|
|
|
706
713
|
.hjm-choice[data-presentation="card"][data-state="checked"],
|
|
707
714
|
.hjm-choice[data-presentation="card"][data-state="mixed"],
|
|
708
715
|
.hjm-choice[data-presentation="grouped"][data-state="checked"],
|
|
709
|
-
.hjm-choice[data-presentation="grouped"][data-state="mixed"] { border-color: var(--hjm-color-content-brand); background: var(--hjm-color-
|
|
716
|
+
.hjm-choice[data-presentation="grouped"][data-state="mixed"] { border-color: var(--hjm-color-content-brand); background: var(--hjm-color-bg); }
|
|
710
717
|
.hjm-choice[data-size="small"] { min-block-size: 44px; gap: var(--hjm-space-xs); padding: var(--hjm-space-xs) var(--hjm-space-sm); }
|
|
711
718
|
.hjm-choice[data-size="small"][data-presentation="plain"] { padding: 0; }
|
|
712
719
|
.hjm-choice__input { position: absolute; opacity: 0; inline-size: 1px; block-size: 1px; }
|
|
713
|
-
.hjm-choice__indicator { flex: 0 0 24px; display: grid; place-items: center; inline-size: 24px; block-size: 24px; margin-block-start: 2px; border: 2px solid var(--hjm-color-text-muted); background: var(--hjm-color-
|
|
720
|
+
.hjm-choice__indicator { flex: 0 0 24px; display: grid; place-items: center; inline-size: 24px; block-size: 24px; margin-block-start: 2px; border: 2px solid var(--hjm-color-text-muted); background: var(--hjm-color-bg); }
|
|
714
721
|
.hjm-choice[data-size="small"] .hjm-choice__indicator { flex-basis: 20px; inline-size: 20px; block-size: 20px; }
|
|
715
722
|
.hjm-choice__leading { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; color: var(--hjm-color-text-muted); }
|
|
716
723
|
.hjm-choice[data-kind="checkbox"] .hjm-choice__indicator { border-radius: var(--hjm-radius-sm); }
|
|
@@ -727,7 +734,7 @@
|
|
|
727
734
|
.hjm-radio-group legend { margin-block-end: var(--hjm-space-xs); font-weight: var(--hjm-font-weight-semibold); }
|
|
728
735
|
.hjm-radio-group__items { display: flex; flex-direction: column; gap: var(--hjm-space-xs); }
|
|
729
736
|
.hjm-radio-group[data-presentation="plain"] .hjm-radio-group__items { gap: var(--hjm-space-xxs); }
|
|
730
|
-
.hjm-radio-group[data-presentation="grouped"] .hjm-radio-group__items { gap: 0; overflow: hidden; border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-lg); background: var(--hjm-color-
|
|
737
|
+
.hjm-radio-group[data-presentation="grouped"] .hjm-radio-group__items { gap: 0; overflow: hidden; border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-lg); background: var(--hjm-color-bg); }
|
|
731
738
|
.hjm-radio-group[data-orientation="horizontal"] .hjm-radio-group__items { flex-direction: row; flex-wrap: wrap; gap: var(--hjm-space-md); }
|
|
732
739
|
.hjm-radio-group[data-orientation="horizontal"][data-presentation="plain"] .hjm-radio-group__items { gap: var(--hjm-space-sm); }
|
|
733
740
|
.hjm-radio-group[data-orientation="horizontal"][data-presentation="grouped"] .hjm-radio-group__items { gap: 0; }
|
|
@@ -735,17 +742,14 @@
|
|
|
735
742
|
.hjm-checkbox-group legend { margin-block-end: var(--hjm-space-xs); font-weight: var(--hjm-font-weight-semibold); }
|
|
736
743
|
.hjm-checkbox-group__items { display: flex; flex-direction: column; gap: var(--hjm-space-xs); }
|
|
737
744
|
.hjm-checkbox-group[data-presentation="plain"] .hjm-checkbox-group__items { gap: var(--hjm-space-xxs); }
|
|
738
|
-
.hjm-checkbox-group[data-presentation="grouped"] .hjm-checkbox-group__items { gap: 0; overflow: hidden; border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-lg); background: var(--hjm-color-
|
|
745
|
+
.hjm-checkbox-group[data-presentation="grouped"] .hjm-checkbox-group__items { gap: 0; overflow: hidden; border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-lg); background: var(--hjm-color-bg); }
|
|
739
746
|
.hjm-checkbox-group[data-orientation="horizontal"] .hjm-checkbox-group__items { flex-direction: row; flex-wrap: wrap; gap: var(--hjm-space-md); }
|
|
740
747
|
.hjm-checkbox-group[data-orientation="horizontal"][data-presentation="plain"] .hjm-checkbox-group__items { gap: var(--hjm-space-sm); }
|
|
741
748
|
.hjm-checkbox-group[data-orientation="horizontal"][data-presentation="grouped"] .hjm-checkbox-group__items { gap: 0; }
|
|
742
749
|
|
|
743
750
|
.hjm-switch { display: inline-flex; align-items: center; gap: var(--hjm-space-sm); min-block-size: var(--hjm-control-min-touch-target); padding: 0; border: 0; color: inherit; background: transparent; font: inherit; cursor: pointer; }
|
|
744
|
-
/*
|
|
745
|
-
|
|
746
|
-
identical, and it would also double-fade the calibrated 38% on-track. The fade is
|
|
747
|
-
kept on the label alone, so the row still reads disabled at a glance while the
|
|
748
|
-
control keeps the contrast its colours were chosen for. */
|
|
751
|
+
/* Disabled switch colors preserve on/off contrast; row opacity would erase state
|
|
752
|
+
and double-fade the calibrated38% track. Only the label fades (switchRecipe.colors). */
|
|
749
753
|
.hjm-switch:disabled { cursor: not-allowed; }
|
|
750
754
|
.hjm-switch:disabled .hjm-switch__label { opacity: 0.5; }
|
|
751
755
|
.hjm-switch:disabled .hjm-switch__track { background: var(--hjm-color-border); box-shadow: inset 0 0 0 1px var(--hjm-color-border); }
|
|
@@ -775,33 +779,17 @@
|
|
|
775
779
|
[dir="rtl"] .hjm-switch[data-state="checked"] .hjm-switch__thumb { transform: translateX(calc(-1 * var(--hjm-switch-track-offset))); }
|
|
776
780
|
|
|
777
781
|
.hjm-segmented { min-inline-size: 0; padding: 0; border: 0; }
|
|
778
|
-
.hjm-segmented__items { display: flex; min-inline-size: 0; gap: 2px; padding: 2px; border-radius: var(--hjm-radius-md); background: var(--hjm-color-
|
|
782
|
+
.hjm-segmented__items { display: flex; min-inline-size: 0; gap: 2px; padding: 2px; border-radius: var(--hjm-radius-md); background: var(--hjm-color-bg); overflow-x: auto; }
|
|
779
783
|
.hjm-segmented__item { position: relative; flex: 1 1 0; min-inline-size: max-content; min-block-size: var(--hjm-control-min-touch-target); display: grid; place-items: center; padding: var(--hjm-space-xs) var(--hjm-space-sm); border-radius: calc(var(--hjm-radius-md) - 2px); color: var(--hjm-color-text-muted); cursor: pointer; }
|
|
780
784
|
.hjm-segmented__item input { position: absolute; opacity: 0; }
|
|
781
|
-
.hjm-segmented__item[data-state="checked"] { color: var(--hjm-color-text); background: var(--hjm-color-
|
|
785
|
+
.hjm-segmented__item[data-state="checked"] { box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); color: var(--hjm-color-text); background: var(--hjm-color-bg); font-weight: var(--hjm-font-weight-semibold); }
|
|
782
786
|
.hjm-segmented__item[data-disabled="true"] { opacity: 0.5; cursor: not-allowed; }
|
|
783
787
|
|
|
784
|
-
/* segmentedControlRecipe.adaptive.largeTextLayout
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
There are two triggers because web has two large-text signals. A browser
|
|
791
|
-
user changes the default font size, which `em` in a media query reads
|
|
792
|
-
directly; a product that declares `textScale` to the provider publishes
|
|
793
|
-
`data-large-text`, which is the recipe's `stackAtFontScale` resolved once
|
|
794
|
-
(a stylesheet cannot compare the raw number). Before #20 only the first
|
|
795
|
-
existed, so the declared axis reached RN and not this renderer. 11em is 176px at 100% (no real viewport, so the
|
|
796
|
-
row is untouched) and 352px at 200%. Measured on the sea view: the row is
|
|
797
|
-
195px at 100%, 263px at 150% and 333px at 200%, so 320px/200% overflowed
|
|
798
|
-
(10em) while 360px/200% did not (11.25em) — the threshold sits between them.
|
|
799
|
-
Stacking releases two row-only declarations: `flex: 1 1 0` would collapse an
|
|
800
|
-
auto-height column to its padding, and `max-content` would stop a long label
|
|
801
|
-
from wrapping inside its own full-width row.
|
|
802
|
-
|
|
803
|
-
`renderers.ssr.test.tsx` fails if the recipe stops declaring "stacked" while
|
|
804
|
-
these rules remain, so the two do not drift apart silently. */
|
|
788
|
+
/* segmentedControlRecipe.adaptive.largeTextLayout stacks oversized labels, matching RN.
|
|
789
|
+
Both browser font size (em query) and provider data-large-text must trigger it (#20).
|
|
790
|
+
11em = 176px at100%, 352px at200%: measured row333px fits360px but overflows320px.
|
|
791
|
+
Reset flex and max-content in columns to avoid collapsed height and unwrapped labels.
|
|
792
|
+
renderers.ssr.test.tsx checks that the recipe still declares stacked. */
|
|
805
793
|
@media (max-width: 11em) {
|
|
806
794
|
.hjm-segmented__items { flex-direction: column; overflow-x: visible; }
|
|
807
795
|
.hjm-segmented__item { flex: 0 0 auto; min-inline-size: 0; }
|
|
@@ -828,11 +816,11 @@
|
|
|
828
816
|
.hjm-tabs[data-orientation="vertical"] .hjm-tabs__tab[data-state="selected"]::after { inset-block: 0; inset-inline-start: auto; inset-inline-end: 0; inline-size: 2px; block-size: auto; }
|
|
829
817
|
|
|
830
818
|
.hjm-badge, .hjm-tag { display: inline-flex; align-items: center; gap: var(--hjm-space-xxs); max-inline-size: 100%; overflow-wrap: anywhere; }
|
|
831
|
-
.hjm-badge { min-block-size: 24px; padding: 2px var(--hjm-space-xs); border: 1px solid transparent; border-radius: var(--hjm-radius-full); color: var(--hjm-color-text-muted); background: var(--hjm-color-
|
|
819
|
+
.hjm-badge { min-block-size: 24px; padding: 2px var(--hjm-space-xs); border: 1px solid transparent; border-radius: var(--hjm-radius-full); color: var(--hjm-color-text-muted); background: var(--hjm-color-bg); font-size: var(--hjm-type-caption-size); line-height: var(--hjm-type-caption-line-height); font-weight: var(--hjm-font-weight-bold); }
|
|
832
820
|
.hjm-badge[data-size="small"] { min-block-size: 20px; font-size: var(--hjm-type-caption-size); }
|
|
833
821
|
.hjm-badge[data-tone="strong"] { color: var(--hjm-color-bg); background: var(--hjm-color-text); }
|
|
834
822
|
.hjm-badge[data-tone="brand"] { color: var(--hjm-color-content-brand); }
|
|
835
|
-
.hjm-badge[data-tone="info"], .hjm-tag[data-tone="info"] { color: var(--hjm-accent-info); background:
|
|
823
|
+
.hjm-badge[data-tone="info"], .hjm-tag[data-tone="info"] { color: var(--hjm-accent-info); background: var(--hjm-color-bg); border-color: color-mix(in srgb, var(--hjm-accent-info) 30%, transparent); }
|
|
836
824
|
.hjm-badge[data-tone="success"], .hjm-tag[data-tone="success"] { color: var(--hjm-accent-success); background: color-mix(in srgb, var(--hjm-accent-success) 14%, transparent); border-color: color-mix(in srgb, var(--hjm-accent-success) 30%, transparent); }
|
|
837
825
|
.hjm-badge[data-tone="warning"] { color: var(--hjm-accent-warning); background: color-mix(in srgb, var(--hjm-accent-warning) 14%, transparent); border-color: color-mix(in srgb, var(--hjm-accent-warning) 30%, transparent); }
|
|
838
826
|
.hjm-badge[data-tone="attention"], .hjm-tag[data-tone="attention"] { color: var(--hjm-accent-attention); background: color-mix(in srgb, var(--hjm-accent-attention) 14%, transparent); border-color: color-mix(in srgb, var(--hjm-accent-attention) 30%, transparent); }
|
|
@@ -844,9 +832,9 @@
|
|
|
844
832
|
.hjm-badge[data-variant="outline"][data-tone="warning"] { border-color: color-mix(in srgb, var(--hjm-accent-warning) 30%, transparent); }
|
|
845
833
|
.hjm-badge[data-variant="outline"][data-tone="attention"] { border-color: color-mix(in srgb, var(--hjm-accent-attention) 30%, transparent); }
|
|
846
834
|
.hjm-badge[data-variant="outline"][data-tone="danger"] { border-color: color-mix(in srgb, var(--hjm-color-danger) 30%, transparent); }
|
|
847
|
-
.hjm-tag { min-block-size: 20px; padding-inline: var(--hjm-space-xxs); border: 1px solid transparent; border-radius: var(--hjm-radius-sm); color: var(--hjm-color-text-muted); background: var(--hjm-color-
|
|
848
|
-
.hjm-tag[data-tone="brand"] { color: var(--hjm-color-content-brand); background: var(--hjm-color-
|
|
849
|
-
.hjm-tag[data-tone="info"] { background:
|
|
835
|
+
.hjm-tag { min-block-size: 20px; padding-inline: var(--hjm-space-xxs); border: 1px solid transparent; border-radius: var(--hjm-radius-sm); color: var(--hjm-color-text-muted); background: var(--hjm-color-bg); font-size: var(--hjm-type-caption-size); line-height: var(--hjm-type-caption-line-height); font-weight: var(--hjm-font-weight-semibold); }
|
|
836
|
+
.hjm-tag[data-tone="brand"] { color: var(--hjm-color-content-brand); background: var(--hjm-color-bg); }
|
|
837
|
+
.hjm-tag[data-tone="info"] { background: var(--hjm-color-bg); }
|
|
850
838
|
.hjm-tag[data-tone="success"] { background: color-mix(in srgb, var(--hjm-accent-success) 10%, transparent); }
|
|
851
839
|
.hjm-tag[data-tone="attention"] { background: color-mix(in srgb, var(--hjm-accent-attention) 10%, transparent); }
|
|
852
840
|
.hjm-icon { display: inline-block; flex: 0 0 auto; vertical-align: middle; }
|
|
@@ -859,7 +847,8 @@
|
|
|
859
847
|
.hjm-icon[data-tone="warning"] { color: var(--hjm-accent-warning); }
|
|
860
848
|
.hjm-icon[data-tone="danger"] { color: var(--hjm-color-danger); }
|
|
861
849
|
.hjm-icon[data-tone="inverse"] { color: var(--hjm-color-on-primary); }
|
|
862
|
-
|
|
850
|
+
/* Counts must not flex-shrink below their text and padding in narrow rows. */
|
|
851
|
+
.hjm-counter-badge { flex-shrink: 0; display: inline-grid; place-items: center; min-inline-size: 20px; block-size: 20px; padding-inline: var(--hjm-space-xs); border-radius: var(--hjm-radius-full); color: var(--hjm-color-bg); background: var(--hjm-color-text); font-size: var(--hjm-type-caption-size); line-height: 1; font-weight: var(--hjm-font-weight-bold); font-variant-numeric: tabular-nums; }
|
|
863
852
|
.hjm-counter-badge[data-size="small"] { min-inline-size: 16px; block-size: 16px; padding-inline: var(--hjm-space-xxs); }
|
|
864
853
|
.hjm-counter-badge[data-tone="brand"] { color: var(--hjm-color-on-primary); background: var(--hjm-color-primary); }
|
|
865
854
|
.hjm-counter-badge[data-tone="danger"] { color: var(--hjm-color-on-danger); background: var(--hjm-color-danger-fill); }
|
|
@@ -886,7 +875,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
886
875
|
.hjm-list-row[data-density="relaxed"][data-lines="two"] { min-block-size: var(--hjm-list-row-relaxed-two-line); }
|
|
887
876
|
.hjm-list-row[data-density="spacious"] { min-block-size: var(--hjm-list-row-spacious-one-line); padding-inline: var(--hjm-list-row-spacious-padding-inline); padding-block: var(--hjm-list-row-spacious-padding-block); }
|
|
888
877
|
.hjm-list-row[data-density="spacious"][data-lines="two"] { min-block-size: var(--hjm-list-row-spacious-two-line); }
|
|
889
|
-
.hjm-list-row[data-state="selected"] { background: var(--hjm-color-
|
|
878
|
+
.hjm-list-row[data-state="selected"] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
890
879
|
.hjm-list-row[data-state="disabled"] { opacity: 0.5; cursor: not-allowed; }
|
|
891
880
|
.hjm-list-row__leading, .hjm-list-row__trailing { flex: 0 0 auto; }
|
|
892
881
|
/* `leadingSize` was declared by the recipe but unbound, so consumers rebuilt
|
|
@@ -908,16 +897,16 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
908
897
|
.hjm-section__header { align-items: stretch; flex-direction: column; }
|
|
909
898
|
}
|
|
910
899
|
|
|
911
|
-
.hjm-chip { min-block-size: var(--hjm-control-min-touch-target); display: inline-flex; align-items: center; gap: var(--hjm-space-xs); padding-inline: var(--hjm-space-sm); border: 1px solid var(--hjm-color-border); border-radius: 999px; background: var(--hjm-color-
|
|
900
|
+
.hjm-chip { min-block-size: var(--hjm-control-min-touch-target); display: inline-flex; align-items: center; gap: var(--hjm-space-xs); padding-inline: var(--hjm-space-sm); border: 1px solid var(--hjm-color-border); border-radius: 999px; background: var(--hjm-color-bg); color: var(--hjm-color-text-body); font: inherit; font-weight: var(--hjm-font-weight-medium); cursor: pointer; }
|
|
912
901
|
.hjm-chip[data-size="small"] { min-block-size: 36px; padding-inline: var(--hjm-space-xs); }
|
|
913
|
-
.hjm-chip[data-selected] { border-color: var(--hjm-color-content-brand); background: var(--hjm-color-
|
|
902
|
+
.hjm-chip[data-selected] { border-color: var(--hjm-color-content-brand); background: var(--hjm-color-bg); color: var(--hjm-color-content-brand); }
|
|
914
903
|
.hjm-chip:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
915
904
|
.hjm-chip:focus-visible { outline: var(--hjm-focus-width) solid var(--hjm-color-focus); outline-offset: var(--hjm-focus-offset); }
|
|
916
905
|
.hjm-chip__indicator, .hjm-chip__leading, .hjm-chip__trailing { display: inline-flex; flex: 0 0 auto; }
|
|
917
906
|
.hjm-chip__label { overflow-wrap: anywhere; }
|
|
918
907
|
|
|
919
908
|
.hjm-list { overflow: hidden; min-inline-size: 0; }
|
|
920
|
-
.hjm-list[data-appearance="grouped"] { border-radius: var(--hjm-radius-lg); background: var(--hjm-color-
|
|
909
|
+
.hjm-list[data-appearance="grouped"] { border-radius: var(--hjm-radius-lg); background: var(--hjm-color-bg); }
|
|
921
910
|
.hjm-list__item { min-inline-size: 0; }
|
|
922
911
|
.hjm-list[data-separator="full"] > .hjm-list__item + .hjm-list__item { border-block-start: 1px solid var(--hjm-color-border); }
|
|
923
912
|
/* Indent only the divider: moving the row shifted every title after the first
|
|
@@ -926,7 +915,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
926
915
|
.hjm-list[data-separator="indented"] > .hjm-list__item + .hjm-list__item::before { content: ""; position: absolute; inset-block-start: 0; inset-inline: var(--hjm-space-xl) 0; border-block-start: 1px solid var(--hjm-color-border); pointer-events: none; }
|
|
927
916
|
|
|
928
917
|
.hjm-statistic { display: grid; gap: var(--hjm-space-xxs); min-inline-size: 0; color: var(--hjm-color-text-body); }
|
|
929
|
-
.hjm-statistic[data-presentation="surface"] { padding: var(--hjm-space-md); border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); background: var(--hjm-color-
|
|
918
|
+
.hjm-statistic[data-presentation="surface"] { padding: var(--hjm-space-md); border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); background: var(--hjm-color-bg); }
|
|
930
919
|
.hjm-statistic[data-density="compact"] { gap: 2px; }
|
|
931
920
|
.hjm-statistic__label { color: var(--hjm-color-text-muted); font-weight: var(--hjm-font-weight-medium); overflow-wrap: anywhere; }
|
|
932
921
|
.hjm-statistic__value-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--hjm-space-xxs); min-inline-size: 0; }
|
|
@@ -941,7 +930,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
941
930
|
.hjm-statistic-group { grid-template-columns: minmax(0, 1fr); }
|
|
942
931
|
}
|
|
943
932
|
|
|
944
|
-
.hjm-notice { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--hjm-space-sm); padding: var(--hjm-space-md); border: 1px solid; border-radius: var(--hjm-radius-md); color: var(--hjm-color-text-body); background: var(--hjm-color-
|
|
933
|
+
.hjm-notice { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--hjm-space-sm); padding: var(--hjm-space-md); border: 1px solid; border-radius: var(--hjm-radius-md); color: var(--hjm-color-text-body); background: var(--hjm-color-bg); border-color: var(--hjm-color-border); }
|
|
945
934
|
.hjm-notice[data-tone="info"] { border-color: var(--hjm-accent-info); }
|
|
946
935
|
.hjm-notice[data-tone="success"] { border-color: var(--hjm-accent-success); background: color-mix(in srgb, var(--hjm-accent-success) 10%, var(--hjm-color-bg)); }
|
|
947
936
|
.hjm-notice[data-tone="warning"] { border-color: var(--hjm-accent-warning); background: color-mix(in srgb, var(--hjm-accent-warning) 10%, var(--hjm-color-bg)); }
|
|
@@ -962,7 +951,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
962
951
|
.hjm-result[data-status="success"] .hjm-result__icon:empty::before { content: "✓"; }
|
|
963
952
|
.hjm-result[data-status="failure"] .hjm-result__icon { color: var(--hjm-color-danger); background: color-mix(in srgb, var(--hjm-color-danger) 12%, transparent); }
|
|
964
953
|
.hjm-result[data-status="failure"] .hjm-result__icon:empty::before { content: "!"; }
|
|
965
|
-
.hjm-result[data-status="info"] .hjm-result__icon { color: var(--hjm-accent-info); background:
|
|
954
|
+
.hjm-result[data-status="info"] .hjm-result__icon { color: var(--hjm-accent-info); background: var(--hjm-color-bg); }
|
|
966
955
|
.hjm-result__title { margin: 0; color: var(--hjm-color-text); font-size: var(--hjm-type-title-large-size); line-height: var(--hjm-type-title-large-line-height); overflow-wrap: anywhere; }
|
|
967
956
|
.hjm-result__description { max-inline-size: 40rem; margin: 0; color: var(--hjm-color-text-muted); overflow-wrap: anywhere; }
|
|
968
957
|
.hjm-result__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--hjm-space-sm); margin-block-start: var(--hjm-space-xs); }
|
|
@@ -1036,7 +1025,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1036
1025
|
.hjm-spinner[data-size="small"] { font-size: 14px; }
|
|
1037
1026
|
.hjm-spinner[data-size="medium"] { font-size: 20px; }
|
|
1038
1027
|
.hjm-spinner[data-size="large"] { font-size: 28px; }
|
|
1039
|
-
.hjm-skeleton { display: block; inline-size: 100%; min-block-size: var(--hjm-space-xxl); border-radius: var(--hjm-radius-md); background: var(--hjm-color-
|
|
1028
|
+
.hjm-skeleton { border: 1px solid var(--hjm-color-border); display: block; inline-size: 100%; min-block-size: var(--hjm-space-xxl); border-radius: var(--hjm-radius-md); background: var(--hjm-color-bg); }
|
|
1040
1029
|
.hjm-skeleton[data-shape="text"] { min-block-size: var(--hjm-space-md); border-radius: var(--hjm-radius-sm); }
|
|
1041
1030
|
.hjm-skeleton[data-shape="circle"] { inline-size: var(--hjm-skeleton-circle-size); block-size: var(--hjm-skeleton-circle-size); border-radius: var(--hjm-radius-full); }
|
|
1042
1031
|
.hjm-skeleton[data-animated="true"] { animation: hjm-pulse var(--hjm-skeleton-duration) var(--hjm-skeleton-easing) infinite alternate; }
|
|
@@ -1056,7 +1045,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1056
1045
|
overflow: hidden;
|
|
1057
1046
|
border: 1px solid var(--hjm-color-border);
|
|
1058
1047
|
border-radius: var(--hjm-radius-lg);
|
|
1059
|
-
background: var(--hjm-color-
|
|
1048
|
+
background: var(--hjm-color-bg);
|
|
1060
1049
|
box-shadow: 0 16px 48px rgb(0 0 0 / 28%);
|
|
1061
1050
|
}
|
|
1062
1051
|
.hjm-command-palette__search {
|
|
@@ -1080,7 +1069,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1080
1069
|
padding-inline: var(--hjm-space-sm);
|
|
1081
1070
|
border-radius: var(--hjm-radius-sm);
|
|
1082
1071
|
}
|
|
1083
|
-
.hjm-command-palette__item[aria-selected="true"] { background: var(--hjm-color-
|
|
1072
|
+
.hjm-command-palette__item[aria-selected="true"] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
1084
1073
|
.hjm-command-palette__item[aria-disabled="true"] { color: var(--hjm-color-text-weak); }
|
|
1085
1074
|
.hjm-command-palette__item[data-tone="danger"] { color: var(--hjm-color-danger); }
|
|
1086
1075
|
.hjm-command-palette__copy { display: flex; min-inline-size: 0; flex: 1 1 auto; flex-wrap: wrap; align-items: baseline; gap: var(--hjm-space-xs); overflow-wrap: anywhere; }
|
|
@@ -1124,6 +1113,9 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1124
1113
|
color: var(--hjm-color-on-primary);
|
|
1125
1114
|
font-size: var(--hjm-type-label-size);
|
|
1126
1115
|
}
|
|
1116
|
+
/* 44px hit slop without growing the mark (2026-09-30 audit WR-0930-5/7) */
|
|
1117
|
+
.hjm-data-table__check, .hjm-data-table__sort, .hjm-transfer-list__select-all { position: relative; }
|
|
1118
|
+
.hjm-data-table__check::after, .hjm-data-table__sort::after, .hjm-transfer-list__select-all::after { content: ""; position: absolute; inset: calc(50% - var(--hjm-control-min-touch-target) / 2); }
|
|
1127
1119
|
.hjm-data-table__check[aria-checked="true"],
|
|
1128
1120
|
.hjm-data-table__check[aria-checked="mixed"] { border-color: var(--hjm-color-primary); background: var(--hjm-color-primary); }
|
|
1129
1121
|
.hjm-data-table__sort:focus-visible,
|
|
@@ -1160,7 +1152,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1160
1152
|
border-radius: var(--hjm-radius-sm);
|
|
1161
1153
|
overflow-wrap: anywhere;
|
|
1162
1154
|
}
|
|
1163
|
-
.hjm-mentions__option[aria-selected="true"] { background: var(--hjm-color-
|
|
1155
|
+
.hjm-mentions__option[aria-selected="true"] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
1164
1156
|
.hjm-mentions__description { color: var(--hjm-color-text-muted); font-size: var(--hjm-type-label-size); }
|
|
1165
1157
|
.hjm-mentions__empty { margin: 0; padding: var(--hjm-space-xs); color: var(--hjm-color-text-muted); }
|
|
1166
1158
|
|
|
@@ -1217,7 +1209,12 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1217
1209
|
border-radius: var(--hjm-radius-sm);
|
|
1218
1210
|
overflow-wrap: anywhere;
|
|
1219
1211
|
}
|
|
1220
|
-
|
|
1212
|
+
/* The label is a flex item; reset its intrinsic min-width so long localized values wrap inside a narrow panel. */
|
|
1213
|
+
.hjm-transfer-list__option > span:last-child { min-inline-size: 0; overflow-wrap: anywhere; }
|
|
1214
|
+
/* Panel headings and empty-state copy share the same narrow column as rows. */
|
|
1215
|
+
.hjm-transfer-list__title,
|
|
1216
|
+
.hjm-transfer-list__empty { min-inline-size: 0; overflow-wrap: anywhere; }
|
|
1217
|
+
.hjm-transfer-list__option[aria-selected="true"] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
1221
1218
|
.hjm-transfer-list__option[aria-disabled="true"] { color: var(--hjm-color-text-weak); }
|
|
1222
1219
|
.hjm-transfer-list__option:focus-visible,
|
|
1223
1220
|
.hjm-transfer-list__empty:focus-visible,
|
|
@@ -1226,12 +1223,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1226
1223
|
.hjm-transfer-list__actions { display: flex; flex-direction: column; gap: var(--hjm-space-xs); padding-block-start: var(--hjm-space-xl); }
|
|
1227
1224
|
|
|
1228
1225
|
/* AuthProviderButton ------------------------------------------------------ */
|
|
1229
|
-
/*
|
|
1230
|
-
|
|
1231
|
-
never from the theme: recoloring them would fail provider review. HJM keeps
|
|
1232
|
-
the height, radius, target and focus ring so a stack of providers lines up,
|
|
1233
|
-
and the ring is drawn outside the fill so it survives every brand color.
|
|
1234
|
-
*/
|
|
1226
|
+
/* Provider guideline colors cannot follow the theme without failing provider review.
|
|
1227
|
+
HJM owns geometry and an outer focus ring that remains visible on every brand fill. */
|
|
1235
1228
|
.hjm-auth-provider-button {
|
|
1236
1229
|
display: flex;
|
|
1237
1230
|
align-items: center;
|
|
@@ -1283,10 +1276,14 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1283
1276
|
selection semantics underneath. The hovered preview uses the same states, so
|
|
1284
1277
|
there is one set of rules rather than a committed and a provisional set.
|
|
1285
1278
|
*/
|
|
1279
|
+
/* Each hit/hover layer belongs to its own day. Without this containing block
|
|
1280
|
+
the last absolute layer covered the whole preview and stole pointer clicks. */
|
|
1281
|
+
.hjm-date-range .hjm-calendar__day { position: relative; isolation: isolate; }
|
|
1282
|
+
.hjm-date-range .hjm-calendar__day-label { position: relative; z-index: 1; pointer-events: none; }
|
|
1286
1283
|
.hjm-date-range__cell { position: absolute; inset: 0; border-radius: var(--hjm-radius-sm); pointer-events: auto; }
|
|
1287
|
-
.hjm-date-range__cell[data-range="between"] {
|
|
1284
|
+
.hjm-date-range__cell[data-range="between"] { box-shadow: inset 0 -2px var(--hjm-color-content-brand); background: var(--hjm-color-bg); }
|
|
1288
1285
|
.hjm-date-range__cell[data-range="start"],
|
|
1289
|
-
.hjm-date-range__cell[data-range="end"] { background: var(--hjm-color-
|
|
1286
|
+
.hjm-date-range__cell[data-range="end"] { background: var(--hjm-color-bg); outline: 2px solid var(--hjm-color-focus); }
|
|
1290
1287
|
.hjm-date-range__cell[data-range="none"] { background: transparent; }
|
|
1291
1288
|
|
|
1292
1289
|
/* AvatarGroup: overlap comes from the recipe ratio, not a per-size pixel value. */
|
|
@@ -1301,7 +1298,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1301
1298
|
padding-inline: var(--hjm-space-xxs);
|
|
1302
1299
|
border: 2px solid var(--hjm-color-bg);
|
|
1303
1300
|
border-radius: var(--hjm-radius-full);
|
|
1304
|
-
background: var(--hjm-color-
|
|
1301
|
+
background: var(--hjm-color-bg);
|
|
1305
1302
|
color: var(--hjm-color-text-muted);
|
|
1306
1303
|
font-size: var(--hjm-type-label-size);
|
|
1307
1304
|
}
|
|
@@ -1321,7 +1318,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1321
1318
|
.hjm-text-format[data-kind="code"] {
|
|
1322
1319
|
padding-inline: var(--hjm-space-xxs);
|
|
1323
1320
|
border-radius: var(--hjm-radius-sm);
|
|
1324
|
-
background: var(--hjm-color-
|
|
1321
|
+
background: var(--hjm-color-bg);
|
|
1325
1322
|
font-family: var(--hjm-font-family-code, ui-monospace, SFMono-Regular, Consolas, monospace);
|
|
1326
1323
|
}
|
|
1327
1324
|
.hjm-text-format[data-kind="kbd"] {
|
|
@@ -1346,6 +1343,9 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1346
1343
|
position: absolute;
|
|
1347
1344
|
inset-block-start: var(--hjm-skip-nav-offset);
|
|
1348
1345
|
inset-inline-start: var(--hjm-skip-nav-offset);
|
|
1346
|
+
/* A localized skip label can be longer than a narrow viewport; keep the focused link on-screen. */
|
|
1347
|
+
box-sizing: border-box;
|
|
1348
|
+
max-inline-size: calc(100vw - var(--hjm-skip-nav-offset) * 2);
|
|
1349
1349
|
z-index: 1300;
|
|
1350
1350
|
display: inline-flex;
|
|
1351
1351
|
align-items: center;
|
|
@@ -1355,6 +1355,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1355
1355
|
background: var(--hjm-color-primary);
|
|
1356
1356
|
color: var(--hjm-color-on-primary);
|
|
1357
1357
|
text-decoration: none;
|
|
1358
|
+
overflow-wrap: anywhere;
|
|
1358
1359
|
transform: translateY(calc(-100% - var(--hjm-skip-nav-offset) * 2));
|
|
1359
1360
|
}
|
|
1360
1361
|
.hjm-skip-nav:focus-visible,
|
|
@@ -1428,7 +1429,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1428
1429
|
min-block-size: 100%;
|
|
1429
1430
|
padding: var(--hjm-space-sm) var(--hjm-space-xs);
|
|
1430
1431
|
border-inline-end: 1px solid var(--hjm-color-border);
|
|
1431
|
-
background: var(--hjm-color-
|
|
1432
|
+
background: var(--hjm-color-bg);
|
|
1432
1433
|
overflow: auto;
|
|
1433
1434
|
}
|
|
1434
1435
|
.hjm-sidebar__toggle {
|
|
@@ -1449,6 +1450,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1449
1450
|
color: var(--hjm-color-text-muted);
|
|
1450
1451
|
font-size: var(--hjm-type-label-size);
|
|
1451
1452
|
font-weight: var(--hjm-type-label-weight);
|
|
1453
|
+
/* The rail has a fixed width; wrap long localized headings so their meaning stays visible instead of clipping or widening the shell. */
|
|
1454
|
+
overflow-wrap: anywhere;
|
|
1452
1455
|
}
|
|
1453
1456
|
.hjm-sidebar__list { display: flex; flex-direction: column; gap: var(--hjm-sidebar-gap); margin: 0; padding: 0; list-style: none; }
|
|
1454
1457
|
.hjm-sidebar__item {
|
|
@@ -1463,10 +1466,10 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1463
1466
|
overflow-wrap: anywhere;
|
|
1464
1467
|
}
|
|
1465
1468
|
.hjm-sidebar__item[aria-current="page"] {
|
|
1466
|
-
background: var(--hjm-color-
|
|
1469
|
+
background: var(--hjm-color-bg);
|
|
1467
1470
|
color: var(--hjm-color-content-brand);
|
|
1468
1471
|
font-weight: var(--hjm-font-weight-semibold);
|
|
1469
|
-
}
|
|
1472
|
+
box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
1470
1473
|
.hjm-sidebar__item[aria-disabled="true"] { color: var(--hjm-color-text-weak); }
|
|
1471
1474
|
.hjm-sidebar__item:focus-visible,
|
|
1472
1475
|
.hjm-sidebar__toggle:focus-visible { outline: 2px solid var(--hjm-color-focus); outline-offset: -2px; }
|
|
@@ -1490,7 +1493,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1490
1493
|
padding-inline: var(--hjm-toggle-padding);
|
|
1491
1494
|
border: 1px solid var(--hjm-color-border-control);
|
|
1492
1495
|
border-radius: var(--hjm-toggle-radius);
|
|
1493
|
-
background: var(--hjm-color-
|
|
1496
|
+
background: var(--hjm-color-bg);
|
|
1494
1497
|
color: var(--hjm-color-text-body);
|
|
1495
1498
|
font: inherit;
|
|
1496
1499
|
cursor: pointer;
|
|
@@ -1498,7 +1501,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1498
1501
|
/* The pressed state is announced by aria-pressed; color only reinforces it. */
|
|
1499
1502
|
.hjm-toggle-group__item[aria-pressed="true"] {
|
|
1500
1503
|
border-color: var(--hjm-color-focus);
|
|
1501
|
-
background: var(--hjm-color-
|
|
1504
|
+
background: var(--hjm-color-bg);
|
|
1502
1505
|
color: var(--hjm-color-content-brand);
|
|
1503
1506
|
font-weight: var(--hjm-font-weight-semibold);
|
|
1504
1507
|
}
|
|
@@ -1529,7 +1532,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1529
1532
|
min-block-size: var(--hjm-tags-tag-min-height);
|
|
1530
1533
|
padding-inline: var(--hjm-space-xs);
|
|
1531
1534
|
border-radius: var(--hjm-radius-full);
|
|
1532
|
-
background: var(--hjm-color-
|
|
1535
|
+
background: var(--hjm-color-bg);
|
|
1533
1536
|
color: var(--hjm-color-text-body);
|
|
1534
1537
|
overflow-wrap: anywhere;
|
|
1535
1538
|
}
|
|
@@ -1554,7 +1557,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1554
1557
|
min-inline-size: var(--hjm-tags-remove-target);
|
|
1555
1558
|
min-block-size: var(--hjm-tags-remove-target);
|
|
1556
1559
|
}
|
|
1557
|
-
.hjm-tags-input__tag { position: relative; }
|
|
1560
|
+
.hjm-tags-input__tag { position: relative; border: 1px solid var(--hjm-color-border-control); }
|
|
1558
1561
|
.hjm-tags-input__input {
|
|
1559
1562
|
flex: 1 1 8ch;
|
|
1560
1563
|
min-inline-size: 8ch;
|
|
@@ -1585,7 +1588,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1585
1588
|
cursor: pointer;
|
|
1586
1589
|
overflow-wrap: anywhere;
|
|
1587
1590
|
}
|
|
1588
|
-
.hjm-tags-input__suggestion[aria-selected="true"] {
|
|
1591
|
+
.hjm-tags-input__suggestion[aria-selected="true"] { box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); background: var(--hjm-color-bg); }
|
|
1589
1592
|
.hjm-tags-input__suggestion[aria-disabled="true"] { color: var(--hjm-color-text-weak); cursor: default; }
|
|
1590
1593
|
.hjm-tags-input__description { margin: 0; color: var(--hjm-color-text-muted); font-size: var(--hjm-type-label-size); }
|
|
1591
1594
|
.hjm-tags-input[data-disabled] .hjm-tags-input__frame { opacity: 0.6; cursor: default; }
|
|
@@ -1665,7 +1668,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1665
1668
|
gap: var(--hjm-space-sm);
|
|
1666
1669
|
padding: var(--hjm-space-sm) var(--hjm-space-md);
|
|
1667
1670
|
border-radius: var(--hjm-radius-md);
|
|
1668
|
-
background: var(--hjm-color-
|
|
1671
|
+
background: var(--hjm-color-bg);
|
|
1669
1672
|
font-size: var(--hjm-type-body-large-size);
|
|
1670
1673
|
line-height: var(--hjm-type-body-large-line-height);
|
|
1671
1674
|
}
|
|
@@ -1717,12 +1720,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1717
1720
|
.hjm-agreement__detail:focus-visible { outline: 2px solid var(--hjm-color-focus); outline-offset: 2px; }
|
|
1718
1721
|
|
|
1719
1722
|
/* Tree -------------------------------------------------------------------- */
|
|
1720
|
-
/*
|
|
1721
|
-
|
|
1722
|
-
roving tab stop and the contract's visible-node navigation both operate on one
|
|
1723
|
-
resolved array, and WAI-ARIA accepts either shape. Indentation is presentation
|
|
1724
|
-
only — depth is announced, never inferred from the padding.
|
|
1725
|
-
*/
|
|
1723
|
+
/* Flat aria-level treeitems match the contract's visible-node array and roving focus.
|
|
1724
|
+
WAI-ARIA permits this shape; depth is announced rather than inferred from indentation. */
|
|
1726
1725
|
.hjm-tree { display: flex; flex-direction: column; }
|
|
1727
1726
|
.hjm-tree__node {
|
|
1728
1727
|
display: flex;
|
|
@@ -1735,7 +1734,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1735
1734
|
color: var(--hjm-color-text);
|
|
1736
1735
|
cursor: default;
|
|
1737
1736
|
}
|
|
1738
|
-
.hjm-tree__node[aria-selected="true"] { background: var(--hjm-color-
|
|
1737
|
+
.hjm-tree__node[aria-selected="true"] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
1739
1738
|
.hjm-tree__node[aria-disabled="true"] { color: var(--hjm-color-text-weak); }
|
|
1740
1739
|
.hjm-tree__node:focus-visible { outline: 2px solid var(--hjm-color-focus); outline-offset: -2px; }
|
|
1741
1740
|
.hjm-tree__indent { flex: 0 0 auto; inline-size: calc(var(--hjm-tree-depth) * var(--hjm-tree-indent)); }
|
|
@@ -1809,7 +1808,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1809
1808
|
align-items: center;
|
|
1810
1809
|
justify-content: center;
|
|
1811
1810
|
padding: var(--hjm-space-md);
|
|
1812
|
-
background:
|
|
1811
|
+
background: var(--hjm-backdrop-modal);
|
|
1813
1812
|
overscroll-behavior: contain;
|
|
1814
1813
|
}
|
|
1815
1814
|
.hjm-dialog,
|
|
@@ -1858,6 +1857,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1858
1857
|
overflow-wrap: anywhere;
|
|
1859
1858
|
}
|
|
1860
1859
|
.hjm-dialog > .hjm-dialog__description { padding-inline: var(--hjm-space-lg); }
|
|
1860
|
+
/* Consumer-authored identifiers can be unbroken; keep modal body text inside the narrow viewport. */
|
|
1861
|
+
.hjm-dialog__body { overflow-wrap: anywhere; }
|
|
1861
1862
|
.hjm-dialog__body,
|
|
1862
1863
|
.hjm-sheet__body { padding: var(--hjm-space-lg); }
|
|
1863
1864
|
.hjm-dialog__footer,
|
|
@@ -1976,12 +1977,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1976
1977
|
.hjm-sheet[data-placement="end"] {
|
|
1977
1978
|
block-size: calc(100dvh - (2 * var(--hjm-space-md)));
|
|
1978
1979
|
}
|
|
1979
|
-
/*
|
|
1980
|
-
|
|
1981
|
-
Dialog/Sheet cards keep (sidePanelRecipe.content.radius is null) and spans the
|
|
1982
|
-
full block size. The non-modal panel has no backdrop element at all — the page
|
|
1983
|
-
behind it stays interactive — so it positions itself instead of a positioner.
|
|
1984
|
-
*/
|
|
1980
|
+
/* sidePanelRecipe.content.radius=null: dock at a logical edge with full block height.
|
|
1981
|
+
Non-modal panels position themselves; no backdrop may block the interactive page. */
|
|
1985
1982
|
.hjm-side-panel-positioner { padding: 0; }
|
|
1986
1983
|
.hjm-side-panel-positioner[data-edge="start"] { justify-content: flex-start; }
|
|
1987
1984
|
.hjm-side-panel-positioner[data-edge="end"] { justify-content: flex-end; }
|
|
@@ -1995,7 +1992,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1995
1992
|
border: 1px solid var(--hjm-color-border);
|
|
1996
1993
|
border-radius: 0;
|
|
1997
1994
|
color: var(--hjm-color-text);
|
|
1998
|
-
background: var(--hjm-color-
|
|
1995
|
+
background: var(--hjm-color-bg);
|
|
1999
1996
|
box-shadow: 0 16px 48px rgb(0 0 0 / 28%);
|
|
2000
1997
|
}
|
|
2001
1998
|
.hjm-side-panel[data-modal="false"] {
|
|
@@ -2047,13 +2044,9 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2047
2044
|
padding: var(--hjm-space-sm) var(--hjm-space-lg)
|
|
2048
2045
|
max(var(--hjm-space-sm), env(safe-area-inset-bottom, 0px));
|
|
2049
2046
|
}
|
|
2050
|
-
/*
|
|
2051
|
-
|
|
2052
|
-
|
|
2053
|
-
popup helper owns the card's coordinates. The highlight is a ring drawn at the
|
|
2054
|
-
measured anchor box — decoration only, so it is hidden from assistive tech.
|
|
2055
|
-
*/
|
|
2056
|
-
.hjm-tour-backdrop { position: fixed; inset: 0; background: rgb(0 0 0 / 58%); pointer-events: auto; }
|
|
2047
|
+
/* Separate portals let Tour's veil cover the page while the shared popup helper anchors
|
|
2048
|
+
its card. The measured highlight ring is decorative and hidden from assistive tech. */
|
|
2049
|
+
.hjm-tour-backdrop { position: fixed; inset: 0; background: var(--hjm-backdrop-modal); pointer-events: auto; }
|
|
2057
2050
|
.hjm-tour-highlight {
|
|
2058
2051
|
position: fixed;
|
|
2059
2052
|
border-radius: var(--hjm-radius-md);
|
|
@@ -2064,12 +2057,15 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2064
2057
|
display: flex;
|
|
2065
2058
|
flex-direction: column;
|
|
2066
2059
|
gap: var(--hjm-space-sm);
|
|
2060
|
+
/* The anchored popup is viewport-height bounded; scrolling keeps long translations and actions usable without truncating copy or detaching controls. */
|
|
2061
|
+
overflow-y: auto;
|
|
2062
|
+
overscroll-behavior: contain;
|
|
2067
2063
|
box-sizing: border-box;
|
|
2068
2064
|
padding: var(--hjm-space-md);
|
|
2069
2065
|
border: 1px solid var(--hjm-color-border);
|
|
2070
2066
|
border-radius: var(--hjm-radius-md);
|
|
2071
2067
|
color: var(--hjm-color-text);
|
|
2072
|
-
background: var(--hjm-color-
|
|
2068
|
+
background: var(--hjm-color-bg);
|
|
2073
2069
|
box-shadow: 0 16px 48px rgb(0 0 0 / 28%);
|
|
2074
2070
|
pointer-events: auto;
|
|
2075
2071
|
}
|
|
@@ -2105,7 +2101,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2105
2101
|
padding: var(--hjm-space-xxs);
|
|
2106
2102
|
border: 1px solid var(--hjm-color-border);
|
|
2107
2103
|
border-radius: var(--hjm-radius-md);
|
|
2108
|
-
background: var(--hjm-color-
|
|
2104
|
+
background: var(--hjm-color-bg);
|
|
2109
2105
|
box-shadow: 0 8px 24px rgb(0 0 0 / 18%);
|
|
2110
2106
|
}
|
|
2111
2107
|
.hjm-menu__item {
|
|
@@ -2125,7 +2121,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2125
2121
|
}
|
|
2126
2122
|
.hjm-menu__content[data-density="comfortable"] .hjm-menu__item { min-block-size: 3.5rem; }
|
|
2127
2123
|
.hjm-menu__item:hover,
|
|
2128
|
-
.hjm-menu__item[data-focus="true"] { background: var(--hjm-color-
|
|
2124
|
+
.hjm-menu__item[data-focus="true"] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
2129
2125
|
.hjm-menu__item[data-tone="danger"] { color: var(--hjm-color-danger); }
|
|
2130
2126
|
.hjm-menu__item[data-state="selected"] { color: var(--hjm-color-content-brand); font-weight: var(--hjm-font-weight-semibold); }
|
|
2131
2127
|
.hjm-menu__item:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
@@ -2150,13 +2146,13 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2150
2146
|
.hjm-select__indicator { flex: 0 0 auto; color: var(--hjm-color-text-muted); pointer-events: none; }
|
|
2151
2147
|
.hjm-select__busy-indicator { flex: 0 0 auto; inline-size: 1em; block-size: 1em; border: 2px solid var(--hjm-color-content-brand); border-inline-end-color: transparent; border-radius: 50%; animation: hjm-spin 800ms linear infinite; }
|
|
2152
2148
|
.hjm-select__native + .hjm-select__indicator { margin-inline-start: calc(-1 * var(--hjm-space-lg)); }
|
|
2153
|
-
.hjm-select__listbox { position: fixed; z-index: 800; max-inline-size: min(26.25rem, calc(100vw - (2 * var(--hjm-space-md)))); max-block-size: 22.5rem; overflow: auto; padding: var(--hjm-space-xxs); border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); background: var(--hjm-color-
|
|
2149
|
+
.hjm-select__listbox { position: fixed; z-index: 800; max-inline-size: min(26.25rem, calc(100vw - (2 * var(--hjm-space-md)))); max-block-size: 22.5rem; overflow: auto; padding: var(--hjm-space-xxs); border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); background: var(--hjm-color-bg); box-shadow: 0 8px 24px rgb(0 0 0 / 18%); }
|
|
2154
2150
|
.hjm-select__section-label { padding: var(--hjm-space-xs) var(--hjm-space-sm); color: var(--hjm-color-text-muted); font-size: var(--hjm-type-label-size); font-weight: var(--hjm-font-weight-semibold); }
|
|
2155
2151
|
.hjm-select__option, .hjm-select__message { min-block-size: var(--hjm-control-min-touch-target); display: flex; align-items: center; gap: var(--hjm-space-sm); padding: var(--hjm-space-xs) var(--hjm-space-sm); border-radius: var(--hjm-radius-sm); overflow-wrap: anywhere; }
|
|
2156
2152
|
.hjm-select[data-density="comfortable"] .hjm-select__option,
|
|
2157
2153
|
.hjm-select__listbox[data-density="comfortable"] .hjm-select__option { min-block-size: 3.5rem; }
|
|
2158
2154
|
.hjm-select__option { cursor: pointer; }
|
|
2159
|
-
.hjm-select__option[data-active="true"] {
|
|
2155
|
+
.hjm-select__option[data-active="true"] { box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); background: var(--hjm-color-bg); }
|
|
2160
2156
|
.hjm-select__option[data-state="selected"] { color: var(--hjm-color-content-brand); font-weight: var(--hjm-font-weight-bold); }
|
|
2161
2157
|
.hjm-select__option[data-state="disabled"] { opacity: 0.5; cursor: not-allowed; }
|
|
2162
2158
|
.hjm-select__option-copy { min-inline-size: 0; flex: 1 1 auto; display: grid; gap: var(--hjm-space-xxs); }
|
|
@@ -2182,7 +2178,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2182
2178
|
padding: var(--hjm-space-xxs);
|
|
2183
2179
|
border: 1px solid var(--hjm-color-border);
|
|
2184
2180
|
border-radius: var(--hjm-radius-md);
|
|
2185
|
-
background: var(--hjm-color-
|
|
2181
|
+
background: var(--hjm-color-bg);
|
|
2186
2182
|
box-shadow: 0 8px 24px rgb(0 0 0 / 18%);
|
|
2187
2183
|
}
|
|
2188
2184
|
.hjm-combobox__option,
|
|
@@ -2197,7 +2193,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2197
2193
|
.hjm-combobox[data-density="comfortable"] .hjm-combobox__option,
|
|
2198
2194
|
.hjm-combobox__listbox[data-density="comfortable"] .hjm-combobox__option { min-block-size: 3.5rem; }
|
|
2199
2195
|
.hjm-combobox__option { cursor: pointer; }
|
|
2200
|
-
.hjm-combobox__option[data-state="active"] {
|
|
2196
|
+
.hjm-combobox__option[data-state="active"] { box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); background: var(--hjm-color-bg); }
|
|
2201
2197
|
.hjm-combobox__option[data-state="selected"] { color: var(--hjm-color-content-brand); font-weight: var(--hjm-font-weight-bold); }
|
|
2202
2198
|
.hjm-combobox__option[data-state="disabled"] { opacity: 0.5; cursor: not-allowed; }
|
|
2203
2199
|
.hjm-combobox__message { color: var(--hjm-color-text-muted); }
|
|
@@ -2241,7 +2237,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2241
2237
|
cursor: pointer;
|
|
2242
2238
|
}
|
|
2243
2239
|
.hjm-accordion[data-density="compact"] .hjm-accordion__trigger { min-block-size: var(--hjm-control-min-touch-target); padding-block: var(--hjm-space-xs); }
|
|
2244
|
-
.hjm-accordion__trigger:hover { background: var(--hjm-color-
|
|
2240
|
+
.hjm-accordion__trigger:hover { background: var(--hjm-color-bg); }
|
|
2245
2241
|
.hjm-accordion__trigger:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
2246
2242
|
.hjm-accordion__title { min-inline-size: 0; overflow-wrap: anywhere; }
|
|
2247
2243
|
.hjm-accordion__indicator { flex: 0 0 auto; color: var(--hjm-color-text-muted); }
|
|
@@ -2255,7 +2251,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2255
2251
|
border: 1px solid var(--hjm-color-border);
|
|
2256
2252
|
border-radius: 50%;
|
|
2257
2253
|
color: var(--hjm-color-text-muted);
|
|
2258
|
-
background: var(--hjm-color-
|
|
2254
|
+
background: var(--hjm-color-bg);
|
|
2259
2255
|
font-weight: var(--hjm-font-weight-bold);
|
|
2260
2256
|
}
|
|
2261
2257
|
.hjm-avatar[data-size="small"] { inline-size: 2rem; block-size: 2rem; font-size: var(--hjm-type-label-size); }
|
|
@@ -2278,10 +2274,10 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2278
2274
|
.hjm-table__caption { padding: var(--hjm-space-sm); color: var(--hjm-color-text); font-weight: var(--hjm-font-weight-bold); text-align: start; }
|
|
2279
2275
|
.hjm-table__header,
|
|
2280
2276
|
.hjm-table__cell { padding: var(--hjm-space-sm); border-block-end: 1px solid var(--hjm-color-border); text-align: start; vertical-align: top; overflow-wrap: anywhere; }
|
|
2281
|
-
.hjm-table__header { color: var(--hjm-color-text); background: var(--hjm-color-
|
|
2277
|
+
.hjm-table__header { color: var(--hjm-color-text); background: var(--hjm-color-bg); }
|
|
2282
2278
|
.hjm-table__header[data-align="center"], .hjm-table__cell[data-align="center"] { text-align: center; }
|
|
2283
2279
|
.hjm-table__header[data-align="end"], .hjm-table__cell[data-align="end"] { text-align: end; }
|
|
2284
|
-
.hjm-table__row:hover { background: var(--hjm-color-
|
|
2280
|
+
.hjm-table__row:hover { background: var(--hjm-color-bg); }
|
|
2285
2281
|
.hjm-table__sort { display: inline-flex; align-items: center; gap: var(--hjm-space-xxs); padding: var(--hjm-space-xxs); border: 0; color: inherit; background: transparent; font: inherit; font-weight: inherit; cursor: pointer; }
|
|
2286
2282
|
.hjm-table__empty { padding: var(--hjm-space-xl); color: var(--hjm-color-text-muted); text-align: center; }
|
|
2287
2283
|
|
|
@@ -2306,7 +2302,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2306
2302
|
border-radius: var(--hjm-radius-md);
|
|
2307
2303
|
}
|
|
2308
2304
|
.hjm-pagination__item { color: var(--hjm-color-text-body); background: transparent; font: inherit; cursor: pointer; }
|
|
2309
|
-
.hjm-pagination__item:hover:not([aria-disabled="true"]) { background: var(--hjm-color-
|
|
2305
|
+
.hjm-pagination__item:hover:not([aria-disabled="true"]) { background: var(--hjm-color-bg); }
|
|
2310
2306
|
.hjm-pagination__item[data-state="current"] { border-color: var(--hjm-color-content-brand); color: var(--hjm-color-content-brand); font-weight: var(--hjm-font-weight-bold); }
|
|
2311
2307
|
.hjm-pagination__item[aria-disabled="true"] { opacity: 0.5; cursor: not-allowed; }
|
|
2312
2308
|
.hjm-pagination__ellipsis { color: var(--hjm-color-text-muted); }
|
|
@@ -2323,10 +2319,10 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2323
2319
|
.hjm-steps { display: grid; grid-template-columns: repeat(var(--hjm-steps-count, auto-fit), minmax(0, 1fr)); gap: var(--hjm-space-xs); margin: 0; padding: 0; list-style: none; }
|
|
2324
2320
|
.hjm-steps__step { min-inline-size: 0; display: grid; gap: var(--hjm-space-xs); }
|
|
2325
2321
|
.hjm-steps__rail { display: flex; align-items: center; min-inline-size: 0; }
|
|
2326
|
-
.hjm-steps__indicator { flex: 0 0 auto; inline-size: 1.5rem; block-size: 1.5rem; display: grid; place-items: center; border: 1px solid var(--hjm-color-border); border-radius: 50%; color: var(--hjm-color-text-muted); background: var(--hjm-color-
|
|
2322
|
+
.hjm-steps__indicator { flex: 0 0 auto; inline-size: 1.5rem; block-size: 1.5rem; display: grid; place-items: center; border: 1px solid var(--hjm-color-border); border-radius: 50%; color: var(--hjm-color-text-muted); background: var(--hjm-color-bg); font-size: var(--hjm-type-label-size); font-weight: var(--hjm-font-weight-bold); }
|
|
2327
2323
|
.hjm-steps__connector { flex: 1 1 auto; block-size: 1px; background: var(--hjm-color-border); }
|
|
2328
2324
|
.hjm-steps__step[data-status="current"] .hjm-steps__indicator { border: 2px solid var(--hjm-color-content-brand); color: var(--hjm-color-content-brand); }
|
|
2329
|
-
.hjm-steps__step[data-status="complete"] .hjm-steps__indicator { border-color: var(--hjm-accent-success); color: var(--hjm-accent-success); background: var(--hjm-color-
|
|
2325
|
+
.hjm-steps__step[data-status="complete"] .hjm-steps__indicator { border-color: var(--hjm-accent-success); color: var(--hjm-accent-success); background: var(--hjm-color-bg); }
|
|
2330
2326
|
.hjm-steps__step[data-status="complete"] .hjm-steps__connector { background: var(--hjm-color-content-brand); }
|
|
2331
2327
|
.hjm-steps__step[data-status="error"] .hjm-steps__indicator { border: 2px solid var(--hjm-color-danger); color: var(--hjm-color-danger); background: var(--hjm-color-danger-fill); }
|
|
2332
2328
|
.hjm-steps__copy { min-inline-size: 0; display: grid; gap: var(--hjm-space-xxs); padding-inline-end: var(--hjm-space-sm); }
|
|
@@ -2337,8 +2333,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2337
2333
|
|
|
2338
2334
|
.hjm-file-picker { display: grid; gap: var(--hjm-space-xs); }
|
|
2339
2335
|
.hjm-file-picker__label { color: var(--hjm-color-text); font-weight: var(--hjm-font-weight-semibold); }
|
|
2340
|
-
.hjm-file-picker__dropzone { min-block-size: 8rem; display: grid; place-items: center; gap: var(--hjm-space-sm); padding: var(--hjm-space-xl); border: 1px dashed var(--hjm-color-border); border-radius: var(--hjm-radius-lg); color: var(--hjm-color-text-muted); background: var(--hjm-color-
|
|
2341
|
-
.hjm-file-picker[data-dragging] .hjm-file-picker__dropzone { border-color: var(--hjm-color-focus); background: var(--hjm-color-
|
|
2336
|
+
.hjm-file-picker__dropzone { min-block-size: 8rem; display: grid; place-items: center; gap: var(--hjm-space-sm); padding: var(--hjm-space-xl); border: 1px dashed var(--hjm-color-border); border-radius: var(--hjm-radius-lg); color: var(--hjm-color-text-muted); background: var(--hjm-color-bg); text-align: center; }
|
|
2337
|
+
.hjm-file-picker[data-dragging] .hjm-file-picker__dropzone { border-color: var(--hjm-color-focus); background: var(--hjm-color-bg); }
|
|
2342
2338
|
.hjm-file-picker__dropzone button { min-block-size: var(--hjm-control-min-touch-target); padding-inline: var(--hjm-space-md); border: 0; border-radius: var(--hjm-radius-md); color: var(--hjm-color-content-brand); background: transparent; font: inherit; font-weight: var(--hjm-font-weight-bold); cursor: pointer; }
|
|
2343
2339
|
.hjm-file-picker__hint { color: var(--hjm-color-text-muted); }
|
|
2344
2340
|
.hjm-file-picker__error { color: var(--hjm-color-danger); }
|
|
@@ -2360,12 +2356,12 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2360
2356
|
.hjm-date-picker { display: grid; gap: var(--hjm-space-xs); }
|
|
2361
2357
|
.hjm-date-picker__label { color: var(--hjm-color-text); font-weight: var(--hjm-font-weight-semibold); }
|
|
2362
2358
|
.hjm-date-picker__anchor { position: relative; display: flex; align-items: center; }
|
|
2363
|
-
.hjm-date-picker__trigger { inline-size: 100%; min-block-size: var(--hjm-control-min-touch-target); display: flex; align-items: center; gap: var(--hjm-space-sm); padding-inline: var(--hjm-space-md) 3rem; border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); color: var(--hjm-color-text-body); background: var(--hjm-color-
|
|
2359
|
+
.hjm-date-picker__trigger { inline-size: 100%; min-block-size: var(--hjm-control-min-touch-target); display: flex; align-items: center; gap: var(--hjm-space-sm); padding-inline: var(--hjm-space-md) 3rem; border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); color: var(--hjm-color-text-body); background: var(--hjm-color-bg); font: inherit; text-align: start; cursor: pointer; }
|
|
2364
2360
|
.hjm-date-picker[data-size="large"] .hjm-date-picker__trigger { min-block-size: 3.5rem; padding-inline-start: var(--hjm-space-lg); }
|
|
2365
2361
|
.hjm-date-picker[data-invalid] .hjm-date-picker__trigger { border-color: var(--hjm-color-danger); }
|
|
2366
2362
|
.hjm-date-picker__trigger [data-placeholder] { color: var(--hjm-color-text-muted); }
|
|
2367
2363
|
.hjm-date-picker__clear { position: absolute; inset-inline-end: 0; inline-size: var(--hjm-control-min-touch-target); block-size: var(--hjm-control-min-touch-target); border: 0; color: var(--hjm-color-text-muted); background: transparent; font: inherit; cursor: pointer; }
|
|
2368
|
-
.hjm-date-picker__popover { position: absolute; z-index: 800; inset-block-start: calc(100% + var(--hjm-space-xs)); inset-inline-start: 0; inline-size: min(22.5rem, calc(100vw - 2rem)); padding: var(--hjm-space-sm); border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-lg); color: var(--hjm-color-text); background: var(--hjm-color-
|
|
2364
|
+
.hjm-date-picker__popover { position: absolute; z-index: 800; inset-block-start: calc(100% + var(--hjm-space-xs)); inset-inline-start: 0; inline-size: min(22.5rem, calc(100vw - 2rem)); padding: var(--hjm-space-sm); border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-lg); color: var(--hjm-color-text); background: var(--hjm-color-bg); box-shadow: 0 8px 24px rgb(0 0 0 / 18%); }
|
|
2369
2365
|
.hjm-date-picker__description { color: var(--hjm-color-text-muted); }
|
|
2370
2366
|
.hjm-date-picker__error { color: var(--hjm-color-danger); }
|
|
2371
2367
|
|
|
@@ -2462,7 +2458,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2462
2458
|
.hjm-top-bar[data-large-text="true"] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
|
|
2463
2459
|
.hjm-top-bar[data-large-text="true"] .hjm-top-bar__title { grid-column: 1 / -1; grid-row: 2; padding-block: var(--hjm-space-xs); text-align: start; }
|
|
2464
2460
|
.hjm-top-bar[data-large-text="true"] .hjm-top-bar__trailing { grid-column: 2; grid-row: 1; }
|
|
2465
|
-
.hjm-bottom-cta { display: grid; gap: var(--hjm-bottom-cta-gap); min-block-size: var(--hjm-bottom-cta-min-height); padding: var(--hjm-bottom-cta-padding-top) var(--hjm-bottom-cta-padding-inline) max(var(--hjm-bottom-cta-padding-bottom), env(safe-area-inset-bottom, 0px), var(--hjm-bottom-cta-safe-area)); border-block-start: 1px solid var(--hjm-color-border); background: var(--hjm-color-
|
|
2461
|
+
.hjm-bottom-cta { display: grid; gap: var(--hjm-bottom-cta-gap); min-block-size: var(--hjm-bottom-cta-min-height); padding: var(--hjm-bottom-cta-padding-top) var(--hjm-bottom-cta-padding-inline) max(var(--hjm-bottom-cta-padding-bottom), env(safe-area-inset-bottom, 0px), var(--hjm-bottom-cta-safe-area)); border-block-start: 1px solid var(--hjm-color-border); background: var(--hjm-color-bg); }
|
|
2466
2462
|
.hjm-bottom-cta[data-position="sticky"] { position: sticky; inset-block-end: 0; z-index: 1; }
|
|
2467
2463
|
.hjm-bottom-cta__description { margin: 0; font-size: var(--hjm-type-caption-size); line-height: var(--hjm-type-caption-line-height); color: var(--hjm-color-text-muted); overflow-wrap: anywhere; }
|
|
2468
2464
|
.hjm-bottom-cta__actions { display: flex; flex-wrap: wrap; gap: var(--hjm-bottom-cta-gap); }
|
|
@@ -2563,32 +2559,68 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2563
2559
|
/* Both surfaces reuse the menu's floating look; only the anchor differs. */
|
|
2564
2560
|
.hjm-context-menu-host { min-inline-size: 0; }
|
|
2565
2561
|
.hjm-context-menu-host:focus-visible { outline: 2px solid var(--hjm-color-focus); outline-offset: 2px; }
|
|
2566
|
-
.hjm-context-menu { position: fixed; max-inline-size: min(24rem, 90vw); max-block-size: calc(100dvh - (2 * var(--hjm-space-md))); overflow: auto; padding: var(--hjm-space-xxs); border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); background: var(--hjm-color-
|
|
2562
|
+
.hjm-context-menu { position: fixed; max-inline-size: min(24rem, 90vw); max-block-size: calc(100dvh - (2 * var(--hjm-space-md))); overflow: auto; padding: var(--hjm-space-xxs); border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); background: var(--hjm-color-bg); box-shadow: 0 8px 24px rgb(0 0 0 / 18%); }
|
|
2567
2563
|
.hjm-context-menu__item { min-block-size: var(--hjm-control-min-touch-target); display: flex; align-items: center; justify-content: space-between; gap: var(--hjm-space-sm); padding: var(--hjm-space-xs) var(--hjm-space-sm); border-radius: var(--hjm-radius-sm); color: var(--hjm-color-text-body); cursor: pointer; }
|
|
2568
|
-
|
|
2564
|
+
/* Wrap long labels so commands stay readable inside the viewport-bounded menu; truncation was rejected because it hides command meaning. */
|
|
2565
|
+
.hjm-context-menu__item > span { min-inline-size: 0; overflow-wrap: anywhere; }
|
|
2566
|
+
.hjm-context-menu__item[data-active] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
2569
2567
|
.hjm-context-menu__item[data-tone="danger"] { color: var(--hjm-color-danger); }
|
|
2570
2568
|
.hjm-context-menu__item[aria-disabled="true"] { opacity: 0.5; cursor: not-allowed; }
|
|
2571
|
-
.hjm-context-menu__shortcut { color: var(--hjm-color-text-muted); font-size: var(--hjm-type-label-size); }
|
|
2569
|
+
.hjm-context-menu__shortcut { flex: 0 0 auto; white-space: nowrap; color: var(--hjm-color-text-muted); font-size: var(--hjm-type-label-size); }
|
|
2572
2570
|
|
|
2573
2571
|
.hjm-menubar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--hjm-menubar-gap); min-block-size: var(--hjm-menubar-min-height); padding-inline: var(--hjm-menubar-padding); }
|
|
2574
2572
|
.hjm-menubar__menu { position: relative; }
|
|
2575
2573
|
.hjm-menubar__label { min-block-size: var(--hjm-control-min-touch-target); padding-inline: var(--hjm-menubar-label-padding); border: 0; border-radius: var(--hjm-menubar-label-radius); background: transparent; color: var(--hjm-color-text-body); font: inherit; cursor: pointer; }
|
|
2576
|
-
.hjm-menubar__label[data-open] { background: var(--hjm-color-
|
|
2574
|
+
.hjm-menubar__label[data-open] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
2577
2575
|
.hjm-menubar__label:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
2578
2576
|
.hjm-menubar__label:focus-visible { outline: 2px solid var(--hjm-color-focus); outline-offset: 2px; }
|
|
2579
|
-
.hjm-menubar__panel { position: absolute; inset-block-start: 100%; inset-inline-start: 0; z-index: 900; min-inline-size: 13.75rem; max-inline-size: min(24rem, 90vw); padding: var(--hjm-space-xxs); border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); background: var(--hjm-color-
|
|
2577
|
+
.hjm-menubar__panel { position: absolute; inset-block-start: 100%; inset-inline-start: 0; z-index: 900; min-inline-size: 13.75rem; max-inline-size: min(24rem, 90vw); padding: var(--hjm-space-xxs); border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); background: var(--hjm-color-bg); box-shadow: 0 8px 24px rgb(0 0 0 / 18%); }
|
|
2580
2578
|
.hjm-menubar__item { min-block-size: var(--hjm-control-min-touch-target); display: flex; align-items: center; justify-content: space-between; gap: var(--hjm-space-sm); padding: var(--hjm-space-xs) var(--hjm-space-sm); border-radius: var(--hjm-radius-sm); color: var(--hjm-color-text-body); cursor: pointer; }
|
|
2581
|
-
.hjm-menubar__item[data-active] { background: var(--hjm-color-
|
|
2579
|
+
.hjm-menubar__item[data-active] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
2582
2580
|
.hjm-menubar__item[data-tone="danger"] { color: var(--hjm-color-danger); }
|
|
2583
2581
|
.hjm-menubar__item[aria-disabled="true"] { opacity: 0.5; cursor: not-allowed; }
|
|
2584
2582
|
.hjm-menubar__shortcut { color: var(--hjm-color-text-muted); font-size: var(--hjm-type-label-size); }
|
|
2585
2583
|
|
|
2586
2584
|
/* Asset frame ------------------------------------------------------------ */
|
|
2587
2585
|
.hjm-asset { position: relative; display: inline-flex; flex: 0 0 auto; }
|
|
2588
|
-
.hjm-asset__frame { inline-size: var(--hjm-asset-size); block-size: var(--hjm-asset-size); display: grid; place-items: center; overflow: hidden; border: var(--hjm-stroke-default) solid var(--hjm-color-border); border-radius: var(--hjm-asset-radius); background: var(--hjm-color-
|
|
2586
|
+
.hjm-asset__frame { inline-size: var(--hjm-asset-size); block-size: var(--hjm-asset-size); display: grid; place-items: center; overflow: hidden; border: var(--hjm-stroke-default) solid var(--hjm-color-border); border-radius: var(--hjm-asset-radius); background: var(--hjm-color-bg); }
|
|
2589
2587
|
.hjm-asset__media { inline-size: 100%; block-size: 100%; display: grid; place-items: center; }
|
|
2590
2588
|
.hjm-asset__media > * { max-inline-size: 100%; max-block-size: 100%; }
|
|
2591
2589
|
/* The accessory hangs off the outer corner so it never covers the frame's middle. */
|
|
2592
2590
|
.hjm-asset__accessory { position: absolute; inset-block-end: var(--hjm-asset-accessory-offset); inset-inline-end: var(--hjm-asset-accessory-offset); transform: translate(25%, 25%); display: inline-flex; }
|
|
2593
2591
|
.hjm-asset-group { display: inline-flex; align-items: center; }
|
|
2594
2592
|
.hjm-asset-group > .hjm-asset + .hjm-asset { margin-inline-start: var(--hjm-asset-overlap); }
|
|
2593
|
+
|
|
2594
|
+
/* Bloom owns geometry only; HJM owns target size, theme and keyboard focus. */
|
|
2595
|
+
.hjm-menu-morph { position: relative; z-index: 1; }
|
|
2596
|
+
.hjm-menu-morph [role="button"]:focus-visible, .hjm-menu-morph__item:focus-visible { outline: 2px solid var(--hjm-color-focus); outline-offset: -2px; }
|
|
2597
|
+
.hjm-menu-morph__item { display: flex; width: 100%; align-items: center; gap: var(--hjm-space-sm); min-height: var(--hjm-control-min-touch-target); padding: var(--hjm-space-sm); border: 0; background: transparent; color: inherit; font: inherit; text-align: start; cursor: pointer; }
|
|
2598
|
+
.hjm-menu-morph__item:hover, .hjm-menu-morph__item:focus { background: var(--hjm-color-bg); }
|
|
2599
|
+
.hjm-menu-morph__item[data-tone="danger"] { color: var(--hjm-color-danger); }
|
|
2600
|
+
.hjm-menu-morph__item:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
2601
|
+
|
|
2602
|
+
/* Selected colors are user data; control surfaces keep the same canvas tokens as other inputs. */
|
|
2603
|
+
.hjm-color-picker { border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); background: var(--hjm-color-bg); color: var(--hjm-color-text); padding: 1rem; margin: 0; min-inline-size: 0; overflow-wrap: anywhere; }
|
|
2604
|
+
.hjm-color-picker legend { max-inline-size: 100%; overflow-wrap: anywhere; }
|
|
2605
|
+
.hjm-color-picker__row { display: flex; flex-wrap: wrap; gap: 0.75rem; }
|
|
2606
|
+
.hjm-color-picker label { display: flex; flex-direction: column; gap: 0.5rem; min-inline-size: 0; }
|
|
2607
|
+
.hjm-color-picker__hex { flex: 1 1 10rem; }
|
|
2608
|
+
.hjm-color-picker input { box-sizing: border-box; min-block-size: var(--hjm-color-picker-target); min-inline-size: 0; max-inline-size: 100%; border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); background: var(--hjm-color-bg); color: var(--hjm-color-text); font: inherit; }
|
|
2609
|
+
.hjm-color-picker input[type="text"] { inline-size: 100%; padding-inline: 0.5rem; }
|
|
2610
|
+
.hjm-color-picker input[type="color"] { inline-size: 3rem; padding: 0.25rem; }
|
|
2611
|
+
.hjm-color-picker__opacity { margin-block-start: 0.75rem; }
|
|
2612
|
+
.hjm-color-picker__opacity input[type="range"] { accent-color: var(--hjm-color-primary); }
|
|
2613
|
+
.hjm-color-picker__preview { block-size: 1.5rem; margin-block-start: 0.75rem; border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); }
|
|
2614
|
+
.hjm-color-picker__presets { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-block-start: 0.75rem; }
|
|
2615
|
+
.hjm-color-picker__presets button { display: inline-flex; align-items: center; gap: 0.5rem; min-block-size: var(--hjm-color-picker-target); max-inline-size: 100%; overflow-wrap: anywhere; border: 1px solid var(--hjm-color-border); border-radius: var(--hjm-radius-md); padding: 0.5rem; background: var(--hjm-color-bg); color: var(--hjm-color-text); font: inherit; cursor: pointer; }
|
|
2616
|
+
.hjm-color-picker__presets button[aria-pressed="true"] { border-color: var(--hjm-color-primary); }
|
|
2617
|
+
.hjm-color-picker__swatch { inline-size: 1rem; block-size: 1rem; flex-shrink: 0; border: 1px solid var(--hjm-color-border); }
|
|
2618
|
+
.hjm-color-picker :is(input, button):focus-visible { outline: 2px solid var(--hjm-color-primary); outline-offset: 2px; }
|
|
2619
|
+
.hjm-color-picker__error { color: var(--hjm-color-danger); margin-block: 0.5rem; }
|
|
2620
|
+
.hjm-color-picker:disabled { opacity: 0.5; }
|
|
2621
|
+
/* SVG labels are decorative and print with the content; neither selection nor pointer input is intercepted. */
|
|
2622
|
+
.hjm-watermark { position: relative; isolation: isolate; }
|
|
2623
|
+
.hjm-watermark__content { position: relative; z-index: 0; overflow-wrap: anywhere; }
|
|
2624
|
+
.hjm-watermark__overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none; user-select: none; overflow: hidden; color: var(--hjm-color-text-sub); font: inherit; }
|
|
2625
|
+
.hjm-affix { color: var(--hjm-color-text); background: var(--hjm-color-bg); overflow-wrap: anywhere; }
|
|
2626
|
+
.hjm-affix__marker { display: block; block-size: 0; pointer-events: none; }
|