ics-ui-kit 0.1.19 → 1.0.0-alpha.1

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 (325) hide show
  1. package/README.md +36 -36
  2. package/dist/AlertContext-CxjW1LVL.js.map +1 -1
  3. package/dist/AlertIcon-BphnEYvV.js.map +1 -1
  4. package/dist/{Button-BZ3ON1Tj.js → Button-_qdP4hSf.js} +2 -2
  5. package/dist/Button-_qdP4hSf.js.map +1 -0
  6. package/dist/{ButtonBase-jgu7EolU.js → ButtonBase-CbWrYcx-.js} +2 -2
  7. package/dist/ButtonBase-CbWrYcx-.js.map +1 -0
  8. package/dist/{CheckboxField-limFbMk2.js → CheckboxField-xDqHgXHh.js} +32 -32
  9. package/dist/CheckboxField-xDqHgXHh.js.map +1 -0
  10. package/dist/Combination-DeIugdgY.js.map +1 -1
  11. package/dist/{Command-B7ZRyW8w.js → Command-WsAKNQrY.js} +8 -8
  12. package/dist/Command-WsAKNQrY.js.map +1 -0
  13. package/dist/ComponentVariantProvider-brk0g-hm.js.map +1 -1
  14. package/dist/Description-BTPMlTT-.js.map +1 -1
  15. package/dist/{Dialog-CdnsGyJD.js → Dialog-i_Y-phdM.js} +42 -43
  16. package/dist/Dialog-i_Y-phdM.js.map +1 -0
  17. package/dist/Divider-DPW5ZhZ8.js.map +1 -1
  18. package/dist/EmptyState-DRKjscH-.js.map +1 -1
  19. package/dist/ErrorState-B26k67-z.js.map +1 -1
  20. package/dist/FeatureIcon-BGE0Orkc.js.map +1 -1
  21. package/dist/{Field-CP_-li9L.js → Field-BcwUtgGr.js} +2 -2
  22. package/dist/Field-BcwUtgGr.js.map +1 -0
  23. package/dist/{FieldLabel-eyKmeWRn.js → FieldLabel-DYu1AcGH.js} +2 -2
  24. package/dist/FieldLabel-DYu1AcGH.js.map +1 -0
  25. package/dist/FolderSvg-cw0DxNVy.js.map +1 -1
  26. package/dist/{FormFooterTemplate-DdNnLu2-.js → FormFooterTemplate-CHlas_Pp.js} +5 -5
  27. package/dist/FormFooterTemplate-CHlas_Pp.js.map +1 -0
  28. package/dist/{FormHeader--F6b2aRk.js → FormHeader-PE63OqG9.js} +3 -3
  29. package/dist/FormHeader-PE63OqG9.js.map +1 -0
  30. package/dist/FormStack-DfoaOry7.js +1205 -0
  31. package/dist/FormStack-DfoaOry7.js.map +1 -0
  32. package/dist/HintState-BxrCAWqq.js.map +1 -1
  33. package/dist/Icon-DH3ev9GK.js.map +1 -1
  34. package/dist/{IconButton-uGJ3cQtk.js → IconButton-DAg1oMwz.js} +2 -2
  35. package/dist/IconButton-DAg1oMwz.js.map +1 -0
  36. package/dist/{IconTooltip-RSxvnBgH.js → IconTooltip-R6_6_f40.js} +2 -2
  37. package/dist/IconTooltip-R6_6_f40.js.map +1 -0
  38. package/dist/Indicator-AqxHWPA9.js.map +1 -1
  39. package/dist/{InputGroup-AVAtosX_.js → InputGroup-CW55G5nE.js} +5 -5
  40. package/dist/InputGroup-CW55G5nE.js.map +1 -0
  41. package/dist/{InputOTP-B2e1nfSO.js → InputOTP-DkVh6bBz.js} +2 -2
  42. package/dist/InputOTP-DkVh6bBz.js.map +1 -0
  43. package/dist/Loader-BpHiL6W-.js.map +1 -1
  44. package/dist/{MenuItem-d19Ty84F.js → MenuItem-C51uFz3V.js} +11 -11
  45. package/dist/MenuItem-C51uFz3V.js.map +1 -0
  46. package/dist/MenuItemShortcut-D1faeIXp.js.map +1 -1
  47. package/dist/MenuItemText-CRpaPbvg.js.map +1 -1
  48. package/dist/{Overlay-CVt011mY.js → Overlay-E0UvxzIc.js} +2 -2
  49. package/dist/Overlay-E0UvxzIc.js.map +1 -0
  50. package/dist/{Popover-KjZXxxl3.js → Popover-XrJa7lyb.js} +51 -52
  51. package/dist/Popover-XrJa7lyb.js.map +1 -0
  52. package/dist/{RichButton-B1wjK7Bk.js → RichButton-Bt0yUShU.js} +2 -2
  53. package/dist/RichButton-Bt0yUShU.js.map +1 -0
  54. package/dist/ScrollArea-CuuTeDn3.js.map +1 -1
  55. package/dist/ScrollShadowContainer-DdrnF8qU.js.map +1 -1
  56. package/dist/{SearchSelectTag-CA7Ie3Nx.js → SearchSelectTag-Dp5_OvZp.js} +16 -16
  57. package/dist/SearchSelectTag-Dp5_OvZp.js.map +1 -0
  58. package/dist/{Select-D9juHX8o.js → Select-DO02vXt3.js} +189 -190
  59. package/dist/Select-DO02vXt3.js.map +1 -0
  60. package/dist/{Sheet-qTIXsqm0.js → Sheet-C2UoHLL0.js} +40 -41
  61. package/dist/Sheet-C2UoHLL0.js.map +1 -0
  62. package/dist/Shortcut-D8L15_ed.js.map +1 -1
  63. package/dist/Skeleton-y6I-i9q5.js.map +1 -1
  64. package/dist/{TableFillHandle-C_yvCTSl.js → TableFillHandle-CHHoUi6s.js} +7 -7
  65. package/dist/TableFillHandle-CHHoUi6s.js.map +1 -0
  66. package/dist/{Tag-DdHXTyKF.js → Tag-Cf6HftP-.js} +4 -4
  67. package/dist/Tag-Cf6HftP-.js.map +1 -0
  68. package/dist/Text-DeBE8AKl.js.map +1 -1
  69. package/dist/{TextInput-5BuZtWV6.js → TextInput-CoL8nOyt.js} +3 -3
  70. package/dist/TextInput-CoL8nOyt.js.map +1 -0
  71. package/dist/{TextOverflowTooltip-B1I5qwAT.js → TextOverflowTooltip-XPDdO9Dz.js} +2 -2
  72. package/dist/{TextOverflowTooltip-B1I5qwAT.js.map → TextOverflowTooltip-XPDdO9Dz.js.map} +1 -1
  73. package/dist/{Toggle-v_HT3Gm2.js → Toggle-CmalMf4O.js} +2 -2
  74. package/dist/Toggle-CmalMf4O.js.map +1 -0
  75. package/dist/{Tooltip-7Duaau0S.js → Tooltip-D2XvRS0c.js} +64 -65
  76. package/dist/Tooltip-D2XvRS0c.js.map +1 -0
  77. package/dist/{TriggerButton-Bakr8Boi.js → TriggerButton-CoAgB4lx.js} +2 -2
  78. package/dist/TriggerButton-CoAgB4lx.js.map +1 -0
  79. package/dist/blocks/auth/otp-form.js +3240 -204
  80. package/dist/blocks/auth/otp-form.js.map +1 -1
  81. package/dist/cn-dsXlqdJg.js.map +1 -1
  82. package/dist/components/alert-dialog/AlertDialog.d.ts +2 -4
  83. package/dist/components/alert-dialog.js +71 -72
  84. package/dist/components/alert-dialog.js.map +1 -1
  85. package/dist/components/alert.js +1 -1
  86. package/dist/components/alert.js.map +1 -1
  87. package/dist/components/avatar.js.map +1 -1
  88. package/dist/components/background-pattern.js.map +1 -1
  89. package/dist/components/badge.js.map +1 -1
  90. package/dist/components/banner.js.map +1 -1
  91. package/dist/components/breadcrumb.js.map +1 -1
  92. package/dist/components/button.js +5 -5
  93. package/dist/components/button.js.map +1 -1
  94. package/dist/components/calendar.js +2889 -71
  95. package/dist/components/calendar.js.map +1 -1
  96. package/dist/components/card.js +2 -2
  97. package/dist/components/card.js.map +1 -1
  98. package/dist/components/carousel.js +1 -1
  99. package/dist/components/carousel.js.map +1 -1
  100. package/dist/components/checkbox.js +1 -1
  101. package/dist/components/collapsible.js.map +1 -1
  102. package/dist/components/color-tile.js.map +1 -1
  103. package/dist/components/command.js +1 -1
  104. package/dist/components/container.js.map +1 -1
  105. package/dist/components/context-menu.js +6 -6
  106. package/dist/components/context-menu.js.map +1 -1
  107. package/dist/components/counter.js +1 -1
  108. package/dist/components/counter.js.map +1 -1
  109. package/dist/components/dialog/Dialog.d.ts +2 -4
  110. package/dist/components/dialog.js +3 -3
  111. package/dist/components/dialog.js.map +1 -1
  112. package/dist/components/divider.js.map +1 -1
  113. package/dist/components/drawer/components/drawer-content/DrawerContent.d.ts +1 -2
  114. package/dist/components/drawer.js +98 -99
  115. package/dist/components/drawer.js.map +1 -1
  116. package/dist/components/dropdown/Dropdown.d.ts +2 -4
  117. package/dist/components/dropdown.js +258 -259
  118. package/dist/components/dropdown.js.map +1 -1
  119. package/dist/components/error-state.js +1 -1
  120. package/dist/components/error-state.js.map +1 -1
  121. package/dist/components/field.js +1 -1
  122. package/dist/components/file-upload.js +3 -3
  123. package/dist/components/file-upload.js.map +1 -1
  124. package/dist/components/form/Form.d.ts +14 -0
  125. package/dist/components/form/components/form-field/FormField.d.ts +4 -0
  126. package/dist/components/form.js +5 -5
  127. package/dist/components/form.js.map +1 -1
  128. package/dist/components/glass-toolbar.js +6 -6
  129. package/dist/components/glass-toolbar.js.map +1 -1
  130. package/dist/components/icon-tooltip.js +1 -1
  131. package/dist/components/image-placeholder.js.map +1 -1
  132. package/dist/components/image-preview.js +2 -2
  133. package/dist/components/image-preview.js.map +1 -1
  134. package/dist/components/image-uploader.js +1 -1
  135. package/dist/components/image-uploader.js.map +1 -1
  136. package/dist/components/input-otp.js +1 -1
  137. package/dist/components/input.js +5 -5
  138. package/dist/components/input.js.map +1 -1
  139. package/dist/components/label.js +1 -1
  140. package/dist/components/menu-item.js +6 -6
  141. package/dist/components/menu-item.js.map +1 -1
  142. package/dist/components/overflow-tooltip.js +1 -1
  143. package/dist/components/overlay.js +1 -1
  144. package/dist/components/page-state.js +7 -7
  145. package/dist/components/page-state.js.map +1 -1
  146. package/dist/components/popover/Popover.d.ts +1 -2
  147. package/dist/components/popover.js +1 -1
  148. package/dist/components/progress-circle.js +1 -1
  149. package/dist/components/progress-circle.js.map +1 -1
  150. package/dist/components/progress.js +3 -3
  151. package/dist/components/progress.js.map +1 -1
  152. package/dist/components/prose.js.map +1 -1
  153. package/dist/components/radio-group.js +1 -1
  154. package/dist/components/radio-group.js.map +1 -1
  155. package/dist/components/resizable/Resizable.d.ts +1 -1
  156. package/dist/components/resizable.js +1 -1
  157. package/dist/components/resizable.js.map +1 -1
  158. package/dist/components/scheduler.js +1 -1
  159. package/dist/components/scheduler.js.map +1 -1
  160. package/dist/components/search-select/multi-select/MultiSelect.d.ts +1 -1
  161. package/dist/components/search-select.js +4 -4
  162. package/dist/components/search-select.js.map +1 -1
  163. package/dist/components/select/Select.d.ts +1 -2
  164. package/dist/components/select.js +1 -1
  165. package/dist/components/sheet/Sheet.d.ts +1 -2
  166. package/dist/components/sheet.js +1 -1
  167. package/dist/components/sidebar.js +90 -90
  168. package/dist/components/sidebar.js.map +1 -1
  169. package/dist/components/slider.js +1 -1
  170. package/dist/components/slider.js.map +1 -1
  171. package/dist/components/stepper.js +1 -1
  172. package/dist/components/stepper.js.map +1 -1
  173. package/dist/components/switch.js +2 -2
  174. package/dist/components/switch.js.map +1 -1
  175. package/dist/components/system-state.js +1 -1
  176. package/dist/components/system-state.js.map +1 -1
  177. package/dist/components/table/editable/editableCell.d.ts +2 -2
  178. package/dist/components/table/editable.js +1 -1
  179. package/dist/components/table/tree.js +1 -1
  180. package/dist/components/table.js +2 -2
  181. package/dist/components/tabs.js +2 -2
  182. package/dist/components/tabs.js.map +1 -1
  183. package/dist/components/tag-input.js +5 -5
  184. package/dist/components/tag-input.js.map +1 -1
  185. package/dist/components/tag.js +1 -1
  186. package/dist/components/textarea.js +1 -1
  187. package/dist/components/textarea.js.map +1 -1
  188. package/dist/components/timer.js.map +1 -1
  189. package/dist/components/toast.js +6 -6
  190. package/dist/components/toast.js.map +1 -1
  191. package/dist/components/toggle-group.js +1 -1
  192. package/dist/components/toggle-group.js.map +1 -1
  193. package/dist/components/toggle.js +1 -1
  194. package/dist/components/toolbar.js +1 -1
  195. package/dist/components/toolbar.js.map +1 -1
  196. package/dist/components/tooltip/Tooltip.d.ts +2 -4
  197. package/dist/components/tooltip.js +1 -1
  198. package/dist/design-tokens.source.json +1 -0
  199. package/dist/docs/tailwind-utilities/ScrollFade.stories.d.ts +28 -0
  200. package/dist/docs/tailwind-utilities/Shimmer.stories.d.ts +32 -0
  201. package/dist/floating-ui.react-dom-BwDfy92G.js.map +1 -1
  202. package/dist/font-smoothing.css +4 -0
  203. package/dist/formatBytes-C4QXq5lC.js.map +1 -1
  204. package/dist/index-0ioNhtNM.js.map +1 -1
  205. package/dist/index-1SnkxfPR.js.map +1 -1
  206. package/dist/index-437EL2iq.js.map +1 -1
  207. package/dist/index-BDrapWDv.js.map +1 -1
  208. package/dist/index-BGQepRFJ.js.map +1 -1
  209. package/dist/index-BVqs-uqP.js.map +1 -1
  210. package/dist/index-BZPx6jYI.js.map +1 -1
  211. package/dist/index-Bb23HztA.js.map +1 -1
  212. package/dist/index-BjtNfqNq.js.map +1 -1
  213. package/dist/index-BpWB3aFK.js.map +1 -1
  214. package/dist/index-ByaXH_ih.js.map +1 -1
  215. package/dist/index-CCKe-Mpx.js.map +1 -1
  216. package/dist/index-CFaU3UXv.js.map +1 -1
  217. package/dist/index-CLuiUUQ8.js.map +1 -1
  218. package/dist/index-CMxHunQ4.js.map +1 -1
  219. package/dist/index-CmBeyp2d.js.map +1 -1
  220. package/dist/index-DFZozV_h.js.map +1 -1
  221. package/dist/index-DHsfW5Rj.js.map +1 -1
  222. package/dist/index-DHyZ_0Ut.js.map +1 -1
  223. package/dist/index-DLcqcWxM.js.map +1 -1
  224. package/dist/index-DnnQs07z.js.map +1 -1
  225. package/dist/index-Uiy0Xwy2.js.map +1 -1
  226. package/dist/index-_ITz1IyW.js.map +1 -1
  227. package/dist/index.js.map +1 -1
  228. package/dist/{inputBaseStyles-BfZIWuQ6.js → inputBaseStyles-CZwQWSub.js} +7 -7
  229. package/dist/inputBaseStyles-CZwQWSub.js.map +1 -0
  230. package/dist/lib/utils.js.map +1 -1
  231. package/dist/opaqueCell-D95h1mFM.js.map +1 -1
  232. package/dist/tailwind.css +408 -0
  233. package/dist/theme.css +360 -360
  234. package/dist/{treeModel-BlJWP4sc.js → treeModel-CUO1A5s7.js} +11 -11
  235. package/dist/treeModel-CUO1A5s7.js.map +1 -0
  236. package/dist/types/css.d.ts +4 -4
  237. package/dist/useBreakpoints-DHvp74UL.js.map +1 -1
  238. package/dist/useDebounce-BRah78CF.js.map +1 -1
  239. package/dist/useFileUpload-Bnl3P8mP.js.map +1 -1
  240. package/dist/useItemsKeyboardNavigation-CmeOR30y.js.map +1 -1
  241. package/dist/useMergeRefs-qoKniYqT.js.map +1 -1
  242. package/package.json +28 -28
  243. package/dist/Button-BZ3ON1Tj.js.map +0 -1
  244. package/dist/ButtonBase-jgu7EolU.js.map +0 -1
  245. package/dist/CheckboxField-limFbMk2.js.map +0 -1
  246. package/dist/Command-B7ZRyW8w.js.map +0 -1
  247. package/dist/DayPicker-4hE1QEvO.js +0 -2452
  248. package/dist/DayPicker-4hE1QEvO.js.map +0 -1
  249. package/dist/Dialog-CdnsGyJD.js.map +0 -1
  250. package/dist/Field-CP_-li9L.js.map +0 -1
  251. package/dist/FieldLabel-eyKmeWRn.js.map +0 -1
  252. package/dist/FormFooterTemplate-DdNnLu2-.js.map +0 -1
  253. package/dist/FormHeader--F6b2aRk.js.map +0 -1
  254. package/dist/FormStack-Cc_ELdWL.js +0 -127
  255. package/dist/FormStack-Cc_ELdWL.js.map +0 -1
  256. package/dist/IconButton-uGJ3cQtk.js.map +0 -1
  257. package/dist/IconTooltip-RSxvnBgH.js.map +0 -1
  258. package/dist/InputGroup-AVAtosX_.js.map +0 -1
  259. package/dist/InputOTP-B2e1nfSO.js.map +0 -1
  260. package/dist/MenuItem-d19Ty84F.js.map +0 -1
  261. package/dist/Overlay-CVt011mY.js.map +0 -1
  262. package/dist/Popover-KjZXxxl3.js.map +0 -1
  263. package/dist/RichButton-B1wjK7Bk.js.map +0 -1
  264. package/dist/SearchSelectTag-CA7Ie3Nx.js.map +0 -1
  265. package/dist/Select-D9juHX8o.js.map +0 -1
  266. package/dist/Sheet-qTIXsqm0.js.map +0 -1
  267. package/dist/TableFillHandle-C_yvCTSl.js.map +0 -1
  268. package/dist/Tag-DdHXTyKF.js.map +0 -1
  269. package/dist/TextInput-5BuZtWV6.js.map +0 -1
  270. package/dist/Toggle-v_HT3Gm2.js.map +0 -1
  271. package/dist/Tooltip-7Duaau0S.js.map +0 -1
  272. package/dist/TriggerButton-Bakr8Boi.js.map +0 -1
  273. package/dist/buildMatchPatternFn-d7GTeGl_.js +0 -68
  274. package/dist/buildMatchPatternFn-d7GTeGl_.js.map +0 -1
  275. package/dist/components/portal-container/PortalContainer.d.ts +0 -10
  276. package/dist/components/portal-container/index.d.ts +0 -2
  277. package/dist/components/portal-container/portalContainerEvents.d.ts +0 -12
  278. package/dist/components/portal-container/usePortalContainer.d.ts +0 -10
  279. package/dist/components/portal-container.d.ts +0 -2
  280. package/dist/components/portal-container.js +0 -14
  281. package/dist/components/portal-container.js.map +0 -1
  282. package/dist/index.esm-CXA6i4d7.js +0 -1282
  283. package/dist/index.esm-CXA6i4d7.js.map +0 -1
  284. package/dist/inputBaseStyles-BfZIWuQ6.js.map +0 -1
  285. package/dist/lib/utils/styles.d.ts +0 -10
  286. package/dist/normalizeDates-9A3c9WYM.js +0 -32
  287. package/dist/normalizeDates-9A3c9WYM.js.map +0 -1
  288. package/dist/styles-scoped.css +0 -6605
  289. package/dist/styles-scoped.d.ts +0 -1
  290. package/dist/styles.css +0 -6594
  291. package/dist/styles.d.ts +0 -1
  292. package/dist/treeModel-BlJWP4sc.js.map +0 -1
  293. package/dist/usePortalContainer-BAIp0kSF.js +0 -44
  294. package/dist/usePortalContainer-BAIp0kSF.js.map +0 -1
  295. package/dist/vendors/date-fns/index.d.ts +0 -12
  296. package/dist/vendors/date-fns/locale/en-US/index.d.ts +0 -5
  297. package/dist/vendors/date-fns/locale/en-US.d.ts +0 -2
  298. package/dist/vendors/date-fns/locale/en-US.js +0 -372
  299. package/dist/vendors/date-fns/locale/en-US.js.map +0 -1
  300. package/dist/vendors/date-fns/locale/ru/index.d.ts +0 -5
  301. package/dist/vendors/date-fns/locale/ru.d.ts +0 -2
  302. package/dist/vendors/date-fns/locale/ru.js +0 -569
  303. package/dist/vendors/date-fns/locale/ru.js.map +0 -1
  304. package/dist/vendors/date-fns.d.ts +0 -2
  305. package/dist/vendors/date-fns.js +0 -2
  306. package/dist/vendors/date-fns.js.map +0 -1
  307. package/dist/vendors/react-day-picker/index.d.ts +0 -13
  308. package/dist/vendors/react-day-picker.d.ts +0 -2
  309. package/dist/vendors/react-day-picker.js +0 -87
  310. package/dist/vendors/react-day-picker.js.map +0 -1
  311. package/dist/vendors/react-hook-form/index.d.ts +0 -14
  312. package/dist/vendors/react-hook-form.d.ts +0 -2
  313. package/dist/vendors/react-hook-form.js +0 -19
  314. package/dist/vendors/react-hook-form.js.map +0 -1
  315. package/dist/vendors/tanstack/react-table/index.d.ts +0 -13
  316. package/dist/vendors/tanstack/react-table.d.ts +0 -2
  317. package/dist/vendors/tanstack/react-table.js +0 -2090
  318. package/dist/vendors/tanstack/react-table.js.map +0 -1
  319. package/dist/vendors/zod/index.d.ts +0 -13
  320. package/dist/vendors/zod.d.ts +0 -2
  321. package/dist/vendors/zod.js +0 -3080
  322. package/dist/vendors/zod.js.map +0 -1
  323. package/dist/zod-BMNoK3aM.js +0 -75
  324. package/dist/zod-BMNoK3aM.js.map +0 -1
  325. package/tailwind.preset.js +0 -452
@@ -0,0 +1,408 @@
1
+ /**
2
+ * Публичная точка входа ICS UI Kit для Tailwind 4.
3
+ *
4
+ * Заменяет собой tailwind.preset.js: токены дизайн-системы объявлены через
5
+ * @theme, а не через JS-конфиг. Подключение у потребителя:
6
+ *
7
+ * @import "tailwindcss";
8
+ * @import "ics-ui-kit/tailwind.css";
9
+ * @source "../node_modules/ics-ui-kit/dist";
10
+ *
11
+ * Файл везёт токены, варианты, утилиты И базовый слой. Последний не
12
+ * украшение: в v4 border-* без явного цвета раскрывается в currentColor,
13
+ * поэтому без правила * { border-color } рамки компонентов окрасились бы
14
+ * в цвет текста. Переопределяется своим @layer base после импорта.
15
+ *
16
+ * @theme inline — не то же самое, что @theme. Значения токенов ссылаются на
17
+ * CSS-переменные темы (--primary-accent и т.п.), которые переопределяются
18
+ * в .dark. Без inline утилита получает var(--color-primary-accent), а это
19
+ * значение вычисляется один раз на :root — и застывает. Пока .dark висит на
20
+ * <html>, разницы не видно, но вложенный тёмный остров внутри светлой
21
+ * страницы сломается. С inline утилита несёт hsl(var(--primary-accent))
22
+ * и пересчитывается на любом элементе.
23
+ *
24
+ * По той же причине в базовом слое ниже используется @apply, а не
25
+ * var(--color-*): прямое обращение к переменной застыло бы на :root.
26
+ */
27
+
28
+ @import "./theme.css";
29
+ @import "./font-smoothing.css";
30
+
31
+ @plugin "@tailwindcss/typography";
32
+
33
+ /* darkMode: ["class"] из пресета */
34
+ @custom-variant dark (&:where(.dark, .dark *));
35
+
36
+ /* screens.touch: { raw: "(pointer: coarse)" } из пресета */
37
+ @custom-variant touch (@media (pointer: coarse));
38
+
39
+ @theme inline {
40
+ /* Цвета */
41
+ --color-background: hsl(var(--background));
42
+ --color-foreground: hsl(var(--foreground));
43
+ --color-card: hsl(var(--card));
44
+ --color-card-foreground: hsl(var(--card-foreground));
45
+ --color-popover: hsl(var(--popover));
46
+ --color-popover-foreground: hsl(var(--popover-foreground));
47
+ --color-muted: hsl(var(--muted));
48
+ --color-muted-foreground: hsl(var(--muted-foreground));
49
+ --color-accent: hsl(var(--accent));
50
+ --color-accent-foreground: hsl(var(--accent-foreground));
51
+ --color-destructive: hsl(var(--destructive));
52
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
53
+ --color-border: hsl(var(--border));
54
+ --color-input: hsl(var(--input));
55
+ --color-ring: hsl(var(--ring));
56
+ --color-chart-1: hsl(var(--chart-1));
57
+ --color-chart-2: hsl(var(--chart-2));
58
+ --color-chart-3: hsl(var(--chart-3));
59
+ --color-chart-4: hsl(var(--chart-4));
60
+ --color-chart-5: hsl(var(--chart-5));
61
+ --color-sidebar-bg: hsl(var(--sidebar-bg));
62
+ --color-primary: hsl(var(--primary));
63
+ --color-primary-accent: hsl(var(--primary-accent));
64
+ --color-primary-accent-hover: hsl(var(--primary-accent-hover));
65
+ --color-primary-fg: hsl(var(--primary-fg));
66
+ --color-primary-bg: hsl(var(--primary-bg));
67
+ --color-primary-border: hsl(var(--primary-border));
68
+ --color-primary-bg-hover: hsl(var(--primary-bg-hover));
69
+ --color-primary-hover: hsl(var(--primary-hover));
70
+ --color-primary-foreground: hsl(var(--primary-foreground));
71
+ --color-secondary: hsl(var(--secondary));
72
+ --color-secondary-accent: hsl(var(--secondary-accent));
73
+ --color-secondary-fg: hsl(var(--secondary-fg));
74
+ --color-secondary-bg: hsl(var(--secondary-bg));
75
+ --color-secondary-border: hsl(var(--secondary-border));
76
+ --color-secondary-bg-hover: hsl(var(--secondary-bg-hover));
77
+ --color-secondary-hover: hsl(var(--secondary-hover));
78
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
79
+ --color-tertiary-accent: hsl(var(--tertiary-accent));
80
+ --color-inverse-primary-bg: hsl(var(--inverse-primary-bg));
81
+ --color-inverse-secondary-bg: hsl(var(--inverse-secondary-bg));
82
+ --color-inverse-hover: hsl(var(--inverse-hover));
83
+ --color-inverse-active: hsl(var(--inverse-active));
84
+ --color-inverse-border: hsl(var(--inverse-border));
85
+ --color-inverse-muted: hsl(var(--inverse-muted));
86
+ --color-inverse-secondary-fg: hsl(var(--inverse-secondary-fg));
87
+ --color-inverse-primary-fg: hsl(var(--inverse-primary-fg));
88
+ --color-status-neutral: hsl(var(--status-default));
89
+ --color-status-neutral-hover: hsl(var(--status-default-hover));
90
+ --color-status-neutral-border: hsl(var(--status-default-border));
91
+ --color-status-neutral-muted: hsl(var(--status-default-muted));
92
+ --color-status-neutral-bg: hsl(var(--status-default-bg));
93
+ --color-status-neutral-bg-hover: hsl(var(--status-default-bg-hover));
94
+ --color-status-neutral-fg: hsl(var(--status-default-fg));
95
+ --color-status-info: hsl(var(--status-info));
96
+ --color-status-info-fg: hsl(var(--status-info-fg));
97
+ --color-status-info-bg: hsl(var(--status-info-bg));
98
+ --color-status-info-primary-bg: hsl(var(--status-info-primary-bg));
99
+ --color-status-info-bg-hover: hsl(var(--status-info-bg-hover));
100
+ --color-status-info-primary-border: hsl(var(--status-info-primary-border));
101
+ --color-status-info-secondary-border: hsl(var(--status-info-secondary-border));
102
+ --color-status-info-hover: hsl(var(--status-info-hover));
103
+ --color-status-success: hsl(var(--status-success));
104
+ --color-status-success-fg: hsl(var(--status-success-fg));
105
+ --color-status-success-bg: hsl(var(--status-success-bg));
106
+ --color-status-success-primary-bg: hsl(var(--status-success-primary-bg));
107
+ --color-status-success-bg-hover: hsl(var(--status-success-bg-hover));
108
+ --color-status-success-primary-border: hsl(var(--status-success-primary-border));
109
+ --color-status-success-secondary-border: hsl(var(--status-success-secondary-border));
110
+ --color-status-success-hover: hsl(var(--status-success-hover));
111
+ --color-status-warning: hsl(var(--status-warning));
112
+ --color-status-warning-fg: hsl(var(--status-warning-fg));
113
+ --color-status-warning-bg: hsl(var(--status-warning-bg));
114
+ --color-status-warning-primary-bg: hsl(var(--status-warning-primary-bg));
115
+ --color-status-warning-bg-hover: hsl(var(--status-warning-bg-hover));
116
+ --color-status-warning-primary-border: hsl(var(--status-warning-primary-border));
117
+ --color-status-warning-secondary-border: hsl(var(--status-warning-secondary-border));
118
+ --color-status-warning-hover: hsl(var(--status-warning-hover));
119
+ --color-status-error: hsl(var(--status-error));
120
+ --color-status-error-fg: hsl(var(--status-error-fg));
121
+ --color-status-error-bg: hsl(var(--status-error-bg));
122
+ --color-status-error-primary-bg: hsl(var(--status-error-primary-bg));
123
+ --color-status-error-bg-hover: hsl(var(--status-error-bg-hover));
124
+ --color-status-error-primary-border: hsl(var(--status-error-primary-border));
125
+ --color-status-error-secondary-border: hsl(var(--status-error-secondary-border));
126
+ --color-status-error-hover: hsl(var(--status-error-hover));
127
+ --color-alpha-10: hsl(var(--alpha-90));
128
+ --color-alpha-20: hsl(var(--alpha-80));
129
+ --color-alpha-30: hsl(var(--alpha-70));
130
+ --color-alpha-40: hsl(var(--alpha-60));
131
+ --color-alpha-50: hsl(var(--alpha-50));
132
+ --color-alpha-60: hsl(var(--alpha-40));
133
+ --color-alpha-70: hsl(var(--alpha-30));
134
+ --color-alpha-80: hsl(var(--alpha-20));
135
+ --color-alpha-90: hsl(var(--alpha-10));
136
+ --color-alpha-92: hsl(var(--alpha-08));
137
+ --color-alpha-95: hsl(var(--alpha-05));
138
+ --color-alpha-97: hsl(var(--alpha-03));
139
+ --color-alpha-high-10: hsl(var(--alpha-high-90));
140
+ --color-alpha-high-20: hsl(var(--alpha-high-80));
141
+ --color-alpha-high-30: hsl(var(--alpha-high-70));
142
+ --color-alpha-high-40: hsl(var(--alpha-high-60));
143
+ --color-alpha-high-50: hsl(var(--alpha-high-50));
144
+ --color-alpha-high-60: hsl(var(--alpha-high-40));
145
+ --color-alpha-high-70: hsl(var(--alpha-high-30));
146
+ --color-alpha-high-80: hsl(var(--alpha-high-20));
147
+ --color-alpha-high-90: hsl(var(--alpha-high-10));
148
+ --color-alpha-high-92: hsl(var(--alpha-high-08));
149
+ --color-alpha-high-95: hsl(var(--alpha-high-05));
150
+ --color-alpha-high-97: hsl(var(--alpha-high-03));
151
+ --color-alpha-accent-primary: hsl(var(--alpha-accent-primary));
152
+ --color-alpha-accent-secondary: hsl(var(--alpha-accent-secondary));
153
+ --color-shadow-scroll: hsl(222, 47%, 11%);
154
+ --color-palette-peony: hsl(var(--peony));
155
+ --color-palette-garnet: hsl(var(--garnet));
156
+ --color-palette-cinnamon: hsl(var(--cinnamon));
157
+ --color-palette-caramel: hsl(var(--caramel));
158
+ --color-palette-hazel: hsl(var(--hazel));
159
+ --color-palette-honey: hsl(var(--honey));
160
+ --color-palette-lemon: hsl(var(--lemon));
161
+ --color-palette-olive: hsl(var(--olive));
162
+ --color-palette-sage: hsl(var(--sage));
163
+ --color-palette-mint: hsl(var(--mint));
164
+ --color-palette-bazil: hsl(var(--bazil));
165
+ --color-palette-spruce: hsl(var(--spruce));
166
+ --color-palette-aqua: hsl(var(--aqua));
167
+ --color-palette-azure: hsl(var(--azure));
168
+ --color-palette-tiffany: hsl(var(--tiffany));
169
+ --color-palette-marine: hsl(var(--marine));
170
+ --color-palette-turquoise: hsl(var(--turquoise));
171
+ --color-palette-frost: hsl(var(--frost));
172
+ --color-palette-bosphorus: hsl(var(--bosphorus));
173
+ --color-palette-lavender: hsl(var(--lavender));
174
+ --color-palette-orchid: hsl(var(--orchid));
175
+ --color-palette-lilac: hsl(var(--lilac));
176
+ --color-palette-plume: hsl(var(--plume));
177
+ --color-palette-velvet: hsl(var(--velvet));
178
+
179
+ /* Радиусы */
180
+ --radius-lg: var(--radius);
181
+ --radius-md: calc(var(--radius) - 2px);
182
+ --radius-sm: calc(var(--radius) - 4px);
183
+ --radius-xs: calc(var(--radius) - 6px);
184
+
185
+ /* Тени */
186
+ --shadow-soft-base: 0 2px 4px 0 rgba(15, 23, 42, 0.12), 0 1px 2px -1px rgba(15, 23, 42, 0.12);
187
+ --shadow-soft-sm: 0 2px 4px 0 rgba(15, 23, 42, 0.06);
188
+ --shadow-soft-md: 0 2px 4px -2px rgba(15, 23, 42, 0.12), 0 4px 8px -1px rgba(15, 23, 42, 0.12);
189
+ --shadow-soft-lg: 0 8px 16px -4px rgba(15, 23, 42, 0.12), 0 4px 8px -4px rgba(15, 23, 42, 0.12);
190
+ --shadow-soft-xl: 0 6px 12px -6px rgba(15, 23, 42, 0.12), 0 16px 24px -6px rgba(15, 23, 42, 0.12);
191
+ --shadow-soft-2xl: 0 24px 48px -12px rgba(15, 23, 42, 0.24);
192
+ --shadow-focus: 0 0 0 1px hsl(var(--primary-bg)), 0 0 0 2px hsl(var(--focus));
193
+ --shadow-inverse-focus: 0 0 0 1px hsl(var(--inverse-primary-bg)), 0 0 0 2px hsl(var(--inverse-muted));
194
+ --shadow-focus-error: 0 0 0 1px hsl(var(--status-error));
195
+ --shadow-hard-base: 0 1px 3px 0 rgba(2, 6, 23, 0.50), 0 0 0.5px 0 rgba(255, 255, 255, 0.30) inset, 0 3px 8px 0 rgba(2, 6, 23, 0.35), 0 0.5px 0 0 rgba(255, 255, 255, 0.08) inset;
196
+ --shadow-hard-sm: 0 1px 3px 0 rgba(2, 6, 23, 0.40), 0 0 0.5px 0 rgba(255, 255, 255, 0.30) inset, 0 0.5px 0 0 rgba(255, 255, 255, 0.10) inset, 0 0 0.5px 0 rgba(2, 6, 23, 0.50);
197
+ --shadow-hard-md: 0 1px 3px 0 rgba(15, 23, 42, 0.50), 0 0 0.5px 0 rgba(255, 255, 255, 0.30) inset, 0 5px 12px 0 rgba(15, 23, 42, 0.35), 0 0.5px 0 0 rgba(255, 255, 255, 0.08) inset;
198
+ --shadow-hard-lg: 0 2px 5px 0 rgba(15, 23, 42, 0.35), 0 0 0.5px 0 rgba(255, 255, 255, 0.35) inset, 0 10px 16px 0 rgba(2, 6, 23, 0.35), 0 0.5px 0 0 rgba(255, 255, 255, 0.08) inset;
199
+ --shadow-hard-xl: 0 3px 5px 0 rgba(2, 6, 23, 0.35), 0 0 0.5px 0 rgba(255, 255, 255, 0.35) inset, 0 10px 24px 0 rgba(2, 6, 23, 0.45), 0 0.5px 0 0 rgba(255, 255, 255, 0.08) inset;
200
+ --shadow-hard-2xl: 0 4px 6px 0 rgba(2, 6, 23, 0.35), 0 0 0.5px 0 rgba(255, 255, 255, 0.35) inset, 0 12px 28px 0 rgba(2, 6, 23, 0.45), 0 0.5px 0 0 rgba(255, 255, 255, 0.08) inset;
201
+
202
+ /* Интерлиньяж */
203
+ --leading-11: 2.75rem;
204
+ --leading-12: 3.75rem;
205
+ --leading-13: 4.5rem;
206
+ --leading-14: 5.5rem;
207
+ --leading-none: 100%;
208
+
209
+ /* Типографика */
210
+ --text-2xs: 0.5rem;
211
+ --text-2xs--line-height: 0.5rem;
212
+ --text-base: 1rem;
213
+ --text-base--line-height: 1.375rem;
214
+ --text-lg: 1.125rem;
215
+ --text-lg--line-height: 1.5rem;
216
+ --text-4xl: 2.25rem;
217
+ --text-4xl--line-height: 2.75rem;
218
+ --text-4xl--letter-spacing: -0.02em;
219
+ --text-5xl: 3rem;
220
+ --text-5xl--line-height: 3.75rem;
221
+ --text-5xl--letter-spacing: -0.02em;
222
+ --text-6xl: 3.75rem;
223
+ --text-6xl--line-height: 4.5rem;
224
+ --text-6xl--letter-spacing: -0.02em;
225
+ --text-7xl: 4.5rem;
226
+ --text-7xl--line-height: 5.5rem;
227
+ --text-7xl--letter-spacing: -0.02em;
228
+
229
+ /* Шрифты */
230
+ --font-sans: "Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
231
+ --font-mono: Menlo, ui-monospace, SFMono-Regular, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
232
+
233
+ /* Анимации */
234
+ --animate-indeterminate-bar: indeterminate-bar 1.5s cubic-bezier(.65,.815,.735,.395) infinite;
235
+ --animate-collapsible-down: collapsible-down 200ms cubic-bezier(0.22,1,0.36,1);
236
+ --animate-collapsible-up: collapsible-up 200ms cubic-bezier(0.22,1,0.36,1);
237
+ }
238
+
239
+ @keyframes indeterminate-bar {
240
+ 0% {
241
+ transform: translate(-50%) scaleX(.2);
242
+ }
243
+ 100% {
244
+ transform: translate(100%) scaleX(1);
245
+ }
246
+ }
247
+
248
+ @keyframes collapsible-down {
249
+ from {
250
+ height: 0;
251
+ }
252
+ to {
253
+ height: var(--radix-collapsible-content-height);
254
+ }
255
+ }
256
+
257
+ @keyframes collapsible-up {
258
+ from {
259
+ height: var(--radix-collapsible-content-height);
260
+ }
261
+ to {
262
+ height: 0;
263
+ }
264
+ }
265
+
266
+ @utility shadow-glass-sm {
267
+ box-shadow: var(--shadow-glass-sm);
268
+ }
269
+
270
+ @utility shadow-glass-md {
271
+ box-shadow: var(--shadow-glass-md);
272
+ }
273
+
274
+ @utility shadow-glass-lg {
275
+ box-shadow: var(--shadow-glass-lg);
276
+ }
277
+
278
+ /*
279
+ * theme.extend.typography из пресета. В v4 плагин typography не берёт
280
+ * конфигурацию из JS, поэтому переменные и правила перенесены сюда.
281
+ *
282
+ * Блок намеренно вне @layer: правила самого плагина едут в слои
283
+ * components/utilities, и любой слой они бы перебили. Неслоёные стили
284
+ * выигрывают у слоёных, так что это единственный способ гарантировать,
285
+ * что кастомизация кита возьмёт верх над дефолтами плагина.
286
+ */
287
+ .prose {
288
+ --tw-prose-body: hsl(var(--primary-fg));
289
+ --tw-prose-headings: hsl(var(--primary-fg));
290
+ --tw-prose-lead: hsl(var(--primary-fg));
291
+ --tw-prose-links: hsl(var(--primary-fg));
292
+ --tw-prose-bold: hsl(var(--primary-fg));
293
+ --tw-prose-counters: hsl(var(--primary-fg));
294
+ --tw-prose-bullets: hsl(var(--primary-fg));
295
+ --tw-prose-hr: hsl(var(--secondary-border));
296
+ --tw-prose-quotes: hsl(var(--primary-fg));
297
+ --tw-prose-quote-borders: hsl(var(--secondary-border));
298
+ --tw-prose-captions: hsl(var(--primary-fg));
299
+ --tw-prose-code: hsl(var(--primary-fg));
300
+ --tw-prose-pre-code: hsl(var(--primary-bg));
301
+ --tw-prose-pre-bg: hsl(var(--primary-accent));
302
+ --tw-prose-th-borders: hsl(var(--secondary-border));
303
+ --tw-prose-td-borders: hsl(var(--secondary-border));
304
+
305
+ a {
306
+ text-underline-offset: 24%;
307
+ }
308
+ abbr {
309
+ text-underline-offset: 24%;
310
+ }
311
+ ins {
312
+ text-underline-offset: 24%;
313
+ }
314
+ kbd {
315
+ color: hsl(var(--muted));
316
+ background: hsl(var(--secondary-bg));
317
+ border: 1px solid hsl(var(--secondary-border));
318
+ box-shadow: none;
319
+ padding: 0.125rem 0.25rem;
320
+ }
321
+ figcaption {
322
+ font-style: italic;
323
+ }
324
+ ul {
325
+ margin-top: 1.25rem;
326
+ margin-left: 1.5rem;
327
+ }
328
+ ol {
329
+ margin-top: 1.25rem;
330
+ margin-left: 1.5rem;
331
+ }
332
+ code {
333
+ background: hsl(var(--secondary-bg-hover));
334
+ border-radius: calc(var(--radius) - 4px);
335
+ padding: 0.2rem 0.3rem;
336
+ font-weight: 700;
337
+ line-height: 1.25rem;
338
+ font-family: Menlo, ui-monospace, SFMono-Regular, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
339
+ &::before {
340
+ content: "" !important;
341
+ }
342
+ &::after {
343
+ content: "" !important;
344
+ }
345
+ }
346
+ pre {
347
+ border: 1px solid hsl(var(--secondary-border));
348
+ }
349
+ blockquote {
350
+ padding-inline-start: 1.5rem;
351
+ }
352
+ table {
353
+ margin-top: 1.25rem !important;
354
+ margin-bottom: 1.25rem;
355
+ border-collapse: collapse;
356
+ border: 1px solid hsl(var(--secondary-border));
357
+ & tbody tr:nth-child(odd) {
358
+ background-color: hsl(var(--secondary-bg-hover));
359
+ }
360
+ }
361
+ th {
362
+ border: 1px solid hsl(var(--secondary-border));
363
+ padding: 0.5rem 1rem;
364
+ }
365
+ td {
366
+ border: 1px solid hsl(var(--secondary-border));
367
+ padding: 0.5rem 1rem;
368
+ }
369
+ }
370
+
371
+ /*
372
+ * Базовый слой кита. Переопределяется своим @layer base после импорта.
373
+ */
374
+ @layer base {
375
+ * {
376
+ @apply border-border;
377
+ }
378
+ body {
379
+ @apply bg-background font-sans text-foreground;
380
+ }
381
+ :root {
382
+ @apply font-smoothing;
383
+ }
384
+
385
+ * {
386
+ scrollbar-width: thin;
387
+ scrollbar-color: hsl(var(--secondary-border)) transparent;
388
+ }
389
+
390
+ /* Дефолты, изменившиеся в Tailwind 4 */
391
+
392
+ /* v4 отдаёт кнопкам cursor: default; кит рассчитан на pointer */
393
+ button:not(:disabled),
394
+ [role="button"]:not(:disabled) {
395
+ cursor: pointer;
396
+ }
397
+
398
+ /* v4 красит плейсхолдер текущим цветом с прозрачностью 50%; кит — токеном muted */
399
+ input::placeholder,
400
+ textarea::placeholder {
401
+ color: hsl(var(--muted));
402
+ }
403
+ }
404
+
405
+ @utility underline {
406
+ text-decoration: underline;
407
+ text-underline-offset: 24%;
408
+ }