@bunnix/components 0.9.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 (152) hide show
  1. package/@types/index.d.ts +269 -0
  2. package/LICENSE +7 -0
  3. package/README.md +184 -0
  4. package/package.json +53 -0
  5. package/src/components/AccordionGroup.mjs +37 -0
  6. package/src/components/Badge.mjs +49 -0
  7. package/src/components/Button.mjs +76 -0
  8. package/src/components/Checkbox.mjs +36 -0
  9. package/src/components/ComboBox.mjs +44 -0
  10. package/src/components/Container.mjs +27 -0
  11. package/src/components/DatePicker.mjs +251 -0
  12. package/src/components/Dialog.mjs +166 -0
  13. package/src/components/DropdownMenu.mjs +110 -0
  14. package/src/components/Grid.mjs +40 -0
  15. package/src/components/HStack.mjs +34 -0
  16. package/src/components/Icon.mjs +32 -0
  17. package/src/components/InputField.mjs +78 -0
  18. package/src/components/NavigationBar.mjs +47 -0
  19. package/src/components/PageHeader.mjs +13 -0
  20. package/src/components/PageSection.mjs +20 -0
  21. package/src/components/PopoverMenu.mjs +87 -0
  22. package/src/components/RadioCheckbox.mjs +36 -0
  23. package/src/components/SearchBox.mjs +207 -0
  24. package/src/components/Sidebar.mjs +187 -0
  25. package/src/components/Table.mjs +254 -0
  26. package/src/components/Text.mjs +38 -0
  27. package/src/components/TimePicker.mjs +172 -0
  28. package/src/components/ToastNotification.mjs +105 -0
  29. package/src/components/ToggleSwitch.mjs +26 -0
  30. package/src/components/VStack.mjs +35 -0
  31. package/src/icons/add-circle.svg +1 -0
  32. package/src/icons/add.svg +1 -0
  33. package/src/icons/alt.svg +1 -0
  34. package/src/icons/archive.svg +1 -0
  35. package/src/icons/at.svg +1 -0
  36. package/src/icons/attestation.svg +1 -0
  37. package/src/icons/bell.svg +4 -0
  38. package/src/icons/bookmark.svg +1 -0
  39. package/src/icons/bot.svg +1 -0
  40. package/src/icons/button.svg +1 -0
  41. package/src/icons/calculate.svg +1 -0
  42. package/src/icons/calendar.svg +1 -0
  43. package/src/icons/chart.svg +1 -0
  44. package/src/icons/check.svg +1 -0
  45. package/src/icons/chevron-down.svg +1 -0
  46. package/src/icons/chevron-left.svg +1 -0
  47. package/src/icons/chevron-right.svg +1 -0
  48. package/src/icons/clip.svg +1 -0
  49. package/src/icons/clock.svg +4 -0
  50. package/src/icons/close-circle.svg +4 -0
  51. package/src/icons/close.svg +1 -0
  52. package/src/icons/cloud-download.svg +1 -0
  53. package/src/icons/cloud-upload.svg +1 -0
  54. package/src/icons/cloud.svg +1 -0
  55. package/src/icons/columns-layout.svg +1 -0
  56. package/src/icons/command.svg +1 -0
  57. package/src/icons/cube.svg +1 -0
  58. package/src/icons/delete.svg +4 -0
  59. package/src/icons/dollar.svg +4 -0
  60. package/src/icons/download.svg +1 -0
  61. package/src/icons/draw.svg +1 -0
  62. package/src/icons/duplicate.svg +4 -0
  63. package/src/icons/edit.svg +1 -0
  64. package/src/icons/exclamation-mark.svg +1 -0
  65. package/src/icons/eye-open.svg +1 -0
  66. package/src/icons/eye.svg +1 -0
  67. package/src/icons/file-html.svg +1 -0
  68. package/src/icons/file.svg +4 -0
  69. package/src/icons/finger.svg +1 -0
  70. package/src/icons/flag.svg +1 -0
  71. package/src/icons/folder.svg +1 -0
  72. package/src/icons/function.svg +1 -0
  73. package/src/icons/gear.svg +1 -0
  74. package/src/icons/gift.svg +1 -0
  75. package/src/icons/globe.svg +4 -0
  76. package/src/icons/grid.svg +1 -0
  77. package/src/icons/hand.svg +1 -0
  78. package/src/icons/heart.svg +4 -0
  79. package/src/icons/home.svg +4 -0
  80. package/src/icons/image.svg +1 -0
  81. package/src/icons/inbox.svg +4 -0
  82. package/src/icons/info.svg +1 -0
  83. package/src/icons/key.svg +1 -0
  84. package/src/icons/lamp.svg +1 -0
  85. package/src/icons/link.svg +1 -0
  86. package/src/icons/location.svg +1 -0
  87. package/src/icons/locker.svg +1 -0
  88. package/src/icons/login.svg +1 -0
  89. package/src/icons/logout.svg +4 -0
  90. package/src/icons/mail.svg +4 -0
  91. package/src/icons/map.svg +4 -0
  92. package/src/icons/markup.svg +1 -0
  93. package/src/icons/merge.svg +1 -0
  94. package/src/icons/more-horizontal.svg +5 -0
  95. package/src/icons/more-vertical.svg +5 -0
  96. package/src/icons/mouse.svg +1 -0
  97. package/src/icons/palette.svg +1 -0
  98. package/src/icons/password.svg +1 -0
  99. package/src/icons/pencil.svg +1 -0
  100. package/src/icons/people.svg +4 -0
  101. package/src/icons/person-add.svg +1 -0
  102. package/src/icons/person-remove.svg +1 -0
  103. package/src/icons/person.svg +5 -0
  104. package/src/icons/pin.svg +1 -0
  105. package/src/icons/question-circle.svg +4 -0
  106. package/src/icons/remove-circle.svg +1 -0
  107. package/src/icons/return-arrow.svg +2 -0
  108. package/src/icons/save.svg +1 -0
  109. package/src/icons/search.svg +1 -0
  110. package/src/icons/sections.svg +1 -0
  111. package/src/icons/send.svg +1 -0
  112. package/src/icons/share.svg +1 -0
  113. package/src/icons/shine.svg +1 -0
  114. package/src/icons/sliders.svg +1 -0
  115. package/src/icons/star.svg +4 -0
  116. package/src/icons/storage.svg +1 -0
  117. package/src/icons/success-circle.svg +4 -0
  118. package/src/icons/swap.svg +1 -0
  119. package/src/icons/switch.svg +1 -0
  120. package/src/icons/sync.svg +4 -0
  121. package/src/icons/table.svg +4 -0
  122. package/src/icons/tag.svg +4 -0
  123. package/src/icons/terminal.svg +1 -0
  124. package/src/icons/text.svg +1 -0
  125. package/src/icons/thumb-down.svg +1 -0
  126. package/src/icons/thumb-up.svg +1 -0
  127. package/src/icons/timer.svg +4 -0
  128. package/src/icons/toggle.svg +1 -0
  129. package/src/icons/trash.svg +1 -0
  130. package/src/icons/update-page.svg +1 -0
  131. package/src/icons/upload.svg +1 -0
  132. package/src/icons/video.svg +1 -0
  133. package/src/icons/wallet.svg +1 -0
  134. package/src/icons/window.svg +1 -0
  135. package/src/index.mjs +29 -0
  136. package/src/styles/accordion.css +70 -0
  137. package/src/styles/buttons.css +118 -0
  138. package/src/styles/colors.css +131 -0
  139. package/src/styles/controls.css +504 -0
  140. package/src/styles/datepicker.css +140 -0
  141. package/src/styles/interactable.css +16 -0
  142. package/src/styles/layout.css +444 -0
  143. package/src/styles/links.css +38 -0
  144. package/src/styles/main.css +16 -0
  145. package/src/styles/media.css +155 -0
  146. package/src/styles/menu.css +168 -0
  147. package/src/styles/motion.css +66 -0
  148. package/src/styles/table.css +78 -0
  149. package/src/styles/timepicker.css +87 -0
  150. package/src/styles/typography.css +94 -0
  151. package/src/styles/variables.css +218 -0
  152. package/src/styles.css +1 -0
@@ -0,0 +1,444 @@
1
+ * {
2
+ box-sizing: border-box;
3
+ }
4
+
5
+ body {
6
+ margin: var(--body-margin);
7
+ height: 100vh; /* Ensure body takes full height for layout */
8
+ }
9
+
10
+ a {
11
+ display: inline-flex;
12
+ flex-direction: row;
13
+ align-items: center;
14
+ gap: var(--base-gap);
15
+ }
16
+
17
+ .spacer-h {
18
+ margin: 0 auto;
19
+ flex: 1;
20
+ }
21
+
22
+ .spacer-v {
23
+ margin: auto 0;
24
+ flex: 1;
25
+ }
26
+
27
+ .box {
28
+ display: flex;
29
+ flex-direction: row;
30
+ width: 100%;
31
+ padding: var(--base-padding);
32
+ gap: var(--base-gap);
33
+ }
34
+
35
+ .box-sm {
36
+ display: flex;
37
+ flex-direction: row;
38
+ width: 100%;
39
+ padding: calc(var(--base-padding) * 0.25) var(--base-padding);
40
+ gap: var(--base-gap);
41
+ }
42
+
43
+ .box-capsule {
44
+ width: 100%;
45
+ padding: calc(var(--base-padding) * 0.5) var(--base-padding);
46
+ border-radius: var(--base-radius);
47
+ }
48
+
49
+ .box-control {
50
+ width: 100%;
51
+ padding: calc(var(--base-padding) * 0.5) var(--base-padding);
52
+ border-radius: var(--min-control-radius);
53
+ }
54
+
55
+ /* New Layout Classes */
56
+ .main-container {
57
+ display: flex;
58
+ height: 100dvh; /* Dynamic viewport height for mobile support */
59
+ width: 100vw;
60
+ }
61
+
62
+ .column-container {
63
+ display: flex;
64
+ flex-direction: column;
65
+ }
66
+
67
+ .row-container {
68
+ display: flex;
69
+ flex-direction: row;
70
+ align-items: center;
71
+ }
72
+
73
+ .relative {
74
+ position: relative;
75
+ }
76
+
77
+ .inline-flex {
78
+ display: inline-flex;
79
+ }
80
+
81
+ .grid-flow {
82
+ display: flex;
83
+ flex-wrap: wrap;
84
+ flex-direction: row;
85
+ gap: var(--base-gap);
86
+ }
87
+
88
+ .sidebar {
89
+ display: flex;
90
+ flex-direction: column;
91
+ width: var(--sidebar-width);
92
+ height: 100%;
93
+ overflow-y: auto;
94
+ }
95
+
96
+ .main-content {
97
+ flex: 1;
98
+ height: 100%;
99
+ overflow-y: auto;
100
+ }
101
+
102
+ nav,
103
+ .nav {
104
+ display: flex;
105
+ flex-direction: row;
106
+ padding: var(--base-padding);
107
+ }
108
+
109
+ /* Utilities created for Colors Page refactor */
110
+ .page-layout {
111
+ gap: var(--base-padding);
112
+ padding: var(--base-padding);
113
+ }
114
+
115
+ .card {
116
+ align-items: center;
117
+ border: 1px solid var(--border-color);
118
+ border-radius: var(--min-control-radius);
119
+ padding: calc(var(--base-padding) * 0.5);
120
+ }
121
+
122
+ .gap-xs {
123
+ gap: calc(var(--base-gap) * 0.5);
124
+ }
125
+
126
+ .gap-sm {
127
+ gap: var(--base-gap);
128
+ }
129
+
130
+ .gap-md {
131
+ gap: calc(var(--base-gap) * 2);
132
+ }
133
+
134
+ .gap-lg {
135
+ gap: calc(var(--base-gap) * 3);
136
+ }
137
+
138
+ .items-center {
139
+ align-items: center;
140
+ }
141
+
142
+ .items-start {
143
+ align-items: flex-start;
144
+ }
145
+
146
+ .items-end {
147
+ align-items: flex-end;
148
+ }
149
+
150
+ .items-stretch {
151
+ align-items: stretch;
152
+ }
153
+
154
+ .justify-start {
155
+ justify-content: flex-start !important;
156
+ text-align: left;
157
+ }
158
+
159
+ .justify-center {
160
+ justify-content: center !important;
161
+ text-align: center;
162
+ }
163
+
164
+ .justify-end {
165
+ justify-content: flex-end !important;
166
+ text-align: right;
167
+ }
168
+
169
+ .shrink-0 {
170
+ flex-shrink: 0;
171
+ }
172
+
173
+ .no-margin {
174
+ margin: 0;
175
+ }
176
+
177
+ .m-md {
178
+ margin: var(--base-padding);
179
+ }
180
+
181
+ .w-fit {
182
+ width: fit-content;
183
+ }
184
+
185
+ .hidden {
186
+ display: none !important;
187
+ }
188
+
189
+ .shadow {
190
+ box-shadow: var(--shadow-base);
191
+ }
192
+
193
+ /* New Utilities for Layout Page */
194
+ .w-full {
195
+ width: 100%;
196
+ }
197
+
198
+ .h-full {
199
+ height: 100%;
200
+ }
201
+
202
+ .w-300 {
203
+ min-width: 300px;
204
+ }
205
+
206
+ .w-200 {
207
+ min-width: 200px;
208
+ }
209
+
210
+ .max-w-100 {
211
+ max-width: 100px;
212
+ }
213
+
214
+ .max-w-200 {
215
+ max-width: 200px;
216
+ }
217
+
218
+ .max-w-300 {
219
+ max-width: 300px;
220
+ }
221
+
222
+ .max-w-400 {
223
+ max-width: 400px;
224
+ }
225
+
226
+ .w-150 {
227
+ width: 150px;
228
+ }
229
+
230
+ .w-min-150 {
231
+ min-width: 150px;
232
+ }
233
+
234
+ .w-40 {
235
+ width: 40px;
236
+ }
237
+
238
+ .h-40 {
239
+ height: 40px;
240
+ }
241
+
242
+ .h-200 {
243
+ height: 200px;
244
+ }
245
+
246
+ .p-xs {
247
+ padding: calc(var(--base-padding) * 0.15) calc(var(--base-padding) * 0.5);
248
+ }
249
+
250
+ .p-sm {
251
+ padding: calc(var(--base-padding) * 0.5);
252
+ }
253
+
254
+ .pt-sm {
255
+ padding-top: calc(var(--base-padding) * 0.5) !important;
256
+ }
257
+
258
+ .pb-sm {
259
+ padding-bottom: calc(var(--base-padding) * 0.5) !important;
260
+ }
261
+
262
+ .p-base {
263
+ padding: var(--base-padding) !important;
264
+ }
265
+
266
+ .p-lg {
267
+ padding: calc(var(--base-padding) * 1.5) !important;
268
+ }
269
+
270
+ .p-xl {
271
+ padding: calc(var(--base-padding) * 2) !important;
272
+ }
273
+
274
+ .px-base {
275
+ padding-left: var(--base-padding) !important;
276
+ padding-right: var(--base-padding) !important;
277
+ }
278
+
279
+ .p-0 {
280
+ padding: 0;
281
+ }
282
+
283
+ .py-xs {
284
+ padding-top: calc(var(--base-gap) * 0.5);
285
+ padding-bottom: calc(var(--base-gap) * 0.5);
286
+ }
287
+
288
+ .py-md {
289
+ padding-top: calc(var(--base-gap) * 2);
290
+ padding-bottom: calc(var(--base-gap) * 2);
291
+ }
292
+
293
+ .pb-lg {
294
+ padding-bottom: calc(var(--base-gap) * 4) !important;
295
+ }
296
+
297
+ .pb-md {
298
+ padding-bottom: calc(var(--base-gap) * 2) !important;
299
+ }
300
+
301
+ .pt-md {
302
+ padding-top: calc(var(--base-gap) * 2) !important;
303
+ }
304
+
305
+ .pl-md {
306
+ padding-left: calc(var(--base-padding) * 1.5) !important;
307
+ }
308
+
309
+ .pr-md {
310
+ padding-right: calc(var(--base-padding) * 1.5) !important;
311
+ }
312
+
313
+ .px-md {
314
+ padding-left: calc(var(--base-padding) * 1.5) !important;
315
+ padding-right: calc(var(--base-padding) * 1.5) !important;
316
+ }
317
+
318
+ .ml-auto {
319
+ margin-left: auto !important;
320
+ }
321
+
322
+ .rotate-180 {
323
+ transform: rotate(180deg);
324
+ }
325
+
326
+ .transition-transform {
327
+ transition: transform 0.2s ease;
328
+ }
329
+
330
+ .rounded {
331
+ border-radius: var(--base-radius);
332
+ }
333
+
334
+ .rounded-sm {
335
+ border-radius: calc(var(--base-radius) * 0.5);
336
+ }
337
+
338
+ .rounded-full {
339
+ border-radius: 1rem !important;
340
+ }
341
+
342
+ .border-dashed {
343
+ border: 1px dashed var(--border-color);
344
+ }
345
+
346
+ .border-solid {
347
+ border: 1px solid var(--border-color);
348
+ }
349
+
350
+ .overflow-hidden {
351
+ overflow: hidden;
352
+ }
353
+
354
+ .overflow-auto {
355
+ overflow: auto;
356
+ }
357
+
358
+ .select-none {
359
+ user-select: none;
360
+ }
361
+
362
+ .sticky-top {
363
+ position: sticky;
364
+ top: var(--sticky-offset, 0);
365
+ z-index: 10;
366
+ }
367
+
368
+ .z-99 {
369
+ z-index: 99 !important;
370
+ }
371
+
372
+ /* Position Utilities */
373
+ .fixed {
374
+ position: fixed;
375
+ }
376
+
377
+ .inset-auto {
378
+ inset: auto;
379
+ }
380
+
381
+ .inset-0 {
382
+ inset: 0;
383
+ }
384
+
385
+ .top-md {
386
+ top: var(--base-padding);
387
+ }
388
+
389
+ .right-md {
390
+ right: var(--base-padding);
391
+ }
392
+
393
+ .bottom-md {
394
+ bottom: var(--base-padding);
395
+ }
396
+
397
+ .left-md {
398
+ left: var(--base-padding);
399
+ }
400
+
401
+ .top-lg {
402
+ top: calc(var(--base-padding) * 2);
403
+ }
404
+
405
+ .right-lg {
406
+ right: calc(var(--base-padding) * 2);
407
+ }
408
+
409
+ .bottom-lg {
410
+ bottom: calc(var(--base-padding) * 2);
411
+ }
412
+
413
+ .left-lg {
414
+ left: calc(var(--base-padding) * 2);
415
+ }
416
+
417
+ /* Popover Reset (opt-in) */
418
+ .popover-base {
419
+ margin: 0;
420
+ padding: 0;
421
+ border: none;
422
+ outline: none;
423
+ }
424
+
425
+ .dialog-base {
426
+ margin: 0;
427
+ padding: 0;
428
+ border: none;
429
+ outline: none;
430
+ background: transparent;
431
+ display: none;
432
+ }
433
+
434
+ .dialog-base[open] {
435
+ display: flex;
436
+ }
437
+
438
+ .dialog-backdrop::backdrop {
439
+ background-color: rgba(0, 0, 0, 0.4);
440
+ }
441
+
442
+ .overflow-visible {
443
+ overflow: visible !important;
444
+ }
@@ -0,0 +1,38 @@
1
+ a {
2
+ text-decoration: none;
3
+ cursor: pointer;
4
+ color: var(--accent-color-dimmed); /* Default link color (moved from colors.css if it was there, or explicitly set here) */
5
+ }
6
+
7
+ a:visited {
8
+ color: var(--accent-color-dimmed); /* Reset visited color */
9
+ }
10
+
11
+ a:hover {
12
+ text-decoration: none;
13
+ color: var(--accent-color);
14
+ }
15
+
16
+ .link-flat {
17
+ color: var(--color-primary-dimmed);
18
+ }
19
+
20
+ .link-flat:visited {
21
+ color: var(--color-primary-dimmed);
22
+ }
23
+
24
+ .link-flat:hover {
25
+ color: var(--color-primary);
26
+ }
27
+
28
+ .link-destructive {
29
+ color: var(--color-destructive-dimmed);
30
+ }
31
+
32
+ .link-destructive:visited {
33
+ color: var(--color-destructive-dimmed);
34
+ }
35
+
36
+ .link-destructive:hover {
37
+ color: var(--color-destructive);
38
+ }
@@ -0,0 +1,16 @@
1
+ @import "./variables.css";
2
+ @import "./typography.css";
3
+ @import "./layout.css";
4
+ @import "./controls.css";
5
+ @import "./buttons.css";
6
+ @import "./menu.css";
7
+ @import "./datepicker.css";
8
+ @import "./timepicker.css";
9
+ @import "./table.css";
10
+ @import "./accordion.css";
11
+ @import "./datepicker.css";
12
+ @import "./links.css";
13
+ @import "./media.css";
14
+ @import "./interactable.css";
15
+ @import "./colors.css";
16
+ @import "./motion.css";
@@ -0,0 +1,155 @@
1
+ .icon {
2
+ background-color: currentColor; /* Inherit text color for masking */
3
+ -webkit-mask-repeat: no-repeat;
4
+ mask-repeat: no-repeat;
5
+ -webkit-mask-size: 1.2rem 1.2rem;
6
+ mask-size: 1.2rem 1.2rem;
7
+ height: 1.2rem;
8
+ width: 1.2rem;
9
+ display: inline-block;
10
+ vertical-align: text-bottom;
11
+ }
12
+
13
+ /* Icon Sizes */
14
+ .icon-xs {
15
+ -webkit-mask-size: .85rem .85rem;
16
+ mask-size: .85rem .85rem;
17
+ height: .85rem;
18
+ width: .85rem;
19
+ }
20
+
21
+ .icon-sm {
22
+ -webkit-mask-size: 1rem 1rem;
23
+ mask-size: 1rem 1rem;
24
+ height: 1rem;
25
+ width: 1rem;
26
+ }
27
+
28
+ .icon-lg {
29
+ -webkit-mask-size: 1.5rem 1.5rem;
30
+ mask-size: 1.5rem 1.5rem;
31
+ height: 1.5rem;
32
+ width: 1.5rem;
33
+ }
34
+
35
+ .icon-xl {
36
+ -webkit-mask-size: 2rem 2rem;
37
+ mask-size: 2rem 2rem;
38
+ height: 2rem;
39
+ width: 2rem;
40
+ }
41
+
42
+ /* Icon Class Mapping */
43
+ .icon-add-circle { -webkit-mask-image: var(--svg-add-circle); mask-image: var(--svg-add-circle); }
44
+ .icon-add { -webkit-mask-image: var(--svg-add); mask-image: var(--svg-add); }
45
+ .icon-alt { -webkit-mask-image: var(--svg-alt); mask-image: var(--svg-alt); }
46
+ .icon-archive { -webkit-mask-image: var(--svg-archive); mask-image: var(--svg-archive); }
47
+ .icon-at { -webkit-mask-image: var(--svg-at); mask-image: var(--svg-at); }
48
+ .icon-attestation { -webkit-mask-image: var(--svg-attestation); mask-image: var(--svg-attestation); }
49
+ .icon-bell { -webkit-mask-image: var(--svg-bell); mask-image: var(--svg-bell); }
50
+ .icon-bookmark { -webkit-mask-image: var(--svg-bookmark); mask-image: var(--svg-bookmark); }
51
+ .icon-bot { -webkit-mask-image: var(--svg-bot); mask-image: var(--svg-bot); }
52
+ .icon-button { -webkit-mask-image: var(--svg-button); mask-image: var(--svg-button); }
53
+ .icon-calculate { -webkit-mask-image: var(--svg-calculate); mask-image: var(--svg-calculate); }
54
+ .icon-calendar { -webkit-mask-image: var(--svg-calendar); mask-image: var(--svg-calendar); }
55
+ .icon-chart { -webkit-mask-image: var(--svg-chart); mask-image: var(--svg-chart); }
56
+ .icon-check { -webkit-mask-image: var(--svg-check); mask-image: var(--svg-check); }
57
+ .icon-chevron-down { -webkit-mask-image: var(--svg-chevron-down); mask-image: var(--svg-chevron-down); }
58
+ .icon-chevron-left { -webkit-mask-image: var(--svg-chevron-left); mask-image: var(--svg-chevron-left); }
59
+ .icon-chevron-right { -webkit-mask-image: var(--svg-chevron-right); mask-image: var(--svg-chevron-right); }
60
+ .icon-clip { -webkit-mask-image: var(--svg-clip); mask-image: var(--svg-clip); }
61
+ .icon-clock { -webkit-mask-image: var(--svg-clock); mask-image: var(--svg-clock); }
62
+ .icon-close-circle { -webkit-mask-image: var(--svg-close-circle); mask-image: var(--svg-close-circle); }
63
+ .icon-close { -webkit-mask-image: var(--svg-close); mask-image: var(--svg-close); }
64
+ .icon-cloud-download { -webkit-mask-image: var(--svg-cloud-download); mask-image: var(--svg-cloud-download); }
65
+ .icon-cloud-upload { -webkit-mask-image: var(--svg-cloud-upload); mask-image: var(--svg-cloud-upload); }
66
+ .icon-cloud { -webkit-mask-image: var(--svg-cloud); mask-image: var(--svg-cloud); }
67
+ .icon-columns-layout { -webkit-mask-image: var(--svg-columns-layout); mask-image: var(--svg-columns-layout); }
68
+ .icon-cube { -webkit-mask-image: var(--svg-cube); mask-image: var(--svg-cube); }
69
+ .icon-delete { -webkit-mask-image: var(--svg-delete); mask-image: var(--svg-delete); }
70
+ .icon-dollar { -webkit-mask-image: var(--svg-dollar); mask-image: var(--svg-dollar); }
71
+ .icon-download { -webkit-mask-image: var(--svg-download); mask-image: var(--svg-download); }
72
+ .icon-duplicate { -webkit-mask-image: var(--svg-duplicate); mask-image: var(--svg-duplicate); }
73
+ .icon-edit { -webkit-mask-image: var(--svg-edit); mask-image: var(--svg-edit); }
74
+ .icon-exclamation-mark { -webkit-mask-image: var(--svg-exclamation-mark); mask-image: var(--svg-exclamation-mark); }
75
+ .icon-eye-open { -webkit-mask-image: var(--svg-eye-open); mask-image: var(--svg-eye-open); }
76
+ .icon-eye { -webkit-mask-image: var(--svg-eye); mask-image: var(--svg-eye); }
77
+ .icon-file-html { -webkit-mask-image: var(--svg-file-html); mask-image: var(--svg-file-html); }
78
+ .icon-file { -webkit-mask-image: var(--svg-file); mask-image: var(--svg-file); }
79
+ .icon-finger { -webkit-mask-image: var(--svg-finger); mask-image: var(--svg-finger); }
80
+ .icon-flag { -webkit-mask-image: var(--svg-flag); mask-image: var(--svg-flag); }
81
+ .icon-folder { -webkit-mask-image: var(--svg-folder); mask-image: var(--svg-folder); }
82
+ .icon-function { -webkit-mask-image: var(--svg-function); mask-image: var(--svg-function); }
83
+ .icon-gear { -webkit-mask-image: var(--svg-gear); mask-image: var(--svg-gear); }
84
+ .icon-gift { -webkit-mask-image: var(--svg-gift); mask-image: var(--svg-gift); }
85
+ .icon-globe { -webkit-mask-image: var(--svg-globe); mask-image: var(--svg-globe); }
86
+ .icon-grid { -webkit-mask-image: var(--svg-grid); mask-image: var(--svg-grid); }
87
+ .icon-hand { -webkit-mask-image: var(--svg-hand); mask-image: var(--svg-hand); }
88
+ .icon-heart { -webkit-mask-image: var(--svg-heart); mask-image: var(--svg-heart); }
89
+ .icon-home { -webkit-mask-image: var(--svg-home); mask-image: var(--svg-home); }
90
+ .icon-image { -webkit-mask-image: var(--svg-image); mask-image: var(--svg-image); }
91
+ .icon-inbox { -webkit-mask-image: var(--svg-inbox); mask-image: var(--svg-inbox); }
92
+ .icon-info { -webkit-mask-image: var(--svg-info); mask-image: var(--svg-info); }
93
+ .icon-key { -webkit-mask-image: var(--svg-key); mask-image: var(--svg-key); }
94
+ .icon-lamp { -webkit-mask-image: var(--svg-lamp); mask-image: var(--svg-lamp); }
95
+ .icon-link { -webkit-mask-image: var(--svg-link); mask-image: var(--svg-link); }
96
+ .icon-location { -webkit-mask-image: var(--svg-location); mask-image: var(--svg-location); }
97
+ .icon-locker { -webkit-mask-image: var(--svg-locker); mask-image: var(--svg-locker); }
98
+ .icon-login { -webkit-mask-image: var(--svg-login); mask-image: var(--svg-login); }
99
+ .icon-logout { -webkit-mask-image: var(--svg-logout); mask-image: var(--svg-logout); }
100
+ .icon-mail { -webkit-mask-image: var(--svg-mail); mask-image: var(--svg-mail); }
101
+ .icon-map { -webkit-mask-image: var(--svg-map); mask-image: var(--svg-map); }
102
+ .icon-markup { -webkit-mask-image: var(--svg-markup); mask-image: var(--svg-markup); }
103
+ .icon-merge { -webkit-mask-image: var(--svg-merge); mask-image: var(--svg-merge); }
104
+ .icon-more-horizontal { -webkit-mask-image: var(--svg-more-horizontal); mask-image: var(--svg-more-horizontal); }
105
+ .icon-more-vertical { -webkit-mask-image: var(--svg-more-vertical); mask-image: var(--svg-more-vertical); }
106
+ .icon-mouse { -webkit-mask-image: var(--svg-mouse); mask-image: var(--svg-mouse); }
107
+ .icon-palette { -webkit-mask-image: var(--svg-palette); mask-image: var(--svg-palette); }
108
+ .icon-password { -webkit-mask-image: var(--svg-password); mask-image: var(--svg-password); }
109
+ .icon-pencil { -webkit-mask-image: var(--svg-pencil); mask-image: var(--svg-pencil); }
110
+ .icon-people { -webkit-mask-image: var(--svg-people); mask-image: var(--svg-people); }
111
+ .icon-person-add { -webkit-mask-image: var(--svg-person-add); mask-image: var(--svg-person-add); }
112
+ .icon-person-remove { -webkit-mask-image: var(--svg-person-remove); mask-image: var(--svg-person-remove); }
113
+ .icon-person { -webkit-mask-image: var(--svg-person); mask-image: var(--svg-person); }
114
+ .icon-pin { -webkit-mask-image: var(--svg-pin); mask-image: var(--svg-pin); }
115
+ .icon-question-circle { -webkit-mask-image: var(--svg-question-circle); mask-image: var(--svg-question-circle); }
116
+ .icon-remove-circle { -webkit-mask-image: var(--svg-remove-circle); mask-image: var(--svg-remove-circle); }
117
+ .icon-return-arrow { -webkit-mask-image: var(--svg-return-arrow); mask-image: var(--svg-return-arrow); }
118
+ .icon-save { -webkit-mask-image: var(--svg-save); mask-image: var(--svg-save); }
119
+ .icon-search { -webkit-mask-image: var(--svg-search); mask-image: var(--svg-search); }
120
+ .icon-sections { -webkit-mask-image: var(--svg-sections); mask-image: var(--svg-sections); }
121
+ .icon-send { -webkit-mask-image: var(--svg-send); mask-image: var(--svg-send); }
122
+ .icon-share { -webkit-mask-image: var(--svg-share); mask-image: var(--svg-share); }
123
+ .icon-shine { -webkit-mask-image: var(--svg-shine); mask-image: var(--svg-shine); }
124
+ .icon-sliders { -webkit-mask-image: var(--svg-sliders); mask-image: var(--svg-sliders); }
125
+ .icon-star { -webkit-mask-image: var(--svg-star); mask-image: var(--svg-star); }
126
+ .icon-storage { -webkit-mask-image: var(--svg-storage); mask-image: var(--svg-storage); }
127
+ .icon-success-circle { -webkit-mask-image: var(--svg-success-circle); mask-image: var(--svg-success-circle); }
128
+ .icon-swap { -webkit-mask-image: var(--svg-swap); mask-image: var(--svg-swap); }
129
+ .icon-switch { -webkit-mask-image: var(--svg-switch); mask-image: var(--svg-switch); }
130
+ .icon-sync { -webkit-mask-image: var(--svg-sync); mask-image: var(--svg-sync); }
131
+ .icon-table { -webkit-mask-image: var(--svg-table); mask-image: var(--svg-table); }
132
+ .icon-tag { -webkit-mask-image: var(--svg-tag); mask-image: var(--svg-tag); }
133
+ .icon-text { -webkit-mask-image: var(--svg-text); mask-image: var(--svg-text); }
134
+ .icon-terminal { -webkit-mask-image: var(--svg-terminal); mask-image: var(--svg-terminal); }
135
+ .icon-thumb-down { -webkit-mask-image: var(--svg-thumb-down); mask-image: var(--svg-thumb-down); }
136
+ .icon-thumb-up { -webkit-mask-image: var(--svg-thumb-up); mask-image: var(--svg-thumb-up); }
137
+ .icon-timer { -webkit-mask-image: var(--svg-timer); mask-image: var(--svg-timer); }
138
+ .icon-toggle { -webkit-mask-image: var(--svg-toggle); mask-image: var(--svg-toggle); }
139
+ .icon-trash { -webkit-mask-image: var(--svg-trash); mask-image: var(--svg-trash); }
140
+ .icon-update-page { -webkit-mask-image: var(--svg-update-page); mask-image: var(--svg-update-page); }
141
+ .icon-upload { -webkit-mask-image: var(--svg-upload); mask-image: var(--svg-upload); }
142
+ .icon-video { -webkit-mask-image: var(--svg-video); mask-image: var(--svg-video); }
143
+ .icon-wallet { -webkit-mask-image: var(--svg-wallet); mask-image: var(--svg-wallet); }
144
+ .icon-window { -webkit-mask-image: var(--svg-window); mask-image: var(--svg-window); }
145
+ .icon-command { -webkit-mask-image: var(--svg-command); mask-image: var(--svg-command); }
146
+ .icon-draw { -webkit-mask-image: var(--svg-draw); mask-image: var(--svg-draw); }
147
+ .icon-gear { -webkit-mask-image: var(--svg-gear); mask-image: var(--svg-gear); }
148
+
149
+ .swatch {
150
+ width: 3rem;
151
+ height: 3rem;
152
+ border-radius: var(--base-radius);
153
+ border: 1px solid rgba(0,0,0,0.1);
154
+ flex-shrink: 0;
155
+ }