twntyx-css 1.0.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 (228) hide show
  1. package/README.md +105 -0
  2. package/llm/CHANGELOG.md +7 -0
  3. package/llm/components/ai-background.json +90 -0
  4. package/llm/components/ai-orb.json +91 -0
  5. package/llm/components/ai-perl.json +91 -0
  6. package/llm/components/all-components.json +104 -0
  7. package/llm/components/animation-references.json +84 -0
  8. package/llm/components/avatar.json +149 -0
  9. package/llm/components/badge.json +263 -0
  10. package/llm/components/banner-marketplace.json +81 -0
  11. package/llm/components/banner.json +120 -0
  12. package/llm/components/breadcrumb.json +169 -0
  13. package/llm/components/button-container.json +150 -0
  14. package/llm/components/button-feedback.json +155 -0
  15. package/llm/components/button.json +290 -0
  16. package/llm/components/card-assessment.json +93 -0
  17. package/llm/components/card-test.json +83 -0
  18. package/llm/components/card.json +94 -0
  19. package/llm/components/chat.json +155 -0
  20. package/llm/components/checkbox.json +186 -0
  21. package/llm/components/checkmark.json +175 -0
  22. package/llm/components/collapsible.json +100 -0
  23. package/llm/components/color-palette.json +79 -0
  24. package/llm/components/color-usage.json +83 -0
  25. package/llm/components/combobox.json +143 -0
  26. package/llm/components/command-palette.json +159 -0
  27. package/llm/components/countdown.json +113 -0
  28. package/llm/components/datepicker.json +151 -0
  29. package/llm/components/divider.json +104 -0
  30. package/llm/components/empty-state.json +80 -0
  31. package/llm/components/field.json +123 -0
  32. package/llm/components/fieldset.json +78 -0
  33. package/llm/components/file-upload.json +163 -0
  34. package/llm/components/form-example.json +82 -0
  35. package/llm/components/getting-started.json +70 -0
  36. package/llm/components/icons-reference.json +78 -0
  37. package/llm/components/illustrations-library.json +78 -0
  38. package/llm/components/input-group.json +94 -0
  39. package/llm/components/introduction.json +71 -0
  40. package/llm/components/join.json +105 -0
  41. package/llm/components/kbd.json +139 -0
  42. package/llm/components/key-value.json +86 -0
  43. package/llm/components/link.json +120 -0
  44. package/llm/components/loader.json +117 -0
  45. package/llm/components/logotype.json +75 -0
  46. package/llm/components/menu.json +192 -0
  47. package/llm/components/modal.json +167 -0
  48. package/llm/components/navbar.json +158 -0
  49. package/llm/components/pagination.json +122 -0
  50. package/llm/components/pie-chart.json +94 -0
  51. package/llm/components/popover.json +174 -0
  52. package/llm/components/progress-bullet.json +203 -0
  53. package/llm/components/progress-linear.json +129 -0
  54. package/llm/components/progress-radial.json +125 -0
  55. package/llm/components/radio.json +162 -0
  56. package/llm/components/range-slider.json +125 -0
  57. package/llm/components/scrollbar.json +96 -0
  58. package/llm/components/select-input.json +224 -0
  59. package/llm/components/shadows.json +107 -0
  60. package/llm/components/skeleton.json +84 -0
  61. package/llm/components/stacked-chart.json +100 -0
  62. package/llm/components/state.json +138 -0
  63. package/llm/components/stepper.json +95 -0
  64. package/llm/components/steps.json +177 -0
  65. package/llm/components/surface.json +181 -0
  66. package/llm/components/table.json +223 -0
  67. package/llm/components/tabs.json +147 -0
  68. package/llm/components/template-ai.json +80 -0
  69. package/llm/components/template-login.json +88 -0
  70. package/llm/components/template-stats.json +76 -0
  71. package/llm/components/text-input.json +275 -0
  72. package/llm/components/textarea.json +183 -0
  73. package/llm/components/timeline.json +142 -0
  74. package/llm/components/toast.json +164 -0
  75. package/llm/components/toggle.json +158 -0
  76. package/llm/components/tool-svg-to-base64.json +78 -0
  77. package/llm/components/tool-svg-to-icon-data.json +81 -0
  78. package/llm/components/tooltip.json +90 -0
  79. package/llm/examples/ai-background.html +1 -0
  80. package/llm/examples/ai-orb.html +1 -0
  81. package/llm/examples/ai-perl.html +1 -0
  82. package/llm/examples/all-components.html +1 -0
  83. package/llm/examples/animation-references.html +1 -0
  84. package/llm/examples/avatar.html +1 -0
  85. package/llm/examples/badge.html +1 -0
  86. package/llm/examples/banner-marketplace.html +1 -0
  87. package/llm/examples/banner.html +1 -0
  88. package/llm/examples/breadcrumb.html +1 -0
  89. package/llm/examples/button-container.html +1 -0
  90. package/llm/examples/button-feedback.html +1 -0
  91. package/llm/examples/button.html +3 -0
  92. package/llm/examples/card-assessment.html +1 -0
  93. package/llm/examples/card-test.html +1 -0
  94. package/llm/examples/card.html +1 -0
  95. package/llm/examples/chat.html +1 -0
  96. package/llm/examples/checkbox.html +1 -0
  97. package/llm/examples/checkmark.html +1 -0
  98. package/llm/examples/collapsible.html +1 -0
  99. package/llm/examples/color-palette.html +1 -0
  100. package/llm/examples/color-usage.html +1 -0
  101. package/llm/examples/combobox.html +1 -0
  102. package/llm/examples/command-palette.html +1 -0
  103. package/llm/examples/countdown.html +1 -0
  104. package/llm/examples/datepicker.html +1 -0
  105. package/llm/examples/divider.html +1 -0
  106. package/llm/examples/empty-state.html +1 -0
  107. package/llm/examples/field.html +1 -0
  108. package/llm/examples/fieldset.html +1 -0
  109. package/llm/examples/file-upload.html +1 -0
  110. package/llm/examples/form-example.html +1 -0
  111. package/llm/examples/getting-started.html +1 -0
  112. package/llm/examples/icons-reference.html +1 -0
  113. package/llm/examples/illustrations-library.html +1 -0
  114. package/llm/examples/input-group.html +1 -0
  115. package/llm/examples/introduction.html +1 -0
  116. package/llm/examples/join.html +1 -0
  117. package/llm/examples/kbd.html +1 -0
  118. package/llm/examples/key-value.html +1 -0
  119. package/llm/examples/link.html +1 -0
  120. package/llm/examples/loader.html +1 -0
  121. package/llm/examples/logotype.html +1 -0
  122. package/llm/examples/menu.html +1 -0
  123. package/llm/examples/modal.html +16 -0
  124. package/llm/examples/navbar.html +1 -0
  125. package/llm/examples/pagination.html +1 -0
  126. package/llm/examples/pie-chart.html +1 -0
  127. package/llm/examples/popover.html +1 -0
  128. package/llm/examples/progress-bullet.html +1 -0
  129. package/llm/examples/progress-linear.html +1 -0
  130. package/llm/examples/progress-radial.html +1 -0
  131. package/llm/examples/radio.html +1 -0
  132. package/llm/examples/range-slider.html +1 -0
  133. package/llm/examples/scrollbar.html +1 -0
  134. package/llm/examples/select-input.html +1 -0
  135. package/llm/examples/shadows.html +1 -0
  136. package/llm/examples/skeleton.html +1 -0
  137. package/llm/examples/stacked-chart.html +1 -0
  138. package/llm/examples/state.html +1 -0
  139. package/llm/examples/stepper.html +1 -0
  140. package/llm/examples/steps.html +1 -0
  141. package/llm/examples/surface.html +1 -0
  142. package/llm/examples/table.html +16 -0
  143. package/llm/examples/tabs.html +1 -0
  144. package/llm/examples/template-ai.html +1 -0
  145. package/llm/examples/template-login.html +1 -0
  146. package/llm/examples/template-stats.html +1 -0
  147. package/llm/examples/text-input.html +10 -0
  148. package/llm/examples/textarea.html +1 -0
  149. package/llm/examples/timeline.html +1 -0
  150. package/llm/examples/toast.html +5 -0
  151. package/llm/examples/toggle.html +1 -0
  152. package/llm/examples/tool-svg-to-base64.html +1 -0
  153. package/llm/examples/tool-svg-to-icon-data.html +1 -0
  154. package/llm/examples/tooltip.html +1 -0
  155. package/llm/index.json +1615 -0
  156. package/llm/llms.txt +18 -0
  157. package/llm/patterns.json +111 -0
  158. package/llm/rules.json +47 -0
  159. package/llm/schema.json +804 -0
  160. package/llm/tokens.json +3629 -0
  161. package/package.json +30 -0
  162. package/styles/ai.css +114 -0
  163. package/styles/animation.css +2493 -0
  164. package/styles/avatar.css +101 -0
  165. package/styles/background-ai.css +118 -0
  166. package/styles/badge.css +274 -0
  167. package/styles/banner.css +98 -0
  168. package/styles/breadcrumb.css +72 -0
  169. package/styles/button.css +621 -0
  170. package/styles/card.css +27 -0
  171. package/styles/chart-pie.css +39 -0
  172. package/styles/chart-stacked.css +91 -0
  173. package/styles/chat.css +506 -0
  174. package/styles/checkmark.css +105 -0
  175. package/styles/code.css +264 -0
  176. package/styles/collapsible.css +93 -0
  177. package/styles/colors.css +536 -0
  178. package/styles/combobox.css +66 -0
  179. package/styles/command.css +81 -0
  180. package/styles/contest.css +227 -0
  181. package/styles/countdown.css +65 -0
  182. package/styles/datepicker.css +124 -0
  183. package/styles/divider.css +72 -0
  184. package/styles/drawer.css +142 -0
  185. package/styles/dropdown.css +22 -0
  186. package/styles/empty-state.css +48 -0
  187. package/styles/field.css +47 -0
  188. package/styles/fieldset.css +24 -0
  189. package/styles/form-checkbox-radio-toggle.css +233 -0
  190. package/styles/form-fileupload.css +146 -0
  191. package/styles/form-rangeslider.css +106 -0
  192. package/styles/form-shared.css +41 -0
  193. package/styles/form-text-select.css +411 -0
  194. package/styles/form.css +86 -0
  195. package/styles/globals.css +66 -0
  196. package/styles/input-group.css +63 -0
  197. package/styles/join.css +141 -0
  198. package/styles/kbd.css +55 -0
  199. package/styles/key-value.css +44 -0
  200. package/styles/link.css +48 -0
  201. package/styles/loader.css +183 -0
  202. package/styles/logotype.css +13 -0
  203. package/styles/menu.css +317 -0
  204. package/styles/modal.css +172 -0
  205. package/styles/navbar.css +48 -0
  206. package/styles/package-quill.css +1001 -0
  207. package/styles/pagination.css +147 -0
  208. package/styles/panel.css +113 -0
  209. package/styles/popover.css +303 -0
  210. package/styles/prism.css +60 -0
  211. package/styles/progress.css +209 -0
  212. package/styles/scrollbar.css +17 -0
  213. package/styles/shadow.css +25 -0
  214. package/styles/shared.css +226 -0
  215. package/styles/skeleton.css +34 -0
  216. package/styles/state.css +150 -0
  217. package/styles/stepper.css +72 -0
  218. package/styles/steps.css +98 -0
  219. package/styles/surface.css +252 -0
  220. package/styles/tab.css +286 -0
  221. package/styles/table.css +243 -0
  222. package/styles/theme.css +126 -0
  223. package/styles/timeline.css +193 -0
  224. package/styles/toast.css +150 -0
  225. package/styles/tooltip.css +8 -0
  226. package/styles/typography.css +160 -0
  227. package/styles/utility.css +20 -0
  228. package/tailwind.config.cjs +9 -0
@@ -0,0 +1,209 @@
1
+ /*----------------------------*/
2
+ /* PROGRESS */
3
+ /*----------------------------*/
4
+
5
+ /* Wrapper for consistent spacing */
6
+ @utility progress-wrapper {
7
+ --value: 0;
8
+ --size: 96px;
9
+ --thickness: 6px;
10
+ @apply inline-flex
11
+ m-auto
12
+ rounded-full
13
+ shadow-[inset_0_0_0_calc(var(--thickness)*2)_var(--raw-color-border-highlight)]
14
+ dark:shadow-[inset_0_0_0_calc(var(--thickness)*2)_var(--raw-color-border-highlight-dark)]
15
+ text-background-brand;
16
+ }
17
+
18
+ @utility progress-radial {
19
+ @apply inline-flex overflow-hidden relative justify-center items-center rounded-full transition-all duration-75 include-transition;
20
+
21
+ width: var(--size);
22
+ height: var(--size);
23
+
24
+ /* Create the radial progress background */
25
+ background:
26
+ radial-gradient(farthest-side, currentColor 98%, transparent) top/var(--thickness) var(--thickness) no-repeat,
27
+ conic-gradient(currentColor calc(var(--value) * 1%), transparent 0);
28
+
29
+ /* Progress indicator dot */
30
+ &::after {
31
+ @apply absolute
32
+ rounded-full
33
+ bg-current
34
+ content-['']
35
+ transition-transform
36
+ include-transition duration-75;
37
+ width: var(--thickness);
38
+ height: var(--thickness);
39
+ inset: calc(50% - var(--thickness) / 2);
40
+ transform: rotate(calc(var(--value) * 3.6deg - 90deg)) translate(calc(var(--size) / 2 - 50%));
41
+ }
42
+
43
+ /* Inner circle */
44
+ .progress-inner {
45
+ @apply absolute rounded-full bg-background-surface;
46
+ inset: var(--thickness);
47
+ }
48
+
49
+ /* Value text */
50
+ .progress-value {
51
+ @apply relative z-10 text-text-default;
52
+ }
53
+ }
54
+
55
+ /* Size variants */
56
+ @utility progress-xs {
57
+ --size: 44px;
58
+ --thickness: 2px;
59
+ @apply text-xs;
60
+ }
61
+
62
+ @utility progress-sm {
63
+ --size: 64px;
64
+ --thickness: 3px;
65
+ @apply text-sm;
66
+ }
67
+
68
+ @utility progress-md {
69
+ --size: 96px;
70
+ --thickness: 4px;
71
+ @apply text-base;
72
+ }
73
+
74
+ @utility progress-lg {
75
+ --size: 128px;
76
+ --thickness: 6px;
77
+ @apply text-xl;
78
+ }
79
+
80
+ @utility progress-xl {
81
+ --size: 160px;
82
+ --thickness: 8px;
83
+ @apply text-2xl;
84
+ }
85
+
86
+ /* Linear progress */
87
+ @utility progress-linear {
88
+ --thickness: 6px;
89
+ @apply relative w-full rounded-full bg-line-highlight text-background-brand h-(--thickness);
90
+
91
+ /* Progress bar */
92
+ &::after {
93
+ @apply content-[''] absolute inset-0 bg-current rounded-full transition-all duration-300 ease-out-quart;
94
+ width: var(--value, 0%);
95
+ }
96
+
97
+ /* Size variants */
98
+ &.progress-xs {
99
+ --thickness: 2px;
100
+ }
101
+
102
+ &.progress-sm {
103
+ --thickness: 4px;
104
+ }
105
+
106
+ &.progress-md {
107
+ --thickness: 6px;
108
+ }
109
+
110
+ &.progress-lg {
111
+ --thickness: 10px;
112
+ }
113
+
114
+ &.progress-xl {
115
+ --thickness: 12px;
116
+ }
117
+
118
+ .progress-label {
119
+ @apply text-xs text-text-tertiary whitespace-nowrap inline absolute bottom-2.5 -translate-x-full left-[calc(var(--value))];
120
+ }
121
+ }
122
+
123
+ /* Bullet progress */
124
+ @utility progress-bullet {
125
+ --thickness: 8px;
126
+ @apply flex gap-[calc(var(--thickness)/1.75)] text-brand-default;
127
+
128
+ &:not(:has(.is-active)) li,
129
+ li.is-active ~ li {
130
+ &::after {
131
+ @apply translate-y-full;
132
+ }
133
+ }
134
+
135
+ li {
136
+ @apply overflow-hidden relative rounded-full size-2 bg-line-highlight h-(--thickness) w-(--thickness);
137
+
138
+ &::after {
139
+ @apply content-[''] absolute inset-0 rounded-full transition-transform duration-0 ease-out-cubic translate-y-0 bg-current;
140
+ }
141
+ }
142
+
143
+ li.is-active {
144
+ &::after {
145
+ @apply bg-current duration-500;
146
+ }
147
+ }
148
+
149
+ &.progress-xs {
150
+ --thickness: 4px;
151
+ }
152
+
153
+ &.progress-sm {
154
+ --thickness: 6px;
155
+ }
156
+
157
+ &.progress-md {
158
+ --thickness: 8px;
159
+ }
160
+
161
+ &.progress-lg {
162
+ --thickness: 10px;
163
+ }
164
+
165
+ &.progress-xl {
166
+ --thickness: 12px;
167
+ }
168
+
169
+ /* Full width variant */
170
+ &.progress-full {
171
+ --thickness: 4px;
172
+ @apply w-full;
173
+
174
+ li {
175
+ @apply flex-1 h-(--thickness);
176
+
177
+ &::after {
178
+ @apply w-full opacity-100 translate-x-0 translate-y-0;
179
+ }
180
+ }
181
+
182
+ &:not(:has(.is-active)) li,
183
+ li.is-active ~ li {
184
+ &::after {
185
+ @apply -translate-x-[calc(100%+2px)] translate-y-0;
186
+ }
187
+ }
188
+
189
+ &.progress-xs {
190
+ --thickness: 1px;
191
+ }
192
+
193
+ &.progress-sm {
194
+ --thickness: 2px;
195
+ }
196
+
197
+ &.progress-md {
198
+ --thickness: 4px;
199
+ }
200
+
201
+ &.progress-lg {
202
+ --thickness: 6px;
203
+ }
204
+
205
+ &.progress-xl {
206
+ --thickness: 8px;
207
+ }
208
+ }
209
+ }
@@ -0,0 +1,17 @@
1
+ /*----------------------------*/
2
+ /* SCROLLBAR */
3
+ /*----------------------------*/
4
+
5
+ @utility scrollbar {
6
+ @apply [&::-webkit-scrollbar]:w-2
7
+ [&::-webkit-scrollbar]:h-2
8
+ [&::-webkit-scrollbar-track]:bg-core-ui-100
9
+ dark:[&::-webkit-scrollbar-track]:bg-core-ui-700
10
+ [&::-webkit-scrollbar-thumb]:bg-core-ui-300
11
+ [&::-webkit-scrollbar-thumb]:transition-colors
12
+ [&::-webkit-scrollbar-thumb:hover]:bg-core-ui-400/50
13
+ dark:[&::-webkit-scrollbar-thumb]:bg-core-ui-500
14
+ dark:[&::-webkit-scrollbar-thumb:hover]:bg-core-ui-400/75
15
+ [&::-webkit-scrollbar-track]:rounded-full
16
+ [&::-webkit-scrollbar-thumb]:rounded-full;
17
+ }
@@ -0,0 +1,25 @@
1
+ /*----------------------------*/
2
+ /* SHADOW */
3
+ /*----------------------------*/
4
+
5
+ :root.dark {
6
+ .shadow-sm {
7
+ @apply shadow-dark-sm!;
8
+ }
9
+ .shadow-md {
10
+ @apply shadow-dark-md!;
11
+ }
12
+ .shadow-lg {
13
+ @apply shadow-dark-lg!;
14
+ }
15
+ .shadow-xl {
16
+ @apply shadow-dark-xl!;
17
+ }
18
+ }
19
+
20
+ @theme {
21
+ --shadow-rest: 0 12px 24px 0 rgba(255, 255, 255, 0.03) inset, 0 0.5px 0.5px 0 rgba(255, 255, 255, 0.06) inset, 0 0.25px 0.25px 0 rgba(255, 255, 255, 0.12) inset;
22
+ --shadow-hover: 0 12px 24px 0 rgba(255, 255, 255, 0.05) inset, 0 0.5px 0.5px 0 rgba(255, 255, 255, 0.06) inset, 0 0.25px 0.25px 0 rgba(255, 255, 255, 0.12) inset;
23
+ --shadow-slider-rest: 0 4px 8px 0 rgba(255, 255, 255, 0.03) inset, 0 0.5px 0.5px 0 rgba(255, 255, 255, 0.06) inset, 0 0.25px 0.25px 0 rgba(255, 255, 255, 0.12) inset;
24
+ --shadow-slider-hover: 0 4px 8px 0 rgba(255, 255, 255, 0.05) inset, 0 0.5px 0.5px 0 rgba(255, 255, 255, 0.06) inset, 0 0.25px 0.25px 0 rgba(255, 255, 255, 0.12) inset;
25
+ }
@@ -0,0 +1,226 @@
1
+ html,
2
+ body {
3
+ @apply w-full min-h-screen;
4
+ }
5
+
6
+ /* Interactive states */
7
+ @utility include-transition {
8
+ @apply duration-200 ease-out-cubic;
9
+ }
10
+
11
+ @utility include-transition-semilong {
12
+ @apply duration-300 ease-out-cubic;
13
+ }
14
+
15
+ @utility include-transition-long {
16
+ @apply duration-500 ease-out-cubic;
17
+ }
18
+
19
+ @utility include-interactive {
20
+ @apply hover:include-transition hover:transition-[border-color,background-color] hover:ease-out-cubic active:duration-0 include-focus-visible;
21
+ }
22
+
23
+ @utility interactive-base {
24
+ @apply outline outline-2 -outline-offset-1 ring-line-brand;
25
+ }
26
+
27
+ @utility include-active {
28
+ @apply outline outline-1 outline-offset-2 outline-text-default/0 active:outline-brand-moderate;
29
+ }
30
+
31
+ @utility include-focus-visible {
32
+ @apply include-active focus-visible:outline-line-focus focus-visible:outline-dashed;
33
+ }
34
+
35
+ @utility include-interactive-secondary {
36
+ @apply interactive-base outline-transparent hover:outline-transparent active:outline-transparent active:opacity-75 focus-visible:outline-line-brand active:transition-none active:duration-0 focus-visible:ring-0 disabled:cursor-not-allowed;
37
+ }
38
+
39
+ @utility inverted {
40
+ color-scheme: dark;
41
+ .inverted {
42
+ color-scheme: light;
43
+ }
44
+ }
45
+
46
+ :is(html.dark, body.dark) .inverted {
47
+ color-scheme: light;
48
+
49
+ .inverted {
50
+ color-scheme: dark;
51
+ }
52
+ }
53
+
54
+ /* Masks */
55
+ @utility mask {
56
+ mask-position: center;
57
+ mask-size: contain;
58
+ mask-repeat: no-repeat;
59
+ }
60
+
61
+ @utility mask-carat {
62
+ @apply mask;
63
+ mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2224px%22%20viewBox%3D%220%20-960%20960%20960%22%20width%3D%2224px%22%20fill%3D%22current%22%3E%3Cpath%20d%3D%22M480-372.92q-7.23%200-13.46-2.31t-11.85-7.92L274.92-562.92q-8.3-8.31-8.5-20.89-.19-12.57%208.5-21.27%208.7-8.69%2021.08-8.69%2012.38%200%2021.08%208.69L480-442.15l162.92-162.93q8.31-8.3%2020.89-8.5%2012.57-.19%2021.27%208.5%208.69%208.7%208.69%2021.08%200%2012.38-8.69%2021.08L505.31-383.15q-5.62%205.61-11.85%207.92-6.23%202.31-13.46%202.31Z%22%2F%3E%3C%2Fsvg%3E");
64
+ }
65
+
66
+ @utility mask-close {
67
+ @apply mask;
68
+ mask-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%20-960%20960%20960%22%20fill%3D%22currentColor%22%3E%3Cpath%20d%3D%22M480-437.85%20277.08-234.92q-8.31%208.3-20.89%208.5-12.57.19-21.27-8.5-8.69-8.7-8.69-21.08%200-12.38%208.69-21.08L437.85-480%20234.92-682.92q-8.3-8.31-8.5-20.89-.19-12.57%208.5-21.27%208.7-8.69%2021.08-8.69%2012.38%200%2021.08%208.69L480-522.15l202.92-202.93q8.31-8.3%2020.89-8.5%2012.57-.19%2021.27%208.5%208.69%208.7%208.69%2021.08%200%2012.38-8.69%2021.08L522.15-480l202.93%20202.92q8.3%208.31%208.5%2020.89.19%2012.57-8.5%2021.27-8.7%208.69-21.08%208.69-12.38%200-21.08-8.69L480-437.85Z%22%2F%3E%3C%2Fsvg%3E");
69
+ }
70
+
71
+ @utility mask-check {
72
+ mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M9.54976%2015.5155L18.1883%206.87702C18.3369%206.72819%2018.5109%206.65219%2018.7103%206.64902C18.9096%206.64585%2019.0868%206.72185%2019.242%206.87702C19.3972%207.03219%2019.4748%207.21035%2019.4748%207.41152C19.4748%207.61285%2019.3972%207.7911%2019.242%207.94627L10.1825%2017.0213C10.0017%2017.2019%209.79076%2017.2923%209.54976%2017.2923C9.30876%2017.2923%209.09785%2017.2019%208.91701%2017.0213L4.74201%2012.8463C4.59335%2012.6974%204.52001%2012.5208%204.52201%2012.3163C4.52385%2012.1119%204.60235%2011.9322%204.75751%2011.777C4.91268%2011.6219%205.09085%2011.5443%205.29201%2011.5443C5.49335%2011.5443%205.6716%2011.6219%205.82676%2011.777L9.54976%2015.5155Z%22%20stroke%3D%22none%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E");
73
+ }
74
+
75
+ @utility mask-exclamation {
76
+ mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M11.9997%2014.0386C11.7871%2014.0386%2011.609%2013.9667%2011.4655%2013.8228C11.3218%2013.6792%2011.25%2013.5011%2011.25%2013.2886V6.28857C11.25%206.07607%2011.3219%205.89791%2011.4658%205.75407C11.6096%205.61041%2011.7878%205.53857%2012.0003%205.53857C12.2129%205.53857%2012.391%205.61041%2012.5345%205.75407C12.6782%205.89791%2012.75%206.07607%2012.75%206.28857V13.2886C12.75%2013.5011%2012.6781%2013.6792%2012.5342%2013.8228C12.3904%2013.9667%2012.2122%2014.0386%2011.9997%2014.0386ZM11.9997%2018.4616C11.7871%2018.4616%2011.609%2018.3897%2011.4655%2018.2458C11.3218%2018.102%2011.25%2017.9238%2011.25%2017.7113C11.25%2017.4987%2011.3219%2017.3206%2011.4658%2017.1771C11.6096%2017.0334%2011.7878%2016.9616%2012.0003%2016.9616C12.2129%2016.9616%2012.391%2017.0335%2012.5345%2017.1773C12.6782%2017.3212%2012.75%2017.4993%2012.75%2017.7118C12.75%2017.9245%2012.6781%2018.1026%2012.5342%2018.2461C12.3904%2018.3897%2012.2122%2018.4616%2011.9997%2018.4616Z%22%20stroke%3D%22none%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E");
77
+ }
78
+
79
+ @utility mask-triangle-filled-down {
80
+ mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M7.5559%208.5L16.4444%208.5C16.7084%208.5%2016.9251%208.59058%2017.0944%208.77175C17.2636%208.95292%2017.3481%209.16433%2017.3481%209.406C17.3481%209.4815%2017.3372%209.56067%2017.3154%209.6435C17.2937%209.72633%2017.2611%209.80542%2017.2174%209.88075L12.7636%2016.8768C12.67%2017.0141%2012.5578%2017.117%2012.4271%2017.1855C12.2963%2017.2542%2012.154%2017.2885%2012.0001%2017.2885C11.8463%2017.2885%2011.704%2017.2542%2011.5731%2017.1855C11.4425%2017.117%2011.3303%2017.0141%2011.2366%2016.8768L6.78289%209.88075C6.73923%209.80525%206.70656%209.72592%206.6849%209.64275C6.66306%209.55975%206.65214%209.4805%206.65214%209.405C6.65214%209.16317%206.73673%208.95192%206.9059%208.77125C7.07523%208.59042%207.2919%208.5%207.5559%208.5Z%22%20stroke%3D%22none%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E");
81
+ }
82
+
83
+ @utility mask-info {
84
+ mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M12.0003%2016.75C12.2129%2016.75%2012.391%2016.6781%2012.5345%2016.5343C12.6782%2016.3906%2012.75%2016.2125%2012.75%2016V11.75C12.75%2011.5375%2012.6781%2011.3593%2012.5343%2011.2155C12.3904%2011.0718%2012.2122%2011%2011.9997%2011C11.7871%2011%2011.609%2011.0718%2011.4655%2011.2155C11.3218%2011.3593%2011.25%2011.5375%2011.25%2011.75V16C11.25%2016.2125%2011.3219%2016.3906%2011.4658%2016.5343C11.6096%2016.6781%2011.7878%2016.75%2012.0003%2016.75ZM12%209.2885C12.2288%209.2885%2012.4207%209.21108%2012.5755%209.05625C12.7303%208.90142%2012.8078%208.70958%2012.8078%208.48075C12.8078%208.25192%2012.7303%208.06008%2012.5755%207.90525C12.4207%207.75058%2012.2288%207.67325%2012%207.67325C11.7712%207.67325%2011.5793%207.75058%2011.4245%207.90525C11.2697%208.06008%2011.1923%208.25192%2011.1923%208.48075C11.1923%208.70958%2011.2697%208.90142%2011.4245%209.05625C11.5793%209.21108%2011.7712%209.2885%2012%209.2885ZM12.0018%2021.5C10.6878%2021.5%209.45267%2021.2507%208.2965%2020.752C7.14033%2020.2533%206.13467%2019.5766%205.2795%2018.7218C4.42433%2017.8669%203.74725%2016.8617%203.24825%2015.706C2.74942%2014.5503%202.5%2013.3156%202.5%2012.0018C2.5%2010.6878%202.74933%209.45267%203.248%208.2965C3.74667%207.14033%204.42342%206.13467%205.27825%205.2795C6.13308%204.42433%207.13833%203.74725%208.294%203.24825C9.44967%202.74942%2010.6844%202.5%2011.9982%202.5C13.3123%202.5%2014.5473%202.74933%2015.7035%203.248C16.8597%203.74667%2017.8653%204.42342%2018.7205%205.27825C19.5757%206.13308%2020.2528%207.13833%2020.7518%208.294C21.2506%209.44967%2021.5%2010.6844%2021.5%2011.9982C21.5%2013.3123%2021.2507%2014.5473%2020.752%2015.7035C20.2533%2016.8597%2019.5766%2017.8653%2018.7218%2018.7205C17.8669%2019.5757%2016.8617%2020.2528%2015.706%2020.7518C14.5503%2021.2506%2013.3156%2021.5%2012.0018%2021.5ZM12%2020C14.2333%2020%2016.125%2019.225%2017.675%2017.675C19.225%2016.125%2020%2014.2333%2020%2012C20%209.76667%2019.225%207.875%2017.675%206.325C16.125%204.775%2014.2333%204%2012%204C9.76667%204%207.875%204.775%206.325%206.325C4.775%207.875%204%209.76667%204%2012C4%2014.2333%204.775%2016.125%206.325%2017.675C7.875%2019.225%209.76667%2020%2012%2020Z%22%20stroke%3D%22none%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E");
85
+ }
86
+
87
+ @utility mask-check-circle {
88
+ mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M10.5808%2014.1463L8.25775%2011.823C8.11925%2011.6847%207.94517%2011.6138%207.7355%2011.6105C7.526%2011.6073%207.34875%2011.6782%207.20375%2011.823C7.05892%2011.968%206.9865%2012.1437%206.9865%2012.35C6.9865%2012.5563%207.05892%2012.732%207.20375%2012.877L9.948%2015.6212C10.1288%2015.8019%2010.3398%2015.8923%2010.5808%2015.8923C10.8218%2015.8923%2011.0327%2015.8019%2011.2135%2015.6212L16.777%2010.0578C16.9153%209.91925%2016.9862%209.74517%2016.9895%209.5355C16.9927%209.326%2016.9218%209.14875%2016.777%209.00375C16.632%208.85892%2016.4563%208.7865%2016.25%208.7865C16.0437%208.7865%2015.868%208.85892%2015.723%209.00375L10.5808%2014.1463ZM12.0018%2021.5C10.6878%2021.5%209.45267%2021.2507%208.2965%2020.752C7.14033%2020.2533%206.13467%2019.5766%205.2795%2018.7218C4.42433%2017.8669%203.74725%2016.8617%203.24825%2015.706C2.74942%2014.5503%202.5%2013.3156%202.5%2012.0018C2.5%2010.6878%202.74933%209.45267%203.248%208.2965C3.74667%207.14033%204.42342%206.13467%205.27825%205.2795C6.13308%204.42433%207.13833%203.74725%208.294%203.24825C9.44967%202.74942%2010.6844%202.5%2011.9982%202.5C13.3123%202.5%2014.5473%202.74933%2015.7035%203.248C16.8597%203.74667%2017.8653%204.42342%2018.7205%205.27825C19.5757%206.13308%2020.2528%207.13833%2020.7518%208.294C21.2506%209.44967%2021.5%2010.6844%2021.5%2011.9982C21.5%2013.3123%2021.2507%2014.5473%2020.752%2015.7035C20.2533%2016.8597%2019.5766%2017.8653%2018.7218%2018.7205C17.8669%2019.5757%2016.8617%2020.2528%2015.706%2020.7518C14.5503%2021.2506%2013.3156%2021.5%2012.0018%2021.5ZM12%2020C14.2333%2020%2016.125%2019.225%2017.675%2017.675C19.225%2016.125%2020%2014.2333%2020%2012C20%209.76667%2019.225%207.875%2017.675%206.325C16.125%204.775%2014.2333%204%2012%204C9.76667%204%207.875%204.775%206.325%206.325C4.775%207.875%204%209.76667%204%2012C4%2014.2333%204.775%2016.125%206.325%2017.675C7.875%2019.225%209.76667%2020%2012%2020Z%22%20stroke%3D%22none%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E");
89
+ }
90
+
91
+ @utility mask-report {
92
+ mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M12%2016.7115C12.2288%2016.7115%2012.4207%2016.6341%2012.5755%2016.4793C12.7303%2016.3244%2012.8078%2016.1326%2012.8078%2015.9038C12.8078%2015.6749%2012.7303%2015.4831%2012.5755%2015.3283C12.4207%2015.1736%2012.2288%2015.0963%2012%2015.0963C11.7712%2015.0963%2011.5793%2015.1736%2011.4245%2015.3283C11.2697%2015.4831%2011.1923%2015.6749%2011.1923%2015.9038C11.1923%2016.1326%2011.2697%2016.3244%2011.4245%2016.4793C11.5793%2016.6341%2011.7712%2016.7115%2012%2016.7115ZM12.0003%2013.2308C12.2129%2013.2308%2012.391%2013.1589%2012.5345%2013.0152C12.6782%2012.8714%2012.75%2012.6933%2012.75%2012.4808V7.94225C12.75%207.72975%2012.6781%207.55167%2012.5343%207.408C12.3904%207.26417%2012.2122%207.19225%2011.9997%207.19225C11.7871%207.19225%2011.609%207.26417%2011.4655%207.408C11.3218%207.55167%2011.25%207.72975%2011.25%207.94225V12.4808C11.25%2012.6933%2011.3219%2012.8714%2011.4658%2013.0152C11.6096%2013.1589%2011.7878%2013.2308%2012.0003%2013.2308ZM9.20975%2020.5C8.96575%2020.5%208.73325%2020.4532%208.51225%2020.3595C8.29125%2020.266%208.09875%2020.1372%207.93475%2019.973L4.027%2016.0652C3.86283%2015.9012%203.734%2015.7088%203.6405%2015.4878C3.54683%2015.2668%203.5%2015.0342%203.5%2014.7902V9.20975C3.5%208.96575%203.54683%208.73325%203.6405%208.51225C3.734%208.29125%203.86283%208.09875%204.027%207.93475L7.93475%204.027C8.09875%203.86283%208.29125%203.734%208.51225%203.6405C8.73325%203.54683%208.96575%203.5%209.20975%203.5H14.7902C15.0342%203.5%2015.2668%203.54683%2015.4878%203.6405C15.7088%203.734%2015.9012%203.86283%2016.0652%204.027L19.973%207.93475C20.1372%208.09875%2020.266%208.29125%2020.3595%208.51225C20.4532%208.73325%2020.5%208.96575%2020.5%209.20975V14.7902C20.5%2015.0342%2020.4532%2015.2668%2020.3595%2015.4878C20.266%2015.7088%2020.1372%2015.9012%2019.973%2016.0652L16.0652%2019.973C15.9012%2020.1372%2015.7088%2020.266%2015.4878%2020.3595C15.2668%2020.4532%2015.0342%2020.5%2014.7902%2020.5H9.20975ZM9.1%2019H14.9L19%2014.9V9.1L14.9%205H9.1L5%209.1V14.9L9.1%2019Z%22%20stroke%3D%22none%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E");
93
+ }
94
+
95
+ @utility mask-warning {
96
+ mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M3.42558%2020.4998C3.25608%2020.4998%203.10383%2020.4584%202.96883%2020.3756C2.83383%2020.2927%202.72891%2020.1835%202.65408%2020.0478C2.57608%2019.9131%202.53316%2019.7673%202.52533%2019.6103C2.5175%2019.4533%202.55983%2019.2978%202.65233%2019.1438L11.2131%204.35581C11.3057%204.20181%2011.4216%204.08798%2011.5606%204.01431C11.6997%203.94064%2011.8462%203.90381%2012.0001%203.90381C12.1539%203.90381%2012.3004%203.94064%2012.4396%204.01431C12.5786%204.08798%2012.6944%204.20181%2012.7871%204.35581L21.3478%2019.1438C21.4403%2019.2978%2021.4827%2019.4533%2021.4748%2019.6103C21.467%2019.7673%2021.4241%2019.9131%2021.3461%2020.0478C21.2712%2020.1835%2021.1663%2020.2927%2021.0313%2020.3756C20.8963%2020.4584%2020.7441%2020.4998%2020.5746%2020.4998H3.42558ZM4.45008%2018.9998H19.5501L12.0001%205.99981L4.45008%2018.9998ZM12.0001%2017.8076C12.2289%2017.8076%2012.4207%2017.7301%2012.5756%2017.5753C12.7304%2017.4205%2012.8078%2017.2286%2012.8078%2016.9998C12.8078%2016.771%2012.7304%2016.5791%2012.5756%2016.4243C12.4207%2016.2695%2012.2289%2016.1921%2012.0001%2016.1921C11.7712%2016.1921%2011.5794%2016.2695%2011.4246%2016.4243C11.2697%2016.5791%2011.1923%2016.771%2011.1923%2016.9998C11.1923%2017.2286%2011.2697%2017.4205%2011.4246%2017.5753C11.5794%2017.7301%2011.7712%2017.8076%2012.0001%2017.8076ZM12.0003%2015.1921C12.213%2015.1921%2012.3911%2015.1202%2012.5346%2014.9766C12.6782%2014.8327%2012.7501%2014.6546%2012.7501%2014.4421V10.9421C12.7501%2010.7296%2012.6782%2010.5515%2012.5343%2010.4078C12.3905%2010.264%2012.2123%2010.1921%2011.9998%2010.1921C11.7872%2010.1921%2011.6091%2010.264%2011.4656%2010.4078C11.3219%2010.5515%2011.2501%2010.7296%2011.2501%2010.9421V14.4421C11.2501%2014.6546%2011.322%2014.8327%2011.4658%2014.9766C11.6097%2015.1202%2011.7878%2015.1921%2012.0003%2015.1921Z%22%20stroke%3D%22none%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E");
97
+ }
98
+
99
+ @utility mask-info-filled {
100
+ mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M12.0003%2016.75C12.2129%2016.75%2012.391%2016.6781%2012.5345%2016.5343C12.6782%2016.3906%2012.75%2016.2125%2012.75%2016V11.75C12.75%2011.5375%2012.6781%2011.3593%2012.5343%2011.2155C12.3904%2011.0718%2012.2122%2011%2011.9997%2011C11.7871%2011%2011.609%2011.0718%2011.4655%2011.2155C11.3218%2011.3593%2011.25%2011.5375%2011.25%2011.75V16C11.25%2016.2125%2011.3219%2016.3906%2011.4658%2016.5343C11.6096%2016.6781%2011.7878%2016.75%2012.0003%2016.75ZM12%209.2885C12.2288%209.2885%2012.4207%209.21108%2012.5755%209.05625C12.7303%208.90142%2012.8078%208.70958%2012.8078%208.48075C12.8078%208.25192%2012.7303%208.06008%2012.5755%207.90525C12.4207%207.75058%2012.2288%207.67325%2012%207.67325C11.7712%207.67325%2011.5793%207.75058%2011.4245%207.90525C11.2697%208.06008%2011.1923%208.25192%2011.1923%208.48075C11.1923%208.70958%2011.2697%208.90142%2011.4245%209.05625C11.5793%209.21108%2011.7712%209.2885%2012%209.2885ZM12.0018%2021.5C10.6878%2021.5%209.45267%2021.2507%208.2965%2020.752C7.14033%2020.2533%206.13467%2019.5766%205.2795%2018.7218C4.42433%2017.8669%203.74725%2016.8617%203.24825%2015.706C2.74942%2014.5503%202.5%2013.3156%202.5%2012.0018C2.5%2010.6878%202.74933%209.45267%203.248%208.2965C3.74667%207.14033%204.42342%206.13467%205.27825%205.2795C6.13308%204.42433%207.13833%203.74725%208.294%203.24825C9.44967%202.74942%2010.6844%202.5%2011.9982%202.5C13.3123%202.5%2014.5473%202.74933%2015.7035%203.248C16.8597%203.74667%2017.8653%204.42342%2018.7205%205.27825C19.5757%206.13308%2020.2528%207.13833%2020.7518%208.294C21.2506%209.44967%2021.5%2010.6844%2021.5%2011.9982C21.5%2013.3123%2021.2507%2014.5473%2020.752%2015.7035C20.2533%2016.8597%2019.5766%2017.8653%2018.7218%2018.7205C17.8669%2019.5757%2016.8617%2020.2528%2015.706%2020.7518C14.5503%2021.2506%2013.3156%2021.5%2012.0018%2021.5Z%22%20stroke%3D%22none%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E");
101
+ }
102
+
103
+ @utility mask-check-circle-filled {
104
+ mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M10.5808%2016.2538L17.3038%209.53075L16.25%208.477L10.5808%2014.1463L7.73075%2011.2963L6.677%2012.35L10.5808%2016.2538ZM12.0018%2021.5C10.6878%2021.5%209.45267%2021.2507%208.2965%2020.752C7.14033%2020.2533%206.13467%2019.5766%205.2795%2018.7218C4.42433%2017.8669%203.74725%2016.8617%203.24825%2015.706C2.74942%2014.5503%202.5%2013.3156%202.5%2012.0018C2.5%2010.6878%202.74933%209.45267%203.248%208.2965C3.74667%207.14033%204.42342%206.13467%205.27825%205.2795C6.13308%204.42433%207.13833%203.74725%208.294%203.24825C9.44967%202.74942%2010.6844%202.5%2011.9982%202.5C13.3123%202.5%2014.5473%202.74933%2015.7035%203.248C16.8597%203.74667%2017.8653%204.42342%2018.7205%205.27825C19.5757%206.13308%2020.2528%207.13833%2020.7518%208.294C21.2506%209.44967%2021.5%2010.6844%2021.5%2011.9982C21.5%2013.3123%2021.2507%2014.5473%2020.752%2015.7035C20.2533%2016.8597%2019.5766%2017.8653%2018.7218%2018.7205C17.8669%2019.5757%2016.8617%2020.2528%2015.706%2020.7518C14.5503%2021.2506%2013.3156%2021.5%2012.0018%2021.5Z%22%20stroke%3D%22none%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E");
105
+ }
106
+
107
+ @utility mask-report-filled {
108
+ mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M12%2016.7115C12.2288%2016.7115%2012.4207%2016.6341%2012.5755%2016.4793C12.7303%2016.3244%2012.8078%2016.1326%2012.8078%2015.9038C12.8078%2015.6749%2012.7303%2015.4831%2012.5755%2015.3283C12.4207%2015.1736%2012.2288%2015.0963%2012%2015.0963C11.7712%2015.0963%2011.5793%2015.1736%2011.4245%2015.3283C11.2697%2015.4831%2011.1923%2015.6749%2011.1923%2015.9038C11.1923%2016.1326%2011.2697%2016.3244%2011.4245%2016.4793C11.5793%2016.6341%2011.7712%2016.7115%2012%2016.7115ZM12.0003%2013.2308C12.2129%2013.2308%2012.391%2013.1589%2012.5345%2013.0152C12.6782%2012.8714%2012.75%2012.6933%2012.75%2012.4808V7.94225C12.75%207.72975%2012.6781%207.55167%2012.5343%207.408C12.3904%207.26417%2012.2122%207.19225%2011.9997%207.19225C11.7871%207.19225%2011.609%207.26417%2011.4655%207.408C11.3218%207.55167%2011.25%207.72975%2011.25%207.94225V12.4808C11.25%2012.6933%2011.3219%2012.8714%2011.4658%2013.0152C11.6096%2013.1589%2011.7878%2013.2308%2012.0003%2013.2308ZM9.20975%2020.5C8.96575%2020.5%208.73325%2020.4532%208.51225%2020.3595C8.29125%2020.266%208.09875%2020.1372%207.93475%2019.973L4.027%2016.0652C3.86283%2015.9012%203.734%2015.7088%203.6405%2015.4878C3.54683%2015.2668%203.5%2015.0342%203.5%2014.7902V9.20975C3.5%208.96575%203.54683%208.73325%203.6405%208.51225C3.734%208.29125%203.86283%208.09875%204.027%207.93475L7.93475%204.027C8.09875%203.86283%208.29125%203.734%208.51225%203.6405C8.73325%203.54683%208.96575%203.5%209.20975%203.5H14.7902C15.0342%203.5%2015.2668%203.54683%2015.4878%203.6405C15.7088%203.734%2015.9012%203.86283%2016.0652%204.027L19.973%207.93475C20.1372%208.09875%2020.266%208.29125%2020.3595%208.51225C20.4532%208.73325%2020.5%208.96575%2020.5%209.20975V14.7902C20.5%2015.0342%2020.4532%2015.2668%2020.3595%2015.4878C20.266%2015.7088%2020.1372%2015.9012%2019.973%2016.0652L16.0652%2019.973C15.9012%2020.1372%2015.7088%2020.266%2015.4878%2020.3595C15.2668%2020.4532%2015.0342%2020.5%2014.7902%2020.5H9.20975Z%22%20stroke%3D%22none%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E");
109
+ }
110
+
111
+ @utility mask-warning-filled {
112
+ mask-image: url("data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%3Cpath%20d%3D%22M3.42558%2020.4998C3.25608%2020.4998%203.10383%2020.4584%202.96883%2020.3756C2.83383%2020.2927%202.72891%2020.1835%202.65408%2020.0478C2.57608%2019.9131%202.53316%2019.7673%202.52533%2019.6103C2.5175%2019.4533%202.55983%2019.2978%202.65233%2019.1438L11.2131%204.35581C11.3057%204.20181%2011.4216%204.08798%2011.5606%204.01431C11.6997%203.94064%2011.8462%203.90381%2012.0001%203.90381C12.1539%203.90381%2012.3004%203.94064%2012.4396%204.01431C12.5786%204.08798%2012.6944%204.20181%2012.7871%204.35581L21.3478%2019.1438C21.4403%2019.2978%2021.4827%2019.4533%2021.4748%2019.6103C21.467%2019.7673%2021.4241%2019.9131%2021.3461%2020.0478C21.2712%2020.1835%2021.1663%2020.2927%2021.0313%2020.3756C20.8963%2020.4584%2020.7441%2020.4998%2020.5746%2020.4998H3.42558ZM12.0001%2017.8076C12.2289%2017.8076%2012.4207%2017.7301%2012.5756%2017.5753C12.7304%2017.4205%2012.8078%2017.2286%2012.8078%2016.9998C12.8078%2016.771%2012.7304%2016.5791%2012.5756%2016.4243C12.4207%2016.2695%2012.2289%2016.1921%2012.0001%2016.1921C11.7712%2016.1921%2011.5794%2016.2695%2011.4246%2016.4243C11.2697%2016.5791%2011.1923%2016.771%2011.1923%2016.9998C11.1923%2017.2286%2011.2697%2017.4205%2011.4246%2017.5753C11.5794%2017.7301%2011.7712%2017.8076%2012.0001%2017.8076ZM12.0003%2015.1921C12.213%2015.1921%2012.3911%2015.1202%2012.5346%2014.9766C12.6782%2014.8327%2012.7501%2014.6546%2012.7501%2014.4421V10.9421C12.7501%2010.7296%2012.6782%2010.5515%2012.5343%2010.4078C12.3905%2010.264%2012.2123%2010.1921%2011.9998%2010.1921C11.7872%2010.1921%2011.6091%2010.264%2011.4656%2010.4078C11.3219%2010.5515%2011.2501%2010.7296%2011.2501%2010.9421V14.4421C11.2501%2014.6546%2011.322%2014.8327%2011.4658%2014.9766C11.6097%2015.1202%2011.7878%2015.1921%2012.0003%2015.1921Z%22%20stroke%3D%22none%22%20fill%3D%22currentColor%22%2F%3E%0A%3C%2Fsvg%3E");
113
+ }
114
+
115
+ @utility mask-squircle {
116
+ mask-image: url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 0C20 0 0 20 0 100s20 100 100 100 100-20 100-100S180 0 100 0Z'/%3e%3c/svg%3e");
117
+ }
118
+
119
+ @utility mask-circle {
120
+ mask-image: url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='100' cy='100' r='100'/%3e%3c/svg%3e");
121
+ }
122
+
123
+ /* Hover states & effects */
124
+ @utility include-border-secondary {
125
+ @apply border border-line-highlight hover:border-line-strong disabled:border-line-default;
126
+ }
127
+
128
+ @utility include-border-bg-secondary {
129
+ @apply backdrop-blur include-border-secondary bg-background-surface active:bg-background-surface-elevated;
130
+ }
131
+
132
+ @utility include-border-destructive {
133
+ @apply border backdrop-blur bg-background-surface border-line-error/50 hover:border-line-error disabled:border-line-default active:bg-background-surface-elevated;
134
+ }
135
+
136
+ @utility include-hover-primary-active {
137
+ &::before {
138
+ @apply content-[''] opacity-100 scale-y-100 translate-y-0 bg-brand-default/10;
139
+ }
140
+ }
141
+
142
+ @utility include-hover-primary-active-filled {
143
+ @apply font-medium text-text-inverted;
144
+ &::before {
145
+ @apply content-[''] opacity-100 scale-y-100 translate-y-0 bg-brand-default;
146
+ }
147
+ }
148
+
149
+ @utility include-hover-primary-hover {
150
+ &::before {
151
+ @apply content-[''] opacity-100 scale-y-100 translate-y-0;
152
+ }
153
+ }
154
+
155
+ @utility include-hover-primary {
156
+ @apply relative;
157
+ > * {
158
+ @apply relative z-10;
159
+ }
160
+ &::before {
161
+ @apply content-[''] rounded-[inherit] absolute z-0 inset-0 scale-y-0 translate-y-2 transition-[scale,translate,opacity] duration-75 opacity-0 bg-brand-default/10 ease-out-expo;
162
+ }
163
+ &:hover {
164
+ @apply include-hover-primary-hover;
165
+ }
166
+ &:active::before {
167
+ @apply opacity-75;
168
+ }
169
+ }
170
+
171
+ /* Loading */
172
+ /* .include-loading {
173
+ @apply absolute content-[''] size-5 animate-spin bg-contain bg-center;
174
+ background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20%3E%3Cpath%20d%3D%22M12%2022C17.5228%2022%2022%2017.5228%2022%2012C22%206.47715%2017.5228%202%2012%202C6.47715%202%202%206.47715%202%2012C2%2017.5228%206.47715%2022%2012%2022Z%22%20stroke%3D%22currentColor%22%20stroke-opacity%3D%220.2%22%20stroke-width%3D%224%22%2F%3E%3Cpath%20d%3D%22M4%2012C4%209.87827%204.84285%207.84344%206.34315%206.34315C7.84344%204.84285%209.87827%204%2012%204V0C5.373%200%200%205.373%200%2012H4ZM6%2017.291C4.70821%2015.8316%203.99661%2013.949%204%2012H0C0%2015.042%201.135%2017.824%203%2019.938L6%2017.291Z%22%20fill%3D%22currentColor%22%2F%3E%3C%2Fsvg%3E");
175
+ } */
176
+
177
+ /*
178
+ @layer components {
179
+ :where(.button, .badge, .checkbox, .radio, .switch, .tooltip, .tab-item) {
180
+ @apply interactive;
181
+ }
182
+ } */
183
+
184
+ .stepper,
185
+ .countdown {
186
+ --height: 16px;
187
+ > * {
188
+ @apply h-(--height)!;
189
+ }
190
+
191
+ > span {
192
+ mask-size: cover;
193
+ mask-repeat: repeat-x;
194
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUwIiBoZWlnaHQ9IjI1MCIgdmlld0JveD0iMCAwIDI1MCAyNTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTAiIGhlaWdodD0iMjUwIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMzQyXzMxMjcpIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzQyXzMxMjciIHgxPSIxMjUiIHkxPSIwIiB4Mj0iMTI1IiB5Mj0iMjUwIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIHN0b3Atb3BhY2l0eT0iMCIvPgo8c3RvcCBvZmZzZXQ9IjAuMDkiLz4KPHN0b3Agb2Zmc2V0PSIwLjg4NSIvPgo8c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=");
195
+ }
196
+ &.text-7xl {
197
+ --height: 72px;
198
+ }
199
+ &.text-6xl {
200
+ --height: 60px;
201
+ }
202
+ &.text-5xl {
203
+ --height: 48px;
204
+ }
205
+ &.text-4xl {
206
+ --height: 36px;
207
+ }
208
+ &.text-3xl {
209
+ --height: 30px;
210
+ }
211
+ &.text-2xl {
212
+ --height: 24px;
213
+ }
214
+ &.text-xl {
215
+ --height: 20px;
216
+ }
217
+ &.text-lg {
218
+ --height: 18px;
219
+ }
220
+ &.text-sm {
221
+ --height: 14px;
222
+ }
223
+ &.text-xs {
224
+ --height: 12px;
225
+ }
226
+ }
@@ -0,0 +1,34 @@
1
+ /*----------------------------*/
2
+ /* SKELETON */
3
+ /*----------------------------*/
4
+
5
+ @utility skeleton {
6
+ @apply relative overflow-clip bg-transparent!;
7
+ > * {
8
+ @apply opacity-0 pointer-events-none;
9
+ }
10
+ &::before {
11
+ --tw-gradient-stops: var(--tw-gradient-from) 40%, var(--tw-gradient-to) 50% var(--tw-gradient-via-position),
12
+ var(--tw-gradient-from) 60% !important;
13
+ @apply content-['']
14
+ absolute inset-0
15
+ overflow-hidden
16
+ bg-text-default/0
17
+ from-text-default/5
18
+ to-text-default/10
19
+ bg-[linear-gradient(280deg,var(--tw-gradient-stops))]
20
+ bg-size-[800px_100%]
21
+ bg-position-[-200%_center]
22
+ bg-repeat
23
+ animate-[skeleton-loading_4s_linear_infinite];
24
+ }
25
+ }
26
+
27
+ @keyframes skeleton-loading {
28
+ 0% {
29
+ background-position: -800px 0;
30
+ }
31
+ 100% {
32
+ background-position: 800px 0;
33
+ }
34
+ }
@@ -0,0 +1,150 @@
1
+ /*----------------------------*/
2
+ /* STATE */
3
+ /*----------------------------*/
4
+
5
+ @property --state-progress {
6
+ syntax: "<percentage>";
7
+ inherits: false;
8
+ initial-value: calc(0 * 1%);
9
+ }
10
+
11
+ @utility state {
12
+ @apply py-12 mx-auto max-w-md text-center;
13
+
14
+ /* Alignment variants */
15
+ &.state-left {
16
+ @apply text-left;
17
+ .state-icon {
18
+ @apply mx-0;
19
+ }
20
+ .state-actions {
21
+ @apply justify-start mx-0;
22
+ }
23
+ }
24
+ &.state-right {
25
+ @apply text-right;
26
+ .state-icon {
27
+ @apply mx-0;
28
+ }
29
+ .state-actions {
30
+ @apply justify-end mx-0;
31
+ }
32
+ }
33
+
34
+ /* Icon container */
35
+ .state-icon {
36
+ @apply inline-flex relative justify-center items-center mx-0 mb-4 rounded-full size-24;
37
+
38
+ &::before {
39
+ @apply content-[''] absolute inset-0 rounded-full mask;
40
+ }
41
+
42
+ /* Center alignment */
43
+ .state-center & {
44
+ @apply mx-auto;
45
+ }
46
+ /* Icon image */
47
+ img {
48
+ @apply w-full aspect-square;
49
+ }
50
+ }
51
+ /* Animated variant */
52
+ &.has-animation {
53
+ .state-icon {
54
+ @apply border-none;
55
+
56
+ &::before {
57
+ @apply content-[''] absolute z-10 inset-0 rounded-full;
58
+ background: conic-gradient(currentColor var(--state-progress), transparent 0);
59
+ mask: radial-gradient(farthest-side, transparent calc(100% - 1.5px), #fff 0);
60
+ animation: circle-progress 1.2s cubic-bezier(0.86, 0, 0.07, 1) forwards;
61
+ }
62
+
63
+ img {
64
+ @apply animate-fire-in;
65
+ animation-delay: 850ms;
66
+ }
67
+ &::after {
68
+ @apply content-[''] absolute z-0 inset-0 rounded-full border border-line-default animate-ripple-out;
69
+ animation-delay: 1350ms;
70
+ }
71
+ }
72
+
73
+ > *:not(.state-icon) {
74
+ @apply animate-success-in-top;
75
+ &:nth-child(1) {
76
+ animation-delay: 200ms;
77
+ }
78
+ &:nth-child(2) {
79
+ animation-delay: 600ms;
80
+ }
81
+ &:nth-child(3) {
82
+ animation-delay: 800ms;
83
+ }
84
+ &:nth-child(4) {
85
+ animation-delay: 1000ms;
86
+ }
87
+ }
88
+ }
89
+
90
+ /* Variants */
91
+ &.state-success {
92
+ .state-icon {
93
+ @apply surface-success;
94
+ &::before {
95
+ @apply text-line-success;
96
+ }
97
+ }
98
+ }
99
+
100
+ &.state-error {
101
+ .state-icon {
102
+ @apply surface-error;
103
+ &::before {
104
+ @apply text-line-error;
105
+ }
106
+ }
107
+ }
108
+
109
+ &.state-info {
110
+ .state-icon {
111
+ @apply bg-brand-soft;
112
+ &::before {
113
+ @apply text-brand-default;
114
+ }
115
+ }
116
+ }
117
+
118
+ &.state-warning {
119
+ .state-icon {
120
+ @apply surface-warning;
121
+ &::before {
122
+ @apply text-line-warning;
123
+ }
124
+ }
125
+ }
126
+
127
+ /* Title */
128
+ .state-title {
129
+ @apply mb-2 h3 text-balance font-heading font-bold;
130
+ }
131
+
132
+ /* Description */
133
+ .state-description {
134
+ @apply mb-4 p2 text-balance;
135
+ }
136
+
137
+ /* Actions */
138
+ .state-actions {
139
+ @apply flex flex-col gap-2 justify-center mx-auto mt-4 md:flex-row;
140
+ }
141
+ }
142
+
143
+ @keyframes circle-progress {
144
+ from {
145
+ --state-progress: 0%;
146
+ }
147
+ to {
148
+ --state-progress: 100%;
149
+ }
150
+ }