@hjmds/react 1.7.0 → 1.8.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 +17 -0
- package/THIRD_PARTY_NOTICES.md +28 -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/context-menu.d.ts.map +1 -1
- package/dist/context-menu.js +36 -9
- package/dist/context-menu.js.map +1 -1
- package/dist/evidence.d.ts +61 -2
- package/dist/evidence.d.ts.map +1 -1
- package/dist/evidence.js +133 -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 +79 -0
- package/dist/menu-morph.js.map +1 -0
- package/dist/navigation.d.ts.map +1 -1
- package/dist/navigation.js +13 -1
- package/dist/navigation.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/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 +136 -133
- package/dist/styles.layered.css +136 -133
- 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/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/package.json +61 -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); }
|
|
@@ -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; }
|
|
@@ -1160,7 +1149,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1160
1149
|
border-radius: var(--hjm-radius-sm);
|
|
1161
1150
|
overflow-wrap: anywhere;
|
|
1162
1151
|
}
|
|
1163
|
-
.hjm-mentions__option[aria-selected="true"] { background: var(--hjm-color-
|
|
1152
|
+
.hjm-mentions__option[aria-selected="true"] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
1164
1153
|
.hjm-mentions__description { color: var(--hjm-color-text-muted); font-size: var(--hjm-type-label-size); }
|
|
1165
1154
|
.hjm-mentions__empty { margin: 0; padding: var(--hjm-space-xs); color: var(--hjm-color-text-muted); }
|
|
1166
1155
|
|
|
@@ -1217,7 +1206,12 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1217
1206
|
border-radius: var(--hjm-radius-sm);
|
|
1218
1207
|
overflow-wrap: anywhere;
|
|
1219
1208
|
}
|
|
1220
|
-
|
|
1209
|
+
/* The label is a flex item; reset its intrinsic min-width so long localized values wrap inside a narrow panel. */
|
|
1210
|
+
.hjm-transfer-list__option > span:last-child { min-inline-size: 0; overflow-wrap: anywhere; }
|
|
1211
|
+
/* Panel headings and empty-state copy share the same narrow column as rows. */
|
|
1212
|
+
.hjm-transfer-list__title,
|
|
1213
|
+
.hjm-transfer-list__empty { min-inline-size: 0; overflow-wrap: anywhere; }
|
|
1214
|
+
.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
1215
|
.hjm-transfer-list__option[aria-disabled="true"] { color: var(--hjm-color-text-weak); }
|
|
1222
1216
|
.hjm-transfer-list__option:focus-visible,
|
|
1223
1217
|
.hjm-transfer-list__empty:focus-visible,
|
|
@@ -1226,12 +1220,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1226
1220
|
.hjm-transfer-list__actions { display: flex; flex-direction: column; gap: var(--hjm-space-xs); padding-block-start: var(--hjm-space-xl); }
|
|
1227
1221
|
|
|
1228
1222
|
/* 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
|
-
*/
|
|
1223
|
+
/* Provider guideline colors cannot follow the theme without failing provider review.
|
|
1224
|
+
HJM owns geometry and an outer focus ring that remains visible on every brand fill. */
|
|
1235
1225
|
.hjm-auth-provider-button {
|
|
1236
1226
|
display: flex;
|
|
1237
1227
|
align-items: center;
|
|
@@ -1283,10 +1273,14 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1283
1273
|
selection semantics underneath. The hovered preview uses the same states, so
|
|
1284
1274
|
there is one set of rules rather than a committed and a provisional set.
|
|
1285
1275
|
*/
|
|
1276
|
+
/* Each hit/hover layer belongs to its own day. Without this containing block
|
|
1277
|
+
the last absolute layer covered the whole preview and stole pointer clicks. */
|
|
1278
|
+
.hjm-date-range .hjm-calendar__day { position: relative; isolation: isolate; }
|
|
1279
|
+
.hjm-date-range .hjm-calendar__day-label { position: relative; z-index: 1; pointer-events: none; }
|
|
1286
1280
|
.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"] {
|
|
1281
|
+
.hjm-date-range__cell[data-range="between"] { box-shadow: inset 0 -2px var(--hjm-color-content-brand); background: var(--hjm-color-bg); }
|
|
1288
1282
|
.hjm-date-range__cell[data-range="start"],
|
|
1289
|
-
.hjm-date-range__cell[data-range="end"] { background: var(--hjm-color-
|
|
1283
|
+
.hjm-date-range__cell[data-range="end"] { background: var(--hjm-color-bg); outline: 2px solid var(--hjm-color-focus); }
|
|
1290
1284
|
.hjm-date-range__cell[data-range="none"] { background: transparent; }
|
|
1291
1285
|
|
|
1292
1286
|
/* AvatarGroup: overlap comes from the recipe ratio, not a per-size pixel value. */
|
|
@@ -1301,7 +1295,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1301
1295
|
padding-inline: var(--hjm-space-xxs);
|
|
1302
1296
|
border: 2px solid var(--hjm-color-bg);
|
|
1303
1297
|
border-radius: var(--hjm-radius-full);
|
|
1304
|
-
background: var(--hjm-color-
|
|
1298
|
+
background: var(--hjm-color-bg);
|
|
1305
1299
|
color: var(--hjm-color-text-muted);
|
|
1306
1300
|
font-size: var(--hjm-type-label-size);
|
|
1307
1301
|
}
|
|
@@ -1321,7 +1315,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1321
1315
|
.hjm-text-format[data-kind="code"] {
|
|
1322
1316
|
padding-inline: var(--hjm-space-xxs);
|
|
1323
1317
|
border-radius: var(--hjm-radius-sm);
|
|
1324
|
-
background: var(--hjm-color-
|
|
1318
|
+
background: var(--hjm-color-bg);
|
|
1325
1319
|
font-family: var(--hjm-font-family-code, ui-monospace, SFMono-Regular, Consolas, monospace);
|
|
1326
1320
|
}
|
|
1327
1321
|
.hjm-text-format[data-kind="kbd"] {
|
|
@@ -1346,6 +1340,9 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1346
1340
|
position: absolute;
|
|
1347
1341
|
inset-block-start: var(--hjm-skip-nav-offset);
|
|
1348
1342
|
inset-inline-start: var(--hjm-skip-nav-offset);
|
|
1343
|
+
/* A localized skip label can be longer than a narrow viewport; keep the focused link on-screen. */
|
|
1344
|
+
box-sizing: border-box;
|
|
1345
|
+
max-inline-size: calc(100vw - var(--hjm-skip-nav-offset) * 2);
|
|
1349
1346
|
z-index: 1300;
|
|
1350
1347
|
display: inline-flex;
|
|
1351
1348
|
align-items: center;
|
|
@@ -1355,6 +1352,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1355
1352
|
background: var(--hjm-color-primary);
|
|
1356
1353
|
color: var(--hjm-color-on-primary);
|
|
1357
1354
|
text-decoration: none;
|
|
1355
|
+
overflow-wrap: anywhere;
|
|
1358
1356
|
transform: translateY(calc(-100% - var(--hjm-skip-nav-offset) * 2));
|
|
1359
1357
|
}
|
|
1360
1358
|
.hjm-skip-nav:focus-visible,
|
|
@@ -1428,7 +1426,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1428
1426
|
min-block-size: 100%;
|
|
1429
1427
|
padding: var(--hjm-space-sm) var(--hjm-space-xs);
|
|
1430
1428
|
border-inline-end: 1px solid var(--hjm-color-border);
|
|
1431
|
-
background: var(--hjm-color-
|
|
1429
|
+
background: var(--hjm-color-bg);
|
|
1432
1430
|
overflow: auto;
|
|
1433
1431
|
}
|
|
1434
1432
|
.hjm-sidebar__toggle {
|
|
@@ -1449,6 +1447,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1449
1447
|
color: var(--hjm-color-text-muted);
|
|
1450
1448
|
font-size: var(--hjm-type-label-size);
|
|
1451
1449
|
font-weight: var(--hjm-type-label-weight);
|
|
1450
|
+
/* The rail has a fixed width; wrap long localized headings so their meaning stays visible instead of clipping or widening the shell. */
|
|
1451
|
+
overflow-wrap: anywhere;
|
|
1452
1452
|
}
|
|
1453
1453
|
.hjm-sidebar__list { display: flex; flex-direction: column; gap: var(--hjm-sidebar-gap); margin: 0; padding: 0; list-style: none; }
|
|
1454
1454
|
.hjm-sidebar__item {
|
|
@@ -1463,10 +1463,10 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1463
1463
|
overflow-wrap: anywhere;
|
|
1464
1464
|
}
|
|
1465
1465
|
.hjm-sidebar__item[aria-current="page"] {
|
|
1466
|
-
background: var(--hjm-color-
|
|
1466
|
+
background: var(--hjm-color-bg);
|
|
1467
1467
|
color: var(--hjm-color-content-brand);
|
|
1468
1468
|
font-weight: var(--hjm-font-weight-semibold);
|
|
1469
|
-
}
|
|
1469
|
+
box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
1470
1470
|
.hjm-sidebar__item[aria-disabled="true"] { color: var(--hjm-color-text-weak); }
|
|
1471
1471
|
.hjm-sidebar__item:focus-visible,
|
|
1472
1472
|
.hjm-sidebar__toggle:focus-visible { outline: 2px solid var(--hjm-color-focus); outline-offset: -2px; }
|
|
@@ -1490,7 +1490,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1490
1490
|
padding-inline: var(--hjm-toggle-padding);
|
|
1491
1491
|
border: 1px solid var(--hjm-color-border-control);
|
|
1492
1492
|
border-radius: var(--hjm-toggle-radius);
|
|
1493
|
-
background: var(--hjm-color-
|
|
1493
|
+
background: var(--hjm-color-bg);
|
|
1494
1494
|
color: var(--hjm-color-text-body);
|
|
1495
1495
|
font: inherit;
|
|
1496
1496
|
cursor: pointer;
|
|
@@ -1498,7 +1498,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1498
1498
|
/* The pressed state is announced by aria-pressed; color only reinforces it. */
|
|
1499
1499
|
.hjm-toggle-group__item[aria-pressed="true"] {
|
|
1500
1500
|
border-color: var(--hjm-color-focus);
|
|
1501
|
-
background: var(--hjm-color-
|
|
1501
|
+
background: var(--hjm-color-bg);
|
|
1502
1502
|
color: var(--hjm-color-content-brand);
|
|
1503
1503
|
font-weight: var(--hjm-font-weight-semibold);
|
|
1504
1504
|
}
|
|
@@ -1529,7 +1529,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1529
1529
|
min-block-size: var(--hjm-tags-tag-min-height);
|
|
1530
1530
|
padding-inline: var(--hjm-space-xs);
|
|
1531
1531
|
border-radius: var(--hjm-radius-full);
|
|
1532
|
-
background: var(--hjm-color-
|
|
1532
|
+
background: var(--hjm-color-bg);
|
|
1533
1533
|
color: var(--hjm-color-text-body);
|
|
1534
1534
|
overflow-wrap: anywhere;
|
|
1535
1535
|
}
|
|
@@ -1554,7 +1554,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1554
1554
|
min-inline-size: var(--hjm-tags-remove-target);
|
|
1555
1555
|
min-block-size: var(--hjm-tags-remove-target);
|
|
1556
1556
|
}
|
|
1557
|
-
.hjm-tags-input__tag { position: relative; }
|
|
1557
|
+
.hjm-tags-input__tag { position: relative; border: 1px solid var(--hjm-color-border-control); }
|
|
1558
1558
|
.hjm-tags-input__input {
|
|
1559
1559
|
flex: 1 1 8ch;
|
|
1560
1560
|
min-inline-size: 8ch;
|
|
@@ -1585,7 +1585,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1585
1585
|
cursor: pointer;
|
|
1586
1586
|
overflow-wrap: anywhere;
|
|
1587
1587
|
}
|
|
1588
|
-
.hjm-tags-input__suggestion[aria-selected="true"] {
|
|
1588
|
+
.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
1589
|
.hjm-tags-input__suggestion[aria-disabled="true"] { color: var(--hjm-color-text-weak); cursor: default; }
|
|
1590
1590
|
.hjm-tags-input__description { margin: 0; color: var(--hjm-color-text-muted); font-size: var(--hjm-type-label-size); }
|
|
1591
1591
|
.hjm-tags-input[data-disabled] .hjm-tags-input__frame { opacity: 0.6; cursor: default; }
|
|
@@ -1665,7 +1665,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1665
1665
|
gap: var(--hjm-space-sm);
|
|
1666
1666
|
padding: var(--hjm-space-sm) var(--hjm-space-md);
|
|
1667
1667
|
border-radius: var(--hjm-radius-md);
|
|
1668
|
-
background: var(--hjm-color-
|
|
1668
|
+
background: var(--hjm-color-bg);
|
|
1669
1669
|
font-size: var(--hjm-type-body-large-size);
|
|
1670
1670
|
line-height: var(--hjm-type-body-large-line-height);
|
|
1671
1671
|
}
|
|
@@ -1717,12 +1717,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1717
1717
|
.hjm-agreement__detail:focus-visible { outline: 2px solid var(--hjm-color-focus); outline-offset: 2px; }
|
|
1718
1718
|
|
|
1719
1719
|
/* 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
|
-
*/
|
|
1720
|
+
/* Flat aria-level treeitems match the contract's visible-node array and roving focus.
|
|
1721
|
+
WAI-ARIA permits this shape; depth is announced rather than inferred from indentation. */
|
|
1726
1722
|
.hjm-tree { display: flex; flex-direction: column; }
|
|
1727
1723
|
.hjm-tree__node {
|
|
1728
1724
|
display: flex;
|
|
@@ -1735,7 +1731,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1735
1731
|
color: var(--hjm-color-text);
|
|
1736
1732
|
cursor: default;
|
|
1737
1733
|
}
|
|
1738
|
-
.hjm-tree__node[aria-selected="true"] { background: var(--hjm-color-
|
|
1734
|
+
.hjm-tree__node[aria-selected="true"] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
1739
1735
|
.hjm-tree__node[aria-disabled="true"] { color: var(--hjm-color-text-weak); }
|
|
1740
1736
|
.hjm-tree__node:focus-visible { outline: 2px solid var(--hjm-color-focus); outline-offset: -2px; }
|
|
1741
1737
|
.hjm-tree__indent { flex: 0 0 auto; inline-size: calc(var(--hjm-tree-depth) * var(--hjm-tree-indent)); }
|
|
@@ -1809,7 +1805,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1809
1805
|
align-items: center;
|
|
1810
1806
|
justify-content: center;
|
|
1811
1807
|
padding: var(--hjm-space-md);
|
|
1812
|
-
background:
|
|
1808
|
+
background: var(--hjm-backdrop-modal);
|
|
1813
1809
|
overscroll-behavior: contain;
|
|
1814
1810
|
}
|
|
1815
1811
|
.hjm-dialog,
|
|
@@ -1858,6 +1854,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1858
1854
|
overflow-wrap: anywhere;
|
|
1859
1855
|
}
|
|
1860
1856
|
.hjm-dialog > .hjm-dialog__description { padding-inline: var(--hjm-space-lg); }
|
|
1857
|
+
/* Consumer-authored identifiers can be unbroken; keep modal body text inside the narrow viewport. */
|
|
1858
|
+
.hjm-dialog__body { overflow-wrap: anywhere; }
|
|
1861
1859
|
.hjm-dialog__body,
|
|
1862
1860
|
.hjm-sheet__body { padding: var(--hjm-space-lg); }
|
|
1863
1861
|
.hjm-dialog__footer,
|
|
@@ -1976,12 +1974,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1976
1974
|
.hjm-sheet[data-placement="end"] {
|
|
1977
1975
|
block-size: calc(100dvh - (2 * var(--hjm-space-md)));
|
|
1978
1976
|
}
|
|
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
|
-
*/
|
|
1977
|
+
/* sidePanelRecipe.content.radius=null: dock at a logical edge with full block height.
|
|
1978
|
+
Non-modal panels position themselves; no backdrop may block the interactive page. */
|
|
1985
1979
|
.hjm-side-panel-positioner { padding: 0; }
|
|
1986
1980
|
.hjm-side-panel-positioner[data-edge="start"] { justify-content: flex-start; }
|
|
1987
1981
|
.hjm-side-panel-positioner[data-edge="end"] { justify-content: flex-end; }
|
|
@@ -1995,7 +1989,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
1995
1989
|
border: 1px solid var(--hjm-color-border);
|
|
1996
1990
|
border-radius: 0;
|
|
1997
1991
|
color: var(--hjm-color-text);
|
|
1998
|
-
background: var(--hjm-color-
|
|
1992
|
+
background: var(--hjm-color-bg);
|
|
1999
1993
|
box-shadow: 0 16px 48px rgb(0 0 0 / 28%);
|
|
2000
1994
|
}
|
|
2001
1995
|
.hjm-side-panel[data-modal="false"] {
|
|
@@ -2047,13 +2041,9 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2047
2041
|
padding: var(--hjm-space-sm) var(--hjm-space-lg)
|
|
2048
2042
|
max(var(--hjm-space-sm), env(safe-area-inset-bottom, 0px));
|
|
2049
2043
|
}
|
|
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; }
|
|
2044
|
+
/* Separate portals let Tour's veil cover the page while the shared popup helper anchors
|
|
2045
|
+
its card. The measured highlight ring is decorative and hidden from assistive tech. */
|
|
2046
|
+
.hjm-tour-backdrop { position: fixed; inset: 0; background: var(--hjm-backdrop-modal); pointer-events: auto; }
|
|
2057
2047
|
.hjm-tour-highlight {
|
|
2058
2048
|
position: fixed;
|
|
2059
2049
|
border-radius: var(--hjm-radius-md);
|
|
@@ -2064,12 +2054,15 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2064
2054
|
display: flex;
|
|
2065
2055
|
flex-direction: column;
|
|
2066
2056
|
gap: var(--hjm-space-sm);
|
|
2057
|
+
/* The anchored popup is viewport-height bounded; scrolling keeps long translations and actions usable without truncating copy or detaching controls. */
|
|
2058
|
+
overflow-y: auto;
|
|
2059
|
+
overscroll-behavior: contain;
|
|
2067
2060
|
box-sizing: border-box;
|
|
2068
2061
|
padding: var(--hjm-space-md);
|
|
2069
2062
|
border: 1px solid var(--hjm-color-border);
|
|
2070
2063
|
border-radius: var(--hjm-radius-md);
|
|
2071
2064
|
color: var(--hjm-color-text);
|
|
2072
|
-
background: var(--hjm-color-
|
|
2065
|
+
background: var(--hjm-color-bg);
|
|
2073
2066
|
box-shadow: 0 16px 48px rgb(0 0 0 / 28%);
|
|
2074
2067
|
pointer-events: auto;
|
|
2075
2068
|
}
|
|
@@ -2105,7 +2098,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2105
2098
|
padding: var(--hjm-space-xxs);
|
|
2106
2099
|
border: 1px solid var(--hjm-color-border);
|
|
2107
2100
|
border-radius: var(--hjm-radius-md);
|
|
2108
|
-
background: var(--hjm-color-
|
|
2101
|
+
background: var(--hjm-color-bg);
|
|
2109
2102
|
box-shadow: 0 8px 24px rgb(0 0 0 / 18%);
|
|
2110
2103
|
}
|
|
2111
2104
|
.hjm-menu__item {
|
|
@@ -2125,7 +2118,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2125
2118
|
}
|
|
2126
2119
|
.hjm-menu__content[data-density="comfortable"] .hjm-menu__item { min-block-size: 3.5rem; }
|
|
2127
2120
|
.hjm-menu__item:hover,
|
|
2128
|
-
.hjm-menu__item[data-focus="true"] { background: var(--hjm-color-
|
|
2121
|
+
.hjm-menu__item[data-focus="true"] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
2129
2122
|
.hjm-menu__item[data-tone="danger"] { color: var(--hjm-color-danger); }
|
|
2130
2123
|
.hjm-menu__item[data-state="selected"] { color: var(--hjm-color-content-brand); font-weight: var(--hjm-font-weight-semibold); }
|
|
2131
2124
|
.hjm-menu__item:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
@@ -2150,13 +2143,13 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2150
2143
|
.hjm-select__indicator { flex: 0 0 auto; color: var(--hjm-color-text-muted); pointer-events: none; }
|
|
2151
2144
|
.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
2145
|
.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-
|
|
2146
|
+
.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
2147
|
.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
2148
|
.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
2149
|
.hjm-select[data-density="comfortable"] .hjm-select__option,
|
|
2157
2150
|
.hjm-select__listbox[data-density="comfortable"] .hjm-select__option { min-block-size: 3.5rem; }
|
|
2158
2151
|
.hjm-select__option { cursor: pointer; }
|
|
2159
|
-
.hjm-select__option[data-active="true"] {
|
|
2152
|
+
.hjm-select__option[data-active="true"] { box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); background: var(--hjm-color-bg); }
|
|
2160
2153
|
.hjm-select__option[data-state="selected"] { color: var(--hjm-color-content-brand); font-weight: var(--hjm-font-weight-bold); }
|
|
2161
2154
|
.hjm-select__option[data-state="disabled"] { opacity: 0.5; cursor: not-allowed; }
|
|
2162
2155
|
.hjm-select__option-copy { min-inline-size: 0; flex: 1 1 auto; display: grid; gap: var(--hjm-space-xxs); }
|
|
@@ -2182,7 +2175,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2182
2175
|
padding: var(--hjm-space-xxs);
|
|
2183
2176
|
border: 1px solid var(--hjm-color-border);
|
|
2184
2177
|
border-radius: var(--hjm-radius-md);
|
|
2185
|
-
background: var(--hjm-color-
|
|
2178
|
+
background: var(--hjm-color-bg);
|
|
2186
2179
|
box-shadow: 0 8px 24px rgb(0 0 0 / 18%);
|
|
2187
2180
|
}
|
|
2188
2181
|
.hjm-combobox__option,
|
|
@@ -2197,7 +2190,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2197
2190
|
.hjm-combobox[data-density="comfortable"] .hjm-combobox__option,
|
|
2198
2191
|
.hjm-combobox__listbox[data-density="comfortable"] .hjm-combobox__option { min-block-size: 3.5rem; }
|
|
2199
2192
|
.hjm-combobox__option { cursor: pointer; }
|
|
2200
|
-
.hjm-combobox__option[data-state="active"] {
|
|
2193
|
+
.hjm-combobox__option[data-state="active"] { box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); background: var(--hjm-color-bg); }
|
|
2201
2194
|
.hjm-combobox__option[data-state="selected"] { color: var(--hjm-color-content-brand); font-weight: var(--hjm-font-weight-bold); }
|
|
2202
2195
|
.hjm-combobox__option[data-state="disabled"] { opacity: 0.5; cursor: not-allowed; }
|
|
2203
2196
|
.hjm-combobox__message { color: var(--hjm-color-text-muted); }
|
|
@@ -2241,7 +2234,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2241
2234
|
cursor: pointer;
|
|
2242
2235
|
}
|
|
2243
2236
|
.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-
|
|
2237
|
+
.hjm-accordion__trigger:hover { background: var(--hjm-color-bg); }
|
|
2245
2238
|
.hjm-accordion__trigger:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
2246
2239
|
.hjm-accordion__title { min-inline-size: 0; overflow-wrap: anywhere; }
|
|
2247
2240
|
.hjm-accordion__indicator { flex: 0 0 auto; color: var(--hjm-color-text-muted); }
|
|
@@ -2255,7 +2248,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2255
2248
|
border: 1px solid var(--hjm-color-border);
|
|
2256
2249
|
border-radius: 50%;
|
|
2257
2250
|
color: var(--hjm-color-text-muted);
|
|
2258
|
-
background: var(--hjm-color-
|
|
2251
|
+
background: var(--hjm-color-bg);
|
|
2259
2252
|
font-weight: var(--hjm-font-weight-bold);
|
|
2260
2253
|
}
|
|
2261
2254
|
.hjm-avatar[data-size="small"] { inline-size: 2rem; block-size: 2rem; font-size: var(--hjm-type-label-size); }
|
|
@@ -2278,10 +2271,10 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2278
2271
|
.hjm-table__caption { padding: var(--hjm-space-sm); color: var(--hjm-color-text); font-weight: var(--hjm-font-weight-bold); text-align: start; }
|
|
2279
2272
|
.hjm-table__header,
|
|
2280
2273
|
.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-
|
|
2274
|
+
.hjm-table__header { color: var(--hjm-color-text); background: var(--hjm-color-bg); }
|
|
2282
2275
|
.hjm-table__header[data-align="center"], .hjm-table__cell[data-align="center"] { text-align: center; }
|
|
2283
2276
|
.hjm-table__header[data-align="end"], .hjm-table__cell[data-align="end"] { text-align: end; }
|
|
2284
|
-
.hjm-table__row:hover { background: var(--hjm-color-
|
|
2277
|
+
.hjm-table__row:hover { background: var(--hjm-color-bg); }
|
|
2285
2278
|
.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
2279
|
.hjm-table__empty { padding: var(--hjm-space-xl); color: var(--hjm-color-text-muted); text-align: center; }
|
|
2287
2280
|
|
|
@@ -2306,7 +2299,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2306
2299
|
border-radius: var(--hjm-radius-md);
|
|
2307
2300
|
}
|
|
2308
2301
|
.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-
|
|
2302
|
+
.hjm-pagination__item:hover:not([aria-disabled="true"]) { background: var(--hjm-color-bg); }
|
|
2310
2303
|
.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
2304
|
.hjm-pagination__item[aria-disabled="true"] { opacity: 0.5; cursor: not-allowed; }
|
|
2312
2305
|
.hjm-pagination__ellipsis { color: var(--hjm-color-text-muted); }
|
|
@@ -2323,10 +2316,10 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2323
2316
|
.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
2317
|
.hjm-steps__step { min-inline-size: 0; display: grid; gap: var(--hjm-space-xs); }
|
|
2325
2318
|
.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-
|
|
2319
|
+
.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
2320
|
.hjm-steps__connector { flex: 1 1 auto; block-size: 1px; background: var(--hjm-color-border); }
|
|
2328
2321
|
.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-
|
|
2322
|
+
.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
2323
|
.hjm-steps__step[data-status="complete"] .hjm-steps__connector { background: var(--hjm-color-content-brand); }
|
|
2331
2324
|
.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
2325
|
.hjm-steps__copy { min-inline-size: 0; display: grid; gap: var(--hjm-space-xxs); padding-inline-end: var(--hjm-space-sm); }
|
|
@@ -2337,8 +2330,8 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2337
2330
|
|
|
2338
2331
|
.hjm-file-picker { display: grid; gap: var(--hjm-space-xs); }
|
|
2339
2332
|
.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-
|
|
2333
|
+
.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; }
|
|
2334
|
+
.hjm-file-picker[data-dragging] .hjm-file-picker__dropzone { border-color: var(--hjm-color-focus); background: var(--hjm-color-bg); }
|
|
2342
2335
|
.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
2336
|
.hjm-file-picker__hint { color: var(--hjm-color-text-muted); }
|
|
2344
2337
|
.hjm-file-picker__error { color: var(--hjm-color-danger); }
|
|
@@ -2360,12 +2353,12 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2360
2353
|
.hjm-date-picker { display: grid; gap: var(--hjm-space-xs); }
|
|
2361
2354
|
.hjm-date-picker__label { color: var(--hjm-color-text); font-weight: var(--hjm-font-weight-semibold); }
|
|
2362
2355
|
.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-
|
|
2356
|
+
.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
2357
|
.hjm-date-picker[data-size="large"] .hjm-date-picker__trigger { min-block-size: 3.5rem; padding-inline-start: var(--hjm-space-lg); }
|
|
2365
2358
|
.hjm-date-picker[data-invalid] .hjm-date-picker__trigger { border-color: var(--hjm-color-danger); }
|
|
2366
2359
|
.hjm-date-picker__trigger [data-placeholder] { color: var(--hjm-color-text-muted); }
|
|
2367
2360
|
.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-
|
|
2361
|
+
.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
2362
|
.hjm-date-picker__description { color: var(--hjm-color-text-muted); }
|
|
2370
2363
|
.hjm-date-picker__error { color: var(--hjm-color-danger); }
|
|
2371
2364
|
|
|
@@ -2462,7 +2455,7 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2462
2455
|
.hjm-top-bar[data-large-text="true"] { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
|
|
2463
2456
|
.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
2457
|
.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-
|
|
2458
|
+
.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
2459
|
.hjm-bottom-cta[data-position="sticky"] { position: sticky; inset-block-end: 0; z-index: 1; }
|
|
2467
2460
|
.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
2461
|
.hjm-bottom-cta__actions { display: flex; flex-wrap: wrap; gap: var(--hjm-bottom-cta-gap); }
|
|
@@ -2563,32 +2556,42 @@ button.hjm-list-row, a.hjm-list-row { cursor: pointer; }
|
|
|
2563
2556
|
/* Both surfaces reuse the menu's floating look; only the anchor differs. */
|
|
2564
2557
|
.hjm-context-menu-host { min-inline-size: 0; }
|
|
2565
2558
|
.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-
|
|
2559
|
+
.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
2560
|
.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
|
-
|
|
2561
|
+
/* Wrap long labels so commands stay readable inside the viewport-bounded menu; truncation was rejected because it hides command meaning. */
|
|
2562
|
+
.hjm-context-menu__item > span { min-inline-size: 0; overflow-wrap: anywhere; }
|
|
2563
|
+
.hjm-context-menu__item[data-active] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
2569
2564
|
.hjm-context-menu__item[data-tone="danger"] { color: var(--hjm-color-danger); }
|
|
2570
2565
|
.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); }
|
|
2566
|
+
.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
2567
|
|
|
2573
2568
|
.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
2569
|
.hjm-menubar__menu { position: relative; }
|
|
2575
2570
|
.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-
|
|
2571
|
+
.hjm-menubar__label[data-open] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
2577
2572
|
.hjm-menubar__label:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
2578
2573
|
.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-
|
|
2574
|
+
.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
2575
|
.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-
|
|
2576
|
+
.hjm-menubar__item[data-active] { background: var(--hjm-color-bg); box-shadow: inset 0 0 0 1px var(--hjm-color-content-brand); }
|
|
2582
2577
|
.hjm-menubar__item[data-tone="danger"] { color: var(--hjm-color-danger); }
|
|
2583
2578
|
.hjm-menubar__item[aria-disabled="true"] { opacity: 0.5; cursor: not-allowed; }
|
|
2584
2579
|
.hjm-menubar__shortcut { color: var(--hjm-color-text-muted); font-size: var(--hjm-type-label-size); }
|
|
2585
2580
|
|
|
2586
2581
|
/* Asset frame ------------------------------------------------------------ */
|
|
2587
2582
|
.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-
|
|
2583
|
+
.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
2584
|
.hjm-asset__media { inline-size: 100%; block-size: 100%; display: grid; place-items: center; }
|
|
2590
2585
|
.hjm-asset__media > * { max-inline-size: 100%; max-block-size: 100%; }
|
|
2591
2586
|
/* The accessory hangs off the outer corner so it never covers the frame's middle. */
|
|
2592
2587
|
.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
2588
|
.hjm-asset-group { display: inline-flex; align-items: center; }
|
|
2594
2589
|
.hjm-asset-group > .hjm-asset + .hjm-asset { margin-inline-start: var(--hjm-asset-overlap); }
|
|
2590
|
+
|
|
2591
|
+
/* Bloom owns geometry only; HJM owns target size, theme and keyboard focus. */
|
|
2592
|
+
.hjm-menu-morph { position: relative; z-index: 1; }
|
|
2593
|
+
.hjm-menu-morph [role="button"]:focus-visible, .hjm-menu-morph__item:focus-visible { outline: 2px solid var(--hjm-color-focus); outline-offset: -2px; }
|
|
2594
|
+
.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; }
|
|
2595
|
+
.hjm-menu-morph__item:hover, .hjm-menu-morph__item:focus { background: var(--hjm-color-bg); }
|
|
2596
|
+
.hjm-menu-morph__item[data-tone="danger"] { color: var(--hjm-color-danger); }
|
|
2597
|
+
.hjm-menu-morph__item:disabled { opacity: 0.5; cursor: not-allowed; }
|