chiplet 0.3.0-dev.3 → 0.3.0-dev.4
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 +5 -4
- package/dist/component/button/Interactive.js +1 -0
- package/dist/component/button/Interactive.js.map +1 -1
- package/dist/component/button/style/index.css +37 -37
- package/dist/component/button/style/index.css.vanilla.js +1 -1
- package/dist/component/checkbox/Checkbox.js +1 -1
- package/dist/component/checkbox/Checkbox.js.map +1 -1
- package/dist/component/checkbox/CheckboxGroup.js +1 -0
- package/dist/component/checkbox/CheckboxGroup.js.map +1 -1
- package/dist/component/checkbox/Radio.js +1 -0
- package/dist/component/checkbox/Radio.js.map +1 -1
- package/dist/component/checkbox/RadioGroup.js +1 -0
- package/dist/component/checkbox/RadioGroup.js.map +1 -1
- package/dist/component/checkbox/icon/index.js +2 -0
- package/dist/component/checkbox/icon/index.js.map +1 -1
- package/dist/component/checkbox/style/index.css +79 -71
- package/dist/component/checkbox/style/index.css.vanilla.js +10 -10
- package/dist/component/index.js +1 -0
- package/dist/component/index.js.map +1 -1
- package/dist/component/input/Input.js +1 -0
- package/dist/component/input/Input.js.map +1 -1
- package/dist/component/input/SearchInput.js +1 -0
- package/dist/component/input/SearchInput.js.map +1 -1
- package/dist/component/input/style/index.css +29 -30
- package/dist/component/input/style/index.css.vanilla.js +4 -4
- package/dist/component/menu/Menu.js +2 -0
- package/dist/component/menu/Menu.js.map +1 -1
- package/dist/component/menu/MenuItem.js +1 -0
- package/dist/component/menu/MenuItem.js.map +1 -1
- package/dist/component/menu/MenuItemCheckbox.js +2 -0
- package/dist/component/menu/MenuItemCheckbox.js.map +1 -1
- package/dist/component/menu/MenuItemRadio.js +2 -0
- package/dist/component/menu/MenuItemRadio.js.map +1 -1
- package/dist/component/popover/Dialog.js +1 -0
- package/dist/component/popover/Dialog.js.map +1 -1
- package/dist/component/popover/DismissButton.js +1 -0
- package/dist/component/popover/DismissButton.js.map +1 -1
- package/dist/component/popover/Popover.js +1 -0
- package/dist/component/popover/Popover.js.map +1 -1
- package/dist/component/popover/Tooltip.js +1 -0
- package/dist/component/popover/Tooltip.js.map +1 -1
- package/dist/component/popover/style/index.css +96 -104
- package/dist/component/popover/style/index.css.vanilla.js +4 -4
- package/dist/component/select/AutoComplete.js +2 -0
- package/dist/component/select/AutoComplete.js.map +1 -1
- package/dist/component/select/Group.js +13 -4
- package/dist/component/select/Group.js.map +1 -1
- package/dist/component/select/Option.js +1 -0
- package/dist/component/select/Option.js.map +1 -1
- package/dist/component/select/Select.js +2 -0
- package/dist/component/select/Select.js.map +1 -1
- package/dist/component/select/style/index.css +78 -75
- package/dist/component/select/style/index.css.vanilla.js +12 -11
- package/dist/component/select/style/index.css.vanilla.js.map +1 -1
- package/dist/component/style/article.css +143 -0
- package/dist/component/style/article.css.vanilla.js +6 -0
- package/dist/component/style/article.css.vanilla.js.map +1 -0
- package/dist/component/style/index.js +3 -0
- package/dist/component/style/index.js.map +1 -0
- package/dist/hook/accessibility/keyboard/Keyboard.js +7 -2
- package/dist/hook/accessibility/keyboard/Keyboard.js.map +1 -1
- package/dist/hook/accessibility/keyboard/Roving.js +1 -0
- package/dist/hook/accessibility/keyboard/Roving.js.map +1 -1
- package/dist/hook/accessibility/keyboard/hook/useLastFocused.js +1 -0
- package/dist/hook/accessibility/keyboard/hook/useLastFocused.js.map +1 -1
- package/dist/hook/accessibility/keyboard/hook/useMoveFocus.js.map +1 -1
- package/dist/hook/accessibility/keyboard/hook/useNavigate.js +2 -4
- package/dist/hook/accessibility/keyboard/hook/useNavigate.js.map +1 -1
- package/dist/hook/accessibility/keyboard/resolve.js +1 -0
- package/dist/hook/accessibility/keyboard/resolve.js.map +1 -1
- package/dist/hook/accessibility/keyboard/sort.js +1 -1
- package/dist/hook/accessibility/keyboard/sort.js.map +1 -1
- package/dist/hook/accessibility/keyboard/tree.js +1 -0
- package/dist/hook/accessibility/keyboard/tree.js.map +1 -1
- package/dist/hook/accessibility/keyboard/useController.js +1 -0
- package/dist/hook/accessibility/keyboard/useController.js.map +1 -1
- package/dist/hook/accessibility/keyboard/useKeyboard.js +1 -0
- package/dist/hook/accessibility/keyboard/useKeyboard.js.map +1 -1
- package/dist/hook/document/useHighlight.js +1 -1
- package/dist/hook/document/useHighlight.js.map +1 -1
- package/dist/hook/form/useAutoComplete.js +1 -3
- package/dist/hook/form/useAutoComplete.js.map +1 -1
- package/dist/hook/form/useCheckbox.js +1 -0
- package/dist/hook/form/useCheckbox.js.map +1 -1
- package/dist/hook/form/useChecked.js +1 -0
- package/dist/hook/form/useChecked.js.map +1 -1
- package/dist/hook/form/useDefault.js +2 -0
- package/dist/hook/form/useDefault.js.map +1 -1
- package/dist/hook/form/useForm.js +2 -1
- package/dist/hook/form/useForm.js.map +1 -1
- package/dist/hook/form/useGroup.js +1 -0
- package/dist/hook/form/useGroup.js.map +1 -1
- package/dist/hook/form/useOption.js +1 -0
- package/dist/hook/form/useOption.js.map +1 -1
- package/dist/hook/form/useRadio.js +1 -0
- package/dist/hook/form/useRadio.js.map +1 -1
- package/dist/hook/form/useSelect.js +1 -0
- package/dist/hook/form/useSelect.js.map +1 -1
- package/dist/hook/form/useValue.js +1 -0
- package/dist/hook/form/useValue.js.map +1 -1
- package/dist/hook/popover/useAnchorPositioning.js +1 -0
- package/dist/hook/popover/useAnchorPositioning.js.map +1 -1
- package/dist/hook/popover/useDialog.js +1 -0
- package/dist/hook/popover/useDialog.js.map +1 -1
- package/dist/hook/popover/useLightDismiss.js +1 -1
- package/dist/hook/popover/useLightDismiss.js.map +1 -1
- package/dist/hook/popover/useOverlay.js +1 -0
- package/dist/hook/popover/useOverlay.js.map +1 -1
- package/dist/hook/popover/usePopover.js +6 -2
- package/dist/hook/popover/usePopover.js.map +1 -1
- package/dist/hook/popover/usePositioning.js +1 -0
- package/dist/hook/popover/usePositioning.js.map +1 -1
- package/dist/hook/popover/useTooltip.js +2 -1
- package/dist/hook/popover/useTooltip.js.map +1 -1
- package/dist/hook/react/refValue.js +1 -0
- package/dist/hook/react/refValue.js.map +1 -1
- package/dist/hook/react/useActivate.js +1 -1
- package/dist/hook/react/useActivate.js.map +1 -1
- package/dist/hook/react/useInteractive.js +1 -0
- package/dist/hook/react/useInteractive.js.map +1 -1
- package/dist/hook/react/useUniqueId.js +3 -2
- package/dist/hook/react/useUniqueId.js.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/infra/logging/logger.js +10 -12
- package/dist/infra/logging/logger.js.map +1 -1
- package/dist/theme/defineTheme.js +1 -0
- package/dist/theme/defineTheme.js.map +1 -1
- package/dist/theme/global.css +7 -7
- package/dist/theme/global.css.vanilla.js +8 -8
- package/dist/theme/theme.css +23 -27
- package/dist/theme/theme.css.vanilla.js +1 -1
- package/dist/util/document/accessibility.css.vanilla.js +4 -4
- package/dist/util/index.js +4 -1
- package/dist/util/index.js.map +1 -1
- package/dist/util/random/generateDeterministicId.js +12 -0
- package/dist/util/random/generateDeterministicId.js.map +1 -0
- package/dist/util/random/generateDigest.js +12 -0
- package/dist/util/random/generateDigest.js.map +1 -0
- package/dist/util/random/generateUniqueId.js +9 -0
- package/dist/util/random/generateUniqueId.js.map +1 -0
- package/dist/util/random/index.js +4 -1
- package/dist/util/random/index.js.map +1 -1
- package/dist/util/random/toHex.js +10 -0
- package/dist/util/random/toHex.js.map +1 -0
- package/package.json +77 -80
- package/src/component/button/style/index.css.ts +1 -1
- package/src/component/checkbox/Checkbox.tsx +1 -1
- package/src/component/checkbox/style/index.css.ts +34 -25
- package/src/component/index.ts +1 -0
- package/src/component/input/style/index.css.ts +42 -41
- package/src/component/popover/style/index.css.ts +100 -103
- package/src/component/select/Group.tsx +11 -3
- package/src/component/select/style/index.css.ts +59 -53
- package/src/component/style/article.css.ts +189 -0
- package/src/component/style/index.ts +1 -0
- package/src/hook/accessibility/keyboard/Keyboard.tsx +6 -1
- package/src/hook/accessibility/keyboard/hook/useMoveFocus.ts +2 -0
- package/src/hook/accessibility/keyboard/hook/useNavigate.ts +5 -5
- package/src/hook/accessibility/keyboard/sort.ts +1 -1
- package/src/hook/document/useHighlight.ts +1 -27
- package/src/hook/form/useAutoComplete.ts +3 -3
- package/src/hook/form/useDefault.ts +2 -0
- package/src/hook/form/useForm.ts +2 -2
- package/src/hook/popover/useLightDismiss.ts +1 -1
- package/src/hook/popover/usePopover.ts +6 -12
- package/src/hook/popover/useTooltip.ts +2 -1
- package/src/hook/react/useActivate.ts +1 -1
- package/src/hook/react/useUniqueId.ts +2 -2
- package/src/infra/logging/logger.ts +26 -13
- package/src/theme/global.css.ts +2 -2
- package/src/theme/theme.css.ts +1 -5
- package/src/util/document/accessibility.css.ts +3 -3
- package/src/util/random/generateDeterministicId.ts +10 -0
- package/src/util/random/generateDigest.ts +11 -0
- package/src/util/random/{createUniqueId.ts → generateUniqueId.ts} +4 -6
- package/src/util/random/index.ts +4 -1
- package/src/util/random/toHex.ts +6 -0
- package/dist/util/random/createUniqueId.js +0 -8
- package/dist/util/random/createUniqueId.js.map +0 -1
- package/src/component/style/font/font.css +0 -23
- package/src/component/style/font/proxima-nova-bold.woff +0 -0
- package/src/component/style/font/proxima-nova-light.woff +0 -0
- package/src/component/style/font/proxima-nova-regular.woff +0 -0
- package/src/component/style/font/proxima-nova-semibold.woff +0 -0
- package/src/component/style/press.module.css +0 -204
|
@@ -1,131 +1,134 @@
|
|
|
1
|
-
.
|
|
2
|
-
--_1asxz9r0: var(--
|
|
3
|
-
--_1asxz9r1: var(--
|
|
4
|
-
--
|
|
1
|
+
._1asxz9rl {
|
|
2
|
+
--_1asxz9r0: var(--_15shvv45v);
|
|
3
|
+
--_1asxz9r1: var(--_15shvv45o);
|
|
4
|
+
--_1asxz9r2: var(--_15shvv45p);
|
|
5
5
|
position: relative;
|
|
6
6
|
box-sizing: border-box;
|
|
7
7
|
display: grid;
|
|
8
8
|
grid-template: 'a b c' / auto 1fr auto;
|
|
9
9
|
gap: var(--_1asxz9r0);
|
|
10
10
|
inline-size: var(--_1asxz9r1);
|
|
11
|
-
padding: var(--
|
|
11
|
+
padding: var(--_1asxz9r2);
|
|
12
12
|
margin: 0;
|
|
13
13
|
overflow: auto;
|
|
14
|
+
scroll-snap-type: both mandatory;
|
|
15
|
+
scroll-padding: var(--_1asxz9r2);
|
|
14
16
|
}
|
|
15
|
-
.
|
|
17
|
+
._1asxz9rl::highlight(highlight-_7t9dxb1) {
|
|
16
18
|
text-decoration-line: underline;
|
|
17
19
|
}
|
|
18
|
-
.
|
|
19
|
-
--_1asxz9r0: var(--
|
|
20
|
-
--_1asxz9r2: var(--
|
|
21
|
-
--_1asxz9r3: var(--
|
|
22
|
-
--_1asxz9r4:
|
|
23
|
-
--
|
|
24
|
-
--_1asxz9ra:
|
|
25
|
-
--
|
|
26
|
-
--
|
|
27
|
-
--
|
|
28
|
-
--_1asxz9rf:
|
|
29
|
-
--_1asxz9rg:
|
|
30
|
-
--_1asxz9rh:
|
|
20
|
+
._1asxz9rm {
|
|
21
|
+
--_1asxz9r0: var(--_15shvv45q);
|
|
22
|
+
--_1asxz9r2: var(--_1asxz9r3) var(--_1asxz9r4);
|
|
23
|
+
--_1asxz9r3: calc((var(--_15shvv45r) - 1lh) / 2);
|
|
24
|
+
--_1asxz9r4: var(--_15shvv45s);
|
|
25
|
+
--_1asxz9r9: var(--_15shvv45u);
|
|
26
|
+
--_1asxz9ra: inherit;
|
|
27
|
+
--_1asxz9rc: var(--_15shvv4y);
|
|
28
|
+
--_1asxz9rd: pointer;
|
|
29
|
+
--_1asxz9re: not-allowed;
|
|
30
|
+
--_1asxz9rf: none;
|
|
31
|
+
--_1asxz9rg: var(--_15shvv4w);
|
|
32
|
+
--_1asxz9rh: var(--_15shvv4x);
|
|
31
33
|
--_1asxz9ri: none;
|
|
32
|
-
--
|
|
33
|
-
--_1asxz9rk: var(--_15shvv4x);
|
|
34
|
-
--_1asxz9rl: none;
|
|
35
|
-
--_1asxz9ro: var(--_15shvv45x);
|
|
34
|
+
--_7t9dxb0: var(--_15shvv45t);
|
|
36
35
|
display: grid;
|
|
37
36
|
grid-template-rows: subgrid;
|
|
38
37
|
grid-template-columns: subgrid;
|
|
39
38
|
grid-column: span 3;
|
|
40
39
|
gap: var(--_1asxz9r0);
|
|
41
40
|
place-items: start;
|
|
42
|
-
padding: var(--
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
background: var(--_1asxz9ri);
|
|
48
|
-
border-radius: var(--_1asxz9ro);
|
|
41
|
+
padding: var(--_1asxz9r2);
|
|
42
|
+
color: var(--_1asxz9ra);
|
|
43
|
+
cursor: var(--_1asxz9rd);
|
|
44
|
+
scroll-snap-align: center;
|
|
45
|
+
background: var(--_1asxz9rf);
|
|
49
46
|
}
|
|
50
|
-
.
|
|
51
|
-
--
|
|
47
|
+
._1asxz9rm:hover {
|
|
48
|
+
--_1asxz9rf: var(--_1asxz9rg);
|
|
52
49
|
}
|
|
53
|
-
.
|
|
54
|
-
--
|
|
50
|
+
._1asxz9rm:is(:active, [data-active-_19byneq1="true"]) {
|
|
51
|
+
--_1asxz9rf: var(--_1asxz9rh);
|
|
55
52
|
}
|
|
56
|
-
.
|
|
57
|
-
--
|
|
58
|
-
--
|
|
59
|
-
--
|
|
53
|
+
._1asxz9rm:is(:disabled, [aria-disabled="true"]) {
|
|
54
|
+
--_1asxz9ra: var(--_1asxz9rc);
|
|
55
|
+
--_1asxz9rd: var(--_1asxz9re);
|
|
56
|
+
--_1asxz9rf: var(--_1asxz9ri);
|
|
60
57
|
}
|
|
61
|
-
.
|
|
62
|
-
--
|
|
58
|
+
._1asxz9rn {
|
|
59
|
+
--_1asxz9ra: var(--_15shvv412);
|
|
63
60
|
}
|
|
64
|
-
.
|
|
61
|
+
._1asxz9ro {
|
|
65
62
|
grid-area: b;
|
|
66
63
|
}
|
|
67
|
-
.
|
|
64
|
+
._1asxz9rp {
|
|
68
65
|
display: flex;
|
|
69
66
|
grid-area: a;
|
|
70
67
|
place-items: center;
|
|
71
68
|
}
|
|
72
|
-
.
|
|
69
|
+
._1asxz9rp:empty {
|
|
73
70
|
display: none;
|
|
74
71
|
}
|
|
75
|
-
.
|
|
72
|
+
._1asxz9rq {
|
|
76
73
|
display: flex;
|
|
77
74
|
grid-area: c;
|
|
78
75
|
place-items: center;
|
|
79
76
|
}
|
|
80
|
-
.
|
|
77
|
+
._1asxz9rq:empty {
|
|
81
78
|
display: none;
|
|
82
79
|
}
|
|
83
|
-
.
|
|
84
|
-
--
|
|
85
|
-
--
|
|
86
|
-
--
|
|
80
|
+
._1asxz9rr {
|
|
81
|
+
--_1asxz9r6: calc((1lh - var(--_1asxz9r9)) / 2);
|
|
82
|
+
--_1asxz9ra: oklch(0 0 0 / 0%);
|
|
83
|
+
--_1asxz9rb: inherit;
|
|
87
84
|
flex-shrink: 0;
|
|
88
|
-
margin-block: var(--
|
|
89
|
-
font-size: var(--
|
|
90
|
-
color: var(--
|
|
85
|
+
margin-block: var(--_1asxz9r6);
|
|
86
|
+
font-size: var(--_1asxz9r9);
|
|
87
|
+
color: var(--_1asxz9ra);
|
|
91
88
|
}
|
|
92
|
-
:is([aria-checked="true"], [aria-selected="true"]) .
|
|
93
|
-
--
|
|
89
|
+
:is([aria-checked="true"], [aria-selected="true"]) ._1asxz9rr {
|
|
90
|
+
--_1asxz9ra: var(--_1asxz9rb);
|
|
94
91
|
}
|
|
95
|
-
.
|
|
96
|
-
--
|
|
97
|
-
--
|
|
98
|
-
--
|
|
99
|
-
--
|
|
100
|
-
--
|
|
101
|
-
--
|
|
92
|
+
._1asxz9rs {
|
|
93
|
+
--_1asxz9r5: var(--_1asxz9r6) var(--_1asxz9r7);
|
|
94
|
+
--_1asxz9r6: calc((var(--_15shvv45r) - 1lh) / 2);
|
|
95
|
+
--_1asxz9r7: 0;
|
|
96
|
+
--_1asxz9ra: var(--_15shvv45z);
|
|
97
|
+
--_1asxz9rj: var(--_1asxz9rk) solid;
|
|
98
|
+
--_1asxz9rk: var(--_15shvv45y);
|
|
102
99
|
display: block;
|
|
103
100
|
grid-column: span 3;
|
|
104
101
|
padding: 0;
|
|
105
|
-
margin: var(--
|
|
106
|
-
color: var(--
|
|
107
|
-
border-block-end: var(--
|
|
102
|
+
margin: var(--_1asxz9r5);
|
|
103
|
+
color: var(--_1asxz9ra);
|
|
104
|
+
border-block-end: var(--_1asxz9rj);
|
|
108
105
|
}
|
|
109
|
-
.
|
|
106
|
+
._1asxz9rt {
|
|
110
107
|
display: grid;
|
|
111
108
|
grid-template-columns: subgrid;
|
|
112
109
|
grid-column: span 3;
|
|
113
110
|
gap: inherit;
|
|
114
111
|
}
|
|
115
|
-
.
|
|
116
|
-
--
|
|
117
|
-
--
|
|
118
|
-
--
|
|
119
|
-
--
|
|
120
|
-
--
|
|
112
|
+
._1asxz9ru {
|
|
113
|
+
--_1asxz9r2: var(--_1asxz9r3) var(--_1asxz9r4);
|
|
114
|
+
--_1asxz9r3: calc((var(--_15shvv45r) - 1lh) / 2);
|
|
115
|
+
--_1asxz9r4: var(--_15shvv45s);
|
|
116
|
+
--_1asxz9r8: var(--_15shvv45w);
|
|
117
|
+
--_1asxz9ra: var(--_15shvv45x);
|
|
121
118
|
position: sticky;
|
|
122
119
|
inset-block-start: 0;
|
|
120
|
+
display: grid;
|
|
121
|
+
grid-template-columns: subgrid;
|
|
123
122
|
grid-column: span 3;
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
color: var(--_1asxz9rd);
|
|
123
|
+
gap: inherit;
|
|
124
|
+
padding: var(--_1asxz9r2);
|
|
127
125
|
}
|
|
128
|
-
.
|
|
126
|
+
._1asxz9rv {
|
|
127
|
+
grid-column: span 3;
|
|
128
|
+
font: var(--_1asxz9r8);
|
|
129
|
+
color: var(--_1asxz9ra);
|
|
130
|
+
}
|
|
131
|
+
._1asxz9rw {
|
|
129
132
|
display: grid;
|
|
130
133
|
grid-template-columns: subgrid;
|
|
131
134
|
grid-column: span 3;
|
|
@@ -4,16 +4,17 @@ import './../../../theme/global.css';
|
|
|
4
4
|
import './index.css';
|
|
5
5
|
import { createRuntimeFn } from '@vanilla-extract/recipes/createRuntimeFn';
|
|
6
6
|
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
7
|
+
var GroupHeaderStyle = '_1asxz9ru';
|
|
8
|
+
var GroupLabelStyle = '_1asxz9rv';
|
|
9
|
+
var GroupNestedListStyle = '_1asxz9rw';
|
|
10
|
+
var GroupStyle = '_1asxz9rt';
|
|
11
|
+
var ItemAfterStyle = '_1asxz9rq';
|
|
12
|
+
var ItemBeforeStyle = '_1asxz9rp';
|
|
13
|
+
var ItemContentStyle = '_1asxz9ro';
|
|
14
|
+
var ItemIconStyle = '_1asxz9rr';
|
|
15
|
+
var ItemStyle = createRuntimeFn({defaultClassName:'_1asxz9rm _7t9dxb5',variantClassNames:{danger:{true:'_1asxz9rn'}},defaultVariants:{},compoundVariants:[]});
|
|
16
|
+
var ListStyle = '_1asxz9rl';
|
|
17
|
+
var SeparatorStyle = '_1asxz9rs';
|
|
17
18
|
|
|
18
|
-
export { GroupLabelStyle, GroupNestedListStyle, GroupStyle, ItemAfterStyle, ItemBeforeStyle, ItemContentStyle, ItemIconStyle, ItemStyle, ListStyle, SeparatorStyle };
|
|
19
|
+
export { GroupHeaderStyle, GroupLabelStyle, GroupNestedListStyle, GroupStyle, ItemAfterStyle, ItemBeforeStyle, ItemContentStyle, ItemIconStyle, ItemStyle, ListStyle, SeparatorStyle };
|
|
19
20
|
//# sourceMappingURL=index.css.vanilla.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.css.vanilla.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.css.vanilla.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
._274mrm4 {
|
|
2
|
+
--_274mrm1: 48rem;
|
|
3
|
+
--_274mrm2: light-dark(#131313, #fff);
|
|
4
|
+
--_274mrm3: light-dark(#fff, #131313);
|
|
5
|
+
max-inline-size: var(--_274mrm1);
|
|
6
|
+
padding-inline: 1.5rem;
|
|
7
|
+
margin: auto;
|
|
8
|
+
font-family: 'Proxima Nova', 'Myriad Set Pro', 'Lucida Grande', 'Helvetica Neue', Helvetica, Arial, Verdana, sans-serif;
|
|
9
|
+
font-size: 0.875rem;
|
|
10
|
+
line-height: 1.25rem;
|
|
11
|
+
}
|
|
12
|
+
._274mrm4 h1, ._274mrm4 section {
|
|
13
|
+
color: var(--_274mrm2);
|
|
14
|
+
background: var(--_274mrm3);
|
|
15
|
+
}
|
|
16
|
+
._274mrm4 h1, ._274mrm4 h2, ._274mrm4 h3, ._274mrm4 p, ._274mrm4 ul, ._274mrm4 ol, ._274mrm4 pre, ._274mrm4 hr, ._274mrm4 section {
|
|
17
|
+
max-inline-size: var(--_274mrm1);
|
|
18
|
+
margin: auto;
|
|
19
|
+
}
|
|
20
|
+
._274mrm4 h1 {
|
|
21
|
+
padding: 2.5rem 2rem;
|
|
22
|
+
font-family: 'Proxima Nova', 'Segoe UI Light', Quicksand, 'Myriad Set Pro', 'Lucida Grande', sans-serif;
|
|
23
|
+
font-size: 2rem;
|
|
24
|
+
line-height: 3rem;
|
|
25
|
+
text-align: center;
|
|
26
|
+
}
|
|
27
|
+
._274mrm4 h2 {
|
|
28
|
+
padding: 1rem 1.5rem 0.75rem 1.25rem;
|
|
29
|
+
font-size: 1.125rem;
|
|
30
|
+
line-height: 1.75rem;
|
|
31
|
+
border-inline-start: 0.25rem solid #aaf;
|
|
32
|
+
}
|
|
33
|
+
._274mrm4 h3 {
|
|
34
|
+
position: relative;
|
|
35
|
+
margin-block: 1.25rem;
|
|
36
|
+
}
|
|
37
|
+
._274mrm4 h3::before {
|
|
38
|
+
content: "";
|
|
39
|
+
position: absolute;
|
|
40
|
+
inset-block: 0.1875rem 0.375rem;
|
|
41
|
+
inset-inline-start: -1.5rem;
|
|
42
|
+
border-inline-start: 0.25rem solid #999;
|
|
43
|
+
}
|
|
44
|
+
._274mrm4 p, ._274mrm4 li {
|
|
45
|
+
margin-block: 1.25rem;
|
|
46
|
+
}
|
|
47
|
+
._274mrm4 ul {
|
|
48
|
+
padding-inline-start: 1em;
|
|
49
|
+
list-style: circle;
|
|
50
|
+
}
|
|
51
|
+
._274mrm4 ol {
|
|
52
|
+
padding-inline-start: 1em;
|
|
53
|
+
list-style: auto;
|
|
54
|
+
}
|
|
55
|
+
._274mrm4 a {
|
|
56
|
+
color: #08c;
|
|
57
|
+
}
|
|
58
|
+
._274mrm4 a:hover {
|
|
59
|
+
color: #15c;
|
|
60
|
+
text-decoration: underline;
|
|
61
|
+
text-decoration-color: #58e;
|
|
62
|
+
}
|
|
63
|
+
._274mrm4 a:focus-visible {
|
|
64
|
+
outline: 1px dotted rgb(0 0 0 / 75%);
|
|
65
|
+
outline-offset: 2px;
|
|
66
|
+
}
|
|
67
|
+
._274mrm4 a[download] {
|
|
68
|
+
--_274mrm2: light-dark(#fff, #fff);
|
|
69
|
+
--_274mrm3: light-dark(#acc, #222);
|
|
70
|
+
display: inline-block;
|
|
71
|
+
block-size: 1.75rem;
|
|
72
|
+
padding: 0 0.5rem;
|
|
73
|
+
font-size: 0.875rem;
|
|
74
|
+
line-height: 1.75rem;
|
|
75
|
+
color: var(--_274mrm2);
|
|
76
|
+
background: var(--_274mrm3);
|
|
77
|
+
border-radius: 0.125rem;
|
|
78
|
+
}
|
|
79
|
+
._274mrm4 :has(> a[download]:only-child) {
|
|
80
|
+
padding-inline: 1.5rem;
|
|
81
|
+
}
|
|
82
|
+
._274mrm4 a[download]:hover {
|
|
83
|
+
color: #fff;
|
|
84
|
+
text-decoration: none;
|
|
85
|
+
background: #8aa;
|
|
86
|
+
}
|
|
87
|
+
._274mrm4 a[download]:focus-visible {
|
|
88
|
+
outline: 2px solid rgb(102 136 136 / 40%);
|
|
89
|
+
outline-offset: 1px;
|
|
90
|
+
background: #688;
|
|
91
|
+
}
|
|
92
|
+
._274mrm4 code {
|
|
93
|
+
display: inline-block;
|
|
94
|
+
padding: 0.125rem;
|
|
95
|
+
font-family: Monaco, 'Andale Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace;
|
|
96
|
+
font-size: 0.875rem;
|
|
97
|
+
line-height: 1rem;
|
|
98
|
+
vertical-align: top;
|
|
99
|
+
color: #333;
|
|
100
|
+
white-space: pre;
|
|
101
|
+
background: #e5e5e5;
|
|
102
|
+
border-radius: 0.125rem;
|
|
103
|
+
}
|
|
104
|
+
._274mrm4 code::selection {
|
|
105
|
+
background: #bbb;
|
|
106
|
+
}
|
|
107
|
+
._274mrm4 section {
|
|
108
|
+
padding: 0.25rem 1.5rem;
|
|
109
|
+
}
|
|
110
|
+
._274mrm4 footer {
|
|
111
|
+
--_274mrm0: 1.25rem;
|
|
112
|
+
--_274mrm2: #aaf;
|
|
113
|
+
display: flex;
|
|
114
|
+
gap: var(--_274mrm0);
|
|
115
|
+
place-content: center;
|
|
116
|
+
place-items: center;
|
|
117
|
+
margin-block: 2.5rem;
|
|
118
|
+
overflow: clip;
|
|
119
|
+
color: var(--_274mrm2);
|
|
120
|
+
}
|
|
121
|
+
._274mrm4 footer::selection {
|
|
122
|
+
color: #88d;
|
|
123
|
+
background: #ccc;
|
|
124
|
+
}
|
|
125
|
+
._274mrm4 footer strong, ._274mrm4 footer time {
|
|
126
|
+
position: relative;
|
|
127
|
+
}
|
|
128
|
+
._274mrm4 footer strong::before, ._274mrm4 footer time::after {
|
|
129
|
+
content: "";
|
|
130
|
+
position: absolute;
|
|
131
|
+
inset-block-start: 0.5625rem;
|
|
132
|
+
inline-size: var(--_274mrm1);
|
|
133
|
+
block-size: 0.125rem;
|
|
134
|
+
background: var(--_274mrm2);
|
|
135
|
+
}
|
|
136
|
+
._274mrm4 footer strong::before {
|
|
137
|
+
inset-inline-end: 100%;
|
|
138
|
+
margin-inline-end: var(--_274mrm0);
|
|
139
|
+
}
|
|
140
|
+
._274mrm4 footer time::after {
|
|
141
|
+
inset-inline-start: 100%;
|
|
142
|
+
margin-inline-start: var(--_274mrm0);
|
|
143
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"article.css.vanilla.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
4
|
import '../../../util/promise/waitFor.js';
|
|
5
5
|
import '../../../util/promise/waitUntil.js';
|
|
6
|
+
import '@vanilla-extract/css';
|
|
6
7
|
import '@floating-ui/utils';
|
|
7
8
|
import { useMemo, useImperativeHandle } from 'react';
|
|
8
9
|
import { KeyboardContext } from './context/index.js';
|
|
@@ -17,9 +18,10 @@ import '../../popover/context/index.js';
|
|
|
17
18
|
import '@floating-ui/dom';
|
|
18
19
|
import 'react-dom';
|
|
19
20
|
import { useLastFocused } from './hook/useLastFocused.js';
|
|
20
|
-
import {
|
|
21
|
+
import { useMoveFocus } from './hook/useMoveFocus.js';
|
|
21
22
|
import { useNavigate } from './hook/useNavigate.js';
|
|
22
23
|
import { usePool } from './hook/usePool.js';
|
|
24
|
+
import { parse } from './resolve.js';
|
|
23
25
|
import { Tree } from './tree.js';
|
|
24
26
|
|
|
25
27
|
function Keyboard(props) {
|
|
@@ -39,10 +41,13 @@ function Keyboard(props) {
|
|
|
39
41
|
const [pool, add, remove] = usePool();
|
|
40
42
|
const tree = useMemo(() => Tree(pool), [pool]);
|
|
41
43
|
const [isActivated, activate, reset] = useActivate(onActivate);
|
|
42
|
-
const [active, isFocusVisible,
|
|
44
|
+
const [active, isFocusVisible, moveFocus] = useMoveFocus(tree);
|
|
45
|
+
const navigate = useNavigate(
|
|
43
46
|
type,
|
|
44
47
|
direction,
|
|
45
48
|
tree,
|
|
49
|
+
active,
|
|
50
|
+
moveFocus,
|
|
46
51
|
(...args) => {
|
|
47
52
|
const target = props.parse?.(...args);
|
|
48
53
|
if (target !== void 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Keyboard.js","sources":["../../../../src/hook/accessibility/keyboard/Keyboard.tsx"],"sourcesContent":["'use client'\nimport { useActivate, type ActivateCallback } from '#hook'\nimport { useImperativeHandle, useMemo } from 'react'\nimport invariant from 'tiny-invariant'\nimport { KeyboardContext } from './context'\nimport {\n useLastFocused,\n useNavigate,\n usePool,\n type Navigate,\n type NavigateCallback,\n} from './hook'\nimport { parse, type Parse } from './resolve'\nimport { Tree } from './tree'\n\ntype Activate = (ev: KeyboardEvent | React.KeyboardEvent) => void\n\nexport type NavigationType = 'linear' | 'grid'\n\nexport type NavigationDirection = 'inline' | 'block' | 'both'\n\nexport interface KeyboardOptions {\n type?: NavigationType | undefined\n direction?: NavigationDirection | undefined\n parse?: Parse | undefined\n onNavigate?: NavigateCallback | undefined\n onActivate?: ActivateCallback | undefined\n ref?: React.Ref<Keyboard> | undefined\n}\n\nexport interface KeyboardProps\n extends KeyboardOptions, React.PropsWithChildren {}\n\nexport interface Keyboard {\n type: NavigationType\n direction: NavigationDirection\n active: Tree.Node | null\n isFocusVisible: boolean\n navigate: Navigate\n activate: Activate\n}\n\nexport function Keyboard(props: KeyboardProps) {\n const {\n type = 'linear',\n direction = 'both',\n onNavigate,\n onActivate,\n ref,\n } = props\n\n if (type === 'grid') {\n invariant(\n direction === 'both',\n 'Only direction \"both\" is allowed when type is \"grid\".'\n )\n }\n\n const [pool, add, remove] = usePool()\n\n const tree = useMemo(() => Tree(pool), [pool])\n\n const [isActivated, activate, reset] = useActivate(onActivate)\n\n const [active, isFocusVisible, navigate] = useNavigate(\n type,\n direction,\n tree,\n (...args) => {\n const target = props.parse?.(...args)\n\n if (target !== undefined) {\n return target\n }\n\n return parse(...args)\n },\n (ev, ...args) => {\n onNavigate?.(ev, ...args)\n\n if (!ev.defaultPrevented) {\n reset()\n }\n }\n )\n\n const activeEl = active?.value ?? null\n\n const lastActiveEl = useLastFocused(type, tree, activeEl)\n\n const keyboard = useMemo<Keyboard>(\n () => ({\n type,\n direction,\n active,\n isFocusVisible,\n navigate,\n activate: (ev) => {\n if (activeEl && !active?.context.disabled) {\n activate(ev, activeEl)\n }\n },\n }),\n [activate, active, activeEl, direction, isFocusVisible, navigate, type]\n )\n\n const context = useMemo<KeyboardContext>(\n () => ({\n ...keyboard,\n lastActive: lastActiveEl,\n isActivated,\n add,\n remove,\n }),\n [add, isActivated, keyboard, lastActiveEl, remove]\n )\n\n useImperativeHandle(ref, () => keyboard, [keyboard])\n\n return <KeyboardContext value={context}>{props.children}</KeyboardContext>\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Keyboard.js","sources":["../../../../src/hook/accessibility/keyboard/Keyboard.tsx"],"sourcesContent":["'use client'\nimport { useActivate, type ActivateCallback } from '#hook'\nimport { useImperativeHandle, useMemo } from 'react'\nimport invariant from 'tiny-invariant'\nimport { KeyboardContext } from './context'\nimport {\n useLastFocused,\n useMoveFocus,\n useNavigate,\n usePool,\n type Navigate,\n type NavigateCallback,\n} from './hook'\nimport { parse, type Parse } from './resolve'\nimport { Tree } from './tree'\n\ntype Activate = (ev: KeyboardEvent | React.KeyboardEvent) => void\n\nexport type NavigationType = 'linear' | 'grid'\n\nexport type NavigationDirection = 'inline' | 'block' | 'both'\n\nexport interface KeyboardOptions {\n type?: NavigationType | undefined\n direction?: NavigationDirection | undefined\n parse?: Parse | undefined\n onNavigate?: NavigateCallback | undefined\n onActivate?: ActivateCallback | undefined\n ref?: React.Ref<Keyboard> | undefined\n}\n\nexport interface KeyboardProps\n extends KeyboardOptions, React.PropsWithChildren {}\n\nexport interface Keyboard {\n type: NavigationType\n direction: NavigationDirection\n active: Tree.Node | null\n isFocusVisible: boolean\n navigate: Navigate\n activate: Activate\n}\n\nexport function Keyboard(props: KeyboardProps) {\n const {\n type = 'linear',\n direction = 'both',\n onNavigate,\n onActivate,\n ref,\n } = props\n\n if (type === 'grid') {\n invariant(\n direction === 'both',\n 'Only direction \"both\" is allowed when type is \"grid\".'\n )\n }\n\n const [pool, add, remove] = usePool()\n\n const tree = useMemo(() => Tree(pool), [pool])\n\n const [isActivated, activate, reset] = useActivate(onActivate)\n\n const [active, isFocusVisible, moveFocus] = useMoveFocus(tree)\n\n const navigate = useNavigate(\n type,\n direction,\n tree,\n active,\n moveFocus,\n (...args) => {\n const target = props.parse?.(...args)\n\n if (target !== undefined) {\n return target\n }\n\n return parse(...args)\n },\n (ev, ...args) => {\n onNavigate?.(ev, ...args)\n\n if (!ev.defaultPrevented) {\n reset()\n }\n }\n )\n\n const activeEl = active?.value ?? null\n\n const lastActiveEl = useLastFocused(type, tree, activeEl)\n\n const keyboard = useMemo<Keyboard>(\n () => ({\n type,\n direction,\n active,\n isFocusVisible,\n navigate,\n activate: (ev) => {\n if (activeEl && !active?.context.disabled) {\n activate(ev, activeEl)\n }\n },\n }),\n [activate, active, activeEl, direction, isFocusVisible, navigate, type]\n )\n\n const context = useMemo<KeyboardContext>(\n () => ({\n ...keyboard,\n lastActive: lastActiveEl,\n isActivated,\n add,\n remove,\n }),\n [add, isActivated, keyboard, lastActiveEl, remove]\n )\n\n useImperativeHandle(ref, () => keyboard, [keyboard])\n\n return <KeyboardContext value={context}>{props.children}</KeyboardContext>\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import 'react';
|
|
4
4
|
import '../../../util/promise/waitFor.js';
|
|
5
5
|
import '../../../util/promise/waitUntil.js';
|
|
6
|
+
import '@vanilla-extract/css';
|
|
6
7
|
import 'lodash-es';
|
|
7
8
|
import '../../form/context/index.js';
|
|
8
9
|
import 'tiny-invariant';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Roving.js","sources":["../../../../src/hook/accessibility/keyboard/Roving.tsx"],"sourcesContent":["import type { HTMLElementType, JSX } from 'react'\nimport { useKeyboard } from '.'\n\ntype Props<T extends HTMLElementType> = JSX.IntrinsicElements[T] & {\n elementType?: T\n}\n\nexport function Roving<T extends HTMLElementType = 'div'>(props: Props<T>) {\n props = useKeyboard(props)\n\n const { elementType: ElementType = 'div', ...attrs } = props as Props<'div'>\n\n return <ElementType {...attrs} />\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Roving.js","sources":["../../../../src/hook/accessibility/keyboard/Roving.tsx"],"sourcesContent":["import type { HTMLElementType, JSX } from 'react'\nimport { useKeyboard } from '.'\n\ntype Props<T extends HTMLElementType> = JSX.IntrinsicElements[T] & {\n elementType?: T\n}\n\nexport function Roving<T extends HTMLElementType = 'div'>(props: Props<T>) {\n props = useKeyboard(props)\n\n const { elementType: ElementType = 'div', ...attrs } = props as Props<'div'>\n\n return <ElementType {...attrs} />\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAOO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,EAA0C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB;AACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAY,KAAK,CAAA;AAEzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,GAAM,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA;AAEvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,GAAA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAa,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA;AACjC;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { isARIASelected, isARIAChecked } from '../../../../util/document/accessibility.js';
|
|
3
3
|
import '../../../../util/promise/waitFor.js';
|
|
4
4
|
import '../../../../util/promise/waitUntil.js';
|
|
5
|
+
import '@vanilla-extract/css';
|
|
5
6
|
import { useMemo, useRef, useLayoutEffect } from 'react';
|
|
6
7
|
|
|
7
8
|
function useLastFocused(type, tree, active) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLastFocused.js","sources":["../../../../../src/hook/accessibility/keyboard/hook/useLastFocused.ts"],"sourcesContent":["import { isARIAChecked, isARIASelected } from '#util'\nimport { useLayoutEffect, useMemo, useRef } from 'react'\nimport type { NavigationType } from '..'\nimport type { Tree } from '../tree'\n\nexport function useLastFocused(\n type: NavigationType,\n tree: Tree,\n active: Element | null\n) {\n let ctx = useMemo(\n () => (active ? tree.map.get(active)?.context : null),\n [active, tree.map]\n )\n\n const ref = useRef({ active, context: ctx })\n\n active ??= ref.current.active\n ctx ??= ref.current.context\n\n useLayoutEffect(() => {\n ref.current.active = active\n ref.current.context = ctx\n })\n\n return useMemo<Element | null>(() => {\n if (active && tree.map.has(active)) {\n return active\n }\n\n for (const [el, node] of tree.map) {\n if (ctx && ctx._id != null && ctx._id === node.context._id) {\n return el\n }\n\n if (active?.id && active.id === el.id) {\n return el\n }\n\n if (ctx && ctx.key != null && ctx.key === node.context.key) {\n return el\n }\n\n if (type === 'linear' && (isARIASelected(el) || isARIAChecked(el))) {\n return el\n }\n }\n\n let node = tree.root\n\n if (!node) {\n return null\n }\n\n if (type === 'grid') {\n while (node.firstChild) {\n node = node.firstChild\n }\n }\n\n return node.value\n }, [active, ctx, tree.map, tree.root, type])\n}\n"],"names":["node"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useLastFocused.js","sources":["../../../../../src/hook/accessibility/keyboard/hook/useLastFocused.ts"],"sourcesContent":["import { isARIAChecked, isARIASelected } from '#util'\nimport { useLayoutEffect, useMemo, useRef } from 'react'\nimport type { NavigationType } from '..'\nimport type { Tree } from '../tree'\n\nexport function useLastFocused(\n type: NavigationType,\n tree: Tree,\n active: Element | null\n) {\n let ctx = useMemo(\n () => (active ? tree.map.get(active)?.context : null),\n [active, tree.map]\n )\n\n const ref = useRef({ active, context: ctx })\n\n active ??= ref.current.active\n ctx ??= ref.current.context\n\n useLayoutEffect(() => {\n ref.current.active = active\n ref.current.context = ctx\n })\n\n return useMemo<Element | null>(() => {\n if (active && tree.map.has(active)) {\n return active\n }\n\n for (const [el, node] of tree.map) {\n if (ctx && ctx._id != null && ctx._id === node.context._id) {\n return el\n }\n\n if (active?.id && active.id === el.id) {\n return el\n }\n\n if (ctx && ctx.key != null && ctx.key === node.context.key) {\n return el\n }\n\n if (type === 'linear' && (isARIASelected(el) || isARIAChecked(el))) {\n return el\n }\n }\n\n let node = tree.root\n\n if (!node) {\n return null\n }\n\n if (type === 'grid') {\n while (node.firstChild) {\n node = node.firstChild\n }\n }\n\n return node.value\n }, [active, ctx, tree.map, tree.root, type])\n}\n"],"names":["node"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMoveFocus.js","sources":["../../../../../src/hook/accessibility/keyboard/hook/useMoveFocus.ts"],"sourcesContent":["import {\n useCallback,\n useEffectEvent,\n useLayoutEffect,\n useMemo,\n useState,\n} from 'react'\nimport { preferVirtualFocus } from '../resolve'\nimport type { Tree } from '../tree'\n\nexport function useMoveFocus(tree: Tree) {\n const [active, setActive] = useState<Element | null>(null)\n const [isFocusVisible, setIsFocusVisible] = useState(false)\n\n const handleFocus = useEffectEvent((ev: FocusEvent) => {\n const el = ev.target as Element\n const hasFocus = el != null && tree.map.has(el)\n\n setActive(hasFocus ? el : null)\n })\n\n const handleBlur = useEffectEvent((ev: FocusEvent) => {\n setActive(null)\n setIsFocusVisible(false)\n })\n\n useLayoutEffect(() => {\n document.addEventListener('focusin', handleFocus, true)\n document.addEventListener('focusout', handleBlur, true)\n\n return () => {\n document.removeEventListener('focusin', handleFocus, true)\n document.removeEventListener('focusout', handleBlur, true)\n }\n }, [])\n\n const moveFocus = useCallback(\n (ev: KeyboardEvent | React.KeyboardEvent, el: HTMLElement | SVGElement) => {\n if (preferVirtualFocus(ev)) {\n setActive(el)\n setIsFocusVisible(true) // We believe the focus indicator should be visible when using virtual focus.\n el.scrollIntoView({ block: 'center', inline: 'center' })\n ev.preventDefault()\n return\n }\n\n el.focus()\n ev.preventDefault()\n },\n []\n )\n\n const _active = useMemo(\n () => (active && tree.map.get(active)) ?? null,\n [active, tree.map]\n )\n\n const _isFocusVisible = useMemo(\n () => !!_active && isFocusVisible,\n [_active, isFocusVisible]\n )\n\n return [_active, _isFocusVisible, moveFocus] as const\n}\n"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"useMoveFocus.js","sources":["../../../../../src/hook/accessibility/keyboard/hook/useMoveFocus.ts"],"sourcesContent":["import {\n useCallback,\n useEffectEvent,\n useLayoutEffect,\n useMemo,\n useState,\n} from 'react'\nimport { preferVirtualFocus } from '../resolve'\nimport type { Tree } from '../tree'\n\nexport type MoveFocus = ReturnType<typeof useMoveFocus>[2]\n\nexport function useMoveFocus(tree: Tree) {\n const [active, setActive] = useState<Element | null>(null)\n const [isFocusVisible, setIsFocusVisible] = useState(false)\n\n const handleFocus = useEffectEvent((ev: FocusEvent) => {\n const el = ev.target as Element\n const hasFocus = el != null && tree.map.has(el)\n\n setActive(hasFocus ? el : null)\n })\n\n const handleBlur = useEffectEvent((ev: FocusEvent) => {\n setActive(null)\n setIsFocusVisible(false)\n })\n\n useLayoutEffect(() => {\n document.addEventListener('focusin', handleFocus, true)\n document.addEventListener('focusout', handleBlur, true)\n\n return () => {\n document.removeEventListener('focusin', handleFocus, true)\n document.removeEventListener('focusout', handleBlur, true)\n }\n }, [])\n\n const moveFocus = useCallback(\n (ev: KeyboardEvent | React.KeyboardEvent, el: HTMLElement | SVGElement) => {\n if (preferVirtualFocus(ev)) {\n setActive(el)\n setIsFocusVisible(true) // We believe the focus indicator should be visible when using virtual focus.\n el.scrollIntoView({ block: 'center', inline: 'center' })\n ev.preventDefault()\n return\n }\n\n el.focus()\n ev.preventDefault()\n },\n []\n )\n\n const _active = useMemo(\n () => (active && tree.map.get(active)) ?? null,\n [active, tree.map]\n )\n\n const _isFocusVisible = useMemo(\n () => !!_active && isFocusVisible,\n [_active, isFocusVisible]\n )\n\n return [_active, _isFocusVisible, moveFocus] as const\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
import { useRef, useLayoutEffect, useCallback } from 'react';
|
|
3
3
|
import { resolve } from '../resolve.js';
|
|
4
|
-
import { useMoveFocus } from './useMoveFocus.js';
|
|
5
4
|
|
|
6
|
-
function useNavigate(type, direction, tree, parse, onNavigate) {
|
|
7
|
-
const [active, isFocusVisible, moveFocus] = useMoveFocus(tree);
|
|
5
|
+
function useNavigate(type, direction, tree, active, moveFocus, parse, onNavigate) {
|
|
8
6
|
const ref = useRef({
|
|
9
7
|
tree,
|
|
10
8
|
active,
|
|
@@ -57,7 +55,7 @@ function useNavigate(type, direction, tree, parse, onNavigate) {
|
|
|
57
55
|
ref.current.event = null;
|
|
58
56
|
}
|
|
59
57
|
});
|
|
60
|
-
return
|
|
58
|
+
return navigate;
|
|
61
59
|
}
|
|
62
60
|
|
|
63
61
|
export { useNavigate };
|