@ttoss/theme 1.7.18 → 1.7.20

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.
@@ -1,927 +0,0 @@
1
- /** Powered by @ttoss/config. https://ttoss.dev/docs/modules/packages/config/ */
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __commonJS = (cb, mod) => function __require() {
9
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {
10
- exports: {}
11
- }).exports, mod), mod.exports;
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
21
- };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
- value: mod,
29
- enumerable: true
30
- }) : target, mod));
31
-
32
- // ../../node_modules/.pnpm/@iconify+icons-eos-icons@1.2.6/node_modules/@iconify/icons-eos-icons/loading.js
33
- var require_loading = __commonJS({
34
- "../../node_modules/.pnpm/@iconify+icons-eos-icons@1.2.6/node_modules/@iconify/icons-eos-icons/loading.js"(exports) {
35
- "use strict";
36
-
37
- var data = {
38
- "width": 24,
39
- "height": 24,
40
- "body": '<path fill="currentColor" d="M12 2A10 10 0 1 0 22 12A10 10 0 0 0 12 2Zm0 18a8 8 0 1 1 8-8A8 8 0 0 1 12 20Z" opacity=".5"/><path fill="currentColor" d="M20 12h2A10 10 0 0 0 12 2V4A8 8 0 0 1 20 12Z"><animateTransform attributeName="transform" dur="1s" from="0 12 12" repeatCount="indefinite" to="360 12 12" type="rotate"/></path>'
41
- };
42
- exports.__esModule = true;
43
- exports.default = data;
44
- }
45
- });
46
-
47
- // ../../node_modules/.pnpm/@iconify+icons-mdi@1.2.48/node_modules/@iconify/icons-mdi/success-circle.js
48
- var require_success_circle = __commonJS({
49
- "../../node_modules/.pnpm/@iconify+icons-mdi@1.2.48/node_modules/@iconify/icons-mdi/success-circle.js"(exports) {
50
- "use strict";
51
-
52
- var data = {
53
- "width": 24,
54
- "height": 24,
55
- "body": '<path fill="currentColor" d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10s10-4.5 10-10S17.5 2 12 2m-2 15l-5-5l1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9Z"/>'
56
- };
57
- exports.__esModule = true;
58
- exports.default = data;
59
- }
60
- });
61
-
62
- // ../../node_modules/.pnpm/@iconify+icons-eos-icons@1.2.6/node_modules/@iconify/icons-eos-icons/three-dots-loading.js
63
- var require_three_dots_loading = __commonJS({
64
- "../../node_modules/.pnpm/@iconify+icons-eos-icons@1.2.6/node_modules/@iconify/icons-eos-icons/three-dots-loading.js"(exports) {
65
- "use strict";
66
-
67
- var data = {
68
- "width": 24,
69
- "height": 24,
70
- "body": '<circle cx="18" cy="12" r="0" fill="currentColor"><animate attributeName="r" begin=".67" calcMode="spline" dur="1.5s" keySplines="0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8" repeatCount="indefinite" values="0;2;0;0"/></circle><circle cx="12" cy="12" r="0" fill="currentColor"><animate attributeName="r" begin=".33" calcMode="spline" dur="1.5s" keySplines="0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8" repeatCount="indefinite" values="0;2;0;0"/></circle><circle cx="6" cy="12" r="0" fill="currentColor"><animate attributeName="r" begin="0" calcMode="spline" dur="1.5s" keySplines="0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8" repeatCount="indefinite" values="0;2;0;0"/></circle>'
71
- };
72
- exports.__esModule = true;
73
- exports.default = data;
74
- }
75
- });
76
-
77
- // src/themes/Bruttal/BruttalIcons.ts
78
- var import_loading = __toESM(require_loading(), 1);
79
- var import_success_circle = __toESM(require_success_circle(), 1);
80
- var import_three_dots_loading = __toESM(require_three_dots_loading(), 1);
81
- import { addIcon } from "@ttoss/react-icons";
82
- import addFilledIcon from "@iconify/icons-carbon/add-filled.js";
83
- import arrowRightIcon from "@iconify/icons-carbon/arrow-right.js";
84
- import arrowUpRightIcon from "@iconify/icons-carbon/arrow-up-right.js";
85
- import attachmentIcon from "@iconify/icons-carbon/attachment.js";
86
- import calendarIcon from "@iconify/icons-carbon/calendar.js";
87
- import caretDownIcon from "@iconify/icons-carbon/caret-down.js";
88
- import caretUpIcon from "@iconify/icons-carbon/caret-up.js";
89
- import checkMarkIcon from "@iconify/icons-carbon/checkmark.js";
90
- import checkMarkOutlineIcon from "@iconify/icons-carbon/checkmark-outline.js";
91
- import checkboxCheckedFilled from "@iconify/icons-carbon/checkbox-checked-filled.js";
92
- import checkboxIcon from "@iconify/icons-carbon/checkbox.js";
93
- import checkboxIndeterminateFilledIcon from "@iconify/icons-carbon/checkbox-indeterminate-filled.js";
94
- import chevronDownIcon from "@iconify/icons-carbon/chevron-down.js";
95
- import chevronLeftIcon from "@iconify/icons-carbon/chevron-left.js";
96
- import chevronRightIcon from "@iconify/icons-carbon/chevron-right.js";
97
- import chevronUpIcon from "@iconify/icons-carbon/chevron-up.js";
98
- import closeFilledIcon from "@iconify/icons-carbon/close-filled.js";
99
- import closeIcon from "@iconify/icons-carbon/close.js";
100
- import copyIcon from "@iconify/icons-carbon/copy.js";
101
- import downloadIcon from "@iconify/icons-carbon/download.js";
102
- import editIcon from "@iconify/icons-carbon/edit.js";
103
- import emailIcon from "@iconify/icons-carbon/email.js";
104
- import errorFilledIcon from "@iconify/icons-carbon/error-filled.js";
105
- import informationFilledIcon from "@iconify/icons-carbon/information-filled.js";
106
- import languageIcon from "@iconify/icons-carbon/language.js";
107
- import menuIcon from "@iconify/icons-carbon/menu.js";
108
- import pasteIcon from "@iconify/icons-carbon/paste.js";
109
- import radioButtonCheckedIcon from "@iconify/icons-carbon/radio-button-checked.js";
110
- import radioButtonIcon from "@iconify/icons-carbon/radio-button.js";
111
- import renewIcon from "@iconify/icons-carbon/renew.js";
112
- import searchIcon from "@iconify/icons-carbon/search.js";
113
- import shareIcon from "@iconify/icons-carbon/share.js";
114
- import timeIcon from "@iconify/icons-carbon/time.js";
115
- import trashCanIcon from "@iconify/icons-carbon/trash-can.js";
116
- import uploadIcon from "@iconify/icons-carbon/upload.js";
117
- import userAvatarFilledAltIcon from "@iconify/icons-carbon/user-avatar-filled-alt.js";
118
- import viewFilledIcon from "@iconify/icons-carbon/view-filled.js";
119
- import viewOffFilledIcon from "@iconify/icons-carbon/view-off-filled.js";
120
- import warningAltIcon from "@iconify/icons-carbon/warning-alt.js";
121
- import warningFilledIcon from "@iconify/icons-carbon/warning-filled.js";
122
- var replicateIcon = {
123
- body: `<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
124
- <path d="M42 15V42H15V15H42ZM42 12H15C14.2044 12 13.4413 12.3161 12.8787 12.8787C12.3161 13.4413 12 14.2044 12 15V42C12 42.7956 12.3161 43.5587 12.8787 44.1213C13.4413 44.6839 14.2044 45 15 45H42C42.7956 45 43.5587 44.6839 44.1213 44.1213C44.6839 43.5587 45 42.7956 45 42V15C45 14.2044 44.6839 13.4413 44.1213 12.8787C43.5587 12.3161 42.7956 12 42 12Z" fill="currentColor"/>
125
- <path fill-rule="evenodd" clip-rule="evenodd" d="M3 5.76389C3 4.23744 4.26071 3 5.81588 3H29V5.57963H5.81588C5.71221 5.57963 5.62816 5.66213 5.62816 5.76389V28.994C5.62816 29.0957 5.71221 29.1782 5.81588 29.1782H22.2607L18.7784 25.7602L20.6368 23.9361L27.2916 30.4681L20.6368 37L18.7784 35.1759L22.2607 31.7579H5.81588C4.26071 31.7579 3 30.5204 3 28.994V5.76389Z" fill="currentColor"/>
126
- </svg>`,
127
- width: 48,
128
- height: 48
129
- };
130
- var subtractIcon = {
131
- body: `<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
132
- <path d="M14 26H34V22H14V26ZM24 44C21.2333 44 18.6333 43.4747 16.2 42.424C13.7667 41.3733 11.65 39.9487 9.85 38.15C8.05 36.35 6.62533 34.2333 5.576 31.8C4.52667 29.3667 4.00133 26.7667 4 24C4 21.2333 4.52533 18.6333 5.576 16.2C6.62667 13.7667 8.05133 11.65 9.85 9.85C11.65 8.05 13.7667 6.62533 16.2 5.576C18.6333 4.52667 21.2333 4.00133 24 4C26.7667 4 29.3667 4.52533 31.8 5.576C34.2333 6.62667 36.35 8.05133 38.15 9.85C39.95 11.65 41.3753 13.7667 42.426 16.2C43.4767 18.6333 44.0013 21.2333 44 24C44 26.7667 43.4747 29.3667 42.424 31.8C41.3733 34.2333 39.9487 36.35 38.15 38.15C36.35 39.95 34.2333 41.3753 31.8 42.426C29.3667 43.4767 26.7667 44.0013 24 44Z" fill="black"/>
133
- </svg>
134
- `,
135
- width: 48,
136
- height: 48
137
- };
138
- var BrutalIcons = {
139
- add: addFilledIcon,
140
- "arrow-right": arrowRightIcon,
141
- attachment: attachmentIcon,
142
- avatar: userAvatarFilledAltIcon,
143
- "caret-down": caretDownIcon,
144
- "caret-up": caretUpIcon,
145
- calendar: calendarIcon,
146
- "checkbox-checked": checkboxCheckedFilled,
147
- "checkbox-indeterminate": checkboxIndeterminateFilledIcon,
148
- "checkbox-unchecked": checkboxIcon,
149
- check: checkMarkIcon,
150
- "check-mark": checkMarkOutlineIcon,
151
- close: closeIcon,
152
- copy: copyIcon,
153
- download: downloadIcon,
154
- edit: editIcon,
155
- email: emailIcon,
156
- delete: trashCanIcon,
157
- error: errorFilledIcon,
158
- info: informationFilledIcon,
159
- language: languageIcon,
160
- loading: import_loading.default,
161
- "menu-open": menuIcon,
162
- "open-link": arrowUpRightIcon,
163
- paste: pasteIcon,
164
- "picker-down": chevronDownIcon,
165
- "picker-up": chevronUpIcon,
166
- "nav-left": chevronLeftIcon,
167
- "nav-right": chevronRightIcon,
168
- "radio-not-selected": radioButtonIcon,
169
- "radio-selected": radioButtonCheckedIcon,
170
- refresh: renewIcon,
171
- replicate: replicateIcon,
172
- search: searchIcon,
173
- share: shareIcon,
174
- subtract: subtractIcon,
175
- "success-circle": import_success_circle.default,
176
- "small-close": closeFilledIcon,
177
- "three-dots-loading": import_three_dots_loading.default,
178
- time: timeIcon,
179
- upload: uploadIcon,
180
- "view-off": viewOffFilledIcon,
181
- "view-on": viewFilledIcon,
182
- warning: warningFilledIcon,
183
- "warning-alt": warningAltIcon
184
- };
185
- Object.entries(BrutalIcons).forEach(([key, icon]) => {
186
- addIcon(key, icon);
187
- });
188
-
189
- // src/themes/Bruttal/BruttalFonts.ts
190
- var BruttalFonts = ["https://fonts.googleapis.com/css?family=Inconsolata:wght@100;200;300;400;500;700;800;900", "https://fonts.googleapis.com/css?family=Work+Sans:wght@0,400;0,700;1,400;1,700&display=swap", "https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:ital,wght@0,400;0,700;1,400;1,700&display=swap"];
191
-
192
- // src/helpers/geometricCalc.ts
193
- var SIZE_TYPE = "rem";
194
- var calcMultiplyingValues = (initialValue, base, ratio, sizeType = SIZE_TYPE) => {
195
- const result = initialValue * Math.pow(base, ratio);
196
- return `${result.toFixed(2)}${sizeType}`;
197
- };
198
- var calcDividingValues = (initialValue, base, ratio, sizeType = SIZE_TYPE) => {
199
- const result = initialValue / Math.pow(base, ratio);
200
- return `${result.toFixed(2)}${sizeType}`;
201
- };
202
-
203
- // src/tokens/fontSizes.ts
204
- var SIZE_TYPE2 = "rem";
205
- var BASE = 1;
206
- var MULTIPLIER_FACTOR = 1.333;
207
- var fontSizes = {
208
- "2xs": calcMultiplyingValues(BASE, MULTIPLIER_FACTOR, -3),
209
- xs: calcMultiplyingValues(BASE, MULTIPLIER_FACTOR, -2),
210
- sm: calcMultiplyingValues(BASE, MULTIPLIER_FACTOR, -1),
211
- base: `${BASE}${SIZE_TYPE2}`,
212
- lg: calcMultiplyingValues(BASE, MULTIPLIER_FACTOR, 1),
213
- xl: calcMultiplyingValues(BASE, MULTIPLIER_FACTOR, 2),
214
- "2xl": calcMultiplyingValues(BASE, MULTIPLIER_FACTOR, 3),
215
- "3xl": calcMultiplyingValues(BASE, MULTIPLIER_FACTOR, 4),
216
- "4xl": calcMultiplyingValues(BASE, MULTIPLIER_FACTOR, 5),
217
- "5xl": calcMultiplyingValues(BASE, MULTIPLIER_FACTOR, 6),
218
- "6xl": calcMultiplyingValues(BASE, MULTIPLIER_FACTOR, 7)
219
- };
220
-
221
- // src/tokens/fontWeights.ts
222
- var fontWeights = {
223
- thin: 100,
224
- extralight: 200,
225
- light: 300,
226
- normal: 400,
227
- medium: 500,
228
- semibold: 600,
229
- bold: 700,
230
- extrabold: 800
231
- };
232
-
233
- // src/tokens/letterSpacings.ts
234
- var letterSpacings = {
235
- tighter: "-0.05em",
236
- tight: "-0.025em",
237
- regular: "0em",
238
- wide: "0.05em",
239
- wider: "0.1em",
240
- widest: "0.5em"
241
- };
242
-
243
- // src/tokens/lineHeights.ts
244
- var BASE2 = 100;
245
- var MULTIPLIER_FACTOR2 = 1.333;
246
- var SIZE_TYPE3 = "%";
247
- var lineHeights = {
248
- "2xs": calcMultiplyingValues(BASE2, MULTIPLIER_FACTOR2, -3, SIZE_TYPE3),
249
- xs: calcMultiplyingValues(BASE2, MULTIPLIER_FACTOR2, -2, SIZE_TYPE3),
250
- sm: calcDividingValues(BASE2, MULTIPLIER_FACTOR2, 1, SIZE_TYPE3),
251
- base: "normal",
252
- lg: calcMultiplyingValues(BASE2, MULTIPLIER_FACTOR2, 1, SIZE_TYPE3),
253
- xl: calcMultiplyingValues(BASE2, MULTIPLIER_FACTOR2, 2, SIZE_TYPE3),
254
- "2xl": calcMultiplyingValues(BASE2, MULTIPLIER_FACTOR2, 3, SIZE_TYPE3),
255
- flat: "100%"
256
- };
257
-
258
- // src/tokens/space.ts
259
- var SIZE_TYPE4 = "rem";
260
- var MD = 0.5;
261
- var MULTIPLIER_FACTOR3 = 1.618;
262
- var space = {
263
- none: 0,
264
- "2xs": calcDividingValues(MD, MULTIPLIER_FACTOR3, 3),
265
- xs: calcDividingValues(MD, MULTIPLIER_FACTOR3, 2),
266
- sm: calcDividingValues(MD, MULTIPLIER_FACTOR3, 1),
267
- md: `${MD}${SIZE_TYPE4}`,
268
- lg: calcMultiplyingValues(MD, MULTIPLIER_FACTOR3, 1),
269
- xl: calcMultiplyingValues(MD, MULTIPLIER_FACTOR3, 2),
270
- "2xl": calcMultiplyingValues(MD, MULTIPLIER_FACTOR3, 3),
271
- "3xl": calcMultiplyingValues(MD, MULTIPLIER_FACTOR3, 4),
272
- "4xl": calcMultiplyingValues(MD, MULTIPLIER_FACTOR3, 5),
273
- "5xl": calcMultiplyingValues(MD, MULTIPLIER_FACTOR3, 6),
274
- "6xl": calcMultiplyingValues(MD, MULTIPLIER_FACTOR3, 7),
275
- "7xl": calcMultiplyingValues(MD, MULTIPLIER_FACTOR3, 8)
276
- };
277
-
278
- // src/tokens/zIndices.ts
279
- var zIndices = {
280
- deep: -9999,
281
- behind: -1,
282
- auto: "auto",
283
- base: 0,
284
- docked: 10,
285
- /**
286
- * Sticky is a CSS property that can be applied to an element to make it
287
- * "stick" or remain fixed in a specific position relative to the viewport
288
- * as the user scrolls the page. When an element is set as sticky, it will
289
- * initially behave like a normal element but once the user scrolls past a
290
- * certain threshold, it will stick to the designated position.
291
- */
292
- sticky: 100,
293
- /**
294
- * An overlay is a graphical element used in user interfaces to cover or
295
- * partially obscure the underlying content. It is typically a
296
- * semi-transparent or opaque layer that is positioned above other elements
297
- * on the screen. Overlays are commonly employed to provide visual effects,
298
- * create modal or pop-up dialogs, highlight or focus user attention, or
299
- * serve as a background for elements such as tooltips, modals, or dropdown
300
- * menus. They are often used to add depth, dimension, and visual hierarchy
301
- * to the interface by visually separating or layering content.
302
- */
303
- overlay: 1e3,
304
- /**
305
- * A modal is a user interface component that appears as a dialog or window
306
- * overlay on top of the main content, temporarily interrupting the user's
307
- * interaction flow. It is commonly used to display additional information,
308
- * request user input, or confirm an action. Modals typically have a higher
309
- * z-index value than other elements on the page to ensure they are visually
310
- * prominent and receive the user's full attention. They often feature a
311
- * close button or an overlay click outside the modal to dismiss them and
312
- * return to the underlying content. Modals help to focus user attention and
313
- * provide a context-specific interaction within a larger interface.
314
- */
315
- modal: 2e3,
316
- /**
317
- * A dropdown is a user interface component that presents a list of
318
- * selectable options when triggered by a user action, such as clicking on a
319
- * dropdown button or input field. When activated, a dropdown expands
320
- * vertically to reveal a list of choices, allowing the user to select a
321
- * single option. The selected option is then displayed in the closed state
322
- * of the dropdown. Dropdowns are commonly used to conserve space on a page
323
- * or provide a convenient way to choose from a predefined set of options.
324
- * They can be found in various contexts, such as navigation menus, form
325
- * inputs, or filter controls. Dropdowns enhance user interaction by
326
- * providing a compact and organized selection mechanism within the interface.
327
- */
328
- dropdown: 3e3,
329
- /**
330
- * A popover is a user interface component that provides contextual
331
- * information or options when triggered by a user action, such as hovering
332
- * over an element or clicking a button. It typically appears as a small
333
- * overlay near the triggering element, offering additional details, actions,
334
- * or related content. Popovers are designed to be non-intrusive and provide
335
- * concise information or quick actions without requiring the user to
336
- * navigate to a different page or screen. They are often used to enhance the
337
- * user's understanding or provide supplementary functionality within a
338
- * specific context. Popovers are commonly positioned above other elements in
339
- * the interface to ensure visibility and accessibility.
340
- */
341
- popover: 4e3,
342
- /**
343
- * A tooltip is a small, informative message or hint that appears when a user
344
- * hovers over or interacts with an element, such as a button, link, or icon.
345
- * It is typically displayed as a brief, contextual text or label that
346
- * provides additional information or clarifies the purpose of the element.
347
- * Tooltips are used to improve the user's understanding of interface
348
- * elements and enhance usability. They are generally positioned near the
349
- * associated element, often appearing as a small box or bubble that pops up
350
- * temporarily and disappears when the user moves the cursor away from the
351
- * element. Tooltips are designed to be unobtrusive and provide helpful
352
- * guidance or supplementary details without requiring the user to take any
353
- * additional actions.
354
- */
355
- tooltip: 5e3,
356
- /**
357
- * A toast is a brief, temporary notification or message that appears on the
358
- * screen to provide important information or alerts to the user. It
359
- * typically appears as a small box or banner positioned in a non-intrusive
360
- * area of the interface, such as the top or bottom of the screen. Toasts are
361
- * used to communicate updates, notifications, or status messages that may
362
- * require the user's attention but do not require immediate action. They are
363
- * designed to be unobtrusive and automatically disappear after a short
364
- * period, often with a fade-out animation. Toasts are commonly used in web
365
- * and mobile applications to provide timely feedback or inform the user
366
- * about completed actions, errors, or system updates.
367
- */
368
- toast: 6e3
369
- };
370
-
371
- // src/themes/Bruttal/BruttalTheme.ts
372
- var coreFonts = {
373
- main: '"Atkinson Hyperlegible", sans-serif',
374
- contrast: '"Work Sans", sans-serif',
375
- monospace: '"Inconsolata", sans-serif'
376
- };
377
- var brandColors = {
378
- complimentary: "#f4f3f3",
379
- main: "#292C2a",
380
- darkNeutral: "#325C82",
381
- accent: "#0469E3",
382
- lightNeutral: "#F8F8F8"
383
- };
384
- var coreColors = {
385
- ...brandColors,
386
- gray100: "#f9f9f9",
387
- gray200: "#dedede",
388
- gray300: "#c4c4c4",
389
- gray400: "#ababab",
390
- gray500: "#929292",
391
- gray600: "#7a7a7a",
392
- gray700: "#626262",
393
- gray800: "#4c4c4c",
394
- gray900: "#323232",
395
- black: "#000000",
396
- red100: "#ffebeb",
397
- red200: "#fdbfbf",
398
- red300: "#f99595",
399
- red400: "#f56c6c",
400
- red500: "#ef4444",
401
- red600: "#e42828",
402
- red700: "#c62121",
403
- white: "#ffffff",
404
- amber600: "#d97706",
405
- teal600: "#0d9488"
406
- };
407
- var coreBorders = {
408
- none: "0px solid",
409
- thin: "1px solid",
410
- medium: "2px solid",
411
- thick: "4px solid"
412
- };
413
- var coreRadii = {
414
- sharp: "0px",
415
- xs: "2px",
416
- sm: "4px",
417
- md: "6px",
418
- lg: "8px",
419
- xl: "12px",
420
- "2xl": "16px",
421
- "3xl": "24px",
422
- circle: "9999px"
423
- };
424
- var BruttalTheme = {
425
- /**
426
- * Tokens
427
- */
428
- fontSizes,
429
- fontWeights,
430
- letterSpacings,
431
- space,
432
- lineHeights,
433
- zIndices,
434
- colors: {
435
- background: coreColors.complimentary,
436
- text: coreColors.black,
437
- muted: coreColors.gray200,
438
- onMuted: coreColors.gray600,
439
- mutedOutline: coreColors.gray300,
440
- danger: coreColors.red700,
441
- onDanger: coreColors.white,
442
- notice: coreColors.amber600,
443
- onNotice: coreColors.white,
444
- positive: coreColors.teal600,
445
- onPositive: coreColors.white,
446
- surface: coreColors.white,
447
- contentHeader: coreColors.gray200,
448
- onContentHeader: coreColors.black,
449
- outline: coreColors.gray500,
450
- primary: coreColors.main,
451
- onPrimary: coreColors.white,
452
- secondary: coreColors.gray100,
453
- onSecondary: coreColors.black,
454
- highlight: coreColors.darkNeutral,
455
- onHighlight: coreColors.complimentary,
456
- accent: coreColors.accent,
457
- onAccent: coreColors.white,
458
- neutral: coreColors.darkNeutral,
459
- onNeutral: coreColors.lightNeutral,
460
- underemphasize: coreColors.gray300
461
- },
462
- fonts: {
463
- main: coreColors.main,
464
- contrast: coreFonts.contrast,
465
- body: coreFonts.main,
466
- highlight: coreFonts.main,
467
- caption: coreFonts.main
468
- },
469
- borders: {
470
- default: coreBorders.thin,
471
- secondary: coreBorders.medium,
472
- muted: coreBorders.thin,
473
- interaction: coreBorders.medium,
474
- danger: coreBorders.medium,
475
- highlight: coreBorders.medium
476
- },
477
- radii: {
478
- informative: coreRadii.xs,
479
- default: coreRadii.sm,
480
- action: coreRadii.sm
481
- },
482
- /**
483
- * Global styles
484
- */
485
- styles: {
486
- root: {
487
- fontFamily: "body",
488
- fontWeight: "normal",
489
- fontSize: "base",
490
- zIndex: "base",
491
- margin: 0,
492
- padding: 0,
493
- backgroundColor: "background",
494
- /**
495
- * HTML elements
496
- */
497
- table: {
498
- borderCollapse: "collapse"
499
- },
500
- th: {
501
- paddingX: "md",
502
- paddingY: "md"
503
- },
504
- tr: {
505
- borderBottom: "default"
506
- },
507
- td: {
508
- paddingX: "xl",
509
- paddingY: "md"
510
- }
511
- },
512
- a: {
513
- color: "text",
514
- fontFamily: "body",
515
- textDecorationLine: "underline",
516
- lineHeight: "base",
517
- "&.quiet:not(:hover)": {
518
- textDecorationLine: "none"
519
- },
520
- ":visited": {
521
- color: "highlight"
522
- }
523
- }
524
- },
525
- /**
526
- * Components
527
- */
528
- badges: {
529
- positive: {
530
- color: "onPositive",
531
- bg: "positive"
532
- },
533
- negative: {
534
- color: "onDanger",
535
- bg: "danger"
536
- },
537
- neutral: {
538
- color: "onSecondary",
539
- bg: "secondary",
540
- border: "muted",
541
- borderColor: "onMuted"
542
- },
543
- informative: {
544
- color: "onNotice",
545
- bg: "notice"
546
- },
547
- muted: {
548
- color: "onMuted",
549
- bg: "muted"
550
- }
551
- },
552
- buttons: {
553
- accent: {
554
- backgroundColor: "accent",
555
- color: "onAccent",
556
- borderRadius: "action",
557
- borderColor: "accent",
558
- ":hover:not(:active,[disabled])": {
559
- filter: "brightness(90%)"
560
- },
561
- ":disabled": {
562
- cursor: "default",
563
- backgroundColor: "muted",
564
- borderColor: "muted",
565
- color: "onMuted"
566
- }
567
- },
568
- primary: {
569
- backgroundColor: "primary",
570
- color: "onPrimary",
571
- borderRadius: "action",
572
- borderColor: "primary",
573
- ":hover:not(:active,[disabled])": {
574
- filter: "brightness(90%)"
575
- },
576
- ":active": {
577
- backgroundColor: "primary",
578
- color: "onPrimary",
579
- borderColor: "outline"
580
- },
581
- ":disabled": {
582
- cursor: "default",
583
- backgroundColor: "muted",
584
- borderColor: "muted",
585
- color: "onMuted"
586
- }
587
- },
588
- secondary: {
589
- backgroundColor: "secondary",
590
- color: "onSecondary",
591
- borderRadius: "action",
592
- border: "secondary",
593
- borderColor: "onSecondary",
594
- ":hover:not(:active,[disabled])": {
595
- filter: "brightness(90%)"
596
- },
597
- ":disabled": {
598
- cursor: "default",
599
- backgroundColor: "muted",
600
- borderColor: "muted",
601
- color: "onMuted"
602
- }
603
- },
604
- destructive: {
605
- color: "onDanger",
606
- backgroundColor: "danger",
607
- ":hover:not(:active,[disabled])": {
608
- filter: "brightness(90%)"
609
- },
610
- ":disabled": {
611
- cursor: "default",
612
- backgroundColor: "muted",
613
- borderColor: "muted",
614
- color: "onMuted"
615
- }
616
- },
617
- closeButton: {
618
- backgroundColor: "background",
619
- color: "primary",
620
- border: "default",
621
- borderColor: "primary",
622
- borderRadius: "action",
623
- ":disabled": {
624
- border: "muted",
625
- borderColor: "onMuted",
626
- backgroundColor: "muted",
627
- color: "onMuted",
628
- cursor: "not-allowed"
629
- },
630
- ":is(:focus-within, :hover):not(:disabled)": {
631
- color: "onHighlight",
632
- backgroundColor: "highlight",
633
- borderColor: "highlight"
634
- }
635
- },
636
- actionButton: {
637
- default: {
638
- backgroundColor: "secondary",
639
- color: "onSecondary",
640
- border: "default",
641
- borderColor: "onSecondary",
642
- transition: "all 0.2s",
643
- ":is(:focus-within, :hover)": {
644
- backgroundColor: "highlight",
645
- borderColor: "highlight",
646
- color: "onHighlight"
647
- }
648
- },
649
- accent: {
650
- backgroundColor: "accent",
651
- color: "onAccent",
652
- border: "none"
653
- },
654
- quiet: {
655
- backgroundColor: "transparent",
656
- color: "text",
657
- border: "none",
658
- borderColor: "transparent"
659
- }
660
- }
661
- },
662
- cards: {
663
- primary: {
664
- backgroundColor: "primary",
665
- border: "1px solid black",
666
- padding: [4, 5],
667
- display: "flex",
668
- flexDirection: "column",
669
- alignItems: "center",
670
- width: "fit-content"
671
- }
672
- },
673
- forms: {
674
- label: {
675
- color: "text",
676
- '&:is([aria-disabled="true"])': {
677
- color: "onMuted"
678
- },
679
- '& > span[aria-label="tooltip"]': {
680
- fontSize: "sm",
681
- marginLeft: "2xs"
682
- },
683
- '&:has(input[type="checkbox"])': {
684
- fontSize: "base",
685
- gap: "md"
686
- },
687
- '& > div:has(input[type="checkbox"]) > svg': {
688
- marginRight: 0
689
- },
690
- '&:has(input[type="checkbox"]:disabled)': {
691
- color: "onMuted"
692
- },
693
- '&:has(div > input[type="radio"])': {
694
- alignItems: "center"
695
- },
696
- '&:has(div > input[type="radio"]:disabled)': {
697
- color: "muted"
698
- }
699
- },
700
- radio: {
701
- color: "text",
702
- fontFamily: "body",
703
- fontSize: "lg",
704
- "input:disabled ~ &": {
705
- color: "muted"
706
- },
707
- 'input[aria-invalid="true"] ~ &': {
708
- color: "danger"
709
- },
710
- "input:focus ~ &": {
711
- bg: "transparent"
712
- },
713
- "&:is(svg, svg + svg)": {
714
- width: fontSizes.base,
715
- height: fontSizes.base
716
- }
717
- },
718
- checkbox: {
719
- "input:focus ~ &": {
720
- bg: "transparent"
721
- },
722
- "input:not(:checked) ~ &": {
723
- color: "primary"
724
- },
725
- "input:disabled ~ &": {
726
- color: "muted"
727
- },
728
- "input:disabled ~ & path": {
729
- backgroundColor: "onMuted"
730
- },
731
- 'input[aria-invalid="true"] ~ &': {
732
- color: "danger"
733
- },
734
- "&:is(svg, svg + svg)": {
735
- width: fontSizes.base,
736
- height: fontSizes.base
737
- }
738
- },
739
- input: {
740
- color: "text",
741
- border: "interaction",
742
- borderColor: "onMuted",
743
- borderRadius: "action",
744
- backgroundColor: "surface",
745
- fontSize: "base",
746
- lineHeight: "base",
747
- "::placeholder": {
748
- color: "onMuted"
749
- },
750
- ":focus-within": {
751
- outlineColor: "neutral"
752
- },
753
- ":disabled": {
754
- backgroundColor: "muted",
755
- color: "onMuted",
756
- border: "muted",
757
- borderColor: "onMuted"
758
- },
759
- '&[aria-invalid="true"]': {
760
- borderColor: "danger"
761
- },
762
- '&[aria-invalid="true"] ~ span:has(iconify-icon)': {
763
- color: "danger"
764
- }
765
- },
766
- inputNumber: {
767
- color: "text",
768
- border: "interaction",
769
- borderColor: "onMuted",
770
- borderRadius: "action",
771
- ":disabled": {
772
- border: "muted",
773
- borderColor: "onMuted",
774
- color: "muted"
775
- },
776
- ":disabled ~ span > iconify-icon": {
777
- color: "muted",
778
- cursor: "default"
779
- },
780
- ":focus-within": {
781
- outlineColor: "highlight"
782
- },
783
- ':not(:disabled, [aria-invalid="true"]):hover': {
784
- borderColor: "highlight"
785
- },
786
- ':not(:disabled, [aria-invalid="true"]) ~ span:has(iconify-icon):hover': {
787
- color: "highlight"
788
- },
789
- "& ~ span:has(iconify-icon)": {
790
- fontSize: "base"
791
- },
792
- '&[aria-invalid="true"]': {
793
- border: "danger",
794
- borderColor: "danger",
795
- color: "danger",
796
- outlineColor: "danger"
797
- },
798
- '&[aria-invalid="true"] ~ span>iconify-icon': {
799
- color: "danger"
800
- }
801
- },
802
- select: {
803
- color: "text",
804
- backgroundColor: "surface",
805
- border: "interaction",
806
- borderColor: "onMuted",
807
- borderRadius: "action",
808
- ":disabled": {
809
- border: "muted",
810
- borderColor: "onMuted",
811
- backgroundColor: "muted",
812
- color: "onMuted"
813
- },
814
- ":disabled ~ * > span:has(iconify-icon)": {
815
- color: "onMuted"
816
- },
817
- '&[aria-invalid="true"]': {
818
- border: "danger",
819
- borderColor: "danger",
820
- outlineColor: "danger"
821
- },
822
- '&[aria-invalid="true"] ~ * > span.error-icon': {
823
- color: "danger"
824
- }
825
- },
826
- textarea: {
827
- color: "text",
828
- border: "interaction",
829
- borderColor: "onMuted",
830
- backgroundColor: "surface",
831
- borderRadius: "action",
832
- ":focus-within": {
833
- outlineColor: "primary"
834
- },
835
- ":disabled::placeholder": {
836
- color: "onMuted"
837
- },
838
- ":disabled": {
839
- borderColor: "onMuted",
840
- backgroundColor: "muted",
841
- border: "muted",
842
- color: "onMuted"
843
- },
844
- '&[aria-invalid="true"]': {
845
- borderColor: "danger",
846
- outlineColor: "danger"
847
- },
848
- '&[aria-invalid="true"]+span>iconify-icon': {
849
- color: "danger",
850
- fontSize: "base"
851
- }
852
- }
853
- },
854
- text: {
855
- default: {
856
- color: "text",
857
- fontFamily: "body"
858
- },
859
- title: {
860
- fontFamily: "heading",
861
- fontSize: 4,
862
- lineSpace: "3.5"
863
- },
864
- help: {
865
- color: "text",
866
- '&[aria-disabled="true"]': {
867
- color: "onMuted"
868
- },
869
- negative: {
870
- color: "danger",
871
- '&[aria-disabled="true"]': {
872
- color: "onMuted"
873
- }
874
- }
875
- },
876
- headline: {
877
- fontFamily: "contrast",
878
- fontWeight: "bold",
879
- lineHeight: "flat",
880
- fontSize: "5xl",
881
- letterSpacing: "regular"
882
- },
883
- subheadline: {
884
- fontFamily: "main",
885
- fontWeight: "bold",
886
- lineHeight: "base",
887
- fontSize: "xl",
888
- letterSpacing: "regular"
889
- },
890
- h1: {
891
- fontFamily: "contrast",
892
- fontWeight: "extrabold",
893
- lineHeight: "base",
894
- fontSize: "3xl",
895
- letterSpacing: "regular"
896
- },
897
- h2: {
898
- fontFamily: "contrast",
899
- fontWeight: "bold",
900
- lineHeight: "base",
901
- fontSize: "2xl",
902
- letterSpacing: "regular"
903
- },
904
- h3: {
905
- fontFamily: "contrast",
906
- fontWeight: "bold",
907
- lineHeight: "base",
908
- fontSize: "xl",
909
- letterSpacing: "regular"
910
- },
911
- h4: {
912
- fontFamily: "contrast",
913
- fontWeight: "semibold",
914
- lineHeight: "base",
915
- fontSize: "lg",
916
- letterSpacing: "regular"
917
- },
918
- h5: {
919
- fontFamily: "contrast",
920
- fontWeight: "semibold",
921
- lineHeight: "base",
922
- fontSize: "base",
923
- letterSpacing: "regular"
924
- }
925
- }
926
- };
927
- export { BrutalIcons, BruttalFonts, BruttalTheme };