@xihan-ui/styles 1.0.0 → 2.0.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 (171) hide show
  1. package/CHANGELOG.md +5146 -6
  2. package/README.md +22 -2
  3. package/component-tokens.d.ts +4212 -0
  4. package/component-tokens.js +2 -0
  5. package/components.tokens.json +80116 -0
  6. package/css/accordion.css +131 -75
  7. package/css/affix.css +16 -1
  8. package/css/alert.css +114 -67
  9. package/css/anchor.css +99 -27
  10. package/css/approval.css +461 -0
  11. package/css/avatar-group.css +14 -6
  12. package/css/avatar.css +33 -9
  13. package/css/back-top.css +103 -48
  14. package/css/badge.css +42 -14
  15. package/css/bar-code.css +62 -0
  16. package/css/breadcrumb.css +40 -21
  17. package/css/button-group.css +146 -24
  18. package/css/button.css +116 -99
  19. package/css/calendar-picker.css +448 -0
  20. package/css/calendar-range-picker.css +517 -0
  21. package/css/card.css +54 -77
  22. package/css/carousel.css +412 -68
  23. package/css/cascader.css +429 -246
  24. package/css/checkbox-group.css +225 -77
  25. package/css/checkbox.css +174 -37
  26. package/css/clipboard.css +266 -47
  27. package/css/code-view.css +279 -0
  28. package/css/collapsible.css +108 -63
  29. package/css/color-field.css +158 -0
  30. package/css/color-picker.css +172 -184
  31. package/css/color-slider.css +274 -0
  32. package/css/color-swatch-picker.css +243 -0
  33. package/css/color-swatch.css +35 -0
  34. package/css/combobox.css +267 -273
  35. package/css/command.css +399 -0
  36. package/css/context-menu.css +183 -108
  37. package/css/date-field.css +94 -121
  38. package/css/date-picker.css +486 -249
  39. package/css/date-range-picker.css +559 -0
  40. package/css/description.css +51 -0
  41. package/css/descriptions.css +133 -87
  42. package/css/dialog.css +247 -68
  43. package/css/diff-view.css +428 -0
  44. package/css/download-trigger.css +155 -46
  45. package/css/drawer.css +194 -111
  46. package/css/editable.css +172 -152
  47. package/css/empty-state.css +80 -11
  48. package/css/field-array.css +190 -0
  49. package/css/field.css +84 -31
  50. package/css/fieldset.css +51 -18
  51. package/css/file-upload.css +134 -36
  52. package/css/flex.css +20 -1
  53. package/css/float-button.css +238 -57
  54. package/css/floating-panel.css +173 -92
  55. package/css/focus.css +46 -0
  56. package/css/forced-colors.css +93 -0
  57. package/css/form.css +254 -77
  58. package/css/gradient-text.css +34 -10
  59. package/css/grid.css +516 -5
  60. package/css/heatmap.css +87 -29
  61. package/css/highlight.css +20 -5
  62. package/css/hover-card.css +97 -47
  63. package/css/icon-wrapper.css +15 -3
  64. package/css/icon.css +74 -8
  65. package/css/image-cropper.css +143 -29
  66. package/css/image-viewer.css +150 -89
  67. package/css/image.css +30 -1
  68. package/css/infinite-scroll.css +51 -1
  69. package/css/input-group.css +277 -0
  70. package/css/json-viewer.css +102 -45
  71. package/css/kbd.css +72 -0
  72. package/css/label.css +78 -0
  73. package/css/layers.css +5 -0
  74. package/css/layout.css +175 -31
  75. package/css/list.css +24 -3
  76. package/css/listbox.css +208 -67
  77. package/css/loading-bar.css +52 -3
  78. package/css/log.css +144 -9
  79. package/css/markdown-stream.css +149 -0
  80. package/css/marquee.css +27 -1
  81. package/css/masonry.css +7 -0
  82. package/css/matrix-code.css +67 -0
  83. package/css/mention.css +234 -152
  84. package/css/menu.css +180 -83
  85. package/css/menubar.css +204 -136
  86. package/css/message-feed.css +197 -0
  87. package/css/navigation-menu.css +144 -90
  88. package/css/notification.css +178 -100
  89. package/css/number-animation.css +7 -0
  90. package/css/number-field.css +120 -277
  91. package/css/overlay-arrow.css +12 -7
  92. package/css/page-header.css +99 -14
  93. package/css/pagination.css +175 -135
  94. package/css/password-input.css +222 -219
  95. package/css/pin-input.css +101 -67
  96. package/css/pointer.css +36 -0
  97. package/css/popconfirm.css +185 -94
  98. package/css/popover.css +121 -77
  99. package/css/progress.css +60 -12
  100. package/css/prompt-input.css +224 -0
  101. package/css/question-flow.css +513 -0
  102. package/css/radio-group.css +147 -30
  103. package/css/rating.css +193 -43
  104. package/css/reasoning.css +336 -0
  105. package/css/reset.css +84 -6
  106. package/css/resizable.css +237 -0
  107. package/css/scroll-area.css +68 -7
  108. package/css/scrollbar.css +47 -13
  109. package/css/segmented.css +94 -29
  110. package/css/select.css +288 -274
  111. package/css/separator.css +101 -1
  112. package/css/side-nav.css +133 -75
  113. package/css/signature-pad.css +74 -54
  114. package/css/skeleton.css +84 -11
  115. package/css/slider.css +132 -39
  116. package/css/sortable.css +198 -0
  117. package/css/spinner.css +126 -12
  118. package/css/splitter.css +29 -8
  119. package/css/statistic.css +55 -0
  120. package/css/steps.css +206 -72
  121. package/css/switch.css +268 -36
  122. package/css/table.css +695 -118
  123. package/css/tabs.css +604 -42
  124. package/css/tag-group.css +219 -0
  125. package/css/tag.css +118 -28
  126. package/css/tags-input.css +156 -274
  127. package/css/text-field.css +101 -249
  128. package/css/time-field.css +100 -128
  129. package/css/time-picker.css +323 -252
  130. package/css/time-range-picker.css +719 -0
  131. package/css/timeline.css +202 -68
  132. package/css/timer.css +56 -52
  133. package/css/timestamp.css +34 -0
  134. package/css/toast.css +373 -144
  135. package/css/toggle-group.css +309 -76
  136. package/css/toggle.css +116 -85
  137. package/css/tone.css +47 -0
  138. package/css/tool-call.css +421 -0
  139. package/css/toolbar.css +181 -33
  140. package/css/tooltip.css +107 -36
  141. package/css/tour.css +183 -152
  142. package/css/transfer.css +351 -138
  143. package/css/tree-select.css +323 -216
  144. package/css/tree.css +294 -62
  145. package/css/truncate.css +65 -0
  146. package/css/typography.css +228 -5
  147. package/css/undefined.css +10 -1
  148. package/css/virtualizer.css +9 -10
  149. package/css/visually-hidden.css +7 -0
  150. package/css/watermark.css +7 -0
  151. package/family/action-control.css +487 -0
  152. package/family/collection-item.css +721 -0
  153. package/family/field-chrome.css +298 -0
  154. package/family/motion.css +166 -0
  155. package/family/swatch.css +59 -0
  156. package/index.css +41705 -126
  157. package/index.unlayered.css +33692 -17339
  158. package/package.json +51 -17
  159. package/css/calendar.css +0 -367
  160. package/css/code-block.css +0 -91
  161. package/css/composer.css +0 -134
  162. package/css/countdown.css +0 -26
  163. package/css/dynamic-input.css +0 -220
  164. package/css/ellipsis.css +0 -52
  165. package/css/hotkeys.css +0 -90
  166. package/css/popselect.css +0 -391
  167. package/css/qr-code.css +0 -55
  168. package/css/result.css +0 -119
  169. package/css/space.css +0 -117
  170. package/css/thread.css +0 -120
  171. package/css/time.css +0 -25
@@ -0,0 +1,487 @@
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/action-control-recipe.mjs — do not edit. */
7
+ @layer xihan.components {
8
+ [data-xh-action-control] {
9
+ --xh-_action-current-highlight: var(--xh-action-highlight-rest, transparent);
10
+ --xh-_action-variant-bg-rest: var(--xh-_tone-subtle, var(--xh-bg-subtle));
11
+ --xh-_action-variant-fg-rest: var(--xh-_tone-fg, var(--xh-fg-default));
12
+ --xh-_action-variant-border-rest: transparent;
13
+ --xh-_action-variant-bg-hover: var(--xh-_tone-subtle-hover, var(--xh-bg-subtle-hover));
14
+ --xh-_action-variant-fg-hover: var(--xh-_tone-fg, var(--xh-fg-default));
15
+ --xh-_action-variant-border-hover: transparent;
16
+ --xh-_action-variant-bg-pressed: var(--xh-_tone-subtle-active, var(--xh-bg-subtle-active));
17
+ --xh-_action-variant-fg-pressed: var(--xh-_tone-fg, var(--xh-fg-default));
18
+ --xh-_action-variant-border-pressed: transparent;
19
+ --xh-_action-variant-bg-focus-visible: var(--xh-_tone-subtle, var(--xh-bg-subtle));
20
+ --xh-_action-variant-fg-focus-visible: var(--xh-_tone-fg, var(--xh-fg-default));
21
+ --xh-_action-variant-border-focus-visible: transparent;
22
+ --xh-_action-variant-bg-disabled: var(--xh-bg-subtle);
23
+ --xh-_action-variant-fg-disabled: var(--xh-fg-disabled);
24
+ --xh-_action-variant-border-disabled: transparent;
25
+ --xh-_action-variant-bg-loading: var(--xh-_tone-subtle, var(--xh-bg-subtle));
26
+ --xh-_action-variant-fg-loading: var(--xh-_tone-fg, var(--xh-fg-default));
27
+ --xh-_action-variant-border-loading: transparent;
28
+
29
+ position: relative;
30
+ display: inline-flex;
31
+ flex-direction: row;
32
+ align-items: center;
33
+ justify-content: center;
34
+ gap: var(--xh-action-gap, var(--xh-_action-profile-gap));
35
+ block-size: var(--xh-action-visual-size, var(--xh-_action-profile-visual-size));
36
+ min-inline-size: var(--xh-action-min-inline-size, var(--xh-_action-profile-visual-size));
37
+ padding-inline: var(--xh-action-padding-inline, var(--xh-_action-profile-padding-inline));
38
+ border: var(--xh-stroke-thin) solid var(--xh-action-border-rest, var(--xh-_action-variant-border-rest));
39
+ border-radius: var(--xh-action-radius, var(--xh-_action-profile-radius));
40
+ background-color: var(--xh-action-bg-rest, var(--xh-_action-variant-bg-rest));
41
+ background-image: linear-gradient(
42
+ to bottom,
43
+ var(--xh-_action-current-highlight) 0 var(--xh-stroke-thin),
44
+ transparent var(--xh-stroke-thin)
45
+ );
46
+ color: var(--xh-action-fg-rest, var(--xh-_action-variant-fg-rest));
47
+ box-shadow: var(--xh-action-shadow-rest, none);
48
+ font-size: var(--xh-action-font-size, var(--xh-_action-profile-font-size));
49
+ line-height: var(--xh-leading-none);
50
+ white-space: nowrap;
51
+ cursor: var(--xh-action-cursor-rest, pointer);
52
+ opacity: var(--xh-action-opacity-rest, 1);
53
+ user-select: none;
54
+ transition:
55
+ background-color var(--xh-motion-duration-micro) var(--xh-motion-ease-enter),
56
+ border-color var(--xh-motion-duration-micro) var(--xh-motion-ease-enter),
57
+ box-shadow var(--xh-motion-duration-micro) var(--xh-motion-ease-enter),
58
+ opacity var(--xh-motion-duration-micro) var(--xh-motion-ease-enter),
59
+ scale var(--xh-motion-duration-release) var(--xh-motion-ease-release);
60
+ }
61
+
62
+ [data-xh-action-control][data-xh-action-variant='solid'] {
63
+ --xh-_action-variant-bg-rest: var(--xh-_tone, var(--xh-bg-brand));
64
+ --xh-_action-variant-fg-rest: var(--xh-_tone-on, var(--xh-fg-on-brand));
65
+ --xh-_action-variant-border-rest: transparent;
66
+ --xh-_action-variant-bg-hover: var(--xh-_tone-hover, var(--xh-bg-brand-hover));
67
+ --xh-_action-variant-fg-hover: var(--xh-_tone-on, var(--xh-fg-on-brand));
68
+ --xh-_action-variant-border-hover: transparent;
69
+ --xh-_action-variant-bg-pressed: var(--xh-_tone-active, var(--xh-bg-brand-active));
70
+ --xh-_action-variant-fg-pressed: var(--xh-_tone-on, var(--xh-fg-on-brand));
71
+ --xh-_action-variant-border-pressed: transparent;
72
+ --xh-_action-variant-bg-focus-visible: var(--xh-_tone, var(--xh-bg-brand));
73
+ --xh-_action-variant-fg-focus-visible: var(--xh-_tone-on, var(--xh-fg-on-brand));
74
+ --xh-_action-variant-border-focus-visible: transparent;
75
+ --xh-_action-variant-bg-disabled: var(--xh-bg-subtle);
76
+ --xh-_action-variant-fg-disabled: var(--xh-fg-disabled);
77
+ --xh-_action-variant-border-disabled: transparent;
78
+ --xh-_action-variant-bg-loading: var(--xh-_tone, var(--xh-bg-brand));
79
+ --xh-_action-variant-fg-loading: var(--xh-_tone-on, var(--xh-fg-on-brand));
80
+ --xh-_action-variant-border-loading: transparent;
81
+ }
82
+
83
+ [data-xh-action-control][data-xh-action-variant='subtle'] {
84
+ --xh-_action-variant-bg-rest: var(--xh-_tone-subtle, var(--xh-bg-subtle));
85
+ --xh-_action-variant-fg-rest: var(--xh-_tone-fg, var(--xh-fg-default));
86
+ --xh-_action-variant-border-rest: transparent;
87
+ --xh-_action-variant-bg-hover: var(--xh-_tone-subtle-hover, var(--xh-bg-subtle-hover));
88
+ --xh-_action-variant-fg-hover: var(--xh-_tone-fg, var(--xh-fg-default));
89
+ --xh-_action-variant-border-hover: transparent;
90
+ --xh-_action-variant-bg-pressed: var(--xh-_tone-subtle-active, var(--xh-bg-subtle-active));
91
+ --xh-_action-variant-fg-pressed: var(--xh-_tone-fg, var(--xh-fg-default));
92
+ --xh-_action-variant-border-pressed: transparent;
93
+ --xh-_action-variant-bg-focus-visible: var(--xh-_tone-subtle, var(--xh-bg-subtle));
94
+ --xh-_action-variant-fg-focus-visible: var(--xh-_tone-fg, var(--xh-fg-default));
95
+ --xh-_action-variant-border-focus-visible: transparent;
96
+ --xh-_action-variant-bg-disabled: var(--xh-bg-subtle);
97
+ --xh-_action-variant-fg-disabled: var(--xh-fg-disabled);
98
+ --xh-_action-variant-border-disabled: transparent;
99
+ --xh-_action-variant-bg-loading: var(--xh-_tone-subtle, var(--xh-bg-subtle));
100
+ --xh-_action-variant-fg-loading: var(--xh-_tone-fg, var(--xh-fg-default));
101
+ --xh-_action-variant-border-loading: transparent;
102
+ }
103
+
104
+ [data-xh-action-control][data-xh-action-variant='outline'] {
105
+ --xh-_action-variant-bg-rest: transparent;
106
+ --xh-_action-variant-fg-rest: var(--xh-_tone-fg, var(--xh-fg-default));
107
+ --xh-_action-variant-border-rest: var(--xh-_tone-border-control, var(--xh-border-control));
108
+ --xh-_action-variant-bg-hover: var(--xh-_tone-subtle, var(--xh-action-host-bg-hover, var(--xh-bg-subtle)));
109
+ --xh-_action-variant-fg-hover: var(--xh-_tone-fg, var(--xh-fg-default));
110
+ --xh-_action-variant-border-hover: var(--xh-_tone-border-control, var(--xh-border-control-hover));
111
+ --xh-_action-variant-bg-pressed: var(--xh-_tone-subtle-hover, var(--xh-action-host-bg-pressed, var(--xh-bg-subtle-hover)));
112
+ --xh-_action-variant-fg-pressed: var(--xh-_tone-fg, var(--xh-fg-default));
113
+ --xh-_action-variant-border-pressed: var(--xh-_tone-border-control, var(--xh-border-control-hover));
114
+ --xh-_action-variant-bg-focus-visible: transparent;
115
+ --xh-_action-variant-fg-focus-visible: var(--xh-_tone-fg, var(--xh-fg-default));
116
+ --xh-_action-variant-border-focus-visible: var(--xh-_tone-border-control, var(--xh-border-control));
117
+ --xh-_action-variant-bg-disabled: transparent;
118
+ --xh-_action-variant-fg-disabled: var(--xh-fg-disabled);
119
+ --xh-_action-variant-border-disabled: var(--xh-border-subtle);
120
+ --xh-_action-variant-bg-loading: transparent;
121
+ --xh-_action-variant-fg-loading: var(--xh-_tone-fg, var(--xh-fg-default));
122
+ --xh-_action-variant-border-loading: var(--xh-_tone-border-control, var(--xh-border-control));
123
+ }
124
+
125
+ [data-xh-action-control][data-xh-action-variant='ghost'] {
126
+ --xh-_action-variant-bg-rest: transparent;
127
+ --xh-_action-variant-fg-rest: var(--xh-_tone-fg, var(--xh-fg-default));
128
+ --xh-_action-variant-border-rest: transparent;
129
+ --xh-_action-variant-bg-hover: var(--xh-_tone-subtle, var(--xh-action-host-bg-hover, var(--xh-bg-subtle)));
130
+ --xh-_action-variant-fg-hover: var(--xh-_tone-fg, var(--xh-fg-default));
131
+ --xh-_action-variant-border-hover: transparent;
132
+ --xh-_action-variant-bg-pressed: var(--xh-_tone-subtle-hover, var(--xh-action-host-bg-pressed, var(--xh-bg-subtle-hover)));
133
+ --xh-_action-variant-fg-pressed: var(--xh-_tone-fg, var(--xh-fg-default));
134
+ --xh-_action-variant-border-pressed: transparent;
135
+ --xh-_action-variant-bg-focus-visible: transparent;
136
+ --xh-_action-variant-fg-focus-visible: var(--xh-_tone-fg, var(--xh-fg-default));
137
+ --xh-_action-variant-border-focus-visible: transparent;
138
+ --xh-_action-variant-bg-disabled: transparent;
139
+ --xh-_action-variant-fg-disabled: var(--xh-fg-disabled);
140
+ --xh-_action-variant-border-disabled: transparent;
141
+ --xh-_action-variant-bg-loading: transparent;
142
+ --xh-_action-variant-fg-loading: var(--xh-_tone-fg, var(--xh-fg-default));
143
+ --xh-_action-variant-border-loading: transparent;
144
+ }
145
+
146
+ :is([data-theme='dark'] *, [data-theme='dark'])[data-xh-action-control][data-xh-action-variant='solid']:is(:not([data-tone]), [data-tone='brand']) {
147
+ --xh-_action-variant-bg-rest: var(--xh-action-brand-solid);
148
+ --xh-_action-variant-bg-hover: var(--xh-action-brand-solid-hover);
149
+ --xh-_action-variant-bg-pressed: var(--xh-action-brand-solid-active);
150
+ --xh-_action-variant-bg-focus-visible: var(--xh-action-brand-solid);
151
+ --xh-_action-variant-bg-loading: var(--xh-action-brand-solid);
152
+ --xh-_action-variant-fg-rest: var(--xh-action-on-brand-solid);
153
+ --xh-_action-variant-fg-hover: var(--xh-action-on-brand-solid);
154
+ --xh-_action-variant-fg-pressed: var(--xh-action-on-brand-solid);
155
+ --xh-_action-variant-fg-focus-visible: var(--xh-action-on-brand-solid);
156
+ --xh-_action-variant-fg-loading: var(--xh-action-on-brand-solid);
157
+ }
158
+
159
+ [data-xh-action-control][data-xh-action-size='xs'] {
160
+ --xh-_action-profile-visual-size: 24px;
161
+ --xh-_action-profile-padding-inline: var(--xh-space-1);
162
+ --xh-_action-profile-padding-block: 0;
163
+ --xh-_action-profile-gap: var(--xh-space-1);
164
+ --xh-_action-profile-glyph-size: var(--xh-glyph-size-sm);
165
+ --xh-_action-profile-font-size: var(--xh-control-font-sm);
166
+ }
167
+
168
+ [data-xh-action-control][data-xh-action-size='sm'] {
169
+ --xh-_action-profile-visual-size: var(--xh-control-h-sm);
170
+ --xh-_action-profile-padding-inline: var(--xh-control-px-sm);
171
+ --xh-_action-profile-padding-block: 0;
172
+ --xh-_action-profile-gap: var(--xh-control-gap-sm);
173
+ --xh-_action-profile-glyph-size: var(--xh-glyph-size-sm);
174
+ --xh-_action-profile-font-size: var(--xh-control-font-sm);
175
+ }
176
+
177
+ [data-xh-action-control][data-xh-action-size='md'] {
178
+ --xh-_action-profile-visual-size: var(--xh-control-h-md);
179
+ --xh-_action-profile-padding-inline: var(--xh-control-px-md);
180
+ --xh-_action-profile-padding-block: 0;
181
+ --xh-_action-profile-gap: var(--xh-control-gap-md);
182
+ --xh-_action-profile-glyph-size: var(--xh-glyph-size-md);
183
+ --xh-_action-profile-font-size: var(--xh-control-font-md);
184
+ }
185
+
186
+ [data-xh-action-control][data-xh-action-size='lg'] {
187
+ --xh-_action-profile-visual-size: var(--xh-control-h-lg);
188
+ --xh-_action-profile-padding-inline: var(--xh-control-px-lg);
189
+ --xh-_action-profile-padding-block: 0;
190
+ --xh-_action-profile-gap: var(--xh-control-gap-lg);
191
+ --xh-_action-profile-glyph-size: var(--xh-glyph-size-lg);
192
+ --xh-_action-profile-font-size: var(--xh-control-font-lg);
193
+ }
194
+
195
+ [data-xh-action-control][data-xh-action-profile='text'] {
196
+ --xh-_action-profile-radius: var(--xh-shape-control);
197
+ --xh-_action-profile-padding-block: 0;
198
+ }
199
+
200
+ [data-xh-action-control][data-xh-action-profile='icon'] {
201
+ --xh-_action-profile-radius: var(--xh-shape-control);
202
+ --xh-_action-profile-padding-inline: 0;
203
+ --xh-_action-profile-padding-block: 0;
204
+ --xh-_action-profile-gap: 0;
205
+ flex: none;
206
+ inline-size: var(--xh-action-visual-size, var(--xh-_action-profile-visual-size));
207
+ }
208
+
209
+ [data-xh-action-control][data-xh-action-profile='field-inset'] {
210
+ --xh-_action-profile-radius: var(--xh-shape-inset);
211
+ --xh-_action-profile-padding-inline: 0;
212
+ --xh-_action-profile-padding-block: 0;
213
+ --xh-_action-profile-gap: 0;
214
+ flex: none;
215
+ inline-size: var(--xh-action-visual-size, var(--xh-_action-profile-visual-size));
216
+ }
217
+
218
+ [data-xh-action-control][data-xh-action-profile='field-inset'][data-xh-action-size='xs'] {
219
+ --xh-_action-profile-glyph-size: 12px;
220
+ --xh-_action-profile-font-size: var(--xh-control-caption-sm);
221
+ }
222
+
223
+ [data-xh-action-control][data-xh-action-profile='field-inset'][data-xh-action-size='sm'] {
224
+ --xh-_action-profile-visual-size: 24px;
225
+ --xh-_action-profile-glyph-size: 14px;
226
+ --xh-_action-profile-font-size: var(--xh-control-caption-sm);
227
+ }
228
+
229
+ [data-xh-action-control][data-xh-action-profile='field-inset'][data-xh-action-size='md'] {
230
+ --xh-_action-profile-visual-size: var(--xh-control-h-sm);
231
+ --xh-_action-profile-glyph-size: var(--xh-glyph-size-sm);
232
+ --xh-_action-profile-font-size: var(--xh-control-caption-md);
233
+ }
234
+
235
+ [data-xh-action-control][data-xh-action-profile='field-inset'][data-xh-action-size='lg'] {
236
+ --xh-_action-profile-visual-size: var(--xh-control-h-md);
237
+ --xh-_action-profile-glyph-size: var(--xh-glyph-size-md);
238
+ --xh-_action-profile-font-size: var(--xh-control-caption-lg);
239
+ }
240
+
241
+ [data-xh-action-control][data-xh-action-profile='floating'] {
242
+ --xh-_action-profile-radius: var(--xh-shape-circle);
243
+ --xh-_action-profile-padding-inline: 0;
244
+ --xh-_action-profile-padding-block: 0;
245
+ --xh-_action-profile-gap: 0;
246
+ flex: none;
247
+ inline-size: var(--xh-action-visual-size, var(--xh-_action-profile-visual-size));
248
+ }
249
+
250
+ [data-xh-action-control][data-xh-action-profile='floating'][data-xh-action-size='xs'] {
251
+ --xh-_action-profile-visual-size: var(--xh-control-box-sm);
252
+ }
253
+
254
+ [data-xh-action-control][data-xh-action-profile='floating'][data-xh-action-size='sm'] {
255
+ --xh-_action-profile-visual-size: var(--xh-control-box-md);
256
+ --xh-_action-profile-glyph-size: var(--xh-glyph-size-md);
257
+ --xh-_action-profile-font-size: var(--xh-control-font-md);
258
+ }
259
+
260
+ [data-xh-action-control][data-xh-action-profile='floating'][data-xh-action-size='md'] {
261
+ --xh-_action-profile-visual-size: var(--xh-control-box-lg);
262
+ --xh-_action-profile-glyph-size: var(--xh-glyph-size-lg);
263
+ --xh-_action-profile-font-size: var(--xh-control-font-lg);
264
+ }
265
+
266
+ [data-xh-action-control][data-xh-action-profile='floating'][data-xh-action-size='lg'] {
267
+ --xh-_action-profile-visual-size: calc(var(--xh-control-box-lg) + var(--xh-space-2));
268
+ --xh-_action-profile-glyph-size: var(--xh-glyph-size-xl);
269
+ }
270
+
271
+ [data-xh-action-control][data-xh-action-profile='row'] {
272
+ --xh-_action-profile-radius: var(--xh-shape-control);
273
+ display: flex;
274
+ justify-content: start;
275
+ inline-size: 100%;
276
+ block-size: auto;
277
+ min-block-size: var(--xh-action-visual-size, var(--xh-_action-profile-visual-size));
278
+ padding-block: var(--xh-action-padding-block, var(--xh-_action-profile-padding-block));
279
+ white-space: normal;
280
+ text-align: start;
281
+ }
282
+
283
+ [data-xh-action-control][data-xh-action-profile='row'][data-xh-action-size='xs'] {
284
+ --xh-_action-profile-padding-block: var(--xh-list-option-py-sm);
285
+ }
286
+
287
+ [data-xh-action-control][data-xh-action-profile='row'][data-xh-action-size='sm'] {
288
+ --xh-_action-profile-padding-block: var(--xh-list-option-py-sm);
289
+ }
290
+
291
+ [data-xh-action-control][data-xh-action-profile='row'][data-xh-action-size='md'] {
292
+ --xh-_action-profile-padding-block: var(--xh-list-option-py-md);
293
+ }
294
+
295
+ [data-xh-action-control][data-xh-action-profile='row'][data-xh-action-size='lg'] {
296
+ --xh-_action-profile-padding-block: var(--xh-list-option-py-lg);
297
+ }
298
+
299
+ [data-xh-action-control][data-xh-action-profile='disclosure-trigger'] {
300
+ --xh-_action-profile-radius: var(--xh-shape-control);
301
+ display: flex;
302
+ justify-content: space-between;
303
+ inline-size: 100%;
304
+ block-size: auto;
305
+ min-block-size: var(--xh-action-visual-size, var(--xh-_action-profile-visual-size));
306
+ padding-block: var(--xh-action-padding-block, var(--xh-_action-profile-padding-block));
307
+ white-space: normal;
308
+ text-align: start;
309
+ }
310
+
311
+ [data-xh-action-control][data-xh-action-profile='disclosure-trigger'][data-xh-action-size='xs'] {
312
+ --xh-_action-profile-padding-inline: var(--xh-space-2);
313
+ --xh-_action-profile-padding-block: var(--xh-space-2);
314
+ }
315
+
316
+ [data-xh-action-control][data-xh-action-profile='disclosure-trigger'][data-xh-action-size='sm'] {
317
+ --xh-_action-profile-padding-inline: var(--xh-space-3);
318
+ --xh-_action-profile-padding-block: var(--xh-space-3);
319
+ }
320
+
321
+ [data-xh-action-control][data-xh-action-profile='disclosure-trigger'][data-xh-action-size='md'] {
322
+ --xh-_action-profile-padding-inline: var(--xh-space-4);
323
+ --xh-_action-profile-padding-block: var(--xh-space-4);
324
+ }
325
+
326
+ [data-xh-action-control][data-xh-action-profile='disclosure-trigger'][data-xh-action-size='lg'] {
327
+ --xh-_action-profile-padding-inline: var(--xh-space-5);
328
+ --xh-_action-profile-padding-block: var(--xh-space-5);
329
+ }
330
+
331
+ [data-xh-action-control]:focus-visible {
332
+ background-color: var(--xh-action-bg-focus-visible, var(--xh-_action-variant-bg-focus-visible));
333
+ color: var(--xh-action-fg-focus-visible, var(--xh-_action-variant-fg-focus-visible));
334
+ border-color: var(--xh-action-border-focus-visible, var(--xh-_action-variant-border-focus-visible));
335
+ --xh-_action-current-highlight: var(--xh-action-highlight-focus-visible, transparent);
336
+ box-shadow: var(--xh-action-shadow-focus-visible, none);
337
+ opacity: var(--xh-action-opacity-focus-visible, 1);
338
+ cursor: var(--xh-action-cursor-focus-visible, pointer);
339
+ scale: var(--xh-action-scale-focus-visible, none);
340
+ --xh-_ring-color: var(--xh-action-ring-color-focus-visible, var(--xh-ring-focus));
341
+ }
342
+
343
+ [data-xh-action-control]:not([data-disabled]):not([data-loading]):hover {
344
+ background-color: var(--xh-action-bg-hover, var(--xh-_action-variant-bg-hover));
345
+ color: var(--xh-action-fg-hover, var(--xh-_action-variant-fg-hover));
346
+ border-color: var(--xh-action-border-hover, var(--xh-_action-variant-border-hover));
347
+ --xh-_action-current-highlight: var(--xh-action-highlight-hover, transparent);
348
+ box-shadow: var(--xh-action-shadow-hover, none);
349
+ opacity: var(--xh-action-opacity-hover, 1);
350
+ cursor: var(--xh-action-cursor-hover, pointer);
351
+ scale: var(--xh-action-scale-hover, none);
352
+ }
353
+
354
+ [data-xh-action-control]:not([data-disabled]):not([data-loading]):is(:active, [data-pressed]) {
355
+ background-color: var(--xh-action-bg-pressed, var(--xh-_action-variant-bg-pressed));
356
+ color: var(--xh-action-fg-pressed, var(--xh-_action-variant-fg-pressed));
357
+ border-color: var(--xh-action-border-pressed, var(--xh-_action-variant-border-pressed));
358
+ --xh-_action-current-highlight: var(--xh-action-highlight-pressed, transparent);
359
+ box-shadow: var(--xh-action-shadow-pressed, none);
360
+ opacity: var(--xh-action-opacity-pressed, 1);
361
+ cursor: var(--xh-action-cursor-pressed, pointer);
362
+ scale: var(--xh-action-scale-pressed, var(--xh-motion-scale-press));
363
+ transition-duration: var(--xh-motion-duration-press);
364
+ transition-timing-function: var(--xh-motion-ease-press);
365
+ }
366
+
367
+ [data-xh-action-control]:is([data-xh-action-profile='row'], [data-xh-action-profile='disclosure-trigger']):not([data-disabled]):not([data-loading]):is(:active, [data-pressed]) {
368
+ scale: none;
369
+ }
370
+
371
+ [data-xh-action-control][data-disabled] {
372
+ background-color: var(--xh-action-bg-disabled, var(--xh-_action-variant-bg-disabled));
373
+ color: var(--xh-action-fg-disabled, var(--xh-_action-variant-fg-disabled));
374
+ border-color: var(--xh-action-border-disabled, var(--xh-_action-variant-border-disabled));
375
+ --xh-_action-current-highlight: var(--xh-action-highlight-disabled, transparent);
376
+ box-shadow: var(--xh-action-shadow-disabled, none);
377
+ opacity: var(--xh-action-opacity-disabled, 1);
378
+ cursor: var(--xh-action-cursor-disabled, not-allowed);
379
+ scale: var(--xh-action-scale-disabled, none);
380
+ }
381
+
382
+ [data-xh-action-control][data-loading][aria-disabled='true'] {
383
+ background-color: var(--xh-action-bg-loading, var(--xh-_action-variant-bg-loading));
384
+ color: var(--xh-action-fg-loading, var(--xh-_action-variant-fg-loading));
385
+ border-color: var(--xh-action-border-loading, var(--xh-_action-variant-border-loading));
386
+ --xh-_action-current-highlight: var(--xh-action-highlight-loading, transparent);
387
+ box-shadow: var(--xh-action-shadow-loading, none);
388
+ opacity: var(--xh-action-opacity-loading, 1);
389
+ cursor: var(--xh-action-cursor-loading, progress);
390
+ scale: var(--xh-action-scale-loading, none);
391
+ }
392
+
393
+ [data-xh-action-control][data-xh-action-display='always'] {
394
+ visibility: visible;
395
+ }
396
+
397
+ [data-xh-action-control][data-xh-action-display='has-value']:not([data-xh-action-has-value]) {
398
+ visibility: hidden;
399
+ pointer-events: none;
400
+ }
401
+
402
+ [data-xh-action-control][data-xh-action-display='has-value'][data-xh-action-has-value] {
403
+ visibility: visible;
404
+ }
405
+
406
+ [data-xh-action-control][data-xh-action-display='hover-focus'] {
407
+ visibility: visible;
408
+ }
409
+
410
+ @media (hover: hover) and (pointer: fine) {
411
+ [data-xh-action-control][data-xh-action-display='hover-focus'] {
412
+ visibility: hidden;
413
+ opacity: 0;
414
+ pointer-events: none;
415
+ }
416
+
417
+ :where([data-xh-action-owner]:hover, [data-xh-action-owner]:focus-within) [data-xh-action-control][data-xh-action-display='hover-focus'],
418
+ [data-xh-action-control][data-xh-action-display='hover-focus']:focus-visible {
419
+ visibility: visible;
420
+ opacity: 1;
421
+ pointer-events: auto;
422
+ }
423
+ }
424
+
425
+ @media (pointer: coarse) {
426
+ :where([data-xh-action-control]:is([data-xh-action-profile='text'], [data-xh-action-profile='row'], [data-xh-action-profile='disclosure-trigger']))::after {
427
+ content: '';
428
+ position: absolute;
429
+ inset-block-start: 50%;
430
+ inset-inline-start: 50%;
431
+ min-block-size: 44px;
432
+ inline-size: 100%;
433
+ block-size: 100%;
434
+ translate: -50% -50%;
435
+ }
436
+ :where([data-xh-action-control]:is([data-xh-action-profile='icon'], [data-xh-action-profile='field-inset'], [data-xh-action-profile='floating']))::after {
437
+ content: '';
438
+ position: absolute;
439
+ inset-block-start: 50%;
440
+ inset-inline-start: 50%;
441
+ min-inline-size: 44px;
442
+ min-block-size: 44px;
443
+ inline-size: 100%;
444
+ block-size: 100%;
445
+ translate: -50% -50%;
446
+ }
447
+ :where([data-xh-action-control]:dir(rtl))::after {
448
+ translate: 50% -50%;
449
+ }
450
+ }
451
+
452
+ @media (forced-colors: active) {
453
+ [data-xh-action-control] {
454
+ background-color: ButtonFace;
455
+ color: ButtonText;
456
+ border-color: ButtonText;
457
+ background-image: none;
458
+ box-shadow: none;
459
+ opacity: 1;
460
+ }
461
+
462
+ [data-xh-action-control]:focus-visible {
463
+ outline-color: Highlight;
464
+ }
465
+
466
+ [data-xh-action-control]:not([data-disabled]):not([data-loading]):hover {
467
+ background-color: Highlight;
468
+ color: HighlightText;
469
+ border-color: Highlight;
470
+ }
471
+
472
+ [data-xh-action-control]:not([data-disabled]):not([data-loading]):is(:active, [data-pressed]) {
473
+ background-color: Highlight;
474
+ color: HighlightText;
475
+ border-color: Highlight;
476
+ }
477
+
478
+ [data-xh-action-control][data-disabled] {
479
+ color: GrayText;
480
+ border-color: GrayText;
481
+ }
482
+
483
+ [data-xh-action-control][data-loading][aria-disabled='true'] {
484
+ border-style: dashed;
485
+ }
486
+ }
487
+ }