@celestia-island/hikari 0.43.10 → 0.43.13
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/package.json +1 -1
- package/src/components/HkAboutModal.scss +12 -1
- package/src/components/HkAdaptiveDialog.scss +2 -2
- package/src/components/HkAffixPicker.scss +55 -27
- package/src/components/HkAlert.scss +35 -31
- package/src/components/HkAltSignIn.scss +10 -4
- package/src/components/HkAuthMethodList.scss +5 -5
- package/src/components/HkAuthSubmitButton.scss +3 -3
- package/src/components/HkAvatar.scss +10 -49
- package/src/components/HkBadge.scss +6 -9
- package/src/components/HkBlockingToast.scss +27 -10
- package/src/components/HkBoard.scss +26 -6
- package/src/components/HkBreadcrumb.scss +82 -268
- package/src/components/HkButton.scss +26 -3
- package/src/components/HkCaptchaWidget.scss +2 -3
- package/src/components/HkCard.scss +14 -8
- package/src/components/HkCheckbox.scss +11 -9
- package/src/components/HkColorPicker.scss +22 -8
- package/src/components/HkContextRing.scss +8 -4
- package/src/components/HkCookieConsent.scss +12 -3
- package/src/components/HkDatePicker.scss +49 -65
- package/src/components/HkDateTimePicker.scss +48 -31
- package/src/components/HkDivider.scss +14 -15
- package/src/components/HkDraggableGrid.scss +41 -11
- package/src/components/HkDraggableList.scss +22 -11
- package/src/components/HkDrawer.scss +24 -4
- package/src/components/HkEmptyState.scss +10 -11
- package/src/components/HkErrorLanding.scss +5 -5
- package/src/components/HkExpansionPanel.scss +6 -2
- package/src/components/HkFab.scss +29 -12
- package/src/components/HkFileBrowserDialog.scss +21 -10
- package/src/components/HkFileField.scss +20 -9
- package/src/components/HkFilePickerField.scss +12 -6
- package/src/components/HkGaugeRing.scss +8 -0
- package/src/components/HkHoverRevealAction.scss +30 -12
- package/src/components/HkIcon.scss +0 -18
- package/src/components/HkIconButton.scss +29 -62
- package/src/components/HkIconButtonVars.scss +8 -28
- package/src/components/HkImageLightbox.scss +4 -3
- package/src/components/HkImagePreview.scss +17 -9
- package/src/components/HkImageViewer.scss +8 -0
- package/src/components/HkInput.scss +28 -28
- package/src/components/HkJsonTree.scss +13 -9
- package/src/components/HkKeywordSearchModal.scss +40 -29
- package/src/components/HkLabel.scss +8 -3
- package/src/components/HkListTransition.scss +16 -1
- package/src/components/HkLoadMore.scss +11 -2
- package/src/components/HkLocalizedInput.scss +11 -11
- package/src/components/HkLogWindow.scss +22 -4
- package/src/components/HkLogo.scss +12 -3
- package/src/components/HkMarkdownRenderer.scss +19 -13
- package/src/components/HkMediaControlBar.scss +2 -4
- package/src/components/HkMediaSlider.scss +0 -2
- package/src/components/HkMenu.scss +32 -20
- package/src/components/HkMenuIdentityItem.scss +3 -3
- package/src/components/HkMinimap.scss +23 -8
- package/src/components/HkModal.scss +17 -20
- package/src/components/HkModalBreadcrumb.scss +25 -6
- package/src/components/HkModelTag.scss +23 -13
- package/src/components/HkNavItem.scss +27 -14
- package/src/components/HkNumberInput.scss +25 -21
- package/src/components/HkPageHeader.scss +7 -6
- package/src/components/HkPasswordInput.scss +36 -36
- package/src/components/HkPhaseTransition.scss +16 -0
- package/src/components/HkPhoneInput.scss +10 -5
- package/src/components/HkPickerPane.scss +32 -5
- package/src/components/HkPlaceholderMarquee.scss +7 -2
- package/src/components/HkPlaceholderMarquee.test.ts +27 -0
- package/src/components/HkPlaceholderMarquee.tsx +14 -6
- package/src/components/HkPopover.scss +18 -10
- package/src/components/HkPopupSelect.scss +28 -7
- package/src/components/HkProgressBar.scss +29 -7
- package/src/components/HkProgressDialog.scss +4 -2
- package/src/components/HkProgressRing.scss +7 -14
- package/src/components/HkProtocolModal.scss +0 -3
- package/src/components/HkQrCode.scss +2 -2
- package/src/components/HkRadio.scss +15 -6
- package/src/components/HkRichInput.scss +29 -13
- package/src/components/HkRollingNumber.scss +14 -6
- package/src/components/HkScrollContainer.scss +20 -8
- package/src/components/HkSearchInput.scss +12 -10
- package/src/components/HkSecretRevealModal.scss +11 -1
- package/src/components/HkSelect.scss +35 -17
- package/src/components/HkSelectionGrid.scss +41 -20
- package/src/components/HkSelectionWaterfall.scss +21 -9
- package/src/components/HkShareBar.scss +14 -5
- package/src/components/HkSidebar.scss +23 -9
- package/src/components/HkSkeleton.scss +16 -8
- package/src/components/HkSlider.scss +12 -2
- package/src/components/HkSpinner.scss +15 -9
- package/src/components/HkSplash.scss +10 -10
- package/src/components/HkStatCard.scss +7 -3
- package/src/components/HkStatusPill.scss +4 -7
- package/src/components/HkStepFlow.scss +24 -4
- package/src/components/HkSwitch.scss +41 -9
- package/src/components/HkTable.scss +25 -20
- package/src/components/HkTabs.scss +40 -26
- package/src/components/HkTag.scss +35 -29
- package/src/components/HkTagInput.scss +22 -16
- package/src/components/HkTextarea.scss +8 -6
- package/src/components/HkThemeToggle.scss +28 -18
- package/src/components/HkTimeline.scss +46 -29
- package/src/components/HkTimeline.test.tsx +39 -0
- package/src/components/HkTimeline.tsx +16 -2
- package/src/components/HkTitleBar.scss +16 -7
- package/src/components/HkToast.scss +40 -10
- package/src/components/HkTokenUsagePanel.scss +11 -6
- package/src/components/HkToolBlock.scss +23 -11
- package/src/components/HkTooltip.scss +5 -9
- package/src/components/HkTree.scss +26 -35
- package/src/components/HkVoiceInputPopup.scss +11 -6
- package/src/components/HkWindowedItem.scss +3 -9
- package/src/components/HkZoomToolbar.scss +12 -10
- package/src/components/_menu-item.scss +4 -3
- package/src/components/window-close.scss +8 -13
- package/src/composables/layoutGeometry.test.ts +177 -0
- package/src/composables/layoutGeometry.ts +231 -0
- package/src/composables/useOverlayScrollbar.test.ts +32 -0
- package/src/composables/useOverlayScrollbar.ts +9 -1
- package/src/composables/usePointerReorder.test.ts +5 -2
- package/src/composables/usePointerReorder.ts +83 -147
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
.hk-dtp {
|
|
8
8
|
display: flex;
|
|
9
9
|
flex-direction: column;
|
|
10
|
-
gap: var(--
|
|
10
|
+
gap: var(--space-8, 8px);
|
|
11
11
|
user-select: none;
|
|
12
12
|
/* Fill the host (inline sheets/dialogs) instead of collapsing to the
|
|
13
13
|
* grid's min-content width — a bottom-sheet calendar should use the
|
|
@@ -20,10 +20,7 @@
|
|
|
20
20
|
display: grid;
|
|
21
21
|
grid-template-columns: 1fr auto 1fr;
|
|
22
22
|
align-items: center;
|
|
23
|
-
gap: var(--
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.hk-dtp-header {
|
|
23
|
+
gap: var(--space-8, 8px);
|
|
27
24
|
/* Fixed height keeps the header row — and therefore the shared stage
|
|
28
25
|
* height — identical in every view and locale (enlarged on touch). */
|
|
29
26
|
height: var(--hk-picker-header);
|
|
@@ -32,7 +29,7 @@
|
|
|
32
29
|
.hk-dtp-header-side {
|
|
33
30
|
display: flex;
|
|
34
31
|
align-items: center;
|
|
35
|
-
gap: var(--
|
|
32
|
+
gap: var(--space-2, 2px);
|
|
36
33
|
min-width: 0;
|
|
37
34
|
}
|
|
38
35
|
|
|
@@ -41,7 +38,7 @@
|
|
|
41
38
|
}
|
|
42
39
|
|
|
43
40
|
.hk-dtp-title {
|
|
44
|
-
font-size: var(--
|
|
41
|
+
font-size: var(--text-sm, 0.875rem);
|
|
45
42
|
font-weight: 600;
|
|
46
43
|
color: var(--hi-color-text-primary);
|
|
47
44
|
font-variant-numeric: tabular-nums;
|
|
@@ -49,14 +46,14 @@
|
|
|
49
46
|
display: flex;
|
|
50
47
|
align-items: center;
|
|
51
48
|
justify-content: center;
|
|
52
|
-
gap: var(--
|
|
49
|
+
gap: var(--space-4, 4px);
|
|
53
50
|
}
|
|
54
51
|
|
|
55
52
|
.hk-dtp-title-btn {
|
|
56
53
|
appearance: none;
|
|
57
54
|
background: transparent;
|
|
58
55
|
border: 0;
|
|
59
|
-
padding: var(--
|
|
56
|
+
padding: var(--space-2, 2px) var(--space-4, 4px);
|
|
60
57
|
font: inherit;
|
|
61
58
|
font-weight: 600;
|
|
62
59
|
color: inherit;
|
|
@@ -106,12 +103,12 @@
|
|
|
106
103
|
.hk-dtp-grid {
|
|
107
104
|
display: grid;
|
|
108
105
|
grid-template-columns: repeat(7, 1fr);
|
|
109
|
-
gap: 2px;
|
|
106
|
+
gap: var(--space-2, 2px);
|
|
110
107
|
}
|
|
111
108
|
|
|
112
109
|
.hk-dtp-wd {
|
|
113
110
|
text-align: center;
|
|
114
|
-
font-size: var(--
|
|
111
|
+
font-size: var(--text-xs, 0.75rem);
|
|
115
112
|
font-weight: 600;
|
|
116
113
|
color: var(--hi-color-muted);
|
|
117
114
|
height: var(--hk-picker-wd);
|
|
@@ -135,7 +132,7 @@
|
|
|
135
132
|
justify-content: center;
|
|
136
133
|
color: color-mix(in srgb, var(--hi-color-text-secondary) 70%, transparent);
|
|
137
134
|
cursor: pointer;
|
|
138
|
-
font-size: var(--
|
|
135
|
+
font-size: var(--text-xs, 0.75rem);
|
|
139
136
|
font-variant-numeric: tabular-nums;
|
|
140
137
|
transition: background var(--hi-duration-fast, 0.15s) ease, color var(--hi-duration-fast, 0.15s) ease;
|
|
141
138
|
|
|
@@ -187,7 +184,7 @@
|
|
|
187
184
|
|
|
188
185
|
.hk-dtp-cell[data-variant="pick"] {
|
|
189
186
|
height: var(--hk-picker-pick);
|
|
190
|
-
font-size: var(--
|
|
187
|
+
font-size: var(--text-xs, 0.75rem);
|
|
191
188
|
font-weight: 500;
|
|
192
189
|
}
|
|
193
190
|
|
|
@@ -211,7 +208,7 @@
|
|
|
211
208
|
display: flex;
|
|
212
209
|
align-items: center;
|
|
213
210
|
justify-content: center;
|
|
214
|
-
gap: var(--
|
|
211
|
+
gap: var(--space-10, 10px);
|
|
215
212
|
/* Spacing comes from the .hk-dtp gap (the row sits under the fixed
|
|
216
213
|
* stage in every view); only the separator border remains. */
|
|
217
214
|
border-top: 1px solid color-mix(in srgb, var(--hi-color-border) 10%, transparent);
|
|
@@ -242,10 +239,15 @@
|
|
|
242
239
|
color: var(--hi-color-text-primary);
|
|
243
240
|
background: var(--hi-color-surface);
|
|
244
241
|
}
|
|
242
|
+
|
|
243
|
+
&:focus-visible {
|
|
244
|
+
outline: 2px solid color-mix(in srgb, var(--hi-color-primary) 55%, transparent);
|
|
245
|
+
outline-offset: 1px;
|
|
246
|
+
}
|
|
245
247
|
}
|
|
246
248
|
|
|
247
249
|
.hk-dtp-step-val {
|
|
248
|
-
font-size: var(--
|
|
250
|
+
font-size: var(--text-base, 0.875rem);
|
|
249
251
|
font-variant-numeric: tabular-nums;
|
|
250
252
|
min-width: 1.75rem;
|
|
251
253
|
text-align: center;
|
|
@@ -254,29 +256,33 @@
|
|
|
254
256
|
}
|
|
255
257
|
|
|
256
258
|
.hk-dtp-time-sep {
|
|
257
|
-
font-size: var(--
|
|
259
|
+
font-size: var(--text-base, 0.875rem);
|
|
258
260
|
color: var(--hi-color-muted);
|
|
259
|
-
padding-top: var(--
|
|
261
|
+
padding-top: var(--space-10, 10px);
|
|
260
262
|
}
|
|
261
263
|
|
|
262
264
|
.hk-dtp-today {
|
|
263
|
-
margin-
|
|
265
|
+
margin-inline-start: var(--space-4, 4px);
|
|
264
266
|
appearance: none;
|
|
265
267
|
background: transparent;
|
|
266
268
|
border: 1px solid color-mix(in srgb, var(--hi-color-border) 18%, transparent);
|
|
267
269
|
border-radius: var(--hi-radius-sm, 4px);
|
|
268
|
-
padding: var(--
|
|
269
|
-
font-size: var(--
|
|
270
|
+
padding: var(--space-4, 4px) var(--space-10, 10px);
|
|
271
|
+
font-size: var(--text-xs, 0.75rem);
|
|
270
272
|
font-weight: 600;
|
|
271
273
|
color: var(--hi-color-muted);
|
|
272
274
|
cursor: pointer;
|
|
273
|
-
align-self: center;
|
|
274
275
|
transition: color var(--hi-duration-fast, 0.15s) ease, border-color var(--hi-duration-fast, 0.15s) ease;
|
|
275
276
|
|
|
276
277
|
&:hover {
|
|
277
278
|
color: var(--hi-color-text-primary);
|
|
278
279
|
border-color: color-mix(in srgb, var(--hi-color-primary) 50%, transparent);
|
|
279
280
|
}
|
|
281
|
+
|
|
282
|
+
&:focus-visible {
|
|
283
|
+
outline: 2px solid color-mix(in srgb, var(--hi-color-primary) 55%, transparent);
|
|
284
|
+
outline-offset: 1px;
|
|
285
|
+
}
|
|
280
286
|
}
|
|
281
287
|
|
|
282
288
|
/* ── Popup mode ────────────────────────────────── */
|
|
@@ -290,13 +296,13 @@
|
|
|
290
296
|
appearance: none;
|
|
291
297
|
display: inline-flex;
|
|
292
298
|
align-items: center;
|
|
293
|
-
gap: var(--
|
|
294
|
-
padding: var(--
|
|
299
|
+
gap: var(--space-6, 6px);
|
|
300
|
+
padding: var(--space-4, 4px) var(--space-10, 10px);
|
|
295
301
|
background: var(--hi-color-surface);
|
|
296
302
|
border: 1px solid color-mix(in srgb, var(--hi-color-border) 18%, transparent);
|
|
297
303
|
border-radius: var(--hi-radius-sm, 4px);
|
|
298
304
|
color: color-mix(in srgb, var(--hi-color-text-secondary) 70%, transparent);
|
|
299
|
-
font-size: var(--
|
|
305
|
+
font-size: var(--text-xs, 0.75rem);
|
|
300
306
|
font-variant-numeric: tabular-nums;
|
|
301
307
|
cursor: pointer;
|
|
302
308
|
transition: border-color var(--hi-duration-fast, 0.15s) ease, color var(--hi-duration-fast, 0.15s) ease;
|
|
@@ -306,6 +312,11 @@
|
|
|
306
312
|
border-color: color-mix(in srgb, var(--hi-color-primary) 50%, transparent);
|
|
307
313
|
color: var(--hi-color-text-primary);
|
|
308
314
|
}
|
|
315
|
+
|
|
316
|
+
&:focus-visible {
|
|
317
|
+
outline: 2px solid color-mix(in srgb, var(--hi-color-primary) 55%, transparent);
|
|
318
|
+
outline-offset: 1px;
|
|
319
|
+
}
|
|
309
320
|
}
|
|
310
321
|
|
|
311
322
|
.hk-dtp-trigger-icon {
|
|
@@ -326,8 +337,14 @@
|
|
|
326
337
|
transform: rotate(180deg);
|
|
327
338
|
}
|
|
328
339
|
|
|
340
|
+
@media (prefers-reduced-motion: reduce) {
|
|
341
|
+
.hk-dtp-trigger-chev {
|
|
342
|
+
transition: none;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
329
346
|
.hk-dtp-popup {
|
|
330
|
-
padding: var(--
|
|
347
|
+
padding: var(--space-8, 8px);
|
|
331
348
|
min-width: 260px;
|
|
332
349
|
}
|
|
333
350
|
|
|
@@ -351,8 +368,8 @@
|
|
|
351
368
|
.hk-dtp-popup-foot {
|
|
352
369
|
display: flex;
|
|
353
370
|
justify-content: flex-end;
|
|
354
|
-
padding: var(--
|
|
355
|
-
margin-top: var(--
|
|
371
|
+
padding: var(--space-8, 8px) var(--space-2, 2px) var(--space-2, 2px);
|
|
372
|
+
margin-top: var(--space-8, 8px);
|
|
356
373
|
border-top: 1px solid color-mix(in srgb, var(--hi-color-border) 10%, transparent);
|
|
357
374
|
}
|
|
358
375
|
|
|
@@ -362,8 +379,8 @@
|
|
|
362
379
|
color: rgb(var(--color-on-solid-text, 255 255 255));
|
|
363
380
|
border: 0;
|
|
364
381
|
border-radius: var(--hi-radius-sm, 4px);
|
|
365
|
-
padding: var(--
|
|
366
|
-
font-size: var(--
|
|
382
|
+
padding: var(--space-6, 6px) var(--space-14, 14px);
|
|
383
|
+
font-size: var(--text-xs, 0.75rem);
|
|
367
384
|
font-weight: 600;
|
|
368
385
|
cursor: pointer;
|
|
369
386
|
transition: filter var(--hi-duration-fast, 0.15s) ease;
|
|
@@ -380,13 +397,13 @@
|
|
|
380
397
|
width: 100%;
|
|
381
398
|
min-height: 2.5rem;
|
|
382
399
|
box-sizing: border-box;
|
|
383
|
-
padding: var(--
|
|
400
|
+
padding: var(--space-8, 8px) var(--space-12, 12px);
|
|
384
401
|
background: var(--hi-color-surface);
|
|
385
402
|
border: 1px solid color-mix(in srgb, var(--hi-color-border) 18%, transparent);
|
|
386
403
|
border-radius: var(--hi-radius-sm, 4px);
|
|
387
404
|
color: var(--hi-color-text-primary);
|
|
388
405
|
font-family: inherit;
|
|
389
|
-
font-size: var(--
|
|
406
|
+
font-size: var(--text-sm, 0.875rem);
|
|
390
407
|
font-variant-numeric: tabular-nums;
|
|
391
408
|
line-height: 1.5;
|
|
392
409
|
|
|
@@ -32,23 +32,23 @@
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
.hk-divider-spacing-xs {
|
|
35
|
-
--hk-divider-space: var(--
|
|
35
|
+
--hk-divider-space: var(--space-2, 0.125rem);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
.hk-divider-spacing-sm {
|
|
39
|
-
--hk-divider-space: var(--
|
|
39
|
+
--hk-divider-space: var(--space-4, 0.25rem);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
.hk-divider-spacing-md {
|
|
43
|
-
--hk-divider-space: var(--
|
|
43
|
+
--hk-divider-space: var(--space-6, 0.375rem);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
.hk-divider-spacing-lg {
|
|
47
|
-
--hk-divider-space: var(--
|
|
47
|
+
--hk-divider-space: var(--space-8, 0.5rem);
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
.hk-divider-spacing-xl {
|
|
51
|
-
--hk-divider-space: var(--
|
|
51
|
+
--hk-divider-space: var(--space-12, 0.75rem);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
.hk-divider[class*="hk-divider-spacing-"]:not(.hk-divider-vertical) {
|
|
@@ -59,27 +59,26 @@
|
|
|
59
59
|
margin-inline: var(--hk-divider-space);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
|
-
.hk-divider-vertical
|
|
62
|
+
.hk-divider-vertical[class*="hk-divider-length-"] {
|
|
63
63
|
align-self: center;
|
|
64
|
-
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.hk-divider-vertical.hk-divider-length-xs {
|
|
67
|
+
height: var(--space-8, 0.5rem);
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
.hk-divider-vertical.hk-divider-length-sm {
|
|
68
|
-
|
|
69
|
-
height: var(--hi-space-12, 0.75rem);
|
|
71
|
+
height: var(--space-12, 0.75rem);
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
.hk-divider-vertical.hk-divider-length-md {
|
|
73
|
-
|
|
74
|
-
height: var(--hi-space-16, 1rem);
|
|
75
|
+
height: var(--space-16, 1rem);
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
.hk-divider-vertical.hk-divider-length-lg {
|
|
78
|
-
|
|
79
|
-
height: var(--hi-space-24, 1.5rem);
|
|
79
|
+
height: var(--space-24, 1.5rem);
|
|
80
80
|
}
|
|
81
81
|
|
|
82
82
|
.hk-divider-vertical.hk-divider-length-xl {
|
|
83
|
-
|
|
84
|
-
height: var(--hi-space-32, 2rem);
|
|
83
|
+
height: var(--space-32, 2rem);
|
|
85
84
|
}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
.hk-draggable-grid {
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: column;
|
|
4
|
-
gap: 0.5rem;
|
|
4
|
+
gap: var(--space-8, 0.5rem);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
.hk-draggable-grid-row {
|
|
8
8
|
display: flex;
|
|
9
9
|
flex-wrap: nowrap;
|
|
10
|
-
gap: 0.5rem;
|
|
10
|
+
gap: var(--space-8, 0.5rem);
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
.hk-draggable-grid-row-phantom {
|
|
14
14
|
min-height: 44px;
|
|
15
15
|
border: 1px dashed var(--hi-color-primary, #58a6ff);
|
|
16
|
-
border-radius: 4px;
|
|
16
|
+
border-radius: var(--radius-sm, 4px);
|
|
17
17
|
background: rgb(from var(--hi-color-primary, #58a6ff) r g b / 0.04);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
.hk-draggable-grid-cell {
|
|
21
|
-
flex: 0 0 calc((100% - (var(--hk-grid-cols, 3) - 1) * 0.5rem) / var(--hk-grid-cols, 3));
|
|
21
|
+
flex: 0 0 calc((100% - (var(--hk-grid-cols, 3) - 1) * var(--space-8, 0.5rem)) / var(--hk-grid-cols, 3));
|
|
22
22
|
display: flex;
|
|
23
23
|
align-items: center;
|
|
24
|
-
gap: 0.5rem;
|
|
24
|
+
gap: var(--space-8, 0.5rem);
|
|
25
25
|
min-height: 44px;
|
|
26
|
-
padding: 0.5rem 0.625rem;
|
|
27
|
-
border-radius: 4px;
|
|
26
|
+
padding: var(--space-8, 0.5rem) var(--space-10, 0.625rem);
|
|
27
|
+
border-radius: var(--radius-sm, 4px);
|
|
28
28
|
background: var(--hi-color-bg-subtle, #21262d);
|
|
29
29
|
border: 1px solid var(--hi-color-border, #30363d);
|
|
30
30
|
transition:
|
|
@@ -48,7 +48,6 @@
|
|
|
48
48
|
border-color: var(--hi-color-primary, #58a6ff);
|
|
49
49
|
background: rgb(from var(--hi-color-primary, #58a6ff) r g b / 0.04);
|
|
50
50
|
cursor: grabbing;
|
|
51
|
-
z-index: 0;
|
|
52
51
|
}
|
|
53
52
|
|
|
54
53
|
&[data-placeholder="before"] {
|
|
@@ -57,6 +56,13 @@
|
|
|
57
56
|
|
|
58
57
|
&[data-locked] {
|
|
59
58
|
opacity: 0.65;
|
|
59
|
+
cursor: default;
|
|
60
|
+
|
|
61
|
+
/* Locked cells never start a drag (tsx returns early) — no hover
|
|
62
|
+
* affordance and no grab cursor on their surface. */
|
|
63
|
+
&:hover {
|
|
64
|
+
border-color: var(--hi-color-border, #30363d);
|
|
65
|
+
}
|
|
60
66
|
}
|
|
61
67
|
|
|
62
68
|
.hk-draggable-grid[data-dragging] & {
|
|
@@ -70,10 +76,20 @@
|
|
|
70
76
|
box-shadow: inset -2px 0 0 0 var(--hi-color-primary, #58a6ff);
|
|
71
77
|
}
|
|
72
78
|
|
|
79
|
+
/* RTL flips the flex flow, so the before/after insertion markers must
|
|
80
|
+
* swap physical sides to keep pointing at the inline edge (HkBreadcrumb
|
|
81
|
+
* precedent for the [dir="rtl"] override form). */
|
|
82
|
+
[dir="rtl"] .hk-draggable-grid-cell[data-placeholder="before"] {
|
|
83
|
+
box-shadow: inset -2px 0 0 0 var(--hi-color-primary, #58a6ff);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
[dir="rtl"] .hk-draggable-grid-row[data-placeholder-row="after"] {
|
|
87
|
+
box-shadow: inset 2px 0 0 0 var(--hi-color-primary, #58a6ff);
|
|
88
|
+
}
|
|
89
|
+
|
|
73
90
|
.hk-draggable-grid-cell-placeholder-target {
|
|
74
91
|
border: none;
|
|
75
92
|
background: transparent;
|
|
76
|
-
min-height: 44px;
|
|
77
93
|
}
|
|
78
94
|
|
|
79
95
|
.hk-draggable-grid-handle {
|
|
@@ -100,7 +116,7 @@
|
|
|
100
116
|
min-width: 0;
|
|
101
117
|
display: flex;
|
|
102
118
|
align-items: center;
|
|
103
|
-
gap: 0.5rem;
|
|
119
|
+
gap: var(--space-8, 0.5rem);
|
|
104
120
|
}
|
|
105
121
|
|
|
106
122
|
.hk-draggable-grid-ghost {
|
|
@@ -113,7 +129,7 @@
|
|
|
113
129
|
box-shadow:
|
|
114
130
|
0 8px 24px rgb(0 0 0 / 28%),
|
|
115
131
|
0 2px 6px rgb(0 0 0 / 18%);
|
|
116
|
-
border-radius: 4px;
|
|
132
|
+
border-radius: var(--radius-sm, 4px);
|
|
117
133
|
background: var(--hi-color-bg-elevated, #161b22);
|
|
118
134
|
backdrop-filter: blur(2px);
|
|
119
135
|
pointer-events: none;
|
|
@@ -133,3 +149,17 @@
|
|
|
133
149
|
width: 100%;
|
|
134
150
|
}
|
|
135
151
|
}
|
|
152
|
+
|
|
153
|
+
/* The dragging cell's scale-down is a non-trivial transform animation —
|
|
154
|
+
* drop it (and the transitions) under reduced motion (HkExpansionPanel
|
|
155
|
+
* precedent). The ghost's pointer-follow is direct manipulation with no
|
|
156
|
+
* transition, so it needs no guard. */
|
|
157
|
+
@media (prefers-reduced-motion: reduce) {
|
|
158
|
+
.hk-draggable-grid-cell {
|
|
159
|
+
transition: none;
|
|
160
|
+
|
|
161
|
+
&[data-dragging] {
|
|
162
|
+
transform: none;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
.hk-draggable-list {
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: column;
|
|
4
|
-
gap: 4px;
|
|
4
|
+
gap: var(--space-4, 4px);
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
.hk-draggable-list-item {
|
|
8
8
|
display: flex;
|
|
9
9
|
align-items: center;
|
|
10
|
-
gap: 0.5rem;
|
|
11
|
-
min-height: 40px;
|
|
12
|
-
padding: 0.5rem 0.625rem;
|
|
13
|
-
border-radius: 4px;
|
|
10
|
+
gap: var(--space-8, 0.5rem);
|
|
11
|
+
min-height: var(--space-40, 40px);
|
|
12
|
+
padding: var(--space-8, 0.5rem) var(--space-10, 0.625rem);
|
|
13
|
+
border-radius: var(--radius-sm, 4px);
|
|
14
14
|
background: var(--hi-color-bg-subtle, #21262d);
|
|
15
15
|
border: 1px solid var(--hi-color-border, #30363d);
|
|
16
16
|
transition:
|
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
background 150ms ease;
|
|
21
21
|
user-select: none;
|
|
22
22
|
-webkit-user-select: none;
|
|
23
|
-
transform-origin: center;
|
|
24
23
|
|
|
25
24
|
&:hover {
|
|
26
25
|
border-color: var(--hi-color-text-tertiary, #8b949e);
|
|
@@ -33,7 +32,6 @@
|
|
|
33
32
|
border-color: var(--hi-color-primary, #58a6ff);
|
|
34
33
|
background: rgb(from var(--hi-color-primary, #58a6ff) r g b / 0.04);
|
|
35
34
|
cursor: grabbing;
|
|
36
|
-
z-index: 0;
|
|
37
35
|
}
|
|
38
36
|
|
|
39
37
|
&[data-placeholder="before"] {
|
|
@@ -58,7 +56,7 @@
|
|
|
58
56
|
display: flex;
|
|
59
57
|
align-items: center;
|
|
60
58
|
justify-content: center;
|
|
61
|
-
width: 20px;
|
|
59
|
+
width: var(--space-20, 20px);
|
|
62
60
|
flex-shrink: 0;
|
|
63
61
|
color: var(--hi-color-text-tertiary, #8b949e);
|
|
64
62
|
cursor: grab;
|
|
@@ -78,7 +76,7 @@
|
|
|
78
76
|
min-width: 0;
|
|
79
77
|
display: flex;
|
|
80
78
|
align-items: center;
|
|
81
|
-
gap: 0.5rem;
|
|
79
|
+
gap: var(--space-8, 0.5rem);
|
|
82
80
|
}
|
|
83
81
|
|
|
84
82
|
.hk-draggable-list-ghost {
|
|
@@ -86,12 +84,14 @@
|
|
|
86
84
|
top: 0;
|
|
87
85
|
left: 0;
|
|
88
86
|
margin: 0;
|
|
89
|
-
transform:
|
|
87
|
+
// No transform here: the tsx always writes the full translate3d inline
|
|
88
|
+
// (attachGhost/moveGhost) before the ghost paints — a class transform
|
|
89
|
+
// (e.g. a scale lift) could never win the cascade against it.
|
|
90
90
|
opacity: 0.85;
|
|
91
91
|
box-shadow:
|
|
92
92
|
0 8px 24px rgb(0 0 0 / 28%),
|
|
93
93
|
0 2px 6px rgb(0 0 0 / 18%);
|
|
94
|
-
border-radius: 4px;
|
|
94
|
+
border-radius: var(--radius-sm, 4px);
|
|
95
95
|
background: var(--hi-color-bg-elevated, #161b22);
|
|
96
96
|
backdrop-filter: blur(2px);
|
|
97
97
|
pointer-events: none;
|
|
@@ -111,3 +111,14 @@
|
|
|
111
111
|
width: 100%;
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
|
+
|
|
115
|
+
/* Reduced motion: the dragging press cue (scale + dim) must snap instead
|
|
116
|
+
of animating; the hover border/background fades stay (house convention).
|
|
117
|
+
The ghost itself is pointer-positioned via inline transform — 1:1
|
|
118
|
+
direct manipulation, not autonomous motion — so it is left alone.
|
|
119
|
+
(house pattern: HkAffixPicker.scss / HkExpansionPanel.scss guards) */
|
|
120
|
+
@media (prefers-reduced-motion: reduce) {
|
|
121
|
+
.hk-draggable-list-item {
|
|
122
|
+
transition: border-color 150ms ease, background 150ms ease;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -112,13 +112,13 @@
|
|
|
112
112
|
display: flex;
|
|
113
113
|
align-items: center;
|
|
114
114
|
justify-content: space-between;
|
|
115
|
-
padding: var(--
|
|
115
|
+
padding: var(--space-12, 0.75rem) var(--space-16, 1rem);
|
|
116
116
|
border-bottom: 1px solid var(--hi-color-border, rgba(0, 0, 0, 0.06));
|
|
117
117
|
flex-shrink: 0;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
.hk-drawer-title {
|
|
121
|
-
font-size: var(--
|
|
121
|
+
font-size: var(--text-base, 0.875rem);
|
|
122
122
|
font-weight: 700;
|
|
123
123
|
color: var(--hi-color-text-primary, #333);
|
|
124
124
|
}
|
|
@@ -147,7 +147,7 @@
|
|
|
147
147
|
/* Consumers nesting a self-padded menu (HkMenuPanel) zero this via
|
|
148
148
|
--hk-drawer-body-padding so nav rows and the footer menu share one
|
|
149
149
|
left edge. */
|
|
150
|
-
padding: var(--hk-drawer-body-padding, var(--
|
|
150
|
+
padding: var(--hk-drawer-body-padding, var(--space-16, 1rem));
|
|
151
151
|
|
|
152
152
|
/* Overlay scrollbar (useOverlayScrollbar) — the native chrome is
|
|
153
153
|
hidden, never styled. */
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
.hk-drawer-footer {
|
|
162
162
|
/* HkMenuPanel carries its own inset; zero this variable when the
|
|
163
163
|
footer hosts one so both edges align. */
|
|
164
|
-
padding: var(--hk-drawer-footer-padding, var(--
|
|
164
|
+
padding: var(--hk-drawer-footer-padding, var(--space-12, 0.75rem) var(--space-16, 1rem));
|
|
165
165
|
border-top: 1px solid var(--hi-color-border, rgba(0, 0, 0, 0.06));
|
|
166
166
|
flex-shrink: 0;
|
|
167
167
|
}
|
|
@@ -220,3 +220,23 @@
|
|
|
220
220
|
}
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
+
|
|
224
|
+
/* Reduced motion: the width/height size morph and the four slide
|
|
225
|
+
directions snap instead of animating — the surface machine's
|
|
226
|
+
zero-duration probe (useSurfaceMachine.completeNow) finalizes open/
|
|
227
|
+
close immediately. The overlay scrim's fade is already flattened by
|
|
228
|
+
the same media query inside scrim-fade().
|
|
229
|
+
(house pattern: HkModal.scss / HkPopover.scss guards) */
|
|
230
|
+
@media (prefers-reduced-motion: reduce) {
|
|
231
|
+
.hk-drawer-panel,
|
|
232
|
+
.hk-drawer-left-enter-active,
|
|
233
|
+
.hk-drawer-right-enter-active,
|
|
234
|
+
.hk-drawer-top-enter-active,
|
|
235
|
+
.hk-drawer-bottom-enter-active,
|
|
236
|
+
.hk-drawer-left-leave-active,
|
|
237
|
+
.hk-drawer-right-leave-active,
|
|
238
|
+
.hk-drawer-top-leave-active,
|
|
239
|
+
.hk-drawer-bottom-leave-active {
|
|
240
|
+
transition: none;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
@@ -3,19 +3,19 @@
|
|
|
3
3
|
flex-direction: column;
|
|
4
4
|
align-items: center;
|
|
5
5
|
justify-content: center;
|
|
6
|
-
padding: var(--
|
|
6
|
+
padding: var(--space-48, 3rem) var(--space-16, 1rem);
|
|
7
7
|
text-align: center;
|
|
8
8
|
background: var(--hk-empty-bg, var(--hi-color-surface, rgba(255, 255, 255, 0.95)));
|
|
9
|
-
backdrop-filter: blur(8px);
|
|
9
|
+
backdrop-filter: blur(var(--blur-sm, 8px));
|
|
10
10
|
border: 1px solid var(--hi-color-border, rgba(0, 0, 0, 0.06));
|
|
11
11
|
border-radius: var(--hi-radius-md, 0.5rem);
|
|
12
12
|
box-sizing: border-box;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
.hk-empty-icon {
|
|
16
|
-
width:
|
|
17
|
-
height:
|
|
18
|
-
margin-bottom: var(--
|
|
16
|
+
width: var(--space-48, 3rem);
|
|
17
|
+
height: var(--space-48, 3rem);
|
|
18
|
+
margin-bottom: var(--space-12, 0.75rem);
|
|
19
19
|
color: var(--hi-color-text-secondary, #666);
|
|
20
20
|
opacity: 0.5;
|
|
21
21
|
display: flex;
|
|
@@ -24,22 +24,22 @@
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
.hk-empty-title {
|
|
27
|
-
font-size: var(--
|
|
27
|
+
font-size: var(--text-base, 0.875rem);
|
|
28
28
|
font-weight: 600;
|
|
29
29
|
color: var(--hi-color-text-primary, #333);
|
|
30
|
-
margin: 0 0 var(--
|
|
30
|
+
margin: 0 0 var(--space-8, 0.5rem);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
.hk-empty-desc {
|
|
34
|
-
font-size: var(--
|
|
34
|
+
font-size: var(--text-sm, 0.8125rem);
|
|
35
35
|
color: var(--hi-color-text-secondary, #666);
|
|
36
|
-
margin: 0 0 var(--
|
|
36
|
+
margin: 0 0 var(--space-16, 1rem);
|
|
37
37
|
max-width: 24rem;
|
|
38
38
|
line-height: 1.5;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.hk-empty-action {
|
|
42
|
-
margin-top: var(--
|
|
42
|
+
margin-top: var(--space-4, 0.25rem);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
/* fit="page" (default): full width on mobile — the page supplies the outer
|
|
@@ -61,7 +61,6 @@
|
|
|
61
61
|
.hk-empty-state--fill {
|
|
62
62
|
width: 100%;
|
|
63
63
|
height: 100%;
|
|
64
|
-
min-height: 100%;
|
|
65
64
|
}
|
|
66
65
|
|
|
67
66
|
/* Loading variant keeps a comfortable spinner area in short hosts. */
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
border: 1px solid rgb(var(--hel-border) / 70%);
|
|
44
44
|
border-radius: var(--radius-xl, 20px);
|
|
45
45
|
box-shadow: var(--shadow-lg, 0 18px 48px rgb(0 0 0 / 8%));
|
|
46
|
-
padding: 2.25rem 1.75rem 1.75rem;
|
|
46
|
+
padding: 2.25rem var(--space-28, 1.75rem) var(--space-28, 1.75rem);
|
|
47
47
|
text-align: center;
|
|
48
48
|
|
|
49
49
|
// Tone wash bleeding down from the top edge behind the icon — gives the
|
|
@@ -188,14 +188,14 @@
|
|
|
188
188
|
.hk-error-landing__details {
|
|
189
189
|
position: relative;
|
|
190
190
|
margin-top: var(--space-16, 1rem);
|
|
191
|
-
text-align:
|
|
191
|
+
text-align: start;
|
|
192
192
|
}
|
|
193
193
|
|
|
194
194
|
.hk-error-landing__details-label {
|
|
195
195
|
display: flex;
|
|
196
196
|
align-items: center;
|
|
197
|
-
gap: 4px;
|
|
198
|
-
padding: 0 2px;
|
|
197
|
+
gap: var(--space-4, 4px);
|
|
198
|
+
padding: 0 var(--space-2, 2px);
|
|
199
199
|
font-size: var(--text-xs, 0.75rem);
|
|
200
200
|
font-weight: 500;
|
|
201
201
|
letter-spacing: 0.02em;
|
|
@@ -269,6 +269,6 @@
|
|
|
269
269
|
|
|
270
270
|
@media (max-width: 480px) {
|
|
271
271
|
.hk-error-landing__card {
|
|
272
|
-
padding: 1.75rem 1.125rem 1.5rem;
|
|
272
|
+
padding: var(--space-28, 1.75rem) 1.125rem var(--space-24, 1.5rem);
|
|
273
273
|
}
|
|
274
274
|
}
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
background: none;
|
|
38
38
|
color: rgb(var(--color-text));
|
|
39
39
|
font: inherit;
|
|
40
|
-
text-align:
|
|
40
|
+
text-align: start;
|
|
41
41
|
cursor: pointer;
|
|
42
42
|
outline: none;
|
|
43
43
|
|
|
@@ -45,6 +45,10 @@
|
|
|
45
45
|
background: var(--c-primary-faint);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
&:active:not(:disabled) {
|
|
49
|
+
background: var(--c-primary-dim);
|
|
50
|
+
}
|
|
51
|
+
|
|
48
52
|
&:focus-visible {
|
|
49
53
|
box-shadow: var(--shadow-focus);
|
|
50
54
|
}
|
|
@@ -62,7 +66,7 @@
|
|
|
62
66
|
flex: 1;
|
|
63
67
|
display: flex;
|
|
64
68
|
flex-direction: column;
|
|
65
|
-
gap:
|
|
69
|
+
gap: var(--space-2);
|
|
66
70
|
min-width: 0;
|
|
67
71
|
}
|
|
68
72
|
|