@ryuzaki13/react-foundation-ui 2.0.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/COLOR_TOKENS_MIGRATION.md +224 -0
  2. package/README.md +14 -18
  3. package/dist/advanced-search/index.js +8 -8
  4. package/dist/badge/index.js +1 -1
  5. package/dist/barcode-scanner/index.js +2 -2
  6. package/dist/base-table/index.js +1 -1
  7. package/dist/button/index.js +1 -1
  8. package/dist/check-box/index.js +1 -1
  9. package/dist/chunks/{CalendarView-Bhaov_XE.js → CalendarView-Dm55k0bN.js} +2 -2
  10. package/dist/chunks/CalendarView-Dm55k0bN.js.map +1 -0
  11. package/dist/chunks/ImageViewerRuntime-HGBWp9NM.js.map +1 -1
  12. package/dist/chunks/{TextEditorLexicalClient-CSXZQOYo.js → TextEditorLexicalClient-D46Zed55.js} +6 -6
  13. package/dist/chunks/TextEditorLexicalClient-D46Zed55.js.map +1 -0
  14. package/dist/chunks/{badge-DUI2ET6q.js → badge-6mXO9BWP.js} +2 -2
  15. package/dist/chunks/badge-6mXO9BWP.js.map +1 -0
  16. package/dist/chunks/{base-table-BqW1n7tv.js → base-table-BWvKfI2W.js} +2 -2
  17. package/dist/chunks/{base-table-BqW1n7tv.js.map → base-table-BWvKfI2W.js.map} +1 -1
  18. package/dist/chunks/{button-BaUlN-nt.js → button-DF21yxVp.js} +3 -3
  19. package/dist/chunks/{button-BaUlN-nt.js.map → button-DF21yxVp.js.map} +1 -1
  20. package/dist/chunks/{check-box-CC8CDnSR.js → check-box-CZyhzmR0.js} +3 -3
  21. package/dist/chunks/{check-box-CC8CDnSR.js.map → check-box-CZyhzmR0.js.map} +1 -1
  22. package/dist/chunks/{context-menu-Dj6MXgv6.js → context-menu-DgvXGCuI.js} +3 -3
  23. package/dist/chunks/context-menu-DgvXGCuI.js.map +1 -0
  24. package/dist/chunks/{date-input-DkLfO3Ng.js → date-input-BwLOiGXp.js} +5 -5
  25. package/dist/chunks/{date-input-DkLfO3Ng.js.map → date-input-BwLOiGXp.js.map} +1 -1
  26. package/dist/chunks/{input-D1jOxm0t.js → input-DSPKgiCK.js} +2 -2
  27. package/dist/chunks/input-DSPKgiCK.js.map +1 -0
  28. package/dist/chunks/{input-files-CDGpJaUm.js → input-files-tIS17-zX.js} +3 -3
  29. package/dist/chunks/input-files-tIS17-zX.js.map +1 -0
  30. package/dist/chunks/{input-search-Ci1ubGox.js → input-search-Cat4c7SM.js} +2 -2
  31. package/dist/chunks/{input-search-Ci1ubGox.js.map → input-search-Cat4c7SM.js.map} +1 -1
  32. package/dist/chunks/misc-DeGboAt-.js.map +1 -1
  33. package/dist/chunks/{modal-CbAwLHlM.js → modal-dplfAaER.js} +2 -2
  34. package/dist/chunks/{modal-CbAwLHlM.js.map → modal-dplfAaER.js.map} +1 -1
  35. package/dist/chunks/{multi-select-V7SLAduU.js → multi-select-BZ9N6Dal.js} +4 -4
  36. package/dist/chunks/{multi-select-V7SLAduU.js.map → multi-select-BZ9N6Dal.js.map} +1 -1
  37. package/dist/chunks/{picker-DZ4-1BvK.js → picker-lvm82d0A.js} +3 -3
  38. package/dist/chunks/picker-lvm82d0A.js.map +1 -0
  39. package/dist/chunks/popover-Bne-Ljbs.js.map +1 -1
  40. package/dist/chunks/{radio-group-DhpP7JSJ.js → radio-group-CRk_1ODZ.js} +2 -2
  41. package/dist/chunks/radio-group-CRk_1ODZ.js.map +1 -0
  42. package/dist/chunks/{select-B7cWlJxL.js → select-aTGupQan.js} +4 -4
  43. package/dist/chunks/{select-B7cWlJxL.js.map → select-aTGupQan.js.map} +1 -1
  44. package/dist/chunks/{table-DMLFUBlb.js → table-DxoSOvQK.js} +2 -2
  45. package/dist/chunks/table-DxoSOvQK.js.map +1 -0
  46. package/dist/chunks/{ui.module-BsDio9A3.js → ui.module-oRwY3Zli.js} +2 -1
  47. package/dist/chunks/ui.module-oRwY3Zli.js.map +1 -0
  48. package/dist/chunks/{uiClasses-BVwFzzsr.js → uiClasses-CQj47jkF.js} +11 -2
  49. package/dist/chunks/uiClasses-CQj47jkF.js.map +1 -0
  50. package/dist/chunks/wheel-picker-FS58cRsQ.js.map +1 -1
  51. package/dist/context-menu/index.js +1 -1
  52. package/dist/date-input/index.js +2 -2
  53. package/dist/date-time-input/index.js +3 -3
  54. package/dist/disclosure/index.js +2 -2
  55. package/dist/disclosure/index.js.map +1 -1
  56. package/dist/drop-zone/index.js +1 -1
  57. package/dist/drop-zone/index.js.map +1 -1
  58. package/dist/errors/index.js +4 -4
  59. package/dist/errors/index.js.map +1 -1
  60. package/dist/expandable-action-panel/index.js +1 -1
  61. package/dist/image/index.js +5 -5
  62. package/dist/image/index.js.map +1 -1
  63. package/dist/input/index.js +1 -1
  64. package/dist/input-date-time/index.js +2 -2
  65. package/dist/input-file/index.js +2 -2
  66. package/dist/input-files/index.js +1 -1
  67. package/dist/input-image/index.js +2 -2
  68. package/dist/input-search/index.js +1 -1
  69. package/dist/layout-picker/index.js +1 -1
  70. package/dist/layout-picker/index.js.map +1 -1
  71. package/dist/listbox/index.js +1 -1
  72. package/dist/modal/index.js +1 -1
  73. package/dist/multi-select/index.js +1 -1
  74. package/dist/notifications/index.js +1 -1
  75. package/dist/notifications/index.js.map +1 -1
  76. package/dist/option/index.js +1 -1
  77. package/dist/picker/index.js +1 -1
  78. package/dist/preset-range-date-input/index.js +1 -1
  79. package/dist/preset-select/index.js +1 -1
  80. package/dist/radio-button/index.js +2 -2
  81. package/dist/radio-group/index.js +1 -1
  82. package/dist/select/index.js +1 -1
  83. package/dist/simple-table/index.js +1 -1
  84. package/dist/slider/index.js +3 -3
  85. package/dist/slider/index.js.map +1 -1
  86. package/dist/state-select/index.js +1 -1
  87. package/dist/status-indicator/StatusIndicator.d.ts +14 -0
  88. package/dist/status-indicator/StatusIndicator.d.ts.map +1 -0
  89. package/dist/status-indicator/index.d.ts +2 -0
  90. package/dist/status-indicator/index.d.ts.map +1 -0
  91. package/dist/status-indicator/index.js +40 -0
  92. package/dist/status-indicator/index.js.map +1 -0
  93. package/dist/styles.css +1 -1
  94. package/dist/switch/index.js +1 -1
  95. package/dist/table/index.js +1 -1
  96. package/dist/table-sorting/index.js +1 -1
  97. package/dist/tabs/index.js +2 -2
  98. package/dist/tabs/index.js.map +1 -1
  99. package/dist/tag-input/index.js +2 -2
  100. package/dist/tag-input/index.js.map +1 -1
  101. package/dist/text-editor/index.js +1 -1
  102. package/dist/textarea/index.js +2 -2
  103. package/dist/toggle/index.js +1 -1
  104. package/dist/toggle/index.js.map +1 -1
  105. package/dist/tree-select/index.js +3 -3
  106. package/dist/tree-select/index.js.map +1 -1
  107. package/dist/tree-table/index.js +1 -1
  108. package/dist/tree-table/index.js.map +1 -1
  109. package/dist/types.d.ts +3 -3
  110. package/dist/types.d.ts.map +1 -1
  111. package/dist/uiClasses.d.ts.map +1 -1
  112. package/package.json +6 -1
  113. package/src/styles/_border.scss +2 -2
  114. package/src/styles/_color.scss +8 -8
  115. package/src/styles/_components.scss +2 -2
  116. package/src/styles/_normalize.scss +4 -4
  117. package/src/styles/config/_index.scss +95 -182
  118. package/src/styles/mixins/_controls.scss +43 -26
  119. package/src/styles/mixins/_mixin.scss +0 -187
  120. package/src/styles/mixins/controls.test.ts +28 -6
  121. package/src/styles/themes/_interactive-surface.scss +12 -12
  122. package/src/styles/themes/_theme.scss +21 -157
  123. package/src/styles/themes/theme.test.ts +66 -48
  124. package/storybook-static/assets/{Badge-DTV2OL5k.js → Badge-S6BbyfeX.js} +8 -2
  125. package/storybook-static/assets/{Badge.stories-D4zH_nK5.js → Badge.stories-mio0RhpX.js} +7 -1
  126. package/storybook-static/assets/{BadgeList-CD5894x5.css → BadgeList-DbjeNuw0.css} +1 -1
  127. package/storybook-static/assets/{BadgeList-CnmQ4zmg.js → BadgeList-rtyargPY.js} +2 -2
  128. package/storybook-static/assets/{BarcodeScannerDialog.stories-Cm7ouwg8.js → BarcodeScannerDialog.stories-DRdXaVuW.js} +1 -1
  129. package/storybook-static/assets/{Button-6JuiM3Sj.js → Button-CNH5M6QU.js} +12 -2
  130. package/storybook-static/assets/{Button-HheQm8vu.js → Button-EVzvXVPh.js} +4 -2
  131. package/storybook-static/assets/Button.stories-VUvnWRnm.js +106 -0
  132. package/storybook-static/assets/{CalendarView-CEfB4HLd.js → CalendarView-CfSvCqCr.js} +1 -1
  133. package/storybook-static/assets/CalendarView-dgpVDRJR.css +1 -0
  134. package/storybook-static/assets/{CheckBox-CWGCGHUS.js → CheckBox-Bynxp5UW.js} +1 -1
  135. package/storybook-static/assets/{CheckBox-CzvA4ttT.js → CheckBox-C3n5T66c.js} +2 -2
  136. package/storybook-static/assets/{CheckBox.stories-D2lA5F8B.js → CheckBox.stories-BoF97wxK.js} +1 -1
  137. package/storybook-static/assets/{Color-6AOWCN3U-RvvVvZ9f.js → Color-6AOWCN3U-D-Jlgqzt.js} +1 -1
  138. package/storybook-static/assets/{ContextMenu-BJnj7lO4.js → ContextMenu-Dg65Ha7g.js} +1 -1
  139. package/storybook-static/assets/{ContextMenu-DCpglNe4.js → ContextMenu-DwwW3EyB.js} +1 -1
  140. package/storybook-static/assets/ContextMenu-yhWq2uJ3.css +1 -0
  141. package/storybook-static/assets/{ContextMenu.stories-CZabvzR6.js → ContextMenu.stories-D-jRdIZD.js} +1 -1
  142. package/storybook-static/assets/{CustomOptionButton-B9bzr3ba.js → CustomOptionButton-vfj1vLJM.js} +1 -1
  143. package/storybook-static/assets/{DateInput-DoMGeEvO.js → DateInput-BpuC_NWD.js} +1 -1
  144. package/storybook-static/assets/{DateInput-Cud2arem.js → DateInput-DJdh5B2X.js} +1 -1
  145. package/storybook-static/assets/{DateInput.stories-DFd5wyMy.js → DateInput.stories-C9hB_vFy.js} +1 -1
  146. package/storybook-static/assets/{DateRangePresetSelect-DfGcFHV8.js → DateRangePresetSelect-CDgQfOdZ.js} +1 -1
  147. package/storybook-static/assets/{DateRangePresetSelect-C8jA3mur.js → DateRangePresetSelect-DYPoeqC2.js} +1 -1
  148. package/storybook-static/assets/{DateRangePresetSelect.stories-DtR83uwx.js → DateRangePresetSelect.stories-Bx40H_O0.js} +1 -1
  149. package/storybook-static/assets/{Detail-CMcVxOrr.js → Detail-DWFfdNJH.js} +1 -1
  150. package/storybook-static/assets/{Detail.stories-DGT8An8z.js → Detail.stories-C9y_rsbc.js} +1 -1
  151. package/storybook-static/assets/{Dialog-DBh-yDZW.js → Dialog-D8GPZi6H.js} +1 -1
  152. package/storybook-static/assets/{Dialog-BPzpu7Iw.js → Dialog-XbR8HVsJ.js} +1 -1
  153. package/storybook-static/assets/{Dialog.stories-DU3SgOkL.js → Dialog.stories-CoU_PusF.js} +1 -1
  154. package/storybook-static/assets/{Disclosure-BGsPaAxH.js → Disclosure-DrGfFwQt.js} +1 -1
  155. package/storybook-static/assets/{Disclosure.stories-DpwyYh7T.js → Disclosure.stories-CsR1_XK7.js} +1 -1
  156. package/storybook-static/assets/DisclosureGroup-D_ldcGgp.css +1 -0
  157. package/storybook-static/assets/{DisclosureGroup-CJI8B2x_.js → DisclosureGroup-DvB5K7gZ.js} +1 -1
  158. package/storybook-static/assets/{DocsRenderer-JROSPFPF-Cf85Uxwt.js → DocsRenderer-JROSPFPF-B7AkTp2I.js} +1 -1
  159. package/storybook-static/assets/{DropZone-C7HIN5ml.css → DropZone-C4gPTIz0.css} +1 -1
  160. package/storybook-static/assets/{DropZone-C7qTrvkq.js → DropZone-DZi2WVu9.js} +1 -1
  161. package/storybook-static/assets/{DropZone-cYl1w3wQ.js → DropZone-DesGY4BW.js} +1 -1
  162. package/storybook-static/assets/{DropZone.stories-o02bE6DI.js → DropZone.stories-KVDb6pHQ.js} +1 -1
  163. package/storybook-static/assets/{DropdownMenu-DqqPU9RU.js → DropdownMenu-CRoQARS5.js} +1 -1
  164. package/storybook-static/assets/{ExpandableActionPanel-B_pjHQ5m.js → ExpandableActionPanel-CWKJIcbQ.js} +1 -1
  165. package/storybook-static/assets/{ExpandableActionPanel.stories-C7dJ5dht.js → ExpandableActionPanel.stories-D-MYdCJ4.js} +1 -1
  166. package/storybook-static/assets/{Flex-CIHkkwFK.js → Flex-CMPSlVVy.js} +1 -1
  167. package/storybook-static/assets/{Flex.stories-DteEPY0y.js → Flex.stories-DQH0Q5EF.js} +1 -1
  168. package/storybook-static/assets/{FloatingPopover-yB9tTk9G.js → FloatingPopover-CBWu6Gxj.js} +1 -1
  169. package/storybook-static/assets/FloatingPopover-Di16BZj-.css +1 -0
  170. package/storybook-static/assets/{FormattedTableCell-QVYQepjk.js → FormattedTableCell-CIp2ULPe.js} +1 -1
  171. package/storybook-static/assets/FormattedTableCell-CTIL_ueu.css +1 -0
  172. package/storybook-static/assets/{Grid-BUVtGaZY.js → Grid-BlQE5E_9.js} +1 -1
  173. package/storybook-static/assets/{Grid.stories-CWGqCVB2.js → Grid.stories-CwUCPClP.js} +1 -1
  174. package/storybook-static/assets/{ImageCropper.stories-D8l7iHQA.js → ImageCropper.stories-DjaRavSL.js} +1 -1
  175. package/storybook-static/assets/{ImageRenderer-BcPmp9P9.js → ImageRenderer-JGxgpvv2.js} +1 -1
  176. package/storybook-static/assets/{ImageRenderer.stories-CcLUz8Ml.js → ImageRenderer.stories-DwH6FgEc.js} +1 -1
  177. package/storybook-static/assets/{ImageView.stories-BwvjVmuF.js → ImageView.stories-DgYPiNil.js} +1 -1
  178. package/storybook-static/assets/{ImageViewer.stories-BjT782dr.js → ImageViewer.stories-_y7d3coa.js} +2 -2
  179. package/storybook-static/assets/{ImageViewerRuntime-DnQ-rQ_M.js → ImageViewerRuntime-CA6JhQ31.js} +1 -1
  180. package/storybook-static/assets/ImageViewerRuntime-MxAd4mC-.css +1 -0
  181. package/storybook-static/assets/{Input-DebpyMJg.js → Input-95LKm7aK.js} +1 -1
  182. package/storybook-static/assets/{Input-CmEkIaR0.js → Input-CET6HfZH.js} +1 -1
  183. package/storybook-static/assets/{Input-CYgnggvb.css → Input-CIA3PkB4.css} +1 -1
  184. package/storybook-static/assets/{Input.stories-y2LCVkT2.js → Input.stories-BDTI2nIV.js} +1 -1
  185. package/storybook-static/assets/{InputDateTime-B5oKuCea.js → InputDateTime-DsRJZVCO.js} +1 -1
  186. package/storybook-static/assets/{InputDateTime.stories-Cwi0acf9.js → InputDateTime.stories-Dah3F9Fq.js} +1 -1
  187. package/storybook-static/assets/{InputFile-B2dVbDrE.js → InputFile-CF3DRyTX.js} +1 -1
  188. package/storybook-static/assets/{InputFile-DbRU7crz.js → InputFile-_65sKWXa.js} +1 -1
  189. package/storybook-static/assets/{InputFile.stories-DrXG5hWA.js → InputFile.stories-B1PFNFPf.js} +1 -1
  190. package/storybook-static/assets/{InputFiles-DEBKMzlt.js → InputFiles-CUYGDig8.js} +1 -1
  191. package/storybook-static/assets/{InputFiles-CsgKJXOD.js → InputFiles-RV6K6GmT.js} +1 -1
  192. package/storybook-static/assets/{InputFiles.stories-EZDcefG0.js → InputFiles.stories-ZCzYnboY.js} +1 -1
  193. package/storybook-static/assets/{InputFilesList-ByK52qUe.css → InputFilesList-BbwB0oHE.css} +1 -1
  194. package/storybook-static/assets/{InputFilesList-GjMJ14Ln.js → InputFilesList-Co__UO8B.js} +1 -1
  195. package/storybook-static/assets/{InputImage-qjJ7xrKX.js → InputImage-900lIdui.js} +1 -1
  196. package/storybook-static/assets/{InputImage-CFFK9MbG.js → InputImage-De56Jwx9.js} +1 -1
  197. package/storybook-static/assets/{InputImage.stories-B32AtBda.js → InputImage.stories-B_R_kcCD.js} +1 -1
  198. package/storybook-static/assets/{InteractiveComponents-DustBT4l.js → InteractiveComponents-DGTx8enm.js} +1 -1
  199. package/storybook-static/assets/{InteractiveComponents.stories-J-7t7y-v.js → InteractiveComponents.stories-CDZsFUga.js} +1 -1
  200. package/storybook-static/assets/{LayoutPicker-DwNtjoeb.js → LayoutPicker-BMO8qfbL.js} +1 -1
  201. package/storybook-static/assets/{LayoutPicker-DlzXd6kS.js → LayoutPicker-CllhDO8J.js} +1 -1
  202. package/storybook-static/assets/{LayoutPicker-BY4-fUQa.css → LayoutPicker-DaPDA0_s.css} +1 -1
  203. package/storybook-static/assets/{LayoutPicker.stories-2bG0TvXm.js → LayoutPicker.stories-F7K4tSxT.js} +1 -1
  204. package/storybook-static/assets/{Listbox-BAhrUu_I.js → Listbox-0kjmvCe-.js} +1 -1
  205. package/storybook-static/assets/{Listbox-C9qCMY31.js → Listbox-D_2t3NpM.js} +1 -1
  206. package/storybook-static/assets/{Listbox.stories-BfakOrPT.js → Listbox.stories-Cp1Eq7Bz.js} +1 -1
  207. package/storybook-static/assets/{Modal-wGyoEzau.js → Modal-vdSwQ6xw.js} +1 -1
  208. package/storybook-static/assets/{Modal-D5znEvBs.js → Modal-zf0JQ124.js} +1 -1
  209. package/storybook-static/assets/{Modal.stories-DotZ88Ut.js → Modal.stories-Cz47rY2B.js} +1 -1
  210. package/storybook-static/assets/{ModalManagerProvider-DXPaYU4j.js → ModalManagerProvider-C_zd0fqC.js} +1 -1
  211. package/storybook-static/assets/{MultiSelect-BxKmL7sF.js → MultiSelect-Bl3q6kCP.js} +1 -1
  212. package/storybook-static/assets/{MultiSelect-DN1NhXH9.js → MultiSelect-DE13Ak4N.js} +1 -1
  213. package/storybook-static/assets/{MultiSelect.stories-Cdrx9hhT.js → MultiSelect.stories-DG6LGTC9.js} +1 -1
  214. package/storybook-static/assets/{NoData-mAjM6Vuy.js → NoData-B4AGZs5Q.js} +1 -1
  215. package/storybook-static/assets/NotificationsHost-BIyd1XQ0.css +1 -0
  216. package/storybook-static/assets/{NotificationsHost-gBWuk9v-.js → NotificationsHost-CFD2_BpZ.js} +1 -1
  217. package/storybook-static/assets/{NotificationsHost.stories-DONKtSKb.js → NotificationsHost.stories-CiSu7Vly.js} +1 -1
  218. package/storybook-static/assets/{ODataMultiSelect-Daq3ksSA.js → ODataMultiSelect-PcZYhXlN.js} +1 -1
  219. package/storybook-static/assets/{ODataMultiSelect.stories-De0WwTKp.js → ODataMultiSelect.stories-xodpVftn.js} +1 -1
  220. package/storybook-static/assets/{ODataSelect-BUO-vyqK.js → ODataSelect-BuuZhINP.js} +1 -1
  221. package/storybook-static/assets/{ODataSelect.stories-CJ2RCZGP.js → ODataSelect.stories-nr7GqOTz.js} +1 -1
  222. package/storybook-static/assets/{ODataTreeMultiSelect-Ctyo-uib.js → ODataTreeMultiSelect-BRNITq-6.js} +1 -1
  223. package/storybook-static/assets/{ODataTreeMultiSelect.stories-BX4wjGkG.js → ODataTreeMultiSelect.stories-Baxtdxte.js} +1 -1
  224. package/storybook-static/assets/{ODataTreeSelect-BZzwG_Ve.js → ODataTreeSelect-BKcyKJr8.js} +1 -1
  225. package/storybook-static/assets/{ODataTreeSelect.stories-B0jQNyMj.js → ODataTreeSelect.stories-n6LATF6z.js} +1 -1
  226. package/storybook-static/assets/{OneStepScroller-BL3gxJh1.js → OneStepScroller-DXykOSPw.js} +1 -1
  227. package/storybook-static/assets/{Option-JgQ-duDq.js → Option-Cr3vYgCL.js} +1 -1
  228. package/storybook-static/assets/Option-DD2t6DLq.css +1 -0
  229. package/storybook-static/assets/{OptionButton-CATaxLh0.js → OptionButton-v-MO3VgJ.js} +1 -1
  230. package/storybook-static/assets/{PeriodSelect-BIsC_Ew6.js → PeriodSelect-BQ9_EM63.js} +1 -1
  231. package/storybook-static/assets/{PeriodSelect-4LpRQDP5.js → PeriodSelect-DQXZWIBX.js} +1 -1
  232. package/storybook-static/assets/{PeriodSelect.stories-D5fKpF2P.js → PeriodSelect.stories-S2ndHVEQ.js} +1 -1
  233. package/storybook-static/assets/{PickerField-BkqWIWZw.js → PickerField-BeAXSQmp.js} +1 -1
  234. package/storybook-static/assets/{PickerTriggerActions-BVrXKKJ9.js → PickerTriggerActions-D6BjZkrN.js} +1 -1
  235. package/storybook-static/assets/{Popover-BTrxASXR.js → Popover-BAp50b4b.js} +1 -1
  236. package/storybook-static/assets/{Popover-DZlEnjse.js → Popover-CTCfa72M.js} +1 -1
  237. package/storybook-static/assets/{Popover.stories-BdyB4Q7K.js → Popover.stories-CZIBppwE.js} +1 -1
  238. package/storybook-static/assets/{PresetRangeDateInput-DUES355B.js → PresetRangeDateInput-BLAAcq8Y.js} +1 -1
  239. package/storybook-static/assets/{PresetRangeDateInput-Cp66aUGT.js → PresetRangeDateInput-EIlQEGr0.js} +1 -1
  240. package/storybook-static/assets/{PresetRangeDateInput.stories-D4jLrF6o.js → PresetRangeDateInput.stories-CShR-Eub.js} +1 -1
  241. package/storybook-static/assets/{PresetSelect-CmRrk7FZ.js → PresetSelect-BcD8EsSb.js} +1 -1
  242. package/storybook-static/assets/{README-CU_f1CMq.js → README-5i5ZfRuh.js} +1 -1
  243. package/storybook-static/assets/{README-B7BK3gkk.js → README-6iRo8dKK.js} +1 -1
  244. package/storybook-static/assets/{README-BCNsNQNj.js → README-6vpPfmdC.js} +1 -1
  245. package/storybook-static/assets/{README-DNUrBjgg.js → README-B2J2ATaW.js} +1 -1
  246. package/storybook-static/assets/{README-BUknkyU6.js → README-B8qFKwiq.js} +1 -1
  247. package/storybook-static/assets/{README-BmKEL3jy.js → README-BBS739kV.js} +1 -1
  248. package/storybook-static/assets/{README-B00ewV67.js → README-BDMWo0qS.js} +1 -1
  249. package/storybook-static/assets/{README-DgudM-2t.js → README-BIpHKVKI.js} +1 -1
  250. package/storybook-static/assets/{README-CmK6hELS.js → README-BQHgBs-J.js} +1 -1
  251. package/storybook-static/assets/{README-D7jyja4l.js → README-BUlc8wGR.js} +1 -1
  252. package/storybook-static/assets/{README-CHw6-PVx.js → README-BW1oyMu_.js} +1 -1
  253. package/storybook-static/assets/{README-C28SDMRx.js → README-BdBeQtXQ.js} +1 -1
  254. package/storybook-static/assets/{README-LqD1V5ru.js → README-BkX7iDLJ.js} +1 -1
  255. package/storybook-static/assets/{README-D-TgbUSA.js → README-BnTk0DyO.js} +1 -1
  256. package/storybook-static/assets/{README-CnRKlFuJ.js → README-Bwv6SU5o.js} +1 -1
  257. package/storybook-static/assets/{README-Ds6OSOC0.js → README-CLiuh-fF.js} +1 -1
  258. package/storybook-static/assets/{README-BGA2Ek3H.js → README-CLv4OeWw.js} +1 -1
  259. package/storybook-static/assets/{README-BrJaVHU_.js → README-CMBk39py.js} +1 -1
  260. package/storybook-static/assets/{README-DPuLgYuK.js → README-CQUlYRLa.js} +1 -1
  261. package/storybook-static/assets/{README-BhRGrTHx.js → README-CVX-4uJ_.js} +1 -1
  262. package/storybook-static/assets/{README-Bq8FLza7.js → README-CWeupyTO.js} +1 -1
  263. package/storybook-static/assets/{README-E5QziGK8.js → README-CZJvbdGv.js} +1 -1
  264. package/storybook-static/assets/{README-B4CJVRtX.js → README-CaECsCl2.js} +1 -1
  265. package/storybook-static/assets/{README-52AHLz83.js → README-Cntj7my4.js} +1 -1
  266. package/storybook-static/assets/{README-D6pLFtqL.js → README-CuGPdc3G.js} +1 -1
  267. package/storybook-static/assets/{README-D8YPmvQw.js → README-D7pP2Sxx.js} +1 -1
  268. package/storybook-static/assets/{README-Cs-dnvtW.js → README-D9Og-Y7l.js} +1 -1
  269. package/storybook-static/assets/{README-Duppk6f6.js → README-DDtdZa9N.js} +1 -1
  270. package/storybook-static/assets/{README-B20cH-BV.js → README-DLQvRDdd.js} +1 -1
  271. package/storybook-static/assets/{README-BfGp1q9n.js → README-DQpji8GH.js} +1 -1
  272. package/storybook-static/assets/{README-Bh_zrJ_j.js → README-DUfqdm0p.js} +1 -1
  273. package/storybook-static/assets/{README-55mkSTZb.js → README-Dd3MCsf2.js} +1 -1
  274. package/storybook-static/assets/{README-CPYFZwZE.js → README-DehKWpx2.js} +1 -1
  275. package/storybook-static/assets/{README-lgRhlVsq.js → README-DgFtCu8B.js} +1 -1
  276. package/storybook-static/assets/{README-C8Xo5jEX.js → README-DhZbllv1.js} +1 -1
  277. package/storybook-static/assets/{README-DvZ8ZhlH.js → README-Dj9EXnja.js} +1 -1
  278. package/storybook-static/assets/{README-CzKPWsNs.js → README-DkCWpyid.js} +1 -1
  279. package/storybook-static/assets/{README-C_SQjJtW.js → README-Dn2AIjeS.js} +1 -1
  280. package/storybook-static/assets/{README-DG5knhc9.js → README-DoZCaKAx.js} +1 -1
  281. package/storybook-static/assets/{README-DK-Bw1l1.js → README-DsLoV4ax.js} +1 -1
  282. package/storybook-static/assets/{README-BlWMNqE5.js → README-DwvyizD7.js} +1 -1
  283. package/storybook-static/assets/{README--fYBobJK.js → README-DwyqrR4I.js} +1 -1
  284. package/storybook-static/assets/{README-DyLt9P77.js → README-N-Gy0UYM.js} +1 -1
  285. package/storybook-static/assets/{README-DzVNZdfo.js → README-Wd5wEw-J.js} +1 -1
  286. package/storybook-static/assets/{README-CoD7FHU_.js → README-Y4OGhQbo.js} +1 -1
  287. package/storybook-static/assets/{README-EIhMMZ0t.js → README-ZZiicHm9.js} +1 -1
  288. package/storybook-static/assets/{README-BsUvf6lk.js → README-bAu0Uk5O.js} +1 -1
  289. package/storybook-static/assets/{README-B9foBRQ-.js → README-cuvbXAuG.js} +1 -1
  290. package/storybook-static/assets/{README-DsfBjN9N.js → README-jHuA2mq2.js} +1 -1
  291. package/storybook-static/assets/{README-C_WyDQDz.js → README-pvA4fK1E.js} +1 -1
  292. package/storybook-static/assets/{README-4AGJG--w.js → README-sEbspuLw.js} +1 -1
  293. package/storybook-static/assets/{README-DK-US_zR.js → README-v3TOC_aE.js} +1 -1
  294. package/storybook-static/assets/{README-BoGNjKgW.js → README-wizqrRgs.js} +1 -1
  295. package/storybook-static/assets/{RadioButton-CmcExRQs.js → RadioButton-BUPEsqwH.js} +1 -1
  296. package/storybook-static/assets/{RadioButton-BLHXpf6L.js → RadioButton-Ca0kZdMV.js} +1 -1
  297. package/storybook-static/assets/{RadioButton.stories-P1SEMdJ1.js → RadioButton.stories-aBnizEak.js} +1 -1
  298. package/storybook-static/assets/{RadioGroup-DkCSA8me.js → RadioGroup-34jH28Sk.js} +1 -1
  299. package/storybook-static/assets/{RadioGroup-BU95Hbl0.css → RadioGroup-DHnDIEgi.css} +1 -1
  300. package/storybook-static/assets/{RadioGroup-BBv2Na1n.js → RadioGroup-dq6CbxB6.js} +1 -1
  301. package/storybook-static/assets/{RadioGroup.stories-5-uFHs1b.js → RadioGroup.stories--lDrmS8V.js} +1 -1
  302. package/storybook-static/assets/{Scrollable-XhGz9dwJ.js → Scrollable-BJRiyp9q.js} +1 -1
  303. package/storybook-static/assets/{Select-BEMtNq5M.js → Select-CwNDJSmq.js} +1 -1
  304. package/storybook-static/assets/{Select-CyA-PHrU.js → Select-DmwCwS8a.js} +1 -1
  305. package/storybook-static/assets/{Select.stories-B_GbDG58.js → Select.stories-BXj7A2gM.js} +1 -1
  306. package/storybook-static/assets/{SerializableSelect-CJ74e_Vc.js → SerializableSelect-IAtBSK9P.js} +1 -1
  307. package/storybook-static/assets/{SerializableSelect.stories-PUXPFPFx.js → SerializableSelect.stories-D8F5WGtk.js} +1 -1
  308. package/storybook-static/assets/{SingleDateTimeInput-wqb75Yrz.js → SingleDateTimeInput-CbyyGlmi.js} +1 -1
  309. package/storybook-static/assets/{SingleDateTimeInput-BlpQ8t9f.js → SingleDateTimeInput-oN2P3eYx.js} +1 -1
  310. package/storybook-static/assets/{SingleDateTimeInput.stories-CdogRh5M.js → SingleDateTimeInput.stories-BU_wyTmo.js} +1 -1
  311. package/storybook-static/assets/{Slider-CZa1f0vP.js → Slider-CDJhhSWj.js} +1 -1
  312. package/storybook-static/assets/{Slider-r8Be9wJ4.js → Slider-ClZTrtRk.js} +1 -1
  313. package/storybook-static/assets/Slider-DxdPx1Pb.css +1 -0
  314. package/storybook-static/assets/{Slider.stories-BUwg0h15.js → Slider.stories-PfQf9es7.js} +1 -1
  315. package/storybook-static/assets/{SliderInput-BWFbcA5R.js → SliderInput-BxFUjetO.js} +1 -1
  316. package/storybook-static/assets/{SliderInput-BaZBNhhF.js → SliderInput-C7TRql6-.js} +1 -1
  317. package/storybook-static/assets/{SliderInput.stories-Cbxo0ku_.js → SliderInput.stories-yX8DU5pZ.js} +1 -1
  318. package/storybook-static/assets/{Sortable-JfLmQUdm.js → Sortable-D8cVwatT.js} +1 -1
  319. package/storybook-static/assets/{Sortable.stories-Cz9xM3Tw.js → Sortable.stories-BI6_E5k7.js} +1 -1
  320. package/storybook-static/assets/{Splitter-BkQcPRYJ.js → Splitter-B958Wj4G.js} +1 -1
  321. package/storybook-static/assets/{Splitter.stories-zQf1fK4D.js → Splitter.stories-Dl2YOk9H.js} +1 -1
  322. package/storybook-static/assets/{StateSelect-DxH1oWnK.js → StateSelect-Cs9-kDRC.js} +1 -1
  323. package/storybook-static/assets/{StateSelect-TLRMUmko.js → StateSelect-DbV1mGhQ.js} +1 -1
  324. package/storybook-static/assets/{StateSelect.stories-CReLNG_6.js → StateSelect.stories-D6atguQ6.js} +1 -1
  325. package/storybook-static/assets/StatusIndicator--Y-QdjQI.js +37 -0
  326. package/storybook-static/assets/StatusIndicator-CpCGmnO7.css +1 -0
  327. package/storybook-static/assets/StatusIndicator.stories-DxkpP6C1.js +31 -0
  328. package/storybook-static/assets/{StringToggle.stories-BYqTdRbD.js → StringToggle.stories-C3mdK5Wx.js} +1 -1
  329. package/storybook-static/assets/{Switch-ChsLVAse.js → Switch-BTFpnXV9.js} +1 -1
  330. package/storybook-static/assets/{Switch-DE9rqHmp.js → Switch-OPzpWcJw.js} +1 -1
  331. package/storybook-static/assets/{Switch.stories-BaVgLi3_.js → Switch.stories-C0rVHcRq.js} +1 -1
  332. package/storybook-static/assets/{Table-qoMvYV1q.js → Table-bWKgagHH.js} +1 -1
  333. package/storybook-static/assets/Table-j_3ID7Xq.css +1 -0
  334. package/storybook-static/assets/{Table.stories-BdLScKfS.js → Table.stories-DOuV4G3p.js} +1 -1
  335. package/storybook-static/assets/{Tabs-CuALrdgt.js → Tabs-ae4daDEA.js} +1 -1
  336. package/storybook-static/assets/{Tabs.stories-BrLtxZ_a.js → Tabs.stories-Br4RCZKR.js} +1 -1
  337. package/storybook-static/assets/{TabsBox-D-bkJX9j.css → TabsBox-B3REnb6D.css} +1 -1
  338. package/storybook-static/assets/{TabsBox-DzfWhIHb.js → TabsBox-X_7yoTw3.js} +1 -1
  339. package/storybook-static/assets/{TagInput-Tyn5Jgus.js → TagInput-B2w5W05Z.js} +1 -1
  340. package/storybook-static/assets/{TagInput-ChmW4s9O.css → TagInput-RJbbcfoR.css} +1 -1
  341. package/storybook-static/assets/{TagInput.stories-Bbs3olyB.js → TagInput.stories-Db9DaNpW.js} +1 -1
  342. package/storybook-static/assets/{Text-B4GUKigV.js → Text-BT0cn3Bk.js} +1 -1
  343. package/storybook-static/assets/{Textarea-CNu-scX8.js → Textarea-B9MNOgmF.js} +1 -1
  344. package/storybook-static/assets/{Textarea-D3iwzB-S.js → Textarea-C_6iOQ3k.js} +1 -1
  345. package/storybook-static/assets/{Textarea.stories-CE2gt74x.js → Textarea.stories-Ctjb3d47.js} +1 -1
  346. package/storybook-static/assets/{TimePanel-BESMLCVl.js → TimePanel-C5AucKln.js} +1 -1
  347. package/storybook-static/assets/{TimePanel-Bh98qsCo.css → TimePanel-D9_hb7w4.css} +1 -1
  348. package/storybook-static/assets/{TimePanel.stories-BYhTpaoS.js → TimePanel.stories-CiQAJcB_.js} +1 -1
  349. package/storybook-static/assets/Toggle-ClE8Zovo.css +1 -0
  350. package/storybook-static/assets/{Toggle-0-SlfDXC.js → Toggle-DxA-Q1KZ.js} +1 -1
  351. package/storybook-static/assets/{Toggle-BexBc-UO.js → Toggle-q8hxq-LP.js} +1 -1
  352. package/storybook-static/assets/{Toggle.stories-CG4rBYOZ.js → Toggle.stories-C6Jf_KTc.js} +1 -1
  353. package/storybook-static/assets/{TreeMultiSelect-Cne9qXjN.js → TreeMultiSelect-BKF7COzn.js} +1 -1
  354. package/storybook-static/assets/{TreeMultiSelect-QId1DJUn.js → TreeMultiSelect-BfduPrgB.js} +1 -1
  355. package/storybook-static/assets/{TreeMultiSelect.stories-D6ElJY8Y.js → TreeMultiSelect.stories-C-uztFex.js} +1 -1
  356. package/storybook-static/assets/{TreePickerBase-B6DED6Hz.css → TreePickerBase-CmFF9pWE.css} +1 -1
  357. package/storybook-static/assets/{TreePickerBase-Dq3HMrua.js → TreePickerBase-SVDNn9QY.js} +1 -1
  358. package/storybook-static/assets/{TreeSelect-q4gdFfBH.js → TreeSelect-Bu9HRTvX.js} +1 -1
  359. package/storybook-static/assets/{TreeSelect-BJKtAh4x.js → TreeSelect-ClJGLBA8.js} +1 -1
  360. package/storybook-static/assets/{TreeSelect.stories-DfCxZuVy.js → TreeSelect.stories-C0TeLbpZ.js} +1 -1
  361. package/storybook-static/assets/{TreeTable-5fAWCnhQ.js → TreeTable-BXia_Imm.js} +1 -1
  362. package/storybook-static/assets/TreeTable-BvB3kj4h.css +1 -0
  363. package/storybook-static/assets/{TreeTable.stories-B1fSfYHg.js → TreeTable.stories-Cwo8yjNI.js} +1 -1
  364. package/storybook-static/assets/{blocks-B_u8Yt1Z.js → blocks-BmNU_R5E.js} +3 -3
  365. package/storybook-static/assets/{check-r01NGn4c.js → check-HCQdrq3c.js} +1 -1
  366. package/storybook-static/assets/{chevron-down-DxMviYn3.js → chevron-down-DHrZ_6vS.js} +1 -1
  367. package/storybook-static/assets/{chevron-left-mKnQH53V.js → chevron-left-CaIBhYcr.js} +1 -1
  368. package/storybook-static/assets/{chevron-right-CeJNqWTb.js → chevron-right-BpmEWiwv.js} +1 -1
  369. package/storybook-static/assets/{chunk-W22LQPXL-DorleiwX.js → chunk-W22LQPXL-DSMfJqhe.js} +1 -1
  370. package/storybook-static/assets/{circle-alert-H7OZyDmF.js → circle-alert-DuupFIr9.js} +1 -1
  371. package/storybook-static/assets/{circle-check-my8Ev6ar.js → circle-check-LYBfAR-E.js} +1 -1
  372. package/storybook-static/assets/{components-CDMhSXUo.js → components-CBnjb8pL.js} +3 -3
  373. package/storybook-static/assets/{contextMenu-fMt3iyZv.js → contextMenu-BZ-iSJtD.js} +1 -1
  374. package/storybook-static/assets/{download-BCwj5k1S.js → download-CsLGqkEl.js} +1 -1
  375. package/storybook-static/assets/{floating-ui.react-Cy32mouo.js → floating-ui.react-VNDOEKPt.js} +1 -1
  376. package/storybook-static/assets/{foundationApi-BtZYXGDY.js → foundationApi-BMy7_pDS.js} +1 -1
  377. package/storybook-static/assets/{foundationLib-CHOUG7NK.js → foundationLib-o95OqhXl.js} +1 -1
  378. package/storybook-static/assets/{hooks-CEvNG7IN.js → hooks-DMFMD13m.js} +1 -1
  379. package/storybook-static/assets/iframe-BT_jngkf.css +1 -0
  380. package/storybook-static/assets/{iframe-DWvPB8Sk.js → iframe-BaXmcmyl.js} +4 -4
  381. package/storybook-static/assets/iframe-D5qmKm51.js +1 -0
  382. package/storybook-static/assets/{info-CA6M6l6h.js → info-ZuWgcD4m.js} +1 -1
  383. package/storybook-static/assets/{odata-CHl7sWAn.js → odata-Brls3R5b.js} +1 -1
  384. package/storybook-static/assets/{odataStoryFixtures-BvjpoqqT.js → odataStoryFixtures-BmQo4rAJ.js} +2 -2
  385. package/storybook-static/assets/{react-B37E__uI.js → react-BnjGKE7V.js} +1 -1
  386. package/storybook-static/assets/{refresh-cw-Bt4yd-lG.js → refresh-cw-vj55o5c3.js} +1 -1
  387. package/storybook-static/assets/{settings-2-B7Uyk4j8.js → settings-2-PPom9XND.js} +1 -1
  388. package/storybook-static/assets/{sortable-B8UMQCaH.js → sortable-CztGPJOI.js} +1 -1
  389. package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-QGUDFNNj.js → syntaxhighlighter-QEQV7K2Y-uXmnHQP7.js} +1 -1
  390. package/storybook-static/assets/{trash-2-Bhjh1o0B.js → trash-2-DEnKoJjZ.js} +1 -1
  391. package/storybook-static/assets/{triangle-alert-D1c-iB00.js → triangle-alert-D-oyPLJL.js} +1 -1
  392. package/storybook-static/assets/ui-DSS1yTEO.css +1 -0
  393. package/storybook-static/assets/ui.module-SH8ehXul.js +1 -0
  394. package/storybook-static/assets/uiClasses-e9OQfdw2.js +1 -0
  395. package/storybook-static/assets/{useODataSelectBase-CYnvX8wM.js → useODataSelectBase-DxsvigTC.js} +1 -1
  396. package/storybook-static/assets/{useODataTreeData-C2risfo7.js → useODataTreeData-Dzxb75-h.js} +1 -1
  397. package/storybook-static/assets/{usePickerQuery-CjSFlUmn.js → usePickerQuery-SCKPS_0f.js} +1 -1
  398. package/storybook-static/assets/{usePickerTriggerController-Bqo5fhOa.js → usePickerTriggerController-DMA4hla_.js} +1 -1
  399. package/storybook-static/assets/{x-B3GmOByS.js → x-C5QCK6Ts.js} +1 -1
  400. package/storybook-static/iframe.html +3 -3
  401. package/storybook-static/index.json +1 -1
  402. package/storybook-static/project.json +1 -1
  403. package/dist/chunks/CalendarView-Bhaov_XE.js.map +0 -1
  404. package/dist/chunks/TextEditorLexicalClient-CSXZQOYo.js.map +0 -1
  405. package/dist/chunks/badge-DUI2ET6q.js.map +0 -1
  406. package/dist/chunks/context-menu-Dj6MXgv6.js.map +0 -1
  407. package/dist/chunks/input-D1jOxm0t.js.map +0 -1
  408. package/dist/chunks/input-files-CDGpJaUm.js.map +0 -1
  409. package/dist/chunks/picker-DZ4-1BvK.js.map +0 -1
  410. package/dist/chunks/radio-group-DhpP7JSJ.js.map +0 -1
  411. package/dist/chunks/table-DMLFUBlb.js.map +0 -1
  412. package/dist/chunks/ui.module-BsDio9A3.js.map +0 -1
  413. package/dist/chunks/uiClasses-BVwFzzsr.js.map +0 -1
  414. package/storybook-static/assets/Button.stories-B3Q5B_2w.js +0 -93
  415. package/storybook-static/assets/CalendarView-DKvrkS40.css +0 -1
  416. package/storybook-static/assets/ContextMenu-CFPrlO2u.css +0 -1
  417. package/storybook-static/assets/DisclosureGroup-CVFMwx22.css +0 -1
  418. package/storybook-static/assets/FloatingPopover-jwILx9b0.css +0 -1
  419. package/storybook-static/assets/FormattedTableCell-AZc2IHfK.css +0 -1
  420. package/storybook-static/assets/ImageViewerRuntime-CRmlrtpL.css +0 -1
  421. package/storybook-static/assets/NotificationsHost-D5Pvn4eu.css +0 -1
  422. package/storybook-static/assets/Option-DXh7BISz.css +0 -1
  423. package/storybook-static/assets/Slider-CK-W2ZTO.css +0 -1
  424. package/storybook-static/assets/Table-BGvRn9y0.css +0 -1
  425. package/storybook-static/assets/Toggle-fKG2dFY0.css +0 -1
  426. package/storybook-static/assets/TreeTable--ZoksUiw.css +0 -1
  427. package/storybook-static/assets/iframe-CDVsimPQ.js +0 -1
  428. package/storybook-static/assets/iframe-IhWQT6NX.css +0 -1
  429. package/storybook-static/assets/ui-C3BskXT9.css +0 -1
  430. package/storybook-static/assets/ui.module-31LPbZGK.js +0 -1
  431. package/storybook-static/assets/uiClasses-Bz6cvlDQ.js +0 -1
@@ -1,20 +1,20 @@
1
1
  @use "./mixin" as *;
2
2
 
3
3
  @mixin ui-tone($tone) {
4
- --ui-tone-text: var(--status-#{$tone}-text);
5
- --ui-tone-text-hover: var(--status-#{$tone}-text-hover);
6
- --ui-tone-text-active: var(--status-#{$tone}-text-active);
7
- --ui-tone-fill: var(--status-#{$tone}-fill);
8
- --ui-tone-fill-hover: var(--status-#{$tone}-fill-hover);
9
- --ui-tone-fill-active: var(--status-#{$tone}-fill-active);
10
- --ui-tone-on-fill: var(--status-#{$tone}-on-fill);
11
- --ui-tone-soft: var(--status-#{$tone}-soft);
12
- --ui-tone-border: var(--status-#{$tone}-border);
13
- --ui-tone-border-hover: var(--status-#{$tone}-border-hover);
14
- --ui-tone-border-active: var(--status-#{$tone}-border-active);
15
- --ui-tone-border-focus: var(--status-#{$tone}-border-focus);
16
- --ui-tone-ghost-hover: color-mix(in srgb, var(--status-#{$tone}-fill-hover) 10%, var(--surface-0));
17
- --ui-tone-ghost-active: color-mix(in srgb, var(--status-#{$tone}-fill-active) 20%, var(--surface-0));
4
+ --ui-tone-text: var(--#{$tone}-text);
5
+ --ui-tone-text-hover: color-mix(in srgb, var(--#{$tone}-text) 88%, var(--content-0));
6
+ --ui-tone-text-active: color-mix(in srgb, var(--#{$tone}-text) 76%, var(--content-0));
7
+ --ui-tone-fill: var(--#{$tone}-fill);
8
+ --ui-tone-fill-hover: color-mix(in srgb, var(--#{$tone}-fill) 88%, var(--content-0));
9
+ --ui-tone-fill-active: color-mix(in srgb, var(--#{$tone}-fill) 76%, var(--content-0));
10
+ --ui-tone-on-fill: var(--#{$tone}-on-fill);
11
+ --ui-tone-soft: color-mix(in srgb, var(--#{$tone}-fill) 12%, var(--surface-0));
12
+ --ui-tone-border: var(--#{$tone}-border);
13
+ --ui-tone-border-hover: color-mix(in srgb, var(--#{$tone}-border) 88%, var(--content-0));
14
+ --ui-tone-border-active: color-mix(in srgb, var(--#{$tone}-border) 76%, var(--content-0));
15
+ --ui-tone-border-focus: var(--focus-ring);
16
+ --ui-tone-ghost-hover: color-mix(in srgb, var(--#{$tone}-fill) 10%, var(--surface-0));
17
+ --ui-tone-ghost-active: color-mix(in srgb, var(--#{$tone}-fill) 20%, var(--surface-0));
18
18
  }
19
19
 
20
20
  @mixin ui-appearance-solid {
@@ -28,6 +28,9 @@
28
28
  --ui-border-hover: transparent;
29
29
  --ui-border-active: transparent;
30
30
  --ui-border-focus: transparent;
31
+ --ui-disabled-color: var(--content-1);
32
+ --ui-disabled-background: color-mix(in srgb, var(--ui-tone-fill) 14%, var(--surface-2));
33
+ --ui-disabled-border: transparent;
31
34
  }
32
35
 
33
36
  @mixin ui-appearance-outline {
@@ -41,6 +44,9 @@
41
44
  --ui-border-hover: var(--ui-tone-border-hover);
42
45
  --ui-border-active: var(--ui-tone-border-active);
43
46
  --ui-border-focus: var(--ui-tone-border-focus);
47
+ --ui-disabled-color: color-mix(in srgb, var(--ui-tone-text) 32%, var(--content-2));
48
+ --ui-disabled-background: var(--surface-0);
49
+ --ui-disabled-border: color-mix(in srgb, var(--ui-tone-border) 28%, var(--border-0));
44
50
  }
45
51
 
46
52
  @mixin ui-appearance-ghost {
@@ -54,6 +60,9 @@
54
60
  --ui-border-hover: transparent;
55
61
  --ui-border-active: transparent;
56
62
  --ui-border-focus: transparent;
63
+ --ui-disabled-color: color-mix(in srgb, var(--ui-tone-text) 32%, var(--content-2));
64
+ --ui-disabled-background: transparent;
65
+ --ui-disabled-border: transparent;
57
66
  }
58
67
 
59
68
  @mixin ui-appearance-transparent {
@@ -67,6 +76,9 @@
67
76
  --ui-border-hover: transparent;
68
77
  --ui-border-active: transparent;
69
78
  --ui-border-focus: transparent;
79
+ --ui-disabled-color: color-mix(in srgb, var(--ui-tone-text) 32%, var(--content-2));
80
+ --ui-disabled-background: transparent;
81
+ --ui-disabled-border: transparent;
70
82
  }
71
83
 
72
84
  @mixin ui-control-base {
@@ -94,27 +106,32 @@
94
106
  background-color: var(--ui-background-active);
95
107
  }
96
108
 
97
- &:focus,
98
- &:focus-within {
99
- // Фокус обозначается границей и focus-ring, но не подменяет фон active-состоянием.
100
- // Иначе сохранённый Safari focus после touch-события перекрывает selected/open фон consumer-компонента.
101
- border-color: var(--ui-border-focus);
102
- }
109
+ // &:focus,
110
+ // &:focus-within {
111
+ // border-color: var(--ui-border-focus);
112
+ // }
103
113
 
104
114
  &:focus-visible {
105
115
  @include focusVisible;
106
116
  }
107
117
 
108
- // Для нормальных компонентов с реальным input/button элементов
118
+ // Disabled-состояние берёт структуру из appearance: solid остаётся без рамки,
119
+ // а ghost/transparent — без фона. Цвета задаются явно, чтобы не накапливать opacity родителей.
109
120
  &:disabled,
110
- // Для специфичных компонентов, которые выдают внешне за input/button и имеют класс .uiInputControlFake
121
+ &[data-disabled] {
122
+ color: var(--ui-disabled-color, var(--content-2));
123
+ background-color: var(--ui-disabled-background, var(--surface-2));
124
+ border-color: var(--ui-disabled-border, var(--overlay-backdrop));
125
+ }
126
+
127
+ &:disabled {
128
+ cursor: not-allowed;
129
+ }
130
+
131
+ // Ненативные контролы не блокируют события сами, поэтому их отключаем явно.
111
132
  &[data-disabled] {
112
133
  cursor: default;
113
134
  pointer-events: none;
114
- // opacity: var(--disabled-opacity);
115
- color: var(--content-2);
116
- background-color: var(--surface-2);
117
- border-color: var(--overlay-backdrop);
118
135
  }
119
136
  }
120
137
 
@@ -1,5 +1,4 @@
1
1
  @use "sass:math";
2
- @use "sass:map";
3
2
  @use "media" as *;
4
3
 
5
4
  // @function fluid($max: 100, $min: 10) {
@@ -111,189 +110,3 @@
111
110
  @include focusVisible;
112
111
  }
113
112
  }
114
-
115
- @function status-scale($L, $C, $H, $mode) {
116
- @if $mode == light {
117
- @return (
118
- outline: (
119
- base: oklch($L $C $H),
120
- hover: oklch($L - 0.05 $C - 0.01 $H),
121
- active: oklch($L - 0.1 $C - 0.03 $H),
122
- focus: oklch($L - 0.06 $C + 0.03 $H)
123
- ),
124
- border: (
125
- base: oklch($L $C $H),
126
- hover: oklch($L - 0.05 $C + 0.01 $H + 5),
127
- active: oklch($L - 0.1 $C + 0.01 $H - 5),
128
- focus: oklch($L $C + 0.1 $H - 5)
129
- ),
130
- fill: (
131
- base: oklch($L + 0.06 $C * 1.125 $H + 3),
132
- hover: oklch($L + 0.03 $C * 1.125 $H + 3),
133
- active: oklch($L + 0.06 $C * 1.25 $H + 6),
134
- on-fill: oklch(1 0 0)
135
- ),
136
- soft: oklch(0.94 ($C * 0.35) $H)
137
- );
138
- }
139
-
140
- @if $mode == dark {
141
- @return (
142
- outline: (
143
- base: oklch($L $C $H),
144
- hover: oklch($L + 0.06 $C + 0.01 $H),
145
- active: oklch($L - 0.04 $C $H),
146
- focus: oklch($L + 0.06 $C + 0.02 $H)
147
- ),
148
- border: (
149
- base: oklch($L $C $H),
150
- hover: oklch($L + 0.06 $C + 0.01 $H),
151
- active: oklch($L - 0.04 $C $H),
152
- focus: oklch($L + 0.02 $C + 0.1 $H)
153
- ),
154
- fill: (
155
- base: oklch($L + 0.06 $C * 0.95 $H),
156
- hover: oklch($L + 0.1 $C * 0.95 $H),
157
- active: oklch($L + 0.1 $C * 0.8 $H),
158
- on-fill: oklch(0.26 ($C * 0.35) $H)
159
- ),
160
- soft: oklch(0.3 ($C * 0.45) $H)
161
- );
162
- }
163
- }
164
-
165
- // Для нейтральной схемы никак общую логику не применить, поэтому отдельная обработка
166
- @function status-border-neutral($L, $C, $H, $mode) {
167
- @if $mode == light {
168
- @return (
169
- base: oklch($L $C $H),
170
- hover: oklch($L - 0.1 $C + 0.01 $H + 5),
171
- active: oklch($L - 0.2 $C + 0.01 $H - 5),
172
- focus: oklch($L - 0.3 $C $H)
173
- );
174
- }
175
-
176
- @if $mode == dark {
177
- @return (
178
- base: oklch($L $C $H),
179
- hover: oklch($L + 0.1 $C + 0.01 $H),
180
- active: oklch($L + 0.2 $C + 0.01 $H),
181
- focus: oklch($L + 0.2 $C + 0.02 $H)
182
- );
183
- }
184
- }
185
-
186
- @mixin generate-status-fill($name, $L, $C, $H, $mode) {
187
- $s: status-scale($L, $C, $H, $mode);
188
-
189
- --status-#{$name}-text: var(--hc-status-#{$name}-text, #{map.get(map.get($s, outline), base)});
190
- --status-#{$name}-text-hover: var(--hc-status-#{$name}-text, #{map.get(map.get($s, outline), hover)});
191
- --status-#{$name}-text-active: var(--hc-status-#{$name}-text, #{map.get(map.get($s, outline), active)});
192
-
193
- --status-#{$name}-fill: var(--hc-status-#{$name}-fill, #{map.get(map.get($s, fill), base)});
194
- --status-#{$name}-fill-hover: var(--hc-status-#{$name}-fill, #{map.get(map.get($s, fill), hover)});
195
- --status-#{$name}-fill-active: var(--hc-status-#{$name}-fill, #{map.get(map.get($s, fill), active)});
196
- --status-#{$name}-on-fill: var(--hc-status-#{$name}-on-fill, #{map.get(map.get($s, fill), on-fill)});
197
-
198
- --status-#{$name}-soft: var(--hc-status-#{$name}-soft, #{map.get($s, soft)});
199
- }
200
-
201
- @mixin generate-status-border($name, $L, $C, $H, $mode) {
202
- @if $name == neutral {
203
- $s: status-border-neutral($L, $C, $H, $mode);
204
-
205
- --border-0: var(--hc-border, #{map.get($s, base)});
206
- --border-1: var(--hc-border, #{map.get($s, hover)});
207
- --border-2: var(--hc-border, #{map.get($s, active)});
208
- --border-focus: var(--hc-border-focus, #{map.get($s, focus)});
209
-
210
- --status-#{$name}-border: var(--border-0);
211
- --status-#{$name}-border-hover: var(--border-1);
212
- --status-#{$name}-border-active: var(--border-2);
213
- --status-#{$name}-border-focus: var(--border-focus);
214
- } @else {
215
- $s: status-scale($L, $C, $H, $mode);
216
-
217
- --status-#{$name}-border: var(--hc-status-#{$name}-border, #{map.get(map.get($s, border), base)});
218
- --status-#{$name}-border-hover: var(--hc-status-#{$name}-border, #{map.get(map.get($s, border), hover)});
219
- --status-#{$name}-border-active: var(--hc-status-#{$name}-border, #{map.get(map.get($s, border), active)});
220
- --status-#{$name}-border-focus: var(--hc-status-#{$name}-border, #{map.get(map.get($s, border), focus)});
221
- }
222
- }
223
-
224
- @function status-border-neutral2($L, $C, $H, $mode) {
225
- @if $mode == light {
226
- @return (
227
- base: oklch($L $C $H),
228
- hover: oklch($L + 0.13 $C + 0.15 $H - 89),
229
- active: oklch($L - 0.2 $C + 0.15 $H + 19),
230
- focus: oklch($L + 0.15 $C + 0.2 $H - 89)
231
- );
232
- }
233
-
234
- @if $mode == dark {
235
- @return (
236
- base: oklch($L $C $H),
237
- hover: oklch($L + 0.1 $C + 0.01 $H),
238
- active: oklch($L + 0.2 $C + 0.01 $H),
239
- focus: oklch($L + 0.2 $C + 0.02 $H)
240
- );
241
- }
242
- }
243
-
244
- @mixin generate-neutral-border2() {
245
- --status-neutral-border: var(--border-0);
246
- --status-neutral-border-hover: var(--border-1);
247
- --status-neutral-border-active: var(--border-2);
248
- --status-neutral-border-focus: var(--border-focus);
249
- }
250
-
251
- @function status-border-neutral3($L, $C, $H, $mode) {
252
- @if $mode == light {
253
- @return (
254
- base: oklch($L $C $H),
255
- hover: oklch($L - 0.13 $C + 0.15 $H + 59),
256
- active: oklch($L - 0.25 $C + 0.2 $H + 9),
257
- focus: oklch($L - 0.15 $C + 0.2 $H + 59)
258
- );
259
- }
260
-
261
- @if $mode == dark {
262
- @return (
263
- base: oklch($L $C $H),
264
- hover: oklch($L + 0.1 $C + 0.01 $H),
265
- active: oklch($L + 0.2 $C + 0.01 $H),
266
- focus: oklch($L + 0.2 $C + 0.02 $H)
267
- );
268
- }
269
- }
270
-
271
- @mixin generate-neutral-border3($L, $C, $H, $mode) {
272
- $s: status-border-neutral3($L, $C, $H, $mode);
273
-
274
- --border-0: var(--hc-border, #{map.get($s, base)});
275
- --border-1: var(--hc-border, #{map.get($s, hover)});
276
- --border-2: var(--hc-border, #{map.get($s, active)});
277
- --border-focus: var(--hc-border-focus, #{map.get($s, focus)});
278
-
279
- --status-neutral-border: var(--border-0);
280
- --status-neutral-border-hover: var(--border-1);
281
- --status-neutral-border-active: var(--border-2);
282
- --status-neutral-border-focus: var(--border-focus);
283
- }
284
-
285
- @mixin generate-accent($L, $C, $H, $mode) {
286
- @if $mode == light {
287
- --content-accent: var(--hc-content-accent, oklch(#{$L} #{$C} #{$H}));
288
- --surface-accent: var(--hc-surface-accent, oklch(#{$L + 0.4} #{math.max(0, $C - 0.2)} #{$H - 15}));
289
- --border-accent: var(--hc-border-accent, oklch(#{$L - 0.03} #{math.max(0, $C - 0.08)} #{$H}));
290
- // --focus-accent: var(--hc-focus-accent, oklch(#{$L + 0.04} #{$C + 0.05} #{$H}));
291
- }
292
-
293
- @if $mode == dark {
294
- --content-accent: var(--hc-content-accent, oklch(#{$L} #{$C} #{$H}));
295
- --surface-accent: var(--hc-surface-accent, oklch(#{$L - 0.4} #{math.max(0, $C - 0.15)} #{$H - 10}));
296
- --border-accent: var(--hc-border-accent, oklch(#{$L - 0.08} #{math.max(0, $C - 0.1)} #{$H}));
297
- // --focus-accent: var(--hc-focus-accent, oklch(#{$L + 0.06} #{$C + 0.03} #{$H}));
298
- }
299
- }
@@ -14,6 +14,24 @@ function compileUiControlBase(): string {
14
14
  }).css;
15
15
  }
16
16
 
17
+ /**
18
+ * Компилирует четыре appearance вместе с базовым контролом, чтобы проверять итоговый
19
+ * disabled-контракт, который реально получают Button и другие scheme-компоненты.
20
+ */
21
+ function compileUiAppearances(): string {
22
+ return compileString(
23
+ `@use "controls" as *;
24
+ .solid { @include ui-tone("brand"); @include ui-appearance-solid; @include ui-control-base; }
25
+ .outline { @include ui-tone("brand"); @include ui-appearance-outline; @include ui-control-base; }
26
+ .ghost { @include ui-tone("brand"); @include ui-appearance-ghost; @include ui-control-base; }
27
+ .transparent { @include ui-tone("brand"); @include ui-appearance-transparent; @include ui-control-base; }`,
28
+ {
29
+ loadPaths: [resolve("src/styles/mixins")],
30
+ style: "expanded"
31
+ }
32
+ ).css;
33
+ }
34
+
17
35
  describe("ui-control-base", () => {
18
36
  it("ограничивает hover устройствами с поддержкой наведения", () => {
19
37
  const css = compileUiControlBase();
@@ -31,14 +49,18 @@ describe("ui-control-base", () => {
31
49
  );
32
50
  });
33
51
 
34
- it("не подменяет фон элемента при сохранённом focus", () => {
35
- const css = compileUiControlBase();
36
- const focusRule = css.match(/\.control:focus,\s*\.control:focus-within \{[^}]*\}/)?.[0];
52
+ it("сохраняет структуру appearance в disabled-состоянии без opacity", () => {
53
+ const css = compileUiAppearances();
37
54
 
38
- expect(focusRule).toContain("border-color: var(--ui-border-focus)");
39
- expect(focusRule).not.toContain("background-color");
55
+ expect(css).toMatch(/\.solid \{[^}]*--ui-disabled-background: color-mix\([^;]+\);[^}]*--ui-disabled-border: transparent;/s);
40
56
  expect(css).toMatch(
41
- /\.control:focus-visible \{\s*outline: var\(--focus-width\) solid var\(--focus-ring\);\s*outline-offset: var\(--focus-offset\);\s*\}/
57
+ /\.outline \{[^}]*--ui-disabled-background: var\(--surface-0\);[^}]*--ui-disabled-border: color-mix\([^;]+\);/s
42
58
  );
59
+ expect(css).toMatch(/\.ghost \{[^}]*--ui-disabled-background: transparent;[^}]*--ui-disabled-border: transparent;/s);
60
+ expect(css).toMatch(/\.transparent \{[^}]*--ui-disabled-background: transparent;[^}]*--ui-disabled-border: transparent;/s);
61
+
62
+ const disabledRules = css.match(/\.(?:solid|outline|ghost|transparent):disabled[^}]*\}/g)?.join("\n") ?? "";
63
+ expect(disabledRules).not.toContain("opacity");
64
+ expect(disabledRules).toContain("cursor: not-allowed");
43
65
  });
44
66
  });
@@ -1,19 +1,19 @@
1
1
  .interactiveSurface {
2
- --c: var(--interactive-color, inherit);
3
- --s: var(--interactive-surface, transparent);
4
- --b: var(--interactive-border, transparent);
2
+ --c: inherit;
3
+ --s: transparent;
4
+ --b: transparent;
5
5
 
6
- --ch: var(--interactive-hover-color, var(--c));
7
- --sh: var(--interactive-hover-surface, var(--s));
8
- --bh: var(--interactive-hover-border, var(--b));
6
+ --ch: var(--accent-on-fill);
7
+ --sh: var(--accent-fill);
8
+ --bh: var(--accent-border);
9
9
 
10
- --ca: var(--interactive-active-color, var(--ch));
11
- --sa: var(--interactive-active-surface, var(--sh));
12
- --ba: var(--interactive-active-border, var(--bh));
10
+ --ca: var(--accent-on-fill);
11
+ --sa: var(--accent-fill);
12
+ --ba: var(--accent-border);
13
13
 
14
- --cs: var(--interactive-selected-color, var(--ca));
15
- --ss: var(--interactive-selected-surface, var(--sa));
16
- --bs: var(--interactive-selected-border, var(--ba));
14
+ --cs: var(--accent-on-fill);
15
+ --ss: var(--accent-fill);
16
+ --bs: var(--accent-border);
17
17
 
18
18
  // color: var(--c);
19
19
  // background-color: var(--s);
@@ -1,8 +1,6 @@
1
1
  @use "sass:map";
2
- @use "sass:meta";
3
2
 
4
3
  @use "../config" as stylesConfig;
5
- @use "../mixins/" as *;
6
4
 
7
5
  @function _theme-base($mode) {
8
6
  @if $mode == light {
@@ -16,169 +14,35 @@
16
14
  @error "Цветовая схема темы должна иметь значение light или dark, получено: #{$mode}.";
17
15
  }
18
16
 
19
- @function _scale-value($scale, $name, $fallback) {
20
- @if meta.type-of($scale) == map and map.has-key($scale, $name) {
21
- @return map.get($scale, $name);
22
- }
23
-
24
- @return $fallback;
25
- }
26
-
27
- @mixin _exact-accent-palette($accent) {
28
- --content-accent: var(--hc-content-accent, #{map.get($accent, content)});
29
- --surface-accent: var(--hc-surface-accent, #{map.get($accent, surface)});
30
- --border-accent: var(--hc-border-accent, #{map.get($accent, border)});
31
- }
32
-
33
- @mixin _exact-status-palette($name, $status) {
34
- $text: map.get($status, text);
35
- $fill: map.get($status, fill);
36
- $border: map.get($status, border);
37
- $text-base: map.get($text, base);
38
- $text-hover: _scale-value($text, hover, $text-base);
39
- $text-active: _scale-value($text, active, $text-hover);
40
- $fill-base: _scale-value($fill, base, $text-base);
41
- $fill-hover: _scale-value($fill, hover, $fill-base);
42
- $fill-active: _scale-value($fill, active, $fill-hover);
43
- $fill-on: _scale-value($fill, on-fill, var(--surface-0));
44
- $border-base: _scale-value($border, base, $text-base);
45
- $border-hover: _scale-value($border, hover, $text-hover);
46
- $border-active: _scale-value($border, active, $text-active);
47
- $border-focus: _scale-value($border, focus, $border-active);
48
-
49
- --status-#{$name}-text: var(--hc-status-#{$name}-text, #{$text-base});
50
- --status-#{$name}-text-hover: var(--hc-status-#{$name}-text, #{$text-hover});
51
- --status-#{$name}-text-active: var(--hc-status-#{$name}-text, #{$text-active});
52
-
53
- --status-#{$name}-fill: var(--hc-status-#{$name}-fill, #{$fill-base});
54
- --status-#{$name}-fill-hover: var(--hc-status-#{$name}-fill, #{$fill-hover});
55
- --status-#{$name}-fill-active: var(--hc-status-#{$name}-fill, #{$fill-active});
56
- --status-#{$name}-on-fill: var(--hc-status-#{$name}-on-fill, #{$fill-on});
57
-
58
- @if map.has-key($fill, soft) {
59
- --status-#{$name}-soft: var(--hc-status-#{$name}-soft, #{map.get($fill, soft)});
60
- } @else {
61
- --status-#{$name}-soft: var(--hc-status-#{$name}-soft, color-mix(in srgb, var(--status-#{$name}-fill) 12%, var(--surface-0)));
62
- }
63
-
64
- --status-#{$name}-border: var(--hc-status-#{$name}-border, #{$border-base});
65
- --status-#{$name}-border-hover: var(--hc-status-#{$name}-border, #{$border-hover});
66
- --status-#{$name}-border-active: var(--hc-status-#{$name}-border, #{$border-active});
67
- --status-#{$name}-border-focus: var(--hc-status-#{$name}-border, #{$border-focus});
68
-
69
- @if $name == neutral {
70
- --border-0: var(--hc-border, #{$border-base});
71
- --border-1: var(--hc-border, #{$border-hover});
72
- --border-2: var(--hc-border, #{$border-active});
73
- --border-focus: var(--hc-border-focus, #{$border-focus});
74
- }
75
- }
76
-
77
- @function _status-overridden($status-overrides, $name) {
78
- @return meta.type-of($status-overrides) == map and map.has-key($status-overrides, $name);
79
- }
80
-
81
- @mixin _adaptive-custom-statuses($mode, $status-overrides) {
82
- @if not _status-overridden($status-overrides, brand) {
83
- $brand-on-fill: var(--surface-0);
84
-
85
- @if $mode == light {
86
- $brand-on-fill: var(--content-0);
87
- }
88
-
89
- @include _exact-status-palette(
90
- brand,
91
- (
92
- text: (
93
- base: var(--content-accent)
94
- ),
95
- fill: (
96
- base: var(--content-accent),
97
- hover: var(--border-accent),
98
- active: var(--border-accent),
99
- on-fill: $brand-on-fill,
100
- soft: var(--surface-accent)
101
- ),
102
- border: (
103
- base: var(--border-accent)
104
- )
105
- )
106
- );
107
- }
108
-
109
- @if not _status-overridden($status-overrides, neutral) {
110
- @include _exact-status-palette(
111
- neutral,
112
- (
113
- text: (
114
- base: var(--content-0),
115
- hover: var(--content-1),
116
- active: var(--content-0)
117
- ),
118
- fill: (
119
- base: var(--content-0),
120
- hover: var(--content-1),
121
- active: var(--content-0),
122
- on-fill: var(--surface-0),
123
- soft: var(--surface-1)
124
- ),
125
- border: (
126
- base: var(--border-0),
127
- hover: var(--border-1),
128
- active: var(--border-2),
129
- focus: var(--focus-ring)
130
- )
131
- )
132
- );
133
- }
134
-
135
- @each $name in error, warning, success, info {
136
- @if not _status-overridden($status-overrides, $name) {
137
- // Плоские exact-token overrides меняют text/fill ниже по каскаду,
138
- // поэтому производные значения связываются через CSS variables, а не копируют baseline.
139
- --status-#{$name}-soft: var(--hc-status-#{$name}-soft, color-mix(in srgb, var(--status-#{$name}-fill) 12%, var(--surface-0)));
140
- --status-#{$name}-border: var(--hc-status-#{$name}-border, var(--status-#{$name}-text));
141
- --status-#{$name}-border-hover: var(--hc-status-#{$name}-border, var(--status-#{$name}-text-hover));
142
- --status-#{$name}-border-active: var(--hc-status-#{$name}-border, var(--status-#{$name}-text-active));
143
- --status-#{$name}-border-focus: var(--hc-status-#{$name}-border, var(--status-#{$name}-text-active));
144
- }
145
- }
17
+ /// Выводит четыре публичные роли цветовой схемы.
18
+ /// Состояния hover/active и мягкая заливка вычисляются внутри UI-компонентов,
19
+ /// поэтому host настраивает только устойчивый минимальный контракт.
20
+ @mixin _status-palette($name, $status) {
21
+ --#{$name}-text: var(--hc-#{$name}-text, #{map.get($status, text)});
22
+ --#{$name}-border: var(--hc-#{$name}-border, #{map.get($status, border)});
23
+ --#{$name}-fill: var(--hc-#{$name}-fill, #{map.get($status, fill)});
24
+ --#{$name}-on-fill: var(--hc-#{$name}-on-fill, #{map.get($status, on-fill)});
146
25
  }
147
26
 
148
- @mixin _theme-palette($theme, $mode) {
149
- $accent: map.get($theme, accent);
150
-
151
- @if map.has-key($accent, content) {
152
- @include _exact-accent-palette($accent);
153
- } @else {
154
- @include generate-accent(map.get($accent, l), map.get($accent, c), map.get($accent, h), $mode);
155
- }
156
-
27
+ @mixin _theme-palette($theme) {
157
28
  @each $name, $status in map.get($theme, status) {
158
- @if map.has-key($status, text) {
159
- @include _exact-status-palette($name, $status);
160
- } @else {
161
- $fill: map.get($status, fill);
162
- $border: map.get($status, border);
163
-
164
- @include generate-status-fill($name, map.get($fill, l), map.get($fill, c), map.get($fill, h), $mode);
165
- @include generate-status-border($name, map.get($border, l), map.get($border, c), map.get($border, h), $mode);
166
- }
29
+ @include _status-palette($name, $status);
167
30
  }
31
+
32
+ // Базовые границы остаются общими layout-токенами, но получают цвет из neutral-схемы.
33
+ --border-0: var(--hc-border-0, var(--neutral-border));
34
+ --border-1: var(--hc-border-1, color-mix(in srgb, var(--neutral-border) 82%, var(--content-0)));
35
+ --border-2: var(--hc-border-2, color-mix(in srgb, var(--neutral-border) 64%, var(--content-0)));
36
+ --border-focus: var(--hc-border-focus, var(--focus-ring));
168
37
  }
169
38
 
170
- /// Формирует полную тему из настроенного baseline выбранной схемы и точечных переопределений.
171
- /// `accent` и элементы `status` принимают либо OKLCH seed `l/c/h`, либо точные semantic scales;
172
- /// плоская карта `tokens` выводится последней и остаётся escape hatch для любого CSS custom property.
39
+ /// Формирует полную тему из baseline выбранной схемы и точечных переопределений.
40
+ /// Карта `status` содержит `accent`, `brand`, `neutral`, `error`, `warning`,
41
+ /// `success` и `info`; у каждой схемы ровно четыре роли: `text`, `border`,
42
+ /// `fill` и `on-fill`. Карта `tokens` выводится последней как escape hatch.
173
43
  @mixin theme($mode, $overrides: ()) {
174
44
  $resolved-theme: map.deep-merge(_theme-base($mode), $overrides);
175
- $status-overrides: map.get($overrides, status);
176
-
177
- @include _theme-palette($resolved-theme, $mode);
178
-
179
- @if $overrides != () {
180
- @include _adaptive-custom-statuses($mode, $status-overrides);
181
- }
182
45
 
46
+ @include _theme-palette($resolved-theme);
183
47
  @include stylesConfig.emit-declarations(stylesConfig.theme-tokens($resolved-theme));
184
48
  }