@hanzo/ui 8.27.2 → 8.27.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 +32 -1
- package/dist/glass.css +31 -0
- package/dist/styles.css +31 -0
- package/dist/theme.css +31 -0
- 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.27.
|
|
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.27.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
|
*
|
|
@@ -1997,6 +1997,37 @@
|
|
|
1997
1997
|
}
|
|
1998
1998
|
}
|
|
1999
1999
|
|
|
2000
|
+
/* FOCUS RINGS THE CONTROL A PERSON SEES, WHICH IS THE WHOLE COMPOSER.
|
|
2001
|
+
|
|
2002
|
+
`Composer` is a bordered box holding a field above a toolbar row, so it reads
|
|
2003
|
+
as one control the way a chat composer everywhere does. The field inside it is
|
|
2004
|
+
an ordinary textarea, so the indicator was drawn round the field alone: a
|
|
2005
|
+
second rounded rectangle nested inside the box, stopping above the mic and the
|
|
2006
|
+
send button, which reads as the top half being selected. WCAG 2.4.11 asks the
|
|
2007
|
+
indicator to enclose the control, and the control here is the composer.
|
|
2008
|
+
|
|
2009
|
+
THE FIELD DOES NOT ABSTAIN, and control.ts is right that it must not: gui
|
|
2010
|
+
compiles `focusVisibleStyle` to `:root:root:root:root … !important`, past any
|
|
2011
|
+
sheet, so a field that says `outlineWidth: 0` deletes the indicator on every
|
|
2012
|
+
surface at once. What gui declares is `outline-color: var(--outlineColor)` —
|
|
2013
|
+
a VARIABLE — so the colour is re-pointed for this one field instead, in the
|
|
2014
|
+
same breath as the host taking the ring up. The declaration gui emits is
|
|
2015
|
+
untouched and `focus.test.tsx` still reads it.
|
|
2016
|
+
|
|
2017
|
+
Both rules turn on the SAME condition, which is what makes it safe: where
|
|
2018
|
+
`:has` is unsupported neither applies and the field keeps drawing its own
|
|
2019
|
+
ring, so no browser reaches a state with a focused composer and no indicator
|
|
2020
|
+
anywhere. */
|
|
2021
|
+
[data-slot='composer']:has([data-slot='composer-field']:focus-visible) {
|
|
2022
|
+
outline: 2px solid var(--ring);
|
|
2023
|
+
outline-offset: 2px;
|
|
2024
|
+
}
|
|
2025
|
+
|
|
2026
|
+
[data-slot='composer']:has([data-slot='composer-field']:focus-visible)
|
|
2027
|
+
[data-slot='composer-field'] {
|
|
2028
|
+
--outlineColor: transparent;
|
|
2029
|
+
}
|
|
2030
|
+
|
|
2000
2031
|
[stylesheet-group="0"]{}
|
|
2001
2032
|
body{margin:0;}
|
|
2002
2033
|
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}
|
package/dist/glass.css
CHANGED
|
@@ -486,3 +486,34 @@
|
|
|
486
486
|
animation: none;
|
|
487
487
|
}
|
|
488
488
|
}
|
|
489
|
+
|
|
490
|
+
/* FOCUS RINGS THE CONTROL A PERSON SEES, WHICH IS THE WHOLE COMPOSER.
|
|
491
|
+
|
|
492
|
+
`Composer` is a bordered box holding a field above a toolbar row, so it reads
|
|
493
|
+
as one control the way a chat composer everywhere does. The field inside it is
|
|
494
|
+
an ordinary textarea, so the indicator was drawn round the field alone: a
|
|
495
|
+
second rounded rectangle nested inside the box, stopping above the mic and the
|
|
496
|
+
send button, which reads as the top half being selected. WCAG 2.4.11 asks the
|
|
497
|
+
indicator to enclose the control, and the control here is the composer.
|
|
498
|
+
|
|
499
|
+
THE FIELD DOES NOT ABSTAIN, and control.ts is right that it must not: gui
|
|
500
|
+
compiles `focusVisibleStyle` to `:root:root:root:root … !important`, past any
|
|
501
|
+
sheet, so a field that says `outlineWidth: 0` deletes the indicator on every
|
|
502
|
+
surface at once. What gui declares is `outline-color: var(--outlineColor)` —
|
|
503
|
+
a VARIABLE — so the colour is re-pointed for this one field instead, in the
|
|
504
|
+
same breath as the host taking the ring up. The declaration gui emits is
|
|
505
|
+
untouched and `focus.test.tsx` still reads it.
|
|
506
|
+
|
|
507
|
+
Both rules turn on the SAME condition, which is what makes it safe: where
|
|
508
|
+
`:has` is unsupported neither applies and the field keeps drawing its own
|
|
509
|
+
ring, so no browser reaches a state with a focused composer and no indicator
|
|
510
|
+
anywhere. */
|
|
511
|
+
[data-slot='composer']:has([data-slot='composer-field']:focus-visible) {
|
|
512
|
+
outline: 2px solid var(--ring);
|
|
513
|
+
outline-offset: 2px;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
[data-slot='composer']:has([data-slot='composer-field']:focus-visible)
|
|
517
|
+
[data-slot='composer-field'] {
|
|
518
|
+
--outlineColor: transparent;
|
|
519
|
+
}
|
package/dist/styles.css
CHANGED
|
@@ -1997,6 +1997,37 @@
|
|
|
1997
1997
|
}
|
|
1998
1998
|
}
|
|
1999
1999
|
|
|
2000
|
+
/* FOCUS RINGS THE CONTROL A PERSON SEES, WHICH IS THE WHOLE COMPOSER.
|
|
2001
|
+
|
|
2002
|
+
`Composer` is a bordered box holding a field above a toolbar row, so it reads
|
|
2003
|
+
as one control the way a chat composer everywhere does. The field inside it is
|
|
2004
|
+
an ordinary textarea, so the indicator was drawn round the field alone: a
|
|
2005
|
+
second rounded rectangle nested inside the box, stopping above the mic and the
|
|
2006
|
+
send button, which reads as the top half being selected. WCAG 2.4.11 asks the
|
|
2007
|
+
indicator to enclose the control, and the control here is the composer.
|
|
2008
|
+
|
|
2009
|
+
THE FIELD DOES NOT ABSTAIN, and control.ts is right that it must not: gui
|
|
2010
|
+
compiles `focusVisibleStyle` to `:root:root:root:root … !important`, past any
|
|
2011
|
+
sheet, so a field that says `outlineWidth: 0` deletes the indicator on every
|
|
2012
|
+
surface at once. What gui declares is `outline-color: var(--outlineColor)` —
|
|
2013
|
+
a VARIABLE — so the colour is re-pointed for this one field instead, in the
|
|
2014
|
+
same breath as the host taking the ring up. The declaration gui emits is
|
|
2015
|
+
untouched and `focus.test.tsx` still reads it.
|
|
2016
|
+
|
|
2017
|
+
Both rules turn on the SAME condition, which is what makes it safe: where
|
|
2018
|
+
`:has` is unsupported neither applies and the field keeps drawing its own
|
|
2019
|
+
ring, so no browser reaches a state with a focused composer and no indicator
|
|
2020
|
+
anywhere. */
|
|
2021
|
+
[data-slot='composer']:has([data-slot='composer-field']:focus-visible) {
|
|
2022
|
+
outline: 2px solid var(--ring);
|
|
2023
|
+
outline-offset: 2px;
|
|
2024
|
+
}
|
|
2025
|
+
|
|
2026
|
+
[data-slot='composer']:has([data-slot='composer-field']:focus-visible)
|
|
2027
|
+
[data-slot='composer-field'] {
|
|
2028
|
+
--outlineColor: transparent;
|
|
2029
|
+
}
|
|
2030
|
+
|
|
2000
2031
|
[stylesheet-group="0"]{}
|
|
2001
2032
|
body{margin:0;}
|
|
2002
2033
|
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}
|
package/dist/theme.css
CHANGED
|
@@ -1994,3 +1994,34 @@
|
|
|
1994
1994
|
animation: none;
|
|
1995
1995
|
}
|
|
1996
1996
|
}
|
|
1997
|
+
|
|
1998
|
+
/* FOCUS RINGS THE CONTROL A PERSON SEES, WHICH IS THE WHOLE COMPOSER.
|
|
1999
|
+
|
|
2000
|
+
`Composer` is a bordered box holding a field above a toolbar row, so it reads
|
|
2001
|
+
as one control the way a chat composer everywhere does. The field inside it is
|
|
2002
|
+
an ordinary textarea, so the indicator was drawn round the field alone: a
|
|
2003
|
+
second rounded rectangle nested inside the box, stopping above the mic and the
|
|
2004
|
+
send button, which reads as the top half being selected. WCAG 2.4.11 asks the
|
|
2005
|
+
indicator to enclose the control, and the control here is the composer.
|
|
2006
|
+
|
|
2007
|
+
THE FIELD DOES NOT ABSTAIN, and control.ts is right that it must not: gui
|
|
2008
|
+
compiles `focusVisibleStyle` to `:root:root:root:root … !important`, past any
|
|
2009
|
+
sheet, so a field that says `outlineWidth: 0` deletes the indicator on every
|
|
2010
|
+
surface at once. What gui declares is `outline-color: var(--outlineColor)` —
|
|
2011
|
+
a VARIABLE — so the colour is re-pointed for this one field instead, in the
|
|
2012
|
+
same breath as the host taking the ring up. The declaration gui emits is
|
|
2013
|
+
untouched and `focus.test.tsx` still reads it.
|
|
2014
|
+
|
|
2015
|
+
Both rules turn on the SAME condition, which is what makes it safe: where
|
|
2016
|
+
`:has` is unsupported neither applies and the field keeps drawing its own
|
|
2017
|
+
ring, so no browser reaches a state with a focused composer and no indicator
|
|
2018
|
+
anywhere. */
|
|
2019
|
+
[data-slot='composer']:has([data-slot='composer-field']:focus-visible) {
|
|
2020
|
+
outline: 2px solid var(--ring);
|
|
2021
|
+
outline-offset: 2px;
|
|
2022
|
+
}
|
|
2023
|
+
|
|
2024
|
+
[data-slot='composer']:has([data-slot='composer-field']:focus-visible)
|
|
2025
|
+
[data-slot='composer-field'] {
|
|
2026
|
+
--outlineColor: transparent;
|
|
2027
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzo/ui",
|
|
3
|
-
"version": "8.27.
|
|
3
|
+
"version": "8.27.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": {
|