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.
Files changed (186) hide show
  1. package/README.md +5 -4
  2. package/dist/component/button/Interactive.js +1 -0
  3. package/dist/component/button/Interactive.js.map +1 -1
  4. package/dist/component/button/style/index.css +37 -37
  5. package/dist/component/button/style/index.css.vanilla.js +1 -1
  6. package/dist/component/checkbox/Checkbox.js +1 -1
  7. package/dist/component/checkbox/Checkbox.js.map +1 -1
  8. package/dist/component/checkbox/CheckboxGroup.js +1 -0
  9. package/dist/component/checkbox/CheckboxGroup.js.map +1 -1
  10. package/dist/component/checkbox/Radio.js +1 -0
  11. package/dist/component/checkbox/Radio.js.map +1 -1
  12. package/dist/component/checkbox/RadioGroup.js +1 -0
  13. package/dist/component/checkbox/RadioGroup.js.map +1 -1
  14. package/dist/component/checkbox/icon/index.js +2 -0
  15. package/dist/component/checkbox/icon/index.js.map +1 -1
  16. package/dist/component/checkbox/style/index.css +79 -71
  17. package/dist/component/checkbox/style/index.css.vanilla.js +10 -10
  18. package/dist/component/index.js +1 -0
  19. package/dist/component/index.js.map +1 -1
  20. package/dist/component/input/Input.js +1 -0
  21. package/dist/component/input/Input.js.map +1 -1
  22. package/dist/component/input/SearchInput.js +1 -0
  23. package/dist/component/input/SearchInput.js.map +1 -1
  24. package/dist/component/input/style/index.css +29 -30
  25. package/dist/component/input/style/index.css.vanilla.js +4 -4
  26. package/dist/component/menu/Menu.js +2 -0
  27. package/dist/component/menu/Menu.js.map +1 -1
  28. package/dist/component/menu/MenuItem.js +1 -0
  29. package/dist/component/menu/MenuItem.js.map +1 -1
  30. package/dist/component/menu/MenuItemCheckbox.js +2 -0
  31. package/dist/component/menu/MenuItemCheckbox.js.map +1 -1
  32. package/dist/component/menu/MenuItemRadio.js +2 -0
  33. package/dist/component/menu/MenuItemRadio.js.map +1 -1
  34. package/dist/component/popover/Dialog.js +1 -0
  35. package/dist/component/popover/Dialog.js.map +1 -1
  36. package/dist/component/popover/DismissButton.js +1 -0
  37. package/dist/component/popover/DismissButton.js.map +1 -1
  38. package/dist/component/popover/Popover.js +1 -0
  39. package/dist/component/popover/Popover.js.map +1 -1
  40. package/dist/component/popover/Tooltip.js +1 -0
  41. package/dist/component/popover/Tooltip.js.map +1 -1
  42. package/dist/component/popover/style/index.css +96 -104
  43. package/dist/component/popover/style/index.css.vanilla.js +4 -4
  44. package/dist/component/select/AutoComplete.js +2 -0
  45. package/dist/component/select/AutoComplete.js.map +1 -1
  46. package/dist/component/select/Group.js +13 -4
  47. package/dist/component/select/Group.js.map +1 -1
  48. package/dist/component/select/Option.js +1 -0
  49. package/dist/component/select/Option.js.map +1 -1
  50. package/dist/component/select/Select.js +2 -0
  51. package/dist/component/select/Select.js.map +1 -1
  52. package/dist/component/select/style/index.css +78 -75
  53. package/dist/component/select/style/index.css.vanilla.js +12 -11
  54. package/dist/component/select/style/index.css.vanilla.js.map +1 -1
  55. package/dist/component/style/article.css +143 -0
  56. package/dist/component/style/article.css.vanilla.js +6 -0
  57. package/dist/component/style/article.css.vanilla.js.map +1 -0
  58. package/dist/component/style/index.js +3 -0
  59. package/dist/component/style/index.js.map +1 -0
  60. package/dist/hook/accessibility/keyboard/Keyboard.js +7 -2
  61. package/dist/hook/accessibility/keyboard/Keyboard.js.map +1 -1
  62. package/dist/hook/accessibility/keyboard/Roving.js +1 -0
  63. package/dist/hook/accessibility/keyboard/Roving.js.map +1 -1
  64. package/dist/hook/accessibility/keyboard/hook/useLastFocused.js +1 -0
  65. package/dist/hook/accessibility/keyboard/hook/useLastFocused.js.map +1 -1
  66. package/dist/hook/accessibility/keyboard/hook/useMoveFocus.js.map +1 -1
  67. package/dist/hook/accessibility/keyboard/hook/useNavigate.js +2 -4
  68. package/dist/hook/accessibility/keyboard/hook/useNavigate.js.map +1 -1
  69. package/dist/hook/accessibility/keyboard/resolve.js +1 -0
  70. package/dist/hook/accessibility/keyboard/resolve.js.map +1 -1
  71. package/dist/hook/accessibility/keyboard/sort.js +1 -1
  72. package/dist/hook/accessibility/keyboard/sort.js.map +1 -1
  73. package/dist/hook/accessibility/keyboard/tree.js +1 -0
  74. package/dist/hook/accessibility/keyboard/tree.js.map +1 -1
  75. package/dist/hook/accessibility/keyboard/useController.js +1 -0
  76. package/dist/hook/accessibility/keyboard/useController.js.map +1 -1
  77. package/dist/hook/accessibility/keyboard/useKeyboard.js +1 -0
  78. package/dist/hook/accessibility/keyboard/useKeyboard.js.map +1 -1
  79. package/dist/hook/document/useHighlight.js +1 -1
  80. package/dist/hook/document/useHighlight.js.map +1 -1
  81. package/dist/hook/form/useAutoComplete.js +1 -3
  82. package/dist/hook/form/useAutoComplete.js.map +1 -1
  83. package/dist/hook/form/useCheckbox.js +1 -0
  84. package/dist/hook/form/useCheckbox.js.map +1 -1
  85. package/dist/hook/form/useChecked.js +1 -0
  86. package/dist/hook/form/useChecked.js.map +1 -1
  87. package/dist/hook/form/useDefault.js +2 -0
  88. package/dist/hook/form/useDefault.js.map +1 -1
  89. package/dist/hook/form/useForm.js +2 -1
  90. package/dist/hook/form/useForm.js.map +1 -1
  91. package/dist/hook/form/useGroup.js +1 -0
  92. package/dist/hook/form/useGroup.js.map +1 -1
  93. package/dist/hook/form/useOption.js +1 -0
  94. package/dist/hook/form/useOption.js.map +1 -1
  95. package/dist/hook/form/useRadio.js +1 -0
  96. package/dist/hook/form/useRadio.js.map +1 -1
  97. package/dist/hook/form/useSelect.js +1 -0
  98. package/dist/hook/form/useSelect.js.map +1 -1
  99. package/dist/hook/form/useValue.js +1 -0
  100. package/dist/hook/form/useValue.js.map +1 -1
  101. package/dist/hook/popover/useAnchorPositioning.js +1 -0
  102. package/dist/hook/popover/useAnchorPositioning.js.map +1 -1
  103. package/dist/hook/popover/useDialog.js +1 -0
  104. package/dist/hook/popover/useDialog.js.map +1 -1
  105. package/dist/hook/popover/useLightDismiss.js +1 -1
  106. package/dist/hook/popover/useLightDismiss.js.map +1 -1
  107. package/dist/hook/popover/useOverlay.js +1 -0
  108. package/dist/hook/popover/useOverlay.js.map +1 -1
  109. package/dist/hook/popover/usePopover.js +6 -2
  110. package/dist/hook/popover/usePopover.js.map +1 -1
  111. package/dist/hook/popover/usePositioning.js +1 -0
  112. package/dist/hook/popover/usePositioning.js.map +1 -1
  113. package/dist/hook/popover/useTooltip.js +2 -1
  114. package/dist/hook/popover/useTooltip.js.map +1 -1
  115. package/dist/hook/react/refValue.js +1 -0
  116. package/dist/hook/react/refValue.js.map +1 -1
  117. package/dist/hook/react/useActivate.js +1 -1
  118. package/dist/hook/react/useActivate.js.map +1 -1
  119. package/dist/hook/react/useInteractive.js +1 -0
  120. package/dist/hook/react/useInteractive.js.map +1 -1
  121. package/dist/hook/react/useUniqueId.js +3 -2
  122. package/dist/hook/react/useUniqueId.js.map +1 -1
  123. package/dist/index.js +5 -1
  124. package/dist/index.js.map +1 -1
  125. package/dist/infra/logging/logger.js +10 -12
  126. package/dist/infra/logging/logger.js.map +1 -1
  127. package/dist/theme/defineTheme.js +1 -0
  128. package/dist/theme/defineTheme.js.map +1 -1
  129. package/dist/theme/global.css +7 -7
  130. package/dist/theme/global.css.vanilla.js +8 -8
  131. package/dist/theme/theme.css +23 -27
  132. package/dist/theme/theme.css.vanilla.js +1 -1
  133. package/dist/util/document/accessibility.css.vanilla.js +4 -4
  134. package/dist/util/index.js +4 -1
  135. package/dist/util/index.js.map +1 -1
  136. package/dist/util/random/generateDeterministicId.js +12 -0
  137. package/dist/util/random/generateDeterministicId.js.map +1 -0
  138. package/dist/util/random/generateDigest.js +12 -0
  139. package/dist/util/random/generateDigest.js.map +1 -0
  140. package/dist/util/random/generateUniqueId.js +9 -0
  141. package/dist/util/random/generateUniqueId.js.map +1 -0
  142. package/dist/util/random/index.js +4 -1
  143. package/dist/util/random/index.js.map +1 -1
  144. package/dist/util/random/toHex.js +10 -0
  145. package/dist/util/random/toHex.js.map +1 -0
  146. package/package.json +77 -80
  147. package/src/component/button/style/index.css.ts +1 -1
  148. package/src/component/checkbox/Checkbox.tsx +1 -1
  149. package/src/component/checkbox/style/index.css.ts +34 -25
  150. package/src/component/index.ts +1 -0
  151. package/src/component/input/style/index.css.ts +42 -41
  152. package/src/component/popover/style/index.css.ts +100 -103
  153. package/src/component/select/Group.tsx +11 -3
  154. package/src/component/select/style/index.css.ts +59 -53
  155. package/src/component/style/article.css.ts +189 -0
  156. package/src/component/style/index.ts +1 -0
  157. package/src/hook/accessibility/keyboard/Keyboard.tsx +6 -1
  158. package/src/hook/accessibility/keyboard/hook/useMoveFocus.ts +2 -0
  159. package/src/hook/accessibility/keyboard/hook/useNavigate.ts +5 -5
  160. package/src/hook/accessibility/keyboard/sort.ts +1 -1
  161. package/src/hook/document/useHighlight.ts +1 -27
  162. package/src/hook/form/useAutoComplete.ts +3 -3
  163. package/src/hook/form/useDefault.ts +2 -0
  164. package/src/hook/form/useForm.ts +2 -2
  165. package/src/hook/popover/useLightDismiss.ts +1 -1
  166. package/src/hook/popover/usePopover.ts +6 -12
  167. package/src/hook/popover/useTooltip.ts +2 -1
  168. package/src/hook/react/useActivate.ts +1 -1
  169. package/src/hook/react/useUniqueId.ts +2 -2
  170. package/src/infra/logging/logger.ts +26 -13
  171. package/src/theme/global.css.ts +2 -2
  172. package/src/theme/theme.css.ts +1 -5
  173. package/src/util/document/accessibility.css.ts +3 -3
  174. package/src/util/random/generateDeterministicId.ts +10 -0
  175. package/src/util/random/generateDigest.ts +11 -0
  176. package/src/util/random/{createUniqueId.ts → generateUniqueId.ts} +4 -6
  177. package/src/util/random/index.ts +4 -1
  178. package/src/util/random/toHex.ts +6 -0
  179. package/dist/util/random/createUniqueId.js +0 -8
  180. package/dist/util/random/createUniqueId.js.map +0 -1
  181. package/src/component/style/font/font.css +0 -23
  182. package/src/component/style/font/proxima-nova-bold.woff +0 -0
  183. package/src/component/style/font/proxima-nova-light.woff +0 -0
  184. package/src/component/style/font/proxima-nova-regular.woff +0 -0
  185. package/src/component/style/font/proxima-nova-semibold.woff +0 -0
  186. package/src/component/style/press.module.css +0 -204
@@ -1,131 +1,134 @@
1
- ._1asxz9rp {
2
- --_1asxz9r0: var(--_15shvv45z);
3
- --_1asxz9r1: var(--_15shvv45q);
4
- --_1asxz9r3: var(--_15shvv45r);
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(--_1asxz9r3);
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
- ._1asxz9rp::highlight(highlight-87d49202) {
17
+ ._1asxz9rl::highlight(highlight-_7t9dxb1) {
16
18
  text-decoration-line: underline;
17
19
  }
18
- ._1asxz9rq {
19
- --_1asxz9r0: var(--_15shvv45s);
20
- --_1asxz9r2: var(--_15shvv45t);
21
- --_1asxz9r3: var(--_1asxz9r4) var(--_1asxz9r5);
22
- --_1asxz9r4: calc((var(--_1asxz9r2) - var(--_1asxz9rb)) / 2);
23
- --_1asxz9r5: var(--_15shvv45u);
24
- --_1asxz9ra: var(--_15shvv45v);
25
- --_1asxz9rb: var(--_15shvv45w);
26
- --_1asxz9rc: var(--_15shvv45y);
27
- --_1asxz9rd: inherit;
28
- --_1asxz9rf: var(--_15shvv4y);
29
- --_1asxz9rg: pointer;
30
- --_1asxz9rh: not-allowed;
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
- --_1asxz9rj: var(--_15shvv4w);
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(--_1asxz9r3);
43
- font-size: var(--_1asxz9ra);
44
- line-height: var(--_1asxz9rb);
45
- color: var(--_1asxz9rd);
46
- cursor: var(--_1asxz9rg);
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
- ._1asxz9rq:hover {
51
- --_1asxz9ri: var(--_1asxz9rj);
47
+ ._1asxz9rm:hover {
48
+ --_1asxz9rf: var(--_1asxz9rg);
52
49
  }
53
- ._1asxz9rq:is(:active, [data-active-80005d53="true"]) {
54
- --_1asxz9ri: var(--_1asxz9rk);
50
+ ._1asxz9rm:is(:active, [data-active-_19byneq1="true"]) {
51
+ --_1asxz9rf: var(--_1asxz9rh);
55
52
  }
56
- ._1asxz9rq:is(:disabled, [aria-disabled="true"]) {
57
- --_1asxz9rd: var(--_1asxz9rf);
58
- --_1asxz9rg: var(--_1asxz9rh);
59
- --_1asxz9ri: var(--_1asxz9rl);
53
+ ._1asxz9rm:is(:disabled, [aria-disabled="true"]) {
54
+ --_1asxz9ra: var(--_1asxz9rc);
55
+ --_1asxz9rd: var(--_1asxz9re);
56
+ --_1asxz9rf: var(--_1asxz9ri);
60
57
  }
61
- ._1asxz9rr {
62
- --_1asxz9rd: var(--_15shvv412);
58
+ ._1asxz9rn {
59
+ --_1asxz9ra: var(--_15shvv412);
63
60
  }
64
- ._1asxz9rs {
61
+ ._1asxz9ro {
65
62
  grid-area: b;
66
63
  }
67
- ._1asxz9rt {
64
+ ._1asxz9rp {
68
65
  display: flex;
69
66
  grid-area: a;
70
67
  place-items: center;
71
68
  }
72
- ._1asxz9rt:empty {
69
+ ._1asxz9rp:empty {
73
70
  display: none;
74
71
  }
75
- ._1asxz9ru {
72
+ ._1asxz9rq {
76
73
  display: flex;
77
74
  grid-area: c;
78
75
  place-items: center;
79
76
  }
80
- ._1asxz9ru:empty {
77
+ ._1asxz9rq:empty {
81
78
  display: none;
82
79
  }
83
- ._1asxz9rv {
84
- --_1asxz9r7: calc((var(--_1asxz9rb) - var(--_1asxz9rc)) / 2);
85
- --_1asxz9rd: oklch(0 0 0 / 0%);
86
- --_1asxz9re: inherit;
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(--_1asxz9r7);
89
- font-size: var(--_1asxz9rc);
90
- color: var(--_1asxz9rd);
85
+ margin-block: var(--_1asxz9r6);
86
+ font-size: var(--_1asxz9r9);
87
+ color: var(--_1asxz9ra);
91
88
  }
92
- :is([aria-checked="true"], [aria-selected="true"]) ._1asxz9rv {
93
- --_1asxz9rd: var(--_1asxz9re);
89
+ :is([aria-checked="true"], [aria-selected="true"]) ._1asxz9rr {
90
+ --_1asxz9ra: var(--_1asxz9rb);
94
91
  }
95
- ._1asxz9rw {
96
- --_1asxz9r6: var(--_1asxz9r7) var(--_1asxz9r8);
97
- --_1asxz9r7: calc((var(--_15shvv45t) - var(--_15shvv45w)) / 2);
98
- --_1asxz9r8: 0;
99
- --_1asxz9rd: var(--_15shvv463);
100
- --_1asxz9rm: var(--_1asxz9rn) solid;
101
- --_1asxz9rn: var(--_15shvv462);
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(--_1asxz9r6);
106
- color: var(--_1asxz9rd);
107
- border-block-end: var(--_1asxz9rm);
102
+ margin: var(--_1asxz9r5);
103
+ color: var(--_1asxz9ra);
104
+ border-block-end: var(--_1asxz9rj);
108
105
  }
109
- ._1asxz9rx {
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
- ._1asxz9ry {
116
- --_1asxz9r3: var(--_1asxz9r4) var(--_1asxz9r5);
117
- --_1asxz9r4: calc((var(--_15shvv45t) - var(--_15shvv45w)) / 2);
118
- --_1asxz9r5: var(--_15shvv45u);
119
- --_1asxz9r9: var(--_15shvv460);
120
- --_1asxz9rd: var(--_15shvv461);
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
- padding: var(--_1asxz9r3);
125
- font: var(--_1asxz9r9);
126
- color: var(--_1asxz9rd);
123
+ gap: inherit;
124
+ padding: var(--_1asxz9r2);
127
125
  }
128
- ._1asxz9rz {
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 GroupLabelStyle = '_1asxz9ry';
8
- var GroupNestedListStyle = '_1asxz9rz';
9
- var GroupStyle = '_1asxz9rx';
10
- var ItemAfterStyle = '_1asxz9ru';
11
- var ItemBeforeStyle = '_1asxz9rt';
12
- var ItemContentStyle = '_1asxz9rs';
13
- var ItemIconStyle = '_1asxz9rv';
14
- var ItemStyle = createRuntimeFn({defaultClassName:'_1asxz9rq',variantClassNames:{danger:{true:'_1asxz9rr'}},defaultVariants:{},compoundVariants:[]});
15
- var ListStyle = '_1asxz9rp';
16
- var SeparatorStyle = '_1asxz9rw';
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,6 @@
1
+ import './article.css';
2
+
3
+ var ArticleStyle = '_274mrm4';
4
+
5
+ export { ArticleStyle };
6
+ //# sourceMappingURL=article.css.vanilla.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"article.css.vanilla.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+ export { ArticleStyle } from './article.css.vanilla.js';
3
+ //# sourceMappingURL=index.js.map
@@ -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 { parse } from './resolve.js';
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, navigate] = useNavigate(
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":";;;;;;;;;;;;;;;;;;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;;"}
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":"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"}
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":";;;;AAUO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY;AACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAyB,CAAA,CAAA,CAAA,CAAI,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AAE1D,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc,cAAA,CAAe,CAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAmB;AACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,IAAK,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAW,CAAA,CAAA,IAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,EAAI,EAAE,CAAA;AAE9C,CAAA,CAAA,CAAA,CAAA,SAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAW,CAAA,IAAK,IAAI,CAAA;AAAA,CAAA,CAChC,CAAC,CAAA;AAED,CAAA,CAAA,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,cAAA,CAAe,CAAC,EAAA,CAAA,CAAA,CAAA,CAAA,CAAmB;AACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAI,CAAA;AACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA;AAAA,CAAA,CACzB,CAAC,CAAA;AAED,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,SAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAI,CAAA;AACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,UAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA;AAEtD,CAAA,CAAA,CAAA,CAAA,OAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,SAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAI,CAAA;AACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,UAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAI,CAAA;AAAA,CAAA,CAAA,CAAA,CAC3D,CAAA;AAAA,CAAA,CACF,CAAA,CAAA,CAAG,CAAA,CAAE,CAAA;AAEL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAChB,CAAC,CAAA,GAAyC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC;AACzE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAE,CAAA,CAAA,CAAG;AAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAE,CAAA;AACZ,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,CAAkB,CAAA,CAAA,CAAA,CAAI,CAAA;AACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAe,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAU,CAAA;AACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;AAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACF;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM;AACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe;AAAA,CAAA,CAAA,CAAA,CACpB,CAAA;AAAA,CAAA,CAAA,CAAA,CACA,CAAA;AAAC,CAAA,CAAA,CACH;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,EAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,KAAM,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CAC1C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAG;AAAA,CAAA,CAAA,CACnB;AAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA,CAAA,CAAA,CAAA,CACnB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAc;AAAA,CAAA,CAAA,CAC1B;AAEA,CAAA,CAAA,OAAO,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,SAAS,CAAA;AAC7C;;"}
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 [active, isFocusVisible, navigate];
58
+ return navigate;
61
59
  }
62
60
 
63
61
  export { useNavigate };