@xihan-ui/styles 3.0.0 → 3.2.0

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 (221) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/README.md +1 -1
  3. package/component-tokens.d.ts +29 -0
  4. package/components.tokens.json +683 -27
  5. package/css/alert.css +2 -2
  6. package/css/approval.css +4 -4
  7. package/css/button.css +9 -5
  8. package/css/calendar-picker.css +3 -3
  9. package/css/calendar-range-picker.css +7 -7
  10. package/css/carousel.css +45 -13
  11. package/css/cartesian-chart.css +11 -11
  12. package/css/cascader.css +10 -10
  13. package/css/citation.css +2 -2
  14. package/css/code-view.css +6 -6
  15. package/css/color-picker.css +81 -0
  16. package/css/color-swatch-picker.css +9 -4
  17. package/css/combobox.css +12 -4
  18. package/css/command.css +1 -1
  19. package/css/date-field.css +39 -0
  20. package/css/date-picker.css +86 -9
  21. package/css/date-range-picker.css +47 -7
  22. package/css/diff-view.css +8 -8
  23. package/css/field-array.css +1 -1
  24. package/css/field.css +4 -0
  25. package/css/file-upload.css +1 -1
  26. package/css/float-button.css +140 -27
  27. package/css/form.css +14 -6
  28. package/css/graph-chart.css +2 -2
  29. package/css/highlight.css +1 -1
  30. package/css/image.css +1 -1
  31. package/css/mention.css +1 -1
  32. package/css/message-feed.css +1 -1
  33. package/css/notification.css +26 -20
  34. package/css/number-field.css +18 -18
  35. package/css/page-header.css +2 -2
  36. package/css/password-input.css +2 -2
  37. package/css/popconfirm.css +3 -3
  38. package/css/question-flow.css +8 -8
  39. package/css/radar-chart.css +6 -6
  40. package/css/rating.css +1 -1
  41. package/css/select.css +2 -2
  42. package/css/separator.css +2 -2
  43. package/css/side-nav.css +13 -13
  44. package/css/skeleton.css +5 -5
  45. package/css/slider.css +6 -6
  46. package/css/sortable.css +2 -2
  47. package/css/table.css +19 -2
  48. package/css/tags-input.css +1 -1
  49. package/css/time-picker.css +59 -2
  50. package/css/tool-call.css +7 -7
  51. package/css/tooltip.css +1 -1
  52. package/css/tree-select.css +2 -2
  53. package/css/tree.css +81 -11
  54. package/dist/css/accordion.css +269 -0
  55. package/dist/css/affix.css +47 -0
  56. package/dist/css/alert.css +247 -0
  57. package/dist/css/anchor.css +252 -0
  58. package/dist/css/approval.css +501 -0
  59. package/dist/css/avatar-group.css +99 -0
  60. package/dist/css/avatar.css +98 -0
  61. package/dist/css/back-top.css +161 -0
  62. package/dist/css/badge.css +205 -0
  63. package/dist/css/bar-code.css +62 -0
  64. package/dist/css/breadcrumb.css +230 -0
  65. package/dist/css/button-group.css +263 -0
  66. package/dist/css/button.css +219 -0
  67. package/dist/css/calendar-picker.css +467 -0
  68. package/dist/css/calendar-range-picker.css +554 -0
  69. package/dist/css/card.css +221 -0
  70. package/dist/css/carousel.css +710 -0
  71. package/dist/css/cartesian-chart.css +830 -0
  72. package/dist/css/cascader.css +961 -0
  73. package/dist/css/checkbox-group.css +358 -0
  74. package/dist/css/checkbox.css +257 -0
  75. package/dist/css/citation.css +470 -0
  76. package/dist/css/clipboard.css +315 -0
  77. package/dist/css/code-view.css +374 -0
  78. package/dist/css/collapsible.css +185 -0
  79. package/dist/css/color-field.css +176 -0
  80. package/dist/css/color-picker.css +595 -0
  81. package/dist/css/color-slider.css +281 -0
  82. package/dist/css/color-swatch-picker.css +250 -0
  83. package/dist/css/color-swatch.css +35 -0
  84. package/dist/css/combobox.css +574 -0
  85. package/dist/css/command.css +399 -0
  86. package/dist/css/context-menu.css +420 -0
  87. package/dist/css/date-field.css +317 -0
  88. package/dist/css/date-picker.css +868 -0
  89. package/dist/css/date-range-picker.css +886 -0
  90. package/dist/css/description.css +67 -0
  91. package/dist/css/descriptions.css +299 -0
  92. package/dist/css/dialog.css +455 -0
  93. package/dist/css/diff-view.css +513 -0
  94. package/dist/css/download-trigger.css +151 -0
  95. package/dist/css/drawer.css +552 -0
  96. package/dist/css/editable.css +295 -0
  97. package/dist/css/empty-state.css +163 -0
  98. package/dist/css/field-array.css +226 -0
  99. package/dist/css/field.css +166 -0
  100. package/dist/css/fieldset.css +102 -0
  101. package/dist/css/file-upload.css +429 -0
  102. package/dist/css/flex.css +441 -0
  103. package/dist/css/float-button.css +569 -0
  104. package/dist/css/floating-panel.css +429 -0
  105. package/dist/css/focus.css +46 -0
  106. package/dist/css/forced-colors.css +93 -0
  107. package/dist/css/form.css +393 -0
  108. package/dist/css/funnel-chart.css +106 -0
  109. package/dist/css/graph-chart.css +205 -0
  110. package/dist/css/grid-list.css +235 -0
  111. package/dist/css/grid.css +1201 -0
  112. package/dist/css/heatmap.css +552 -0
  113. package/dist/css/hierarchy-chart.css +298 -0
  114. package/dist/css/highlight.css +41 -0
  115. package/dist/css/hover-card.css +226 -0
  116. package/dist/css/icon.css +225 -0
  117. package/dist/css/image-cropper.css +373 -0
  118. package/dist/css/image-viewer.css +538 -0
  119. package/dist/css/image.css +98 -0
  120. package/dist/css/infinite-scroll.css +77 -0
  121. package/dist/css/input-group.css +275 -0
  122. package/dist/css/json-viewer.css +379 -0
  123. package/dist/css/kbd.css +72 -0
  124. package/dist/css/label.css +78 -0
  125. package/dist/css/layers.css +7 -0
  126. package/dist/css/layout.css +372 -0
  127. package/dist/css/liquid.css +106 -0
  128. package/dist/css/list.css +152 -0
  129. package/dist/css/listbox.css +390 -0
  130. package/dist/css/loading-bar.css +141 -0
  131. package/dist/css/log.css +306 -0
  132. package/dist/css/markdown-stream.css +149 -0
  133. package/dist/css/marquee.css +378 -0
  134. package/dist/css/masonry.css +70 -0
  135. package/dist/css/matrix-code.css +67 -0
  136. package/dist/css/mention.css +393 -0
  137. package/dist/css/menu.css +364 -0
  138. package/dist/css/menubar.css +456 -0
  139. package/dist/css/message-feed.css +318 -0
  140. package/dist/css/navigation-menu.css +513 -0
  141. package/dist/css/notification.css +782 -0
  142. package/dist/css/number-animation.css +44 -0
  143. package/dist/css/number-field.css +252 -0
  144. package/dist/css/overlay-arrow.css +56 -0
  145. package/dist/css/page-header.css +184 -0
  146. package/dist/css/pagination.css +450 -0
  147. package/dist/css/password-input.css +391 -0
  148. package/dist/css/pie-chart.css +247 -0
  149. package/dist/css/pin-input.css +199 -0
  150. package/dist/css/pointer.css +36 -0
  151. package/dist/css/popconfirm.css +320 -0
  152. package/dist/css/popover.css +279 -0
  153. package/dist/css/progress.css +501 -0
  154. package/dist/css/prompt-input.css +260 -0
  155. package/dist/css/question-flow.css +553 -0
  156. package/dist/css/radar-chart.css +233 -0
  157. package/dist/css/radio-group.css +598 -0
  158. package/dist/css/rating.css +294 -0
  159. package/dist/css/reasoning.css +343 -0
  160. package/dist/css/reset.css +117 -0
  161. package/dist/css/resizable.css +242 -0
  162. package/dist/css/sankey-chart.css +174 -0
  163. package/dist/css/scroll-area.css +240 -0
  164. package/dist/css/scrollbar.css +204 -0
  165. package/dist/css/select.css +612 -0
  166. package/dist/css/separator.css +122 -0
  167. package/dist/css/side-nav.css +476 -0
  168. package/dist/css/signature-pad.css +179 -0
  169. package/dist/css/skeleton.css +161 -0
  170. package/dist/css/slider.css +374 -0
  171. package/dist/css/sortable.css +228 -0
  172. package/dist/css/sparkline.css +164 -0
  173. package/dist/css/spinner.css +236 -0
  174. package/dist/css/splitter.css +159 -0
  175. package/dist/css/statistic.css +137 -0
  176. package/dist/css/steps.css +627 -0
  177. package/dist/css/switch.css +351 -0
  178. package/dist/css/table.css +1145 -0
  179. package/dist/css/tabs.css +944 -0
  180. package/dist/css/tag-group.css +247 -0
  181. package/dist/css/tag.css +310 -0
  182. package/dist/css/tags-input.css +322 -0
  183. package/dist/css/text-field.css +197 -0
  184. package/dist/css/time-field.css +277 -0
  185. package/dist/css/time-picker.css +707 -0
  186. package/dist/css/time-range-picker.css +746 -0
  187. package/dist/css/timeline.css +423 -0
  188. package/dist/css/timer.css +123 -0
  189. package/dist/css/timestamp.css +34 -0
  190. package/dist/css/toggle-group.css +424 -0
  191. package/dist/css/toggle.css +146 -0
  192. package/dist/css/tone.css +189 -0
  193. package/dist/css/tool-call.css +429 -0
  194. package/dist/css/toolbar.css +365 -0
  195. package/dist/css/tooltip.css +218 -0
  196. package/dist/css/tour.css +439 -0
  197. package/dist/css/transfer.css +638 -0
  198. package/dist/css/tree-select.css +878 -0
  199. package/dist/css/tree.css +733 -0
  200. package/dist/css/truncate.css +108 -0
  201. package/dist/css/typography.css +472 -0
  202. package/dist/css/undefined.css +58 -0
  203. package/dist/css/virtualizer.css +166 -0
  204. package/dist/css/visually-hidden.css +20 -0
  205. package/dist/css/watermark.css +82 -0
  206. package/dist/family/action-control.css +487 -0
  207. package/dist/family/chart.css +480 -0
  208. package/dist/family/check-mark.css +94 -0
  209. package/dist/family/choice-card.css +97 -0
  210. package/dist/family/collection-item.css +764 -0
  211. package/dist/family/field-chrome.css +287 -0
  212. package/dist/family/loading-ring.css +95 -0
  213. package/dist/family/material.css +72 -0
  214. package/dist/family/menu-choice.css +56 -0
  215. package/dist/family/motion.css +363 -0
  216. package/dist/family/swatch.css +59 -0
  217. package/dist/family/tag-list.css +59 -0
  218. package/family/action-control.css +3 -12
  219. package/index.css +7307 -6759
  220. package/index.unlayered.css +7309 -6761
  221. package/package.json +165 -164
@@ -0,0 +1,764 @@
1
+ /*
2
+ * Copyright (c) 2021-Present XiHanFun and contributors.
3
+ * Licensed under the MIT License. See LICENSE in the project root for license information.
4
+ */
5
+
6
+ /* AUTO-GENERATED by build/collection-item-recipe.mjs — do not edit. */
7
+ @layer xihan.components {
8
+ [data-xh-collection-item] {
9
+ --xh-_collection-block-padding: var(--xh-list-option-py-md);
10
+ --xh-_collection-inline-padding: var(--xh-control-px-md);
11
+ --xh-_collection-gap: var(--xh-control-gap-md);
12
+ --xh-_collection-font-size: var(--xh-control-font-md);
13
+ --xh-_collection-glyph-size: var(--xh-glyph-size-md);
14
+ --xh-_collection-bg: var(--xh-collection-bg-rest, transparent);
15
+ --xh-_collection-fg: var(--xh-collection-fg-rest, var(--xh-material-frosted-fg));
16
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-rest, var(--xh-material-frosted-fg-muted));
17
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-rest, var(--xh-fg-brand));
18
+ --xh-_collection-outline: var(--xh-collection-outline-rest, transparent);
19
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-rest, var(--xh-font-weight-regular));
20
+ --xh-_collection-cursor: var(--xh-collection-cursor-rest, pointer);
21
+ --xh-_collection-opacity: var(--xh-collection-opacity-rest, 1);
22
+
23
+ --xh-icon-size: var(--xh-collection-glyph-size, var(--xh-_collection-glyph-size));
24
+
25
+ display: grid;
26
+ grid-template-columns:
27
+ [prefix] max-content
28
+ [text] minmax(0, 1fr)
29
+ [shortcut] max-content
30
+ [suffix] max-content
31
+ [indicator] max-content;
32
+ /* 第 2 行是说明行。各皮肤为了省略号给 text 槽写了 overflow: hidden,它因此成为滚动容器、自动最小尺寸
33
+ 归 0;轨道尺寸算法里第 1 行的 base size 只有 0,处理跨两行的 prefix / indicator 等图标时会把图标高度
34
+ 平均分给两行,没有说明的条目也长出半个图标高的第 2 行,图标随之整体下沉。minmax(0, max-content)
35
+ 把第 2 行的最小尺寸钉在 0,它不再参与跨行项的最小高度分配,只在真有说明时按说明长;上限取 max-content
36
+ 而不是 auto,皮肤给条目定死 block-size 时多余空间也不会被说明行分走。 */
37
+ grid-template-rows: auto minmax(0, max-content);
38
+ align-items: center;
39
+ min-inline-size: 0;
40
+ padding-block: var(--xh-collection-block-padding, var(--xh-_collection-block-padding));
41
+ padding-inline: var(--xh-collection-inline-padding, var(--xh-_collection-inline-padding));
42
+ border-radius: var(--xh-collection-radius, var(--xh-shape-control));
43
+ outline: var(--xh-ring-width) solid var(--xh-_collection-outline);
44
+ outline-offset: var(--xh-ring-offset);
45
+ background-color: var(--xh-_collection-bg);
46
+ color: var(--xh-_collection-fg);
47
+ font-size: var(--xh-collection-font-size, var(--xh-_collection-font-size));
48
+ font-weight: var(--xh-_collection-font-weight);
49
+ line-height: var(--xh-leading-normal);
50
+ cursor: var(--xh-_collection-cursor);
51
+ opacity: var(--xh-_collection-opacity);
52
+ /* 描边色不进过渡,与 focus.css 的公共环同一节奏(即时出现、即时消失):
53
+ 描边在这里常驻 solid、静息透明,靠颜色表达键盘高亮。宿主页面常见的
54
+ button:focus:not(:focus-visible) { outline: none } 复位(VitePress 等)是无层规则,压过本份;
55
+ 指针落焦时它把简写复位成 none,outline-color 同时落到 currentColor;焦点离开、规则失效的那一刻
56
+ solid 立即回来,颜色若还在过渡就画成一圈实心边(上一条目闪边)。颜色即时切换后这条路径没有中间帧。
57
+ 不透明度同一节奏:集合在后台刷新时保留上一帧、条目按 micro 淡下,数据到了再淡回 */
58
+ transition:
59
+ background-color var(--xh-motion-duration-micro) var(--xh-motion-ease-enter),
60
+ color var(--xh-motion-duration-micro) var(--xh-motion-ease-enter),
61
+ opacity var(--xh-motion-duration-micro) var(--xh-motion-ease-enter);
62
+ }
63
+
64
+ [data-xh-collection-item][data-xh-collection-size='sm'] {
65
+ --xh-_collection-block-padding: var(--xh-list-option-py-sm);
66
+ --xh-_collection-inline-padding: var(--xh-control-px-sm);
67
+ --xh-_collection-gap: var(--xh-control-gap-sm);
68
+ --xh-_collection-font-size: var(--xh-control-font-sm);
69
+ --xh-_collection-glyph-size: var(--xh-glyph-size-sm);
70
+ }
71
+
72
+ [data-xh-collection-item][data-xh-collection-size='md'] {
73
+ --xh-_collection-block-padding: var(--xh-list-option-py-md);
74
+ --xh-_collection-inline-padding: var(--xh-control-px-md);
75
+ --xh-_collection-gap: var(--xh-control-gap-md);
76
+ --xh-_collection-font-size: var(--xh-control-font-md);
77
+ --xh-_collection-glyph-size: var(--xh-glyph-size-md);
78
+ }
79
+
80
+ [data-xh-collection-item][data-xh-collection-size='lg'] {
81
+ --xh-_collection-block-padding: var(--xh-list-option-py-lg);
82
+ --xh-_collection-inline-padding: var(--xh-control-px-lg);
83
+ --xh-_collection-gap: var(--xh-control-gap-lg);
84
+ --xh-_collection-font-size: var(--xh-control-font-lg);
85
+ --xh-_collection-glyph-size: var(--xh-glyph-size-lg);
86
+ }
87
+
88
+ [data-xh-collection-slot='prefix'] {
89
+ grid-column: prefix;
90
+ grid-row: 1 / span 2;
91
+ margin-inline-end: var(--xh-collection-gap, var(--xh-_collection-gap));
92
+ }
93
+
94
+ [data-xh-collection-slot='text'] {
95
+ grid-column: text;
96
+ grid-row: 1;
97
+ min-inline-size: 0;
98
+ }
99
+
100
+ [data-xh-collection-slot='description'] {
101
+ grid-column: text;
102
+ grid-row: 2;
103
+ min-inline-size: 0;
104
+ color: var(--xh-_collection-description-fg);
105
+ font-size: var(--xh-collection-description-font-size, var(--xh-control-caption-md));
106
+ }
107
+
108
+ /* 快捷键提示:与说明同档同色的次级文字,只是落位在行尾而不是第 2 行。
109
+ 不换行——它是一串按键记号,折行会被读成两个组合。跟着 description 那支前景走,因此也不跟语气。 */
110
+ [data-xh-collection-slot='shortcut'] {
111
+ grid-column: shortcut;
112
+ color: var(--xh-_collection-description-fg);
113
+ font-size: var(--xh-collection-shortcut-font-size, var(--xh-control-caption-md));
114
+ white-space: nowrap;
115
+ }
116
+
117
+ [data-xh-collection-slot='suffix'] {
118
+ grid-column: suffix;
119
+ }
120
+
121
+ /* 对号常驻在 indicator 列、未选中时透明:按选中态淡变,不按 visibility 瞬切 */
122
+ [data-xh-collection-slot='indicator'] {
123
+ grid-column: indicator;
124
+ color: var(--xh-_collection-indicator-fg);
125
+ opacity: 0;
126
+ transition: opacity var(--xh-motion-duration-micro) var(--xh-motion-ease-enter);
127
+ }
128
+
129
+ [data-xh-collection-slot='shortcut'],
130
+ [data-xh-collection-slot='suffix'],
131
+ [data-xh-collection-slot='indicator'] {
132
+ grid-row: 1 / span 2;
133
+ margin-inline-start: var(--xh-collection-gap, var(--xh-_collection-gap));
134
+ }
135
+
136
+ /* page 上下文:对号与 overlay 同在行尾的 indicator 列(trailing);当前项的起始侧指示条按配方开关(none),none 即只由行面与字色表达。 */
137
+ [data-xh-collection-item][data-xh-collection-context='page'] {
138
+ position: relative;
139
+ }
140
+
141
+ [data-xh-collection-item][data-in-path] {
142
+ --xh-_collection-bg: var(--xh-collection-bg-open-path, var(--xh-bg-subtle));
143
+ --xh-_collection-fg: var(--xh-collection-fg-open-path, var(--xh-material-frosted-fg));
144
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-open-path, var(--xh-material-frosted-fg-muted));
145
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-open-path, var(--xh-fg-brand));
146
+ --xh-_collection-outline: var(--xh-collection-outline-open-path, transparent);
147
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-open-path, var(--xh-font-weight-regular));
148
+ --xh-_collection-cursor: var(--xh-collection-cursor-open-path, pointer);
149
+ --xh-_collection-opacity: var(--xh-collection-opacity-open-path, 1);
150
+ }
151
+
152
+ [data-xh-collection-item]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
153
+ --xh-_collection-bg: var(--xh-collection-bg-hover, var(--xh-bg-subtle));
154
+ --xh-_collection-fg: var(--xh-collection-fg-hover, var(--xh-material-frosted-fg));
155
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-hover, var(--xh-material-frosted-fg-muted));
156
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-hover, var(--xh-fg-brand));
157
+ --xh-_collection-outline: var(--xh-collection-outline-hover, transparent);
158
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-hover, var(--xh-font-weight-regular));
159
+ --xh-_collection-cursor: var(--xh-collection-cursor-hover, pointer);
160
+ --xh-_collection-opacity: var(--xh-collection-opacity-hover, 1);
161
+ }
162
+
163
+ [data-xh-collection-item]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
164
+ --xh-_collection-bg: var(--xh-collection-bg-keyboard-highlight, var(--xh-bg-subtle));
165
+ --xh-_collection-fg: var(--xh-collection-fg-keyboard-highlight, var(--xh-material-frosted-fg));
166
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-keyboard-highlight, var(--xh-material-frosted-fg-muted));
167
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-keyboard-highlight, var(--xh-fg-brand));
168
+ --xh-_collection-outline: var(--xh-collection-outline-keyboard-highlight, var(--xh-ring-focus));
169
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-keyboard-highlight, var(--xh-font-weight-regular));
170
+ --xh-_collection-cursor: var(--xh-collection-cursor-keyboard-highlight, pointer);
171
+ --xh-_collection-opacity: var(--xh-collection-opacity-keyboard-highlight, 1);
172
+ }
173
+
174
+ /* 按下段:pressed 面与按下时长、曲线一起给出;排在 hover 与高亮之后,同特指度才不会被它们盖掉。 */
175
+ [data-xh-collection-item]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
176
+ --xh-_collection-bg: var(--xh-collection-bg-pressed, var(--xh-bg-subtle-hover));
177
+ --xh-_collection-fg: var(--xh-collection-fg-pressed, var(--xh-material-frosted-fg));
178
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-pressed, var(--xh-material-frosted-fg-muted));
179
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-pressed, var(--xh-fg-brand));
180
+ --xh-_collection-outline: var(--xh-collection-outline-pressed, transparent);
181
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-pressed, var(--xh-font-weight-regular));
182
+ --xh-_collection-cursor: var(--xh-collection-cursor-pressed, pointer);
183
+ --xh-_collection-opacity: var(--xh-collection-opacity-pressed, 1);
184
+
185
+ transition-duration: var(--xh-motion-duration-press);
186
+ transition-timing-function: var(--xh-motion-ease-press);
187
+ }
188
+
189
+ /* 语气段:条目自身动作的性质,静息只换字、hover / 高亮 / 按下换语气淡底,节奏与中性行一致。
190
+ 必须排在上下文段之前:语气与 selected / current 同特指度,靠源序让选中与当前压过语气。 */
191
+ [data-xh-collection-item][data-tone]:not([data-xh-collection-context='nav']):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]) {
192
+ --xh-_collection-bg: transparent;
193
+ --xh-_collection-fg: var(--xh-tone-fg);
194
+ }
195
+
196
+ [data-xh-collection-item][data-tone]:not([data-xh-collection-context='nav']):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
197
+ --xh-_collection-bg: var(--xh-tone-subtle);
198
+ --xh-_collection-fg: var(--xh-tone-fg);
199
+ }
200
+
201
+ [data-xh-collection-item][data-tone]:not([data-xh-collection-context='nav']):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
202
+ --xh-_collection-bg: var(--xh-tone-subtle);
203
+ --xh-_collection-fg: var(--xh-tone-fg);
204
+ }
205
+
206
+ [data-xh-collection-item][data-tone]:not([data-xh-collection-context='nav']):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
207
+ --xh-_collection-bg: var(--xh-tone-subtle-hover);
208
+ --xh-_collection-fg: var(--xh-tone-fg);
209
+
210
+ transition-duration: var(--xh-motion-duration-press);
211
+ transition-timing-function: var(--xh-motion-ease-press);
212
+ }
213
+
214
+ [data-xh-collection-item][data-xh-collection-context='overlay']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]) {
215
+ --xh-_collection-bg: var(--xh-collection-bg-selected, transparent);
216
+ --xh-_collection-fg: var(--xh-collection-fg-selected, var(--xh-material-frosted-fg));
217
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-selected, var(--xh-material-frosted-fg-muted));
218
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-selected, var(--xh-fg-brand));
219
+ --xh-_collection-outline: var(--xh-collection-outline-selected, transparent);
220
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-selected, var(--xh-font-weight-regular));
221
+ --xh-_collection-cursor: var(--xh-collection-cursor-selected, pointer);
222
+ --xh-_collection-opacity: var(--xh-collection-opacity-selected, 1);
223
+ }
224
+
225
+ [data-xh-collection-item][data-xh-collection-context='overlay']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
226
+ --xh-_collection-bg: var(--xh-collection-bg-selected-hover, var(--xh-bg-subtle));
227
+ --xh-_collection-fg: var(--xh-collection-fg-selected-hover, var(--xh-material-frosted-fg));
228
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-selected-hover, var(--xh-material-frosted-fg-muted));
229
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-selected-hover, var(--xh-fg-brand));
230
+ --xh-_collection-outline: var(--xh-collection-outline-selected-hover, transparent);
231
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-selected-hover, var(--xh-font-weight-regular));
232
+ --xh-_collection-cursor: var(--xh-collection-cursor-selected-hover, pointer);
233
+ --xh-_collection-opacity: var(--xh-collection-opacity-selected-hover, 1);
234
+ }
235
+
236
+ [data-xh-collection-item][data-xh-collection-context='overlay']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
237
+ --xh-_collection-bg: var(--xh-collection-bg-selected-highlight, var(--xh-bg-subtle));
238
+ --xh-_collection-fg: var(--xh-collection-fg-selected-highlight, var(--xh-material-frosted-fg));
239
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-selected-highlight, var(--xh-material-frosted-fg-muted));
240
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-selected-highlight, var(--xh-fg-brand));
241
+ --xh-_collection-outline: var(--xh-collection-outline-selected-highlight, var(--xh-ring-focus));
242
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-selected-highlight, var(--xh-font-weight-regular));
243
+ --xh-_collection-cursor: var(--xh-collection-cursor-selected-highlight, pointer);
244
+ --xh-_collection-opacity: var(--xh-collection-opacity-selected-highlight, 1);
245
+ }
246
+
247
+ [data-xh-collection-item][data-xh-collection-context='overlay']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
248
+ --xh-_collection-bg: var(--xh-collection-bg-selected-pressed, var(--xh-bg-subtle-hover));
249
+ --xh-_collection-fg: var(--xh-collection-fg-selected-pressed, var(--xh-material-frosted-fg));
250
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-selected-pressed, var(--xh-material-frosted-fg-muted));
251
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-selected-pressed, var(--xh-fg-brand));
252
+ --xh-_collection-outline: var(--xh-collection-outline-selected-pressed, transparent);
253
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-selected-pressed, var(--xh-font-weight-regular));
254
+ --xh-_collection-cursor: var(--xh-collection-cursor-selected-pressed, pointer);
255
+ --xh-_collection-opacity: var(--xh-collection-opacity-selected-pressed, 1);
256
+ }
257
+
258
+ [data-xh-collection-item][data-xh-collection-context='page']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]) {
259
+ --xh-_collection-bg: var(--xh-collection-bg-selected, var(--xh-bg-brand-subtle));
260
+ --xh-_collection-fg: var(--xh-collection-fg-selected, var(--xh-fg-on-brand-subtle));
261
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-selected, var(--xh-material-frosted-fg-muted));
262
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-selected, var(--xh-fg-on-brand-subtle));
263
+ --xh-_collection-outline: var(--xh-collection-outline-selected, transparent);
264
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-selected, var(--xh-font-weight-regular));
265
+ --xh-_collection-cursor: var(--xh-collection-cursor-selected, pointer);
266
+ --xh-_collection-opacity: var(--xh-collection-opacity-selected, 1);
267
+ }
268
+
269
+ [data-xh-collection-item][data-xh-collection-context='page']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
270
+ --xh-_collection-bg: var(--xh-collection-bg-selected-hover, var(--xh-bg-brand-subtle-hover));
271
+ --xh-_collection-fg: var(--xh-collection-fg-selected-hover, var(--xh-fg-on-brand-subtle));
272
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-selected-hover, var(--xh-material-frosted-fg-muted));
273
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-selected-hover, var(--xh-fg-on-brand-subtle));
274
+ --xh-_collection-outline: var(--xh-collection-outline-selected-hover, transparent);
275
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-selected-hover, var(--xh-font-weight-regular));
276
+ --xh-_collection-cursor: var(--xh-collection-cursor-selected-hover, pointer);
277
+ --xh-_collection-opacity: var(--xh-collection-opacity-selected-hover, 1);
278
+ }
279
+
280
+ [data-xh-collection-item][data-xh-collection-context='page']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
281
+ --xh-_collection-bg: var(--xh-collection-bg-selected-highlight, var(--xh-bg-brand-subtle-hover));
282
+ --xh-_collection-fg: var(--xh-collection-fg-selected-highlight, var(--xh-fg-on-brand-subtle));
283
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-selected-highlight, var(--xh-material-frosted-fg-muted));
284
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-selected-highlight, var(--xh-fg-on-brand-subtle));
285
+ --xh-_collection-outline: var(--xh-collection-outline-selected-highlight, var(--xh-ring-focus));
286
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-selected-highlight, var(--xh-font-weight-regular));
287
+ --xh-_collection-cursor: var(--xh-collection-cursor-selected-highlight, pointer);
288
+ --xh-_collection-opacity: var(--xh-collection-opacity-selected-highlight, 1);
289
+ }
290
+
291
+ [data-xh-collection-item][data-xh-collection-context='page']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
292
+ --xh-_collection-bg: var(--xh-collection-bg-selected-pressed, var(--xh-bg-brand-subtle-active));
293
+ --xh-_collection-fg: var(--xh-collection-fg-selected-pressed, var(--xh-fg-on-brand-subtle));
294
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-selected-pressed, var(--xh-material-frosted-fg-muted));
295
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-selected-pressed, var(--xh-fg-on-brand-subtle));
296
+ --xh-_collection-outline: var(--xh-collection-outline-selected-pressed, transparent);
297
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-selected-pressed, var(--xh-font-weight-regular));
298
+ --xh-_collection-cursor: var(--xh-collection-cursor-selected-pressed, pointer);
299
+ --xh-_collection-opacity: var(--xh-collection-opacity-selected-pressed, 1);
300
+ }
301
+
302
+ [data-xh-collection-item][data-xh-collection-context='page'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]) {
303
+ --xh-_collection-bg: var(--xh-collection-bg-current, var(--xh-bg-brand-subtle));
304
+ --xh-_collection-fg: var(--xh-collection-fg-current, var(--xh-fg-on-brand-subtle));
305
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-current, var(--xh-material-frosted-fg-muted));
306
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-current, var(--xh-fg-on-brand-subtle));
307
+ --xh-_collection-outline: var(--xh-collection-outline-current, transparent);
308
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-current, var(--xh-font-weight-regular));
309
+ --xh-_collection-cursor: var(--xh-collection-cursor-current, pointer);
310
+ --xh-_collection-opacity: var(--xh-collection-opacity-current, 1);
311
+ }
312
+
313
+ [data-xh-collection-item][data-xh-collection-context='page'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
314
+ --xh-_collection-bg: var(--xh-collection-bg-current-hover, var(--xh-bg-brand-subtle-hover));
315
+ --xh-_collection-fg: var(--xh-collection-fg-current-hover, var(--xh-fg-on-brand-subtle));
316
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-current-hover, var(--xh-material-frosted-fg-muted));
317
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-current-hover, var(--xh-fg-on-brand-subtle));
318
+ --xh-_collection-outline: var(--xh-collection-outline-current-hover, transparent);
319
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-current-hover, var(--xh-font-weight-regular));
320
+ --xh-_collection-cursor: var(--xh-collection-cursor-current-hover, pointer);
321
+ --xh-_collection-opacity: var(--xh-collection-opacity-current-hover, 1);
322
+ }
323
+
324
+ [data-xh-collection-item][data-xh-collection-context='page'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
325
+ --xh-_collection-bg: var(--xh-collection-bg-current-highlight, var(--xh-bg-brand-subtle-hover));
326
+ --xh-_collection-fg: var(--xh-collection-fg-current-highlight, var(--xh-fg-on-brand-subtle));
327
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-current-highlight, var(--xh-material-frosted-fg-muted));
328
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-current-highlight, var(--xh-fg-on-brand-subtle));
329
+ --xh-_collection-outline: var(--xh-collection-outline-current-highlight, var(--xh-ring-focus));
330
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-current-highlight, var(--xh-font-weight-regular));
331
+ --xh-_collection-cursor: var(--xh-collection-cursor-current-highlight, pointer);
332
+ --xh-_collection-opacity: var(--xh-collection-opacity-current-highlight, 1);
333
+ }
334
+
335
+ [data-xh-collection-item][data-xh-collection-context='page'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
336
+ --xh-_collection-bg: var(--xh-collection-bg-current-pressed, var(--xh-bg-brand-subtle-active));
337
+ --xh-_collection-fg: var(--xh-collection-fg-current-pressed, var(--xh-fg-on-brand-subtle));
338
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-current-pressed, var(--xh-material-frosted-fg-muted));
339
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-current-pressed, var(--xh-fg-on-brand-subtle));
340
+ --xh-_collection-outline: var(--xh-collection-outline-current-pressed, transparent);
341
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-current-pressed, var(--xh-font-weight-regular));
342
+ --xh-_collection-cursor: var(--xh-collection-cursor-current-pressed, pointer);
343
+ --xh-_collection-opacity: var(--xh-collection-opacity-current-pressed, 1);
344
+ }
345
+
346
+ [data-xh-collection-item][data-xh-collection-context='nav'] {
347
+ --xh-_collection-bg: var(--xh-collection-bg-rest, transparent);
348
+ --xh-_collection-fg: var(--xh-collection-fg-rest, var(--xh-fg-muted));
349
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-rest, var(--xh-fg-muted));
350
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-rest, var(--xh-fg-brand));
351
+ --xh-_collection-outline: var(--xh-collection-outline-rest, transparent);
352
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-rest, var(--xh-font-weight-regular));
353
+ --xh-_collection-cursor: var(--xh-collection-cursor-rest, pointer);
354
+ --xh-_collection-opacity: var(--xh-collection-opacity-rest, 1);
355
+ }
356
+
357
+ [data-xh-collection-item][data-xh-collection-context='nav']:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
358
+ --xh-_collection-bg: var(--xh-collection-bg-hover, var(--xh-bg-subtle));
359
+ --xh-_collection-fg: var(--xh-collection-fg-hover, var(--xh-fg-default));
360
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-hover, var(--xh-fg-muted));
361
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-hover, var(--xh-fg-brand));
362
+ --xh-_collection-outline: var(--xh-collection-outline-hover, transparent);
363
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-hover, var(--xh-font-weight-regular));
364
+ --xh-_collection-cursor: var(--xh-collection-cursor-hover, pointer);
365
+ --xh-_collection-opacity: var(--xh-collection-opacity-hover, 1);
366
+ }
367
+
368
+ [data-xh-collection-item][data-xh-collection-context='nav']:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
369
+ --xh-_collection-bg: var(--xh-collection-bg-keyboard-highlight, var(--xh-bg-subtle));
370
+ --xh-_collection-fg: var(--xh-collection-fg-keyboard-highlight, var(--xh-fg-default));
371
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-keyboard-highlight, var(--xh-fg-muted));
372
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-keyboard-highlight, var(--xh-fg-brand));
373
+ --xh-_collection-outline: var(--xh-collection-outline-keyboard-highlight, var(--xh-ring-focus));
374
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-keyboard-highlight, var(--xh-font-weight-regular));
375
+ --xh-_collection-cursor: var(--xh-collection-cursor-keyboard-highlight, pointer);
376
+ --xh-_collection-opacity: var(--xh-collection-opacity-keyboard-highlight, 1);
377
+ }
378
+
379
+ [data-xh-collection-item][data-xh-collection-context='nav']:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
380
+ --xh-_collection-bg: var(--xh-collection-bg-pressed, var(--xh-bg-subtle-hover));
381
+ --xh-_collection-fg: var(--xh-collection-fg-pressed, var(--xh-fg-default));
382
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-pressed, var(--xh-fg-muted));
383
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-pressed, var(--xh-fg-brand));
384
+ --xh-_collection-outline: var(--xh-collection-outline-pressed, transparent);
385
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-pressed, var(--xh-font-weight-regular));
386
+ --xh-_collection-cursor: var(--xh-collection-cursor-pressed, pointer);
387
+ --xh-_collection-opacity: var(--xh-collection-opacity-pressed, 1);
388
+
389
+ transition-duration: var(--xh-motion-duration-press);
390
+ transition-timing-function: var(--xh-motion-ease-press);
391
+ }
392
+
393
+ [data-xh-collection-item][data-xh-collection-context='nav'][data-in-path] {
394
+ --xh-_collection-bg: var(--xh-collection-bg-open-path, var(--xh-bg-subtle));
395
+ --xh-_collection-fg: var(--xh-collection-fg-open-path, var(--xh-fg-default));
396
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-open-path, var(--xh-fg-muted));
397
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-open-path, var(--xh-fg-brand));
398
+ --xh-_collection-outline: var(--xh-collection-outline-open-path, transparent);
399
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-open-path, var(--xh-font-weight-regular));
400
+ --xh-_collection-cursor: var(--xh-collection-cursor-open-path, pointer);
401
+ --xh-_collection-opacity: var(--xh-collection-opacity-open-path, 1);
402
+ }
403
+
404
+ [data-xh-collection-item][data-xh-collection-context='nav'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]) {
405
+ --xh-_collection-bg: var(--xh-collection-bg-current, transparent);
406
+ --xh-_collection-fg: var(--xh-collection-fg-current, var(--xh-fg-brand-strong));
407
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-current, var(--xh-fg-muted));
408
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-current, var(--xh-fg-brand));
409
+ --xh-_collection-outline: var(--xh-collection-outline-current, transparent);
410
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-current, var(--xh-font-weight-medium));
411
+ --xh-_collection-cursor: var(--xh-collection-cursor-current, pointer);
412
+ --xh-_collection-opacity: var(--xh-collection-opacity-current, 1);
413
+ }
414
+
415
+ [data-xh-collection-item][data-xh-collection-context='nav'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
416
+ --xh-_collection-bg: var(--xh-collection-bg-current-hover, var(--xh-bg-subtle));
417
+ --xh-_collection-fg: var(--xh-collection-fg-current-hover, var(--xh-fg-brand-strong));
418
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-current-hover, var(--xh-fg-muted));
419
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-current-hover, var(--xh-fg-brand));
420
+ --xh-_collection-outline: var(--xh-collection-outline-current-hover, transparent);
421
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-current-hover, var(--xh-font-weight-medium));
422
+ --xh-_collection-cursor: var(--xh-collection-cursor-current-hover, pointer);
423
+ --xh-_collection-opacity: var(--xh-collection-opacity-current-hover, 1);
424
+ }
425
+
426
+ [data-xh-collection-item][data-xh-collection-context='nav'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
427
+ --xh-_collection-bg: var(--xh-collection-bg-current-highlight, var(--xh-bg-subtle));
428
+ --xh-_collection-fg: var(--xh-collection-fg-current-highlight, var(--xh-fg-brand-strong));
429
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-current-highlight, var(--xh-fg-muted));
430
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-current-highlight, var(--xh-fg-brand));
431
+ --xh-_collection-outline: var(--xh-collection-outline-current-highlight, var(--xh-ring-focus));
432
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-current-highlight, var(--xh-font-weight-medium));
433
+ --xh-_collection-cursor: var(--xh-collection-cursor-current-highlight, pointer);
434
+ --xh-_collection-opacity: var(--xh-collection-opacity-current-highlight, 1);
435
+ }
436
+
437
+ [data-xh-collection-item][data-xh-collection-context='nav'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
438
+ --xh-_collection-bg: var(--xh-collection-bg-current-pressed, var(--xh-bg-subtle-hover));
439
+ --xh-_collection-fg: var(--xh-collection-fg-current-pressed, var(--xh-fg-brand-strong));
440
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-current-pressed, var(--xh-fg-muted));
441
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-current-pressed, var(--xh-fg-brand));
442
+ --xh-_collection-outline: var(--xh-collection-outline-current-pressed, transparent);
443
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-current-pressed, var(--xh-font-weight-medium));
444
+ --xh-_collection-cursor: var(--xh-collection-cursor-current-pressed, pointer);
445
+ --xh-_collection-opacity: var(--xh-collection-opacity-current-pressed, 1);
446
+ }
447
+
448
+ [data-xh-collection-item][data-xh-collection-context='nav'][data-current][data-xh-collection-terminal] {
449
+ --xh-_collection-bg: var(--xh-collection-bg-terminal, transparent);
450
+ --xh-_collection-fg: var(--xh-collection-fg-terminal, var(--xh-fg-default));
451
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-terminal, var(--xh-fg-muted));
452
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-terminal, var(--xh-fg-brand));
453
+ --xh-_collection-outline: var(--xh-collection-outline-terminal, transparent);
454
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-terminal, var(--xh-font-weight-medium));
455
+ --xh-_collection-cursor: var(--xh-collection-cursor-terminal, default);
456
+ --xh-_collection-opacity: var(--xh-collection-opacity-terminal, 1);
457
+
458
+ cursor: var(--xh-_collection-cursor);
459
+ }
460
+
461
+ [data-xh-collection-item]:is([aria-selected='true'], [data-state='checked']) [data-xh-collection-slot='indicator'] {
462
+ opacity: 1;
463
+ }
464
+
465
+ [data-xh-collection-item][data-state='checked'] {
466
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-checked, var(--xh-fg-brand));
467
+ }
468
+
469
+ [data-xh-collection-item][aria-disabled='true'] {
470
+ --xh-_collection-bg: var(--xh-collection-bg-disabled, transparent);
471
+ --xh-_collection-fg: var(--xh-collection-fg-disabled, var(--xh-fg-disabled));
472
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-disabled, var(--xh-fg-disabled));
473
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-disabled, var(--xh-fg-disabled));
474
+ --xh-_collection-outline: var(--xh-collection-outline-disabled, transparent);
475
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-disabled, var(--xh-font-weight-regular));
476
+ --xh-_collection-cursor: var(--xh-collection-cursor-disabled, not-allowed);
477
+ --xh-_collection-opacity: var(--xh-collection-opacity-disabled, 1);
478
+ }
479
+
480
+ [data-xh-collection-item][aria-busy='true'] {
481
+ --xh-_collection-bg: var(--xh-collection-bg-loading, transparent);
482
+ --xh-_collection-fg: var(--xh-collection-fg-loading, var(--xh-material-frosted-fg));
483
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-loading, var(--xh-material-frosted-fg-muted));
484
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-loading, var(--xh-fg-brand));
485
+ --xh-_collection-outline: var(--xh-collection-outline-loading, transparent);
486
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-loading, var(--xh-font-weight-regular));
487
+ --xh-_collection-cursor: var(--xh-collection-cursor-loading, progress);
488
+ --xh-_collection-opacity: var(--xh-collection-opacity-loading, 1);
489
+ }
490
+
491
+ [data-xh-collection-item][data-error] {
492
+ --xh-_collection-bg: var(--xh-collection-bg-error, color-mix(in oklab, var(--xh-fg-danger) 10%, transparent));
493
+ --xh-_collection-fg: var(--xh-collection-fg-error, var(--xh-fg-danger));
494
+ --xh-_collection-description-fg: var(--xh-collection-description-fg-error, var(--xh-fg-danger));
495
+ --xh-_collection-indicator-fg: var(--xh-collection-indicator-fg-error, var(--xh-fg-danger));
496
+ --xh-_collection-outline: var(--xh-collection-outline-error, var(--xh-fg-danger));
497
+ --xh-_collection-font-weight: var(--xh-collection-font-weight-error, var(--xh-font-weight-regular));
498
+ --xh-_collection-cursor: var(--xh-collection-cursor-error, pointer);
499
+ --xh-_collection-opacity: var(--xh-collection-opacity-error, 1);
500
+ }
501
+
502
+ [data-xh-collection-separator] {
503
+ block-size: var(--xh-stroke-thin);
504
+ margin-block: var(--xh-collection-separator-block-margin, var(--xh-space-1));
505
+ margin-inline: var(--xh-collection-separator-inline-margin, var(--xh-control-px-md));
506
+ border: 0;
507
+ background-color: var(--xh-collection-separator-color, var(--xh-material-frosted-separator));
508
+ }
509
+
510
+ [data-xh-collection-item][hidden],
511
+ [data-xh-collection-separator][hidden] {
512
+ display: none;
513
+ }
514
+
515
+ @media (forced-colors: active) {
516
+ [data-xh-collection-item] {
517
+ --xh-_collection-bg: Canvas;
518
+ --xh-_collection-fg: CanvasText;
519
+ --xh-_collection-outline: transparent;
520
+ --xh-_collection-indicator-fg: ButtonText;
521
+ }
522
+
523
+ [data-xh-collection-item][data-in-path] {
524
+ --xh-_collection-bg: Canvas;
525
+ --xh-_collection-fg: CanvasText;
526
+ --xh-_collection-outline: Highlight;
527
+ --xh-_collection-indicator-fg: Highlight;
528
+ }
529
+
530
+ [data-xh-collection-item]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
531
+ --xh-_collection-bg: Highlight;
532
+ --xh-_collection-fg: HighlightText;
533
+ --xh-_collection-outline: transparent;
534
+ --xh-_collection-indicator-fg: HighlightText;
535
+ }
536
+
537
+ [data-xh-collection-item]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
538
+ --xh-_collection-bg: Canvas;
539
+ --xh-_collection-fg: CanvasText;
540
+ --xh-_collection-outline: Highlight;
541
+ --xh-_collection-indicator-fg: Highlight;
542
+ }
543
+
544
+ [data-xh-collection-item]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
545
+ --xh-_collection-bg: Highlight;
546
+ --xh-_collection-fg: HighlightText;
547
+ --xh-_collection-outline: transparent;
548
+ --xh-_collection-indicator-fg: HighlightText;
549
+ }
550
+
551
+ /* 语气在强制颜色下退出:逐态用系统色盖回家族缺省,只留图标与文案通道。
552
+ 语气段在媒体查询外的特指度比这里的基础态各高一级,必须逐条同形盖回,不能只写一条。 */
553
+ [data-xh-collection-item][data-tone]:not([data-xh-collection-context='nav']):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]) {
554
+ --xh-_collection-bg: Canvas;
555
+ --xh-_collection-fg: CanvasText;
556
+ --xh-_collection-outline: transparent;
557
+ --xh-_collection-indicator-fg: ButtonText;
558
+ }
559
+
560
+ [data-xh-collection-item][data-tone]:not([data-xh-collection-context='nav']):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
561
+ --xh-_collection-bg: Highlight;
562
+ --xh-_collection-fg: HighlightText;
563
+ --xh-_collection-outline: transparent;
564
+ --xh-_collection-indicator-fg: HighlightText;
565
+ }
566
+
567
+ [data-xh-collection-item][data-tone]:not([data-xh-collection-context='nav']):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
568
+ --xh-_collection-bg: Canvas;
569
+ --xh-_collection-fg: CanvasText;
570
+ --xh-_collection-outline: Highlight;
571
+ --xh-_collection-indicator-fg: Highlight;
572
+ }
573
+
574
+ [data-xh-collection-item][data-tone]:not([data-xh-collection-context='nav']):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
575
+ --xh-_collection-bg: Highlight;
576
+ --xh-_collection-fg: HighlightText;
577
+ --xh-_collection-outline: transparent;
578
+ --xh-_collection-indicator-fg: HighlightText;
579
+ }
580
+
581
+ [data-xh-collection-item][data-xh-collection-context='overlay']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]) {
582
+ --xh-_collection-bg: Canvas;
583
+ --xh-_collection-fg: CanvasText;
584
+ --xh-_collection-outline: transparent;
585
+ --xh-_collection-indicator-fg: Highlight;
586
+ }
587
+
588
+ [data-xh-collection-item][data-xh-collection-context='overlay']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
589
+ --xh-_collection-bg: Highlight;
590
+ --xh-_collection-fg: HighlightText;
591
+ --xh-_collection-outline: transparent;
592
+ --xh-_collection-indicator-fg: HighlightText;
593
+ }
594
+
595
+ [data-xh-collection-item][data-xh-collection-context='overlay']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
596
+ --xh-_collection-bg: Canvas;
597
+ --xh-_collection-fg: CanvasText;
598
+ --xh-_collection-outline: Highlight;
599
+ --xh-_collection-indicator-fg: Highlight;
600
+ }
601
+
602
+ [data-xh-collection-item][data-xh-collection-context='overlay']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
603
+ --xh-_collection-bg: Highlight;
604
+ --xh-_collection-fg: HighlightText;
605
+ --xh-_collection-outline: transparent;
606
+ --xh-_collection-indicator-fg: HighlightText;
607
+ }
608
+
609
+ [data-xh-collection-item][data-xh-collection-context='page']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]) {
610
+ --xh-_collection-bg: Highlight;
611
+ --xh-_collection-fg: HighlightText;
612
+ --xh-_collection-outline: transparent;
613
+ --xh-_collection-indicator-fg: HighlightText;
614
+ }
615
+
616
+ [data-xh-collection-item][data-xh-collection-context='page']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
617
+ --xh-_collection-bg: Highlight;
618
+ --xh-_collection-fg: HighlightText;
619
+ --xh-_collection-outline: transparent;
620
+ --xh-_collection-indicator-fg: HighlightText;
621
+ }
622
+
623
+ [data-xh-collection-item][data-xh-collection-context='page']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
624
+ --xh-_collection-bg: Highlight;
625
+ --xh-_collection-fg: HighlightText;
626
+ --xh-_collection-outline: HighlightText;
627
+ --xh-_collection-indicator-fg: HighlightText;
628
+ }
629
+
630
+ [data-xh-collection-item][data-xh-collection-context='page']:is([aria-selected='true'], [data-selected]):not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
631
+ --xh-_collection-bg: Highlight;
632
+ --xh-_collection-fg: HighlightText;
633
+ --xh-_collection-outline: transparent;
634
+ --xh-_collection-indicator-fg: HighlightText;
635
+ }
636
+
637
+ [data-xh-collection-item][data-xh-collection-context='page'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]) {
638
+ --xh-_collection-bg: Highlight;
639
+ --xh-_collection-fg: HighlightText;
640
+ --xh-_collection-outline: transparent;
641
+ --xh-_collection-indicator-fg: HighlightText;
642
+ }
643
+
644
+ [data-xh-collection-item][data-xh-collection-context='page'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
645
+ --xh-_collection-bg: Highlight;
646
+ --xh-_collection-fg: HighlightText;
647
+ --xh-_collection-outline: transparent;
648
+ --xh-_collection-indicator-fg: HighlightText;
649
+ }
650
+
651
+ [data-xh-collection-item][data-xh-collection-context='page'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
652
+ --xh-_collection-bg: Highlight;
653
+ --xh-_collection-fg: HighlightText;
654
+ --xh-_collection-outline: HighlightText;
655
+ --xh-_collection-indicator-fg: HighlightText;
656
+ }
657
+
658
+ [data-xh-collection-item][data-xh-collection-context='page'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
659
+ --xh-_collection-bg: Highlight;
660
+ --xh-_collection-fg: HighlightText;
661
+ --xh-_collection-outline: transparent;
662
+ --xh-_collection-indicator-fg: HighlightText;
663
+ }
664
+
665
+ [data-xh-collection-item][data-xh-collection-context='nav'] {
666
+ --xh-_collection-bg: Canvas;
667
+ --xh-_collection-fg: CanvasText;
668
+ --xh-_collection-outline: transparent;
669
+ --xh-_collection-indicator-fg: ButtonText;
670
+ }
671
+
672
+ [data-xh-collection-item][data-xh-collection-context='nav']:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
673
+ --xh-_collection-bg: Highlight;
674
+ --xh-_collection-fg: HighlightText;
675
+ --xh-_collection-outline: transparent;
676
+ --xh-_collection-indicator-fg: HighlightText;
677
+ }
678
+
679
+ [data-xh-collection-item][data-xh-collection-context='nav']:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
680
+ --xh-_collection-bg: Canvas;
681
+ --xh-_collection-fg: CanvasText;
682
+ --xh-_collection-outline: Highlight;
683
+ --xh-_collection-indicator-fg: Highlight;
684
+ }
685
+
686
+ [data-xh-collection-item][data-xh-collection-context='nav']:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
687
+ --xh-_collection-bg: Highlight;
688
+ --xh-_collection-fg: HighlightText;
689
+ --xh-_collection-outline: transparent;
690
+ --xh-_collection-indicator-fg: HighlightText;
691
+ }
692
+
693
+ [data-xh-collection-item][data-xh-collection-context='nav'][data-in-path] {
694
+ --xh-_collection-bg: Canvas;
695
+ --xh-_collection-fg: CanvasText;
696
+ --xh-_collection-outline: Highlight;
697
+ --xh-_collection-indicator-fg: Highlight;
698
+ }
699
+
700
+ [data-xh-collection-item][data-xh-collection-context='nav'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]) {
701
+ --xh-_collection-bg: Canvas;
702
+ --xh-_collection-fg: CanvasText;
703
+ --xh-_collection-outline: transparent;
704
+ --xh-_collection-indicator-fg: ButtonText;
705
+ }
706
+
707
+ [data-xh-collection-item][data-xh-collection-context='nav'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):hover {
708
+ --xh-_collection-bg: Highlight;
709
+ --xh-_collection-fg: HighlightText;
710
+ --xh-_collection-outline: transparent;
711
+ --xh-_collection-indicator-fg: HighlightText;
712
+ }
713
+
714
+ [data-xh-collection-item][data-xh-collection-context='nav'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:focus-visible, [data-highlighted]) {
715
+ --xh-_collection-bg: Canvas;
716
+ --xh-_collection-fg: CanvasText;
717
+ --xh-_collection-outline: Highlight;
718
+ --xh-_collection-indicator-fg: Highlight;
719
+ }
720
+
721
+ [data-xh-collection-item][data-xh-collection-context='nav'][data-current]:not([aria-disabled='true'], [data-disabled], [aria-busy='true'], [data-error]):is(:active, [data-pressed]) {
722
+ --xh-_collection-bg: Highlight;
723
+ --xh-_collection-fg: HighlightText;
724
+ --xh-_collection-outline: transparent;
725
+ --xh-_collection-indicator-fg: HighlightText;
726
+ }
727
+
728
+ [data-xh-collection-item][data-xh-collection-context='nav'][data-current][data-xh-collection-terminal] {
729
+ --xh-_collection-bg: Canvas;
730
+ --xh-_collection-fg: CanvasText;
731
+ --xh-_collection-outline: transparent;
732
+ --xh-_collection-indicator-fg: ButtonText;
733
+ }
734
+
735
+ [data-xh-collection-item][data-state='checked'] {
736
+ --xh-_collection-indicator-fg: Highlight;
737
+ }
738
+
739
+ [data-xh-collection-item][aria-disabled='true'] {
740
+ --xh-_collection-bg: Canvas;
741
+ --xh-_collection-fg: GrayText;
742
+ --xh-_collection-outline: transparent;
743
+ --xh-_collection-indicator-fg: GrayText;
744
+ }
745
+
746
+ [data-xh-collection-item][aria-busy='true'] {
747
+ --xh-_collection-bg: Canvas;
748
+ --xh-_collection-fg: CanvasText;
749
+ --xh-_collection-outline: Highlight;
750
+ --xh-_collection-indicator-fg: Highlight;
751
+ }
752
+
753
+ [data-xh-collection-item][data-error] {
754
+ --xh-_collection-bg: Canvas;
755
+ --xh-_collection-fg: CanvasText;
756
+ --xh-_collection-outline: Highlight;
757
+ --xh-_collection-indicator-fg: Highlight;
758
+ }
759
+
760
+ [data-xh-collection-separator] {
761
+ background-color: CanvasText;
762
+ }
763
+ }
764
+ }