ics-ui-kit 1.0.0-alpha.0 → 1.0.0-alpha.2

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 (134) hide show
  1. package/dist/CalendarPreviousMonthButton-CHMp8bkd.js +2964 -0
  2. package/dist/CalendarPreviousMonthButton-CHMp8bkd.js.map +1 -0
  3. package/dist/{CheckboxField-Ca48ZYoX.js → CheckboxField-xDqHgXHh.js} +2 -2
  4. package/dist/{CheckboxField-Ca48ZYoX.js.map → CheckboxField-xDqHgXHh.js.map} +1 -1
  5. package/dist/{Command-CsW4aK7M.js → Command-WsAKNQrY.js} +2 -2
  6. package/dist/{Command-CsW4aK7M.js.map → Command-WsAKNQrY.js.map} +1 -1
  7. package/dist/{Dialog-BT_775Iz.js → Dialog-i_Y-phdM.js} +42 -43
  8. package/dist/Dialog-i_Y-phdM.js.map +1 -0
  9. package/dist/{Field-BRPdaQ8D.js → Field-BcwUtgGr.js} +2 -2
  10. package/dist/{Field-BRPdaQ8D.js.map → Field-BcwUtgGr.js.map} +1 -1
  11. package/dist/{FieldLabel-ic0eq9Un.js → FieldLabel-DYu1AcGH.js} +2 -2
  12. package/dist/{FieldLabel-ic0eq9Un.js.map → FieldLabel-DYu1AcGH.js.map} +1 -1
  13. package/dist/{FormFooterTemplate-BIwnBQhL.js → FormFooterTemplate-CHlas_Pp.js} +2 -2
  14. package/dist/{FormFooterTemplate-BIwnBQhL.js.map → FormFooterTemplate-CHlas_Pp.js.map} +1 -1
  15. package/dist/FormStack-DfoaOry7.js +1205 -0
  16. package/dist/FormStack-DfoaOry7.js.map +1 -0
  17. package/dist/{IconTooltip-CgbefRXG.js → IconTooltip-R6_6_f40.js} +2 -2
  18. package/dist/{IconTooltip-CgbefRXG.js.map → IconTooltip-R6_6_f40.js.map} +1 -1
  19. package/dist/{Popover-Dz2eNsXh.js → Popover-XrJa7lyb.js} +49 -50
  20. package/dist/Popover-XrJa7lyb.js.map +1 -0
  21. package/dist/{Select-Bfbtj5zt.js → Select-DO02vXt3.js} +185 -186
  22. package/dist/{Select-Bfbtj5zt.js.map → Select-DO02vXt3.js.map} +1 -1
  23. package/dist/{Sheet-aLBPtE1k.js → Sheet-C2UoHLL0.js} +35 -36
  24. package/dist/Sheet-C2UoHLL0.js.map +1 -0
  25. package/dist/{TextOverflowTooltip-BaNPKqnO.js → TextOverflowTooltip-XPDdO9Dz.js} +2 -2
  26. package/dist/{TextOverflowTooltip-BaNPKqnO.js.map → TextOverflowTooltip-XPDdO9Dz.js.map} +1 -1
  27. package/dist/{Tooltip-DOgKy50D.js → Tooltip-D2XvRS0c.js} +63 -64
  28. package/dist/Tooltip-D2XvRS0c.js.map +1 -0
  29. package/dist/blocks/auth/otp-form.js +3240 -204
  30. package/dist/blocks/auth/otp-form.js.map +1 -1
  31. package/dist/components/alert-dialog/AlertDialog.d.ts +2 -4
  32. package/dist/components/alert-dialog.js +70 -71
  33. package/dist/components/alert-dialog.js.map +1 -1
  34. package/dist/components/calendar/components/calendar-dropdown/CalendarDropdown.d.ts +24 -0
  35. package/dist/components/calendar/styles.d.ts +61 -0
  36. package/dist/components/calendar-scroll/CalendarScroll.d.ts +21 -0
  37. package/dist/components/calendar-scroll/CalendarScroll.stories.d.ts +16 -0
  38. package/dist/components/calendar-scroll/index.d.ts +3 -0
  39. package/dist/components/calendar-scroll.d.ts +2 -0
  40. package/dist/components/calendar-scroll.js +181 -0
  41. package/dist/components/calendar-scroll.js.map +1 -0
  42. package/dist/components/calendar.js +51 -147
  43. package/dist/components/calendar.js.map +1 -1
  44. package/dist/components/checkbox.js +1 -1
  45. package/dist/components/command.js +1 -1
  46. package/dist/components/dialog/Dialog.d.ts +2 -4
  47. package/dist/components/dialog.js +3 -3
  48. package/dist/components/drawer/components/drawer-content/DrawerContent.d.ts +1 -2
  49. package/dist/components/drawer.js +96 -97
  50. package/dist/components/drawer.js.map +1 -1
  51. package/dist/components/dropdown/Dropdown.d.ts +2 -4
  52. package/dist/components/dropdown.js +251 -252
  53. package/dist/components/dropdown.js.map +1 -1
  54. package/dist/components/field.js +1 -1
  55. package/dist/components/file-upload.js +1 -1
  56. package/dist/components/form/Form.d.ts +14 -0
  57. package/dist/components/form/components/form-field/FormField.d.ts +4 -0
  58. package/dist/components/form.js +3 -3
  59. package/dist/components/icon-tooltip.js +1 -1
  60. package/dist/components/label.js +1 -1
  61. package/dist/components/overflow-tooltip.js +1 -1
  62. package/dist/components/popover/Popover.d.ts +1 -2
  63. package/dist/components/popover.js +1 -1
  64. package/dist/components/resizable/Resizable.d.ts +1 -1
  65. package/dist/components/scheduler.js +1 -1
  66. package/dist/components/search-select/multi-select/MultiSelect.d.ts +1 -1
  67. package/dist/components/search-select.js +3 -3
  68. package/dist/components/search-select.js.map +1 -1
  69. package/dist/components/select/Select.d.ts +1 -2
  70. package/dist/components/select.js +1 -1
  71. package/dist/components/sheet/Sheet.d.ts +1 -2
  72. package/dist/components/sheet.js +1 -1
  73. package/dist/components/sidebar.js +2 -2
  74. package/dist/components/switch.js +1 -1
  75. package/dist/components/tag-input.js +1 -1
  76. package/dist/components/tooltip/Tooltip.d.ts +2 -4
  77. package/dist/components/tooltip.js +1 -1
  78. package/dist/tailwind.css +406 -361
  79. package/package.json +22 -18
  80. package/dist/DayPicker-4hE1QEvO.js +0 -2452
  81. package/dist/DayPicker-4hE1QEvO.js.map +0 -1
  82. package/dist/Dialog-BT_775Iz.js.map +0 -1
  83. package/dist/FormStack-CxiZhx1n.js +0 -127
  84. package/dist/FormStack-CxiZhx1n.js.map +0 -1
  85. package/dist/Popover-Dz2eNsXh.js.map +0 -1
  86. package/dist/Sheet-aLBPtE1k.js.map +0 -1
  87. package/dist/Tooltip-DOgKy50D.js.map +0 -1
  88. package/dist/buildMatchPatternFn-d7GTeGl_.js +0 -68
  89. package/dist/buildMatchPatternFn-d7GTeGl_.js.map +0 -1
  90. package/dist/components/portal-container/PortalContainer.d.ts +0 -10
  91. package/dist/components/portal-container/index.d.ts +0 -2
  92. package/dist/components/portal-container/portalContainerEvents.d.ts +0 -12
  93. package/dist/components/portal-container/usePortalContainer.d.ts +0 -11
  94. package/dist/components/portal-container.d.ts +0 -2
  95. package/dist/components/portal-container.js +0 -14
  96. package/dist/components/portal-container.js.map +0 -1
  97. package/dist/index.esm-CXA6i4d7.js +0 -1282
  98. package/dist/index.esm-CXA6i4d7.js.map +0 -1
  99. package/dist/normalizeDates-9A3c9WYM.js +0 -32
  100. package/dist/normalizeDates-9A3c9WYM.js.map +0 -1
  101. package/dist/styles.css +0 -9064
  102. package/dist/styles.d.ts +0 -1
  103. package/dist/usePortalContainer-B1xla842.js +0 -33
  104. package/dist/usePortalContainer-B1xla842.js.map +0 -1
  105. package/dist/vendors/date-fns/index.d.ts +0 -12
  106. package/dist/vendors/date-fns/locale/en-US/index.d.ts +0 -5
  107. package/dist/vendors/date-fns/locale/en-US.d.ts +0 -2
  108. package/dist/vendors/date-fns/locale/en-US.js +0 -372
  109. package/dist/vendors/date-fns/locale/en-US.js.map +0 -1
  110. package/dist/vendors/date-fns/locale/ru/index.d.ts +0 -5
  111. package/dist/vendors/date-fns/locale/ru.d.ts +0 -2
  112. package/dist/vendors/date-fns/locale/ru.js +0 -569
  113. package/dist/vendors/date-fns/locale/ru.js.map +0 -1
  114. package/dist/vendors/date-fns.d.ts +0 -2
  115. package/dist/vendors/date-fns.js +0 -2
  116. package/dist/vendors/date-fns.js.map +0 -1
  117. package/dist/vendors/react-day-picker/index.d.ts +0 -13
  118. package/dist/vendors/react-day-picker.d.ts +0 -2
  119. package/dist/vendors/react-day-picker.js +0 -87
  120. package/dist/vendors/react-day-picker.js.map +0 -1
  121. package/dist/vendors/react-hook-form/index.d.ts +0 -14
  122. package/dist/vendors/react-hook-form.d.ts +0 -2
  123. package/dist/vendors/react-hook-form.js +0 -19
  124. package/dist/vendors/react-hook-form.js.map +0 -1
  125. package/dist/vendors/tanstack/react-table/index.d.ts +0 -13
  126. package/dist/vendors/tanstack/react-table.d.ts +0 -2
  127. package/dist/vendors/tanstack/react-table.js +0 -2090
  128. package/dist/vendors/tanstack/react-table.js.map +0 -1
  129. package/dist/vendors/zod/index.d.ts +0 -13
  130. package/dist/vendors/zod.d.ts +0 -2
  131. package/dist/vendors/zod.js +0 -3080
  132. package/dist/vendors/zod.js.map +0 -1
  133. package/dist/zod-BMNoK3aM.js +0 -75
  134. package/dist/zod-BMNoK3aM.js.map +0 -1
package/dist/tailwind.css CHANGED
@@ -1,361 +1,406 @@
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
- * Базовый слой живёт в styles.css.
13
- *
14
- * @theme inline — обязательно, а не просто @theme: значения токенов
15
- * ссылаются на CSS-переменные темы (--primary-accent и т.п.), которые
16
- * переопределяются в .dark. Без inline значение резолвилось бы один раз
17
- * на :root и тёмная тема не работала бы.
18
- */
19
-
20
- @import "./theme.css";
21
- @import "./font-smoothing.css";
22
-
23
- @plugin "@tailwindcss/typography";
24
-
25
- /* darkMode: ["class"] из пресета */
26
- @custom-variant dark (&:where(.dark, .dark *));
27
-
28
- /* screens.touch: { raw: "(pointer: coarse)" } из пресета */
29
- @custom-variant touch (@media (pointer: coarse));
30
-
31
- @theme inline {
32
- /* Цвета */
33
- --color-background: hsl(var(--background));
34
- --color-foreground: hsl(var(--foreground));
35
- --color-card: hsl(var(--card));
36
- --color-card-foreground: hsl(var(--card-foreground));
37
- --color-popover: hsl(var(--popover));
38
- --color-popover-foreground: hsl(var(--popover-foreground));
39
- --color-muted: hsl(var(--muted));
40
- --color-muted-foreground: hsl(var(--muted-foreground));
41
- --color-accent: hsl(var(--accent));
42
- --color-accent-foreground: hsl(var(--accent-foreground));
43
- --color-destructive: hsl(var(--destructive));
44
- --color-destructive-foreground: hsl(var(--destructive-foreground));
45
- --color-border: hsl(var(--border));
46
- --color-input: hsl(var(--input));
47
- --color-ring: hsl(var(--ring));
48
- --color-chart-1: hsl(var(--chart-1));
49
- --color-chart-2: hsl(var(--chart-2));
50
- --color-chart-3: hsl(var(--chart-3));
51
- --color-chart-4: hsl(var(--chart-4));
52
- --color-chart-5: hsl(var(--chart-5));
53
- --color-sidebar-bg: hsl(var(--sidebar-bg));
54
- --color-primary: hsl(var(--primary));
55
- --color-primary-accent: hsl(var(--primary-accent));
56
- --color-primary-accent-hover: hsl(var(--primary-accent-hover));
57
- --color-primary-fg: hsl(var(--primary-fg));
58
- --color-primary-bg: hsl(var(--primary-bg));
59
- --color-primary-border: hsl(var(--primary-border));
60
- --color-primary-bg-hover: hsl(var(--primary-bg-hover));
61
- --color-primary-hover: hsl(var(--primary-hover));
62
- --color-primary-foreground: hsl(var(--primary-foreground));
63
- --color-secondary: hsl(var(--secondary));
64
- --color-secondary-accent: hsl(var(--secondary-accent));
65
- --color-secondary-fg: hsl(var(--secondary-fg));
66
- --color-secondary-bg: hsl(var(--secondary-bg));
67
- --color-secondary-border: hsl(var(--secondary-border));
68
- --color-secondary-bg-hover: hsl(var(--secondary-bg-hover));
69
- --color-secondary-hover: hsl(var(--secondary-hover));
70
- --color-secondary-foreground: hsl(var(--secondary-foreground));
71
- --color-tertiary-accent: hsl(var(--tertiary-accent));
72
- --color-inverse-primary-bg: hsl(var(--inverse-primary-bg));
73
- --color-inverse-secondary-bg: hsl(var(--inverse-secondary-bg));
74
- --color-inverse-hover: hsl(var(--inverse-hover));
75
- --color-inverse-active: hsl(var(--inverse-active));
76
- --color-inverse-border: hsl(var(--inverse-border));
77
- --color-inverse-muted: hsl(var(--inverse-muted));
78
- --color-inverse-secondary-fg: hsl(var(--inverse-secondary-fg));
79
- --color-inverse-primary-fg: hsl(var(--inverse-primary-fg));
80
- --color-status-neutral: hsl(var(--status-default));
81
- --color-status-neutral-hover: hsl(var(--status-default-hover));
82
- --color-status-neutral-border: hsl(var(--status-default-border));
83
- --color-status-neutral-muted: hsl(var(--status-default-muted));
84
- --color-status-neutral-bg: hsl(var(--status-default-bg));
85
- --color-status-neutral-bg-hover: hsl(var(--status-default-bg-hover));
86
- --color-status-neutral-fg: hsl(var(--status-default-fg));
87
- --color-status-info: hsl(var(--status-info));
88
- --color-status-info-fg: hsl(var(--status-info-fg));
89
- --color-status-info-bg: hsl(var(--status-info-bg));
90
- --color-status-info-primary-bg: hsl(var(--status-info-primary-bg));
91
- --color-status-info-bg-hover: hsl(var(--status-info-bg-hover));
92
- --color-status-info-primary-border: hsl(var(--status-info-primary-border));
93
- --color-status-info-secondary-border: hsl(var(--status-info-secondary-border));
94
- --color-status-info-hover: hsl(var(--status-info-hover));
95
- --color-status-success: hsl(var(--status-success));
96
- --color-status-success-fg: hsl(var(--status-success-fg));
97
- --color-status-success-bg: hsl(var(--status-success-bg));
98
- --color-status-success-primary-bg: hsl(var(--status-success-primary-bg));
99
- --color-status-success-bg-hover: hsl(var(--status-success-bg-hover));
100
- --color-status-success-primary-border: hsl(var(--status-success-primary-border));
101
- --color-status-success-secondary-border: hsl(var(--status-success-secondary-border));
102
- --color-status-success-hover: hsl(var(--status-success-hover));
103
- --color-status-warning: hsl(var(--status-warning));
104
- --color-status-warning-fg: hsl(var(--status-warning-fg));
105
- --color-status-warning-bg: hsl(var(--status-warning-bg));
106
- --color-status-warning-primary-bg: hsl(var(--status-warning-primary-bg));
107
- --color-status-warning-bg-hover: hsl(var(--status-warning-bg-hover));
108
- --color-status-warning-primary-border: hsl(var(--status-warning-primary-border));
109
- --color-status-warning-secondary-border: hsl(var(--status-warning-secondary-border));
110
- --color-status-warning-hover: hsl(var(--status-warning-hover));
111
- --color-status-error: hsl(var(--status-error));
112
- --color-status-error-fg: hsl(var(--status-error-fg));
113
- --color-status-error-bg: hsl(var(--status-error-bg));
114
- --color-status-error-primary-bg: hsl(var(--status-error-primary-bg));
115
- --color-status-error-bg-hover: hsl(var(--status-error-bg-hover));
116
- --color-status-error-primary-border: hsl(var(--status-error-primary-border));
117
- --color-status-error-secondary-border: hsl(var(--status-error-secondary-border));
118
- --color-status-error-hover: hsl(var(--status-error-hover));
119
- --color-alpha-10: hsl(var(--alpha-90));
120
- --color-alpha-20: hsl(var(--alpha-80));
121
- --color-alpha-30: hsl(var(--alpha-70));
122
- --color-alpha-40: hsl(var(--alpha-60));
123
- --color-alpha-50: hsl(var(--alpha-50));
124
- --color-alpha-60: hsl(var(--alpha-40));
125
- --color-alpha-70: hsl(var(--alpha-30));
126
- --color-alpha-80: hsl(var(--alpha-20));
127
- --color-alpha-90: hsl(var(--alpha-10));
128
- --color-alpha-92: hsl(var(--alpha-08));
129
- --color-alpha-95: hsl(var(--alpha-05));
130
- --color-alpha-97: hsl(var(--alpha-03));
131
- --color-alpha-high-10: hsl(var(--alpha-high-90));
132
- --color-alpha-high-20: hsl(var(--alpha-high-80));
133
- --color-alpha-high-30: hsl(var(--alpha-high-70));
134
- --color-alpha-high-40: hsl(var(--alpha-high-60));
135
- --color-alpha-high-50: hsl(var(--alpha-high-50));
136
- --color-alpha-high-60: hsl(var(--alpha-high-40));
137
- --color-alpha-high-70: hsl(var(--alpha-high-30));
138
- --color-alpha-high-80: hsl(var(--alpha-high-20));
139
- --color-alpha-high-90: hsl(var(--alpha-high-10));
140
- --color-alpha-high-92: hsl(var(--alpha-high-08));
141
- --color-alpha-high-95: hsl(var(--alpha-high-05));
142
- --color-alpha-high-97: hsl(var(--alpha-high-03));
143
- --color-alpha-accent-primary: hsl(var(--alpha-accent-primary));
144
- --color-alpha-accent-secondary: hsl(var(--alpha-accent-secondary));
145
- --color-shadow-scroll: hsl(222, 47%, 11%);
146
- --color-palette-peony: hsl(var(--peony));
147
- --color-palette-garnet: hsl(var(--garnet));
148
- --color-palette-cinnamon: hsl(var(--cinnamon));
149
- --color-palette-caramel: hsl(var(--caramel));
150
- --color-palette-hazel: hsl(var(--hazel));
151
- --color-palette-honey: hsl(var(--honey));
152
- --color-palette-lemon: hsl(var(--lemon));
153
- --color-palette-olive: hsl(var(--olive));
154
- --color-palette-sage: hsl(var(--sage));
155
- --color-palette-mint: hsl(var(--mint));
156
- --color-palette-bazil: hsl(var(--bazil));
157
- --color-palette-spruce: hsl(var(--spruce));
158
- --color-palette-aqua: hsl(var(--aqua));
159
- --color-palette-azure: hsl(var(--azure));
160
- --color-palette-tiffany: hsl(var(--tiffany));
161
- --color-palette-marine: hsl(var(--marine));
162
- --color-palette-turquoise: hsl(var(--turquoise));
163
- --color-palette-frost: hsl(var(--frost));
164
- --color-palette-bosphorus: hsl(var(--bosphorus));
165
- --color-palette-lavender: hsl(var(--lavender));
166
- --color-palette-orchid: hsl(var(--orchid));
167
- --color-palette-lilac: hsl(var(--lilac));
168
- --color-palette-plume: hsl(var(--plume));
169
- --color-palette-velvet: hsl(var(--velvet));
170
-
171
- /* Радиусы */
172
- --radius-lg: var(--radius);
173
- --radius-md: calc(var(--radius) - 2px);
174
- --radius-sm: calc(var(--radius) - 4px);
175
- --radius-xs: calc(var(--radius) - 6px);
176
-
177
- /* Тени */
178
- --shadow-soft-base: 0 2px 4px 0 rgba(15, 23, 42, 0.12), 0 1px 2px -1px rgba(15, 23, 42, 0.12);
179
- --shadow-soft-sm: 0 2px 4px 0 rgba(15, 23, 42, 0.06);
180
- --shadow-soft-md: 0 2px 4px -2px rgba(15, 23, 42, 0.12), 0 4px 8px -1px rgba(15, 23, 42, 0.12);
181
- --shadow-soft-lg: 0 8px 16px -4px rgba(15, 23, 42, 0.12), 0 4px 8px -4px rgba(15, 23, 42, 0.12);
182
- --shadow-soft-xl: 0 6px 12px -6px rgba(15, 23, 42, 0.12), 0 16px 24px -6px rgba(15, 23, 42, 0.12);
183
- --shadow-soft-2xl: 0 24px 48px -12px rgba(15, 23, 42, 0.24);
184
- --shadow-focus: 0 0 0 1px hsl(var(--primary-bg)), 0 0 0 2px hsl(var(--focus));
185
- --shadow-inverse-focus: 0 0 0 1px hsl(var(--inverse-primary-bg)), 0 0 0 2px hsl(var(--inverse-muted));
186
- --shadow-focus-error: 0 0 0 1px hsl(var(--status-error));
187
- --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;
188
- --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);
189
- --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;
190
- --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;
191
- --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;
192
- --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;
193
-
194
- /* Интерлиньяж */
195
- --leading-11: 2.75rem;
196
- --leading-12: 3.75rem;
197
- --leading-13: 4.5rem;
198
- --leading-14: 5.5rem;
199
- --leading-none: 100%;
200
-
201
- /* Типографика */
202
- --text-2xs: 0.5rem;
203
- --text-2xs--line-height: 0.5rem;
204
- --text-base: 1rem;
205
- --text-base--line-height: 1.375rem;
206
- --text-lg: 1.125rem;
207
- --text-lg--line-height: 1.5rem;
208
- --text-4xl: 2.25rem;
209
- --text-4xl--line-height: 2.75rem;
210
- --text-4xl--letter-spacing: -0.02em;
211
- --text-5xl: 3rem;
212
- --text-5xl--line-height: 3.75rem;
213
- --text-5xl--letter-spacing: -0.02em;
214
- --text-6xl: 3.75rem;
215
- --text-6xl--line-height: 4.5rem;
216
- --text-6xl--letter-spacing: -0.02em;
217
- --text-7xl: 4.5rem;
218
- --text-7xl--line-height: 5.5rem;
219
- --text-7xl--letter-spacing: -0.02em;
220
-
221
- /* Шрифты */
222
- --font-sans: "Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
223
- --font-mono: Menlo, ui-monospace, SFMono-Regular, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
224
-
225
- /* Анимации */
226
- --animate-indeterminate-bar: indeterminate-bar 1.5s cubic-bezier(.65,.815,.735,.395) infinite;
227
- --animate-collapsible-down: collapsible-down 200ms cubic-bezier(0.22,1,0.36,1);
228
- --animate-collapsible-up: collapsible-up 200ms cubic-bezier(0.22,1,0.36,1);
229
- }
230
-
231
- @keyframes indeterminate-bar {
232
- 0% {
233
- transform: translate(-50%) scaleX(.2);
234
- }
235
- 100% {
236
- transform: translate(100%) scaleX(1);
237
- }
238
- }
239
-
240
- @keyframes collapsible-down {
241
- from {
242
- height: 0;
243
- }
244
- to {
245
- height: var(--radix-collapsible-content-height);
246
- }
247
- }
248
-
249
- @keyframes collapsible-up {
250
- from {
251
- height: var(--radix-collapsible-content-height);
252
- }
253
- to {
254
- height: 0;
255
- }
256
- }
257
-
258
- @utility shadow-glass-sm {
259
- box-shadow: var(--shadow-glass-sm);
260
- }
261
-
262
- @utility shadow-glass-md {
263
- box-shadow: var(--shadow-glass-md);
264
- }
265
-
266
- @utility shadow-glass-lg {
267
- box-shadow: var(--shadow-glass-lg);
268
- }
269
-
270
- /*
271
- * theme.extend.typography из пресета. В v4 плагин typography не берёт
272
- * конфигурацию из JS, поэтому переменные и правила перенесены сюда.
273
- *
274
- * Блок намеренно вне @layer: правила самого плагина едут в слои
275
- * components/utilities, и любой слой они бы перебили. Неслоёные стили
276
- * выигрывают у слоёных, так что это единственный способ гарантировать,
277
- * что кастомизация кита возьмёт верх над дефолтами плагина.
278
- */
279
- .prose {
280
- --tw-prose-body: hsl(var(--primary-fg));
281
- --tw-prose-headings: hsl(var(--primary-fg));
282
- --tw-prose-lead: hsl(var(--primary-fg));
283
- --tw-prose-links: hsl(var(--primary-fg));
284
- --tw-prose-bold: hsl(var(--primary-fg));
285
- --tw-prose-counters: hsl(var(--primary-fg));
286
- --tw-prose-bullets: hsl(var(--primary-fg));
287
- --tw-prose-hr: hsl(var(--secondary-border));
288
- --tw-prose-quotes: hsl(var(--primary-fg));
289
- --tw-prose-quote-borders: hsl(var(--secondary-border));
290
- --tw-prose-captions: hsl(var(--primary-fg));
291
- --tw-prose-code: hsl(var(--primary-fg));
292
- --tw-prose-pre-code: hsl(var(--primary-bg));
293
- --tw-prose-pre-bg: hsl(var(--primary-accent));
294
- --tw-prose-th-borders: hsl(var(--secondary-border));
295
- --tw-prose-td-borders: hsl(var(--secondary-border));
296
-
297
- a {
298
- text-underline-offset: 24%;
299
- }
300
- abbr {
301
- text-underline-offset: 24%;
302
- }
303
- ins {
304
- text-underline-offset: 24%;
305
- }
306
- kbd {
307
- color: hsl(var(--muted));
308
- background: hsl(var(--secondary-bg));
309
- border: 1px solid hsl(var(--secondary-border));
310
- box-shadow: none;
311
- padding: 0.125rem 0.25rem;
312
- }
313
- figcaption {
314
- font-style: italic;
315
- }
316
- ul {
317
- margin-top: 1.25rem;
318
- margin-left: 1.5rem;
319
- }
320
- ol {
321
- margin-top: 1.25rem;
322
- margin-left: 1.5rem;
323
- }
324
- code {
325
- background: hsl(var(--secondary-bg-hover));
326
- border-radius: calc(var(--radius) - 4px);
327
- padding: 0.2rem 0.3rem;
328
- font-weight: 700;
329
- line-height: 1.25rem;
330
- font-family: Menlo, ui-monospace, SFMono-Regular, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
331
- &::before {
332
- content: "" !important;
333
- }
334
- &::after {
335
- content: "" !important;
336
- }
337
- }
338
- pre {
339
- border: 1px solid hsl(var(--secondary-border));
340
- }
341
- blockquote {
342
- padding-inline-start: 1.5rem;
343
- }
344
- table {
345
- margin-top: 1.25rem !important;
346
- margin-bottom: 1.25rem;
347
- border-collapse: collapse;
348
- border: 1px solid hsl(var(--secondary-border));
349
- & tbody tr:nth-child(odd) {
350
- background-color: hsl(var(--secondary-bg-hover));
351
- }
352
- }
353
- th {
354
- border: 1px solid hsl(var(--secondary-border));
355
- padding: 0.5rem 1rem;
356
- }
357
- td {
358
- border: 1px solid hsl(var(--secondary-border));
359
- padding: 0.5rem 1rem;
360
- }
361
- }
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 "tw-animate-css";
29
+ @import "./theme.css";
30
+ @import "./font-smoothing.css";
31
+
32
+ @plugin "@tailwindcss/typography";
33
+
34
+ /* darkMode: ["class"] из пресета */
35
+ @custom-variant dark (&:where(.dark, .dark *));
36
+
37
+ /* screens.touch: { raw: "(pointer: coarse)" } из пресета */
38
+ @custom-variant touch (@media (pointer: coarse));
39
+
40
+ @theme inline {
41
+ /* Цвета */
42
+ --color-background: hsl(var(--background));
43
+ --color-foreground: hsl(var(--foreground));
44
+ --color-card: hsl(var(--card));
45
+ --color-card-foreground: hsl(var(--card-foreground));
46
+ --color-popover: hsl(var(--popover));
47
+ --color-popover-foreground: hsl(var(--popover-foreground));
48
+ --color-muted: hsl(var(--muted));
49
+ --color-muted-foreground: hsl(var(--muted-foreground));
50
+ --color-accent: hsl(var(--accent));
51
+ --color-accent-foreground: hsl(var(--accent-foreground));
52
+ --color-destructive: hsl(var(--destructive));
53
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
54
+ --color-border: hsl(var(--border));
55
+ --color-input: hsl(var(--input));
56
+ --color-ring: hsl(var(--ring));
57
+ --color-chart-1: hsl(var(--chart-1));
58
+ --color-chart-2: hsl(var(--chart-2));
59
+ --color-chart-3: hsl(var(--chart-3));
60
+ --color-chart-4: hsl(var(--chart-4));
61
+ --color-chart-5: hsl(var(--chart-5));
62
+ --color-sidebar-bg: hsl(var(--sidebar-bg));
63
+ --color-primary: hsl(var(--primary));
64
+ --color-primary-accent: hsl(var(--primary-accent));
65
+ --color-primary-accent-hover: hsl(var(--primary-accent-hover));
66
+ --color-primary-fg: hsl(var(--primary-fg));
67
+ --color-primary-bg: hsl(var(--primary-bg));
68
+ --color-primary-border: hsl(var(--primary-border));
69
+ --color-primary-bg-hover: hsl(var(--primary-bg-hover));
70
+ --color-primary-hover: hsl(var(--primary-hover));
71
+ --color-primary-foreground: hsl(var(--primary-foreground));
72
+ --color-secondary: hsl(var(--secondary));
73
+ --color-secondary-accent: hsl(var(--secondary-accent));
74
+ --color-secondary-fg: hsl(var(--secondary-fg));
75
+ --color-secondary-bg: hsl(var(--secondary-bg));
76
+ --color-secondary-border: hsl(var(--secondary-border));
77
+ --color-secondary-bg-hover: hsl(var(--secondary-bg-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-high-10: hsl(var(--alpha-high-90));
137
+ --color-alpha-high-20: hsl(var(--alpha-high-80));
138
+ --color-alpha-high-30: hsl(var(--alpha-high-70));
139
+ --color-alpha-high-40: hsl(var(--alpha-high-60));
140
+ --color-alpha-high-50: hsl(var(--alpha-high-50));
141
+ --color-alpha-high-60: hsl(var(--alpha-high-40));
142
+ --color-alpha-high-70: hsl(var(--alpha-high-30));
143
+ --color-alpha-high-80: hsl(var(--alpha-high-20));
144
+ --color-alpha-high-90: hsl(var(--alpha-high-10));
145
+ --color-alpha-hover: hsl(var(--alpha-hover));
146
+ --color-alpha-high-hover: hsl(var(--alpha-high-hover));
147
+ --color-alpha-accent-primary: hsl(var(--alpha-accent-primary));
148
+ --color-alpha-accent-secondary: hsl(var(--alpha-accent-secondary));
149
+ --color-alpha-accent-high-primary: hsl(var(--alpha-accent-high-primary));
150
+ --color-alpha-accent-high-secondary: hsl(var(--alpha-accent-high-secondary));
151
+ --color-shadow-scroll: hsl(222, 47%, 11%);
152
+ --color-palette-peony: hsl(var(--peony));
153
+ --color-palette-garnet: hsl(var(--garnet));
154
+ --color-palette-cinnamon: hsl(var(--cinnamon));
155
+ --color-palette-caramel: hsl(var(--caramel));
156
+ --color-palette-hazel: hsl(var(--hazel));
157
+ --color-palette-honey: hsl(var(--honey));
158
+ --color-palette-lemon: hsl(var(--lemon));
159
+ --color-palette-olive: hsl(var(--olive));
160
+ --color-palette-sage: hsl(var(--sage));
161
+ --color-palette-mint: hsl(var(--mint));
162
+ --color-palette-bazil: hsl(var(--bazil));
163
+ --color-palette-spruce: hsl(var(--spruce));
164
+ --color-palette-aqua: hsl(var(--aqua));
165
+ --color-palette-azure: hsl(var(--azure));
166
+ --color-palette-tiffany: hsl(var(--tiffany));
167
+ --color-palette-marine: hsl(var(--marine));
168
+ --color-palette-turquoise: hsl(var(--turquoise));
169
+ --color-palette-frost: hsl(var(--frost));
170
+ --color-palette-bosphorus: hsl(var(--bosphorus));
171
+ --color-palette-lavender: hsl(var(--lavender));
172
+ --color-palette-orchid: hsl(var(--orchid));
173
+ --color-palette-lilac: hsl(var(--lilac));
174
+ --color-palette-plume: hsl(var(--plume));
175
+ --color-palette-velvet: hsl(var(--velvet));
176
+
177
+ /* Радиусы */
178
+ --radius-lg: var(--radius);
179
+ --radius-md: calc(var(--radius) - 2px);
180
+ --radius-sm: calc(var(--radius) - 4px);
181
+ --radius-xs: calc(var(--radius) - 6px);
182
+
183
+ /* Тени */
184
+ --shadow-soft-base: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 1px 2px -1px rgba(0, 0, 0, 0.12);
185
+ --shadow-soft-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.06);
186
+ --shadow-soft-md: 0 4px 6px -1px rgba(0, 0, 0, 0.12), 0 2px 4px -2px rgba(0, 0, 0, 0.12);
187
+ --shadow-soft-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.12), 0 4px 6px -4px rgba(0, 0, 0, 0.12);
188
+ --shadow-soft-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.12), 0 8px 10px -6px rgba(0, 0, 0, 0.12);
189
+ --shadow-soft-2xl: 0 24px 48px -12px rgba(15, 23, 42, 0.24);
190
+ --shadow-focus: 0 0 0 0.5px hsl(var(--primary-bg)), 0 0 0 1px hsl(var(--focus));
191
+ --shadow-inverse-focus: 0 0 0 0.5px hsl(var(--inverse-primary-bg)), 0 0 0 1px hsl(var(--inverse-muted));
192
+ --shadow-focus-error: 0 0 0 0.5px hsl(var(--primary-bg)), 0 0 0 1px hsl(var(--status-error));
193
+ --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;
194
+ --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);
195
+ --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;
196
+ --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;
197
+ --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;
198
+ --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;
199
+
200
+ /* Интерлиньяж */
201
+ --leading-11: 2.75rem;
202
+ --leading-12: 3.75rem;
203
+ --leading-13: 4.5rem;
204
+ --leading-14: 5.5rem;
205
+ --leading-none: 100%;
206
+
207
+ /* Типографика */
208
+ --text-2xs: 0.5rem;
209
+ --text-2xs--line-height: 0.5rem;
210
+ --text-base: 1rem;
211
+ --text-base--line-height: 1.375rem;
212
+ --text-lg: 1.125rem;
213
+ --text-lg--line-height: 1.5rem;
214
+ --text-4xl: 2.25rem;
215
+ --text-4xl--line-height: 2.75rem;
216
+ --text-4xl--letter-spacing: -0.02em;
217
+ --text-5xl: 3rem;
218
+ --text-5xl--line-height: 3.75rem;
219
+ --text-5xl--letter-spacing: -0.02em;
220
+ --text-6xl: 3.75rem;
221
+ --text-6xl--line-height: 4.5rem;
222
+ --text-6xl--letter-spacing: -0.02em;
223
+ --text-7xl: 4.5rem;
224
+ --text-7xl--line-height: 5.5rem;
225
+ --text-7xl--letter-spacing: -0.02em;
226
+
227
+ /* Шрифты */
228
+ --font-sans: "Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
229
+ --font-mono: Menlo, ui-monospace, SFMono-Regular, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
230
+
231
+ /* Анимации */
232
+ --animate-indeterminate-bar: indeterminate-bar 1.5s cubic-bezier(.65,.815,.735,.395) infinite;
233
+ --animate-collapsible-down: collapsible-down 200ms cubic-bezier(0.22,1,0.36,1);
234
+ --animate-collapsible-up: collapsible-up 200ms cubic-bezier(0.22,1,0.36,1);
235
+ }
236
+
237
+ @keyframes indeterminate-bar {
238
+ 0% {
239
+ transform: translate(-50%) scaleX(.2);
240
+ }
241
+ 100% {
242
+ transform: translate(100%) scaleX(1);
243
+ }
244
+ }
245
+
246
+ @keyframes collapsible-down {
247
+ from {
248
+ height: 0;
249
+ }
250
+ to {
251
+ height: var(--radix-collapsible-content-height);
252
+ }
253
+ }
254
+
255
+ @keyframes collapsible-up {
256
+ from {
257
+ height: var(--radix-collapsible-content-height);
258
+ }
259
+ to {
260
+ height: 0;
261
+ }
262
+ }
263
+
264
+ @utility shadow-glass-sm {
265
+ box-shadow: var(--shadow-glass-sm);
266
+ }
267
+
268
+ @utility shadow-glass-md {
269
+ box-shadow: var(--shadow-glass-md);
270
+ }
271
+
272
+ @utility shadow-glass-lg {
273
+ box-shadow: var(--shadow-glass-lg);
274
+ }
275
+
276
+ /*
277
+ * theme.extend.typography из пресета. В v4 плагин typography не берёт
278
+ * конфигурацию из JS, поэтому переменные и правила перенесены сюда.
279
+ *
280
+ * Блок намеренно вне @layer: правила самого плагина едут в слои
281
+ * components/utilities, и любой слой они бы перебили. Неслоёные стили
282
+ * выигрывают у слоёных, так что это единственный способ гарантировать,
283
+ * что кастомизация кита возьмёт верх над дефолтами плагина.
284
+ */
285
+ .prose {
286
+ --tw-prose-body: hsl(var(--primary-fg));
287
+ --tw-prose-headings: hsl(var(--primary-fg));
288
+ --tw-prose-lead: hsl(var(--primary-fg));
289
+ --tw-prose-links: hsl(var(--primary-fg));
290
+ --tw-prose-bold: hsl(var(--primary-fg));
291
+ --tw-prose-counters: hsl(var(--primary-fg));
292
+ --tw-prose-bullets: hsl(var(--primary-fg));
293
+ --tw-prose-hr: hsl(var(--secondary-border));
294
+ --tw-prose-quotes: hsl(var(--primary-fg));
295
+ --tw-prose-quote-borders: hsl(var(--secondary-border));
296
+ --tw-prose-captions: hsl(var(--primary-fg));
297
+ --tw-prose-code: hsl(var(--primary-fg));
298
+ --tw-prose-pre-code: hsl(var(--primary-bg));
299
+ --tw-prose-pre-bg: hsl(var(--primary-accent));
300
+ --tw-prose-th-borders: hsl(var(--secondary-border));
301
+ --tw-prose-td-borders: hsl(var(--secondary-border));
302
+
303
+ a {
304
+ text-underline-offset: 24%;
305
+ }
306
+ abbr {
307
+ text-underline-offset: 24%;
308
+ }
309
+ ins {
310
+ text-underline-offset: 24%;
311
+ }
312
+ kbd {
313
+ color: hsl(var(--muted));
314
+ background: hsl(var(--secondary-bg));
315
+ border: 1px solid hsl(var(--secondary-border));
316
+ box-shadow: none;
317
+ padding: 0.125rem 0.25rem;
318
+ }
319
+ figcaption {
320
+ font-style: italic;
321
+ }
322
+ ul {
323
+ margin-top: 1.25rem;
324
+ margin-left: 1.5rem;
325
+ }
326
+ ol {
327
+ margin-top: 1.25rem;
328
+ margin-left: 1.5rem;
329
+ }
330
+ code {
331
+ background: hsl(var(--secondary-bg-hover));
332
+ border-radius: calc(var(--radius) - 4px);
333
+ padding: 0.2rem 0.3rem;
334
+ font-weight: 700;
335
+ line-height: 1.25rem;
336
+ font-family: Menlo, ui-monospace, SFMono-Regular, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
337
+ &::before {
338
+ content: "" !important;
339
+ }
340
+ &::after {
341
+ content: "" !important;
342
+ }
343
+ }
344
+ pre {
345
+ border: 1px solid hsl(var(--secondary-border));
346
+ }
347
+ blockquote {
348
+ padding-inline-start: 1.5rem;
349
+ }
350
+ table {
351
+ margin-top: 1.25rem !important;
352
+ margin-bottom: 1.25rem;
353
+ border-collapse: collapse;
354
+ border: 1px solid hsl(var(--secondary-border));
355
+ & tbody tr:nth-child(odd) {
356
+ background-color: hsl(var(--secondary-bg-hover));
357
+ }
358
+ }
359
+ th {
360
+ border: 1px solid hsl(var(--secondary-border));
361
+ padding: 0.5rem 1rem;
362
+ }
363
+ td {
364
+ border: 1px solid hsl(var(--secondary-border));
365
+ padding: 0.5rem 1rem;
366
+ }
367
+ }
368
+
369
+ /*
370
+ * Базовый слой кита. Переопределяется своим @layer base после импорта.
371
+ */
372
+ @layer base {
373
+ * {
374
+ @apply border-border;
375
+ }
376
+ body {
377
+ @apply bg-background font-sans text-foreground;
378
+ }
379
+ :root {
380
+ @apply font-smoothing;
381
+ }
382
+
383
+ * {
384
+ scrollbar-width: thin;
385
+ scrollbar-color: hsl(var(--secondary-border)) transparent;
386
+ }
387
+
388
+ /* Дефолты, изменившиеся в Tailwind 4 */
389
+
390
+ /* v4 отдаёт кнопкам cursor: default; кит рассчитан на pointer */
391
+ button:not(:disabled),
392
+ [role="button"]:not(:disabled) {
393
+ cursor: pointer;
394
+ }
395
+
396
+ /* v4 красит плейсхолдер текущим цветом с прозрачностью 50%; кит — токеном muted */
397
+ input::placeholder,
398
+ textarea::placeholder {
399
+ color: hsl(var(--muted));
400
+ }
401
+ }
402
+
403
+ @utility underline {
404
+ text-decoration: underline;
405
+ text-underline-offset: 24%;
406
+ }