@well-insight/ui 0.1.8 → 0.1.10

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 (322) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +3 -3
  3. package/README.zh-CN.md +3 -3
  4. package/dist/{Button-BZzV1X-d.js → Button-B6-YxpOQ.js} +1 -1
  5. package/dist/{Checkbox-BtgWgkHI.js → Checkbox-BvlOYFGs.js} +5 -5
  6. package/dist/{Pagination-C-F_ZDXr.js → Pagination-BU-1IY0E.js} +2 -2
  7. package/dist/accordion/style.css +164 -148
  8. package/dist/auto-complete/style.css +306 -282
  9. package/dist/avatar/style.css +228 -199
  10. package/dist/badge/style.css +272 -235
  11. package/dist/block-ui/style.css +164 -148
  12. package/dist/breadcrumb/style.css +164 -148
  13. package/dist/button/index.js +1 -1
  14. package/dist/button/style.css +731 -572
  15. package/dist/card/style.css +164 -148
  16. package/dist/carousel/style.css +200 -183
  17. package/dist/cascade-select/style.css +274 -256
  18. package/dist/checkbox/index.js +1 -1
  19. package/dist/checkbox/style.css +164 -148
  20. package/dist/chip/style.css +243 -220
  21. package/dist/command-menu/style.css +240 -222
  22. package/dist/components/Accordion/Accordion.vue.d.ts.map +1 -1
  23. package/dist/components/AutoComplete/AutoComplete.vue.d.ts.map +1 -1
  24. package/dist/components/AutoComplete/styles.css +142 -134
  25. package/dist/components/Avatar/Avatar.vue.d.ts.map +1 -1
  26. package/dist/components/Avatar/AvatarGroup.vue.d.ts.map +1 -1
  27. package/dist/components/Avatar/styles.css +64 -51
  28. package/dist/components/Badge/Badge.vue.d.ts.map +1 -1
  29. package/dist/components/Badge/styles.css +108 -87
  30. package/dist/components/BlockUI/BlockUI.vue.d.ts.map +1 -1
  31. package/dist/components/Breadcrumb/Breadcrumb.vue.d.ts.map +1 -1
  32. package/dist/components/Button/Button.vue.d.ts +1 -1
  33. package/dist/components/Button/Button.vue.d.ts.map +1 -1
  34. package/dist/components/Button/ButtonGroup.vue.d.ts.map +1 -1
  35. package/dist/components/Button/styles.css +567 -424
  36. package/dist/components/Card/Card.vue.d.ts.map +1 -1
  37. package/dist/components/Carousel/Carousel.vue.d.ts.map +1 -1
  38. package/dist/components/Carousel/styles.css +36 -35
  39. package/dist/components/CascadeSelect/CascadeSelect.vue.d.ts.map +1 -1
  40. package/dist/components/CascadeSelect/styles.css +85 -83
  41. package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
  42. package/dist/components/Checkbox/CheckboxGroup.vue.d.ts.map +1 -1
  43. package/dist/components/Chip/Chip.vue.d.ts.map +1 -1
  44. package/dist/components/Chip/styles.css +79 -72
  45. package/dist/components/CommandMenu/CommandMenu.vue.d.ts.map +1 -1
  46. package/dist/components/CommandMenu/styles.css +59 -57
  47. package/dist/components/ConfigProvider/ConfigProvider.vue.d.ts.map +1 -1
  48. package/dist/components/ConfirmDialog/ConfirmDialog.vue.d.ts.map +1 -1
  49. package/dist/components/ConfirmDialog/styles.css +17 -16
  50. package/dist/components/ConfirmPopup/ConfirmPopup.vue.d.ts.map +1 -1
  51. package/dist/components/ConfirmPopup/styles.css +27 -26
  52. package/dist/components/ContextMenu/ContextMenu.vue.d.ts.map +1 -1
  53. package/dist/components/ContextMenu/ContextMenuNodes.vue.d.ts.map +1 -1
  54. package/dist/components/ContextMenu/index.d.ts +1 -1
  55. package/dist/components/ContextMenu/index.d.ts.map +1 -1
  56. package/dist/components/ContextMenu/styles.css +43 -37
  57. package/dist/components/ContextMenu/useContextMenu.d.ts.map +1 -1
  58. package/dist/components/DataView/DataView.vue.d.ts.map +1 -1
  59. package/dist/components/DatePicker/DatePicker.vue.d.ts.map +1 -1
  60. package/dist/components/DatePicker/styles.css +163 -139
  61. package/dist/components/Dialog/Dialog.vue.d.ts.map +1 -1
  62. package/dist/components/Dialog/styles.css +155 -150
  63. package/dist/components/Divider/Divider.vue.d.ts.map +1 -1
  64. package/dist/components/Dock/Dock.vue.d.ts.map +1 -1
  65. package/dist/components/Dock/styles.css +37 -32
  66. package/dist/components/Drawer/Drawer.vue.d.ts.map +1 -1
  67. package/dist/components/Drawer/styles.css +82 -80
  68. package/dist/components/Dropdown/Dropdown.vue.d.ts.map +1 -1
  69. package/dist/components/Dropdown/DropdownNodes.vue.d.ts.map +1 -1
  70. package/dist/components/Dropdown/styles.css +58 -57
  71. package/dist/components/Fieldset/Fieldset.vue.d.ts.map +1 -1
  72. package/dist/components/FileUpload/FileUpload.vue.d.ts +2 -2
  73. package/dist/components/FileUpload/FileUpload.vue.d.ts.map +1 -1
  74. package/dist/components/FileUpload/styles.css +238 -221
  75. package/dist/components/Flex/Flex.vue.d.ts.map +1 -1
  76. package/dist/components/Form/Form.vue.d.ts.map +1 -1
  77. package/dist/components/Form/FormItem.vue.d.ts.map +1 -1
  78. package/dist/components/Form/index.d.ts +2 -2
  79. package/dist/components/Form/index.d.ts.map +1 -1
  80. package/dist/components/Form/styles.css +46 -44
  81. package/dist/components/Gallery/Gallery.vue.d.ts.map +1 -1
  82. package/dist/components/Gallery/styles.css +42 -39
  83. package/dist/components/Grid/Grid.vue.d.ts.map +1 -1
  84. package/dist/components/Grid/GridItem.vue.d.ts.map +1 -1
  85. package/dist/components/Icon/Icon.vue.d.ts.map +1 -1
  86. package/dist/components/IconField/IconField.vue.d.ts.map +1 -1
  87. package/dist/components/Inplace/Inplace.vue.d.ts.map +1 -1
  88. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  89. package/dist/components/Input/styles.css +198 -191
  90. package/dist/components/InputColor/InputColor.vue.d.ts.map +1 -1
  91. package/dist/components/InputColor/styles.css +50 -48
  92. package/dist/components/InputNumber/InputNumber.vue.d.ts.map +1 -1
  93. package/dist/components/InputNumber/styles.css +90 -80
  94. package/dist/components/InputOtp/InputOtp.vue.d.ts.map +1 -1
  95. package/dist/components/InputPassword/InputPassword.vue.d.ts.map +1 -1
  96. package/dist/components/InputPassword/styles.css +130 -117
  97. package/dist/components/InputTags/InputTags.vue.d.ts.map +1 -1
  98. package/dist/components/InputTags/styles.css +51 -43
  99. package/dist/components/Knob/Knob.vue.d.ts.map +1 -1
  100. package/dist/components/Label/Label.vue.d.ts.map +1 -1
  101. package/dist/components/Layout/Layout.vue.d.ts.map +1 -1
  102. package/dist/components/Layout/LayoutContent.vue.d.ts.map +1 -1
  103. package/dist/components/Layout/LayoutFooter.vue.d.ts.map +1 -1
  104. package/dist/components/Layout/LayoutHeader.vue.d.ts.map +1 -1
  105. package/dist/components/Layout/LayoutSider.vue.d.ts +1 -1
  106. package/dist/components/Layout/LayoutSider.vue.d.ts.map +1 -1
  107. package/dist/components/Layout/index.d.ts +2 -2
  108. package/dist/components/Layout/index.d.ts.map +1 -1
  109. package/dist/components/Layout/styles.css +310 -258
  110. package/dist/components/Layout/types.d.ts +30 -12
  111. package/dist/components/Layout/types.d.ts.map +1 -1
  112. package/dist/components/Listbox/Listbox.vue.d.ts.map +1 -1
  113. package/dist/components/Listbox/styles.css +61 -51
  114. package/dist/components/MegaMenu/MegaMenu.vue.d.ts.map +1 -1
  115. package/dist/components/MegaMenu/styles.css +60 -58
  116. package/dist/components/Menu/Menu.vue.d.ts.map +1 -1
  117. package/dist/components/Menu/MenuNodes.vue.d.ts.map +1 -1
  118. package/dist/components/Menu/styles.css +53 -47
  119. package/dist/components/Menubar/Menubar.vue.d.ts.map +1 -1
  120. package/dist/components/Menubar/styles.css +80 -70
  121. package/dist/components/Message/Message.vue.d.ts.map +1 -1
  122. package/dist/components/Message/index.d.ts +1 -1
  123. package/dist/components/Message/index.d.ts.map +1 -1
  124. package/dist/components/Message/message.d.ts +2 -2
  125. package/dist/components/Message/message.d.ts.map +1 -1
  126. package/dist/components/Message/messageState.d.ts.map +1 -1
  127. package/dist/components/Message/styles.css +193 -143
  128. package/dist/components/Message/types.d.ts +1 -1
  129. package/dist/components/Message/types.d.ts.map +1 -1
  130. package/dist/components/MeterGroup/MeterGroup.vue.d.ts.map +1 -1
  131. package/dist/components/MeterGroup/styles.css +36 -34
  132. package/dist/components/OrderList/OrderList.vue.d.ts.map +1 -1
  133. package/dist/components/Pagination/Pagination.vue.d.ts.map +1 -1
  134. package/dist/components/Pagination/styles.css +59 -57
  135. package/dist/components/Panel/Panel.vue.d.ts.map +1 -1
  136. package/dist/components/PickList/PickList.vue.d.ts.map +1 -1
  137. package/dist/components/Popover/Popover.vue.d.ts.map +1 -1
  138. package/dist/components/Popover/styles.css +46 -45
  139. package/dist/components/ProgressBar/ProgressBar.vue.d.ts.map +1 -1
  140. package/dist/components/ProgressSpinner/ProgressSpinner.vue.d.ts.map +1 -1
  141. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  142. package/dist/components/Radio/RadioGroup.vue.d.ts.map +1 -1
  143. package/dist/components/Rating/Rating.vue.d.ts.map +1 -1
  144. package/dist/components/ScrollTop/ScrollTop.vue.d.ts.map +1 -1
  145. package/dist/components/Scrollbar/Scrollbar.vue.d.ts.map +1 -1
  146. package/dist/components/Scrollbar/Thumb.vue.d.ts.map +1 -1
  147. package/dist/components/Scrollbar/constants.d.ts +2 -2
  148. package/dist/components/Scrollbar/constants.d.ts.map +1 -1
  149. package/dist/components/Scrollbar/styles.css +68 -59
  150. package/dist/components/Select/Select.vue.d.ts +1 -1
  151. package/dist/components/Select/Select.vue.d.ts.map +1 -1
  152. package/dist/components/Select/styles.css +293 -280
  153. package/dist/components/SelectButton/SelectButton.vue.d.ts.map +1 -1
  154. package/dist/components/SelectButton/styles.css +64 -51
  155. package/dist/components/Sidebar/Sidebar.vue.d.ts.map +1 -1
  156. package/dist/components/Sidebar/styles.css +40 -38
  157. package/dist/components/Skeleton/Skeleton.vue.d.ts.map +1 -1
  158. package/dist/components/Slider/Slider.vue.d.ts.map +1 -1
  159. package/dist/components/Slider/styles.css +111 -95
  160. package/dist/components/Space/Space.vue.d.ts.map +1 -1
  161. package/dist/components/SpeedDial/SpeedDial.vue.d.ts.map +1 -1
  162. package/dist/components/SplitButton/SplitButton.vue.d.ts.map +1 -1
  163. package/dist/components/SplitButton/styles.css +105 -89
  164. package/dist/components/Splitter/Splitter.vue.d.ts.map +1 -1
  165. package/dist/components/Stepper/Stepper.vue.d.ts.map +1 -1
  166. package/dist/components/Stepper/styles.css +63 -58
  167. package/dist/components/Switch/Switch.vue.d.ts.map +1 -1
  168. package/dist/components/Switch/styles.css +82 -53
  169. package/dist/components/Table/Table.vue.d.ts.map +1 -1
  170. package/dist/components/Tabs/Tabs.vue.d.ts.map +1 -1
  171. package/dist/components/Tag/Tag.vue.d.ts.map +1 -1
  172. package/dist/components/Terminal/Terminal.vue.d.ts.map +1 -1
  173. package/dist/components/Terminal/styles.css +46 -34
  174. package/dist/components/Textarea/Textarea.vue.d.ts.map +1 -1
  175. package/dist/components/Textarea/styles.css +69 -62
  176. package/dist/components/Textarea/types.d.ts +1 -1
  177. package/dist/components/Textarea/types.d.ts.map +1 -1
  178. package/dist/components/TieredMenu/TieredMenu.vue.d.ts.map +1 -1
  179. package/dist/components/TieredMenu/styles.css +69 -62
  180. package/dist/components/Timeline/Timeline.vue.d.ts.map +1 -1
  181. package/dist/components/Timeline/types.d.ts +1 -1
  182. package/dist/components/Timeline/types.d.ts.map +1 -1
  183. package/dist/components/Toast/Toast.vue.d.ts.map +1 -1
  184. package/dist/components/Toast/index.d.ts +1 -1
  185. package/dist/components/Toast/index.d.ts.map +1 -1
  186. package/dist/components/Toast/toast.d.ts +2 -2
  187. package/dist/components/Toast/toast.d.ts.map +1 -1
  188. package/dist/components/Toast/toastState.d.ts.map +1 -1
  189. package/dist/components/Toast/types.d.ts +1 -1
  190. package/dist/components/Toast/types.d.ts.map +1 -1
  191. package/dist/components/ToggleButton/ToggleButton.vue.d.ts.map +1 -1
  192. package/dist/components/Tooltip/Tooltip.vue.d.ts.map +1 -1
  193. package/dist/components/Tree/Tree.vue.d.ts.map +1 -1
  194. package/dist/components/Tree/TreeNodeItem.vue.d.ts.map +1 -1
  195. package/dist/components/Tree/context.d.ts +2 -2
  196. package/dist/components/Tree/context.d.ts.map +1 -1
  197. package/dist/components/Tree/index.d.ts +1 -1
  198. package/dist/components/Tree/index.d.ts.map +1 -1
  199. package/dist/components/TreeSelect/TreeSelect.vue.d.ts.map +1 -1
  200. package/dist/components/TreeSelect/styles.css +140 -138
  201. package/dist/components/TreeTable/TreeTable.vue.d.ts.map +1 -1
  202. package/dist/components/TreeTable/TreeTableRow.vue.d.ts.map +1 -1
  203. package/dist/components/VirtualScroller/VirtualScroller.vue.d.ts.map +1 -1
  204. package/dist/components/VirtualScroller/index.d.ts +1 -1
  205. package/dist/components/VirtualScroller/index.d.ts.map +1 -1
  206. package/dist/config-provider/style.css +890 -724
  207. package/dist/confirm-dialog/index.js +1 -1
  208. package/dist/confirm-dialog/style.css +904 -739
  209. package/dist/confirm-popup/index.js +1 -1
  210. package/dist/confirm-popup/style.css +759 -599
  211. package/dist/context-menu/style.css +207 -185
  212. package/dist/data-view/index.js +1 -1
  213. package/dist/data-view/style.css +223 -205
  214. package/dist/date-picker/index.js +2 -2
  215. package/dist/date-picker/style.css +326 -286
  216. package/dist/dialog/index.js +1 -1
  217. package/dist/dialog/style.css +887 -723
  218. package/dist/divider/style.css +164 -148
  219. package/dist/dock/style.css +210 -189
  220. package/dist/drawer/style.css +246 -228
  221. package/dist/dropdown/index.js +3 -3
  222. package/dist/dropdown/style.css +222 -205
  223. package/dist/fieldset/style.css +164 -148
  224. package/dist/file-upload/style.css +397 -364
  225. package/dist/flex/style.css +164 -148
  226. package/dist/float-label/style.css +164 -148
  227. package/dist/fluid/style.css +164 -148
  228. package/dist/form/style.css +210 -192
  229. package/dist/gallery/style.css +219 -200
  230. package/dist/grid/index.js +39 -39
  231. package/dist/grid/style.css +164 -148
  232. package/dist/icon/style.css +164 -148
  233. package/dist/icon-field/style.css +164 -148
  234. package/dist/index.d.ts +174 -174
  235. package/dist/index.d.ts.map +1 -1
  236. package/dist/index.js +1028 -976
  237. package/dist/inplace/style.css +164 -148
  238. package/dist/input/index.js +6 -7
  239. package/dist/input/style.css +361 -338
  240. package/dist/input-color/index.js +2 -2
  241. package/dist/input-color/style.css +214 -196
  242. package/dist/input-group/style.css +164 -148
  243. package/dist/input-number/index.js +15 -15
  244. package/dist/input-number/style.css +254 -228
  245. package/dist/input-otp/index.js +1 -1
  246. package/dist/input-otp/style.css +164 -148
  247. package/dist/input-password/index.js +16 -17
  248. package/dist/input-password/style.css +294 -265
  249. package/dist/input-tags/style.css +226 -202
  250. package/dist/knob/style.css +164 -148
  251. package/dist/label/style.css +164 -148
  252. package/dist/layout/index.js +135 -93
  253. package/dist/layout/style.css +534 -457
  254. package/dist/listbox/style.css +242 -216
  255. package/dist/locale/index.d.ts +1 -1
  256. package/dist/locale/index.d.ts.map +1 -1
  257. package/dist/mega-menu/style.css +241 -223
  258. package/dist/menu/style.css +217 -195
  259. package/dist/menubar/style.css +266 -240
  260. package/dist/message/style.css +357 -291
  261. package/dist/meter-group/style.css +200 -182
  262. package/dist/order-list/style.css +164 -148
  263. package/dist/pagination/index.js +1 -1
  264. package/dist/pagination/style.css +223 -205
  265. package/dist/panel/style.css +164 -148
  266. package/dist/pick-list/style.css +164 -148
  267. package/dist/popover/index.js +5 -5
  268. package/dist/popover/style.css +210 -193
  269. package/dist/progress-bar/style.css +164 -148
  270. package/dist/progress-spinner/style.css +164 -148
  271. package/dist/radio/index.js +4 -4
  272. package/dist/radio/style.css +164 -148
  273. package/dist/rating/style.css +164 -148
  274. package/dist/scroll-top/style.css +164 -148
  275. package/dist/scrollbar/style.css +232 -207
  276. package/dist/select/style.css +457 -428
  277. package/dist/select-button/style.css +228 -199
  278. package/dist/shared/Renderable.d.ts.map +1 -1
  279. package/dist/shared/config.d.ts.map +1 -1
  280. package/dist/shared/content.d.ts.map +1 -1
  281. package/dist/shared/overlayHost.d.ts.map +1 -1
  282. package/dist/shared/useModalOverlay.d.ts.map +1 -1
  283. package/dist/shared/vnode.d.ts.map +1 -1
  284. package/dist/sidebar/style.css +204 -186
  285. package/dist/skeleton/style.css +164 -148
  286. package/dist/slider/style.css +275 -243
  287. package/dist/space/style.css +164 -148
  288. package/dist/speed-dial/index.js +1 -1
  289. package/dist/speed-dial/style.css +164 -148
  290. package/dist/split-button/style.css +865 -690
  291. package/dist/splitter/style.css +164 -148
  292. package/dist/stepper/style.css +227 -206
  293. package/dist/styles/base.css +126 -125
  294. package/dist/styles.css +1 -1
  295. package/dist/switch/index.js +5 -5
  296. package/dist/switch/style.css +245 -200
  297. package/dist/table/index.js +3 -3
  298. package/dist/table/style.css +223 -205
  299. package/dist/tabs/style.css +164 -148
  300. package/dist/tag/style.css +164 -148
  301. package/dist/terminal/style.css +209 -181
  302. package/dist/textarea/index.js +11 -12
  303. package/dist/textarea/style.css +233 -210
  304. package/dist/theme/index.d.ts +5 -5
  305. package/dist/theme/index.d.ts.map +1 -1
  306. package/dist/theme/styles.css +38 -23
  307. package/dist/theme/tokens.d.ts +11 -0
  308. package/dist/theme/tokens.d.ts.map +1 -1
  309. package/dist/theme/useTheme.d.ts.map +1 -1
  310. package/dist/tiered-menu/style.css +254 -231
  311. package/dist/timeline/style.css +164 -148
  312. package/dist/toast/style.css +164 -148
  313. package/dist/toggle-button/style.css +164 -148
  314. package/dist/toolbar/style.css +164 -148
  315. package/dist/tooltip/style.css +164 -148
  316. package/dist/tree/index.js +11 -11
  317. package/dist/tree/style.css +164 -148
  318. package/dist/tree-select/index.js +1 -1
  319. package/dist/tree-select/style.css +297 -279
  320. package/dist/tree-table/style.css +164 -148
  321. package/dist/virtual-scroller/style.css +164 -148
  322. package/package.json +15 -11
@@ -16,12 +16,13 @@
16
16
  --wi-control-padding-x-small: 10px;
17
17
  --wi-control-padding-x-medium: 12px;
18
18
  --wi-control-padding-x-large: 14px;
19
- --wi-button-padding-x-small: 10px;
20
- --wi-button-padding-x-medium: 14px;
21
- --wi-button-padding-x-large: 18px;
19
+
22
20
  --wi-radius-control: 3px;
23
- --wi-focus-shadow: 0 0 0 2px color-mix(in srgb, var(--wi-color-primary) 20%, transparent);
24
- --wi-focus-shadow-danger: 0 0 0 2px color-mix(in srgb, var(--wi-color-danger) 20%, transparent);
21
+ --wi-border-width: 1px;
22
+ --wi-focus-shadow: 0 0 0 2px
23
+ color-mix(in srgb, var(--wi-color-primary) 20%, transparent);
24
+ --wi-focus-shadow-danger: 0 0 0 2px
25
+ color-mix(in srgb, var(--wi-color-danger) 20%, transparent);
25
26
  --wi-color-success: #159570;
26
27
  --wi-color-info: #2563eb;
27
28
  --wi-color-warning: #d97706;
@@ -39,10 +40,7 @@
39
40
  --wi-shadow-lg: 0 1rem 3rem rgb(15 23 42 / 0.25);
40
41
  --wi-shadow-sticky: 4px 0 8px color-mix(in srgb, #000 6%, transparent);
41
42
  --wi-shadow-sticky-end: -4px 0 8px color-mix(in srgb, #000 6%, transparent);
42
- --wi-terminal-bg: #111827;
43
- --wi-terminal-fg: #e5e7eb;
44
- --wi-terminal-prompt: #34d399;
45
- --wi-terminal-border: color-mix(in srgb, #fff 12%, transparent);
43
+
46
44
  /* Typography scale (component text, not control-height fonts) */
47
45
  --wi-font-size-xs: 0.75rem;
48
46
  --wi-font-size-sm: 0.8125rem;
@@ -56,8 +54,7 @@
56
54
  --wi-z-dropdown: calc(var(--wi-z-base) + 50);
57
55
  --wi-z-toast: calc(var(--wi-z-base) + 100);
58
56
  --wi-z-popper: 40;
59
- --wi-menu-min-width: 10rem;
60
- --wi-menu-min-width-lg: 12rem;
57
+
61
58
  --wi-control-affix-size: 2rem;
62
59
  --wi-control-affix-gap: 2.35rem;
63
60
  --wi-control-affix-padding: 2.5rem;
@@ -118,9 +115,6 @@
118
115
  --wi-control-padding-x-small: 8px;
119
116
  --wi-control-padding-x-medium: 10px;
120
117
  --wi-control-padding-x-large: 12px;
121
- --wi-button-padding-x-small: 8px;
122
- --wi-button-padding-x-medium: 12px;
123
- --wi-button-padding-x-large: 16px;
124
118
  }
125
119
 
126
120
  [data-wi-density="spacious"] {
@@ -139,9 +133,32 @@
139
133
  --wi-control-padding-x-small: 12px;
140
134
  --wi-control-padding-x-medium: 14px;
141
135
  --wi-control-padding-x-large: 16px;
142
- --wi-button-padding-x-small: 12px;
143
- --wi-button-padding-x-medium: 16px;
144
- --wi-button-padding-x-large: 20px;
136
+ }
137
+
138
+ [data-wi-density="compact"] .wi-layout-header {
139
+ --wi-layout-header-height: 48px;
140
+ }
141
+
142
+ [data-wi-density="compact"] .wi-layout-footer {
143
+ --wi-layout-footer-height: 40px;
144
+ }
145
+
146
+ [data-wi-density="compact"] .wi-layout-sider {
147
+ --wi-layout-sider-width: 240px;
148
+ --wi-layout-sider-collapsed-width: 44px;
149
+ }
150
+
151
+ [data-wi-density="spacious"] .wi-layout-header {
152
+ --wi-layout-header-height: 64px;
153
+ }
154
+
155
+ [data-wi-density="spacious"] .wi-layout-footer {
156
+ --wi-layout-footer-height: 56px;
157
+ }
158
+
159
+ [data-wi-density="spacious"] .wi-layout-sider {
160
+ --wi-layout-sider-width: 288px;
161
+ --wi-layout-sider-collapsed-width: 52px;
145
162
  }
146
163
 
147
164
  [data-theme="dark"] {
@@ -152,8 +169,10 @@
152
169
  --wi-color-text-muted: #94a3b8;
153
170
  --wi-color-border: #334155;
154
171
  --wi-color-focus-ring: #93c5fd;
155
- --wi-focus-shadow: 0 0 0 2px color-mix(in srgb, var(--wi-color-primary) 28%, transparent);
156
- --wi-focus-shadow-danger: 0 0 0 2px color-mix(in srgb, var(--wi-color-danger) 28%, transparent);
172
+ --wi-focus-shadow: 0 0 0 2px
173
+ color-mix(in srgb, var(--wi-color-primary) 28%, transparent);
174
+ --wi-focus-shadow-danger: 0 0 0 2px
175
+ color-mix(in srgb, var(--wi-color-danger) 28%, transparent);
157
176
  --wi-color-success: #5eead4;
158
177
  --wi-color-info: #93c5fd;
159
178
  --wi-color-warning: #fbbf24;
@@ -170,10 +189,6 @@
170
189
  --wi-shadow-lg: 0 1rem 3rem rgb(0 0 0 / 0.55);
171
190
  --wi-shadow-sticky: 4px 0 8px color-mix(in srgb, #000 35%, transparent);
172
191
  --wi-shadow-sticky-end: -4px 0 8px color-mix(in srgb, #000 35%, transparent);
173
- --wi-terminal-bg: #020617;
174
- --wi-terminal-fg: #e2e8f0;
175
- --wi-terminal-prompt: #5eead4;
176
- --wi-terminal-border: color-mix(in srgb, #fff 14%, transparent);
177
192
  }
178
193
 
179
194
  @media (prefers-reduced-motion: reduce) {
@@ -186,8 +201,8 @@
186
201
  }
187
202
  }
188
203
 
189
- /* Shared tokens consumption, type, focus, and mixed selectors. */
190
-
204
+ /* Shared tokens consumption, type, focus, and mixed selectors. */
205
+
191
206
  .wi-button,
192
207
  .wi-input,
193
208
  .wi-card,
@@ -247,14 +262,15 @@
247
262
  .wi-fluid,
248
263
  .wi-terminal {
249
264
  font-family: var(--wi-font-sans);
250
- }
251
-
265
+ box-sizing: border-box;
266
+ }
267
+
252
268
  .wi-button:disabled,
253
269
  .wi-input:disabled {
254
270
  cursor: not-allowed;
255
271
  opacity: var(--wi-opacity-disabled);
256
- }
257
-
272
+ }
273
+
258
274
  .wi-input-field__meta,
259
275
  .wi-textarea-field__meta,
260
276
  .wi-password-field__meta {
@@ -262,14 +278,14 @@
262
278
  display: flex;
263
279
  gap: var(--wi-space-2);
264
280
  justify-content: space-between;
265
- }
266
-
281
+ }
282
+
267
283
  .wi-input-field__meta:not(:has(.wi-input-field__help)),
268
284
  .wi-textarea-field__meta:not(:has(.wi-textarea-field__help)),
269
285
  .wi-password-field__meta:not(:has(.wi-password__feedback)) {
270
286
  justify-content: flex-end;
271
- }
272
-
287
+ }
288
+
273
289
  .wi-input-field__count,
274
290
  .wi-textarea-field__count,
275
291
  .wi-password-field__count {
@@ -277,16 +293,16 @@
277
293
  flex: 0 0 auto;
278
294
  font-size: var(--wi-font-size-xs);
279
295
  margin-left: auto;
280
- }
281
-
296
+ }
297
+
282
298
  .wi-dropdown__item--parent,
283
299
  .wi-contextmenu__item--parent {
284
300
  align-items: center;
285
301
  display: flex;
286
302
  justify-content: space-between;
287
303
  width: 100%;
288
- }
289
-
304
+ }
305
+
290
306
  .wi-dropdown__icon,
291
307
  .wi-dropdown__caret,
292
308
  .wi-menu__icon,
@@ -294,13 +310,13 @@
294
310
  .wi-contextmenu__icon,
295
311
  .wi-contextmenu__caret {
296
312
  flex-shrink: 0;
297
- }
298
-
313
+ }
314
+
299
315
  .wi-dropdown__submenu-wrap,
300
316
  .wi-contextmenu__submenu-wrap {
301
317
  position: relative;
302
- }
303
-
318
+ }
319
+
304
320
  .wi-dropdown__submenu,
305
321
  .wi-contextmenu__submenu {
306
322
  background: var(--wi-color-surface);
@@ -313,54 +329,54 @@
313
329
  position: absolute;
314
330
  top: 0;
315
331
  z-index: 1;
316
- }
317
-
332
+ }
333
+
318
334
  .wi-fade-enter-active,
319
335
  .wi-fade-leave-active {
320
336
  transition: opacity var(--wi-motion-exit) var(--wi-motion-ease);
321
- }
322
-
337
+ }
338
+
323
339
  .wi-fade-enter-from,
324
340
  .wi-fade-leave-to {
325
341
  opacity: 0;
326
- }
327
-
342
+ }
343
+
328
344
  .wi-scale-fade-enter-active {
329
345
  transition:
330
346
  opacity var(--wi-motion-enter) var(--wi-motion-ease),
331
347
  transform var(--wi-motion-enter) var(--wi-motion-ease);
332
- }
333
-
348
+ }
349
+
334
350
  .wi-scale-fade-leave-active {
335
351
  transition:
336
352
  opacity var(--wi-motion-exit) var(--wi-motion-ease),
337
353
  transform var(--wi-motion-exit) var(--wi-motion-ease);
338
- }
339
-
354
+ }
355
+
340
356
  .wi-scale-fade-enter-from,
341
357
  .wi-scale-fade-leave-to {
342
358
  opacity: 0;
343
359
  transform: translateY(calc(var(--wi-motion-distance) * -1)) scale(0.98);
344
- }
345
-
360
+ }
361
+
346
362
  .wi-slide-fade-enter-active {
347
363
  transition:
348
364
  opacity var(--wi-motion-enter) var(--wi-motion-ease),
349
365
  transform var(--wi-motion-enter) var(--wi-motion-ease);
350
- }
351
-
366
+ }
367
+
352
368
  .wi-slide-fade-leave-active {
353
369
  transition:
354
370
  opacity var(--wi-motion-exit) var(--wi-motion-ease),
355
371
  transform var(--wi-motion-exit) var(--wi-motion-ease);
356
- }
357
-
372
+ }
373
+
358
374
  .wi-slide-fade-enter-from,
359
375
  .wi-slide-fade-leave-to {
360
376
  opacity: 0;
361
377
  transform: translateY(calc(var(--wi-motion-distance) * -1));
362
- }
363
-
378
+ }
379
+
364
380
  .wi-checkbox,
365
381
  .wi-radio,
366
382
  .wi-switch {
@@ -372,21 +388,21 @@
372
388
  gap: var(--wi-space-2);
373
389
  /* 避免绝对定位 input 挂到上层 WiScrollbar,聚焦时把滚动容器拽回顶部 */
374
390
  position: relative;
375
- }
376
-
391
+ }
392
+
377
393
  .wi-checkbox--disabled,
378
394
  .wi-radio--disabled,
379
395
  .wi-switch--disabled {
380
396
  color: var(--wi-color-text-muted);
381
397
  cursor: not-allowed;
382
398
  opacity: var(--wi-opacity-disabled);
383
- }
384
-
399
+ }
400
+
385
401
  .wi-checkbox--invalid .wi-checkbox__control,
386
402
  .wi-radio--invalid .wi-radio__control {
387
403
  border-color: var(--wi-color-danger);
388
- }
389
-
404
+ }
405
+
390
406
  .wi-checkbox__input,
391
407
  .wi-radio__input,
392
408
  .wi-switch__input {
@@ -399,8 +415,8 @@
399
415
  position: absolute;
400
416
  white-space: nowrap;
401
417
  width: 1px;
402
- }
403
-
418
+ }
419
+
404
420
  .wi-checkbox__control,
405
421
  .wi-radio__control {
406
422
  align-items: center;
@@ -414,27 +430,27 @@
414
430
  background-color var(--wi-motion-fast) var(--wi-motion-ease),
415
431
  border-color var(--wi-motion-fast) var(--wi-motion-ease);
416
432
  width: 1.125rem;
417
- }
418
-
433
+ }
434
+
419
435
  .wi-checkbox__input:checked + .wi-checkbox__control,
420
436
  .wi-radio__input:checked + .wi-radio__control {
421
437
  background: var(--wi-color-primary);
422
438
  border-color: var(--wi-color-primary);
423
- }
424
-
439
+ }
440
+
425
441
  .wi-checkbox__input:focus-visible + .wi-checkbox__control,
426
442
  .wi-radio__input:focus-visible + .wi-radio__control,
427
443
  .wi-switch__input:focus-visible + .wi-switch__track {
428
444
  box-shadow: var(--wi-focus-shadow);
429
445
  outline: none;
430
- }
431
-
446
+ }
447
+
432
448
  .wi-checkbox__label,
433
449
  .wi-radio__label,
434
450
  .wi-switch__label {
435
451
  font-size: var(--wi-font-size-md);
436
- }
437
-
452
+ }
453
+
438
454
  .wi-textarea-field,
439
455
  .wi-select-field {
440
456
  display: grid;
@@ -444,31 +460,31 @@
444
460
  min-width: var(--wi-menu-min-width);
445
461
  position: relative;
446
462
  width: fit-content;
447
- }
448
-
463
+ }
464
+
449
465
  .wi-textarea-field--fluid,
450
466
  .wi-select-field--fluid {
451
467
  width: 100%;
452
- }
453
-
468
+ }
469
+
454
470
  .wi-textarea-field__label,
455
471
  .wi-select-field__label {
456
472
  color: var(--wi-color-text);
457
473
  font-size: var(--wi-font-size-md);
458
474
  font-weight: 600;
459
- }
460
-
475
+ }
476
+
461
477
  .wi-textarea-field__help,
462
478
  .wi-select-field__help {
463
479
  color: var(--wi-color-text-muted);
464
480
  font-size: var(--wi-font-size-xs);
465
- }
466
-
481
+ }
482
+
467
483
  .wi-textarea-field__help--error,
468
484
  .wi-select-field__help--error {
469
485
  color: var(--wi-color-danger);
470
- }
471
-
486
+ }
487
+
472
488
  .wi-textarea,
473
489
  .wi-select {
474
490
  background: var(--wi-color-surface);
@@ -481,55 +497,55 @@
481
497
  box-shadow var(--wi-motion-fast) var(--wi-motion-ease),
482
498
  background-color var(--wi-motion-fast) var(--wi-motion-ease);
483
499
  width: 100%;
484
- }
485
-
500
+ }
501
+
486
502
  .wi-textarea--invalid:focus-visible,
487
503
  .wi-textarea--error:focus-visible,
488
504
  .wi-select--error.wi-select--open,
489
505
  .wi-select--error:focus-visible {
490
506
  border-color: var(--wi-color-danger);
491
507
  box-shadow: var(--wi-focus-shadow-danger);
492
- }
493
-
508
+ }
509
+
494
510
  .wi-textarea:disabled,
495
511
  .wi-select:disabled,
496
512
  .wi-select--disabled {
497
513
  cursor: not-allowed;
498
514
  opacity: var(--wi-opacity-disabled);
499
- }
500
-
515
+ }
516
+
501
517
  .wi-icon-field--left :is(.wi-input, .wi-password__input, .wi-inputnumber__input, input) {
502
518
  padding-left: 2.5rem;
503
- }
504
-
519
+ }
520
+
505
521
  .wi-icon-field--right :is(.wi-input, .wi-password__input, .wi-inputnumber__input, input) {
506
522
  padding-right: var(--wi-control-affix-padding);
507
- }
508
-
523
+ }
524
+
509
525
  .wi-inputgroup > .wi-input,
510
526
  .wi-inputgroup > .wi-input-field,
511
527
  .wi-inputgroup > .wi-password-field,
512
528
  .wi-inputgroup > .wi-inputnumber-field {
513
529
  flex: 1 1 auto;
514
530
  min-width: 0;
515
- }
516
-
531
+ }
532
+
517
533
  .wi-inputgroup > .wi-input-field,
518
534
  .wi-inputgroup > .wi-password-field,
519
535
  .wi-inputgroup > .wi-inputnumber-field {
520
536
  display: flex;
521
537
  flex-direction: column;
522
538
  gap: 0;
523
- }
524
-
539
+ }
540
+
525
541
  .wi-inputgroup > .wi-input,
526
542
  .wi-inputgroup .wi-input,
527
543
  .wi-inputgroup .wi-password__input,
528
544
  .wi-inputgroup .wi-inputnumber__input {
529
545
  border-radius: 0;
530
546
  width: 100%;
531
- }
532
-
547
+ }
548
+
533
549
  .wi-inputgroup > :first-child.wi-input,
534
550
  .wi-inputgroup > :first-child .wi-input,
535
551
  .wi-inputgroup > :first-child .wi-password__input,
@@ -537,8 +553,8 @@
537
553
  .wi-inputgroup > :first-child.wi-inputgroup-addon {
538
554
  border-bottom-left-radius: var(--wi-radius-control);
539
555
  border-top-left-radius: var(--wi-radius-control);
540
- }
541
-
556
+ }
557
+
542
558
  .wi-inputgroup > :last-child.wi-input,
543
559
  .wi-inputgroup > :last-child .wi-input,
544
560
  .wi-inputgroup > :last-child .wi-password__input,
@@ -546,32 +562,32 @@
546
562
  .wi-inputgroup > :last-child.wi-inputgroup-addon {
547
563
  border-bottom-right-radius: var(--wi-radius-control);
548
564
  border-top-right-radius: var(--wi-radius-control);
549
- }
550
-
565
+ }
566
+
551
567
  .wi-inputgroup > .wi-inputgroup-addon + .wi-input,
552
568
  .wi-inputgroup > .wi-inputgroup-addon + .wi-input-field .wi-input,
553
569
  .wi-inputgroup > .wi-input + .wi-inputgroup-addon,
554
570
  .wi-inputgroup > .wi-input-field + .wi-inputgroup-addon {
555
571
  margin-left: -1px;
556
- }
557
-
572
+ }
573
+
558
574
  .wi-layout__scrollbar > .wi-scrollbar__wrap {
559
575
  height: 100%;
560
576
  overflow-x: hidden;
561
- }
562
-
577
+ }
578
+
563
579
  .wi-layout-sider__scrollbar > .wi-scrollbar__wrap {
564
580
  height: 100%;
565
581
  overflow-x: hidden;
566
- }
567
-
582
+ }
583
+
568
584
  .wi-menu__item--selected,
569
585
  .wi-menubar__trigger--selected,
570
586
  .wi-menubar__subitem--selected {
571
587
  background: color-mix(in srgb, var(--wi-color-primary) 12%, var(--wi-color-surface));
572
588
  color: var(--wi-color-primary);
573
- }
574
-
589
+ }
590
+
575
591
  .wi-orderlist__btn,
576
592
  .wi-picklist__btn {
577
593
  align-items: center;
@@ -587,25 +603,25 @@
587
603
  min-height: var(--wi-control-height-small, 1.75rem);
588
604
  min-width: var(--wi-control-affix-size);
589
605
  padding: var(--wi-space-1) var(--wi-space-2);
590
- }
591
-
606
+ }
607
+
592
608
  .wi-orderlist__btn:hover,
593
609
  .wi-picklist__btn:hover {
594
610
  border-color: var(--wi-color-primary);
595
611
  color: var(--wi-color-primary);
596
- }
597
-
612
+ }
613
+
598
614
  .wi-orderlist__btn:focus-visible,
599
615
  .wi-picklist__btn:focus-visible {
600
616
  border-color: var(--wi-color-primary);
601
617
  box-shadow: var(--wi-focus-shadow);
602
618
  outline: none;
603
- }
604
-
619
+ }
620
+
605
621
  .wi-picklist__btn .wi-icon + .wi-icon {
606
622
  margin-left: -0.35rem;
607
- }
608
-
623
+ }
624
+
609
625
  .wi-orderlist__list,
610
626
  .wi-picklist__list {
611
627
  background: var(--wi-color-surface);
@@ -619,33 +635,33 @@
619
635
  min-width: var(--wi-menu-min-width);
620
636
  overflow: auto;
621
637
  padding: var(--wi-space-1);
622
- }
623
-
638
+ }
639
+
624
640
  .wi-orderlist__item,
625
641
  .wi-picklist__item {
626
642
  border-radius: var(--wi-radius-sm);
627
643
  cursor: pointer;
628
644
  padding: var(--wi-space-2) var(--wi-space-3);
629
- }
630
-
645
+ }
646
+
631
647
  .wi-orderlist__item:hover,
632
648
  .wi-picklist__item:hover {
633
649
  background: color-mix(in srgb, var(--wi-color-primary) 8%, var(--wi-color-surface));
634
- }
635
-
650
+ }
651
+
636
652
  .wi-orderlist__item:focus-visible,
637
653
  .wi-picklist__item:focus-visible {
638
654
  box-shadow: var(--wi-focus-shadow);
639
655
  outline: none;
640
- }
641
-
656
+ }
657
+
642
658
  .wi-orderlist__item--selected,
643
659
  .wi-picklist__item--selected {
644
660
  background: color-mix(in srgb, var(--wi-color-primary) 14%, var(--wi-color-surface));
645
661
  color: var(--wi-color-primary);
646
662
  font-weight: 600;
647
- }
648
-
663
+ }
664
+
649
665
  .wi-carousel__nav,
650
666
  .wi-gallery__nav {
651
667
  background: var(--wi-color-surface);
@@ -657,14 +673,14 @@
657
673
  font: inherit;
658
674
  height: var(--wi-control-affix-size);
659
675
  width: var(--wi-control-affix-size);
660
- }
661
-
676
+ }
677
+
662
678
  .wi-carousel__nav:disabled,
663
679
  .wi-gallery__nav:disabled {
664
680
  cursor: not-allowed;
665
681
  opacity: 0.4;
666
- }
667
-
682
+ }
683
+
668
684
  /* Shared Naive-like hover/focus for remaining form triggers */
669
685
  .wi-inputnumber__input:hover:not(:disabled):not(:focus),
670
686
  .wi-password__input:hover:not(:disabled):not(:focus),
@@ -677,8 +693,8 @@
677
693
  .wi-togglebutton:hover:not(:disabled):not(.wi-togglebutton--checked),
678
694
  .wi-inplace__display:hover {
679
695
  border-color: var(--wi-color-primary-hover);
680
- }
681
-
696
+ }
697
+
682
698
  .wi-inputnumber__input:focus-visible,
683
699
  .wi-password__input:focus-visible,
684
700
  .wi-datepicker__input:focus-visible,
@@ -696,34 +712,34 @@
696
712
  border-color: var(--wi-color-primary-hover);
697
713
  box-shadow: var(--wi-focus-shadow);
698
714
  outline: none;
699
- }
700
-
715
+ }
716
+
701
717
  .wi-inputnumber--invalid .wi-inputnumber__input:focus-visible,
702
718
  .wi-password--invalid .wi-password__input:focus-visible,
703
719
  .wi-datepicker--invalid .wi-datepicker__input:focus-visible {
704
720
  border-color: var(--wi-color-danger);
705
721
  box-shadow: var(--wi-focus-shadow-danger);
706
- }
707
-
722
+ }
723
+
708
724
  .wi-checkbox-group,
709
725
  .wi-radio-group {
710
726
  display: flex;
711
727
  flex-wrap: wrap;
712
728
  gap: var(--wi-space-3);
713
- }
714
-
729
+ }
730
+
715
731
  .wi-checkbox--small .wi-checkbox__control,
716
732
  .wi-radio--small .wi-radio__control {
717
733
  height: 0.95rem;
718
734
  width: 0.95rem;
719
- }
720
-
735
+ }
736
+
721
737
  .wi-checkbox--large .wi-checkbox__control,
722
738
  .wi-radio--large .wi-radio__control {
723
739
  height: 1.35rem;
724
740
  width: 1.35rem;
725
- }
726
-
741
+ }
742
+
727
743
  .wi-inputnumber__clear,
728
744
  .wi-autocomplete__clear {
729
745
  background: transparent;
@@ -732,7 +748,7 @@
732
748
  cursor: pointer;
733
749
  font: inherit;
734
750
  line-height: 1;
735
- }
751
+ }
736
752
 
737
753
  .wi-icon {
738
754
  display: inline-flex;
@@ -773,495 +789,638 @@
773
789
  }
774
790
  }
775
791
 
776
- .wi-button {
777
- --wi-button-bg: var(--wi-color-primary);
778
- --wi-button-fg: var(--wi-color-on-emphasis);
779
- --wi-button-border: var(--wi-color-primary);
780
- --wi-button-hover-bg: var(--wi-color-primary-hover);
781
- --wi-button-hover-fg: var(--wi-color-on-emphasis);
782
- --wi-button-hover-border: var(--wi-color-primary-hover);
783
- --wi-button-active-bg: color-mix(in srgb, var(--wi-color-primary) 82%, black);
784
- align-items: center;
785
- background: var(--wi-button-bg);
786
- border: 1px solid var(--wi-button-border);
787
- border-radius: var(--wi-radius-control);
788
- color: var(--wi-button-fg);
789
- cursor: pointer;
790
- display: inline-flex;
791
- flex-direction: row;
792
- font-size: var(--wi-control-font-medium);
793
- font-weight: 600;
794
- gap: var(--wi-space-2);
795
- justify-content: center;
796
- line-height: 1;
797
- min-height: var(--wi-control-height-medium);
798
- padding: 0 var(--wi-button-padding-x-medium);
799
- position: relative;
800
- transition:
801
- background-color var(--wi-motion-fast) var(--wi-motion-ease),
802
- border-color var(--wi-motion-fast) var(--wi-motion-ease),
803
- color var(--wi-motion-fast) var(--wi-motion-ease),
804
- box-shadow var(--wi-motion-fast) var(--wi-motion-ease);
805
- vertical-align: middle;
806
- white-space: nowrap;
792
+ .wi-button {
793
+ --wi-button-padding-x-small: var(--wi-control-padding-x-small);
794
+ --wi-button-padding-x-medium: calc(
795
+ var(--wi-control-padding-x-medium) + var(--wi-space-1)
796
+ );
797
+ --wi-button-padding-x-large: calc(
798
+ var(--wi-control-padding-x-large) + var(--wi-space-1)
799
+ );
800
+ --wi-button-icon-stack-min-height: 3.25rem;
801
+ --wi-button-badge-min-width: 1.15rem;
802
+ --wi-button-spinner-size: 0.875rem;
803
+ --wi-button-bg: var(--wi-color-primary);
804
+ --wi-button-fg: var(--wi-color-on-emphasis);
805
+ --wi-button-border: var(--wi-color-primary);
806
+ --wi-button-hover-bg: var(--wi-color-primary-hover);
807
+ --wi-button-hover-fg: var(--wi-color-on-emphasis);
808
+ --wi-button-hover-border: var(--wi-color-primary-hover);
809
+ --wi-button-active-bg: color-mix(
810
+ in srgb,
811
+ var(--wi-color-primary) 82%,
812
+ black
813
+ );
814
+ align-items: center;
815
+ background: var(--wi-button-bg);
816
+ border: 1px solid var(--wi-button-border);
817
+ border-radius: var(--wi-radius-control);
818
+ color: var(--wi-button-fg);
819
+ cursor: pointer;
820
+ display: inline-flex;
821
+ flex-direction: row;
822
+ font-size: var(--wi-control-font-medium);
823
+ font-weight: 600;
824
+ gap: var(--wi-space-2);
825
+ justify-content: center;
826
+ line-height: 1;
827
+ min-height: var(--wi-control-height-medium);
828
+ padding: 0 var(--wi-button-padding-x-medium);
829
+ position: relative;
830
+ transition:
831
+ background-color var(--wi-motion-fast) var(--wi-motion-ease),
832
+ border-color var(--wi-motion-fast) var(--wi-motion-ease),
833
+ color var(--wi-motion-fast) var(--wi-motion-ease),
834
+ box-shadow var(--wi-motion-fast) var(--wi-motion-ease);
835
+ vertical-align: middle;
836
+ white-space: nowrap;
837
+ }
838
+
839
+ .wi-button:hover:not(:disabled) {
840
+ background: var(--wi-button-hover-bg);
841
+ border-color: var(--wi-button-hover-border);
842
+ color: var(--wi-button-hover-fg);
843
+ }
844
+
845
+ .wi-button:active:not(:disabled) {
846
+ background: var(--wi-button-active-bg);
847
+ }
848
+
849
+ /* Naive-style focus: soft glow, not outline-offset ring */
850
+ .wi-button:focus {
851
+ outline: none;
852
+ }
853
+
854
+ .wi-button:focus-visible {
855
+ box-shadow: var(--wi-focus-shadow);
856
+ outline: none;
857
+ }
858
+
859
+ .wi-button--primary {
860
+ --wi-button-bg: var(--wi-color-primary);
861
+ --wi-button-fg: var(--wi-color-on-emphasis);
862
+ --wi-button-border: var(--wi-color-primary);
863
+ --wi-button-hover-bg: var(--wi-color-primary-hover);
864
+ --wi-button-hover-fg: var(--wi-color-on-emphasis);
865
+ --wi-button-hover-border: var(--wi-color-primary-hover);
866
+ --wi-button-active-bg: color-mix(
867
+ in srgb,
868
+ var(--wi-color-primary) 82%,
869
+ black
870
+ );
871
+ }
872
+
873
+ .wi-button--secondary {
874
+ --wi-button-bg: color-mix(
875
+ in srgb,
876
+ var(--wi-color-text-muted) 16%,
877
+ var(--wi-color-surface)
878
+ );
879
+ --wi-button-fg: var(--wi-color-text);
880
+ --wi-button-border: transparent;
881
+ --wi-button-hover-bg: color-mix(
882
+ in srgb,
883
+ var(--wi-color-text-muted) 24%,
884
+ var(--wi-color-surface)
885
+ );
886
+ --wi-button-hover-fg: var(--wi-color-text);
887
+ --wi-button-hover-border: transparent;
888
+ --wi-button-active-bg: color-mix(
889
+ in srgb,
890
+ var(--wi-color-text-muted) 32%,
891
+ var(--wi-color-surface)
892
+ );
893
+ }
894
+
895
+ .wi-button--success {
896
+ --wi-button-bg: var(--wi-color-success);
897
+ --wi-button-fg: var(--wi-color-on-emphasis);
898
+ --wi-button-border: var(--wi-color-success);
899
+ --wi-button-hover-bg: color-mix(
900
+ in srgb,
901
+ var(--wi-color-success) 85%,
902
+ black
903
+ );
904
+ --wi-button-hover-fg: var(--wi-color-on-emphasis);
905
+ --wi-button-hover-border: color-mix(
906
+ in srgb,
907
+ var(--wi-color-success) 85%,
908
+ black
909
+ );
910
+ --wi-button-active-bg: color-mix(
911
+ in srgb,
912
+ var(--wi-color-success) 75%,
913
+ black
914
+ );
915
+ }
916
+
917
+ .wi-button--info {
918
+ --wi-button-bg: var(--wi-color-info);
919
+ --wi-button-fg: var(--wi-color-on-emphasis);
920
+ --wi-button-border: var(--wi-color-info);
921
+ --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-info) 85%, black);
922
+ --wi-button-hover-fg: var(--wi-color-on-emphasis);
923
+ --wi-button-hover-border: color-mix(
924
+ in srgb,
925
+ var(--wi-color-info) 85%,
926
+ black
927
+ );
928
+ --wi-button-active-bg: color-mix(in srgb, var(--wi-color-info) 75%, black);
929
+ }
930
+
931
+ .wi-button--warn {
932
+ --wi-button-bg: var(--wi-color-warn);
933
+ --wi-button-fg: var(--wi-color-on-emphasis);
934
+ --wi-button-border: var(--wi-color-warn);
935
+ --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-warn) 85%, black);
936
+ --wi-button-hover-fg: var(--wi-color-on-emphasis);
937
+ --wi-button-hover-border: color-mix(
938
+ in srgb,
939
+ var(--wi-color-warn) 85%,
940
+ black
941
+ );
942
+ --wi-button-active-bg: color-mix(in srgb, var(--wi-color-warn) 75%, black);
943
+ }
944
+
945
+ .wi-button--help {
946
+ --wi-button-bg: var(--wi-color-help);
947
+ --wi-button-fg: var(--wi-color-on-emphasis);
948
+ --wi-button-border: var(--wi-color-help);
949
+ --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-help) 85%, black);
950
+ --wi-button-hover-fg: var(--wi-color-on-emphasis);
951
+ --wi-button-hover-border: color-mix(
952
+ in srgb,
953
+ var(--wi-color-help) 85%,
954
+ black
955
+ );
956
+ --wi-button-active-bg: color-mix(in srgb, var(--wi-color-help) 75%, black);
957
+ }
958
+
959
+ .wi-button--danger {
960
+ --wi-button-bg: var(--wi-color-danger);
961
+ --wi-button-fg: var(--wi-color-on-emphasis);
962
+ --wi-button-border: var(--wi-color-danger);
963
+ --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-danger) 85%, black);
964
+ --wi-button-hover-fg: var(--wi-color-on-emphasis);
965
+ --wi-button-hover-border: color-mix(
966
+ in srgb,
967
+ var(--wi-color-danger) 85%,
968
+ black
969
+ );
970
+ --wi-button-active-bg: color-mix(
971
+ in srgb,
972
+ var(--wi-color-danger) 75%,
973
+ black
974
+ );
975
+ }
976
+
977
+ .wi-button--contrast {
978
+ --wi-button-bg: var(--wi-color-contrast);
979
+ --wi-button-fg: var(--wi-color-contrast-fg);
980
+ --wi-button-border: var(--wi-color-contrast);
981
+ --wi-button-hover-bg: var(--wi-color-contrast-hover);
982
+ --wi-button-hover-fg: var(--wi-color-contrast-fg);
983
+ --wi-button-hover-border: var(--wi-color-contrast-hover);
984
+ --wi-button-active-bg: var(--wi-color-contrast-active);
985
+ }
986
+
987
+ .wi-button--outlined {
988
+ --wi-button-bg: transparent;
989
+ --wi-button-fg: var(--wi-button-border);
990
+ --wi-button-hover-bg: color-mix(
991
+ in srgb,
992
+ var(--wi-button-border) 10%,
993
+ transparent
994
+ );
995
+ --wi-button-hover-fg: var(--wi-button-border);
996
+ --wi-button-hover-border: var(--wi-button-border);
997
+ --wi-button-active-bg: color-mix(
998
+ in srgb,
999
+ var(--wi-button-border) 16%,
1000
+ transparent
1001
+ );
1002
+ }
1003
+
1004
+ .wi-button--secondary.wi-button--outlined {
1005
+ --wi-button-border: var(--wi-color-border);
1006
+ --wi-button-fg: var(--wi-color-text);
1007
+ --wi-button-hover-fg: var(--wi-color-text);
1008
+ }
1009
+
1010
+ .wi-button--text,
1011
+ .wi-button--link {
1012
+ --wi-button-bg: transparent;
1013
+ --wi-button-border: transparent;
1014
+ --wi-button-fg: var(--wi-color-primary);
1015
+ --wi-button-hover-bg: color-mix(
1016
+ in srgb,
1017
+ var(--wi-color-primary) 10%,
1018
+ transparent
1019
+ );
1020
+ --wi-button-hover-fg: var(--wi-color-primary);
1021
+ --wi-button-hover-border: transparent;
1022
+ --wi-button-active-bg: color-mix(
1023
+ in srgb,
1024
+ var(--wi-color-primary) 16%,
1025
+ transparent
1026
+ );
1027
+ }
1028
+
1029
+ .wi-button--secondary.wi-button--text,
1030
+ .wi-button--secondary.wi-button--link {
1031
+ --wi-button-fg: var(--wi-color-text-muted);
1032
+ --wi-button-hover-bg: color-mix(
1033
+ in srgb,
1034
+ var(--wi-color-text-muted) 12%,
1035
+ transparent
1036
+ );
1037
+ --wi-button-hover-fg: var(--wi-color-text);
1038
+ }
1039
+
1040
+ .wi-button--success.wi-button--text,
1041
+ .wi-button--success.wi-button--link,
1042
+ .wi-button--success.wi-button--outlined {
1043
+ --wi-button-fg: var(--wi-color-success);
1044
+ --wi-button-border: var(--wi-color-success);
1045
+ --wi-button-hover-bg: color-mix(
1046
+ in srgb,
1047
+ var(--wi-color-success) 10%,
1048
+ transparent
1049
+ );
1050
+ --wi-button-hover-fg: var(--wi-color-success);
1051
+ --wi-button-hover-border: var(--wi-color-success);
1052
+ }
1053
+
1054
+ .wi-button--info.wi-button--text,
1055
+ .wi-button--info.wi-button--link,
1056
+ .wi-button--info.wi-button--outlined {
1057
+ --wi-button-fg: var(--wi-color-info);
1058
+ --wi-button-border: var(--wi-color-info);
1059
+ --wi-button-hover-bg: color-mix(
1060
+ in srgb,
1061
+ var(--wi-color-info) 10%,
1062
+ transparent
1063
+ );
1064
+ --wi-button-hover-fg: var(--wi-color-info);
1065
+ --wi-button-hover-border: var(--wi-color-info);
1066
+ }
1067
+
1068
+ .wi-button--warn.wi-button--text,
1069
+ .wi-button--warn.wi-button--link,
1070
+ .wi-button--warn.wi-button--outlined {
1071
+ --wi-button-fg: var(--wi-color-warn);
1072
+ --wi-button-border: var(--wi-color-warn);
1073
+ --wi-button-hover-bg: color-mix(
1074
+ in srgb,
1075
+ var(--wi-color-warn) 10%,
1076
+ transparent
1077
+ );
1078
+ --wi-button-hover-fg: var(--wi-color-warn);
1079
+ --wi-button-hover-border: var(--wi-color-warn);
1080
+ }
1081
+
1082
+ .wi-button--help.wi-button--text,
1083
+ .wi-button--help.wi-button--link,
1084
+ .wi-button--help.wi-button--outlined {
1085
+ --wi-button-fg: var(--wi-color-help);
1086
+ --wi-button-border: var(--wi-color-help);
1087
+ --wi-button-hover-bg: color-mix(
1088
+ in srgb,
1089
+ var(--wi-color-help) 10%,
1090
+ transparent
1091
+ );
1092
+ --wi-button-hover-fg: var(--wi-color-help);
1093
+ --wi-button-hover-border: var(--wi-color-help);
1094
+ }
1095
+
1096
+ .wi-button--danger.wi-button--text,
1097
+ .wi-button--danger.wi-button--link,
1098
+ .wi-button--danger.wi-button--outlined {
1099
+ --wi-button-fg: var(--wi-color-danger);
1100
+ --wi-button-border: var(--wi-color-danger);
1101
+ --wi-button-hover-bg: color-mix(
1102
+ in srgb,
1103
+ var(--wi-color-danger) 10%,
1104
+ transparent
1105
+ );
1106
+ --wi-button-hover-fg: var(--wi-color-danger);
1107
+ --wi-button-hover-border: var(--wi-color-danger);
1108
+ }
1109
+
1110
+ .wi-button--contrast.wi-button--text,
1111
+ .wi-button--contrast.wi-button--link,
1112
+ .wi-button--contrast.wi-button--outlined {
1113
+ --wi-button-fg: var(--wi-color-contrast);
1114
+ --wi-button-border: var(--wi-color-contrast);
1115
+ --wi-button-hover-bg: color-mix(
1116
+ in srgb,
1117
+ var(--wi-color-contrast) 10%,
1118
+ transparent
1119
+ );
1120
+ --wi-button-hover-fg: var(--wi-color-contrast);
1121
+ --wi-button-hover-border: var(--wi-color-contrast);
1122
+ }
1123
+
1124
+ .wi-button--plain.wi-button--text,
1125
+ .wi-button--plain.wi-button--outlined,
1126
+ .wi-button--plain.wi-button--link {
1127
+ --wi-button-fg: var(--wi-color-text-muted);
1128
+ --wi-button-border: var(--wi-color-border);
1129
+ --wi-button-hover-bg: color-mix(
1130
+ in srgb,
1131
+ var(--wi-color-text-muted) 12%,
1132
+ transparent
1133
+ );
1134
+ --wi-button-hover-fg: var(--wi-color-text);
1135
+ --wi-button-hover-border: var(--wi-color-border);
1136
+ }
1137
+
1138
+ .wi-button--link {
1139
+ height: auto;
1140
+ min-height: 0;
1141
+ padding: 0;
1142
+ }
1143
+
1144
+ .wi-button--link:hover:not(:disabled) {
1145
+ text-decoration: underline;
1146
+ }
1147
+
1148
+ .wi-button--ghost {
1149
+ --wi-button-bg: transparent;
1150
+ --wi-button-fg: var(--wi-button-border);
1151
+ --wi-button-hover-bg: color-mix(
1152
+ in srgb,
1153
+ var(--wi-button-border) 12%,
1154
+ transparent
1155
+ );
1156
+ --wi-button-hover-fg: var(--wi-button-border);
1157
+ --wi-button-hover-border: var(--wi-button-border);
1158
+ --wi-button-active-bg: color-mix(
1159
+ in srgb,
1160
+ var(--wi-button-border) 18%,
1161
+ transparent
1162
+ );
1163
+ }
1164
+
1165
+ .wi-button--secondary.wi-button--ghost {
1166
+ --wi-button-border: var(--wi-color-border);
1167
+ --wi-button-fg: var(--wi-color-text);
1168
+ --wi-button-hover-fg: var(--wi-color-text);
1169
+ }
1170
+
1171
+ .wi-button--success.wi-button--ghost {
1172
+ --wi-button-fg: var(--wi-color-success);
1173
+ --wi-button-border: var(--wi-color-success);
1174
+ }
1175
+
1176
+ .wi-button--info.wi-button--ghost {
1177
+ --wi-button-fg: var(--wi-color-info);
1178
+ --wi-button-border: var(--wi-color-info);
1179
+ }
1180
+
1181
+ .wi-button--warn.wi-button--ghost {
1182
+ --wi-button-fg: var(--wi-color-warn);
1183
+ --wi-button-border: var(--wi-color-warn);
1184
+ }
1185
+
1186
+ .wi-button--help.wi-button--ghost {
1187
+ --wi-button-fg: var(--wi-color-help);
1188
+ --wi-button-border: var(--wi-color-help);
1189
+ }
1190
+
1191
+ .wi-button--danger.wi-button--ghost {
1192
+ --wi-button-fg: var(--wi-color-danger);
1193
+ --wi-button-border: var(--wi-color-danger);
807
1194
  }
808
-
809
- .wi-button:hover:not(:disabled) {
810
- background: var(--wi-button-hover-bg);
811
- border-color: var(--wi-button-hover-border);
812
- color: var(--wi-button-hover-fg);
1195
+
1196
+ .wi-button--contrast.wi-button--ghost {
1197
+ --wi-button-fg: var(--wi-color-contrast);
1198
+ --wi-button-border: var(--wi-color-contrast);
813
1199
  }
814
1200
 
815
- .wi-button:active:not(:disabled) {
816
- background: var(--wi-button-active-bg);
1201
+ .wi-button--quaternary {
1202
+ --wi-button-bg: transparent;
1203
+ --wi-button-border: transparent;
1204
+ --wi-button-fg: var(--wi-color-text);
1205
+ --wi-button-hover-bg: color-mix(
1206
+ in srgb,
1207
+ var(--wi-color-text-muted) 10%,
1208
+ transparent
1209
+ );
1210
+ --wi-button-hover-fg: var(--wi-color-text);
1211
+ --wi-button-hover-border: transparent;
1212
+ --wi-button-active-bg: color-mix(
1213
+ in srgb,
1214
+ var(--wi-color-text-muted) 16%,
1215
+ transparent
1216
+ );
817
1217
  }
818
1218
 
819
- /* Naive-style focus: soft glow, not outline-offset ring */
820
- .wi-button:focus {
821
- outline: none;
1219
+ .wi-button--custom {
1220
+ --wi-button-bg: var(--wi-button-color);
1221
+ --wi-button-fg: var(--wi-color-on-emphasis);
1222
+ --wi-button-border: var(--wi-button-color);
1223
+ --wi-button-hover-bg: color-mix(in srgb, var(--wi-button-color) 85%, black);
1224
+ --wi-button-hover-fg: var(--wi-color-on-emphasis);
1225
+ --wi-button-hover-border: color-mix(
1226
+ in srgb,
1227
+ var(--wi-button-color) 85%,
1228
+ black
1229
+ );
1230
+ --wi-button-active-bg: color-mix(
1231
+ in srgb,
1232
+ var(--wi-button-color) 75%,
1233
+ black
1234
+ );
822
1235
  }
823
1236
 
824
- .wi-button:focus-visible {
825
- box-shadow: var(--wi-focus-shadow);
826
- outline: none;
1237
+ .wi-button--custom.wi-button--outlined,
1238
+ .wi-button--custom.wi-button--ghost,
1239
+ .wi-button--custom.wi-button--text,
1240
+ .wi-button--custom.wi-button--quaternary,
1241
+ .wi-button--custom.wi-button--link {
1242
+ --wi-button-bg: transparent;
1243
+ --wi-button-fg: var(--wi-button-color);
1244
+ --wi-button-border: var(--wi-button-color);
1245
+ --wi-button-hover-bg: color-mix(
1246
+ in srgb,
1247
+ var(--wi-button-color) 12%,
1248
+ transparent
1249
+ );
1250
+ --wi-button-hover-fg: var(--wi-button-color);
1251
+ --wi-button-hover-border: var(--wi-button-color);
827
1252
  }
828
1253
 
829
- .wi-button--primary {
830
- --wi-button-bg: var(--wi-color-primary);
831
- --wi-button-fg: var(--wi-color-on-emphasis);
832
- --wi-button-border: var(--wi-color-primary);
833
- --wi-button-hover-bg: var(--wi-color-primary-hover);
834
- --wi-button-hover-fg: var(--wi-color-on-emphasis);
835
- --wi-button-hover-border: var(--wi-color-primary-hover);
836
- --wi-button-active-bg: color-mix(in srgb, var(--wi-color-primary) 82%, black);
837
- }
838
-
839
- .wi-button--secondary {
840
- --wi-button-bg: color-mix(in srgb, var(--wi-color-text-muted) 16%, var(--wi-color-surface));
841
- --wi-button-fg: var(--wi-color-text);
842
- --wi-button-border: transparent;
843
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-text-muted) 24%, var(--wi-color-surface));
844
- --wi-button-hover-fg: var(--wi-color-text);
845
- --wi-button-hover-border: transparent;
846
- --wi-button-active-bg: color-mix(in srgb, var(--wi-color-text-muted) 32%, var(--wi-color-surface));
847
- }
848
-
849
- .wi-button--success {
850
- --wi-button-bg: var(--wi-color-success);
851
- --wi-button-fg: var(--wi-color-on-emphasis);
852
- --wi-button-border: var(--wi-color-success);
853
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-success) 85%, black);
854
- --wi-button-hover-fg: var(--wi-color-on-emphasis);
855
- --wi-button-hover-border: color-mix(in srgb, var(--wi-color-success) 85%, black);
856
- --wi-button-active-bg: color-mix(in srgb, var(--wi-color-success) 75%, black);
857
- }
858
-
859
- .wi-button--info {
860
- --wi-button-bg: var(--wi-color-info);
861
- --wi-button-fg: var(--wi-color-on-emphasis);
862
- --wi-button-border: var(--wi-color-info);
863
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-info) 85%, black);
864
- --wi-button-hover-fg: var(--wi-color-on-emphasis);
865
- --wi-button-hover-border: color-mix(in srgb, var(--wi-color-info) 85%, black);
866
- --wi-button-active-bg: color-mix(in srgb, var(--wi-color-info) 75%, black);
867
- }
868
-
869
- .wi-button--warn {
870
- --wi-button-bg: var(--wi-color-warn);
871
- --wi-button-fg: var(--wi-color-on-emphasis);
872
- --wi-button-border: var(--wi-color-warn);
873
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-warn) 85%, black);
874
- --wi-button-hover-fg: var(--wi-color-on-emphasis);
875
- --wi-button-hover-border: color-mix(in srgb, var(--wi-color-warn) 85%, black);
876
- --wi-button-active-bg: color-mix(in srgb, var(--wi-color-warn) 75%, black);
877
- }
878
-
879
- .wi-button--help {
880
- --wi-button-bg: var(--wi-color-help);
881
- --wi-button-fg: var(--wi-color-on-emphasis);
882
- --wi-button-border: var(--wi-color-help);
883
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-help) 85%, black);
884
- --wi-button-hover-fg: var(--wi-color-on-emphasis);
885
- --wi-button-hover-border: color-mix(in srgb, var(--wi-color-help) 85%, black);
886
- --wi-button-active-bg: color-mix(in srgb, var(--wi-color-help) 75%, black);
887
- }
888
-
889
- .wi-button--danger {
890
- --wi-button-bg: var(--wi-color-danger);
891
- --wi-button-fg: var(--wi-color-on-emphasis);
892
- --wi-button-border: var(--wi-color-danger);
893
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-danger) 85%, black);
894
- --wi-button-hover-fg: var(--wi-color-on-emphasis);
895
- --wi-button-hover-border: color-mix(in srgb, var(--wi-color-danger) 85%, black);
896
- --wi-button-active-bg: color-mix(in srgb, var(--wi-color-danger) 75%, black);
897
- }
898
-
899
- .wi-button--contrast {
900
- --wi-button-bg: var(--wi-color-contrast);
901
- --wi-button-fg: var(--wi-color-contrast-fg);
902
- --wi-button-border: var(--wi-color-contrast);
903
- --wi-button-hover-bg: var(--wi-color-contrast-hover);
904
- --wi-button-hover-fg: var(--wi-color-contrast-fg);
905
- --wi-button-hover-border: var(--wi-color-contrast-hover);
906
- --wi-button-active-bg: var(--wi-color-contrast-active);
907
- }
908
-
909
- .wi-button--outlined {
910
- --wi-button-bg: transparent;
911
- --wi-button-fg: var(--wi-button-border);
912
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-button-border) 10%, transparent);
913
- --wi-button-hover-fg: var(--wi-button-border);
914
- --wi-button-hover-border: var(--wi-button-border);
915
- --wi-button-active-bg: color-mix(in srgb, var(--wi-button-border) 16%, transparent);
916
- }
917
-
918
- .wi-button--secondary.wi-button--outlined {
919
- --wi-button-border: var(--wi-color-border);
920
- --wi-button-fg: var(--wi-color-text);
921
- --wi-button-hover-fg: var(--wi-color-text);
922
- }
923
-
924
- .wi-button--text,
925
- .wi-button--link {
926
- --wi-button-bg: transparent;
927
- --wi-button-border: transparent;
928
- --wi-button-fg: var(--wi-color-primary);
929
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-primary) 10%, transparent);
930
- --wi-button-hover-fg: var(--wi-color-primary);
931
- --wi-button-hover-border: transparent;
932
- --wi-button-active-bg: color-mix(in srgb, var(--wi-color-primary) 16%, transparent);
933
- }
934
-
935
- .wi-button--secondary.wi-button--text,
936
- .wi-button--secondary.wi-button--link {
937
- --wi-button-fg: var(--wi-color-text-muted);
938
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-text-muted) 12%, transparent);
939
- --wi-button-hover-fg: var(--wi-color-text);
940
- }
941
-
942
- .wi-button--success.wi-button--text,
943
- .wi-button--success.wi-button--link,
944
- .wi-button--success.wi-button--outlined {
945
- --wi-button-fg: var(--wi-color-success);
946
- --wi-button-border: var(--wi-color-success);
947
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-success) 10%, transparent);
948
- --wi-button-hover-fg: var(--wi-color-success);
949
- --wi-button-hover-border: var(--wi-color-success);
950
- }
951
-
952
- .wi-button--info.wi-button--text,
953
- .wi-button--info.wi-button--link,
954
- .wi-button--info.wi-button--outlined {
955
- --wi-button-fg: var(--wi-color-info);
956
- --wi-button-border: var(--wi-color-info);
957
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-info) 10%, transparent);
958
- --wi-button-hover-fg: var(--wi-color-info);
959
- --wi-button-hover-border: var(--wi-color-info);
960
- }
961
-
962
- .wi-button--warn.wi-button--text,
963
- .wi-button--warn.wi-button--link,
964
- .wi-button--warn.wi-button--outlined {
965
- --wi-button-fg: var(--wi-color-warn);
966
- --wi-button-border: var(--wi-color-warn);
967
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-warn) 10%, transparent);
968
- --wi-button-hover-fg: var(--wi-color-warn);
969
- --wi-button-hover-border: var(--wi-color-warn);
1254
+ .wi-button--custom.wi-button--text,
1255
+ .wi-button--custom.wi-button--quaternary,
1256
+ .wi-button--custom.wi-button--link {
1257
+ --wi-button-border: transparent;
1258
+ --wi-button-hover-border: transparent;
970
1259
  }
971
1260
 
972
- .wi-button--help.wi-button--text,
973
- .wi-button--help.wi-button--link,
974
- .wi-button--help.wi-button--outlined {
975
- --wi-button-fg: var(--wi-color-help);
976
- --wi-button-border: var(--wi-color-help);
977
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-help) 10%, transparent);
978
- --wi-button-hover-fg: var(--wi-color-help);
979
- --wi-button-hover-border: var(--wi-color-help);
1261
+ .wi-button-group {
1262
+ display: inline-flex;
1263
+ vertical-align: middle;
980
1264
  }
981
1265
 
982
- .wi-button--danger.wi-button--text,
983
- .wi-button--danger.wi-button--link,
984
- .wi-button--danger.wi-button--outlined {
985
- --wi-button-fg: var(--wi-color-danger);
986
- --wi-button-border: var(--wi-color-danger);
987
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-danger) 10%, transparent);
988
- --wi-button-hover-fg: var(--wi-color-danger);
989
- --wi-button-hover-border: var(--wi-color-danger);
1266
+ .wi-button-group--fluid {
1267
+ display: flex;
1268
+ width: 100%;
990
1269
  }
991
1270
 
992
- .wi-button--contrast.wi-button--text,
993
- .wi-button--contrast.wi-button--link,
994
- .wi-button--contrast.wi-button--outlined {
995
- --wi-button-fg: var(--wi-color-contrast);
996
- --wi-button-border: var(--wi-color-contrast);
997
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-contrast) 10%, transparent);
998
- --wi-button-hover-fg: var(--wi-color-contrast);
999
- --wi-button-hover-border: var(--wi-color-contrast);
1271
+ .wi-button-group--fluid > .wi-button {
1272
+ flex: 1;
1000
1273
  }
1001
1274
 
1002
- .wi-button--plain.wi-button--text,
1003
- .wi-button--plain.wi-button--outlined,
1004
- .wi-button--plain.wi-button--link {
1005
- --wi-button-fg: var(--wi-color-text-muted);
1006
- --wi-button-border: var(--wi-color-border);
1007
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-text-muted) 12%, transparent);
1008
- --wi-button-hover-fg: var(--wi-color-text);
1009
- --wi-button-hover-border: var(--wi-color-border);
1275
+ .wi-button-group > .wi-button {
1276
+ border-radius: 0;
1277
+ margin: 0;
1010
1278
  }
1011
1279
 
1012
- .wi-button--link {
1013
- height: auto;
1014
- min-height: 0;
1015
- padding: 0;
1280
+ .wi-button-group > .wi-button + .wi-button {
1281
+ margin-left: -1px;
1016
1282
  }
1017
1283
 
1018
- .wi-button--link:hover:not(:disabled) {
1019
- text-decoration: underline;
1284
+ .wi-button-group > .wi-button:first-child {
1285
+ border-top-left-radius: var(--wi-radius-md);
1286
+ border-bottom-left-radius: var(--wi-radius-md);
1020
1287
  }
1021
1288
 
1022
- .wi-button--ghost {
1023
- --wi-button-bg: transparent;
1024
- --wi-button-fg: var(--wi-button-border);
1025
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-button-border) 12%, transparent);
1026
- --wi-button-hover-fg: var(--wi-button-border);
1027
- --wi-button-hover-border: var(--wi-button-border);
1028
- --wi-button-active-bg: color-mix(in srgb, var(--wi-button-border) 18%, transparent);
1289
+ .wi-button-group > .wi-button:last-child {
1290
+ border-top-right-radius: var(--wi-radius-md);
1291
+ border-bottom-right-radius: var(--wi-radius-md);
1029
1292
  }
1030
1293
 
1031
- .wi-button--secondary.wi-button--ghost {
1032
- --wi-button-border: var(--wi-color-border);
1033
- --wi-button-fg: var(--wi-color-text);
1034
- --wi-button-hover-fg: var(--wi-color-text);
1294
+ .wi-button--raised {
1295
+ box-shadow: 0 0.25rem 0.75rem
1296
+ color-mix(in srgb, var(--wi-color-text) 14%, transparent);
1035
1297
  }
1036
1298
 
1037
- .wi-button--success.wi-button--ghost {
1038
- --wi-button-fg: var(--wi-color-success);
1039
- --wi-button-border: var(--wi-color-success);
1299
+ .wi-button--rounded {
1300
+ border-radius: var(--wi-radius-full);
1040
1301
  }
1041
1302
 
1042
- .wi-button--info.wi-button--ghost {
1043
- --wi-button-fg: var(--wi-color-info);
1044
- --wi-button-border: var(--wi-color-info);
1303
+ .wi-button--icon-only {
1304
+ gap: 0;
1305
+ min-width: var(--wi-control-height-medium);
1306
+ padding: 0;
1307
+ width: var(--wi-control-height-medium);
1045
1308
  }
1046
1309
 
1047
- .wi-button--warn.wi-button--ghost {
1048
- --wi-button-fg: var(--wi-color-warn);
1049
- --wi-button-border: var(--wi-color-warn);
1310
+ .wi-button--icon-only.wi-button--small {
1311
+ min-width: var(--wi-control-height-small);
1312
+ width: var(--wi-control-height-small);
1050
1313
  }
1051
1314
 
1052
- .wi-button--help.wi-button--ghost {
1053
- --wi-button-fg: var(--wi-color-help);
1054
- --wi-button-border: var(--wi-color-help);
1315
+ .wi-button--icon-only.wi-button--large {
1316
+ min-width: var(--wi-control-height-large);
1317
+ width: var(--wi-control-height-large);
1055
1318
  }
1056
1319
 
1057
- .wi-button--danger.wi-button--ghost {
1058
- --wi-button-fg: var(--wi-color-danger);
1059
- --wi-button-border: var(--wi-color-danger);
1320
+ .wi-button--icon-right {
1321
+ flex-direction: row-reverse;
1060
1322
  }
1061
1323
 
1062
- .wi-button--contrast.wi-button--ghost {
1063
- --wi-button-fg: var(--wi-color-contrast);
1064
- --wi-button-border: var(--wi-color-contrast);
1324
+ .wi-button--icon-top {
1325
+ flex-direction: column;
1326
+ min-height: var(--wi-button-icon-stack-min-height);
1327
+ padding-block: var(--wi-space-2);
1065
1328
  }
1066
1329
 
1067
- .wi-button--quaternary {
1068
- --wi-button-bg: transparent;
1069
- --wi-button-border: transparent;
1070
- --wi-button-fg: var(--wi-color-text);
1071
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-color-text-muted) 10%, transparent);
1072
- --wi-button-hover-fg: var(--wi-color-text);
1073
- --wi-button-hover-border: transparent;
1074
- --wi-button-active-bg: color-mix(in srgb, var(--wi-color-text-muted) 16%, transparent);
1330
+ .wi-button--icon-bottom {
1331
+ flex-direction: column-reverse;
1332
+ min-height: var(--wi-button-icon-stack-min-height);
1333
+ padding-block: var(--wi-space-2);
1075
1334
  }
1076
1335
 
1077
- .wi-button--custom {
1078
- --wi-button-bg: var(--wi-button-color);
1079
- --wi-button-fg: var(--wi-color-on-emphasis);
1080
- --wi-button-border: var(--wi-button-color);
1081
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-button-color) 85%, black);
1082
- --wi-button-hover-fg: var(--wi-color-on-emphasis);
1083
- --wi-button-hover-border: color-mix(in srgb, var(--wi-button-color) 85%, black);
1084
- --wi-button-active-bg: color-mix(in srgb, var(--wi-button-color) 75%, black);
1336
+ .wi-button--fluid {
1337
+ display: flex;
1338
+ width: 100%;
1085
1339
  }
1086
1340
 
1087
- .wi-button--custom.wi-button--outlined,
1088
- .wi-button--custom.wi-button--ghost,
1089
- .wi-button--custom.wi-button--text,
1090
- .wi-button--custom.wi-button--quaternary,
1091
- .wi-button--custom.wi-button--link {
1092
- --wi-button-bg: transparent;
1093
- --wi-button-fg: var(--wi-button-color);
1094
- --wi-button-border: var(--wi-button-color);
1095
- --wi-button-hover-bg: color-mix(in srgb, var(--wi-button-color) 12%, transparent);
1096
- --wi-button-hover-fg: var(--wi-button-color);
1097
- --wi-button-hover-border: var(--wi-button-color);
1341
+ .wi-button--small {
1342
+ font-size: var(--wi-control-font-small);
1343
+ min-height: var(--wi-control-height-small);
1344
+ padding: 0 var(--wi-button-padding-x-small);
1098
1345
  }
1099
1346
 
1100
- .wi-button--custom.wi-button--text,
1101
- .wi-button--custom.wi-button--quaternary,
1102
- .wi-button--custom.wi-button--link {
1103
- --wi-button-border: transparent;
1104
- --wi-button-hover-border: transparent;
1347
+ .wi-button--large {
1348
+ font-size: var(--wi-control-font-large);
1349
+ min-height: var(--wi-control-height-large);
1350
+ padding: 0 var(--wi-button-padding-x-large);
1105
1351
  }
1106
1352
 
1107
- .wi-button-group {
1108
- display: inline-flex;
1109
- vertical-align: middle;
1353
+ .wi-button__icon,
1354
+ .wi-button__label {
1355
+ align-items: center;
1356
+ display: inline-flex;
1357
+ justify-content: center;
1110
1358
  }
1111
1359
 
1112
- .wi-button-group--fluid {
1113
- display: flex;
1114
- width: 100%;
1360
+ .wi-button__icon {
1361
+ flex: 0 0 auto;
1115
1362
  }
1116
1363
 
1117
- .wi-button-group--fluid > .wi-button {
1118
- flex: 1;
1364
+ .wi-button__badge {
1365
+ align-items: center;
1366
+ background: var(--wi-color-contrast);
1367
+ border-radius: var(--wi-radius-full);
1368
+ color: var(--wi-color-contrast-fg);
1369
+ display: inline-flex;
1370
+ font-size: var(--wi-font-size-xs);
1371
+ font-weight: 700;
1372
+ justify-content: center;
1373
+ line-height: 1;
1374
+ margin-inline-start: var(--wi-space-1);
1375
+ min-width: var(--wi-button-badge-min-width);
1376
+ padding: var(--wi-space-1) var(--wi-space-2);
1119
1377
  }
1120
1378
 
1121
- .wi-button-group > .wi-button {
1122
- border-radius: 0;
1123
- margin: 0;
1379
+ .wi-button__badge--secondary {
1380
+ background: color-mix(
1381
+ in srgb,
1382
+ var(--wi-color-text-muted) 25%,
1383
+ var(--wi-color-surface)
1384
+ );
1385
+ color: var(--wi-color-text);
1124
1386
  }
1125
1387
 
1126
- .wi-button-group > .wi-button + .wi-button {
1127
- margin-left: -1px;
1388
+ .wi-button__badge--success {
1389
+ background: var(--wi-color-success);
1390
+ color: var(--wi-color-on-emphasis);
1128
1391
  }
1129
1392
 
1130
- .wi-button-group > .wi-button:first-child {
1131
- border-top-left-radius: var(--wi-radius-md);
1132
- border-bottom-left-radius: var(--wi-radius-md);
1393
+ .wi-button__badge--info {
1394
+ background: var(--wi-color-info);
1395
+ color: var(--wi-color-on-emphasis);
1133
1396
  }
1134
1397
 
1135
- .wi-button-group > .wi-button:last-child {
1136
- border-top-right-radius: var(--wi-radius-md);
1137
- border-bottom-right-radius: var(--wi-radius-md);
1398
+ .wi-button__badge--warn {
1399
+ background: var(--wi-color-warn);
1400
+ color: var(--wi-color-on-emphasis);
1138
1401
  }
1139
1402
 
1140
- .wi-button--raised {
1141
- box-shadow: 0 0.25rem 0.75rem color-mix(in srgb, var(--wi-color-text) 14%, transparent);
1403
+ .wi-button__badge--danger {
1404
+ background: var(--wi-color-danger);
1405
+ color: var(--wi-color-on-emphasis);
1142
1406
  }
1143
1407
 
1144
- .wi-button--rounded {
1145
- border-radius: var(--wi-radius-full);
1408
+ .wi-button__badge--contrast {
1409
+ background: var(--wi-color-contrast);
1410
+ color: var(--wi-color-contrast-fg);
1146
1411
  }
1147
1412
 
1148
- .wi-button--icon-only {
1149
- gap: 0;
1150
- min-width: var(--wi-control-height-medium);
1151
- padding: 0;
1152
- width: var(--wi-control-height-medium);
1413
+ .wi-button__spinner {
1414
+ animation: wi-button-spin 700ms linear infinite;
1415
+ border: 2px solid currentColor;
1416
+ border-right-color: transparent;
1417
+ border-radius: var(--wi-radius-full);
1418
+ height: var(--wi-button-spinner-size);
1419
+ width: var(--wi-button-spinner-size);
1153
1420
  }
1154
1421
 
1155
- .wi-button--icon-only.wi-button--small {
1156
- min-width: var(--wi-control-height-small);
1157
- width: var(--wi-control-height-small);
1158
- }
1159
-
1160
- .wi-button--icon-only.wi-button--large {
1161
- min-width: var(--wi-control-height-large);
1162
- width: var(--wi-control-height-large);
1163
- }
1164
-
1165
- .wi-button--icon-right {
1166
- flex-direction: row-reverse;
1167
- }
1168
-
1169
- .wi-button--icon-top {
1170
- flex-direction: column;
1171
- min-height: 3.25rem;
1172
- padding-block: var(--wi-space-2);
1173
- }
1174
-
1175
- .wi-button--icon-bottom {
1176
- flex-direction: column-reverse;
1177
- min-height: 3.25rem;
1178
- padding-block: var(--wi-space-2);
1179
- }
1180
-
1181
- .wi-button--fluid {
1182
- display: flex;
1183
- width: 100%;
1184
- }
1185
-
1186
- .wi-button--small {
1187
- font-size: var(--wi-control-font-small);
1188
- min-height: var(--wi-control-height-small);
1189
- padding: 0 var(--wi-button-padding-x-small);
1190
- }
1191
-
1192
- .wi-button--large {
1193
- font-size: var(--wi-control-font-large);
1194
- min-height: var(--wi-control-height-large);
1195
- padding: 0 var(--wi-button-padding-x-large);
1196
- }
1197
-
1198
- .wi-button__icon,
1199
- .wi-button__label {
1200
- align-items: center;
1201
- display: inline-flex;
1202
- justify-content: center;
1203
- }
1204
-
1205
- .wi-button__icon {
1206
- flex: 0 0 auto;
1207
- }
1208
-
1209
- .wi-button__badge {
1210
- align-items: center;
1211
- background: var(--wi-color-contrast);
1212
- border-radius: var(--wi-radius-full);
1213
- color: var(--wi-color-contrast-fg);
1214
- display: inline-flex;
1215
- font-size: 0.65rem;
1216
- font-weight: 700;
1217
- justify-content: center;
1218
- line-height: 1;
1219
- margin-inline-start: var(--wi-space-1);
1220
- min-width: 1.15rem;
1221
- padding: 0.2rem 0.35rem;
1222
- }
1223
-
1224
- .wi-button__badge--secondary {
1225
- background: color-mix(in srgb, var(--wi-color-text-muted) 25%, var(--wi-color-surface));
1226
- color: var(--wi-color-text);
1227
- }
1228
-
1229
- .wi-button__badge--success {
1230
- background: var(--wi-color-success);
1231
- color: var(--wi-color-on-emphasis);
1232
- }
1233
-
1234
- .wi-button__badge--info {
1235
- background: var(--wi-color-info);
1236
- color: var(--wi-color-on-emphasis);
1237
- }
1238
-
1239
- .wi-button__badge--warn {
1240
- background: var(--wi-color-warn);
1241
- color: var(--wi-color-on-emphasis);
1242
- }
1243
-
1244
- .wi-button__badge--danger {
1245
- background: var(--wi-color-danger);
1246
- color: var(--wi-color-on-emphasis);
1247
- }
1248
-
1249
- .wi-button__badge--contrast {
1250
- background: var(--wi-color-contrast);
1251
- color: var(--wi-color-contrast-fg);
1252
- }
1253
-
1254
- .wi-button__spinner {
1255
- animation: wi-button-spin 700ms linear infinite;
1256
- border: 2px solid currentColor;
1257
- border-right-color: transparent;
1258
- border-radius: var(--wi-radius-full);
1259
- height: 0.875rem;
1260
- width: 0.875rem;
1261
- }
1262
-
1263
- @keyframes wi-button-spin {
1264
- to {
1265
- transform: rotate(360deg);
1266
- }
1422
+ @keyframes wi-button-spin {
1423
+ to {
1424
+ transform: rotate(360deg);
1425
+ }
1267
1426
  }