@hanzo/ui 8.29.2 → 8.29.3
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/dist/gallery.html +10 -10
- package/dist/glass.css +9 -9
- package/dist/styles.css +9 -9
- package/dist/theme.css +9 -9
- package/package.json +1 -1
package/dist/gallery.html
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!doctype html><html lang="en" class="t_dark"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>@hanzo/ui 8.29.
|
|
1
|
+
<!doctype html><html lang="en" class="t_dark"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>@hanzo/ui 8.29.3</title><style>/* @hanzo/ui — generated by scripts/gen-css.mjs. Do not edit. */
|
|
2
2
|
:root { --hanzo-ui-styles: 1; }
|
|
3
3
|
/* Hanzo Design System — the entry point. Import THIS one file.
|
|
4
4
|
*
|
|
@@ -2747,21 +2747,22 @@
|
|
|
2747
2747
|
border-top: 1px solid var(--borderColor, var(--border));
|
|
2748
2748
|
}
|
|
2749
2749
|
|
|
2750
|
-
/* FOCUS
|
|
2750
|
+
/* FOCUS IS THE COMPOSER'S OWN EDGE, BRIGHTENED A STEP.
|
|
2751
2751
|
|
|
2752
2752
|
`Composer` is a bordered box holding a field above a toolbar row, so it reads
|
|
2753
|
-
as one control the way a chat composer everywhere does
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2753
|
+
as one control the way a chat composer everywhere does, and focus is drawn on
|
|
2754
|
+
that box rather than round the field inside it. An offset ring stood a gap
|
|
2755
|
+
outside the box and read as a second frame; the box's own 1px edge, lifted
|
|
2756
|
+
from the hairline to a third of the ink, says the same thing in place, in both
|
|
2757
|
+
themes, for a pointer and a keyboard alike (a textarea is :focus-visible on
|
|
2758
|
+
any focus).
|
|
2758
2759
|
|
|
2759
2760
|
THE FIELD DOES NOT ABSTAIN, and control.ts is right that it must not: gui
|
|
2760
2761
|
compiles `focusVisibleStyle` to `:root:root:root:root … !important`, past any
|
|
2761
2762
|
sheet, so a field that says `outlineWidth: 0` deletes the indicator on every
|
|
2762
2763
|
surface at once. What gui declares is `outline-color: var(--outlineColor)` —
|
|
2763
2764
|
a VARIABLE — so the colour is re-pointed for this one field instead, in the
|
|
2764
|
-
same breath as the
|
|
2765
|
+
same breath as the box taking focus up. The declaration gui emits is
|
|
2765
2766
|
untouched and `focus.test.tsx` still reads it.
|
|
2766
2767
|
|
|
2767
2768
|
Both rules turn on the SAME condition, which is what makes it safe: where
|
|
@@ -2769,8 +2770,7 @@
|
|
|
2769
2770
|
ring, so no browser reaches a state with a focused composer and no indicator
|
|
2770
2771
|
anywhere. */
|
|
2771
2772
|
[data-slot='composer']:has([data-slot='composer-field']:focus-visible) {
|
|
2772
|
-
|
|
2773
|
-
outline-offset: 2px;
|
|
2773
|
+
border-color: color-mix(in srgb, var(--foreground) 32%, transparent);
|
|
2774
2774
|
}
|
|
2775
2775
|
|
|
2776
2776
|
[data-slot='composer']:has([data-slot='composer-field']:focus-visible)
|
package/dist/glass.css
CHANGED
|
@@ -305,21 +305,22 @@
|
|
|
305
305
|
border-top: 1px solid var(--borderColor, var(--border));
|
|
306
306
|
}
|
|
307
307
|
|
|
308
|
-
/* FOCUS
|
|
308
|
+
/* FOCUS IS THE COMPOSER'S OWN EDGE, BRIGHTENED A STEP.
|
|
309
309
|
|
|
310
310
|
`Composer` is a bordered box holding a field above a toolbar row, so it reads
|
|
311
|
-
as one control the way a chat composer everywhere does
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
311
|
+
as one control the way a chat composer everywhere does, and focus is drawn on
|
|
312
|
+
that box rather than round the field inside it. An offset ring stood a gap
|
|
313
|
+
outside the box and read as a second frame; the box's own 1px edge, lifted
|
|
314
|
+
from the hairline to a third of the ink, says the same thing in place, in both
|
|
315
|
+
themes, for a pointer and a keyboard alike (a textarea is :focus-visible on
|
|
316
|
+
any focus).
|
|
316
317
|
|
|
317
318
|
THE FIELD DOES NOT ABSTAIN, and control.ts is right that it must not: gui
|
|
318
319
|
compiles `focusVisibleStyle` to `:root:root:root:root … !important`, past any
|
|
319
320
|
sheet, so a field that says `outlineWidth: 0` deletes the indicator on every
|
|
320
321
|
surface at once. What gui declares is `outline-color: var(--outlineColor)` —
|
|
321
322
|
a VARIABLE — so the colour is re-pointed for this one field instead, in the
|
|
322
|
-
same breath as the
|
|
323
|
+
same breath as the box taking focus up. The declaration gui emits is
|
|
323
324
|
untouched and `focus.test.tsx` still reads it.
|
|
324
325
|
|
|
325
326
|
Both rules turn on the SAME condition, which is what makes it safe: where
|
|
@@ -327,8 +328,7 @@
|
|
|
327
328
|
ring, so no browser reaches a state with a focused composer and no indicator
|
|
328
329
|
anywhere. */
|
|
329
330
|
[data-slot='composer']:has([data-slot='composer-field']:focus-visible) {
|
|
330
|
-
|
|
331
|
-
outline-offset: 2px;
|
|
331
|
+
border-color: color-mix(in srgb, var(--foreground) 32%, transparent);
|
|
332
332
|
}
|
|
333
333
|
|
|
334
334
|
[data-slot='composer']:has([data-slot='composer-field']:focus-visible)
|
package/dist/styles.css
CHANGED
|
@@ -2747,21 +2747,22 @@
|
|
|
2747
2747
|
border-top: 1px solid var(--borderColor, var(--border));
|
|
2748
2748
|
}
|
|
2749
2749
|
|
|
2750
|
-
/* FOCUS
|
|
2750
|
+
/* FOCUS IS THE COMPOSER'S OWN EDGE, BRIGHTENED A STEP.
|
|
2751
2751
|
|
|
2752
2752
|
`Composer` is a bordered box holding a field above a toolbar row, so it reads
|
|
2753
|
-
as one control the way a chat composer everywhere does
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2753
|
+
as one control the way a chat composer everywhere does, and focus is drawn on
|
|
2754
|
+
that box rather than round the field inside it. An offset ring stood a gap
|
|
2755
|
+
outside the box and read as a second frame; the box's own 1px edge, lifted
|
|
2756
|
+
from the hairline to a third of the ink, says the same thing in place, in both
|
|
2757
|
+
themes, for a pointer and a keyboard alike (a textarea is :focus-visible on
|
|
2758
|
+
any focus).
|
|
2758
2759
|
|
|
2759
2760
|
THE FIELD DOES NOT ABSTAIN, and control.ts is right that it must not: gui
|
|
2760
2761
|
compiles `focusVisibleStyle` to `:root:root:root:root … !important`, past any
|
|
2761
2762
|
sheet, so a field that says `outlineWidth: 0` deletes the indicator on every
|
|
2762
2763
|
surface at once. What gui declares is `outline-color: var(--outlineColor)` —
|
|
2763
2764
|
a VARIABLE — so the colour is re-pointed for this one field instead, in the
|
|
2764
|
-
same breath as the
|
|
2765
|
+
same breath as the box taking focus up. The declaration gui emits is
|
|
2765
2766
|
untouched and `focus.test.tsx` still reads it.
|
|
2766
2767
|
|
|
2767
2768
|
Both rules turn on the SAME condition, which is what makes it safe: where
|
|
@@ -2769,8 +2770,7 @@
|
|
|
2769
2770
|
ring, so no browser reaches a state with a focused composer and no indicator
|
|
2770
2771
|
anywhere. */
|
|
2771
2772
|
[data-slot='composer']:has([data-slot='composer-field']:focus-visible) {
|
|
2772
|
-
|
|
2773
|
-
outline-offset: 2px;
|
|
2773
|
+
border-color: color-mix(in srgb, var(--foreground) 32%, transparent);
|
|
2774
2774
|
}
|
|
2775
2775
|
|
|
2776
2776
|
[data-slot='composer']:has([data-slot='composer-field']:focus-visible)
|
package/dist/theme.css
CHANGED
|
@@ -2745,21 +2745,22 @@
|
|
|
2745
2745
|
border-top: 1px solid var(--borderColor, var(--border));
|
|
2746
2746
|
}
|
|
2747
2747
|
|
|
2748
|
-
/* FOCUS
|
|
2748
|
+
/* FOCUS IS THE COMPOSER'S OWN EDGE, BRIGHTENED A STEP.
|
|
2749
2749
|
|
|
2750
2750
|
`Composer` is a bordered box holding a field above a toolbar row, so it reads
|
|
2751
|
-
as one control the way a chat composer everywhere does
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2751
|
+
as one control the way a chat composer everywhere does, and focus is drawn on
|
|
2752
|
+
that box rather than round the field inside it. An offset ring stood a gap
|
|
2753
|
+
outside the box and read as a second frame; the box's own 1px edge, lifted
|
|
2754
|
+
from the hairline to a third of the ink, says the same thing in place, in both
|
|
2755
|
+
themes, for a pointer and a keyboard alike (a textarea is :focus-visible on
|
|
2756
|
+
any focus).
|
|
2756
2757
|
|
|
2757
2758
|
THE FIELD DOES NOT ABSTAIN, and control.ts is right that it must not: gui
|
|
2758
2759
|
compiles `focusVisibleStyle` to `:root:root:root:root … !important`, past any
|
|
2759
2760
|
sheet, so a field that says `outlineWidth: 0` deletes the indicator on every
|
|
2760
2761
|
surface at once. What gui declares is `outline-color: var(--outlineColor)` —
|
|
2761
2762
|
a VARIABLE — so the colour is re-pointed for this one field instead, in the
|
|
2762
|
-
same breath as the
|
|
2763
|
+
same breath as the box taking focus up. The declaration gui emits is
|
|
2763
2764
|
untouched and `focus.test.tsx` still reads it.
|
|
2764
2765
|
|
|
2765
2766
|
Both rules turn on the SAME condition, which is what makes it safe: where
|
|
@@ -2767,8 +2768,7 @@
|
|
|
2767
2768
|
ring, so no browser reaches a state with a focused composer and no indicator
|
|
2768
2769
|
anywhere. */
|
|
2769
2770
|
[data-slot='composer']:has([data-slot='composer-field']:focus-visible) {
|
|
2770
|
-
|
|
2771
|
-
outline-offset: 2px;
|
|
2771
|
+
border-color: color-mix(in srgb, var(--foreground) 32%, transparent);
|
|
2772
2772
|
}
|
|
2773
2773
|
|
|
2774
2774
|
[data-slot='composer']:has([data-slot='composer-field']:focus-visible)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/ui",
|
|
3
|
-
"version": "8.29.
|
|
3
|
+
"version": "8.29.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Hanzo UI — the one canonical Hanzo component library, on @hanzo/gui + @hanzo/design. ONE substrate: every component renders through @hanzo/gui primitives, so the same import works on web, native (expo) and desktop (Tauri). Self-contained (theme.css), presentational, host-agnostic, clean-room.",
|
|
6
6
|
"exports": {
|