@godxjp/ui 20.0.0 → 20.1.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 (250) hide show
  1. package/README.md +8 -2
  2. package/dist/app/theme-axes.d.ts +2 -0
  3. package/dist/app/theme-axes.js +45 -0
  4. package/dist/components/charts/chart-cartesian.d.ts +2 -1
  5. package/dist/components/charts/chart-cartesian.js +52 -3
  6. package/dist/components/charts/chart-category-axis.d.ts +55 -0
  7. package/dist/components/charts/chart-category-axis.js +93 -0
  8. package/dist/components/charts/chart-frame.d.ts +10 -1
  9. package/dist/components/charts/chart-frame.js +19 -3
  10. package/dist/components/charts/compact-bar-trend.d.ts +1 -1
  11. package/dist/components/charts/compact-bar-trend.js +2 -0
  12. package/dist/components/charts/pie-chart.d.ts +1 -1
  13. package/dist/components/charts/pie-chart.js +12 -1
  14. package/dist/components/charts/recharts-peer.d.ts +49 -0
  15. package/dist/components/charts/recharts-peer.js +45 -0
  16. package/dist/components/data-display/card.d.ts +12 -1
  17. package/dist/components/data-display/card.js +22 -4
  18. package/dist/components/data-display/code-block.js +6 -2
  19. package/dist/components/data-display/data-table.d.ts +39 -4
  20. package/dist/components/data-display/data-table.js +802 -270
  21. package/dist/components/data-display/descriptions.d.ts +27 -6
  22. package/dist/components/data-display/descriptions.js +58 -17
  23. package/dist/components/data-display/index.d.ts +2 -0
  24. package/dist/components/data-display/index.js +2 -0
  25. package/dist/components/data-display/list-row.d.ts +10 -1
  26. package/dist/components/data-display/list-row.js +7 -1
  27. package/dist/components/data-display/popover.d.ts +2 -2
  28. package/dist/components/data-display/popover.js +61 -11
  29. package/dist/components/data-display/range-timeline.d.ts +38 -0
  30. package/dist/components/data-display/range-timeline.js +161 -0
  31. package/dist/components/data-display/scroll-area.js +13 -2
  32. package/dist/components/data-display/service-launcher-card.js +10 -10
  33. package/dist/components/data-display/table.d.ts +11 -3
  34. package/dist/components/data-display/table.js +48 -18
  35. package/dist/components/data-display/tree-list.js +4 -9
  36. package/dist/components/data-entry/calendar.d.ts +2 -2
  37. package/dist/components/data-entry/calendar.js +12 -1
  38. package/dist/components/data-entry/cascader.d.ts +1 -1
  39. package/dist/components/data-entry/cascader.js +188 -24
  40. package/dist/components/data-entry/color-picker.d.ts +1 -1
  41. package/dist/components/data-entry/color-picker.js +17 -5
  42. package/dist/components/data-entry/control-appearance.d.ts +64 -0
  43. package/dist/components/data-entry/control-appearance.js +39 -0
  44. package/dist/components/data-entry/control-surface.d.ts +61 -0
  45. package/dist/components/data-entry/control-surface.js +39 -0
  46. package/dist/components/data-entry/date-picker.d.ts +1 -1
  47. package/dist/components/data-entry/date-picker.js +344 -113
  48. package/dist/components/data-entry/date-range-picker.d.ts +1 -1
  49. package/dist/components/data-entry/date-range-picker.js +278 -140
  50. package/dist/components/data-entry/form-field.d.ts +1 -1
  51. package/dist/components/data-entry/form-field.js +39 -4
  52. package/dist/components/data-entry/form.d.ts +4 -0
  53. package/dist/components/data-entry/form.js +4 -2
  54. package/dist/components/data-entry/index.d.ts +7 -3
  55. package/dist/components/data-entry/index.js +10 -1
  56. package/dist/components/data-entry/input-otp.d.ts +1 -1
  57. package/dist/components/data-entry/input.d.ts +12 -34
  58. package/dist/components/data-entry/input.js +92 -24
  59. package/dist/components/data-entry/month-picker.d.ts +1 -1
  60. package/dist/components/data-entry/month-picker.js +47 -10
  61. package/dist/components/data-entry/month-range-picker.d.ts +1 -1
  62. package/dist/components/data-entry/month-range-picker.js +51 -11
  63. package/dist/components/data-entry/number-input.d.ts +7 -0
  64. package/dist/components/data-entry/number-input.js +147 -98
  65. package/dist/components/data-entry/password-input.d.ts +1 -1
  66. package/dist/components/data-entry/radio.d.ts +1 -1
  67. package/dist/components/data-entry/radio.js +61 -13
  68. package/dist/components/data-entry/search-input.d.ts +1 -1
  69. package/dist/components/data-entry/search-input.js +16 -2
  70. package/dist/components/data-entry/search-select.d.ts +2 -2
  71. package/dist/components/data-entry/search-select.js +209 -78
  72. package/dist/components/data-entry/select.d.ts +22 -4
  73. package/dist/components/data-entry/select.js +215 -163
  74. package/dist/components/data-entry/slider.d.ts +9 -1
  75. package/dist/components/data-entry/slider.js +87 -9
  76. package/dist/components/data-entry/switch.d.ts +3 -0
  77. package/dist/components/data-entry/switch.js +29 -3
  78. package/dist/components/data-entry/textarea.d.ts +14 -56
  79. package/dist/components/data-entry/textarea.js +80 -33
  80. package/dist/components/data-entry/time-picker.d.ts +2 -2
  81. package/dist/components/data-entry/time-picker.js +333 -109
  82. package/dist/components/data-entry/time-range-picker.d.ts +5 -0
  83. package/dist/components/data-entry/time-range-picker.js +89 -0
  84. package/dist/components/data-entry/transfer.d.ts +1 -1
  85. package/dist/components/data-entry/transfer.js +86 -28
  86. package/dist/components/data-entry/tree-select.d.ts +1 -1
  87. package/dist/components/data-entry/tree-select.js +201 -113
  88. package/dist/components/data-entry/tree-utils.js +7 -14
  89. package/dist/components/data-entry/upload-files.d.ts +2 -0
  90. package/dist/components/data-entry/upload-files.js +31 -0
  91. package/dist/components/data-entry/upload-request.d.ts +4 -0
  92. package/dist/components/data-entry/upload-request.js +53 -0
  93. package/dist/components/data-entry/upload-types.d.ts +28 -0
  94. package/dist/components/data-entry/upload-types.js +2 -0
  95. package/dist/components/data-entry/upload.d.ts +2 -2
  96. package/dist/components/data-entry/upload.js +475 -115
  97. package/dist/components/feedback/dialog.js +16 -19
  98. package/dist/components/general/button.d.ts +1 -1
  99. package/dist/components/general/button.js +5 -1
  100. package/dist/components/general/index.d.ts +1 -0
  101. package/dist/components/general/index.js +2 -0
  102. package/dist/components/general/typography.d.ts +3 -0
  103. package/dist/components/general/typography.js +15 -1
  104. package/dist/components/general/visually-hidden.d.ts +3 -0
  105. package/dist/components/general/visually-hidden.js +9 -0
  106. package/dist/components/layout/app-launcher.d.ts +34 -0
  107. package/dist/components/layout/app-launcher.js +228 -0
  108. package/dist/components/layout/app-shell.d.ts +2 -0
  109. package/dist/components/layout/app-shell.js +20 -7
  110. package/dist/components/layout/breadcrumb.d.ts +14 -2
  111. package/dist/components/layout/breadcrumb.js +46 -4
  112. package/dist/components/layout/flex.d.ts +1 -1
  113. package/dist/components/layout/flex.js +23 -2
  114. package/dist/components/layout/index.d.ts +3 -0
  115. package/dist/components/layout/index.js +5 -1
  116. package/dist/components/layout/org-switcher.js +20 -1
  117. package/dist/components/layout/page-container.d.ts +1 -1
  118. package/dist/components/layout/page-container.js +5 -3
  119. package/dist/components/layout/responsive-grid.d.ts +16 -2
  120. package/dist/components/layout/responsive-grid.js +29 -2
  121. package/dist/components/layout/topbar-item.d.ts +3 -0
  122. package/dist/components/layout/topbar-item.js +18 -3
  123. package/dist/components/layout/topbar.d.ts +1 -1
  124. package/dist/components/layout/topbar.js +27 -6
  125. package/dist/components/navigation/dropdown-menu.d.ts +30 -2
  126. package/dist/components/navigation/dropdown-menu.js +68 -11
  127. package/dist/components/navigation/pagination.d.ts +2 -2
  128. package/dist/components/navigation/pagination.js +155 -83
  129. package/dist/components/navigation/steps.d.ts +2 -2
  130. package/dist/components/navigation/steps.js +29 -4
  131. package/dist/components/navigation/tabs.d.ts +5 -33
  132. package/dist/components/navigation/tabs.js +232 -64
  133. package/dist/components/ui/input-otp.d.ts +26 -28
  134. package/dist/components/ui/input-otp.js +50 -7
  135. package/dist/components/ui/password-input.d.ts +36 -2
  136. package/dist/components/ui/password-input.js +27 -7
  137. package/dist/components/ui/rating.d.ts +25 -0
  138. package/dist/components/ui/rating.js +67 -27
  139. package/dist/components/ui/segmented.d.ts +9 -0
  140. package/dist/components/ui/segmented.js +17 -2
  141. package/dist/components/ui/separator.d.ts +4 -0
  142. package/dist/components/ui/separator.js +13 -0
  143. package/dist/components/ui/tag-input.d.ts +45 -0
  144. package/dist/components/ui/tag-input.js +109 -27
  145. package/dist/form/form-context.d.ts +29 -0
  146. package/dist/form/form-context.js +44 -4
  147. package/dist/form/form-field-array.d.ts +22 -0
  148. package/dist/form/form-field-array.js +50 -0
  149. package/dist/form/form-field-control.d.ts +2 -1
  150. package/dist/form/form-field-control.js +116 -40
  151. package/dist/form/form-root.d.ts +2 -1
  152. package/dist/form/form-root.js +142 -23
  153. package/dist/form/index.d.ts +3 -1
  154. package/dist/form/index.js +12 -1
  155. package/dist/i18n/messages/en.json +56 -5
  156. package/dist/i18n/messages/ja.json +56 -5
  157. package/dist/i18n/messages/vi.json +56 -5
  158. package/dist/inertia/index.d.ts +20 -0
  159. package/dist/inertia/index.js +60 -1
  160. package/dist/lib/control-styles.d.ts +25 -3
  161. package/dist/lib/control-styles.js +9 -3
  162. package/dist/lib/datetime/picker-format.d.ts +8 -0
  163. package/dist/lib/datetime/picker-format.js +54 -0
  164. package/dist/props/components/charts.prop.d.ts +21 -0
  165. package/dist/props/components/data-display.prop.d.ts +55 -4
  166. package/dist/props/components/data-entry.prop.d.ts +687 -43
  167. package/dist/props/components/form.prop.d.ts +142 -4
  168. package/dist/props/components/general.prop.d.ts +17 -1
  169. package/dist/props/components/index.d.ts +2 -2
  170. package/dist/props/components/layout.prop.d.ts +163 -6
  171. package/dist/props/components/navigation.prop.d.ts +113 -3
  172. package/dist/props/registry.d.ts +376 -10
  173. package/dist/props/registry.js +493 -9
  174. package/dist/props/vocabulary/data.prop.d.ts +179 -1
  175. package/dist/props/vocabulary/index.d.ts +4 -4
  176. package/dist/props/vocabulary/interaction.prop.d.ts +51 -2
  177. package/dist/props/vocabulary/navigation.prop.d.ts +40 -0
  178. package/dist/props/vocabulary/shared.prop.d.ts +33 -0
  179. package/dist/styles/badge-layout.css +2 -1
  180. package/dist/styles/card-layout.css +26 -4
  181. package/dist/styles/chart-layout.css +15 -0
  182. package/dist/styles/control.css +515 -14
  183. package/dist/styles/data-display-layout.css +241 -6
  184. package/dist/styles/data-entry-layout.css +13 -0
  185. package/dist/styles/layout.css +221 -4
  186. package/dist/styles/navigation-layout.css +227 -0
  187. package/dist/styles/shell-layout.css +229 -5
  188. package/dist/styles/table-layout.css +95 -6
  189. package/dist/styles/text-layout.css +5 -0
  190. package/dist/tokens/base.css +1 -0
  191. package/dist/tokens/components/badge.css +1 -0
  192. package/dist/tokens/components/chart.css +6 -0
  193. package/dist/tokens/components/control.css +79 -2
  194. package/dist/tokens/components/data-display.css +9 -0
  195. package/dist/tokens/components/descriptions.css +11 -0
  196. package/dist/tokens/components/flex.css +8 -0
  197. package/dist/tokens/components/navigation.css +55 -0
  198. package/dist/tokens/components/shell.css +50 -2
  199. package/dist/tokens/components/table.css +14 -0
  200. package/dist/tokens/semantic/layout.css +9 -0
  201. package/docs/CONSUMER-RULES.md +13 -0
  202. package/docs/DESIGN-AUTHORITY.md +43 -6
  203. package/docs/DEVELOPMENT.md +4 -3
  204. package/docs/FORMS.md +151 -6
  205. package/docs/FRAME-COVERAGE-REPORT.md +29 -16
  206. package/docs/README.md +1 -1
  207. package/docs/STANDARDS-vocabulary-tokens.md +1 -1
  208. package/docs/TESTING.md +15 -6
  209. package/docs/charts/cjk-category-axis.tsx +81 -0
  210. package/docs/data-display/card/index.tsx +22 -0
  211. package/docs/data-display/data-table/examples/antd-parity.tsx +257 -0
  212. package/docs/data-display/data-table/index.tsx +23 -0
  213. package/docs/data-display/descriptions.tsx +41 -0
  214. package/docs/data-display/scroll-area.tsx +31 -25
  215. package/docs/data-display/table.tsx +104 -45
  216. package/docs/data-display/timeline.tsx +41 -0
  217. package/docs/data-entry/date-picker.tsx +85 -0
  218. package/docs/data-entry/date-range-picker.tsx +26 -0
  219. package/docs/data-entry/form-dynamic-fields.tsx +199 -0
  220. package/docs/data-entry/form.tsx +74 -4
  221. package/docs/data-entry/input-otp.tsx +24 -0
  222. package/docs/data-entry/input.tsx +46 -1
  223. package/docs/data-entry/month-range-picker.tsx +1 -1
  224. package/docs/data-entry/select.tsx +27 -0
  225. package/docs/data-entry/switch.tsx +41 -0
  226. package/docs/data-entry/textarea.tsx +38 -0
  227. package/docs/data-entry/time-picker.tsx +85 -1
  228. package/docs/data-entry/time-range-picker.tsx +55 -0
  229. package/docs/data-entry/transfer.tsx +17 -0
  230. package/docs/data-entry/upload.tsx +56 -12
  231. package/docs/feedback/tooltip.tsx +1 -1
  232. package/docs/general/activity.tsx +2 -2
  233. package/docs/general/button/index.tsx +14 -1
  234. package/docs/general/typography.tsx +14 -1
  235. package/docs/layout/app-launcher.tsx +151 -0
  236. package/docs/layout/app-shell.tsx +11 -0
  237. package/docs/layout/flex.tsx +50 -0
  238. package/docs/layout/responsive-grid.tsx +21 -1
  239. package/docs/layout/topbar.tsx +5 -9
  240. package/docs/navigation/app-setting-picker.tsx +11 -0
  241. package/docs/navigation/breadcrumb.tsx +48 -0
  242. package/docs/navigation/dropdown-menu.tsx +21 -0
  243. package/docs/navigation/pagination.tsx +52 -0
  244. package/docs/navigation/steps.tsx +37 -0
  245. package/docs/navigation/tabs.tsx +97 -1
  246. package/docs/query/button-refetch.tsx +1 -0
  247. package/package.json +19 -2
  248. package/scripts/_agent-setup.mjs +19 -2
  249. package/scripts/init-guinea-pig.mjs +26 -4
  250. package/scripts/ui-audit.mjs +243 -30
@@ -157,6 +157,26 @@
157
157
  text-decoration-line: underline;
158
158
  }
159
159
 
160
+ .ui-button.ui-button--bare {
161
+ position: relative;
162
+ height: auto;
163
+ min-height: 0;
164
+ padding: 0;
165
+ border: 0;
166
+ background: transparent;
167
+ color: inherit;
168
+ font: inherit;
169
+ }
170
+
171
+ .ui-button.ui-button--bare::after {
172
+ content: "";
173
+ position: absolute;
174
+ inset: 0;
175
+ min-inline-size: var(--button-bare-target-size);
176
+ min-block-size: var(--button-bare-target-size);
177
+ margin: auto;
178
+ }
179
+
160
180
  .ui-button--default-size {
161
181
  height: var(--control-height);
162
182
  padding-inline: var(--control-padding-x);
@@ -174,10 +194,17 @@
174
194
  height: var(--control-icon-size-sm);
175
195
  }
176
196
 
177
- .ui-button [data-slot="badge"] {
178
- padding-block: 0;
179
- line-height: var(--line-height-tight);
180
- border-radius: var(--radius-sm);
197
+ .ui-button:is(
198
+ .ui-button--default,
199
+ .ui-button--destructive,
200
+ .ui-button--outline,
201
+ .ui-button--dashed,
202
+ .ui-button--secondary
203
+ )
204
+ [data-slot="badge"] {
205
+ --badge-space-y: 0;
206
+ --badge-line-height: var(--line-height-tight);
207
+ --badge-radius: var(--radius-sm);
181
208
  }
182
209
 
183
210
  .ui-button--lg {
@@ -268,8 +295,13 @@
268
295
  overflow-wrap: break-word;
269
296
  font-size: var(--control-font-size);
270
297
  line-height: var(--textarea-autogrow-line-height, var(--line-height-normal));
271
- padding-block: var(--control-multiline-padding-block);
272
- padding-inline: var(--control-padding-x);
298
+ padding-block-start: var(
299
+ --textarea-padding-block-start,
300
+ var(--control-multiline-padding-block)
301
+ );
302
+ padding-block-end: var(--textarea-padding-block-end, var(--control-multiline-padding-block));
303
+ padding-inline-start: var(--textarea-padding-inline-start, var(--control-padding-x));
304
+ padding-inline-end: var(--textarea-padding-inline-end, var(--control-padding-x));
273
305
  border: var(--control-border-width) solid transparent;
274
306
 
275
307
  min-block-size: max(
@@ -627,6 +659,7 @@
627
659
  cursor: default;
628
660
  user-select: none;
629
661
  align-items: center;
662
+ gap: var(--command-item-gap);
630
663
  border-radius: calc(var(--control-radius) - 2px);
631
664
  padding: var(--command-item-padding-y) var(--command-item-padding-x);
632
665
  font-size: var(--font-size-base);
@@ -784,6 +817,42 @@
784
817
  .ui-otp-input:disabled {
785
818
  cursor: not-allowed;
786
819
  }
820
+
821
+ .ui-otp-container:has(.ui-otp-input[data-size="xs"]) {
822
+ --control-height: var(--control-height-xs);
823
+ }
824
+ .ui-otp-container:has(.ui-otp-input[data-size="sm"]) {
825
+ --control-height: var(--control-height-sm);
826
+ }
827
+ .ui-otp-container:has(.ui-otp-input[data-size="lg"]) {
828
+ --control-height: var(--control-height-lg);
829
+ }
830
+
831
+ .ui-otp-container:has(.ui-otp-input[data-variant="filled"]) .ui-otp-slot,
832
+ .ui-otp-container:has(.ui-otp-input[data-variant="filled"])
833
+ .ui-otp-group[data-appearance="grouped"] {
834
+ border-color: var(--control-filled-border-color);
835
+ background: var(--control-filled-background);
836
+ }
837
+ .ui-otp-container:has(.ui-otp-input[data-variant="borderless"]) .ui-otp-slot,
838
+ .ui-otp-container:has(.ui-otp-input[data-variant="borderless"])
839
+ .ui-otp-group[data-appearance="grouped"] {
840
+ border-color: var(--control-borderless-border-color);
841
+ background: var(--control-borderless-background);
842
+ }
843
+
844
+ .ui-otp-container:has(.ui-otp-input[data-status="warning"]) {
845
+ --focus-ring-color: var(--warning);
846
+ }
847
+ .ui-otp-container:has(.ui-otp-input[data-status="warning"]) .ui-otp-slot,
848
+ .ui-otp-container:has(.ui-otp-input[data-status="warning"])
849
+ .ui-otp-group[data-appearance="grouped"] {
850
+ border-color: var(--control-status-warning-border-color);
851
+ }
852
+
853
+ .ui-otp-container:has(.ui-otp-input[readonly]) .ui-otp-slot {
854
+ cursor: default;
855
+ }
787
856
  .ui-otp-group {
788
857
  display: flex;
789
858
  align-items: center;
@@ -987,9 +1056,10 @@
987
1056
  gap: var(--space-2);
988
1057
  min-height: var(--control-height);
989
1058
  padding: var(--space-1) var(--control-padding-x);
990
- border: var(--control-border-width) solid hsl(var(--input));
1059
+
1060
+ border: var(--control-border-width) solid var(--control-surface-border-color);
991
1061
  border-radius: var(--control-radius);
992
- background: hsl(var(--background));
1062
+ background: var(--control-surface-background);
993
1063
  box-shadow: var(--control-shadow);
994
1064
  }
995
1065
  .ui-tag-input-disabled {
@@ -1038,6 +1108,11 @@
1038
1108
  width: 0.75rem;
1039
1109
  height: 0.75rem;
1040
1110
  }
1111
+
1112
+ .ui-tag-input-clear {
1113
+ flex-shrink: 0;
1114
+ margin-inline-start: auto;
1115
+ }
1041
1116
  .ui-tag-input-field {
1042
1117
  flex: 1;
1043
1118
  min-width: 6rem;
@@ -1076,14 +1151,50 @@
1076
1151
  max-inline-size: 100%;
1077
1152
  }
1078
1153
 
1079
- .ui-control[data-size="sm"] {
1154
+ .ui-control[data-size="sm"],
1155
+ .ui-control-surface[data-size="sm"] {
1080
1156
  --control-height: var(--control-height-sm);
1081
1157
  }
1082
1158
 
1083
- .ui-control[data-size="lg"] {
1159
+ .ui-control[data-size="lg"],
1160
+ .ui-control-surface[data-size="lg"] {
1084
1161
  --control-height: var(--control-height-lg);
1085
1162
  }
1086
1163
 
1164
+ .ui-control[data-size="xs"],
1165
+ .ui-control-surface[data-size="xs"] {
1166
+ --control-height: var(--control-height-xs);
1167
+ }
1168
+
1169
+ .ui-control-surface {
1170
+ border-color: var(--control-surface-border-color);
1171
+ background: var(--control-surface-background);
1172
+ }
1173
+
1174
+ .ui-control-surface[data-variant="filled"] {
1175
+ --control-shadow: var(--control-filled-shadow);
1176
+ border-color: var(--control-filled-border-color);
1177
+ background: var(--control-filled-background);
1178
+ }
1179
+
1180
+ .ui-control-surface[data-variant="borderless"] {
1181
+ --control-shadow: var(--control-borderless-shadow);
1182
+ border-color: var(--control-borderless-border-color);
1183
+ background: var(--control-borderless-background);
1184
+ }
1185
+
1186
+ .ui-control-surface[data-status="error"],
1187
+ .ui-control-surface[aria-invalid="true"] {
1188
+ border-color: var(--control-status-error-border-color);
1189
+ }
1190
+
1191
+ .ui-control-surface[data-status="warning"] {
1192
+ border-color: var(--control-status-warning-border-color);
1193
+ --focus-ring-color: var(--warning);
1194
+ --focus-outline-color: var(--warning);
1195
+ --focus-ring-glow-color: var(--control-status-warning-outline-color);
1196
+ }
1197
+
1087
1198
  .ui-number-input[data-size="sm"] {
1088
1199
  --control-height: var(--control-height-sm);
1089
1200
  }
@@ -1192,6 +1303,22 @@
1192
1303
  min-inline-size: var(--radix-popover-trigger-width);
1193
1304
  }
1194
1305
 
1306
+ .ui-search-select-panel[data-popup-match="content"] {
1307
+ min-inline-size: auto;
1308
+ }
1309
+
1310
+ .ui-search-select-panel[data-popup-match="fixed"] {
1311
+ min-inline-size: var(--search-select-panel-inline-size);
1312
+ inline-size: var(--search-select-panel-inline-size);
1313
+ }
1314
+
1315
+ .ui-search-select-selected-icon {
1316
+ display: inline-flex;
1317
+ align-items: center;
1318
+ margin-inline-start: auto;
1319
+ flex-shrink: 0;
1320
+ }
1321
+
1195
1322
  .ui-search-select-command {
1196
1323
  display: flex;
1197
1324
  min-block-size: 0;
@@ -1234,6 +1361,29 @@
1234
1361
  gap: var(--search-select-option-space-gap);
1235
1362
  }
1236
1363
 
1364
+ .ui-search-select-values {
1365
+ display: flex;
1366
+ min-inline-size: 0;
1367
+ flex: 1 1 0%;
1368
+ align-items: center;
1369
+ gap: var(--search-select-option-space-gap);
1370
+ overflow: hidden;
1371
+ }
1372
+
1373
+ .ui-search-select-value {
1374
+ display: inline-flex;
1375
+ max-inline-size: 100%;
1376
+ align-items: center;
1377
+ overflow: hidden;
1378
+ border-radius: var(--radius-sm);
1379
+ background: hsl(var(--secondary));
1380
+ padding: 0.0625rem var(--space-2);
1381
+ color: hsl(var(--secondary-foreground));
1382
+ font-size: var(--tag-input-chip-font-size);
1383
+ text-overflow: ellipsis;
1384
+ white-space: nowrap;
1385
+ }
1386
+
1237
1387
  .ui-search-select-option-text {
1238
1388
  display: flex;
1239
1389
  min-inline-size: 0;
@@ -1400,10 +1550,23 @@
1400
1550
  box-shadow: var(--shadow-md);
1401
1551
  }
1402
1552
 
1553
+ .ui-select-content[data-popup-match="fixed"] {
1554
+ min-width: var(--select-content-inline-size);
1555
+ width: var(--select-content-inline-size);
1556
+ }
1557
+
1403
1558
  .ui-select-viewport {
1404
1559
  padding: var(--menu-content-space-inset);
1405
1560
  }
1406
1561
 
1562
+ .ui-select-empty {
1563
+ padding-inline: var(--select-item-space-inline);
1564
+ padding-block: var(--select-empty-space-block);
1565
+ color: hsl(var(--muted-foreground));
1566
+ font-size: var(--menu-item-font-size);
1567
+ text-align: center;
1568
+ }
1569
+
1407
1570
  .ui-select-item,
1408
1571
  .ui-select-label {
1409
1572
  border-radius: var(--menu-item-radius);
@@ -1532,6 +1695,15 @@
1532
1695
  background: hsl(var(--accent));
1533
1696
  }
1534
1697
 
1698
+ .ui-time-picker-option[data-disabled] {
1699
+ opacity: var(--disabled-opacity);
1700
+ cursor: not-allowed;
1701
+ }
1702
+
1703
+ .ui-time-picker-option[data-disabled]:hover {
1704
+ background: transparent;
1705
+ }
1706
+
1535
1707
  .ui-time-picker-option[data-selected="true"] {
1536
1708
  background: hsl(var(--primary));
1537
1709
  color: hsl(var(--primary-foreground));
@@ -1542,10 +1714,28 @@
1542
1714
  }
1543
1715
 
1544
1716
  .ui-time-picker-footer {
1717
+ display: flex;
1718
+ flex-direction: column;
1719
+ gap: var(--time-picker-footer-space-gap);
1545
1720
  padding: var(--time-picker-footer-space-inset);
1546
1721
  border-block-start: 1px solid hsl(var(--border));
1547
1722
  }
1548
1723
 
1724
+ .ui-time-picker-footer-actions {
1725
+ display: flex;
1726
+ align-items: center;
1727
+ justify-content: space-between;
1728
+ gap: var(--time-picker-footer-space-gap);
1729
+ }
1730
+
1731
+ .ui-time-picker-footer-actions > :only-child:last-child {
1732
+ margin-inline-start: auto;
1733
+ }
1734
+
1735
+ .ui-time-picker-footer-actions > :first-child:not(:only-child) {
1736
+ margin-inline-end: auto;
1737
+ }
1738
+
1549
1739
  .ui-time-picker-popover {
1550
1740
  --popover-surface-inline-size: auto;
1551
1741
  --popover-space-inset: 0;
@@ -1556,10 +1746,6 @@
1556
1746
  --popover-space-inset: 0;
1557
1747
  }
1558
1748
 
1559
- .ui-control-inline-affix-pair-affixed {
1560
- padding-inline-end: var(--control-inline-affix-pair-space-inline-end);
1561
- }
1562
-
1563
1749
  .ui-time-picker-affix {
1564
1750
  display: inline-flex;
1565
1751
  align-items: center;
@@ -2301,3 +2487,318 @@
2301
2487
  text-align: end;
2302
2488
  }
2303
2489
  }
2490
+
2491
+ @layer components {
2492
+
2493
+ .ui-control--filled {
2494
+ border-color: transparent;
2495
+ background-color: hsl(var(--control-variant-filled-background));
2496
+ }
2497
+
2498
+ .ui-control--filled:hover:not(:disabled):not([readonly]):not([data-disabled]) {
2499
+ background-color: hsl(var(--control-variant-filled-hover-background));
2500
+ }
2501
+
2502
+ .ui-control--borderless {
2503
+ border-color: transparent;
2504
+ background-color: transparent;
2505
+ box-shadow: none;
2506
+ }
2507
+
2508
+ .ui-control[data-status="warning"],
2509
+ .ui-control-multiline[data-status="warning"] {
2510
+ --focus-ring-color: var(--control-status-warning-border-color);
2511
+ --focus-outline-color: var(--control-status-warning-border-color);
2512
+ --focus-ring-glow-color: var(--control-status-warning-glow-color);
2513
+ --focus-ring-glow-alpha: var(--control-status-warning-glow-alpha);
2514
+ }
2515
+
2516
+ .ui-input[data-size="lg"] {
2517
+ --control-height: var(--control-height-lg);
2518
+ }
2519
+
2520
+ .ui-control-multiline[data-size="sm"] {
2521
+ --control-height: var(--control-height-sm);
2522
+ }
2523
+
2524
+ .ui-control-multiline[data-size="lg"] {
2525
+ --control-height: var(--control-height-lg);
2526
+ }
2527
+
2528
+ .ui-control-count {
2529
+ flex-shrink: 0;
2530
+ font-size: var(--control-count-font-size);
2531
+ color: hsl(var(--control-count-color));
2532
+ font-variant-numeric: tabular-nums;
2533
+ padding-inline-end: var(--control-count-space-inline);
2534
+ }
2535
+
2536
+ .ui-control-count[data-exceeded="true"] {
2537
+ color: hsl(var(--control-count-exceeded-color));
2538
+ }
2539
+
2540
+ .ui-textarea-count {
2541
+ position: absolute;
2542
+ inset-block-end: var(--textarea-count-inset-block-end);
2543
+ inset-inline-end: var(--textarea-count-inset-inline-end);
2544
+ padding-inline-end: 0;
2545
+ }
2546
+
2547
+ .ui-input-group {
2548
+ display: inline-flex;
2549
+ inline-size: 100%;
2550
+ align-items: stretch;
2551
+ }
2552
+
2553
+ .ui-input-addon {
2554
+ display: inline-flex;
2555
+ align-items: center;
2556
+ flex-shrink: 0;
2557
+ block-size: var(--control-height);
2558
+ padding-inline: var(--input-addon-padding-inline);
2559
+ font-size: var(--control-font-size);
2560
+ color: hsl(var(--input-addon-color));
2561
+ background-color: hsl(var(--input-addon-background));
2562
+ border: var(--control-border-width) solid hsl(var(--input));
2563
+ white-space: nowrap;
2564
+ }
2565
+
2566
+ .ui-input-group > [data-slot="input-addon-before"] {
2567
+ border-start-start-radius: var(--control-radius);
2568
+ border-end-start-radius: var(--control-radius);
2569
+ border-inline-end: 0;
2570
+ }
2571
+
2572
+ .ui-input-group > [data-slot="input-addon-after"] {
2573
+ border-start-end-radius: var(--control-radius);
2574
+ border-end-end-radius: var(--control-radius);
2575
+ border-inline-start: 0;
2576
+ }
2577
+
2578
+ .ui-input-group:has(> [data-slot="input-addon-before"]) .ui-input,
2579
+ .ui-input-group:has(> [data-slot="input-addon-before"]) .ui-input-affix-wrapper {
2580
+ border-start-start-radius: 0;
2581
+ border-end-start-radius: 0;
2582
+ }
2583
+
2584
+ .ui-input-group:has(> [data-slot="input-addon-after"]) .ui-input,
2585
+ .ui-input-group:has(> [data-slot="input-addon-after"]) .ui-input-affix-wrapper {
2586
+ border-start-end-radius: 0;
2587
+ border-end-end-radius: 0;
2588
+ }
2589
+
2590
+ .ui-input-group[data-size="sm"] {
2591
+ --control-height: var(--control-height-sm);
2592
+ }
2593
+
2594
+ .ui-input-group[data-size="lg"] {
2595
+ --control-height: var(--control-height-lg);
2596
+ }
2597
+
2598
+ .ui-number-input[data-controls="off"] .ui-number-input-field {
2599
+ padding-inline-end: var(--control-padding-x);
2600
+ }
2601
+
2602
+ .ui-switch[data-loading="true"] {
2603
+ cursor: progress;
2604
+ }
2605
+
2606
+ .ui-switch-spinner {
2607
+ inline-size: var(--switch-spinner-size);
2608
+ block-size: var(--switch-spinner-size);
2609
+ color: hsl(var(--primary));
2610
+ animation: spin 1s linear infinite;
2611
+ }
2612
+
2613
+ .ui-switch-content {
2614
+ flex: 1 1 auto;
2615
+ min-inline-size: calc(var(--switch-width) - var(--switch-thumb-size));
2616
+ order: 1;
2617
+ text-align: center;
2618
+ font-size: var(--switch-content-font-size);
2619
+ color: hsl(var(--primary-foreground));
2620
+ padding-inline: var(--switch-content-space-inline);
2621
+ line-height: 1;
2622
+ }
2623
+
2624
+ .ui-switch:has(.ui-switch-content)[data-state="unchecked"] {
2625
+ background: var(--switch-unchecked-background, hsl(var(--muted-foreground)));
2626
+ }
2627
+
2628
+ .ui-switch[data-state="unchecked"] .ui-switch-content {
2629
+ color: var(--switch-content-unchecked-foreground, hsl(var(--background)));
2630
+ }
2631
+
2632
+ .ui-switch[data-state="checked"] .ui-switch-content {
2633
+ order: 0;
2634
+ }
2635
+
2636
+ .ui-switch:has(.ui-switch-content) {
2637
+ inline-size: auto;
2638
+ min-inline-size: var(--switch-width);
2639
+ }
2640
+
2641
+ .ui-switch:has(.ui-switch-content) .ui-switch-thumb {
2642
+ flex: 0 0 auto;
2643
+ order: 0;
2644
+ transform: none;
2645
+ }
2646
+
2647
+ .ui-switch:has(.ui-switch-content)[data-state="checked"] .ui-switch-thumb {
2648
+ order: 1;
2649
+ }
2650
+
2651
+ .ui-slider[data-has-marks="true"] {
2652
+ margin-block-end: calc(var(--slider-mark-space-block-start) + var(--font-size-lg));
2653
+ }
2654
+
2655
+ .ui-slider-marks {
2656
+ position: absolute;
2657
+ inset-inline: 0;
2658
+ inset-block-start: 100%;
2659
+ margin-block-start: var(--slider-mark-space-block-start);
2660
+ block-size: 0;
2661
+ }
2662
+
2663
+ .ui-slider-mark {
2664
+ position: absolute;
2665
+ inset-inline-start: var(--slider-mark-offset-inline, 0%);
2666
+ transform: translateX(-50%);
2667
+ font-size: var(--slider-mark-font-size);
2668
+ color: hsl(var(--slider-mark-color));
2669
+ white-space: nowrap;
2670
+ }
2671
+
2672
+ .ui-slider-dot {
2673
+ position: absolute;
2674
+ inset-block-start: 50%;
2675
+ inset-inline-start: var(--slider-mark-offset-inline, 0%);
2676
+ inline-size: var(--slider-dot-size);
2677
+ block-size: var(--slider-dot-size);
2678
+ transform: translate(-50%, -50%);
2679
+ border-radius: var(--radius-pill);
2680
+ background: hsl(var(--slider-dot-background));
2681
+ border: var(--control-border-width) solid hsl(var(--slider-dot-border-color));
2682
+ }
2683
+
2684
+ .ui-slider-dot[data-active="true"] {
2685
+ border-color: hsl(var(--slider-dot-active-border-color));
2686
+ }
2687
+
2688
+ .ui-slider-tooltip {
2689
+ position: absolute;
2690
+ inset-block-end: 100%;
2691
+ inset-inline-start: 50%;
2692
+ transform: translateX(-50%);
2693
+ margin-block-end: var(--slider-tooltip-offset-block);
2694
+ padding-inline: var(--slider-tooltip-padding-inline);
2695
+ border-radius: var(--slider-tooltip-radius);
2696
+ background: hsl(var(--slider-tooltip-background));
2697
+ color: hsl(var(--slider-tooltip-color));
2698
+ font-size: var(--slider-tooltip-font-size);
2699
+ white-space: nowrap;
2700
+ opacity: 0;
2701
+ pointer-events: none;
2702
+ transition: opacity 150ms;
2703
+ }
2704
+
2705
+ .ui-slider-thumb:hover .ui-slider-tooltip,
2706
+ .ui-slider-thumb:focus-visible .ui-slider-tooltip,
2707
+ .ui-slider-tooltip[data-open="true"] {
2708
+ opacity: 1;
2709
+ }
2710
+
2711
+ .ui-rating-symbol {
2712
+ position: relative;
2713
+ display: inline-flex;
2714
+ }
2715
+
2716
+ .ui-rating-star-half {
2717
+ position: absolute;
2718
+ inset-block: 0;
2719
+ inset-inline-start: 0;
2720
+ inline-size: 50%;
2721
+ z-index: 1;
2722
+ background: transparent;
2723
+ border: 0;
2724
+ padding: 0;
2725
+ cursor: pointer;
2726
+ }
2727
+
2728
+ .ui-rating-star-half-filled {
2729
+ color: hsl(var(--warning));
2730
+ }
2731
+
2732
+ .ui-radio-button-bar {
2733
+ display: inline-flex;
2734
+ align-items: stretch;
2735
+ }
2736
+
2737
+ .ui-radio-button {
2738
+ display: inline-flex;
2739
+ align-items: center;
2740
+ justify-content: center;
2741
+ block-size: var(--control-height);
2742
+ padding-inline: var(--control-padding-x);
2743
+ font-size: var(--control-font-size);
2744
+ color: hsl(var(--choice-button-color));
2745
+ background: hsl(var(--choice-button-background));
2746
+ border: var(--control-border-width) solid hsl(var(--choice-button-border-color));
2747
+ border-inline-start-width: 0;
2748
+ cursor: pointer;
2749
+ }
2750
+
2751
+ .ui-radio-button:first-child {
2752
+ border-inline-start-width: var(--control-border-width);
2753
+ border-start-start-radius: var(--control-radius);
2754
+ border-end-start-radius: var(--control-radius);
2755
+ }
2756
+
2757
+ .ui-radio-button:last-child {
2758
+ border-start-end-radius: var(--control-radius);
2759
+ border-end-end-radius: var(--control-radius);
2760
+ }
2761
+
2762
+ .ui-radio-button[data-state="checked"] {
2763
+ color: hsl(var(--choice-button-selected-color));
2764
+ border-color: hsl(var(--choice-button-selected-border-color));
2765
+ }
2766
+
2767
+ .ui-radio-button-bar[data-button-style="solid"] .ui-radio-button[data-state="checked"] {
2768
+ color: hsl(var(--choice-button-solid-color));
2769
+ background: hsl(var(--choice-button-solid-background));
2770
+ border-color: hsl(var(--choice-button-solid-background));
2771
+ }
2772
+
2773
+ .ui-radio-button:disabled {
2774
+ cursor: not-allowed;
2775
+ opacity: var(--disabled-opacity);
2776
+ }
2777
+
2778
+ .ui-segmented[data-block="true"] {
2779
+ display: flex;
2780
+ inline-size: 100%;
2781
+ }
2782
+
2783
+ .ui-segmented[data-block="true"] > .ui-segmented-item {
2784
+ flex: 1 1 0;
2785
+ min-inline-size: 0;
2786
+ justify-content: center;
2787
+ }
2788
+
2789
+ .ui-segmented[data-orientation="vertical"] {
2790
+ flex-direction: column;
2791
+ }
2792
+
2793
+ .ui-segmented[data-orientation="vertical"] > .ui-segmented-item {
2794
+ justify-content: flex-start;
2795
+ }
2796
+
2797
+ .ui-segmented[data-size="sm"] {
2798
+ --control-height: var(--control-height-sm);
2799
+ }
2800
+
2801
+ .ui-segmented[data-size="lg"] {
2802
+ --control-height: var(--control-height-lg);
2803
+ }
2804
+ }