@stack-spot/citric-react 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/dist/citric.css +2580 -0
  2. package/dist/components/Accordion.d.ts +33 -0
  3. package/dist/components/Accordion.d.ts.map +1 -0
  4. package/dist/components/Accordion.js +19 -0
  5. package/dist/components/Accordion.js.map +1 -0
  6. package/dist/components/Alert.d.ts +11 -0
  7. package/dist/components/Alert.d.ts.map +1 -0
  8. package/dist/components/Alert.js +5 -0
  9. package/dist/components/Alert.js.map +1 -0
  10. package/dist/components/AsyncContent.d.ts +30 -0
  11. package/dist/components/AsyncContent.d.ts.map +1 -0
  12. package/dist/components/AsyncContent.js +33 -0
  13. package/dist/components/AsyncContent.js.map +1 -0
  14. package/dist/components/Avatar.d.ts +22 -0
  15. package/dist/components/Avatar.d.ts.map +1 -0
  16. package/dist/components/Avatar.js +9 -0
  17. package/dist/components/Avatar.js.map +1 -0
  18. package/dist/components/AvatarGroup.d.ts +25 -0
  19. package/dist/components/AvatarGroup.d.ts.map +1 -0
  20. package/dist/components/AvatarGroup.js +9 -0
  21. package/dist/components/AvatarGroup.js.map +1 -0
  22. package/dist/components/Badge.d.ts +18 -0
  23. package/dist/components/Badge.d.ts.map +1 -0
  24. package/dist/components/Badge.js +7 -0
  25. package/dist/components/Badge.js.map +1 -0
  26. package/dist/components/Blockquote.d.ts +5 -0
  27. package/dist/components/Blockquote.d.ts.map +1 -0
  28. package/dist/components/Blockquote.js +4 -0
  29. package/dist/components/Blockquote.js.map +1 -0
  30. package/dist/components/Breadcrumb.d.ts +12 -0
  31. package/dist/components/Breadcrumb.d.ts.map +1 -0
  32. package/dist/components/Breadcrumb.js +8 -0
  33. package/dist/components/Breadcrumb.js.map +1 -0
  34. package/dist/components/Button.d.ts +42 -0
  35. package/dist/components/Button.d.ts.map +1 -0
  36. package/dist/components/Button.js +25 -0
  37. package/dist/components/Button.js.map +1 -0
  38. package/dist/components/Card.d.ts +19 -0
  39. package/dist/components/Card.d.ts.map +1 -0
  40. package/dist/components/Card.js +5 -0
  41. package/dist/components/Card.js.map +1 -0
  42. package/dist/components/Checkbox.d.ts +14 -0
  43. package/dist/components/Checkbox.d.ts.map +1 -0
  44. package/dist/components/Checkbox.js +7 -0
  45. package/dist/components/Checkbox.js.map +1 -0
  46. package/dist/components/CheckboxGroup.d.ts +53 -0
  47. package/dist/components/CheckboxGroup.d.ts.map +1 -0
  48. package/dist/components/CheckboxGroup.js +17 -0
  49. package/dist/components/CheckboxGroup.js.map +1 -0
  50. package/dist/components/Circle.d.ts +18 -0
  51. package/dist/components/Circle.d.ts.map +1 -0
  52. package/dist/components/Circle.js +5 -0
  53. package/dist/components/Circle.js.map +1 -0
  54. package/dist/components/CitricComponent.d.ts +14 -0
  55. package/dist/components/CitricComponent.d.ts.map +1 -0
  56. package/dist/components/CitricComponent.js +15 -0
  57. package/dist/components/CitricComponent.js.map +1 -0
  58. package/dist/components/Divider.d.ts +14 -0
  59. package/dist/components/Divider.d.ts.map +1 -0
  60. package/dist/components/Divider.js +5 -0
  61. package/dist/components/Divider.js.map +1 -0
  62. package/dist/components/ErrorBoundary.d.ts +32 -0
  63. package/dist/components/ErrorBoundary.d.ts.map +1 -0
  64. package/dist/components/ErrorBoundary.js +46 -0
  65. package/dist/components/ErrorBoundary.js.map +1 -0
  66. package/dist/components/ErrorMessage.d.ts +4 -0
  67. package/dist/components/ErrorMessage.d.ts.map +1 -0
  68. package/dist/components/ErrorMessage.js +7 -0
  69. package/dist/components/ErrorMessage.js.map +1 -0
  70. package/dist/components/FallbackBoundary.d.ts +13 -0
  71. package/dist/components/FallbackBoundary.d.ts.map +1 -0
  72. package/dist/components/FallbackBoundary.js +11 -0
  73. package/dist/components/FallbackBoundary.js.map +1 -0
  74. package/dist/components/Favorite.d.ts +23 -0
  75. package/dist/components/Favorite.d.ts.map +1 -0
  76. package/dist/components/Favorite.js +5 -0
  77. package/dist/components/Favorite.js.map +1 -0
  78. package/dist/components/FieldGroup.d.ts +14 -0
  79. package/dist/components/FieldGroup.d.ts.map +1 -0
  80. package/dist/components/FieldGroup.js +5 -0
  81. package/dist/components/FieldGroup.js.map +1 -0
  82. package/dist/components/Form.d.ts +5 -0
  83. package/dist/components/Form.d.ts.map +1 -0
  84. package/dist/components/Form.js +6 -0
  85. package/dist/components/Form.js.map +1 -0
  86. package/dist/components/FormGroup.d.ts +22 -0
  87. package/dist/components/FormGroup.d.ts.map +1 -0
  88. package/dist/components/FormGroup.js +8 -0
  89. package/dist/components/FormGroup.js.map +1 -0
  90. package/dist/components/IconBox.d.ts +46 -0
  91. package/dist/components/IconBox.d.ts.map +1 -0
  92. package/dist/components/IconBox.js +29 -0
  93. package/dist/components/IconBox.js.map +1 -0
  94. package/dist/components/Input.d.ts +15 -0
  95. package/dist/components/Input.d.ts.map +1 -0
  96. package/dist/components/Input.js +18 -0
  97. package/dist/components/Input.js.map +1 -0
  98. package/dist/components/Link.d.ts +20 -0
  99. package/dist/components/Link.d.ts.map +1 -0
  100. package/dist/components/Link.js +21 -0
  101. package/dist/components/Link.js.map +1 -0
  102. package/dist/components/LoadingPanel.d.ts +2 -0
  103. package/dist/components/LoadingPanel.d.ts.map +1 -0
  104. package/dist/components/LoadingPanel.js +5 -0
  105. package/dist/components/LoadingPanel.js.map +1 -0
  106. package/dist/components/MenuOverlay/Menu.d.ts +6 -0
  107. package/dist/components/MenuOverlay/Menu.d.ts.map +1 -0
  108. package/dist/components/MenuOverlay/Menu.js +100 -0
  109. package/dist/components/MenuOverlay/Menu.js.map +1 -0
  110. package/dist/components/MenuOverlay/context.d.ts +6 -0
  111. package/dist/components/MenuOverlay/context.d.ts.map +1 -0
  112. package/dist/components/MenuOverlay/context.js +16 -0
  113. package/dist/components/MenuOverlay/context.js.map +1 -0
  114. package/dist/components/MenuOverlay/index.d.ts +3 -0
  115. package/dist/components/MenuOverlay/index.d.ts.map +1 -0
  116. package/dist/components/MenuOverlay/index.js +23 -0
  117. package/dist/components/MenuOverlay/index.js.map +1 -0
  118. package/dist/components/MenuOverlay/keyboard.d.ts +2 -0
  119. package/dist/components/MenuOverlay/keyboard.d.ts.map +1 -0
  120. package/dist/components/MenuOverlay/keyboard.js +66 -0
  121. package/dist/components/MenuOverlay/keyboard.js.map +1 -0
  122. package/dist/components/MenuOverlay/types.d.ts +166 -0
  123. package/dist/components/MenuOverlay/types.d.ts.map +1 -0
  124. package/dist/components/MenuOverlay/types.js +2 -0
  125. package/dist/components/MenuOverlay/types.js.map +1 -0
  126. package/dist/components/Overlay/context.d.ts +4 -0
  127. package/dist/components/Overlay/context.d.ts.map +1 -0
  128. package/dist/components/Overlay/context.js +7 -0
  129. package/dist/components/Overlay/context.js.map +1 -0
  130. package/dist/components/Overlay/index.d.ts +14 -0
  131. package/dist/components/Overlay/index.d.ts.map +1 -0
  132. package/dist/components/Overlay/index.js +120 -0
  133. package/dist/components/Overlay/index.js.map +1 -0
  134. package/dist/components/Overlay/types.d.ts +67 -0
  135. package/dist/components/Overlay/types.d.ts.map +1 -0
  136. package/dist/components/Overlay/types.js +2 -0
  137. package/dist/components/Overlay/types.js.map +1 -0
  138. package/dist/components/Pagination.d.ts +28 -0
  139. package/dist/components/Pagination.d.ts.map +1 -0
  140. package/dist/components/Pagination.js +30 -0
  141. package/dist/components/Pagination.js.map +1 -0
  142. package/dist/components/ProgressBar.d.ts +12 -0
  143. package/dist/components/ProgressBar.d.ts.map +1 -0
  144. package/dist/components/ProgressBar.js +7 -0
  145. package/dist/components/ProgressBar.js.map +1 -0
  146. package/dist/components/ProgressCircular.d.ts +16 -0
  147. package/dist/components/ProgressCircular.d.ts.map +1 -0
  148. package/dist/components/ProgressCircular.js +7 -0
  149. package/dist/components/ProgressCircular.js.map +1 -0
  150. package/dist/components/RadioGroup.d.ts +48 -0
  151. package/dist/components/RadioGroup.d.ts.map +1 -0
  152. package/dist/components/RadioGroup.js +17 -0
  153. package/dist/components/RadioGroup.js.map +1 -0
  154. package/dist/components/Rating.d.ts +13 -0
  155. package/dist/components/Rating.d.ts.map +1 -0
  156. package/dist/components/Rating.js +4 -0
  157. package/dist/components/Rating.js.map +1 -0
  158. package/dist/components/Select/RichSelect.d.ts +5 -0
  159. package/dist/components/Select/RichSelect.d.ts.map +1 -0
  160. package/dist/components/Select/RichSelect.js +152 -0
  161. package/dist/components/Select/RichSelect.js.map +1 -0
  162. package/dist/components/Select/SimpleSelect.d.ts +5 -0
  163. package/dist/components/Select/SimpleSelect.d.ts.map +1 -0
  164. package/dist/components/Select/SimpleSelect.js +24 -0
  165. package/dist/components/Select/SimpleSelect.js.map +1 -0
  166. package/dist/components/Select/index.d.ts +4 -0
  167. package/dist/components/Select/index.d.ts.map +1 -0
  168. package/dist/components/Select/index.js +7 -0
  169. package/dist/components/Select/index.js.map +1 -0
  170. package/dist/components/Select/types.d.ts +118 -0
  171. package/dist/components/Select/types.d.ts.map +1 -0
  172. package/dist/components/Select/types.js +2 -0
  173. package/dist/components/Select/types.js.map +1 -0
  174. package/dist/components/SelectBox.d.ts +65 -0
  175. package/dist/components/SelectBox.d.ts.map +1 -0
  176. package/dist/components/SelectBox.js +26 -0
  177. package/dist/components/SelectBox.js.map +1 -0
  178. package/dist/components/Skeleton.d.ts +30 -0
  179. package/dist/components/Skeleton.d.ts.map +1 -0
  180. package/dist/components/Skeleton.js +5 -0
  181. package/dist/components/Skeleton.js.map +1 -0
  182. package/dist/components/Slider.d.ts +32 -0
  183. package/dist/components/Slider.d.ts.map +1 -0
  184. package/dist/components/Slider.js +19 -0
  185. package/dist/components/Slider.js.map +1 -0
  186. package/dist/components/SmartTable.d.ts +87 -0
  187. package/dist/components/SmartTable.d.ts.map +1 -0
  188. package/dist/components/SmartTable.js +16 -0
  189. package/dist/components/SmartTable.js.map +1 -0
  190. package/dist/components/Stepper.d.ts +52 -0
  191. package/dist/components/Stepper.d.ts.map +1 -0
  192. package/dist/components/Stepper.js +53 -0
  193. package/dist/components/Stepper.js.map +1 -0
  194. package/dist/components/Switch.d.ts +10 -0
  195. package/dist/components/Switch.d.ts.map +1 -0
  196. package/dist/components/Switch.js +7 -0
  197. package/dist/components/Switch.js.map +1 -0
  198. package/dist/components/Table.d.ts +106 -0
  199. package/dist/components/Table.d.ts.map +1 -0
  200. package/dist/components/Table.js +86 -0
  201. package/dist/components/Table.js.map +1 -0
  202. package/dist/components/Tabs/TabController.d.ts +11 -0
  203. package/dist/components/Tabs/TabController.d.ts.map +1 -0
  204. package/dist/components/Tabs/TabController.js +39 -0
  205. package/dist/components/Tabs/TabController.js.map +1 -0
  206. package/dist/components/Tabs/index.d.ts +5 -0
  207. package/dist/components/Tabs/index.d.ts.map +1 -0
  208. package/dist/components/Tabs/index.js +37 -0
  209. package/dist/components/Tabs/index.js.map +1 -0
  210. package/dist/components/Tabs/types.d.ts +46 -0
  211. package/dist/components/Tabs/types.d.ts.map +1 -0
  212. package/dist/components/Tabs/types.js +2 -0
  213. package/dist/components/Tabs/types.js.map +1 -0
  214. package/dist/components/Tabs/utils.d.ts +3 -0
  215. package/dist/components/Tabs/utils.d.ts.map +1 -0
  216. package/dist/components/Tabs/utils.js +5 -0
  217. package/dist/components/Tabs/utils.js.map +1 -0
  218. package/dist/components/Text.d.ts +27 -0
  219. package/dist/components/Text.d.ts.map +1 -0
  220. package/dist/components/Text.js +45 -0
  221. package/dist/components/Text.js.map +1 -0
  222. package/dist/components/Textarea.d.ts +8 -0
  223. package/dist/components/Textarea.d.ts.map +1 -0
  224. package/dist/components/Textarea.js +4 -0
  225. package/dist/components/Textarea.js.map +1 -0
  226. package/dist/components/Tooltip.d.ts +25 -0
  227. package/dist/components/Tooltip.d.ts.map +1 -0
  228. package/dist/components/Tooltip.js +18 -0
  229. package/dist/components/Tooltip.js.map +1 -0
  230. package/dist/components/layout.d.ts +46 -0
  231. package/dist/components/layout.d.ts.map +1 -0
  232. package/dist/components/layout.js +18 -0
  233. package/dist/components/layout.js.map +1 -0
  234. package/dist/context/CitricContext.d.ts +3 -0
  235. package/dist/context/CitricContext.d.ts.map +1 -0
  236. package/dist/context/CitricContext.js +3 -0
  237. package/dist/context/CitricContext.js.map +1 -0
  238. package/dist/context/CitricProvider.d.ts +9 -0
  239. package/dist/context/CitricProvider.d.ts.map +1 -0
  240. package/dist/context/CitricProvider.js +8 -0
  241. package/dist/context/CitricProvider.js.map +1 -0
  242. package/dist/context/hooks.d.ts +2 -0
  243. package/dist/context/hooks.d.ts.map +1 -0
  244. package/dist/context/hooks.js +6 -0
  245. package/dist/context/hooks.js.map +1 -0
  246. package/dist/index.d.ts +48 -0
  247. package/dist/index.d.ts.map +1 -0
  248. package/dist/index.js +48 -0
  249. package/dist/index.js.map +1 -0
  250. package/dist/overlay.d.ts +83 -0
  251. package/dist/overlay.d.ts.map +1 -0
  252. package/dist/overlay.js +199 -0
  253. package/dist/overlay.js.map +1 -0
  254. package/dist/theme.css +419 -0
  255. package/dist/types.d.ts +175 -0
  256. package/dist/types.d.ts.map +1 -0
  257. package/dist/types.js +2 -0
  258. package/dist/types.js.map +1 -0
  259. package/dist/utils/ValueController.d.ts +10 -0
  260. package/dist/utils/ValueController.d.ts.map +1 -0
  261. package/dist/utils/ValueController.js +32 -0
  262. package/dist/utils/ValueController.js.map +1 -0
  263. package/dist/utils/acessibility.d.ts +52 -0
  264. package/dist/utils/acessibility.d.ts.map +1 -0
  265. package/dist/utils/acessibility.js +80 -0
  266. package/dist/utils/acessibility.js.map +1 -0
  267. package/dist/utils/css.d.ts +12 -0
  268. package/dist/utils/css.d.ts.map +1 -0
  269. package/dist/utils/css.js +72 -0
  270. package/dist/utils/css.js.map +1 -0
  271. package/dist/utils/options.d.ts +3 -0
  272. package/dist/utils/options.d.ts.map +1 -0
  273. package/dist/utils/options.js +7 -0
  274. package/dist/utils/options.js.map +1 -0
  275. package/package.json +51 -0
  276. package/scripts/build-css.ts +49 -0
  277. package/src/components/Accordion.tsx +74 -0
  278. package/src/components/Alert.tsx +16 -0
  279. package/src/components/AsyncContent.tsx +54 -0
  280. package/src/components/Avatar.tsx +34 -0
  281. package/src/components/AvatarGroup.tsx +40 -0
  282. package/src/components/Badge.tsx +28 -0
  283. package/src/components/Blockquote.tsx +9 -0
  284. package/src/components/Breadcrumb.tsx +24 -0
  285. package/src/components/Button.tsx +88 -0
  286. package/src/components/Card.tsx +32 -0
  287. package/src/components/Checkbox.tsx +36 -0
  288. package/src/components/CheckboxGroup.tsx +93 -0
  289. package/src/components/Circle.tsx +26 -0
  290. package/src/components/CitricComponent.ts +34 -0
  291. package/src/components/Divider.tsx +22 -0
  292. package/src/components/ErrorBoundary.tsx +62 -0
  293. package/src/components/ErrorMessage.tsx +11 -0
  294. package/src/components/FallbackBoundary.tsx +29 -0
  295. package/src/components/Favorite.tsx +37 -0
  296. package/src/components/FieldGroup.tsx +22 -0
  297. package/src/components/Form.tsx +17 -0
  298. package/src/components/FormGroup.tsx +45 -0
  299. package/src/components/IconBox.tsx +78 -0
  300. package/src/components/Input.tsx +32 -0
  301. package/src/components/Link.tsx +40 -0
  302. package/src/components/LoadingPanel.tsx +8 -0
  303. package/src/components/MenuOverlay/Menu.tsx +157 -0
  304. package/src/components/MenuOverlay/context.ts +20 -0
  305. package/src/components/MenuOverlay/index.tsx +35 -0
  306. package/src/components/MenuOverlay/keyboard.ts +60 -0
  307. package/src/components/MenuOverlay/types.ts +178 -0
  308. package/src/components/Overlay/context.ts +10 -0
  309. package/src/components/Overlay/index.tsx +137 -0
  310. package/src/components/Overlay/types.ts +71 -0
  311. package/src/components/Pagination.tsx +90 -0
  312. package/src/components/ProgressBar.tsx +25 -0
  313. package/src/components/ProgressCircular.tsx +29 -0
  314. package/src/components/RadioGroup.tsx +87 -0
  315. package/src/components/Rating.tsx +25 -0
  316. package/src/components/Select/RichSelect.tsx +214 -0
  317. package/src/components/Select/SimpleSelect.tsx +66 -0
  318. package/src/components/Select/index.tsx +8 -0
  319. package/src/components/Select/types.ts +121 -0
  320. package/src/components/SelectBox.tsx +134 -0
  321. package/src/components/Skeleton.tsx +41 -0
  322. package/src/components/Slider.tsx +77 -0
  323. package/src/components/SmartTable.tsx +148 -0
  324. package/src/components/Stepper.tsx +142 -0
  325. package/src/components/Switch.tsx +29 -0
  326. package/src/components/Table.tsx +219 -0
  327. package/src/components/Tabs/TabController.ts +40 -0
  328. package/src/components/Tabs/index.tsx +64 -0
  329. package/src/components/Tabs/types.ts +48 -0
  330. package/src/components/Tabs/utils.ts +6 -0
  331. package/src/components/Text.ts +75 -0
  332. package/src/components/Textarea.tsx +12 -0
  333. package/src/components/Tooltip.tsx +53 -0
  334. package/src/components/layout.tsx +53 -0
  335. package/src/context/CitricContext.tsx +4 -0
  336. package/src/context/CitricProvider.tsx +14 -0
  337. package/src/context/hooks.ts +6 -0
  338. package/src/index.ts +47 -0
  339. package/src/overlay.ts +276 -0
  340. package/src/types.ts +226 -0
  341. package/src/utils/ValueController.ts +28 -0
  342. package/src/utils/acessibility.ts +92 -0
  343. package/src/utils/css.ts +106 -0
  344. package/src/utils/options.ts +7 -0
  345. package/tsconfig.json +10 -0
@@ -0,0 +1,2580 @@
1
+ [data-theme] {
2
+ font: var(--font-body2);
3
+
4
+ .text-body1 {
5
+ margin: 0;
6
+ font: var(--font-body1);
7
+ }
8
+
9
+ .text-body2 {
10
+ margin: 0;
11
+ font: var(--font-body2);
12
+ }
13
+
14
+ .text-code1 {
15
+ font: var(--font-code1);
16
+ }
17
+
18
+ .text-code2 {
19
+ font: var(--font-code2);
20
+ }
21
+
22
+ .text-display1 {
23
+ margin: 0;
24
+ font: var(--font-display1);
25
+ letter-spacing: -0.1rem;
26
+ }
27
+
28
+ .text-h1 {
29
+ margin: 0;
30
+ font: var(--font-h1);
31
+ }
32
+
33
+ .text-h2 {
34
+ margin: 0;
35
+ font: var(--font-h2);
36
+ }
37
+
38
+ .text-h3 {
39
+ font: var(--font-h3);
40
+ }
41
+
42
+ .text-h4 {
43
+ margin: 0;
44
+ font: var(--font-h4);
45
+ }
46
+
47
+ .text-h5 {
48
+ margin: 0;
49
+ font: var(--font-h5);
50
+ }
51
+
52
+ .text-h6 {
53
+ margin: 0;
54
+ font: var(--font-h6);
55
+ }
56
+
57
+ .text-microtext1 {
58
+ margin: 0;
59
+ font: var(--font-microtext1);
60
+ }
61
+
62
+ .text-subtitle1 {
63
+ margin: 0;
64
+ font: var(--font-subtitle1);
65
+ }
66
+
67
+ .text-subtitle2 {
68
+ margin: 0;
69
+ font: var(--font-subtitle2);
70
+ }
71
+
72
+ .text-subtitle3 {
73
+ margin: 0;
74
+ font: var(--font-subtitle3);
75
+ }
76
+
77
+ .text-subtitle4 {
78
+ margin: 0;
79
+ font: var(--font-subtitle4);
80
+ }
81
+
82
+ .text-overheader1 {
83
+ margin: 0;
84
+ font: var(--font-overheader1);
85
+ text-transform: uppercase;
86
+ }
87
+
88
+ .text-overheader2 {
89
+ margin: 0;
90
+ font: var(--font-overheader2);
91
+ text-transform: uppercase;
92
+ }
93
+
94
+ .text-with-margins {
95
+ margin: revert;
96
+ }
97
+
98
+ .apply-citric {
99
+ h1 {
100
+ font: var(--font-h1);
101
+ }
102
+
103
+ h2 {
104
+ font: var(--font-h2);
105
+ }
106
+
107
+ h3 {
108
+ font: var(--font-h3);
109
+ }
110
+
111
+ h4 {
112
+ font: var(--font-h4);
113
+ }
114
+
115
+ h5 {
116
+ font: var(--font-h5);
117
+ }
118
+
119
+ h6 {
120
+ font: var(--font-h6);
121
+ }
122
+
123
+ small {
124
+ font: var(--font-microtext1);
125
+ }
126
+
127
+ pre {
128
+ font: var(--font-code2);
129
+ }
130
+ }
131
+ }
132
+
133
+
134
+ [data-theme] {
135
+ .row {
136
+ display: flex;
137
+ align-items: center;
138
+ &.no-center {
139
+ align-items: start;
140
+ }
141
+ }
142
+
143
+ .column {
144
+ display: flex;
145
+ flex-direction: column;
146
+ &.center {
147
+ align-items: center;
148
+ }
149
+ }
150
+
151
+ .center {
152
+ display: flex;
153
+ align-items: center;
154
+ justify-content: center;
155
+ }
156
+
157
+ &::-webkit-scrollbar-track, ::-webkit-scrollbar-track {
158
+ background-color: transparent;
159
+ }
160
+
161
+ &::-webkit-scrollbar, ::-webkit-scrollbar {
162
+ width: 0.25rem;
163
+ height: 0.5rem;
164
+ background-color: transparent;
165
+ }
166
+
167
+ &::-webkit-scrollbar-thumb, ::-webkit-scrollbar-thumb {
168
+ background-color: var(--light-600);
169
+ }
170
+ }
171
+
172
+
173
+ [data-theme] {
174
+ color: var(--light-contrastText);
175
+
176
+ [data-color-scheme="primary"] {
177
+ --scheme-700: var(--primary-700);
178
+ --scheme-600: var(--primary-600);
179
+ --scheme-500: var(--primary-500);
180
+ --scheme-400: var(--primary-400);
181
+ --scheme-300: var(--primary-300);
182
+ --scheme-contrastText: var(--primary-contrastText);
183
+ }
184
+
185
+ [data-color-scheme="secondary"] {
186
+ --scheme-700: var(--secondary-700);
187
+ --scheme-600: var(--secondary-600);
188
+ --scheme-500: var(--secondary-500);
189
+ --scheme-400: var(--secondary-400);
190
+ --scheme-300: var(--secondary-300);
191
+ --scheme-contrastText: var(--secondary-contrastText);
192
+ }
193
+
194
+ [data-color-scheme="tertiary"] {
195
+ --scheme-700: var(--tertiary-700);
196
+ --scheme-600: var(--tertiary-600);
197
+ --scheme-500: var(--tertiary-500);
198
+ --scheme-400: var(--tertiary-400);
199
+ --scheme-300: var(--tertiary-300);
200
+ --scheme-contrastText: var(--tertiary-contrastText);
201
+ }
202
+
203
+ [data-color-scheme="success"] {
204
+ --scheme-700: var(--success-700);
205
+ --scheme-600: var(--success-600);
206
+ --scheme-500: var(--success-500);
207
+ --scheme-400: var(--success-400);
208
+ --scheme-300: var(--success-300);
209
+ --scheme-contrastText: var(--success-contrastText);
210
+ }
211
+
212
+ [data-color-scheme="warning"] {
213
+ --scheme-700: var(--warning-700);
214
+ --scheme-600: var(--warning-600);
215
+ --scheme-500: var(--warning-500);
216
+ --scheme-400: var(--warning-400);
217
+ --scheme-300: var(--warning-300);
218
+ --scheme-contrastText: var(--warning-contrastText);
219
+ }
220
+
221
+ [data-color-scheme="danger"] {
222
+ --scheme-700: var(--danger-700);
223
+ --scheme-600: var(--danger-600);
224
+ --scheme-500: var(--danger-500);
225
+ --scheme-400: var(--danger-400);
226
+ --scheme-300: var(--danger-300);
227
+ --scheme-contrastText: var(--danger-contrastText);
228
+ }
229
+
230
+ [data-color-scheme="light"] {
231
+ --scheme-700: var(--light-700);
232
+ --scheme-600: var(--light-600);
233
+ --scheme-500: var(--light-500);
234
+ --scheme-400: var(--light-400);
235
+ --scheme-300: var(--light-300);
236
+ --scheme-contrastText: var(--light-contrastText);
237
+ }
238
+
239
+ [data-color-scheme="inverse"] {
240
+ --scheme-700: var(--inverse-700);
241
+ --scheme-600: var(--inverse-600);
242
+ --scheme-500: var(--inverse-500);
243
+ --scheme-400: var(--inverse-400);
244
+ --scheme-300: var(--inverse-300);
245
+ --scheme-contrastText: var(--inverse-contrastText);
246
+ }
247
+
248
+ [data-color-scheme="highlight"] {
249
+ --scheme-700: var(--highlight-700);
250
+ --scheme-600: var(--highlight-600);
251
+ --scheme-500: var(--highlight-500);
252
+ --scheme-400: var(--highlight-400);
253
+ --scheme-300: var(--highlight-300);
254
+ --scheme-contrastText: var(--highlight-contrastText);
255
+ }
256
+ }
257
+
258
+
259
+ [data-theme] {
260
+ [data-color-palette="blue"] {
261
+ --palette-50: var(--blue-50);
262
+ --palette-100: var(--blue-100);
263
+ --palette-200: var(--blue-200);
264
+ --palette-300: var(--blue-300);
265
+ --palette-400: var(--blue-400);
266
+ --palette-500: var(--blue-500);
267
+ --palette-600: var(--blue-600);
268
+ --palette-700: var(--blue-700);
269
+ --palette-800: var(--blue-800);
270
+ --palette-900: var(--blue-900);
271
+ }
272
+
273
+ [data-color-palette="cyan"] {
274
+ --palette-50: var(--cyan-50);
275
+ --palette-100: var(--cyan-100);
276
+ --palette-200: var(--cyan-200);
277
+ --palette-300: var(--cyan-300);
278
+ --palette-400: var(--cyan-400);
279
+ --palette-500: var(--cyan-500);
280
+ --palette-600: var(--cyan-600);
281
+ --palette-700: var(--cyan-700);
282
+ --palette-800: var(--cyan-800);
283
+ --palette-900: var(--cyan-900);
284
+ }
285
+
286
+ [data-color-palette="indigo"] {
287
+ --palette-50: var(--indigo-50);
288
+ --palette-100: var(--indigo-100);
289
+ --palette-200: var(--indigo-200);
290
+ --palette-300: var(--indigo-300);
291
+ --palette-400: var(--indigo-400);
292
+ --palette-500: var(--indigo-500);
293
+ --palette-600: var(--indigo-600);
294
+ --palette-700: var(--indigo-700);
295
+ --palette-800: var(--indigo-800);
296
+ --palette-900: var(--indigo-900);
297
+ }
298
+
299
+ [data-color-palette="moss"] {
300
+ --palette-50: var(--moss-50);
301
+ --palette-100: var(--moss-100);
302
+ --palette-200: var(--moss-200);
303
+ --palette-300: var(--moss-300);
304
+ --palette-400: var(--moss-400);
305
+ --palette-500: var(--moss-500);
306
+ --palette-600: var(--moss-600);
307
+ --palette-700: var(--moss-700);
308
+ --palette-800: var(--moss-800);
309
+ --palette-900: var(--moss-900);
310
+ }
311
+
312
+ [data-color-palette="orange"] {
313
+ --palette-50: var(--orange-50);
314
+ --palette-100: var(--orange-100);
315
+ --palette-200: var(--orange-200);
316
+ --palette-300: var(--orange-300);
317
+ --palette-400: var(--orange-400);
318
+ --palette-500: var(--orange-500);
319
+ --palette-600: var(--orange-600);
320
+ --palette-700: var(--orange-700);
321
+ --palette-800: var(--orange-800);
322
+ --palette-900: var(--orange-900);
323
+ }
324
+
325
+ [data-color-palette="pink"] {
326
+ --palette-50: var(--pink-50);
327
+ --palette-100: var(--pink-100);
328
+ --palette-200: var(--pink-200);
329
+ --palette-300: var(--pink-300);
330
+ --palette-400: var(--pink-400);
331
+ --palette-500: var(--pink-500);
332
+ --palette-600: var(--pink-600);
333
+ --palette-700: var(--pink-700);
334
+ --palette-800: var(--pink-800);
335
+ --palette-900: var(--pink-900);
336
+ }
337
+
338
+ [data-color-palette="red"] {
339
+ --palette-50: var(--red-50);
340
+ --palette-100: var(--red-100);
341
+ --palette-200: var(--red-200);
342
+ --palette-300: var(--red-300);
343
+ --palette-400: var(--red-400);
344
+ --palette-500: var(--red-500);
345
+ --palette-600: var(--red-600);
346
+ --palette-700: var(--red-700);
347
+ --palette-800: var(--red-800);
348
+ --palette-900: var(--red-900);
349
+ }
350
+
351
+ [data-color-palette="yellow"] {
352
+ --palette-50: var(--yellow-50);
353
+ --palette-100: var(--yellow-100);
354
+ --palette-200: var(--yellow-200);
355
+ --palette-300: var(--yellow-300);
356
+ --palette-400: var(--yellow-400);
357
+ --palette-500: var(--yellow-500);
358
+ --palette-600: var(--yellow-600);
359
+ --palette-700: var(--yellow-700);
360
+ --palette-800: var(--yellow-800);
361
+ --palette-900: var(--yellow-900);
362
+ }
363
+
364
+ [data-color-palette="gray"] {
365
+ --palette-50: var(--gray-50);
366
+ --palette-100: var(--gray-100);
367
+ --palette-200: var(--gray-200);
368
+ --palette-300: var(--gray-300);
369
+ --palette-400: var(--gray-400);
370
+ --palette-500: var(--gray-500);
371
+ --palette-600: var(--gray-600);
372
+ --palette-700: var(--gray-700);
373
+ --palette-800: var(--gray-800);
374
+ --palette-900: var(--gray-900);
375
+ }
376
+
377
+ [data-color-palette="teal"] {
378
+ --palette-50: var(--teal-50);
379
+ --palette-100: var(--teal-100);
380
+ --palette-200: var(--teal-200);
381
+ --palette-300: var(--teal-300);
382
+ --palette-400: var(--teal-400);
383
+ --palette-500: var(--teal-500);
384
+ --palette-600: var(--teal-600);
385
+ --palette-700: var(--teal-700);
386
+ --palette-800: var(--teal-800);
387
+ --palette-900: var(--teal-900);
388
+ }
389
+
390
+ [data-color-palette="purple"] {
391
+ --palette-50: var(--purple-50);
392
+ --palette-100: var(--purple-100);
393
+ --palette-200: var(--purple-200);
394
+ --palette-300: var(--purple-300);
395
+ --palette-400: var(--purple-400);
396
+ --palette-500: var(--purple-500);
397
+ --palette-600: var(--purple-600);
398
+ --palette-700: var(--purple-700);
399
+ --palette-800: var(--purple-800);
400
+ --palette-900: var(--purple-900);
401
+ }
402
+ }
403
+
404
+
405
+ [data-citric="tooltip"] {
406
+ border-radius: var(--radius-xs);
407
+ background-color: var(--scheme-500, var(--palette-500, var(--inverse-500)));
408
+ color: var(--scheme-contrastText, var(--palette-900, var(--inverse-contrastText)));
409
+ display: flex;
410
+ gap: 6px;
411
+ font: var(--font-microtext1);
412
+ position: relative;
413
+ padding: 4px 8px;
414
+ align-items: center;
415
+
416
+ &.compact {
417
+ line-height: 1;
418
+ padding: 6px 8px;
419
+ }
420
+
421
+
422
+ &.with-arrow:after {
423
+ position: absolute;
424
+ content: '';
425
+ width: 0px;
426
+ height: 0px;
427
+ border-style: solid;
428
+ border-width: 0 4px 2px 4px;
429
+ border-color: transparent transparent var(--scheme-500, var(--palette-500, var(--inverse-500))) transparent;
430
+ }
431
+
432
+ &.with-arrow.left {
433
+ margin-right: 2px;
434
+ &:after {
435
+ transform: rotate(90deg);
436
+ top: 50%;
437
+ right: -5px;
438
+ margin-top: -1px;
439
+ }
440
+ }
441
+
442
+ &.with-arrow.right {
443
+ margin-left: 2px;
444
+ &:after {
445
+ transform: rotate(270deg);
446
+ top: 50%;
447
+ left: -5px;
448
+ margin-top: -1px;
449
+ }
450
+ }
451
+
452
+ &.with-arrow.top {
453
+ margin-bottom: 2px;
454
+ &:after {
455
+ transform: rotate(180deg);
456
+ bottom: -2px;
457
+ left: 50%;
458
+ margin-left: -4px;
459
+ }
460
+ }
461
+
462
+ &.with-arrow.bottom {
463
+ margin-top: 2px;
464
+ &:after {
465
+ top: -2px;
466
+ left: 50%;
467
+ margin-left: -4px;
468
+ }
469
+ }
470
+ }
471
+
472
+ [data-citric="tabs"] {
473
+ > nav {
474
+ display: flex;
475
+ border-bottom: 1px solid var(--light-600);
476
+ > label {
477
+ appearance: none;
478
+ margin: 0;
479
+ padding: 8px 32px;
480
+ position: relative;
481
+ display: flex;
482
+ align-items: center;
483
+ gap: 4px;
484
+ background-color: transparent;
485
+ border: none;
486
+ outline: none;
487
+ cursor: pointer;
488
+ &:has(input[type="radio"]:disabled) {
489
+ cursor: auto;
490
+ }
491
+ input[type="radio"] {
492
+ appearance: none;
493
+ position: absolute;
494
+ bottom: -1px;
495
+ left: 0;
496
+ right: 0;
497
+ display: block;
498
+ height: 2px;
499
+ background-color: var(--scheme-500, var(--palette-500, var(--primary-500)));
500
+ transform: scaleX(0);
501
+ transition: transform 0.2s ease-out;
502
+ &:checked {
503
+ transform: scaleX(1);
504
+ }
505
+ }
506
+ }
507
+ }
508
+
509
+ > section {
510
+ margin-top: 16px;
511
+ }
512
+
513
+ &.stepper {
514
+ > nav {
515
+ border: none;
516
+ gap: 16px;
517
+ font-weight: 500;
518
+ > label {
519
+ flex: 1;
520
+ padding: 20px 0 0 0;
521
+ color: var(--light-700);
522
+ &:has(input[type="radio"]:checked) {
523
+ color: var(--light-contrastText);
524
+ & ~ label input[type="radio"] {
525
+ background-color: var(--light-600);
526
+ }
527
+ }
528
+ input[type="radio"] {
529
+ top: 0;
530
+ bottom: auto;
531
+ height: 4px;
532
+ background-color: var(--success-500);
533
+ transform: none;
534
+ transition: background-color 0.3s;
535
+ margin: 0;
536
+ &:checked {
537
+ background-color: var(--scheme-500, var(--palette-500, var(--primary-500)));
538
+ }
539
+ }
540
+ }
541
+ }
542
+ }
543
+ }
544
+
545
+ .apply-citric table,
546
+ [data-citric="table"] {
547
+ --radius: 4px;
548
+ --border: 1px solid var(--light-600);
549
+ border-collapse: separate;
550
+ border-spacing: 0 8px;
551
+ border-radius: var(--radius);
552
+ width: 100%;
553
+ box-sizing: border-box;
554
+
555
+ td, th {
556
+ padding: 10px;
557
+ }
558
+
559
+ td {
560
+ background-color: var(--light-400);
561
+ &:first-child {
562
+ border-top-left-radius: var(--radius);
563
+ border-bottom-left-radius: var(--radius);
564
+ }
565
+ &:last-child {
566
+ border-top-right-radius: var(--radius);
567
+ border-bottom-right-radius: var(--radius);
568
+ }
569
+ }
570
+
571
+ th {
572
+ font: var(--font-body2);
573
+ color: var(--light-700);
574
+ text-align: left;
575
+ }
576
+
577
+ tr.clickable {
578
+ td, th {
579
+ cursor: pointer;
580
+ }
581
+ }
582
+
583
+ &.stripped, &[data-appearance="stripped"] {
584
+ tr:nth-child(odd) td {
585
+ background-color: var(--light-400);
586
+ }
587
+ tr:nth-child(even) td, th {
588
+ background-color: var(--light-300);
589
+ }
590
+ }
591
+
592
+ &.compressed, &[data-appearance="stripped"] {
593
+ border-spacing: 0 0;
594
+ }
595
+
596
+ &.bordered, &[data-appearance="stripped"]:not(.borderless) {
597
+ border: var(--border);
598
+ }
599
+
600
+ &.borderless-header th, &[data-appearance="stripped"] th {
601
+ border: none !important;
602
+ }
603
+
604
+ &.bordered-rows td {
605
+ border-top: var(--border);
606
+ border-bottom: var(--border);
607
+ &:first-child {
608
+ border-left: var(--border);
609
+ }
610
+ &:last-child {
611
+ border-right: var(--border);
612
+ }
613
+ }
614
+
615
+ th {
616
+ border-top: var(--border);
617
+ border-bottom: var(--border);
618
+ &:first-child {
619
+ border-left: var(--border);
620
+ border-top-left-radius: var(--radius);
621
+ border-bottom-left-radius: var(--radius);
622
+ }
623
+ &:last-child {
624
+ border-right: var(--border);
625
+ border-top-right-radius: var(--radius);
626
+ border-bottom-right-radius: var(--radius);
627
+ }
628
+ }
629
+
630
+ &.square {
631
+ border-radius: 0;
632
+ }
633
+
634
+ &.square-rows td, &[data-appearance="stripped"] td {
635
+ border-radius: 0 !important;
636
+ }
637
+
638
+ &.uppercase-header th {
639
+ text-transform: uppercase;
640
+ }
641
+
642
+ th.sortable {
643
+ cursor: pointer;
644
+ &:after {
645
+ content: var(--citric-icon-outline-Select);
646
+ font-family: CitricIconsOutline;
647
+ font-size: 10px;
648
+ margin-left: 6px;
649
+ }
650
+ &.asc:after {
651
+ content: var(--citric-icon-fill-ChevronUpFill);
652
+ font-family: CitricIconsFill;
653
+ }
654
+ &.desc:after {
655
+ content: var(--citric-icon-fill-ChevronDownFill);
656
+ font-family: CitricIconsFill;
657
+ }
658
+ }
659
+
660
+ &.accordion-rows {
661
+ --animation-duration: 0.3s;
662
+
663
+ &:not(.compressed):not([data-appearance="stripped"]) {
664
+ border-spacing: 0 4px;
665
+
666
+ thead:after {
667
+ content: '';
668
+ display: table-row;
669
+ }
670
+
671
+ tr.accordion td {
672
+ position: relative;
673
+ top: -4px;
674
+ }
675
+ }
676
+
677
+ &.stripped, &[data-appearance="stripped"] {
678
+ tbody:nth-child(odd) td {
679
+ background-color: var(--light-400);
680
+ }
681
+ tbody:nth-child(even) td, th {
682
+ background-color: var(--light-300);
683
+ }
684
+ }
685
+
686
+ tr.accordion td {
687
+ padding: 0;
688
+ border-top-left-radius: 0;
689
+ border-top-right-radius: 0;
690
+ border-top: none;
691
+ > div {
692
+ max-height: 0;
693
+ overflow: hidden;
694
+ transition: max-height 0.3s ease-out;
695
+ > div {
696
+ padding: 10px;
697
+ }
698
+ }
699
+ }
700
+
701
+ tr:not(.accordion) td:last-child input[aria-controls] {
702
+ --rotate: 0deg;
703
+ appearance: none;
704
+ width: 100%;
705
+ height: 100%;
706
+ cursor: pointer;
707
+ text-align: right;
708
+ margin: 0;
709
+ &:after {
710
+ content: var(--citric-icon-outline-ChevronDown);
711
+ font-family: CitricIconsOutline;
712
+ transition: transform var(--animation-duration) ease-out;
713
+ display: inline-block;
714
+ }
715
+ &:checked:after {
716
+ transform: rotate(180deg);
717
+ }
718
+ }
719
+
720
+ tr:has(td:last-child input[aria-controls]:checked) {
721
+ td {
722
+ border-bottom-left-radius: 0;
723
+ border-bottom-right-radius: 0;
724
+ }
725
+ + tr.accordion td > div {
726
+ max-height: var(--max-height, 200px);
727
+ overflow: auto;
728
+ animation: var(--animation-duration) table-delayed-overflow;
729
+ }
730
+ }
731
+
732
+ tr:has(td:last-child input[aria-controls]:not(:checked)) + tr.accordion td {
733
+ border: none;
734
+ }
735
+ }
736
+ }
737
+
738
+ @keyframes table-delayed-overflow {
739
+ 0% {
740
+ overflow: hidden;
741
+ }
742
+ 99% {
743
+ overflow: hidden;
744
+ }
745
+ 100% {
746
+ overflow: auto;
747
+ }
748
+ }
749
+
750
+
751
+ [data-citric="switch"],
752
+ [data-citric="switch-row"] input[type="checkbox"] {
753
+ background-color: var(--light-700);
754
+ border-radius: var(--radius-md);
755
+
756
+ cursor: pointer;
757
+ appearance: none;
758
+ position: relative;
759
+ width: 2.5rem;
760
+ height: 1.25rem;
761
+ box-sizing: border-box;
762
+
763
+ &:before {
764
+ content: '';
765
+ background-color: var(--scheme-contrastText, var(--success-contrastText));
766
+ transition: 0.32s;
767
+ position: absolute;
768
+ width: 0.75rem;
769
+ height: 0.75rem;
770
+ left: 0.25rem;
771
+ top: 0.25rem;
772
+ border-radius: var(--radius-lg);
773
+ }
774
+
775
+ &:checked {
776
+ background-color: var(--scheme-500, var(--success-500));
777
+
778
+ &::before {
779
+ transform: translateX(20px);
780
+ }
781
+ }
782
+
783
+ &:disabled {
784
+ opacity: 0.24;
785
+ pointer-events: none;
786
+ }
787
+ }
788
+
789
+ [data-citric="switch-row"] {
790
+ display: flex;
791
+ align-items: center;
792
+ gap: 5px;
793
+ }
794
+
795
+
796
+ /**
797
+ * Percentage of the range that is currently selected.
798
+ * Should not include the "%" symbol.
799
+ * Should be in the interval [0, 100].
800
+ */
801
+ @property --percent {
802
+ syntax: '<integer>';
803
+ inherits: true;
804
+ initial-value: 0;
805
+ }
806
+
807
+ .apply-citric input[type="range"],
808
+ [data-citric="labeled-slider"] input[type="range"],
809
+ input[type="range"][data-citric="slider"] {
810
+ --fg-color: var(--scheme-500, var(--palette-500, var(--primary-500)));
811
+ --bg-color: var(--scheme-300, var(--palette-50, var(--primary-300)));
812
+ --thumb-size: 16px;
813
+ --percent-value: calc(var(--percent) * 1%);
814
+ -webkit-appearance: none;
815
+ -moz-appearance: none;
816
+ appearance: none;
817
+ background-color: transparent;
818
+ height: 32px;
819
+ position: relative;
820
+
821
+ &::-webkit-slider-thumb {
822
+ -webkit-appearance: none;
823
+ appearance: none;
824
+ width: var(--thumb-size);
825
+ height: var(--thumb-size);
826
+ margin-top: -7px;
827
+ background-color: var(--fg-color);
828
+ border-radius: 50%;
829
+ border: none;
830
+ transition: box-shadow 0.3s;
831
+ }
832
+
833
+ &:hover::-webkit-slider-thumb {
834
+ box-shadow: 0 0 0 8px color-mix(in srgb, var(--fg-color) 8%, transparent);
835
+ }
836
+
837
+ &:focus {
838
+ outline: none;
839
+ &::-webkit-slider-thumb {
840
+ box-shadow: 0 0 0 8px color-mix(in srgb, var(--fg-color) 18%, transparent);
841
+ }
842
+ }
843
+
844
+ &::-webkit-slider-runnable-track {
845
+ width: 100%;
846
+ height: 2px;
847
+ background: linear-gradient(90deg, var(--fg-color) 0%, var(--fg-color) var(--percent-value), var(--bg-color) var(--percent-value), var(--bg-color) 100%);
848
+ }
849
+
850
+ &:disabled {
851
+ opacity: 0.6;
852
+ cursor: not-allowed;
853
+ }
854
+
855
+ /* Repeating everything for Firefox because Safari bugs out with commas (,) */
856
+
857
+ &::-moz-range-thumb {
858
+ -webkit-appearance: none;
859
+ appearance: none;
860
+ width: 16px;
861
+ height: 16px;
862
+ margin-top: -7px;
863
+ background-color: var(--fg-color);
864
+ border-radius: 50%;
865
+ border: none;
866
+ transition: box-shadow 0.3s;
867
+ }
868
+
869
+ &:hover::-moz-range-thumb {
870
+ box-shadow: 0 0 0 8px color-mix(in srgb, var(--fg-color) 8%, transparent);
871
+ }
872
+
873
+ &:focus {
874
+ outline: none;
875
+ &::-webkit-slider-thumb {
876
+ box-shadow: 0 0 0 8px color-mix(in srgb, var(--fg-color) 18%, transparent);
877
+ }
878
+ }
879
+
880
+ &::-moz-range-track {
881
+ width: 100%;
882
+ height: 2px;
883
+ background: linear-gradient(90deg, var(--fg-color) 0%, var(--fg-color) var(--percent-value), var(--bg-color) var(--percent-value), var(--bg-color) 100%);
884
+ }
885
+ }
886
+
887
+ [data-citric="labeled-slider"] {
888
+ --percent-value: calc(var(--percent) * 1%);
889
+ margin-right: 54px;
890
+ position: relative;
891
+
892
+ input[type="range"] {
893
+ width: 100%;
894
+ }
895
+
896
+ .value {
897
+ position: absolute;
898
+ font: var(--font-microtext1);
899
+ color: var(--inverse-contrastText);
900
+ padding: 4px 8px;
901
+ border-radius: 4px;
902
+ background-color: var(--inverse-500);
903
+ top: 6px;
904
+ left: var(--percent-value);
905
+ margin-left: calc(9px + 16px * (1 - var(--percent) / 100));
906
+
907
+ &:before {
908
+ content: '';
909
+ position: absolute;
910
+ width: 0;
911
+ height: 0;
912
+ top: 6px;
913
+ left: -4px;
914
+ border-top: 6px solid transparent;
915
+ border-bottom: 6px solid transparent;
916
+ border-right: 4px solid var(--inverse-500);
917
+ }
918
+ }
919
+
920
+ &.value-on-hover {
921
+ margin-right: 0;
922
+ &:before, .value {
923
+ opacity: 0;
924
+ transition: opacity 0.3s;
925
+ }
926
+ &:hover .value,
927
+ input:focus + .value {
928
+ opacity: 1;
929
+ }
930
+ }
931
+ }
932
+
933
+
934
+ [data-citric="skeleton"] {
935
+ --bg-from: var(--light-500);
936
+ --bg-to: var(--light-400);
937
+ width: 100%;
938
+ height: 2rem;
939
+ animation: skeleton-loading 1s linear infinite alternate;
940
+
941
+ &.circle {
942
+ border-radius: 50%;
943
+ width: 3.125rem;
944
+ height: 3.125rem;
945
+ }
946
+
947
+ &.bg-400 {
948
+ --bg-from: var(--light-400);
949
+ --bg-to: var(--light-300);
950
+ }
951
+
952
+ &.bg-600 {
953
+ --bg-from: var(--light-600);
954
+ --bg-to: var(--light-500);
955
+ }
956
+ }
957
+
958
+ @keyframes skeleton-loading {
959
+ from {
960
+ background-color: var(--bg-from);
961
+ }
962
+ to {
963
+ background-color: var(--bg-to);
964
+ }
965
+ }
966
+
967
+
968
+ /* Parts of the select css is in input.css. */
969
+
970
+ [data-citric="select"] {
971
+ position: relative;
972
+ width: fit-content;
973
+ select {
974
+ appearance: none;
975
+ padding-right: 32px;
976
+ &:disabled {
977
+ opacity: 1;
978
+ }
979
+ }
980
+ &:before {
981
+ position: absolute;
982
+ right: 8px;
983
+ top: 9px;
984
+ font-family: CitricIconsOutline;
985
+ content: var(--citric-icon-outline-ChevronDown);
986
+ pointer-events: none;
987
+ }
988
+ .loader {
989
+ display: none;
990
+ position: absolute;
991
+ right: 28px;
992
+ top: 13px;
993
+ }
994
+ &[aria-busy="true"], &[aria-busy=""] {
995
+ select {
996
+ padding-right: 60px;
997
+ cursor: progress !important;
998
+ }
999
+ .loader {
1000
+ display: block;
1001
+ pointer-events: none;
1002
+ }
1003
+ [data-citric="progress-circular"] {
1004
+ border-color: var(--light-400);
1005
+ }
1006
+ }
1007
+ }
1008
+
1009
+
1010
+ [data-citric="select-box"] {
1011
+ position: relative;
1012
+
1013
+ > input {
1014
+ appearance: none;
1015
+ position: absolute;
1016
+ }
1017
+
1018
+ > .option {
1019
+ display: flex;
1020
+ flex-direction: column;
1021
+ align-items: center;
1022
+ justify-content: center;
1023
+ padding: 12px;
1024
+ box-sizing: border-box;
1025
+ width: 160px;
1026
+ height: 152px;
1027
+ border-radius: 4px;
1028
+ background-color: var(--light-300);
1029
+ border: 2px solid transparent;
1030
+ gap: 4px;
1031
+ cursor: pointer;
1032
+ transition: border 0.3s;
1033
+
1034
+ &:hover {
1035
+ border-color: var(--light-500);
1036
+ }
1037
+
1038
+ > .picture {
1039
+ width: 48px;
1040
+ height: 48px;
1041
+ display: flex;
1042
+ align-items: center;
1043
+ justify-content: center;
1044
+ }
1045
+
1046
+ > .title {
1047
+ font: var(--font-body1);
1048
+ font-weight: 500;
1049
+ margin: 0;
1050
+ }
1051
+
1052
+ > .description {
1053
+ margin: 0;
1054
+ }
1055
+ }
1056
+
1057
+ &.bg-400 .option {
1058
+ background-color: var(--light-400);
1059
+ &:hover {
1060
+ border-color: var(--light-600);
1061
+ }
1062
+ }
1063
+ &.bg-500 .option {
1064
+ background-color: var(--light-500);
1065
+ &:hover {
1066
+ border-color: var(--light-600);
1067
+ }
1068
+ }
1069
+ &.bg-600 .option {
1070
+ background-color: var(--light-600);
1071
+ &:hover {
1072
+ border-color: var(--light-700);
1073
+ }
1074
+ }
1075
+ &.bg-700 .option {
1076
+ background-color: var(--light-700);
1077
+ color: var(--inverse-contrastText);
1078
+ &:hover {
1079
+ border-color: var(--light-contrastText);
1080
+ }
1081
+ }
1082
+
1083
+ > input:checked + .option,
1084
+ > input[checked] + .option {
1085
+ border-color: var(--scheme-500, var(--palette-500, var(--primary-500))) !important;
1086
+ }
1087
+
1088
+ > input:focus + .option {
1089
+ border-color: var(--light-500);
1090
+ }
1091
+
1092
+ > input:disabled + .option {
1093
+ opacity: 0.6;
1094
+ pointer-events: none;
1095
+ }
1096
+ }
1097
+
1098
+ /* Parts of the select css is in input.css. */
1099
+
1100
+ [data-citric="rich-select"] {
1101
+ --default-padding: 4px 8px;
1102
+ --default-max-height: 300px;
1103
+ --animation-duration: 0.3s;
1104
+ position: relative;
1105
+ width: fit-content;
1106
+ height: auto;
1107
+ display: flex;
1108
+ flex-direction: row;
1109
+ align-items: center;
1110
+ box-sizing: border-box;
1111
+ border: none;
1112
+ select {
1113
+ pointer-events: none;
1114
+ opacity: 0;
1115
+ position: absolute;
1116
+ top: 0;
1117
+ bottom: 0;
1118
+ left: 0;
1119
+ right: 0;
1120
+ }
1121
+ &:after {
1122
+ content: '';
1123
+ position: absolute;
1124
+ pointer-events: none;
1125
+ top: 0;
1126
+ left: 0;
1127
+ right: 0;
1128
+ bottom: 0;
1129
+ border: 1px solid var(--border-color, var(--light-600));
1130
+ border-radius: var(--radius-xs);
1131
+ transition: border var(--animation-duration);
1132
+ }
1133
+ &.focused, &:has(:focus) {
1134
+ &:after {
1135
+ border: 2px solid var(--border-color, var(--scheme-500, var(--primary-500)));
1136
+ }
1137
+ .selection-panel:after {
1138
+ border: 2px solid var(--border-color, var(--scheme-500, var(--primary-500)));
1139
+ border-top: none;
1140
+ }
1141
+ }
1142
+ &:has(:disabled) {
1143
+ background-color: var(--light-500);
1144
+ border-color: var(--light-600);
1145
+ color: var(--light-700);
1146
+ cursor: not-allowed;
1147
+ [data-citric="progress-circular"] {
1148
+ border-color: var(--light-400);
1149
+ }
1150
+ }
1151
+ header {
1152
+ display: flex;
1153
+ gap: 16px;
1154
+ align-items: center;
1155
+ min-width: 80px;
1156
+ justify-content: space-between;
1157
+ &:after {
1158
+ font-family: CitricIconsOutline;
1159
+ content: var(--citric-icon-outline-ChevronDown);
1160
+ pointer-events: none;
1161
+ transition: transform var(--animation-duration) ease-in;
1162
+ }
1163
+ }
1164
+ &:has(.search-bar) header {
1165
+ min-width: 150px;
1166
+ }
1167
+ &.hide-arrow header:after {
1168
+ content: none;
1169
+ }
1170
+ .loader {
1171
+ display: none;
1172
+ }
1173
+ .selection-panel {
1174
+ max-height: 0;
1175
+ overflow: hidden;
1176
+ transition: max-height var(--animation-duration) ease-in;
1177
+ position: absolute;
1178
+ top: calc(100% - 3px);
1179
+ z-index: 1;
1180
+ left: 0;
1181
+ right: 0;
1182
+ background-color: var(--light-300);
1183
+ display: flex;
1184
+ flex-direction: column;
1185
+ gap: 8px;
1186
+ border-bottom-left-radius: var(--radius-xs);
1187
+ border-bottom-right-radius: var(--radius-xs);
1188
+
1189
+ .search-bar {
1190
+ padding: var(--padding, var(--default-padding));
1191
+ [data-citric="field-group"] {
1192
+ width: unset;
1193
+ }
1194
+ input {
1195
+ flex: 1;
1196
+ width: 0;
1197
+ }
1198
+ }
1199
+
1200
+ ul {
1201
+ margin: 0;
1202
+ padding: 0;
1203
+ list-style: none;
1204
+ display: flex;
1205
+ flex-direction: column;
1206
+ flex: 1;
1207
+ overflow: hidden;
1208
+ li {
1209
+ padding: var(--padding, var(--default-padding));
1210
+ display: flex;
1211
+ transition: background-color 0.3s;
1212
+ cursor: pointer;
1213
+ &:not(:last-child) {
1214
+ border-bottom: 1px solid var(--light-600);
1215
+ }
1216
+ &:hover, &.focused {
1217
+ background-color: var(--light-500);
1218
+ }
1219
+ &.empty {
1220
+ color: var(--light-700);
1221
+ font-style: italic;
1222
+ }
1223
+ }
1224
+ }
1225
+
1226
+ &:after {
1227
+ content: '';
1228
+ position: absolute;
1229
+ top: 0;
1230
+ bottom: 0;
1231
+ left: 0;
1232
+ right: 0;
1233
+ pointer-events: none;
1234
+ border: 1px solid var(--border-color, var(--light-600));
1235
+ border-top: none;
1236
+ transition: border var(--animation-duration);
1237
+ }
1238
+ }
1239
+
1240
+ &[aria-busy="true"], &[aria-busy=""] {
1241
+ cursor: progress !important;
1242
+ .loader {
1243
+ display: block;
1244
+ }
1245
+ }
1246
+ &:not(.open) {
1247
+ .selection-panel {
1248
+ opacity: 0;
1249
+ animation: var(--animation-duration) rich-select-delayed-opacity;
1250
+ }
1251
+ }
1252
+ &.open {
1253
+ header:after {
1254
+ transform: rotate(180deg);
1255
+ }
1256
+ .selection-panel {
1257
+ max-height: var(--max-height, var(--default-max-height));
1258
+ opacity: 1;
1259
+ ul {
1260
+ overflow: auto;
1261
+ animation: var(--animation-duration) rich-select-delayed-overflow;
1262
+ }
1263
+ }
1264
+ }
1265
+ }
1266
+
1267
+ @keyframes rich-select-delayed-overflow {
1268
+ 0% {
1269
+ overflow: hidden;
1270
+ }
1271
+ 99% {
1272
+ overflow: hidden;
1273
+ }
1274
+ 100% {
1275
+ overflow: auto;
1276
+ }
1277
+ }
1278
+
1279
+ @keyframes rich-select-delayed-opacity {
1280
+ 0% {
1281
+ opacity: 1;
1282
+ }
1283
+ 99% {
1284
+ opacity: 1;
1285
+ }
1286
+ 100% {
1287
+ opacity: 0;
1288
+ }
1289
+ }
1290
+
1291
+
1292
+ [data-citric="rating"] {
1293
+ --icon: var(--citric-icon-outline-Star);
1294
+ --icon-fill: var(--citric-icon-fill-StarFill);
1295
+ display: flex;
1296
+ flex-direction: row-reverse;
1297
+ width: fit-content;
1298
+ font-size: 16px;
1299
+ gap: 6px;
1300
+
1301
+ input[type="radio"] {
1302
+ appearance: none;
1303
+ cursor: pointer;
1304
+ margin: 0;
1305
+ &:before {
1306
+ font-family: 'CitricIconsOutline';
1307
+ color: var(--light-700);
1308
+ content: var(--icon);
1309
+ }
1310
+ &:checked:before {
1311
+ font-family: 'CitricIconsFill';
1312
+ color: var(--yellow-500);
1313
+ content: var(--icon-fill);
1314
+ }
1315
+ &:checked ~ input[type="radio"]:before {
1316
+ font-family: 'CitricIconsFill';
1317
+ color: var(--yellow-500);
1318
+ content: var(--icon-fill);
1319
+ }
1320
+ }
1321
+ }
1322
+
1323
+
1324
+ .apply-citric input[type="radio"],
1325
+ [data-citric="radio-row"] input[type="radio"],
1326
+ [data-citric="radio"] {
1327
+ /* General css */
1328
+
1329
+ appearance: none;
1330
+ width: 1.25rem;
1331
+ height: 1.25rem;
1332
+ cursor: pointer;
1333
+ position: relative;
1334
+ background-color: var(--light-300);
1335
+ border: 2px solid var(--light-contrastText);
1336
+ border-radius: var(--radius-lg);
1337
+ margin: 0;
1338
+
1339
+ /* States */
1340
+
1341
+ &:disabled {
1342
+ opacity: 0.24;
1343
+ }
1344
+
1345
+ &:checked {
1346
+ border-color: var(--scheme-500, var(--inverse-500));
1347
+ }
1348
+
1349
+ &:checked:after {
1350
+ top: 2px;
1351
+ left: 2px;
1352
+ right: 2px;
1353
+ bottom: 2px;
1354
+ position: absolute;
1355
+ background-color: var(--scheme-500, var(--inverse-500));
1356
+ border-radius: var(--radius-lg);
1357
+ content: '';
1358
+ visibility: visible;
1359
+ }
1360
+ }
1361
+
1362
+ [data-citric="radio-row"] {
1363
+ display: flex;
1364
+ align-items: center;
1365
+ gap: 5px;
1366
+ line-height: 1;
1367
+ }
1368
+
1369
+
1370
+ /**
1371
+ * Percentage of the progress.
1372
+ * Should not include the "%" symbol.
1373
+ * Should be in the interval [0, 100].
1374
+ */
1375
+ @property --progress {
1376
+ syntax: '<integer>';
1377
+ inherits: true;
1378
+ initial-value: 0;
1379
+ }
1380
+
1381
+ [data-citric="progress-circular"] {
1382
+ width: 32px;
1383
+ aspect-ratio: 1;
1384
+ border-radius: 50%;
1385
+ box-sizing: border-box;
1386
+ border: 4px solid var(--light-500);
1387
+ position: relative;
1388
+ transition: --progress 1s;
1389
+
1390
+ &.lg {
1391
+ width: 46px;
1392
+ display: flex;
1393
+ align-items: center;
1394
+ justify-content: center;
1395
+ font: var(--font-microtext1);
1396
+ &:not(.indeterminate):after {
1397
+ counter-reset: count var(--progress);
1398
+ content: counter(count)'%';
1399
+ }
1400
+ }
1401
+
1402
+ &.sm {
1403
+ width: 22px;
1404
+ }
1405
+
1406
+ &.xs {
1407
+ width: 16px;
1408
+ }
1409
+
1410
+ &.indeterminate {
1411
+ animation: progress-indeterminate-rotation 1.5s infinite;
1412
+ }
1413
+
1414
+ &:before {
1415
+ --angle: calc(var(--progress) / 100 * 360deg);
1416
+ content: '';
1417
+ position: absolute;
1418
+ top: -3px;
1419
+ left: -3px;
1420
+ bottom: -3px;
1421
+ right: -3px;
1422
+ border: 2px solid var(--scheme-500, var(--palette-500, var(--primary-500)));
1423
+ border-radius: 50%;
1424
+ mask-image: conic-gradient(white var(--angle), transparent var(--angle));
1425
+ }
1426
+ }
1427
+
1428
+ @keyframes progress-indeterminate-rotation {
1429
+ 0% {
1430
+ --progress: 20;
1431
+ transform: rotate(-36deg); /* 0 - progress / 100 * 180 */
1432
+ }
1433
+ 50% {
1434
+ --progress: 40;
1435
+ transform: rotate(108deg); /* 180 - progress / 100 * 180 */
1436
+ }
1437
+ 100% {
1438
+ --progress: 20;
1439
+ transform: rotate(324deg); /* 360 - progress / 100 * 180 */
1440
+ }
1441
+ }
1442
+
1443
+
1444
+ [data-citric="progress-bar"] {
1445
+ border-radius: var(--radius-lg);
1446
+ width: 100%;
1447
+ height: 2px;
1448
+ padding: 1px;
1449
+ background-color: var(--light-600);
1450
+
1451
+ &:after {
1452
+ content: '';
1453
+ display: block;
1454
+ width: calc(var(--progress) * 1%);
1455
+ height: 100%;
1456
+ border-radius: var(--radius-lg);
1457
+ background-color: var(--scheme-500, var(--palette-500, var(--primary-500)));
1458
+ }
1459
+
1460
+ &.indeterminate:after {
1461
+ animation: progress-indeterminate-bar 1s infinite;
1462
+ }
1463
+ }
1464
+
1465
+ @keyframes progress-indeterminate-bar {
1466
+ 0% {
1467
+ margin-left: 0%;
1468
+ width: 5px;
1469
+ }
1470
+ 50% {
1471
+ margin-left: 30%;
1472
+ width: 40%;
1473
+ }
1474
+ 100% {
1475
+ margin-left: calc(100% - 5px);
1476
+ width: 5px;
1477
+ }
1478
+ }
1479
+
1480
+
1481
+ [data-citric="pagination"] {
1482
+ border: 1px solid var(--light-600);
1483
+ display: flex;
1484
+ align-items: center;
1485
+ border-radius: 4px;
1486
+
1487
+ > label {
1488
+ display: flex;
1489
+ align-items: center;
1490
+ gap: 5px;
1491
+ }
1492
+
1493
+ > .page-size, .page-number {
1494
+ display: flex;
1495
+ align-items: center;
1496
+ gap: 5px;
1497
+ padding: 8px;
1498
+ }
1499
+
1500
+ select {
1501
+ border: none;
1502
+ background-color: transparent;
1503
+ padding: 0;
1504
+ height: auto;
1505
+ outline: none;
1506
+ color: var(--light-contrastText);
1507
+ &:focus {
1508
+ border: none;
1509
+ box-shadow: none !important;
1510
+ }
1511
+ }
1512
+
1513
+ > .page-size {
1514
+ flex: 1;
1515
+ border-right: 1px solid var(--light-600);
1516
+ }
1517
+
1518
+ .citric-icon {
1519
+ background-color: transparent;
1520
+ }
1521
+ }
1522
+
1523
+
1524
+ [data-citric="menu"] {
1525
+ --bg: var(--light-300);
1526
+ --hover-bg: var(--light-500);
1527
+ --border: var(--light-500);
1528
+ background-color: var(--bg);
1529
+ border-radius: var(--radius-sm);
1530
+ box-shadow: 4px 4px 48px #000;
1531
+ display: flex;
1532
+ flex-direction: column;
1533
+ width: fit-content;
1534
+ overflow: clip;
1535
+
1536
+ &.square {
1537
+ border-radius: 0;
1538
+ }
1539
+
1540
+ &.bordered {
1541
+ border: 2px solid var(--border);
1542
+ }
1543
+
1544
+ &.no-shadow {
1545
+ box-shadow: none;
1546
+ }
1547
+
1548
+ &.spaced {
1549
+ padding: 16px 8px;
1550
+ gap: 8px;
1551
+ }
1552
+
1553
+ &.bg-400 {
1554
+ --bg: var(--light-400);
1555
+ --hover-bg: var(--light-600);
1556
+ --border: var(--light-600);
1557
+ }
1558
+
1559
+ &.bg-500 {
1560
+ --bg: var(--light-500);
1561
+ --hover-bg: var(--light-600);
1562
+ --border: var(--light-600);
1563
+ }
1564
+
1565
+ &.bg-600 {
1566
+ --bg: var(--light-600);
1567
+ --hover-bg: var(--light-400);
1568
+ --border: var(--light-400);
1569
+ }
1570
+
1571
+ > header {
1572
+ border-bottom: 2px solid var(--border);
1573
+ padding-bottom: 16px;
1574
+ }
1575
+
1576
+ .back-button {
1577
+ display: flex;
1578
+ align-items: center;
1579
+ gap: 8px;
1580
+ margin-top: 8px;
1581
+ span {
1582
+ font-size: 12px;
1583
+ }
1584
+ }
1585
+
1586
+ nav, section {
1587
+ display: flex;
1588
+ flex-direction: column;
1589
+ }
1590
+
1591
+ &.spaced {
1592
+ nav, section {
1593
+ gap: 8px;
1594
+ }
1595
+ }
1596
+
1597
+ h6 {
1598
+ margin: 0;
1599
+ font: var(--font-h6);
1600
+ font-size: 12px;
1601
+ text-transform: uppercase;
1602
+ color: var(--light-700);
1603
+ }
1604
+
1605
+ hr {
1606
+ width: 100%;
1607
+ height: 2px;
1608
+ background-color: var(--border);
1609
+ border: none;
1610
+ }
1611
+
1612
+ section:last-child hr {
1613
+ display: none;
1614
+ }
1615
+ }
1616
+
1617
+ nav[data-citric="menu"], [data-citric="menu"] nav {
1618
+ button, a {
1619
+ padding: 0 8px;
1620
+ height: 40px;
1621
+ display: flex;
1622
+ align-items: center;
1623
+ gap: 8px;
1624
+ transition: background-color 0.2s;
1625
+ text-decoration: none;
1626
+ color: inherit;
1627
+ background-color: transparent;
1628
+ border: none;
1629
+ cursor: pointer;
1630
+
1631
+ &:hover, &:focus {
1632
+ background-color: var(--hover-bg);
1633
+ }
1634
+
1635
+ &:disabled {
1636
+ opacity: 0.7;
1637
+ cursor: not-allowed;
1638
+ &:hover {
1639
+ background-color: transparent;
1640
+ }
1641
+ }
1642
+
1643
+ &:after {
1644
+ font-family: CitricIconsOutline;
1645
+ flex: 1;
1646
+ text-align: right;
1647
+ }
1648
+
1649
+ &.submenu:after {
1650
+ content: var(--citric-icon-outline-ChevronRight);
1651
+ }
1652
+
1653
+ &.active:after {
1654
+ content: var(--citric-icon-outline-Check);
1655
+ }
1656
+ }
1657
+ }
1658
+
1659
+ nav[data-citric="menu"].rounded-items, [data-citric="menu"].rounded-items nav {
1660
+ button, a {
1661
+ border-radius: var(--radius-xs);
1662
+ }
1663
+ }
1664
+
1665
+
1666
+ .apply-citric a, [data-citric="link"] {
1667
+ cursor: pointer;
1668
+ text-decoration: underline;
1669
+ color: unset;
1670
+ }
1671
+
1672
+
1673
+ .apply-citric input[type="color"],
1674
+ .apply-citric input[type="date"],
1675
+ .apply-citric input[type="datetime-local"],
1676
+ .apply-citric input[type="email"],
1677
+ .apply-citric input[type="month"],
1678
+ .apply-citric input[type="number"],
1679
+ .apply-citric input[type="password"],
1680
+ .apply-citric input[type="search"],
1681
+ .apply-citric input[type="tel"],
1682
+ .apply-citric input[type="text"],
1683
+ .apply-citric input[type="time"],
1684
+ .apply-citric input[type="url"],
1685
+ .apply-citric input[type="week"],
1686
+ .apply-citric select,
1687
+ .apply-citric textarea,
1688
+ [data-citric="input"],
1689
+ [data-citric="select"] select,
1690
+ [data-citric="rich-select"],
1691
+ [data-citric="textarea"] {
1692
+ height: 2.5rem;
1693
+ padding: var(--spacing-3);
1694
+ outline: none;
1695
+ box-sizing: border-box;
1696
+ background-color: var(--light-300);
1697
+ border: 1px solid var(--border-color, var(--light-600));
1698
+ border-radius: var(--radius-xs);
1699
+ font: var(--font-body2);
1700
+ color: var(--light-contrastText);
1701
+ caret-color: var(--light-contrastText);
1702
+ transition: background-color 0.3s, box-shadow 0.3s;
1703
+
1704
+ &::placeholder {
1705
+ opacity: 60%;
1706
+ color: var(--light-contrastText);
1707
+ }
1708
+
1709
+ &:focus {
1710
+ border-color: var(--border-color, var(--scheme-500, var(--primary-500)));
1711
+ box-shadow: inset 0 0 0 1px var(--border-color, var(--scheme-500, var(--primary-500)));
1712
+ }
1713
+
1714
+ &:disabled {
1715
+ background-color: var(--light-500);
1716
+ border-color: var(--light-600);
1717
+ cursor: not-allowed;
1718
+ }
1719
+
1720
+ &:-webkit-autofill,
1721
+ &:-webkit-autofill:hover,
1722
+ &:-webkit-autofill:focus {
1723
+ -webkit-text-fill-color: var(--light-contrastText);
1724
+ box-shadow: inset 0 0 0 1000px var(--light-300);
1725
+ }
1726
+ }
1727
+
1728
+
1729
+ .apply-citric button.citric-icon,
1730
+ .apply-citric input[type="button"].citric-icon,
1731
+ .apply-citric input[type="submit"].citric-icon,
1732
+ .apply-citric input[type="reset"].citric-icon,
1733
+ .apply-citric a.citric-icon,
1734
+ [data-citric="icon-box"] {
1735
+ /* Default variables */
1736
+
1737
+ --size: 24px;
1738
+ --bg: var(--light-500);
1739
+ --bg-hover: var(--light-600);
1740
+ --fg: var(--light-contrastText);
1741
+
1742
+ /* General CSS */
1743
+
1744
+ box-sizing: border-box;
1745
+ display: inline-flex;
1746
+ border-radius: 100%;
1747
+ align-items: center;
1748
+ justify-content: center;
1749
+ border: none;
1750
+ font-size: 0.75rem;
1751
+ background-color: var(--bg);
1752
+ width: var(--size);
1753
+ height: var(--size);
1754
+ color: var(--fg);
1755
+
1756
+ /* Sizes */
1757
+
1758
+ &.xs {
1759
+ --size: 20px;
1760
+ }
1761
+ &.md {
1762
+ --size: 32px;
1763
+ font-size: 1rem;
1764
+ }
1765
+ &.lg {
1766
+ --size: 40px;
1767
+ font-size: 1rem;
1768
+ }
1769
+
1770
+ /* Appearances */
1771
+
1772
+ &.square {
1773
+ border-radius: var(--radius-xs);
1774
+ }
1775
+
1776
+ /* Colors */
1777
+
1778
+ &[data-color-scheme] {
1779
+ --bg: var(--scheme-500);
1780
+ --bg-hover: var(--scheme-600);
1781
+ --fg: var(--scheme-contrastText);
1782
+ }
1783
+
1784
+ &[data-color-palette] {
1785
+ --bg: var(--palette-600);
1786
+ --bg-hover: var(--palette-500);
1787
+ --fg: var(--palette-50);
1788
+ }
1789
+ }
1790
+
1791
+ /* Buttons and anchors (icon buttons) */
1792
+
1793
+ a[data-citric="icon-box"], .apply-citric a.citric-icon,
1794
+ button[data-citric="icon-box"], .apply-citric button.citric-icon,
1795
+ input[type="button"][data-citric="icon-box"], .apply-citric input[type="button"].citric-icon,
1796
+ input[type="submit"][data-citric="icon-box"], .apply-citric input[type="submit"].citric-icon,
1797
+ input[type="reset"][data-citric="icon-box"], .apply-citric input[type="reset"].citric-icon,
1798
+ [data-citric="button"][data-citric="icon-box"] {
1799
+ cursor: pointer;
1800
+ text-decoration: none;
1801
+ &:disabled {
1802
+ pointer-events: none;
1803
+ opacity: 48%;
1804
+ }
1805
+ &:hover, &:focus {
1806
+ background-color: var(--bg-hover);
1807
+ }
1808
+ }
1809
+
1810
+
1811
+ .apply-citric form, [data-citric="form"] {
1812
+ display: flex;
1813
+ flex-direction: column;
1814
+ gap: 10px;
1815
+
1816
+ > .row {
1817
+ align-items: start;
1818
+ gap: 10px;
1819
+ > [data-citric="form-group"] {
1820
+ flex: 1;
1821
+ }
1822
+ }
1823
+
1824
+ > .button-group {
1825
+ display: flex;
1826
+ justify-content: end;
1827
+ gap: 8px;
1828
+ }
1829
+
1830
+ [type=reset] {
1831
+ --scheme-400: var(--inverse-400);
1832
+ --scheme-500: var(--inverse-500);
1833
+ --scheme-contrastText: var(--inverse-contrastText);
1834
+ }
1835
+ }
1836
+
1837
+
1838
+ [data-citric="form-group"] {
1839
+ display: flex;
1840
+ flex-direction: column;
1841
+ gap: 6px;
1842
+
1843
+ label {
1844
+ display: flex;
1845
+ flex-direction: column;
1846
+ gap: 6px;
1847
+ > .row {
1848
+ gap: 8px;
1849
+ }
1850
+ p {
1851
+ margin: 0;
1852
+ }
1853
+ }
1854
+
1855
+ .feedback, .warning {
1856
+ margin: 0;
1857
+ display: none;
1858
+ display: flex;
1859
+ align-items: center;
1860
+ gap: 6px;
1861
+ line-height: 16px;
1862
+ }
1863
+
1864
+ .warning:before {
1865
+ font-family: CitricIconsOutline;
1866
+ content: var(--citric-icon-outline-ExclamationCircle);
1867
+ }
1868
+
1869
+ &.error {
1870
+ --border-color: var(--danger-500);
1871
+ .feedback {
1872
+ color: var(--danger-500);
1873
+ &:before {
1874
+ font-family: CitricIconsOutline;
1875
+ font-size: 12px;
1876
+ color: var(--danger-contrastText);
1877
+ content: var(--citric-icon-outline-TimesCircle);
1878
+ width: 16px;
1879
+ height: 16px;
1880
+ display: flex;
1881
+ align-items: center;
1882
+ justify-content: center;
1883
+ background-color: var(--danger-500);
1884
+ border-radius: 50%;
1885
+ flex-shrink: 0;
1886
+ }
1887
+ }
1888
+ }
1889
+ }
1890
+
1891
+
1892
+ [data-citric="field-group"] {
1893
+ display: flex;
1894
+ flex-direction: row;
1895
+ align-items: stretch;
1896
+ background-color: var(--light-400);
1897
+ width: fit-content;
1898
+
1899
+ > :not(:first-child) {
1900
+ border-top-left-radius: 0 !important;
1901
+ border-bottom-left-radius: 0 !important;
1902
+ }
1903
+
1904
+ > :not(:last-child) {
1905
+ border-top-right-radius: 0 !important;
1906
+ border-bottom-right-radius: 0 !important;
1907
+ }
1908
+
1909
+ > .addon,
1910
+ &.auto > :not(input, select, textarea, button:not(.citric-icon)) {
1911
+ min-width: 40px;
1912
+ padding: 0 var(--spacing-3);
1913
+ gap: var(--spacing-3);
1914
+ display: flex;
1915
+ justify-content: center;
1916
+ align-items: center;
1917
+ border: 1px solid var(--light-600);
1918
+ border-radius: var(--radius-xs);
1919
+ box-sizing: border-box;
1920
+ margin: 0;
1921
+ height: inherit;
1922
+ &:not(:last-child) {
1923
+ border-right: none;
1924
+ }
1925
+ &:not(:first-child) {
1926
+ border-left: none;
1927
+ }
1928
+ }
1929
+ }
1930
+
1931
+
1932
+ input[data-citric="favorite"][type="checkbox"] {
1933
+ --icon: var(--citric-icon-outline-Star);
1934
+ --icon-fill: var(--citric-icon-fill-StarFill);
1935
+ --height: 42px;
1936
+ display: flex;
1937
+ align-items: center;
1938
+ justify-content: center;
1939
+ appearance: none;
1940
+ cursor: pointer;
1941
+ font-size: 16px;
1942
+
1943
+ &:before {
1944
+ font-family: 'CitricIconsOutline';
1945
+ color: var(--light-700);
1946
+ content: var(--icon);
1947
+ }
1948
+
1949
+ &:checked:before {
1950
+ font-family: 'CitricIconsFill';
1951
+ color: var(--yellow-500);
1952
+ content: var(--icon-fill);
1953
+ }
1954
+
1955
+ &.sm {
1956
+ font-size: 12px;
1957
+ --height: 28px;
1958
+ }
1959
+
1960
+ &.lg {
1961
+ font-size: 20px;
1962
+ --height: 56px;
1963
+ }
1964
+
1965
+ &.fit-parent {
1966
+ --height: 100%;
1967
+ }
1968
+
1969
+ &.circle, &.square {
1970
+ height: var(--height);
1971
+ aspect-ratio: 50 / 42;
1972
+ background-color: var(--light-500);
1973
+ border-radius: 4px;
1974
+ transition: background-color 0.3s;
1975
+ &:hover:not(:disabled) {
1976
+ background-color: var(--light-600);
1977
+ }
1978
+ &.circle {
1979
+ aspect-ratio: 1;
1980
+ border-radius: 50%;
1981
+ }
1982
+ }
1983
+
1984
+ &:disabled {
1985
+ opacity: 0.6;
1986
+ cursor: not-allowed;
1987
+ }
1988
+
1989
+ &[aria-busy="true"] {
1990
+ cursor: progress;
1991
+ &:before {
1992
+ font-family: 'CitricIconsFill';
1993
+ content: var(--icon-fill);
1994
+ }
1995
+ }
1996
+ }
1997
+
1998
+
1999
+ .apply-citric hr, [data-citric="divider"] {
2000
+ --size: 1px;
2001
+ margin: 0;
2002
+ background-color: var(--scheme-500, var(--light-500));
2003
+ height: var(--size);
2004
+ width: auto;
2005
+ border: none;
2006
+ align-self: stretch;
2007
+
2008
+ &.vertical {
2009
+ height: auto;
2010
+ width: var(--size);
2011
+ }
2012
+
2013
+ &.md { --size: 2px; }
2014
+ &.lg { --size: 4px; }
2015
+ }
2016
+
2017
+
2018
+ [data-citric="circle"] {
2019
+ --size: 12px;
2020
+ border-radius: 50%;
2021
+ display: flex;
2022
+ align-items: center;
2023
+ justify-content: center;
2024
+ flex-direction: column;
2025
+ background-color: var(--scheme-500, var(--palette-500, var(--light-500)));
2026
+ color: var(--scheme-contrastText, var(--palette-900, var(--light-contrastText)));
2027
+ overflow: clip;
2028
+ width: var(--size);
2029
+ height: var(--size);
2030
+
2031
+ &.bordered {
2032
+ border: 2px solid var(--scheme-600, var(--palette-600, var(--light-600)));
2033
+ }
2034
+
2035
+ &.xxs { --size: 8px; }
2036
+ &.sm { --size: 18px; }
2037
+ &.md { --size: 27px; }
2038
+ &.lg { --size: 40px; }
2039
+ &.xl { --size: 60px; }
2040
+ &.xxl { --size: 90px; }
2041
+ }
2042
+
2043
+ .apply-citric input[type="checkbox"],
2044
+ [data-citric="checkbox-row"] input[type="checkbox"],
2045
+ [data-citric="checkbox"] {
2046
+ /* General css */
2047
+
2048
+ appearance: none;
2049
+ position: relative;
2050
+ box-sizing: border-box;
2051
+ width: 1.25rem;
2052
+ height: 1.25rem;
2053
+ border-radius: var(--radius-xxs);
2054
+ border: 1px solid var(--light-contrastText);
2055
+ background-color: var(--light-500);
2056
+ cursor: pointer;
2057
+ margin: 0;
2058
+
2059
+ /* States */
2060
+
2061
+ &:disabled {
2062
+ opacity: 0.24;
2063
+ }
2064
+
2065
+ &:checked {
2066
+ border-color: var(--scheme-700, var(--inverse-700));
2067
+ background-color: var(--scheme-500, var(--inverse-500));
2068
+ }
2069
+
2070
+ &:checked:after {
2071
+ content: '';
2072
+ top: 0.18rem;
2073
+ left: 0.359rem;
2074
+ width: 0.236rem;
2075
+ height: 0.471rem;
2076
+ position: absolute;
2077
+ border-bottom: 2px solid var(--scheme-contrastText, var(--inverse-contrastText));
2078
+ border-right: 2px solid var(--scheme-contrastText, var(--inverse-contrastText));
2079
+ transform: rotate(45deg);
2080
+ }
2081
+ }
2082
+
2083
+ [data-citric="checkbox-row"] {
2084
+ display: flex;
2085
+ align-items: center;
2086
+ gap: 5px;
2087
+ line-height: 1;
2088
+ }
2089
+
2090
+
2091
+ [data-citric="card"] {
2092
+ background-color: var(--scheme-300, var(--light-300));
2093
+ padding: var(--spacing-6);
2094
+ border: 1px solid var(--scheme-600, var(--light-600));
2095
+ color: var(--scheme-contrastText, var(--light-contrastText));
2096
+ display: flex;
2097
+ flex-direction: column;
2098
+ box-sizing: border-box;
2099
+ border-radius: 4px;
2100
+ transition: background-color 0.3s;
2101
+
2102
+ &.xxs { padding: var(--spacing-3); }
2103
+ &.xs { padding: var(--spacing-4); }
2104
+ &.sm { padding: var(--spacing-5); }
2105
+ &.lg { padding: var(--spacing-7); }
2106
+ &.xl { padding: var(--spacing-8); }
2107
+ &.xxl { padding: var(--spacing-9); }
2108
+
2109
+ &.bg-400 {
2110
+ background-color: var(--scheme-400, var(--light-400));
2111
+ border-color: var(--scheme-500, var(--light-500));
2112
+ &.clickable:hover { background-color: var(--scheme-500, var(--light-500)); }
2113
+ }
2114
+
2115
+ &.bg-500 {
2116
+ background-color: var(--scheme-500, var(--light-500));
2117
+ border-color: var(--scheme-600, var(--light-600));
2118
+ &.clickable:hover { background-color: var(--scheme-600, var(--light-600)); }
2119
+ }
2120
+
2121
+ &.bg-600 {
2122
+ background-color: var(--scheme-600, var(--light-600));
2123
+ border-color: var(--scheme-500, var(--light-500));
2124
+ &.clickable:hover { background-color: var(--scheme-500, var(--light-500)); }
2125
+ }
2126
+
2127
+ &.clickable, &[tab-index="0"], &[href] {
2128
+ cursor: pointer;
2129
+ &:hover, &:focus { background-color: var(--scheme-400, var(--light-400)); }
2130
+ }
2131
+ }
2132
+
2133
+
2134
+ .apply-citric button:not(.citric-icon),
2135
+ .apply-citric input[type="button"]:not(.citric-icon),
2136
+ .apply-citric input[type="submit"]:not(.citric-icon),
2137
+ .apply-citric input[type="reset"]:not(.citric-icon),
2138
+ [data-citric="button"] {
2139
+ /* General css */
2140
+
2141
+ display: flex;
2142
+ align-items: center;
2143
+ background-color: var(--scheme-500, var(--primary-500));
2144
+ color: var(--scheme-contrastText, var(--primary-contrastText));
2145
+ padding-inline: var(--spacing-3);
2146
+ padding-block: var(--spacing-2);
2147
+ font: var(--font-body2);
2148
+ font-weight: 500;
2149
+ border-radius: var(--radius-xs);
2150
+ user-select: none;
2151
+ justify-content: center;
2152
+ cursor: pointer;
2153
+ border: 1px solid var(--scheme-500, var(--primary-500));
2154
+ gap: var(--spacing-2);
2155
+ position: relative;
2156
+
2157
+ /* Appearances */
2158
+
2159
+ &.outlined, &.text {
2160
+ background-color: transparent;
2161
+ color: var(--scheme-500, var(--primary-500));
2162
+ }
2163
+
2164
+ &.text {
2165
+ border-color: transparent;
2166
+ }
2167
+
2168
+ /* Sizes */
2169
+
2170
+ &.lg {
2171
+ font: 500 1rem/1.5 Roboto, sans-serif;
2172
+ padding-inline: var(--spacing-4);
2173
+ padding-block: var(--spacing-3);
2174
+ }
2175
+
2176
+ &.sm {
2177
+ font: var(--font-microtext1);
2178
+ padding-inline: var(--spacing-3);
2179
+ padding-block: var(--spacing-2);
2180
+ }
2181
+
2182
+ /* States */
2183
+
2184
+ &:focus {
2185
+ outline: 0.125rem solid var(--inverse-500);
2186
+ outline-offset: 0.15rem;
2187
+ }
2188
+
2189
+ &:hover:not(.outlined):not(.text):not(:disabled),
2190
+ &:focus:not(.outlined):not(.text),
2191
+ &:active:not(.outlined):not(.text):not(:disabled) {
2192
+ background-color: var(--scheme-400, var(--primary-400));
2193
+ border-color: var(--scheme-400, var(--primary-400));
2194
+ }
2195
+
2196
+ &.outlined:hover:not(:disabled),
2197
+ &.outlined:focus,
2198
+ &.outlined:active:not(:disabled) {
2199
+ background-color: var(--scheme-500, var(--primary-500));
2200
+ color: var(--scheme-contrastText, var(--primary-contrastText));
2201
+ }
2202
+
2203
+ &.text:hover:not(:disabled),
2204
+ &.text:focus,
2205
+ &.text:active:not(:disabled) {
2206
+ border-color: var(--scheme-500, var(--primary-500));
2207
+ }
2208
+
2209
+ &:disabled {
2210
+ opacity: 0.6;
2211
+ cursor: not-allowed;
2212
+ }
2213
+
2214
+ /* Feedback text on click */
2215
+
2216
+ &[data-feedback]:after {
2217
+ content: attr(data-feedback);
2218
+ font: var(--font-microtext1);
2219
+ color: var(--inverse-contrastText);
2220
+ position: absolute;
2221
+ top: 0;
2222
+ padding: 3px 6px;
2223
+ border: 1px solid var(--inverse-500);
2224
+ border-radius: 4px;
2225
+ background-color: var(--inverse-300);
2226
+ pointer-events: none;
2227
+ opacity: 0;
2228
+ }
2229
+
2230
+ &[data-feedback]:not(:active):after {
2231
+ transition: opacity 1s, top 1s;
2232
+ }
2233
+
2234
+ &[data-feedback]:active:after {
2235
+ opacity: 1;
2236
+ top: calc(100% + 10px);
2237
+ }
2238
+
2239
+ .loader {
2240
+ display: flex;
2241
+ position: absolute;
2242
+ top: 0;
2243
+ left: 0;
2244
+ bottom: 0;
2245
+ right: 0;
2246
+ align-items: center;
2247
+ justify-content: center;
2248
+ pointer-events: none;
2249
+ opacity: 0;
2250
+ }
2251
+
2252
+ &[aria-busy="true"] {
2253
+ cursor: progress;
2254
+ > *:not(.loader) {
2255
+ opacity: 0;
2256
+ }
2257
+ .loader {
2258
+ opacity: 1;
2259
+ }
2260
+ }
2261
+ }
2262
+
2263
+
2264
+ [data-citric="breadcrumb"] {
2265
+ ul {
2266
+ list-style: none;
2267
+ margin: 0;
2268
+ padding: 0;
2269
+ display: flex;
2270
+ flex-direction: row;
2271
+ font: var(--font-body2);
2272
+ line-height: 1.5;
2273
+ }
2274
+
2275
+ li {
2276
+ color: var(--light-contrastText);
2277
+
2278
+ a[href] {
2279
+ color: var(--light-700);
2280
+ text-decoration: none;
2281
+ &:hover {
2282
+ color: var(--light-contrastText);
2283
+ text-decoration: underline;
2284
+ }
2285
+ }
2286
+
2287
+ &:not(:first-child):before {
2288
+ content: '/';
2289
+ color: var(--light-700);
2290
+ margin: 0 10px;
2291
+ }
2292
+ }
2293
+ }
2294
+
2295
+ .apply-citric blockquote, [data-citric="blockquote"] {
2296
+ display: flex;
2297
+ margin: var(--spacing-5);
2298
+ gap: var(--spacing-5);
2299
+
2300
+ &:before {
2301
+ content: '';
2302
+ border: 2px solid var(--primary-400);
2303
+ border-radius: var(--radius-sm);
2304
+ }
2305
+
2306
+ &[data-color-scheme]:before {
2307
+ border-color: var(--scheme-400);
2308
+ }
2309
+
2310
+ &[data-color-palette]:before {
2311
+ border-color: var(--palette-300);
2312
+ }
2313
+ }
2314
+
2315
+
2316
+ [data-citric="badge"] {
2317
+ /* General css */
2318
+
2319
+ display: inline-flex;
2320
+ justify-content: center;
2321
+ align-items: center;
2322
+ gap: var(--spacing-2);
2323
+ font: var(--font-microtext1);
2324
+ line-height: normal;
2325
+ border-radius: var(--radius-full);
2326
+ background-color: var(--palette-50, var(--indigo-50));
2327
+ color: var(--palette-800, var(--indigo-800));
2328
+ padding: 4px 8px;
2329
+
2330
+ &.square {
2331
+ border-radius: var(--radius-xs);
2332
+ }
2333
+ }
2334
+
2335
+ /* Clickable badges */
2336
+
2337
+ button[data-citric="badge"], a[data-citric="badge"] {
2338
+ background-color: var(--palette-800, var(--indigo-800));
2339
+ color: var(--palette-50, var(--indigo-50));
2340
+ font-weight: 300;
2341
+ &:active, &:focus, &:hover {
2342
+ background-color: var(--palette-700, var(--indigo-700));
2343
+ }
2344
+ &:disabled {
2345
+ opacity: 0.6;
2346
+ pointer-events: none;
2347
+ }
2348
+ }
2349
+
2350
+ button[data-citric="badge"] {
2351
+ border: none;
2352
+ cursor: pointer;
2353
+ }
2354
+
2355
+ a[data-citric="badge"] {
2356
+ &:active, &:focus, &:hover {
2357
+ text-decoration: underline;
2358
+ }
2359
+ }
2360
+
2361
+
2362
+ [data-citric="avatar"], [data-citric="avatar-group"] [data-citric="avatar"] {
2363
+ --size: 5rem;
2364
+ display: flex;
2365
+ justify-content: center;
2366
+ align-items: center;
2367
+ box-sizing: border-box;
2368
+ overflow: hidden;
2369
+ border-radius: var(--radius-full);
2370
+ font-family: var(--font-system-1);
2371
+ font-weight: bold;
2372
+ background-color: var(--palette-800, var(--indigo-800));
2373
+ color: var(--palette-50, var(--indigo-50));
2374
+ width: var(--size);
2375
+ height: var(--size);
2376
+ font-size: 1.5rem;
2377
+ line-height: 2.25rem;
2378
+ text-transform: uppercase;
2379
+ flex-shrink: 0;
2380
+
2381
+ img {
2382
+ object-fit: cover;
2383
+ width: var(--size);
2384
+ height: var(--size);
2385
+ }
2386
+ }
2387
+
2388
+ [data-citric="avatar-group"].square [data-citric="avatar"], [data-citric="avatar"].square {
2389
+ border-radius: var(--radius-sm);
2390
+ }
2391
+
2392
+ [data-citric="avatar-group"].xxs [data-citric="avatar"], [data-citric="avatar"].xxs {
2393
+ --size: 1.5rem;
2394
+ font-size: 0.75rem;
2395
+ line-height: 1rem;
2396
+ }
2397
+
2398
+ [data-citric="avatar-group"].xs [data-citric="avatar"], [data-citric="avatar"].xs {
2399
+ --size: 2rem;
2400
+ font-size: 0.75rem;
2401
+ line-height: 1rem;
2402
+ }
2403
+
2404
+ [data-citric="avatar-group"].sm [data-citric="avatar"], [data-citric="avatar"].sm {
2405
+ --size: 3rem;
2406
+ font-size: 1rem;
2407
+ line-height: 2rem;
2408
+ }
2409
+
2410
+ [data-citric="avatar-group"].md [data-citric="avatar"], [data-citric="avatar"].md {
2411
+ --size: 4rem;
2412
+ font-size: 1.25rem;
2413
+ line-height: 2rem;
2414
+ }
2415
+
2416
+ [data-citric="avatar-group"].xl [data-citric="avatar"], [data-citric="avatar"].xl {
2417
+ --size: 8rem;
2418
+ font-size: 2rem;
2419
+ line-height: 4rem;
2420
+ }
2421
+
2422
+ [data-citric="avatar-group"].xxl [data-citric="avatar"], [data-citric="avatar"].xxl {
2423
+ --size: 12rem;
2424
+ font-size: 3.5rem;
2425
+ line-height: 5.5rem;
2426
+ }
2427
+
2428
+ [data-citric="avatar-group"] {
2429
+ display: flex;
2430
+ flex-direction: row;
2431
+ --gap: -0.75rem;
2432
+
2433
+ &.xxs, &.xs { --gap: -0.25rem; }
2434
+ &.sm { --gap: -0.5rem; }
2435
+ &.xl { --gap: -1rem; }
2436
+ &.xxl { --gap: -2rem; }
2437
+
2438
+ [data-citric="avatar"]:not(:first-child) {
2439
+ margin-left: var(--gap);
2440
+ }
2441
+
2442
+ &[data-max-items="1"] [data-citric="avatar"]:nth-child(n+2) { display: none; }
2443
+ &[data-max-items="2"] [data-citric="avatar"]:nth-child(n+3) { display: none; }
2444
+ &[data-max-items="3"] [data-citric="avatar"]:nth-child(n+4) { display: none; }
2445
+ &[data-max-items="4"] [data-citric="avatar"]:nth-child(n+5) { display: none; }
2446
+ &[data-max-items="5"] [data-citric="avatar"]:nth-child(n+6) { display: none; }
2447
+ &[data-max-items="6"] [data-citric="avatar"]:nth-child(n+7) { display: none; }
2448
+ &[data-max-items="7"] [data-citric="avatar"]:nth-child(n+8) { display: none; }
2449
+ &[data-max-items="8"] [data-citric="avatar"]:nth-child(n+9) { display: none; }
2450
+ &[data-max-items="9"] [data-citric="avatar"]:nth-child(n+10) { display: none; }
2451
+ &[data-max-items="10"] [data-citric="avatar"]:nth-child(n+11) { display: none; }
2452
+ }
2453
+
2454
+
2455
+ [data-citric="alert"] {
2456
+ padding: var(--spacing-4);
2457
+ font: var(--font-body2);
2458
+ background-color: var(--warning-500);
2459
+ color: var(--warning-contrastText);
2460
+ display: flex;
2461
+ align-items: center;
2462
+ gap: var(--spacing-4);
2463
+ line-height: 1;
2464
+
2465
+ &:before {
2466
+ font-family: CitricIconsOutline;
2467
+ font-size: 1rem;
2468
+ content: var(--citric-icon-outline-ExclamationTriangle);
2469
+ }
2470
+
2471
+ &.error {
2472
+ background-color: var(--danger-500);
2473
+ color: var(--danger-contrastText);
2474
+ &:before { content: var(--citric-icon-outline-TimesCircle); }
2475
+ }
2476
+
2477
+ &.info {
2478
+ background-color: var(--light-500);
2479
+ color: var(--light-contrastText);
2480
+ &:before { content: var(--citric-icon-outline-InfoCircle); }
2481
+ }
2482
+ }
2483
+
2484
+ [data-citric="accordion"] {
2485
+ --max-height: 300px;
2486
+ --animation-duration: 0.3s;
2487
+
2488
+ > header input[type="checkbox"][aria-controls] {
2489
+ appearance: none;
2490
+ margin: 0;
2491
+ cursor: pointer;
2492
+ transition: transform var(--animation-duration) ease-out;
2493
+ &:before {
2494
+ font-family: CitricIconsOutline;
2495
+ font-size: 16px;
2496
+ content: var(--citric-icon-outline-ChevronDown);
2497
+ }
2498
+ &:checked {
2499
+ transform: rotate(180deg);
2500
+ }
2501
+ }
2502
+
2503
+ > section {
2504
+ max-height: 0;
2505
+ box-sizing: border-box;
2506
+ overflow: hidden;
2507
+ transition: max-height var(--animation-duration) ease-out;
2508
+ }
2509
+
2510
+ &:has(> header input[type="checkbox"][aria-controls]:checked) > section {
2511
+ overflow: auto;
2512
+ animation: var(--animation-duration) accordion-delayed-overflow;
2513
+ max-height: var(--max-height);
2514
+ }
2515
+
2516
+ &.card {
2517
+ --bg-color: var(--scheme-300, var(--light-300));
2518
+ --border-color: var(--scheme-500, var(--light-500));
2519
+ border-radius: 4px;
2520
+ background-color: var(--bg-color);
2521
+ border: 1px solid transparent;
2522
+ transition: border-color var(--animation-duration);
2523
+
2524
+ > header > label {
2525
+ padding: 16px;
2526
+ font: var(--font-body1);
2527
+ line-height: 1;
2528
+ display: flex;
2529
+ align-items: center;
2530
+ justify-content: space-between;
2531
+ gap: 12px;
2532
+ flex: 1;
2533
+ cursor: pointer;
2534
+ }
2535
+
2536
+ > section .content {
2537
+ padding: 16px;
2538
+
2539
+ > p:first-child {
2540
+ margin-top: 0;
2541
+ }
2542
+
2543
+ > p:last-child {
2544
+ margin-bottom: 0;
2545
+ }
2546
+ }
2547
+
2548
+ &:has(header input[type="checkbox"][aria-controls]:focus),
2549
+ &:hover {
2550
+ border-color: var(--scheme-500, var(--light-500));
2551
+ }
2552
+
2553
+ &.bg-400 {
2554
+ --bg-color: var(--scheme-400, var(--light-400));
2555
+ --border-color: var(--scheme-600, var(--light-600));
2556
+ }
2557
+
2558
+ &.bg-500 {
2559
+ --bg-color: var(--scheme-500, var(--light-500));
2560
+ --border-color: var(--scheme-600, var(--light-600));
2561
+ }
2562
+
2563
+ &.bg-600 {
2564
+ --bg-color: var(--scheme-600, var(--light-600));
2565
+ --border-color: var(--scheme-400, var(--light-400));
2566
+ }
2567
+ }
2568
+ }
2569
+
2570
+ @keyframes accordion-delayed-overflow {
2571
+ 0% {
2572
+ overflow: hidden;
2573
+ }
2574
+ 99% {
2575
+ overflow: hidden;
2576
+ }
2577
+ 100% {
2578
+ overflow: auto;
2579
+ }
2580
+ }