├── .gitignore ├── .prettierrc ├── CHANGELOG.md ├── LICENSE ├── README.md ├── cli ├── commands │ ├── build.ts │ ├── init.ts │ └── watch.ts ├── config │ └── defaultConfig.ts ├── services │ ├── configLoader.ts │ ├── minifyService.ts │ ├── purgeService.ts │ └── scssCompiler.ts ├── src │ └── cli.ts └── utils │ └── cli-ui.ts ├── dist ├── cli │ ├── commands │ │ ├── build.js │ │ ├── init.js │ │ └── watch.js │ ├── config │ │ └── defaultConfig.js │ ├── services │ │ ├── configLoader.js │ │ ├── minifyService.js │ │ ├── purgeService.js │ │ └── scssCompiler.js │ ├── src │ │ └── cli.js │ └── utils │ │ ├── cli-ui.js │ │ └── ui.js ├── yumma.css └── yumma.min.css ├── gulpfile.mjs ├── package.json ├── pnpm-lock.yaml ├── src ├── _fonts.scss ├── abstracts │ ├── _breakpoints.scss │ ├── _index.scss │ ├── _theme.scss │ ├── _variables.scss │ ├── functions │ │ ├── _create-values.scss │ │ ├── _ignore-neutral.scss │ │ └── _index.scss │ └── mixins │ │ ├── _create-colors.scss │ │ ├── _create-utilities.scss │ │ ├── _extend-utilities.scss │ │ └── _index.scss ├── reset │ └── _stylecent.scss ├── utilities │ ├── _background.scss │ ├── _border.scss │ ├── _box-model.scss │ ├── _color.scss │ ├── _effect.scss │ ├── _flexbox.scss │ ├── _grid.scss │ ├── _index.scss │ ├── _interactivity.scss │ ├── _outline.scss │ ├── _positioning.scss │ ├── _svg.scss │ ├── _table.scss │ ├── _transform.scss │ ├── _typography.scss │ └── maps │ │ ├── _index.scss │ │ ├── box-model │ │ ├── _dimension.scss │ │ ├── _height.scss │ │ ├── _margin.scss │ │ ├── _padding.scss │ │ └── _width.scss │ │ ├── flexbox │ │ └── _flex-basis.scss │ │ └── grid │ │ └── _gap.scss ├── yummacss-core.scss └── yummacss.scss └── tsconfig.cli.json /.gitignore: -------------------------------------------------------------------------------- 1 | # dependencies 2 | node_modules/ 3 | 4 | # development 5 | *.tgz 6 | project-hierarchy.txt 7 | test/ 8 | 9 | # vs code 10 | .vscode/ -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": true, 3 | "singleQuote": false, 4 | "tabWidth": 2, 5 | "trailingComma": "es5", 6 | "printWidth": 80, 7 | "bracketSameLine": true, 8 | "bracketSpacing": true 9 | } -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | All notable changes to the Yumma CSS will be documented in this file. 4 | 5 | ## Changelog for 3.0.0 🎉 6 | 7 |
8 | 9 | Features 10 | 11 | 12 | - Added **Background Attachment** utilities 13 | - Added **Background Clip** utilities 14 | - Added **Background Origin** utilities 15 | - Added **Background Position** utilities 16 | - Added **Background Repeat** utilities 17 | - Added **Background Size** utilities 18 | - Added **Blur** utilities 19 | - Added **Border Spacing** utilities 20 | - Added **Bottom Radius** utilities 21 | - Added **Bottom/Left/Right/Top (Axis)** utilities 22 | - Added **Clear** utilities 23 | - Added **Field Sizing** utilities 24 | - Added **Fill** utilities 25 | - Added **Font Family** fallbacks 26 | - Added **Grayscale** utilities 27 | - Added **Isolation** utilities 28 | - Added **Left Radius** utilities 29 | - Added **Letter Spacing** utilities 30 | - Added **List Style Position** utilities 31 | - Added **Margin Block End** utilities 32 | - Added **Margin Block Start** utilities 33 | - Added **Margin Inline End** utilities 34 | - Added **Margin Inline Start** utilities 35 | - Added **Order** utilities 36 | - Added **Padding Block End** utilities 37 | - Added **Padding Block Start** utilities 38 | - Added **Padding Inline End** utilities 39 | - Added **Padding Inline Start** utilities 40 | - Added **Place Content** utilities 41 | - Added **Place Items** utilities 42 | - Added **Place Self** utilities 43 | - Added **Right Radius** utilities 44 | - Added **Rotate** utilities 45 | - Added **Scale** utilities 46 | - Added **Scroll Behavior** utilities 47 | - Added **Scroll Margin Bottom** utilities 48 | - Added **Scroll Margin Inline End** utilities 49 | - Added **Scroll Margin Inline Start** utilities 50 | - Added **Scroll Margin Left** utilities 51 | - Added **Scroll Margin Right** utilities 52 | - Added **Scroll Margin Top** utilities 53 | - Added **Scroll Margin X** utilities 54 | - Added **Scroll Margin Y** utilities 55 | - Added **Scroll Margin** utilities 56 | - Added **Scroll Snap Align** utilities 57 | - Added **Scroll Snap Stop** utilities 58 | - Added **Scroll Snap Type** utilities 59 | - Added **Skew** utilities 60 | - Added **Stroke Width** utilities 61 | - Added **Stroke** utilities 62 | - Added **Text Indent** utilities 63 | - Added **Text Overflow** utilities 64 | - Added **Text Transform** utilities 65 | - Added **Text Underline Offset** utilities 66 | - Added **Text Wrap** utilities 67 | - Added **Top Radius** utilities 68 | - Added **Transform Origin** utilities 69 | - Added **Visibility** utilities 70 | - Added **White Space** utilities 71 | - Added `_create-colors.scss`, `_create-values.scss`, `_create-utilities.scss` and `_extend-utilities.scss` partial files (Internal) 72 | - Added `_dimension.scss`, `_height.scss`, `_margin.scss`, `_padding.scss` and `_width.scss` files (Internal) 73 | - Added `_index.scss` files (Internal) 74 | - Added `$yma-box-shadow-*` variables (Internal) 75 | - Added `$yma-font-size-*` variables (Internal) 76 | - Added `1/2`, `2/1`, `2/3`, `3/2`, and `9/16` values for **Aspect Ratio** utilities 77 | - Added `fs-4xl`, `fs-5xl`, `fs-7xl` and `fs-8xl` values for **Font Size** utilities 78 | - Added `full` and `half` values for **Bottom/Left/Right/Top** utilities 79 | - Added `src/abstracts/functions` folder (Internal) 80 | - Added `table-cell`, `table-column` and `table-row` values for **Display** utilities 81 | - Added `utilities/maps` folder (Internal) 82 | - Added `yummacss-core.scss` file (Internal) 83 | - Added CLI functionality 84 | - Added the `column-dense` and `row-dense` values for **Grid Auto Flow** 85 | - Extend **Column Gap** utilities from 0-16 to 0-100 86 | - Extend **Gap** utilities from 0-16 to 0-100 87 | - Extend **Row Gap** utilities from 0-16 to 0-100 88 | 89 |
90 | 91 |
92 | 93 | 94 | Breaking changes 95 | 96 | 97 | - Merged **Filters** and **Effects** subcategories into a **Effect** category 98 | - Migrated base styles functionality to config file 99 | - Migrated from `@import` to `@use` and `@forwards` 100 | - Migrated from Common Js to ESM (Internal) 101 | - Migrated to Dart SASS (Internal) 102 | - Relocate `_base.scss` to `reset/_stylecent.scss` 103 | - Relocate `_functions.scss` to `reset/_ignore-neutral.scss` 104 | - Removed **Spacing X** utilities 105 | - Removed **Spacing Y** utilities 106 | - Removed `.cnt{}` utility class 107 | - Removed `.ins{}` utility class 108 | - Removed `coreFile()` function from `gulpfile.mjs` (Internal) 109 | - Removed `d-` (dark) and `l-` (light) from all color utilities 110 | - Removed `d-` prefix from **Bottom/Left/Right/Top** utilities 111 | - Removed `d-1/2` **Dimension** utility 112 | - Removed `dist/yumma-core.css` file (Internal) 113 | - Removed `dist/yumma-core.min.scss` file (Internal) 114 | - Removed `h-1/2` **Height** utility 115 | - Removed `hidden` and `none` properties from **Text Decoration Style** utilities 116 | - Removed `minifiedCoreFile()` function (Internal) 117 | - Removed `none` **Bottom/Left/Right/Top** invalid utilities 118 | - Removed `w-1/2` **Width** utility 119 | - Renamed `_color.scss` to `_create-colors.scss` 120 | - Renamed `_core.scss` to `yummacss-core.scss` 121 | - Renamed `_layout.scss` to `_positioning.scss` 122 | - Renamed `gulpfile.js` to `gulpfile.mjs` (Internal) 123 | - Renamed `index.scss` to `yummacss.scss` 124 | - Reworked **Box Model** utilities generation 125 | - Updated **Columns** utilities syntax from `cols-*` to `c-*` 126 | - Updated **Dimension** utilities syntax from `dim-*` to `d-*` 127 | - Updated **Direction Bottom** utilities syntax from `dir-b-*` to `bo-*` 128 | - Updated **Direction Inset** utilities syntax from `dir-i-*` to `i-*` 129 | - Updated **Direction Left** utilities syntax from `dir-l-*` to `l-*` 130 | - Updated **Direction Right** utilities syntax from `dir-r-*` to `r-*` 131 | - Updated **Direction Top** utilities syntax from `dir-t-*` to `t-*` 132 | - Updated **Direction** utilities to utilize `rem` as unit 133 | - Updated **Float** utilities syntax from `flo-*` to `fl-*` 134 | - Updated **Font Size** utilities syntax from `fs-b` to `fs-md` 135 | - Updated **Max Dimension** utilities syntax from `max-dim-*` to `max-d-*` 136 | - Updated **Min Dimension** utilities syntax from `min-dim-*` to `min-d-*` 137 | - Updated **Overflow X** utilities syntax from `ovf-x-*` to `o-x-*` 138 | - Updated **Overflow Y** utilities syntax from `ovf-y-*` to `o-y-*` 139 | - Updated **Overflow** utilities syntax from `ovf-*` to `o-*` 140 | - Updated `d-1/1` **Dimension** utility to `d-dvh` 141 | - Updated `h-1/1` **Height** utility to `h-dvh` 142 | - Updated `w-1/1` **Width** utility to `w-dvh` 143 | - Updated color shade percentage from 10% to 14% 144 | - Updated color utility generation logic 145 | - Updated color utility range from 1-6 to 1-12 146 | 147 |
148 | 149 |
150 | 151 | Fixes 152 | 153 | 154 | - Fixed responsive breakpoint utilities not overriding existent utilities [#2](https://github.com/yumma-lib/yumma-css/issues/2) 155 | - Fixed duplicated utilities in `yumma.css` and `yumma.min.css` files [#3](https://github.com/yumma-lib/yumma-css/issues/3) 156 | 157 |
158 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2022-present Yumma CSS maintained by Renildo Pereira. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 6 | Yumma CSS 7 | 8 | 9 |
10 | 11 |

12 | A CSS framework for the web with abbreviated styles. 13 |
14 | Read the documentation ↝ 15 |

16 | 17 | ## Community 18 | 19 | Join the Yumma CSS community! Share your experiences and help Yumma CSS grow and be the best it can be. 20 | 21 | - Follow [@yummacss on X (Twitter)](https://x.com/yummacss) 22 | - Subscribe to [@yummacss on YouTube](https://www.youtube.com/@yummacss) 23 | - Join discussions on [`#yummacss` Discord](https://discord.gg/Zd2y6yVqgK) 24 | 25 | ## Built with 26 | 27 | - [Gulp](https://gulpjs.com/) — A toolkit to automate & enhance your workflow. 28 | - [SCSS](https://sass-lang.com/documentation/syntax/) — CSS with superpowers. 29 | 30 | ## Licensing 31 | 32 | MIT — Copyright (c) 2022–present 33 | -------------------------------------------------------------------------------- /cli/commands/build.ts: -------------------------------------------------------------------------------- 1 | import { writeFileSync } from "fs"; 2 | import { compileSCSS } from "../services/scssCompiler.js"; 3 | import { purgeCSS } from "../services/purgeService.js"; 4 | import { minifyCSS } from "../services/minifyService.js"; 5 | import { loadConfig } from "../services/configLoader.js"; 6 | import type { YummaConfig } from "../config/defaultConfig.js"; 7 | import { cli } from "../utils/cli-ui.js"; 8 | 9 | type BuildCache = { 10 | css?: string; 11 | dependencies?: string[]; 12 | configHash?: string; 13 | }; 14 | 15 | let cache: BuildCache = {}; 16 | 17 | export async function build( 18 | existingConfig?: YummaConfig, 19 | forceRebuild = false 20 | ) { 21 | const buildSpinner = cli.startSpinner("Starting build process..."); 22 | const startTime = Date.now(); 23 | 24 | try { 25 | const config = existingConfig || (await loadConfig()); 26 | const configHash = JSON.stringify(config); 27 | const configChanged = cache.configHash !== configHash; 28 | 29 | let css: string; 30 | if (forceRebuild || configChanged || !cache.css) { 31 | buildSpinner.text = "Compiling SCSS..."; 32 | const result = await compileSCSS(config); 33 | css = result.css; 34 | cache = { 35 | css: result.css, 36 | dependencies: result.dependencies, 37 | configHash, 38 | }; 39 | } else { 40 | css = cache.css; 41 | buildSpinner.text = "Using cached SCSS..."; 42 | } 43 | 44 | buildSpinner.text = "Purging unused styles..."; 45 | const purgedCSS = await purgeCSS(css, config); 46 | 47 | buildSpinner.text = "Minifying CSS..."; 48 | const finalCSS = minifyCSS(purgedCSS, config); 49 | 50 | writeFileSync(config.output, finalCSS); 51 | 52 | buildSpinner.succeed("Build completed successfully!"); 53 | cli.success(`Styles written to: ${config.output}`); 54 | cli.info(`Total time: ${Date.now() - startTime}ms`); 55 | } catch (error) { 56 | buildSpinner.fail("Build failed!"); 57 | cli.error( 58 | error instanceof Error ? error.message : "Unknown error occurred" 59 | ); 60 | process.exit(1); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /cli/commands/init.ts: -------------------------------------------------------------------------------- 1 | import { writeFileSync } from "fs"; 2 | import { defaultConfig } from "../config/defaultConfig.js"; 3 | import { cli } from "../utils/cli-ui.js"; 4 | 5 | export function init() { 6 | const initSpinner = cli.startSpinner("Creating config file..."); 7 | 8 | try { 9 | const configContent = `export default ${JSON.stringify( 10 | defaultConfig, 11 | null, 12 | 2 13 | )}`; 14 | writeFileSync("yumma.config.js", configContent); 15 | 16 | initSpinner.succeed("Config file created!"); 17 | cli.success("yumma.config.js successfully created"); 18 | } catch (error) { 19 | initSpinner.fail("Failed to create config file!"); 20 | cli.error( 21 | error instanceof Error ? error.message : "Unknown error occurred" 22 | ); 23 | process.exit(1); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /cli/commands/watch.ts: -------------------------------------------------------------------------------- 1 | import chok from "chokidar"; 2 | import { build } from "./build.js"; 3 | import { loadConfig } from "../services/configLoader.js"; 4 | import type { YummaConfig } from "../config/defaultConfig.js"; 5 | import { cli } from "../utils/cli-ui.js"; 6 | import { globby } from "globby"; 7 | 8 | let currentConfig: YummaConfig; 9 | 10 | export async function watch() { 11 | const watchSpinner = cli.startSpinner("Initializing watch mode..."); 12 | 13 | try { 14 | currentConfig = await loadConfig(); 15 | watchSpinner.start("Watching for changes..."); 16 | 17 | await build(currentConfig, true); 18 | 19 | const files = await globby(currentConfig.source); 20 | 21 | const watcher = chok.watch(files, { 22 | awaitWriteFinish: { 23 | pollInterval: 50, 24 | stabilityThreshold: 200, 25 | }, 26 | ignored: /(^|[/\\])\../, 27 | ignoreInitial: true, 28 | persistent: true, 29 | }); 30 | 31 | watcher 32 | .on("add", (path) => handleChange(path, "added")) 33 | .on("change", (path) => handleChange(path, "changed")) 34 | .on("unlink", (path) => handleChange(path, "removed")); 35 | 36 | async function handleChange(path: string, event: string) { 37 | await build(currentConfig, true); 38 | } 39 | } catch (error) { 40 | watchSpinner.fail("Watch failed!"); 41 | cli.error( 42 | error instanceof Error ? error.message : "Unknown error occurred" 43 | ); 44 | process.exit(1); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /cli/config/defaultConfig.ts: -------------------------------------------------------------------------------- 1 | export interface YummaConfig { 2 | source: string[]; 3 | output: string; 4 | buildOptions: { 5 | reset: boolean; 6 | minify: boolean; 7 | }; 8 | } 9 | 10 | export const defaultConfig: YummaConfig = { 11 | source: [""], 12 | output: "", 13 | buildOptions: { 14 | reset: true, 15 | minify: false, 16 | }, 17 | }; 18 | -------------------------------------------------------------------------------- /cli/services/configLoader.ts: -------------------------------------------------------------------------------- 1 | import { join } from "path"; 2 | import { pathToFileURL } from "url"; 3 | import { YummaConfig, defaultConfig } from "../config/defaultConfig.js"; 4 | 5 | export async function loadConfig(): Promise { 6 | const configPath = join(process.cwd(), "yumma.config.js"); 7 | const configUrl = pathToFileURL(configPath).href; 8 | const { default: userConfig } = (await import(configUrl)) as { 9 | default: Partial; 10 | }; 11 | 12 | return { 13 | ...defaultConfig, 14 | ...userConfig, 15 | buildOptions: { 16 | ...defaultConfig.buildOptions, 17 | ...userConfig.buildOptions, 18 | }, 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /cli/services/minifyService.ts: -------------------------------------------------------------------------------- 1 | import { transform } from "lightningcss"; 2 | import type { YummaConfig } from "../config/defaultConfig.js"; 3 | 4 | export function minifyCSS(css: string, config: YummaConfig): string { 5 | try { 6 | const result = transform({ 7 | filename: "style.css", 8 | code: Buffer.from(css), 9 | minify: config.buildOptions.minify, 10 | sourceMap: false, 11 | }); 12 | 13 | return result.code.toString(); 14 | } catch (error) { 15 | console.error("Minification error:", error); 16 | throw error; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /cli/services/purgeService.ts: -------------------------------------------------------------------------------- 1 | import { PurgeCSS } from "purgecss"; 2 | import { YummaConfig } from "../config/defaultConfig.js"; 3 | 4 | import { globby } from "globby"; 5 | 6 | export async function purgeCSS( 7 | css: string, 8 | config: YummaConfig 9 | ): Promise { 10 | const purgeCSSResult = await new PurgeCSS().purge({ 11 | content: await globby(config.source), 12 | css: [{ raw: css }], 13 | defaultExtractor: (content) => { 14 | return content.match(/[\w-/\\:]+/g) || []; 15 | }, 16 | }); 17 | 18 | return purgeCSSResult[0].css; 19 | } 20 | -------------------------------------------------------------------------------- /cli/services/scssCompiler.ts: -------------------------------------------------------------------------------- 1 | import * as sass from "sass-embedded"; 2 | import type { YummaConfig } from "../config/defaultConfig.js"; 3 | import { fileURLToPath } from "url"; 4 | import { dirname, join } from "path"; 5 | 6 | const __filename = fileURLToPath(import.meta.url); 7 | const __dirname = dirname(__filename); 8 | const packageRoot = join(__dirname, "../../.."); 9 | 10 | export async function compileSCSS(config: YummaConfig): Promise<{ 11 | css: string; 12 | dependencies: string[]; 13 | }> { 14 | const scssFile = config.buildOptions.reset 15 | ? "yummacss.scss" 16 | : "yummacss-core.scss"; 17 | 18 | try { 19 | const result = await sass.compileAsync(join(packageRoot, "src", scssFile), { 20 | style: "expanded", 21 | loadPaths: [join(packageRoot, "src")], 22 | importers: [ 23 | { 24 | findFileUrl(url) { 25 | return new URL(url, `file://${join(packageRoot, "src/")}`); 26 | }, 27 | }, 28 | ], 29 | }); 30 | 31 | return { 32 | css: result.css, 33 | dependencies: result.loadedUrls 34 | .filter((url) => url.protocol === "file:") 35 | .map((url) => fileURLToPath(url)), 36 | }; 37 | } catch (error) { 38 | console.error("SCSS compilation error:", error); 39 | throw error; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /cli/src/cli.ts: -------------------------------------------------------------------------------- 1 | import { Command } from "commander"; 2 | import { init } from "../commands/init.js"; 3 | import { build } from "../commands/build.js"; 4 | import { watch } from "../commands/watch.js"; 5 | 6 | const program = new Command(); 7 | 8 | program.name("yummacss").description("Yumma CSS CLI").version("3.0.0"); 9 | 10 | program 11 | .command("init") 12 | .description("Create a default config file") 13 | .action(init); 14 | 15 | program 16 | .command("build") 17 | .description("Compile CSS with optional minification") 18 | .action(() => build().catch(() => process.exit(1))); 19 | 20 | program 21 | .command("watch") 22 | .description("Watch files and rebuild on changes") 23 | .action(() => watch().catch(() => process.exit(1))); 24 | 25 | program.parse(process.argv); 26 | -------------------------------------------------------------------------------- /cli/utils/cli-ui.ts: -------------------------------------------------------------------------------- 1 | import ora from "ora"; 2 | 3 | export const spinner = ora({ 4 | spinner: "sand", 5 | }); 6 | 7 | export const cli = { 8 | success: (msg: string) => console.log(`✔ ${msg}`), 9 | info: (msg: string) => console.log(`ℹ ${msg}`), 10 | error: (msg: string) => console.log(`✗ ${msg}`), 11 | startSpinner: (text: string) => { 12 | const spinner = ora({ spinner: "sand", color: "white" }).start(text); 13 | return spinner; 14 | }, 15 | }; 16 | -------------------------------------------------------------------------------- /dist/cli/commands/build.js: -------------------------------------------------------------------------------- 1 | import { writeFileSync } from "fs"; 2 | import { compileSCSS } from "../services/scssCompiler.js"; 3 | import { purgeCSS } from "../services/purgeService.js"; 4 | import { minifyCSS } from "../services/minifyService.js"; 5 | import { loadConfig } from "../services/configLoader.js"; 6 | import { cli } from "../utils/cli-ui.js"; 7 | let cache = {}; 8 | export async function build(existingConfig, forceRebuild = false) { 9 | const buildSpinner = cli.startSpinner("Starting build process..."); 10 | const startTime = Date.now(); 11 | try { 12 | const config = existingConfig || (await loadConfig()); 13 | const configHash = JSON.stringify(config); 14 | const configChanged = cache.configHash !== configHash; 15 | let css; 16 | if (forceRebuild || configChanged || !cache.css) { 17 | buildSpinner.text = "Compiling SCSS..."; 18 | const result = await compileSCSS(config); 19 | css = result.css; 20 | cache = { 21 | css: result.css, 22 | dependencies: result.dependencies, 23 | configHash, 24 | }; 25 | } 26 | else { 27 | css = cache.css; 28 | buildSpinner.text = "Using cached SCSS..."; 29 | } 30 | buildSpinner.text = "Purging unused styles..."; 31 | const purgedCSS = await purgeCSS(css, config); 32 | buildSpinner.text = "Minifying CSS..."; 33 | const finalCSS = minifyCSS(purgedCSS, config); 34 | writeFileSync(config.output, finalCSS); 35 | buildSpinner.succeed("Build completed successfully!"); 36 | cli.success(`Styles written to: ${config.output}`); 37 | cli.info(`Total time: ${Date.now() - startTime}ms`); 38 | } 39 | catch (error) { 40 | buildSpinner.fail("Build failed!"); 41 | cli.error(error instanceof Error ? error.message : "Unknown error occurred"); 42 | process.exit(1); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /dist/cli/commands/init.js: -------------------------------------------------------------------------------- 1 | import { writeFileSync } from "fs"; 2 | import { defaultConfig } from "../config/defaultConfig.js"; 3 | import { cli } from "../utils/cli-ui.js"; 4 | export function init() { 5 | const initSpinner = cli.startSpinner("Creating config file..."); 6 | try { 7 | const configContent = `export default ${JSON.stringify(defaultConfig, null, 2)}`; 8 | writeFileSync("yumma.config.js", configContent); 9 | initSpinner.succeed("Config file created!"); 10 | cli.success("yumma.config.js successfully created"); 11 | } 12 | catch (error) { 13 | initSpinner.fail("Failed to create config file!"); 14 | cli.error(error instanceof Error ? error.message : "Unknown error occurred"); 15 | process.exit(1); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /dist/cli/commands/watch.js: -------------------------------------------------------------------------------- 1 | import chok from "chokidar"; 2 | import { build } from "./build.js"; 3 | import { loadConfig } from "../services/configLoader.js"; 4 | import { cli } from "../utils/cli-ui.js"; 5 | import { globby } from "globby"; 6 | let currentConfig; 7 | export async function watch() { 8 | const watchSpinner = cli.startSpinner("Initializing watch mode..."); 9 | try { 10 | currentConfig = await loadConfig(); 11 | watchSpinner.start("Watching for changes..."); 12 | await build(currentConfig, true); 13 | const files = await globby(currentConfig.source); 14 | const watcher = chok.watch(files, { 15 | awaitWriteFinish: { 16 | pollInterval: 50, 17 | stabilityThreshold: 200, 18 | }, 19 | ignored: /(^|[/\\])\../, 20 | ignoreInitial: true, 21 | persistent: true, 22 | }); 23 | watcher 24 | .on("add", (path) => handleChange(path, "added")) 25 | .on("change", (path) => handleChange(path, "changed")) 26 | .on("unlink", (path) => handleChange(path, "removed")); 27 | async function handleChange(path, event) { 28 | await build(currentConfig, true); 29 | } 30 | } 31 | catch (error) { 32 | watchSpinner.fail("Watch failed!"); 33 | cli.error(error instanceof Error ? error.message : "Unknown error occurred"); 34 | process.exit(1); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /dist/cli/config/defaultConfig.js: -------------------------------------------------------------------------------- 1 | export const defaultConfig = { 2 | source: [""], 3 | output: "", 4 | buildOptions: { 5 | reset: true, 6 | minify: false, 7 | }, 8 | }; 9 | -------------------------------------------------------------------------------- /dist/cli/services/configLoader.js: -------------------------------------------------------------------------------- 1 | import { join } from "path"; 2 | import { pathToFileURL } from "url"; 3 | import { defaultConfig } from "../config/defaultConfig.js"; 4 | export async function loadConfig() { 5 | const configPath = join(process.cwd(), "yumma.config.js"); 6 | const configUrl = pathToFileURL(configPath).href; 7 | const { default: userConfig } = (await import(configUrl)); 8 | return { 9 | ...defaultConfig, 10 | ...userConfig, 11 | buildOptions: { 12 | ...defaultConfig.buildOptions, 13 | ...userConfig.buildOptions, 14 | }, 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /dist/cli/services/minifyService.js: -------------------------------------------------------------------------------- 1 | import { transform } from "lightningcss"; 2 | export function minifyCSS(css, config) { 3 | try { 4 | const result = transform({ 5 | filename: "style.css", 6 | code: Buffer.from(css), 7 | minify: config.buildOptions.minify, 8 | sourceMap: false, 9 | }); 10 | return result.code.toString(); 11 | } 12 | catch (error) { 13 | console.error("Minification error:", error); 14 | throw error; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /dist/cli/services/purgeService.js: -------------------------------------------------------------------------------- 1 | import { PurgeCSS } from "purgecss"; 2 | import { globby } from "globby"; 3 | export async function purgeCSS(css, config) { 4 | const purgeCSSResult = await new PurgeCSS().purge({ 5 | content: await globby(config.source), 6 | css: [{ raw: css }], 7 | defaultExtractor: (content) => { 8 | return content.match(/[\w-/\\:]+/g) || []; 9 | }, 10 | }); 11 | return purgeCSSResult[0].css; 12 | } 13 | -------------------------------------------------------------------------------- /dist/cli/services/scssCompiler.js: -------------------------------------------------------------------------------- 1 | import * as sass from "sass-embedded"; 2 | import { fileURLToPath } from "url"; 3 | import { dirname, join } from "path"; 4 | const __filename = fileURLToPath(import.meta.url); 5 | const __dirname = dirname(__filename); 6 | const packageRoot = join(__dirname, "../../.."); 7 | export async function compileSCSS(config) { 8 | const scssFile = config.buildOptions.reset 9 | ? "yummacss.scss" 10 | : "yummacss-core.scss"; 11 | try { 12 | const result = await sass.compileAsync(join(packageRoot, "src", scssFile), { 13 | style: "expanded", 14 | loadPaths: [join(packageRoot, "src")], 15 | importers: [ 16 | { 17 | findFileUrl(url) { 18 | return new URL(url, `file://${join(packageRoot, "src/")}`); 19 | }, 20 | }, 21 | ], 22 | }); 23 | return { 24 | css: result.css, 25 | dependencies: result.loadedUrls 26 | .filter((url) => url.protocol === "file:") 27 | .map((url) => fileURLToPath(url)), 28 | }; 29 | } 30 | catch (error) { 31 | console.error("SCSS compilation error:", error); 32 | throw error; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /dist/cli/src/cli.js: -------------------------------------------------------------------------------- 1 | import { Command } from "commander"; 2 | import { init } from "../commands/init.js"; 3 | import { build } from "../commands/build.js"; 4 | import { watch } from "../commands/watch.js"; 5 | const program = new Command(); 6 | program.name("yummacss").description("Yumma CSS CLI").version("3.0.0"); 7 | program 8 | .command("init") 9 | .description("Create a default config file") 10 | .action(init); 11 | program 12 | .command("build") 13 | .description("Compile CSS with optional minification") 14 | .action(() => build().catch(() => process.exit(1))); 15 | program 16 | .command("watch") 17 | .description("Watch files and rebuild on changes") 18 | .action(() => watch().catch(() => process.exit(1))); 19 | program.parse(process.argv); 20 | -------------------------------------------------------------------------------- /dist/cli/utils/cli-ui.js: -------------------------------------------------------------------------------- 1 | import ora from "ora"; 2 | export const spinner = ora({ 3 | spinner: "sand", 4 | }); 5 | export const cli = { 6 | success: (msg) => console.log(`✔ ${msg}`), 7 | info: (msg) => console.log(`ℹ ${msg}`), 8 | error: (msg) => console.log(`✗ ${msg}`), 9 | startSpinner: (text) => { 10 | const spinner = ora({ spinner: "sand", color: "white" }).start(text); 11 | return spinner; 12 | }, 13 | }; 14 | -------------------------------------------------------------------------------- /dist/cli/utils/ui.js: -------------------------------------------------------------------------------- 1 | import ora from "ora"; 2 | import chalk from "chalk"; 3 | export const spinner = ora(); 4 | const { green, yellow, cyan, red } = chalk; 5 | export const ui = { 6 | success: (msg) => console.log(green(`✓ ${msg}`)), 7 | warn: (msg) => console.log(yellow(`⚠ ${msg}`)), 8 | info: (msg) => console.log(cyan(`ℹ ${msg}`)), 9 | error: (msg) => console.log(red(`✗ ${msg}`)), 10 | startSpinner: (text) => { 11 | spinner.text = text; 12 | spinner.start(); 13 | return spinner; 14 | }, 15 | }; 16 | -------------------------------------------------------------------------------- /gulpfile.mjs: -------------------------------------------------------------------------------- 1 | import gulp from "gulp"; 2 | import dartSass from "sass"; 3 | import gulpSass from "gulp-sass"; 4 | import rename from "gulp-rename"; 5 | import clean from "gulp-clean-css"; 6 | import debug from "gulp-debug"; 7 | 8 | const { series, src, dest } = gulp; 9 | const sass = gulpSass(dartSass); 10 | 11 | function buildStyles() { 12 | return src("src/yummacss.scss") 13 | .pipe(debug({ title: "Building styles:" })) 14 | .pipe(sass().on("error", sass.logError)) 15 | .pipe(rename("yumma.css")) 16 | .pipe(dest("dist")); 17 | } 18 | 19 | function minifyStyles() { 20 | return src("dist/yumma.css", { allowEmpty: true }) 21 | .pipe(debug({ title: "Minifying styles:" })) 22 | .pipe(clean()) 23 | .pipe(rename({ suffix: ".min" })) 24 | .pipe(dest("dist")); 25 | } 26 | 27 | export const build = series(buildStyles, minifyStyles); 28 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": "Renildo Pereira", 3 | "description": "A CSS framework for the web with abbreviated styles.", 4 | "homepage": "https://yummacss.com", 5 | "license": "MIT", 6 | "main": "./dist/cli/index.js", 7 | "name": "yummacss", 8 | "type": "module", 9 | "version": "3.0.0", 10 | "bin": { 11 | "yummacss": "./dist/cli/src/cli.js", 12 | "yumma": "./dist/cli/src/cli.js" 13 | }, 14 | "exports": { 15 | ".": "./dist/cli/src/cli.js" 16 | }, 17 | "dependencies": { 18 | "chokidar": "^4.0.3", 19 | "commander": "^13.1.0", 20 | "globby": "^14.1.0", 21 | "lightningcss": "^1.29.3", 22 | "ora": "^8.2.0", 23 | "purgecss": "^7.0.2", 24 | "sass-embedded": "^1.85.1" 25 | }, 26 | "devDependencies": { 27 | "@types/node": "^22.13.10", 28 | "gulp": "^5.0.0", 29 | "gulp-clean-css": "^4.3.0", 30 | "gulp-debug": "^5.0.1", 31 | "gulp-rename": "^2.0.0", 32 | "gulp-sass": "^6.0.0", 33 | "sass": "^1.85.1", 34 | "typescript": "^5.8.2" 35 | }, 36 | "files": [ 37 | "dist", 38 | "src" 39 | ], 40 | "repository": { 41 | "type": "git", 42 | "url": "https://github.com/yumma-lib/yumma-css" 43 | }, 44 | "scripts": { 45 | "build:css": "gulp build", 46 | "build:cli": "tsc -p tsconfig.cli.json", 47 | "dev": "tsc -p tsconfig.cli.json --watch", 48 | "prepublishOnly": "pnpm build:cli" 49 | }, 50 | "keywords": [ 51 | "css-framework", 52 | "css", 53 | "framework", 54 | "utility-first", 55 | "yumma", 56 | "yummacss" 57 | ] 58 | } -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | chokidar: 12 | specifier: ^4.0.3 13 | version: 4.0.3 14 | commander: 15 | specifier: ^13.1.0 16 | version: 13.1.0 17 | globby: 18 | specifier: ^14.1.0 19 | version: 14.1.0 20 | lightningcss: 21 | specifier: ^1.29.3 22 | version: 1.29.3 23 | ora: 24 | specifier: ^8.2.0 25 | version: 8.2.0 26 | purgecss: 27 | specifier: ^7.0.2 28 | version: 7.0.2 29 | sass-embedded: 30 | specifier: ^1.85.1 31 | version: 1.85.1 32 | devDependencies: 33 | '@types/node': 34 | specifier: ^22.13.10 35 | version: 22.13.10 36 | gulp: 37 | specifier: ^5.0.0 38 | version: 5.0.0 39 | gulp-clean-css: 40 | specifier: ^4.3.0 41 | version: 4.3.0 42 | gulp-debug: 43 | specifier: ^5.0.1 44 | version: 5.0.1(gulp@5.0.0) 45 | gulp-rename: 46 | specifier: ^2.0.0 47 | version: 2.0.0 48 | gulp-sass: 49 | specifier: ^6.0.0 50 | version: 6.0.0 51 | sass: 52 | specifier: ^1.85.1 53 | version: 1.85.1 54 | typescript: 55 | specifier: ^5.8.2 56 | version: 5.8.2 57 | 58 | packages: 59 | 60 | '@bufbuild/protobuf@2.2.3': 61 | resolution: {integrity: sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==} 62 | 63 | '@gulpjs/messages@1.1.0': 64 | resolution: {integrity: sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg==} 65 | engines: {node: '>=10.13.0'} 66 | 67 | '@gulpjs/to-absolute-glob@4.0.0': 68 | resolution: {integrity: sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA==} 69 | engines: {node: '>=10.13.0'} 70 | 71 | '@isaacs/cliui@8.0.2': 72 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 73 | engines: {node: '>=12'} 74 | 75 | '@nodelib/fs.scandir@2.1.5': 76 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 77 | engines: {node: '>= 8'} 78 | 79 | '@nodelib/fs.stat@2.0.5': 80 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 81 | engines: {node: '>= 8'} 82 | 83 | '@nodelib/fs.walk@1.2.8': 84 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 85 | engines: {node: '>= 8'} 86 | 87 | '@parcel/watcher-android-arm64@2.5.1': 88 | resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} 89 | engines: {node: '>= 10.0.0'} 90 | cpu: [arm64] 91 | os: [android] 92 | 93 | '@parcel/watcher-darwin-arm64@2.5.1': 94 | resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} 95 | engines: {node: '>= 10.0.0'} 96 | cpu: [arm64] 97 | os: [darwin] 98 | 99 | '@parcel/watcher-darwin-x64@2.5.1': 100 | resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} 101 | engines: {node: '>= 10.0.0'} 102 | cpu: [x64] 103 | os: [darwin] 104 | 105 | '@parcel/watcher-freebsd-x64@2.5.1': 106 | resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} 107 | engines: {node: '>= 10.0.0'} 108 | cpu: [x64] 109 | os: [freebsd] 110 | 111 | '@parcel/watcher-linux-arm-glibc@2.5.1': 112 | resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} 113 | engines: {node: '>= 10.0.0'} 114 | cpu: [arm] 115 | os: [linux] 116 | 117 | '@parcel/watcher-linux-arm-musl@2.5.1': 118 | resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} 119 | engines: {node: '>= 10.0.0'} 120 | cpu: [arm] 121 | os: [linux] 122 | 123 | '@parcel/watcher-linux-arm64-glibc@2.5.1': 124 | resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} 125 | engines: {node: '>= 10.0.0'} 126 | cpu: [arm64] 127 | os: [linux] 128 | 129 | '@parcel/watcher-linux-arm64-musl@2.5.1': 130 | resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} 131 | engines: {node: '>= 10.0.0'} 132 | cpu: [arm64] 133 | os: [linux] 134 | 135 | '@parcel/watcher-linux-x64-glibc@2.5.1': 136 | resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} 137 | engines: {node: '>= 10.0.0'} 138 | cpu: [x64] 139 | os: [linux] 140 | 141 | '@parcel/watcher-linux-x64-musl@2.5.1': 142 | resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} 143 | engines: {node: '>= 10.0.0'} 144 | cpu: [x64] 145 | os: [linux] 146 | 147 | '@parcel/watcher-win32-arm64@2.5.1': 148 | resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} 149 | engines: {node: '>= 10.0.0'} 150 | cpu: [arm64] 151 | os: [win32] 152 | 153 | '@parcel/watcher-win32-ia32@2.5.1': 154 | resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} 155 | engines: {node: '>= 10.0.0'} 156 | cpu: [ia32] 157 | os: [win32] 158 | 159 | '@parcel/watcher-win32-x64@2.5.1': 160 | resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} 161 | engines: {node: '>= 10.0.0'} 162 | cpu: [x64] 163 | os: [win32] 164 | 165 | '@parcel/watcher@2.5.1': 166 | resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} 167 | engines: {node: '>= 10.0.0'} 168 | 169 | '@sindresorhus/merge-streams@2.3.0': 170 | resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} 171 | engines: {node: '>=18'} 172 | 173 | '@types/expect@1.20.4': 174 | resolution: {integrity: sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg==} 175 | 176 | '@types/node@22.13.10': 177 | resolution: {integrity: sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==} 178 | 179 | '@types/vinyl@2.0.12': 180 | resolution: {integrity: sha512-Sr2fYMBUVGYq8kj3UthXFAu5UN6ZW+rYr4NACjZQJvHvj+c8lYv0CahmZ2P/r7iUkN44gGUBwqxZkrKXYPb7cw==} 181 | 182 | ansi-colors@1.1.0: 183 | resolution: {integrity: sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==} 184 | engines: {node: '>=0.10.0'} 185 | 186 | ansi-regex@5.0.1: 187 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 188 | engines: {node: '>=8'} 189 | 190 | ansi-regex@6.1.0: 191 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 192 | engines: {node: '>=12'} 193 | 194 | ansi-styles@4.3.0: 195 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 196 | engines: {node: '>=8'} 197 | 198 | ansi-styles@6.2.1: 199 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 200 | engines: {node: '>=12'} 201 | 202 | ansi-wrap@0.1.0: 203 | resolution: {integrity: sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==} 204 | engines: {node: '>=0.10.0'} 205 | 206 | anymatch@3.1.3: 207 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 208 | engines: {node: '>= 8'} 209 | 210 | arr-diff@4.0.0: 211 | resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} 212 | engines: {node: '>=0.10.0'} 213 | 214 | arr-union@3.1.0: 215 | resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} 216 | engines: {node: '>=0.10.0'} 217 | 218 | array-each@1.0.1: 219 | resolution: {integrity: sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==} 220 | engines: {node: '>=0.10.0'} 221 | 222 | array-slice@1.1.0: 223 | resolution: {integrity: sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==} 224 | engines: {node: '>=0.10.0'} 225 | 226 | assign-symbols@1.0.0: 227 | resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} 228 | engines: {node: '>=0.10.0'} 229 | 230 | async-done@2.0.0: 231 | resolution: {integrity: sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw==} 232 | engines: {node: '>= 10.13.0'} 233 | 234 | async-settle@2.0.0: 235 | resolution: {integrity: sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg==} 236 | engines: {node: '>= 10.13.0'} 237 | 238 | b4a@1.6.7: 239 | resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} 240 | 241 | bach@2.0.1: 242 | resolution: {integrity: sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg==} 243 | engines: {node: '>=10.13.0'} 244 | 245 | balanced-match@1.0.2: 246 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 247 | 248 | bare-events@2.5.4: 249 | resolution: {integrity: sha512-+gFfDkR8pj4/TrWCGUGWmJIkBwuxPS5F+a5yWjOHQt2hHvNZd5YLzadjmDUtFmMM4y429bnKLa8bYBMHcYdnQA==} 250 | 251 | base64-js@1.5.1: 252 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 253 | 254 | binary-extensions@2.3.0: 255 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 256 | engines: {node: '>=8'} 257 | 258 | bl@5.1.0: 259 | resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} 260 | 261 | brace-expansion@2.0.1: 262 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 263 | 264 | braces@3.0.3: 265 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 266 | engines: {node: '>=8'} 267 | 268 | buffer-builder@0.2.0: 269 | resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} 270 | 271 | buffer@6.0.3: 272 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 273 | 274 | chalk@4.1.2: 275 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 276 | engines: {node: '>=10'} 277 | 278 | chalk@5.4.1: 279 | resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} 280 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 281 | 282 | chokidar@3.6.0: 283 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 284 | engines: {node: '>= 8.10.0'} 285 | 286 | chokidar@4.0.3: 287 | resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 288 | engines: {node: '>= 14.16.0'} 289 | 290 | clean-css@4.2.3: 291 | resolution: {integrity: sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==} 292 | engines: {node: '>= 4.0'} 293 | 294 | cli-cursor@5.0.0: 295 | resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} 296 | engines: {node: '>=18'} 297 | 298 | cli-spinners@2.9.2: 299 | resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} 300 | engines: {node: '>=6'} 301 | 302 | cliui@7.0.4: 303 | resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} 304 | 305 | clone-stats@1.0.0: 306 | resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} 307 | 308 | clone@2.1.2: 309 | resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} 310 | engines: {node: '>=0.8'} 311 | 312 | color-convert@2.0.1: 313 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 314 | engines: {node: '>=7.0.0'} 315 | 316 | color-name@1.1.4: 317 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 318 | 319 | colorjs.io@0.5.2: 320 | resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==} 321 | 322 | commander@12.1.0: 323 | resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} 324 | engines: {node: '>=18'} 325 | 326 | commander@13.1.0: 327 | resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} 328 | engines: {node: '>=18'} 329 | 330 | convert-source-map@2.0.0: 331 | resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 332 | 333 | copy-props@4.0.0: 334 | resolution: {integrity: sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw==} 335 | engines: {node: '>= 10.13.0'} 336 | 337 | cross-spawn@7.0.6: 338 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 339 | engines: {node: '>= 8'} 340 | 341 | cssesc@3.0.0: 342 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 343 | engines: {node: '>=4'} 344 | hasBin: true 345 | 346 | detect-file@1.0.0: 347 | resolution: {integrity: sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==} 348 | engines: {node: '>=0.10.0'} 349 | 350 | detect-libc@1.0.3: 351 | resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} 352 | engines: {node: '>=0.10'} 353 | hasBin: true 354 | 355 | detect-libc@2.0.3: 356 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} 357 | engines: {node: '>=8'} 358 | 359 | each-props@3.0.0: 360 | resolution: {integrity: sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw==} 361 | engines: {node: '>= 10.13.0'} 362 | 363 | eastasianwidth@0.2.0: 364 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 365 | 366 | easy-transform-stream@1.0.1: 367 | resolution: {integrity: sha512-ktkaa6XR7COAR3oj02CF3IOgz2m1hCaY3SfzvKT4Svt2MhHw9XCt+ncJNWfe2TGz31iqzNGZ8spdKQflj+Rlog==} 368 | engines: {node: '>=14.16'} 369 | 370 | emoji-regex@10.4.0: 371 | resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} 372 | 373 | emoji-regex@8.0.0: 374 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 375 | 376 | emoji-regex@9.2.2: 377 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 378 | 379 | end-of-stream@1.4.4: 380 | resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} 381 | 382 | escalade@3.2.0: 383 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 384 | engines: {node: '>=6'} 385 | 386 | expand-tilde@2.0.2: 387 | resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==} 388 | engines: {node: '>=0.10.0'} 389 | 390 | extend-shallow@3.0.2: 391 | resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} 392 | engines: {node: '>=0.10.0'} 393 | 394 | extend@3.0.2: 395 | resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 396 | 397 | fast-fifo@1.3.2: 398 | resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} 399 | 400 | fast-glob@3.3.3: 401 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 402 | engines: {node: '>=8.6.0'} 403 | 404 | fast-levenshtein@3.0.0: 405 | resolution: {integrity: sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==} 406 | 407 | fastest-levenshtein@1.0.16: 408 | resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} 409 | engines: {node: '>= 4.9.1'} 410 | 411 | fastq@1.18.0: 412 | resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} 413 | 414 | fill-range@7.1.1: 415 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 416 | engines: {node: '>=8'} 417 | 418 | findup-sync@5.0.0: 419 | resolution: {integrity: sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==} 420 | engines: {node: '>= 10.13.0'} 421 | 422 | fined@2.0.0: 423 | resolution: {integrity: sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A==} 424 | engines: {node: '>= 10.13.0'} 425 | 426 | flagged-respawn@2.0.0: 427 | resolution: {integrity: sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA==} 428 | engines: {node: '>= 10.13.0'} 429 | 430 | for-in@1.0.2: 431 | resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} 432 | engines: {node: '>=0.10.0'} 433 | 434 | for-own@1.0.0: 435 | resolution: {integrity: sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==} 436 | engines: {node: '>=0.10.0'} 437 | 438 | foreground-child@3.3.0: 439 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 440 | engines: {node: '>=14'} 441 | 442 | fs-mkdirp-stream@2.0.1: 443 | resolution: {integrity: sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw==} 444 | engines: {node: '>=10.13.0'} 445 | 446 | fsevents@2.3.3: 447 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 448 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 449 | os: [darwin] 450 | 451 | function-bind@1.1.2: 452 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 453 | 454 | get-caller-file@2.0.5: 455 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 456 | engines: {node: 6.* || 8.* || >= 10.*} 457 | 458 | get-east-asian-width@1.3.0: 459 | resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} 460 | engines: {node: '>=18'} 461 | 462 | get-own-enumerable-keys@1.0.0: 463 | resolution: {integrity: sha512-PKsK2FSrQCyxcGHsGrLDcK0lx+0Ke+6e8KFFozA9/fIQLhQzPaRvJFdcz7+Axg3jUH/Mq+NI4xa5u/UT2tQskA==} 464 | engines: {node: '>=14.16'} 465 | 466 | glob-parent@5.1.2: 467 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 468 | engines: {node: '>= 6'} 469 | 470 | glob-parent@6.0.2: 471 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 472 | engines: {node: '>=10.13.0'} 473 | 474 | glob-stream@8.0.2: 475 | resolution: {integrity: sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw==} 476 | engines: {node: '>=10.13.0'} 477 | 478 | glob-watcher@6.0.0: 479 | resolution: {integrity: sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw==} 480 | engines: {node: '>= 10.13.0'} 481 | 482 | glob@11.0.1: 483 | resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==} 484 | engines: {node: 20 || >=22} 485 | hasBin: true 486 | 487 | global-modules@1.0.0: 488 | resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==} 489 | engines: {node: '>=0.10.0'} 490 | 491 | global-prefix@1.0.2: 492 | resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==} 493 | engines: {node: '>=0.10.0'} 494 | 495 | globby@14.1.0: 496 | resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} 497 | engines: {node: '>=18'} 498 | 499 | glogg@2.2.0: 500 | resolution: {integrity: sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A==} 501 | engines: {node: '>= 10.13.0'} 502 | 503 | graceful-fs@4.2.11: 504 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 505 | 506 | gulp-clean-css@4.3.0: 507 | resolution: {integrity: sha512-mGyeT3qqFXTy61j0zOIciS4MkYziF2U594t2Vs9rUnpkEHqfu6aDITMp8xOvZcvdX61Uz3y1mVERRYmjzQF5fg==} 508 | 509 | gulp-cli@3.0.0: 510 | resolution: {integrity: sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA==} 511 | engines: {node: '>=10.13.0'} 512 | hasBin: true 513 | 514 | gulp-debug@5.0.1: 515 | resolution: {integrity: sha512-2MZFfzg95/6JlfKchX+ZY+6Awn2KoEvg4GeJh+uVi/lwD3W4LEeLDo3SfQEFBF9X5jhQYgUazKD/xyxd2dG9cw==} 516 | engines: {node: '>=18'} 517 | peerDependencies: 518 | gulp: '>=4' 519 | peerDependenciesMeta: 520 | gulp: 521 | optional: true 522 | 523 | gulp-plugin-extras@0.3.0: 524 | resolution: {integrity: sha512-I/kOBSpo61QsGQZcqozZYEnDseKvpudUafVVWDLYgBFAUJ37kW5R8Sjw9cMYzpGyPUfEYOeoY4p+dkfLqgyJUQ==} 525 | engines: {node: '>=18'} 526 | 527 | gulp-rename@2.0.0: 528 | resolution: {integrity: sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==} 529 | engines: {node: '>=4'} 530 | 531 | gulp-sass@6.0.0: 532 | resolution: {integrity: sha512-FGb4Uab4jnH2GnSfBGd6uW3+imvNodAGfsjGcUhEtpNYPVx+TK2tp5uh7MO0sSR7aIf1Sm544werc+zV7ejHHw==} 533 | engines: {node: '>=12'} 534 | 535 | gulp@5.0.0: 536 | resolution: {integrity: sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg==} 537 | engines: {node: '>=10.13.0'} 538 | hasBin: true 539 | 540 | gulplog@2.2.0: 541 | resolution: {integrity: sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A==} 542 | engines: {node: '>= 10.13.0'} 543 | 544 | has-flag@4.0.0: 545 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 546 | engines: {node: '>=8'} 547 | 548 | hasown@2.0.2: 549 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 550 | engines: {node: '>= 0.4'} 551 | 552 | homedir-polyfill@1.0.3: 553 | resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==} 554 | engines: {node: '>=0.10.0'} 555 | 556 | iconv-lite@0.6.3: 557 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 558 | engines: {node: '>=0.10.0'} 559 | 560 | ieee754@1.2.1: 561 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 562 | 563 | ignore@7.0.3: 564 | resolution: {integrity: sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==} 565 | engines: {node: '>= 4'} 566 | 567 | immutable@5.0.3: 568 | resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} 569 | 570 | inherits@2.0.4: 571 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 572 | 573 | ini@1.3.8: 574 | resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} 575 | 576 | interpret@3.1.1: 577 | resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} 578 | engines: {node: '>=10.13.0'} 579 | 580 | irregular-plurals@3.5.0: 581 | resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==} 582 | engines: {node: '>=8'} 583 | 584 | is-absolute@1.0.0: 585 | resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} 586 | engines: {node: '>=0.10.0'} 587 | 588 | is-binary-path@2.1.0: 589 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 590 | engines: {node: '>=8'} 591 | 592 | is-core-module@2.16.1: 593 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 594 | engines: {node: '>= 0.4'} 595 | 596 | is-extendable@1.0.1: 597 | resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} 598 | engines: {node: '>=0.10.0'} 599 | 600 | is-extglob@2.1.1: 601 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 602 | engines: {node: '>=0.10.0'} 603 | 604 | is-fullwidth-code-point@3.0.0: 605 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 606 | engines: {node: '>=8'} 607 | 608 | is-glob@4.0.3: 609 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 610 | engines: {node: '>=0.10.0'} 611 | 612 | is-interactive@2.0.0: 613 | resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} 614 | engines: {node: '>=12'} 615 | 616 | is-negated-glob@1.0.0: 617 | resolution: {integrity: sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug==} 618 | engines: {node: '>=0.10.0'} 619 | 620 | is-number@7.0.0: 621 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 622 | engines: {node: '>=0.12.0'} 623 | 624 | is-obj@3.0.0: 625 | resolution: {integrity: sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==} 626 | engines: {node: '>=12'} 627 | 628 | is-plain-object@2.0.4: 629 | resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} 630 | engines: {node: '>=0.10.0'} 631 | 632 | is-plain-object@5.0.0: 633 | resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} 634 | engines: {node: '>=0.10.0'} 635 | 636 | is-regexp@3.1.0: 637 | resolution: {integrity: sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==} 638 | engines: {node: '>=12'} 639 | 640 | is-relative@1.0.0: 641 | resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} 642 | engines: {node: '>=0.10.0'} 643 | 644 | is-unc-path@1.0.0: 645 | resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} 646 | engines: {node: '>=0.10.0'} 647 | 648 | is-unicode-supported@1.3.0: 649 | resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} 650 | engines: {node: '>=12'} 651 | 652 | is-unicode-supported@2.1.0: 653 | resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} 654 | engines: {node: '>=18'} 655 | 656 | is-valid-glob@1.0.0: 657 | resolution: {integrity: sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA==} 658 | engines: {node: '>=0.10.0'} 659 | 660 | is-windows@1.0.2: 661 | resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} 662 | engines: {node: '>=0.10.0'} 663 | 664 | isexe@2.0.0: 665 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 666 | 667 | isobject@3.0.1: 668 | resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} 669 | engines: {node: '>=0.10.0'} 670 | 671 | jackspeak@4.0.2: 672 | resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} 673 | engines: {node: 20 || >=22} 674 | 675 | last-run@2.0.0: 676 | resolution: {integrity: sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ==} 677 | engines: {node: '>= 10.13.0'} 678 | 679 | lead@4.0.0: 680 | resolution: {integrity: sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg==} 681 | engines: {node: '>=10.13.0'} 682 | 683 | liftoff@5.0.0: 684 | resolution: {integrity: sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==} 685 | engines: {node: '>=10.13.0'} 686 | 687 | lightningcss-darwin-arm64@1.29.3: 688 | resolution: {integrity: sha512-fb7raKO3pXtlNbQbiMeEu8RbBVHnpyqAoxTyTRMEWFQWmscGC2wZxoHzZ+YKAepUuKT9uIW5vL2QbFivTgprZg==} 689 | engines: {node: '>= 12.0.0'} 690 | cpu: [arm64] 691 | os: [darwin] 692 | 693 | lightningcss-darwin-x64@1.29.3: 694 | resolution: {integrity: sha512-KF2XZ4ZdmDGGtEYmx5wpzn6u8vg7AdBHaEOvDKu8GOs7xDL/vcU2vMKtTeNe1d4dogkDdi3B9zC77jkatWBwEQ==} 695 | engines: {node: '>= 12.0.0'} 696 | cpu: [x64] 697 | os: [darwin] 698 | 699 | lightningcss-freebsd-x64@1.29.3: 700 | resolution: {integrity: sha512-VUWeVf+V1UM54jv9M4wen9vMlIAyT69Krl9XjI8SsRxz4tdNV/7QEPlW6JASev/pYdiynUCW0pwaFquDRYdxMw==} 701 | engines: {node: '>= 12.0.0'} 702 | cpu: [x64] 703 | os: [freebsd] 704 | 705 | lightningcss-linux-arm-gnueabihf@1.29.3: 706 | resolution: {integrity: sha512-UhgZ/XVNfXQVEJrMIWeK1Laj8KbhjbIz7F4znUk7G4zeGw7TRoJxhb66uWrEsonn1+O45w//0i0Fu0wIovYdYg==} 707 | engines: {node: '>= 12.0.0'} 708 | cpu: [arm] 709 | os: [linux] 710 | 711 | lightningcss-linux-arm64-gnu@1.29.3: 712 | resolution: {integrity: sha512-Pqau7jtgJNmQ/esugfmAT1aCFy/Gxc92FOxI+3n+LbMHBheBnk41xHDhc0HeYlx9G0xP5tK4t0Koy3QGGNqypw==} 713 | engines: {node: '>= 12.0.0'} 714 | cpu: [arm64] 715 | os: [linux] 716 | 717 | lightningcss-linux-arm64-musl@1.29.3: 718 | resolution: {integrity: sha512-dxakOk66pf7KLS7VRYFO7B8WOJLecE5OPL2YOk52eriFd/yeyxt2Km5H0BjLfElokIaR+qWi33gB8MQLrdAY3A==} 719 | engines: {node: '>= 12.0.0'} 720 | cpu: [arm64] 721 | os: [linux] 722 | 723 | lightningcss-linux-x64-gnu@1.29.3: 724 | resolution: {integrity: sha512-ySZTNCpbfbK8rqpKJeJR2S0g/8UqqV3QnzcuWvpI60LWxnFN91nxpSSwCbzfOXkzKfar9j5eOuOplf+klKtINg==} 725 | engines: {node: '>= 12.0.0'} 726 | cpu: [x64] 727 | os: [linux] 728 | 729 | lightningcss-linux-x64-musl@1.29.3: 730 | resolution: {integrity: sha512-3pVZhIzW09nzi10usAXfIGTTSTYQ141dk88vGFNCgawIzayiIzZQxEcxVtIkdvlEq2YuFsL9Wcj/h61JHHzuFQ==} 731 | engines: {node: '>= 12.0.0'} 732 | cpu: [x64] 733 | os: [linux] 734 | 735 | lightningcss-win32-arm64-msvc@1.29.3: 736 | resolution: {integrity: sha512-VRnkAvtIkeWuoBJeGOTrZxsNp4HogXtcaaLm8agmbYtLDOhQdpgxW6NjZZjDXbvGF+eOehGulXZ3C1TiwHY4QQ==} 737 | engines: {node: '>= 12.0.0'} 738 | cpu: [arm64] 739 | os: [win32] 740 | 741 | lightningcss-win32-x64-msvc@1.29.3: 742 | resolution: {integrity: sha512-IszwRPu2cPnDQsZpd7/EAr0x2W7jkaWqQ1SwCVIZ/tSbZVXPLt6k8s6FkcyBjViCzvB5CW0We0QbbP7zp2aBjQ==} 743 | engines: {node: '>= 12.0.0'} 744 | cpu: [x64] 745 | os: [win32] 746 | 747 | lightningcss@1.29.3: 748 | resolution: {integrity: sha512-GlOJwTIP6TMIlrTFsxTerwC0W6OpQpCGuX1ECRLBUVRh6fpJH3xTqjCjRgQHTb4ZXexH9rtHou1Lf03GKzmhhQ==} 749 | engines: {node: '>= 12.0.0'} 750 | 751 | lodash.clonedeep@4.5.0: 752 | resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==} 753 | 754 | log-symbols@6.0.0: 755 | resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} 756 | engines: {node: '>=18'} 757 | 758 | lru-cache@11.0.2: 759 | resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} 760 | engines: {node: 20 || >=22} 761 | 762 | map-cache@0.2.2: 763 | resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} 764 | engines: {node: '>=0.10.0'} 765 | 766 | merge2@1.4.1: 767 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 768 | engines: {node: '>= 8'} 769 | 770 | micromatch@4.0.8: 771 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 772 | engines: {node: '>=8.6'} 773 | 774 | mimic-function@5.0.1: 775 | resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} 776 | engines: {node: '>=18'} 777 | 778 | minimatch@10.0.1: 779 | resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} 780 | engines: {node: 20 || >=22} 781 | 782 | minipass@7.1.2: 783 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 784 | engines: {node: '>=16 || 14 >=14.17'} 785 | 786 | mute-stdout@2.0.0: 787 | resolution: {integrity: sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ==} 788 | engines: {node: '>= 10.13.0'} 789 | 790 | nanoid@3.3.8: 791 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 792 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 793 | hasBin: true 794 | 795 | node-addon-api@7.1.1: 796 | resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} 797 | 798 | normalize-path@3.0.0: 799 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 800 | engines: {node: '>=0.10.0'} 801 | 802 | now-and-later@3.0.0: 803 | resolution: {integrity: sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg==} 804 | engines: {node: '>= 10.13.0'} 805 | 806 | object.defaults@1.1.0: 807 | resolution: {integrity: sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==} 808 | engines: {node: '>=0.10.0'} 809 | 810 | object.pick@1.3.0: 811 | resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} 812 | engines: {node: '>=0.10.0'} 813 | 814 | once@1.4.0: 815 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 816 | 817 | onetime@7.0.0: 818 | resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} 819 | engines: {node: '>=18'} 820 | 821 | ora@8.2.0: 822 | resolution: {integrity: sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==} 823 | engines: {node: '>=18'} 824 | 825 | package-json-from-dist@1.0.1: 826 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 827 | 828 | parse-filepath@1.0.2: 829 | resolution: {integrity: sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==} 830 | engines: {node: '>=0.8'} 831 | 832 | parse-passwd@1.0.0: 833 | resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==} 834 | engines: {node: '>=0.10.0'} 835 | 836 | path-key@3.1.1: 837 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 838 | engines: {node: '>=8'} 839 | 840 | path-parse@1.0.7: 841 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 842 | 843 | path-root-regex@0.1.2: 844 | resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} 845 | engines: {node: '>=0.10.0'} 846 | 847 | path-root@0.1.1: 848 | resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} 849 | engines: {node: '>=0.10.0'} 850 | 851 | path-scurry@2.0.0: 852 | resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} 853 | engines: {node: 20 || >=22} 854 | 855 | path-type@6.0.0: 856 | resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} 857 | engines: {node: '>=18'} 858 | 859 | picocolors@1.1.1: 860 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 861 | 862 | picomatch@2.3.1: 863 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 864 | engines: {node: '>=8.6'} 865 | 866 | plugin-error@1.0.1: 867 | resolution: {integrity: sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==} 868 | engines: {node: '>= 0.10'} 869 | 870 | plur@5.1.0: 871 | resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==} 872 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 873 | 874 | postcss-selector-parser@6.1.2: 875 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 876 | engines: {node: '>=4'} 877 | 878 | postcss@8.5.1: 879 | resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} 880 | engines: {node: ^10 || ^12 || >=14} 881 | 882 | purgecss@7.0.2: 883 | resolution: {integrity: sha512-4Ku8KoxNhOWi9X1XJ73XY5fv+I+hhTRedKpGs/2gaBKU8ijUiIKF/uyyIyh7Wo713bELSICF5/NswjcuOqYouQ==} 884 | hasBin: true 885 | 886 | queue-microtask@1.2.3: 887 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 888 | 889 | readable-stream@3.6.2: 890 | resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 891 | engines: {node: '>= 6'} 892 | 893 | readdirp@3.6.0: 894 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 895 | engines: {node: '>=8.10.0'} 896 | 897 | readdirp@4.1.1: 898 | resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} 899 | engines: {node: '>= 14.18.0'} 900 | 901 | rechoir@0.8.0: 902 | resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} 903 | engines: {node: '>= 10.13.0'} 904 | 905 | remove-trailing-separator@1.1.0: 906 | resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} 907 | 908 | replace-ext@2.0.0: 909 | resolution: {integrity: sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==} 910 | engines: {node: '>= 10'} 911 | 912 | replace-homedir@2.0.0: 913 | resolution: {integrity: sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw==} 914 | engines: {node: '>= 10.13.0'} 915 | 916 | require-directory@2.1.1: 917 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 918 | engines: {node: '>=0.10.0'} 919 | 920 | resolve-dir@1.0.1: 921 | resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==} 922 | engines: {node: '>=0.10.0'} 923 | 924 | resolve-options@2.0.0: 925 | resolution: {integrity: sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A==} 926 | engines: {node: '>= 10.13.0'} 927 | 928 | resolve@1.22.10: 929 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 930 | engines: {node: '>= 0.4'} 931 | hasBin: true 932 | 933 | restore-cursor@5.1.0: 934 | resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} 935 | engines: {node: '>=18'} 936 | 937 | reusify@1.0.4: 938 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 939 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 940 | 941 | run-parallel@1.2.0: 942 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 943 | 944 | rxjs@7.8.2: 945 | resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} 946 | 947 | safe-buffer@5.2.1: 948 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 949 | 950 | safer-buffer@2.1.2: 951 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 952 | 953 | sass-embedded-android-arm64@1.85.1: 954 | resolution: {integrity: sha512-27oRheqNA3SJM2hAxpVbs7mCKUwKPWmEEhyiNFpBINb5ELVLg+Ck5RsGg+SJmo130ul5YX0vinmVB5uPWc8X5w==} 955 | engines: {node: '>=14.0.0'} 956 | cpu: [arm64] 957 | os: [android] 958 | 959 | sass-embedded-android-arm@1.85.1: 960 | resolution: {integrity: sha512-GkcgUGMZtEF9gheuE1dxCU0ZSAifuaFXi/aX7ZXvjtdwmTl9Zc/OHR9oiUJkc8IW9UI7H8TuwlTAA8+SwgwIeQ==} 961 | engines: {node: '>=14.0.0'} 962 | cpu: [arm] 963 | os: [android] 964 | 965 | sass-embedded-android-ia32@1.85.1: 966 | resolution: {integrity: sha512-f3x16NyRgtXFksIaO/xXKrUhttUBv8V0XsAR2Dhdb/yz4yrDrhzw9Wh8fmw7PlQqECcQvFaoDr3XIIM6lKzasw==} 967 | engines: {node: '>=14.0.0'} 968 | cpu: [ia32] 969 | os: [android] 970 | 971 | sass-embedded-android-riscv64@1.85.1: 972 | resolution: {integrity: sha512-IP6OijpJ8Mqo7XqCe0LsuZVbAxEFVboa0kXqqR5K55LebEplsTIA2GnmRyMay3Yr/2FVGsZbCb6Wlgkw23eCiA==} 973 | engines: {node: '>=14.0.0'} 974 | cpu: [riscv64] 975 | os: [android] 976 | 977 | sass-embedded-android-x64@1.85.1: 978 | resolution: {integrity: sha512-Mh7CA53wR3ADvXAYipFc/R3vV4PVOzoKwWzPxmq+7i8UZrtsVjKONxGtqWe9JG1mna0C9CRZAx0sv/BzbOJxWg==} 979 | engines: {node: '>=14.0.0'} 980 | cpu: [x64] 981 | os: [android] 982 | 983 | sass-embedded-darwin-arm64@1.85.1: 984 | resolution: {integrity: sha512-msWxzhvcP9hqGVegxVePVEfv9mVNTlUgGr6k7O7Ihji702mbtrH/lKwF4aRkkt4g1j7tv10+JtQXmTNi/pi9kA==} 985 | engines: {node: '>=14.0.0'} 986 | cpu: [arm64] 987 | os: [darwin] 988 | 989 | sass-embedded-darwin-x64@1.85.1: 990 | resolution: {integrity: sha512-J4UFHUiyI9Z+mwYMwz11Ky9TYr3hY1fCxeQddjNGL/+ovldtb0yAIHvoVM0BGprQDm5JqhtUk8KyJ3RMJqpaAA==} 991 | engines: {node: '>=14.0.0'} 992 | cpu: [x64] 993 | os: [darwin] 994 | 995 | sass-embedded-linux-arm64@1.85.1: 996 | resolution: {integrity: sha512-jGadetB03BMFG2rq3OXub/uvC/lGpbQOiLGEz3NLb2nRZWyauRhzDtvZqkr6BEhxgIWtMtz2020yD8ZJSw/r2w==} 997 | engines: {node: '>=14.0.0'} 998 | cpu: [arm64] 999 | os: [linux] 1000 | 1001 | sass-embedded-linux-arm@1.85.1: 1002 | resolution: {integrity: sha512-X0fDh95nNSw1wfRlnkE4oscoEA5Au4nnk785s9jghPFkTBg+A+5uB6trCjf0fM22+Iw6kiP4YYmDdw3BqxAKLQ==} 1003 | engines: {node: '>=14.0.0'} 1004 | cpu: [arm] 1005 | os: [linux] 1006 | 1007 | sass-embedded-linux-ia32@1.85.1: 1008 | resolution: {integrity: sha512-7HlYY90d9mitDtNi5s+S+5wYZrTVbkBH2/kf7ixrzh2BFfT0YM81UHLJRnGX93y9aOMBL6DSZAIfkt1RsV9bkQ==} 1009 | engines: {node: '>=14.0.0'} 1010 | cpu: [ia32] 1011 | os: [linux] 1012 | 1013 | sass-embedded-linux-musl-arm64@1.85.1: 1014 | resolution: {integrity: sha512-FLkIT0p18XOkR6wryJ13LqGBDsrYev2dRk9dtiU18NCpNXruKsdBQ1ZnWHVKB3h1dA9lFyEEisC0sooKdNfeOQ==} 1015 | engines: {node: '>=14.0.0'} 1016 | cpu: [arm64] 1017 | os: [linux] 1018 | 1019 | sass-embedded-linux-musl-arm@1.85.1: 1020 | resolution: {integrity: sha512-5vcdEqE8QZnu6i6shZo7x2N36V7YUoFotWj2rGekII5ty7Nkaj+VtZhUEOp9tAzEOlaFuDp5CyO1kUCvweT64A==} 1021 | engines: {node: '>=14.0.0'} 1022 | cpu: [arm] 1023 | os: [linux] 1024 | 1025 | sass-embedded-linux-musl-ia32@1.85.1: 1026 | resolution: {integrity: sha512-N1093T84zQJor1yyIAdYScB5eAuQarGK1tKgZ4uTnxVlgA7Xi1lXV8Eh7ox9sDqKCaWkVQ3MjqU26vYRBeRWyw==} 1027 | engines: {node: '>=14.0.0'} 1028 | cpu: [ia32] 1029 | os: [linux] 1030 | 1031 | sass-embedded-linux-musl-riscv64@1.85.1: 1032 | resolution: {integrity: sha512-WRsZS/7qlfYXsa93FBpSruieuURIu7ySfFhzYfF1IbKrNAGwmbduutkHZh2ddm5/vQMvQ0Rdosgv+CslaQHMcw==} 1033 | engines: {node: '>=14.0.0'} 1034 | cpu: [riscv64] 1035 | os: [linux] 1036 | 1037 | sass-embedded-linux-musl-x64@1.85.1: 1038 | resolution: {integrity: sha512-+OlLIilA5TnP0YEqTQ8yZtkW+bJIQYvzoGoNLUEskeyeGuOiIyn2CwL6G4JQB4xZQFaxPHb7JD3EueFkQbH0Pw==} 1039 | engines: {node: '>=14.0.0'} 1040 | cpu: [x64] 1041 | os: [linux] 1042 | 1043 | sass-embedded-linux-riscv64@1.85.1: 1044 | resolution: {integrity: sha512-mKKlOwMGLN7yP1p0gB5yG/HX4fYLnpWaqstNuOOXH+fOzTaNg0+1hALg0H0CDIqypPO74M5MS9T6FAJZGdT6dQ==} 1045 | engines: {node: '>=14.0.0'} 1046 | cpu: [riscv64] 1047 | os: [linux] 1048 | 1049 | sass-embedded-linux-x64@1.85.1: 1050 | resolution: {integrity: sha512-uKRTv0z8NgtHV7xSren78+yoWB79sNi7TMqI7Bxd8fcRNIgHQSA8QBdF8led2ETC004hr8h71BrY60RPO+SSvA==} 1051 | engines: {node: '>=14.0.0'} 1052 | cpu: [x64] 1053 | os: [linux] 1054 | 1055 | sass-embedded-win32-arm64@1.85.1: 1056 | resolution: {integrity: sha512-/GMiZXBOc6AEMBC3g25Rp+x8fq9Z6Ql7037l5rajBPhZ+DdFwtdHY0Ou3oIU6XuWUwD06U3ii4XufXVFhsP6PA==} 1057 | engines: {node: '>=14.0.0'} 1058 | cpu: [arm64] 1059 | os: [win32] 1060 | 1061 | sass-embedded-win32-ia32@1.85.1: 1062 | resolution: {integrity: sha512-L+4BWkKKBGFOKVQ2PQ5HwFfkM5FvTf1Xx2VSRvEWt9HxPXp6SPDho6zC8fqNQ3hSjoaoASEIJcSvgfdQYO0gdg==} 1063 | engines: {node: '>=14.0.0'} 1064 | cpu: [ia32] 1065 | os: [win32] 1066 | 1067 | sass-embedded-win32-x64@1.85.1: 1068 | resolution: {integrity: sha512-/FO0AGKWxVfCk4GKsC0yXWBpUZdySe3YAAbQQL0lL6xUd1OiUY8Kow6g4Kc1TB/+z0iuQKKTqI/acJMEYl4iTQ==} 1069 | engines: {node: '>=14.0.0'} 1070 | cpu: [x64] 1071 | os: [win32] 1072 | 1073 | sass-embedded@1.85.1: 1074 | resolution: {integrity: sha512-0i+3h2Df/c71afluxC1SXqyyMmJlnKWfu9ZGdzwuKRM1OftEa2XM2myt5tR36CF3PanYrMjFKtRIj8PfSf838w==} 1075 | engines: {node: '>=16.0.0'} 1076 | hasBin: true 1077 | 1078 | sass@1.85.1: 1079 | resolution: {integrity: sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag==} 1080 | engines: {node: '>=14.0.0'} 1081 | hasBin: true 1082 | 1083 | semver-greatest-satisfied-range@2.0.0: 1084 | resolution: {integrity: sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g==} 1085 | engines: {node: '>= 10.13.0'} 1086 | 1087 | semver@6.3.1: 1088 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1089 | hasBin: true 1090 | 1091 | shebang-command@2.0.0: 1092 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1093 | engines: {node: '>=8'} 1094 | 1095 | shebang-regex@3.0.0: 1096 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1097 | engines: {node: '>=8'} 1098 | 1099 | signal-exit@4.1.0: 1100 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1101 | engines: {node: '>=14'} 1102 | 1103 | slash@5.1.0: 1104 | resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} 1105 | engines: {node: '>=14.16'} 1106 | 1107 | source-map-js@1.2.1: 1108 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1109 | engines: {node: '>=0.10.0'} 1110 | 1111 | source-map@0.5.7: 1112 | resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} 1113 | engines: {node: '>=0.10.0'} 1114 | 1115 | source-map@0.6.1: 1116 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1117 | engines: {node: '>=0.10.0'} 1118 | 1119 | sparkles@2.1.0: 1120 | resolution: {integrity: sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg==} 1121 | engines: {node: '>= 10.13.0'} 1122 | 1123 | stdin-discarder@0.2.2: 1124 | resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} 1125 | engines: {node: '>=18'} 1126 | 1127 | stream-composer@1.0.2: 1128 | resolution: {integrity: sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w==} 1129 | 1130 | stream-exhaust@1.0.2: 1131 | resolution: {integrity: sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==} 1132 | 1133 | streamx@2.22.0: 1134 | resolution: {integrity: sha512-sLh1evHOzBy/iWRiR6d1zRcLao4gGZr3C1kzNz4fopCOKJb6xD9ub8Mpi9Mr1R6id5o43S+d93fI48UC5uM9aw==} 1135 | 1136 | string-width@4.2.3: 1137 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1138 | engines: {node: '>=8'} 1139 | 1140 | string-width@5.1.2: 1141 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1142 | engines: {node: '>=12'} 1143 | 1144 | string-width@7.2.0: 1145 | resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} 1146 | engines: {node: '>=18'} 1147 | 1148 | string_decoder@1.3.0: 1149 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1150 | 1151 | stringify-object@5.0.0: 1152 | resolution: {integrity: sha512-zaJYxz2FtcMb4f+g60KsRNFOpVMUyuJgA51Zi5Z1DOTC3S59+OQiVOzE9GZt0x72uBGWKsQIuBKeF9iusmKFsg==} 1153 | engines: {node: '>=14.16'} 1154 | 1155 | strip-ansi@6.0.1: 1156 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1157 | engines: {node: '>=8'} 1158 | 1159 | strip-ansi@7.1.0: 1160 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1161 | engines: {node: '>=12'} 1162 | 1163 | supports-color@7.2.0: 1164 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1165 | engines: {node: '>=8'} 1166 | 1167 | supports-color@8.1.1: 1168 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1169 | engines: {node: '>=10'} 1170 | 1171 | supports-preserve-symlinks-flag@1.0.0: 1172 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1173 | engines: {node: '>= 0.4'} 1174 | 1175 | sver@1.8.4: 1176 | resolution: {integrity: sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA==} 1177 | 1178 | sync-child-process@1.0.2: 1179 | resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==} 1180 | engines: {node: '>=16.0.0'} 1181 | 1182 | sync-message-port@1.1.3: 1183 | resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} 1184 | engines: {node: '>=16.0.0'} 1185 | 1186 | teex@1.0.1: 1187 | resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} 1188 | 1189 | text-decoder@1.2.3: 1190 | resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} 1191 | 1192 | through2@3.0.1: 1193 | resolution: {integrity: sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==} 1194 | 1195 | tildify@3.0.0: 1196 | resolution: {integrity: sha512-9ZLMl75qnTLr7oSEmWJbKemFS/fP4TMBiF6PFwGwLpgobebU1ehXoGbadJ+7jT8fjaz2G82JgN9G4taz+o1j1w==} 1197 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1198 | 1199 | to-regex-range@5.0.1: 1200 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1201 | engines: {node: '>=8.0'} 1202 | 1203 | to-through@3.0.0: 1204 | resolution: {integrity: sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw==} 1205 | engines: {node: '>=10.13.0'} 1206 | 1207 | tslib@2.8.1: 1208 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1209 | 1210 | typescript@5.8.2: 1211 | resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} 1212 | engines: {node: '>=14.17'} 1213 | hasBin: true 1214 | 1215 | unc-path-regex@0.1.2: 1216 | resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} 1217 | engines: {node: '>=0.10.0'} 1218 | 1219 | undertaker-registry@2.0.0: 1220 | resolution: {integrity: sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew==} 1221 | engines: {node: '>= 10.13.0'} 1222 | 1223 | undertaker@2.0.0: 1224 | resolution: {integrity: sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ==} 1225 | engines: {node: '>=10.13.0'} 1226 | 1227 | undici-types@6.20.0: 1228 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 1229 | 1230 | unicorn-magic@0.3.0: 1231 | resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} 1232 | engines: {node: '>=18'} 1233 | 1234 | util-deprecate@1.0.2: 1235 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1236 | 1237 | v8flags@4.0.1: 1238 | resolution: {integrity: sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg==} 1239 | engines: {node: '>= 10.13.0'} 1240 | 1241 | value-or-function@4.0.0: 1242 | resolution: {integrity: sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg==} 1243 | engines: {node: '>= 10.13.0'} 1244 | 1245 | varint@6.0.0: 1246 | resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} 1247 | 1248 | vinyl-contents@2.0.0: 1249 | resolution: {integrity: sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q==} 1250 | engines: {node: '>=10.13.0'} 1251 | 1252 | vinyl-fs@4.0.0: 1253 | resolution: {integrity: sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw==} 1254 | engines: {node: '>=10.13.0'} 1255 | 1256 | vinyl-sourcemap@2.0.0: 1257 | resolution: {integrity: sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q==} 1258 | engines: {node: '>=10.13.0'} 1259 | 1260 | vinyl-sourcemaps-apply@0.2.1: 1261 | resolution: {integrity: sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==} 1262 | 1263 | vinyl@3.0.0: 1264 | resolution: {integrity: sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g==} 1265 | engines: {node: '>=10.13.0'} 1266 | 1267 | which@1.3.1: 1268 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 1269 | hasBin: true 1270 | 1271 | which@2.0.2: 1272 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1273 | engines: {node: '>= 8'} 1274 | hasBin: true 1275 | 1276 | wrap-ansi@7.0.0: 1277 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1278 | engines: {node: '>=10'} 1279 | 1280 | wrap-ansi@8.1.0: 1281 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1282 | engines: {node: '>=12'} 1283 | 1284 | wrappy@1.0.2: 1285 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1286 | 1287 | y18n@5.0.8: 1288 | resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1289 | engines: {node: '>=10'} 1290 | 1291 | yargs-parser@20.2.9: 1292 | resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} 1293 | engines: {node: '>=10'} 1294 | 1295 | yargs@16.2.0: 1296 | resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} 1297 | engines: {node: '>=10'} 1298 | 1299 | snapshots: 1300 | 1301 | '@bufbuild/protobuf@2.2.3': {} 1302 | 1303 | '@gulpjs/messages@1.1.0': {} 1304 | 1305 | '@gulpjs/to-absolute-glob@4.0.0': 1306 | dependencies: 1307 | is-negated-glob: 1.0.0 1308 | 1309 | '@isaacs/cliui@8.0.2': 1310 | dependencies: 1311 | string-width: 5.1.2 1312 | string-width-cjs: string-width@4.2.3 1313 | strip-ansi: 7.1.0 1314 | strip-ansi-cjs: strip-ansi@6.0.1 1315 | wrap-ansi: 8.1.0 1316 | wrap-ansi-cjs: wrap-ansi@7.0.0 1317 | 1318 | '@nodelib/fs.scandir@2.1.5': 1319 | dependencies: 1320 | '@nodelib/fs.stat': 2.0.5 1321 | run-parallel: 1.2.0 1322 | 1323 | '@nodelib/fs.stat@2.0.5': {} 1324 | 1325 | '@nodelib/fs.walk@1.2.8': 1326 | dependencies: 1327 | '@nodelib/fs.scandir': 2.1.5 1328 | fastq: 1.18.0 1329 | 1330 | '@parcel/watcher-android-arm64@2.5.1': 1331 | optional: true 1332 | 1333 | '@parcel/watcher-darwin-arm64@2.5.1': 1334 | optional: true 1335 | 1336 | '@parcel/watcher-darwin-x64@2.5.1': 1337 | optional: true 1338 | 1339 | '@parcel/watcher-freebsd-x64@2.5.1': 1340 | optional: true 1341 | 1342 | '@parcel/watcher-linux-arm-glibc@2.5.1': 1343 | optional: true 1344 | 1345 | '@parcel/watcher-linux-arm-musl@2.5.1': 1346 | optional: true 1347 | 1348 | '@parcel/watcher-linux-arm64-glibc@2.5.1': 1349 | optional: true 1350 | 1351 | '@parcel/watcher-linux-arm64-musl@2.5.1': 1352 | optional: true 1353 | 1354 | '@parcel/watcher-linux-x64-glibc@2.5.1': 1355 | optional: true 1356 | 1357 | '@parcel/watcher-linux-x64-musl@2.5.1': 1358 | optional: true 1359 | 1360 | '@parcel/watcher-win32-arm64@2.5.1': 1361 | optional: true 1362 | 1363 | '@parcel/watcher-win32-ia32@2.5.1': 1364 | optional: true 1365 | 1366 | '@parcel/watcher-win32-x64@2.5.1': 1367 | optional: true 1368 | 1369 | '@parcel/watcher@2.5.1': 1370 | dependencies: 1371 | detect-libc: 1.0.3 1372 | is-glob: 4.0.3 1373 | micromatch: 4.0.8 1374 | node-addon-api: 7.1.1 1375 | optionalDependencies: 1376 | '@parcel/watcher-android-arm64': 2.5.1 1377 | '@parcel/watcher-darwin-arm64': 2.5.1 1378 | '@parcel/watcher-darwin-x64': 2.5.1 1379 | '@parcel/watcher-freebsd-x64': 2.5.1 1380 | '@parcel/watcher-linux-arm-glibc': 2.5.1 1381 | '@parcel/watcher-linux-arm-musl': 2.5.1 1382 | '@parcel/watcher-linux-arm64-glibc': 2.5.1 1383 | '@parcel/watcher-linux-arm64-musl': 2.5.1 1384 | '@parcel/watcher-linux-x64-glibc': 2.5.1 1385 | '@parcel/watcher-linux-x64-musl': 2.5.1 1386 | '@parcel/watcher-win32-arm64': 2.5.1 1387 | '@parcel/watcher-win32-ia32': 2.5.1 1388 | '@parcel/watcher-win32-x64': 2.5.1 1389 | optional: true 1390 | 1391 | '@sindresorhus/merge-streams@2.3.0': {} 1392 | 1393 | '@types/expect@1.20.4': {} 1394 | 1395 | '@types/node@22.13.10': 1396 | dependencies: 1397 | undici-types: 6.20.0 1398 | 1399 | '@types/vinyl@2.0.12': 1400 | dependencies: 1401 | '@types/expect': 1.20.4 1402 | '@types/node': 22.13.10 1403 | 1404 | ansi-colors@1.1.0: 1405 | dependencies: 1406 | ansi-wrap: 0.1.0 1407 | 1408 | ansi-regex@5.0.1: {} 1409 | 1410 | ansi-regex@6.1.0: {} 1411 | 1412 | ansi-styles@4.3.0: 1413 | dependencies: 1414 | color-convert: 2.0.1 1415 | 1416 | ansi-styles@6.2.1: {} 1417 | 1418 | ansi-wrap@0.1.0: {} 1419 | 1420 | anymatch@3.1.3: 1421 | dependencies: 1422 | normalize-path: 3.0.0 1423 | picomatch: 2.3.1 1424 | 1425 | arr-diff@4.0.0: {} 1426 | 1427 | arr-union@3.1.0: {} 1428 | 1429 | array-each@1.0.1: {} 1430 | 1431 | array-slice@1.1.0: {} 1432 | 1433 | assign-symbols@1.0.0: {} 1434 | 1435 | async-done@2.0.0: 1436 | dependencies: 1437 | end-of-stream: 1.4.4 1438 | once: 1.4.0 1439 | stream-exhaust: 1.0.2 1440 | 1441 | async-settle@2.0.0: 1442 | dependencies: 1443 | async-done: 2.0.0 1444 | 1445 | b4a@1.6.7: {} 1446 | 1447 | bach@2.0.1: 1448 | dependencies: 1449 | async-done: 2.0.0 1450 | async-settle: 2.0.0 1451 | now-and-later: 3.0.0 1452 | 1453 | balanced-match@1.0.2: {} 1454 | 1455 | bare-events@2.5.4: 1456 | optional: true 1457 | 1458 | base64-js@1.5.1: {} 1459 | 1460 | binary-extensions@2.3.0: {} 1461 | 1462 | bl@5.1.0: 1463 | dependencies: 1464 | buffer: 6.0.3 1465 | inherits: 2.0.4 1466 | readable-stream: 3.6.2 1467 | 1468 | brace-expansion@2.0.1: 1469 | dependencies: 1470 | balanced-match: 1.0.2 1471 | 1472 | braces@3.0.3: 1473 | dependencies: 1474 | fill-range: 7.1.1 1475 | 1476 | buffer-builder@0.2.0: {} 1477 | 1478 | buffer@6.0.3: 1479 | dependencies: 1480 | base64-js: 1.5.1 1481 | ieee754: 1.2.1 1482 | 1483 | chalk@4.1.2: 1484 | dependencies: 1485 | ansi-styles: 4.3.0 1486 | supports-color: 7.2.0 1487 | 1488 | chalk@5.4.1: {} 1489 | 1490 | chokidar@3.6.0: 1491 | dependencies: 1492 | anymatch: 3.1.3 1493 | braces: 3.0.3 1494 | glob-parent: 5.1.2 1495 | is-binary-path: 2.1.0 1496 | is-glob: 4.0.3 1497 | normalize-path: 3.0.0 1498 | readdirp: 3.6.0 1499 | optionalDependencies: 1500 | fsevents: 2.3.3 1501 | 1502 | chokidar@4.0.3: 1503 | dependencies: 1504 | readdirp: 4.1.1 1505 | 1506 | clean-css@4.2.3: 1507 | dependencies: 1508 | source-map: 0.6.1 1509 | 1510 | cli-cursor@5.0.0: 1511 | dependencies: 1512 | restore-cursor: 5.1.0 1513 | 1514 | cli-spinners@2.9.2: {} 1515 | 1516 | cliui@7.0.4: 1517 | dependencies: 1518 | string-width: 4.2.3 1519 | strip-ansi: 6.0.1 1520 | wrap-ansi: 7.0.0 1521 | 1522 | clone-stats@1.0.0: {} 1523 | 1524 | clone@2.1.2: {} 1525 | 1526 | color-convert@2.0.1: 1527 | dependencies: 1528 | color-name: 1.1.4 1529 | 1530 | color-name@1.1.4: {} 1531 | 1532 | colorjs.io@0.5.2: {} 1533 | 1534 | commander@12.1.0: {} 1535 | 1536 | commander@13.1.0: {} 1537 | 1538 | convert-source-map@2.0.0: {} 1539 | 1540 | copy-props@4.0.0: 1541 | dependencies: 1542 | each-props: 3.0.0 1543 | is-plain-object: 5.0.0 1544 | 1545 | cross-spawn@7.0.6: 1546 | dependencies: 1547 | path-key: 3.1.1 1548 | shebang-command: 2.0.0 1549 | which: 2.0.2 1550 | 1551 | cssesc@3.0.0: {} 1552 | 1553 | detect-file@1.0.0: {} 1554 | 1555 | detect-libc@1.0.3: 1556 | optional: true 1557 | 1558 | detect-libc@2.0.3: {} 1559 | 1560 | each-props@3.0.0: 1561 | dependencies: 1562 | is-plain-object: 5.0.0 1563 | object.defaults: 1.1.0 1564 | 1565 | eastasianwidth@0.2.0: {} 1566 | 1567 | easy-transform-stream@1.0.1: {} 1568 | 1569 | emoji-regex@10.4.0: {} 1570 | 1571 | emoji-regex@8.0.0: {} 1572 | 1573 | emoji-regex@9.2.2: {} 1574 | 1575 | end-of-stream@1.4.4: 1576 | dependencies: 1577 | once: 1.4.0 1578 | 1579 | escalade@3.2.0: {} 1580 | 1581 | expand-tilde@2.0.2: 1582 | dependencies: 1583 | homedir-polyfill: 1.0.3 1584 | 1585 | extend-shallow@3.0.2: 1586 | dependencies: 1587 | assign-symbols: 1.0.0 1588 | is-extendable: 1.0.1 1589 | 1590 | extend@3.0.2: {} 1591 | 1592 | fast-fifo@1.3.2: {} 1593 | 1594 | fast-glob@3.3.3: 1595 | dependencies: 1596 | '@nodelib/fs.stat': 2.0.5 1597 | '@nodelib/fs.walk': 1.2.8 1598 | glob-parent: 5.1.2 1599 | merge2: 1.4.1 1600 | micromatch: 4.0.8 1601 | 1602 | fast-levenshtein@3.0.0: 1603 | dependencies: 1604 | fastest-levenshtein: 1.0.16 1605 | 1606 | fastest-levenshtein@1.0.16: {} 1607 | 1608 | fastq@1.18.0: 1609 | dependencies: 1610 | reusify: 1.0.4 1611 | 1612 | fill-range@7.1.1: 1613 | dependencies: 1614 | to-regex-range: 5.0.1 1615 | 1616 | findup-sync@5.0.0: 1617 | dependencies: 1618 | detect-file: 1.0.0 1619 | is-glob: 4.0.3 1620 | micromatch: 4.0.8 1621 | resolve-dir: 1.0.1 1622 | 1623 | fined@2.0.0: 1624 | dependencies: 1625 | expand-tilde: 2.0.2 1626 | is-plain-object: 5.0.0 1627 | object.defaults: 1.1.0 1628 | object.pick: 1.3.0 1629 | parse-filepath: 1.0.2 1630 | 1631 | flagged-respawn@2.0.0: {} 1632 | 1633 | for-in@1.0.2: {} 1634 | 1635 | for-own@1.0.0: 1636 | dependencies: 1637 | for-in: 1.0.2 1638 | 1639 | foreground-child@3.3.0: 1640 | dependencies: 1641 | cross-spawn: 7.0.6 1642 | signal-exit: 4.1.0 1643 | 1644 | fs-mkdirp-stream@2.0.1: 1645 | dependencies: 1646 | graceful-fs: 4.2.11 1647 | streamx: 2.22.0 1648 | 1649 | fsevents@2.3.3: 1650 | optional: true 1651 | 1652 | function-bind@1.1.2: {} 1653 | 1654 | get-caller-file@2.0.5: {} 1655 | 1656 | get-east-asian-width@1.3.0: {} 1657 | 1658 | get-own-enumerable-keys@1.0.0: {} 1659 | 1660 | glob-parent@5.1.2: 1661 | dependencies: 1662 | is-glob: 4.0.3 1663 | 1664 | glob-parent@6.0.2: 1665 | dependencies: 1666 | is-glob: 4.0.3 1667 | 1668 | glob-stream@8.0.2: 1669 | dependencies: 1670 | '@gulpjs/to-absolute-glob': 4.0.0 1671 | anymatch: 3.1.3 1672 | fastq: 1.18.0 1673 | glob-parent: 6.0.2 1674 | is-glob: 4.0.3 1675 | is-negated-glob: 1.0.0 1676 | normalize-path: 3.0.0 1677 | streamx: 2.22.0 1678 | 1679 | glob-watcher@6.0.0: 1680 | dependencies: 1681 | async-done: 2.0.0 1682 | chokidar: 3.6.0 1683 | 1684 | glob@11.0.1: 1685 | dependencies: 1686 | foreground-child: 3.3.0 1687 | jackspeak: 4.0.2 1688 | minimatch: 10.0.1 1689 | minipass: 7.1.2 1690 | package-json-from-dist: 1.0.1 1691 | path-scurry: 2.0.0 1692 | 1693 | global-modules@1.0.0: 1694 | dependencies: 1695 | global-prefix: 1.0.2 1696 | is-windows: 1.0.2 1697 | resolve-dir: 1.0.1 1698 | 1699 | global-prefix@1.0.2: 1700 | dependencies: 1701 | expand-tilde: 2.0.2 1702 | homedir-polyfill: 1.0.3 1703 | ini: 1.3.8 1704 | is-windows: 1.0.2 1705 | which: 1.3.1 1706 | 1707 | globby@14.1.0: 1708 | dependencies: 1709 | '@sindresorhus/merge-streams': 2.3.0 1710 | fast-glob: 3.3.3 1711 | ignore: 7.0.3 1712 | path-type: 6.0.0 1713 | slash: 5.1.0 1714 | unicorn-magic: 0.3.0 1715 | 1716 | glogg@2.2.0: 1717 | dependencies: 1718 | sparkles: 2.1.0 1719 | 1720 | graceful-fs@4.2.11: {} 1721 | 1722 | gulp-clean-css@4.3.0: 1723 | dependencies: 1724 | clean-css: 4.2.3 1725 | plugin-error: 1.0.1 1726 | through2: 3.0.1 1727 | vinyl-sourcemaps-apply: 0.2.1 1728 | 1729 | gulp-cli@3.0.0: 1730 | dependencies: 1731 | '@gulpjs/messages': 1.1.0 1732 | chalk: 4.1.2 1733 | copy-props: 4.0.0 1734 | gulplog: 2.2.0 1735 | interpret: 3.1.1 1736 | liftoff: 5.0.0 1737 | mute-stdout: 2.0.0 1738 | replace-homedir: 2.0.0 1739 | semver-greatest-satisfied-range: 2.0.0 1740 | string-width: 4.2.3 1741 | v8flags: 4.0.1 1742 | yargs: 16.2.0 1743 | 1744 | gulp-debug@5.0.1(gulp@5.0.0): 1745 | dependencies: 1746 | chalk: 5.4.1 1747 | gulp-plugin-extras: 0.3.0 1748 | plur: 5.1.0 1749 | stringify-object: 5.0.0 1750 | tildify: 3.0.0 1751 | optionalDependencies: 1752 | gulp: 5.0.0 1753 | 1754 | gulp-plugin-extras@0.3.0: 1755 | dependencies: 1756 | '@types/vinyl': 2.0.12 1757 | chalk: 5.4.1 1758 | easy-transform-stream: 1.0.1 1759 | 1760 | gulp-rename@2.0.0: {} 1761 | 1762 | gulp-sass@6.0.0: 1763 | dependencies: 1764 | lodash.clonedeep: 4.5.0 1765 | picocolors: 1.1.1 1766 | plugin-error: 1.0.1 1767 | replace-ext: 2.0.0 1768 | strip-ansi: 6.0.1 1769 | vinyl-sourcemaps-apply: 0.2.1 1770 | 1771 | gulp@5.0.0: 1772 | dependencies: 1773 | glob-watcher: 6.0.0 1774 | gulp-cli: 3.0.0 1775 | undertaker: 2.0.0 1776 | vinyl-fs: 4.0.0 1777 | 1778 | gulplog@2.2.0: 1779 | dependencies: 1780 | glogg: 2.2.0 1781 | 1782 | has-flag@4.0.0: {} 1783 | 1784 | hasown@2.0.2: 1785 | dependencies: 1786 | function-bind: 1.1.2 1787 | 1788 | homedir-polyfill@1.0.3: 1789 | dependencies: 1790 | parse-passwd: 1.0.0 1791 | 1792 | iconv-lite@0.6.3: 1793 | dependencies: 1794 | safer-buffer: 2.1.2 1795 | 1796 | ieee754@1.2.1: {} 1797 | 1798 | ignore@7.0.3: {} 1799 | 1800 | immutable@5.0.3: {} 1801 | 1802 | inherits@2.0.4: {} 1803 | 1804 | ini@1.3.8: {} 1805 | 1806 | interpret@3.1.1: {} 1807 | 1808 | irregular-plurals@3.5.0: {} 1809 | 1810 | is-absolute@1.0.0: 1811 | dependencies: 1812 | is-relative: 1.0.0 1813 | is-windows: 1.0.2 1814 | 1815 | is-binary-path@2.1.0: 1816 | dependencies: 1817 | binary-extensions: 2.3.0 1818 | 1819 | is-core-module@2.16.1: 1820 | dependencies: 1821 | hasown: 2.0.2 1822 | 1823 | is-extendable@1.0.1: 1824 | dependencies: 1825 | is-plain-object: 2.0.4 1826 | 1827 | is-extglob@2.1.1: {} 1828 | 1829 | is-fullwidth-code-point@3.0.0: {} 1830 | 1831 | is-glob@4.0.3: 1832 | dependencies: 1833 | is-extglob: 2.1.1 1834 | 1835 | is-interactive@2.0.0: {} 1836 | 1837 | is-negated-glob@1.0.0: {} 1838 | 1839 | is-number@7.0.0: {} 1840 | 1841 | is-obj@3.0.0: {} 1842 | 1843 | is-plain-object@2.0.4: 1844 | dependencies: 1845 | isobject: 3.0.1 1846 | 1847 | is-plain-object@5.0.0: {} 1848 | 1849 | is-regexp@3.1.0: {} 1850 | 1851 | is-relative@1.0.0: 1852 | dependencies: 1853 | is-unc-path: 1.0.0 1854 | 1855 | is-unc-path@1.0.0: 1856 | dependencies: 1857 | unc-path-regex: 0.1.2 1858 | 1859 | is-unicode-supported@1.3.0: {} 1860 | 1861 | is-unicode-supported@2.1.0: {} 1862 | 1863 | is-valid-glob@1.0.0: {} 1864 | 1865 | is-windows@1.0.2: {} 1866 | 1867 | isexe@2.0.0: {} 1868 | 1869 | isobject@3.0.1: {} 1870 | 1871 | jackspeak@4.0.2: 1872 | dependencies: 1873 | '@isaacs/cliui': 8.0.2 1874 | 1875 | last-run@2.0.0: {} 1876 | 1877 | lead@4.0.0: {} 1878 | 1879 | liftoff@5.0.0: 1880 | dependencies: 1881 | extend: 3.0.2 1882 | findup-sync: 5.0.0 1883 | fined: 2.0.0 1884 | flagged-respawn: 2.0.0 1885 | is-plain-object: 5.0.0 1886 | rechoir: 0.8.0 1887 | resolve: 1.22.10 1888 | 1889 | lightningcss-darwin-arm64@1.29.3: 1890 | optional: true 1891 | 1892 | lightningcss-darwin-x64@1.29.3: 1893 | optional: true 1894 | 1895 | lightningcss-freebsd-x64@1.29.3: 1896 | optional: true 1897 | 1898 | lightningcss-linux-arm-gnueabihf@1.29.3: 1899 | optional: true 1900 | 1901 | lightningcss-linux-arm64-gnu@1.29.3: 1902 | optional: true 1903 | 1904 | lightningcss-linux-arm64-musl@1.29.3: 1905 | optional: true 1906 | 1907 | lightningcss-linux-x64-gnu@1.29.3: 1908 | optional: true 1909 | 1910 | lightningcss-linux-x64-musl@1.29.3: 1911 | optional: true 1912 | 1913 | lightningcss-win32-arm64-msvc@1.29.3: 1914 | optional: true 1915 | 1916 | lightningcss-win32-x64-msvc@1.29.3: 1917 | optional: true 1918 | 1919 | lightningcss@1.29.3: 1920 | dependencies: 1921 | detect-libc: 2.0.3 1922 | optionalDependencies: 1923 | lightningcss-darwin-arm64: 1.29.3 1924 | lightningcss-darwin-x64: 1.29.3 1925 | lightningcss-freebsd-x64: 1.29.3 1926 | lightningcss-linux-arm-gnueabihf: 1.29.3 1927 | lightningcss-linux-arm64-gnu: 1.29.3 1928 | lightningcss-linux-arm64-musl: 1.29.3 1929 | lightningcss-linux-x64-gnu: 1.29.3 1930 | lightningcss-linux-x64-musl: 1.29.3 1931 | lightningcss-win32-arm64-msvc: 1.29.3 1932 | lightningcss-win32-x64-msvc: 1.29.3 1933 | 1934 | lodash.clonedeep@4.5.0: {} 1935 | 1936 | log-symbols@6.0.0: 1937 | dependencies: 1938 | chalk: 5.4.1 1939 | is-unicode-supported: 1.3.0 1940 | 1941 | lru-cache@11.0.2: {} 1942 | 1943 | map-cache@0.2.2: {} 1944 | 1945 | merge2@1.4.1: {} 1946 | 1947 | micromatch@4.0.8: 1948 | dependencies: 1949 | braces: 3.0.3 1950 | picomatch: 2.3.1 1951 | 1952 | mimic-function@5.0.1: {} 1953 | 1954 | minimatch@10.0.1: 1955 | dependencies: 1956 | brace-expansion: 2.0.1 1957 | 1958 | minipass@7.1.2: {} 1959 | 1960 | mute-stdout@2.0.0: {} 1961 | 1962 | nanoid@3.3.8: {} 1963 | 1964 | node-addon-api@7.1.1: 1965 | optional: true 1966 | 1967 | normalize-path@3.0.0: {} 1968 | 1969 | now-and-later@3.0.0: 1970 | dependencies: 1971 | once: 1.4.0 1972 | 1973 | object.defaults@1.1.0: 1974 | dependencies: 1975 | array-each: 1.0.1 1976 | array-slice: 1.1.0 1977 | for-own: 1.0.0 1978 | isobject: 3.0.1 1979 | 1980 | object.pick@1.3.0: 1981 | dependencies: 1982 | isobject: 3.0.1 1983 | 1984 | once@1.4.0: 1985 | dependencies: 1986 | wrappy: 1.0.2 1987 | 1988 | onetime@7.0.0: 1989 | dependencies: 1990 | mimic-function: 5.0.1 1991 | 1992 | ora@8.2.0: 1993 | dependencies: 1994 | chalk: 5.4.1 1995 | cli-cursor: 5.0.0 1996 | cli-spinners: 2.9.2 1997 | is-interactive: 2.0.0 1998 | is-unicode-supported: 2.1.0 1999 | log-symbols: 6.0.0 2000 | stdin-discarder: 0.2.2 2001 | string-width: 7.2.0 2002 | strip-ansi: 7.1.0 2003 | 2004 | package-json-from-dist@1.0.1: {} 2005 | 2006 | parse-filepath@1.0.2: 2007 | dependencies: 2008 | is-absolute: 1.0.0 2009 | map-cache: 0.2.2 2010 | path-root: 0.1.1 2011 | 2012 | parse-passwd@1.0.0: {} 2013 | 2014 | path-key@3.1.1: {} 2015 | 2016 | path-parse@1.0.7: {} 2017 | 2018 | path-root-regex@0.1.2: {} 2019 | 2020 | path-root@0.1.1: 2021 | dependencies: 2022 | path-root-regex: 0.1.2 2023 | 2024 | path-scurry@2.0.0: 2025 | dependencies: 2026 | lru-cache: 11.0.2 2027 | minipass: 7.1.2 2028 | 2029 | path-type@6.0.0: {} 2030 | 2031 | picocolors@1.1.1: {} 2032 | 2033 | picomatch@2.3.1: {} 2034 | 2035 | plugin-error@1.0.1: 2036 | dependencies: 2037 | ansi-colors: 1.1.0 2038 | arr-diff: 4.0.0 2039 | arr-union: 3.1.0 2040 | extend-shallow: 3.0.2 2041 | 2042 | plur@5.1.0: 2043 | dependencies: 2044 | irregular-plurals: 3.5.0 2045 | 2046 | postcss-selector-parser@6.1.2: 2047 | dependencies: 2048 | cssesc: 3.0.0 2049 | util-deprecate: 1.0.2 2050 | 2051 | postcss@8.5.1: 2052 | dependencies: 2053 | nanoid: 3.3.8 2054 | picocolors: 1.1.1 2055 | source-map-js: 1.2.1 2056 | 2057 | purgecss@7.0.2: 2058 | dependencies: 2059 | commander: 12.1.0 2060 | glob: 11.0.1 2061 | postcss: 8.5.1 2062 | postcss-selector-parser: 6.1.2 2063 | 2064 | queue-microtask@1.2.3: {} 2065 | 2066 | readable-stream@3.6.2: 2067 | dependencies: 2068 | inherits: 2.0.4 2069 | string_decoder: 1.3.0 2070 | util-deprecate: 1.0.2 2071 | 2072 | readdirp@3.6.0: 2073 | dependencies: 2074 | picomatch: 2.3.1 2075 | 2076 | readdirp@4.1.1: {} 2077 | 2078 | rechoir@0.8.0: 2079 | dependencies: 2080 | resolve: 1.22.10 2081 | 2082 | remove-trailing-separator@1.1.0: {} 2083 | 2084 | replace-ext@2.0.0: {} 2085 | 2086 | replace-homedir@2.0.0: {} 2087 | 2088 | require-directory@2.1.1: {} 2089 | 2090 | resolve-dir@1.0.1: 2091 | dependencies: 2092 | expand-tilde: 2.0.2 2093 | global-modules: 1.0.0 2094 | 2095 | resolve-options@2.0.0: 2096 | dependencies: 2097 | value-or-function: 4.0.0 2098 | 2099 | resolve@1.22.10: 2100 | dependencies: 2101 | is-core-module: 2.16.1 2102 | path-parse: 1.0.7 2103 | supports-preserve-symlinks-flag: 1.0.0 2104 | 2105 | restore-cursor@5.1.0: 2106 | dependencies: 2107 | onetime: 7.0.0 2108 | signal-exit: 4.1.0 2109 | 2110 | reusify@1.0.4: {} 2111 | 2112 | run-parallel@1.2.0: 2113 | dependencies: 2114 | queue-microtask: 1.2.3 2115 | 2116 | rxjs@7.8.2: 2117 | dependencies: 2118 | tslib: 2.8.1 2119 | 2120 | safe-buffer@5.2.1: {} 2121 | 2122 | safer-buffer@2.1.2: {} 2123 | 2124 | sass-embedded-android-arm64@1.85.1: 2125 | optional: true 2126 | 2127 | sass-embedded-android-arm@1.85.1: 2128 | optional: true 2129 | 2130 | sass-embedded-android-ia32@1.85.1: 2131 | optional: true 2132 | 2133 | sass-embedded-android-riscv64@1.85.1: 2134 | optional: true 2135 | 2136 | sass-embedded-android-x64@1.85.1: 2137 | optional: true 2138 | 2139 | sass-embedded-darwin-arm64@1.85.1: 2140 | optional: true 2141 | 2142 | sass-embedded-darwin-x64@1.85.1: 2143 | optional: true 2144 | 2145 | sass-embedded-linux-arm64@1.85.1: 2146 | optional: true 2147 | 2148 | sass-embedded-linux-arm@1.85.1: 2149 | optional: true 2150 | 2151 | sass-embedded-linux-ia32@1.85.1: 2152 | optional: true 2153 | 2154 | sass-embedded-linux-musl-arm64@1.85.1: 2155 | optional: true 2156 | 2157 | sass-embedded-linux-musl-arm@1.85.1: 2158 | optional: true 2159 | 2160 | sass-embedded-linux-musl-ia32@1.85.1: 2161 | optional: true 2162 | 2163 | sass-embedded-linux-musl-riscv64@1.85.1: 2164 | optional: true 2165 | 2166 | sass-embedded-linux-musl-x64@1.85.1: 2167 | optional: true 2168 | 2169 | sass-embedded-linux-riscv64@1.85.1: 2170 | optional: true 2171 | 2172 | sass-embedded-linux-x64@1.85.1: 2173 | optional: true 2174 | 2175 | sass-embedded-win32-arm64@1.85.1: 2176 | optional: true 2177 | 2178 | sass-embedded-win32-ia32@1.85.1: 2179 | optional: true 2180 | 2181 | sass-embedded-win32-x64@1.85.1: 2182 | optional: true 2183 | 2184 | sass-embedded@1.85.1: 2185 | dependencies: 2186 | '@bufbuild/protobuf': 2.2.3 2187 | buffer-builder: 0.2.0 2188 | colorjs.io: 0.5.2 2189 | immutable: 5.0.3 2190 | rxjs: 7.8.2 2191 | supports-color: 8.1.1 2192 | sync-child-process: 1.0.2 2193 | varint: 6.0.0 2194 | optionalDependencies: 2195 | sass-embedded-android-arm: 1.85.1 2196 | sass-embedded-android-arm64: 1.85.1 2197 | sass-embedded-android-ia32: 1.85.1 2198 | sass-embedded-android-riscv64: 1.85.1 2199 | sass-embedded-android-x64: 1.85.1 2200 | sass-embedded-darwin-arm64: 1.85.1 2201 | sass-embedded-darwin-x64: 1.85.1 2202 | sass-embedded-linux-arm: 1.85.1 2203 | sass-embedded-linux-arm64: 1.85.1 2204 | sass-embedded-linux-ia32: 1.85.1 2205 | sass-embedded-linux-musl-arm: 1.85.1 2206 | sass-embedded-linux-musl-arm64: 1.85.1 2207 | sass-embedded-linux-musl-ia32: 1.85.1 2208 | sass-embedded-linux-musl-riscv64: 1.85.1 2209 | sass-embedded-linux-musl-x64: 1.85.1 2210 | sass-embedded-linux-riscv64: 1.85.1 2211 | sass-embedded-linux-x64: 1.85.1 2212 | sass-embedded-win32-arm64: 1.85.1 2213 | sass-embedded-win32-ia32: 1.85.1 2214 | sass-embedded-win32-x64: 1.85.1 2215 | 2216 | sass@1.85.1: 2217 | dependencies: 2218 | chokidar: 4.0.3 2219 | immutable: 5.0.3 2220 | source-map-js: 1.2.1 2221 | optionalDependencies: 2222 | '@parcel/watcher': 2.5.1 2223 | 2224 | semver-greatest-satisfied-range@2.0.0: 2225 | dependencies: 2226 | sver: 1.8.4 2227 | 2228 | semver@6.3.1: 2229 | optional: true 2230 | 2231 | shebang-command@2.0.0: 2232 | dependencies: 2233 | shebang-regex: 3.0.0 2234 | 2235 | shebang-regex@3.0.0: {} 2236 | 2237 | signal-exit@4.1.0: {} 2238 | 2239 | slash@5.1.0: {} 2240 | 2241 | source-map-js@1.2.1: {} 2242 | 2243 | source-map@0.5.7: {} 2244 | 2245 | source-map@0.6.1: {} 2246 | 2247 | sparkles@2.1.0: {} 2248 | 2249 | stdin-discarder@0.2.2: {} 2250 | 2251 | stream-composer@1.0.2: 2252 | dependencies: 2253 | streamx: 2.22.0 2254 | 2255 | stream-exhaust@1.0.2: {} 2256 | 2257 | streamx@2.22.0: 2258 | dependencies: 2259 | fast-fifo: 1.3.2 2260 | text-decoder: 1.2.3 2261 | optionalDependencies: 2262 | bare-events: 2.5.4 2263 | 2264 | string-width@4.2.3: 2265 | dependencies: 2266 | emoji-regex: 8.0.0 2267 | is-fullwidth-code-point: 3.0.0 2268 | strip-ansi: 6.0.1 2269 | 2270 | string-width@5.1.2: 2271 | dependencies: 2272 | eastasianwidth: 0.2.0 2273 | emoji-regex: 9.2.2 2274 | strip-ansi: 7.1.0 2275 | 2276 | string-width@7.2.0: 2277 | dependencies: 2278 | emoji-regex: 10.4.0 2279 | get-east-asian-width: 1.3.0 2280 | strip-ansi: 7.1.0 2281 | 2282 | string_decoder@1.3.0: 2283 | dependencies: 2284 | safe-buffer: 5.2.1 2285 | 2286 | stringify-object@5.0.0: 2287 | dependencies: 2288 | get-own-enumerable-keys: 1.0.0 2289 | is-obj: 3.0.0 2290 | is-regexp: 3.1.0 2291 | 2292 | strip-ansi@6.0.1: 2293 | dependencies: 2294 | ansi-regex: 5.0.1 2295 | 2296 | strip-ansi@7.1.0: 2297 | dependencies: 2298 | ansi-regex: 6.1.0 2299 | 2300 | supports-color@7.2.0: 2301 | dependencies: 2302 | has-flag: 4.0.0 2303 | 2304 | supports-color@8.1.1: 2305 | dependencies: 2306 | has-flag: 4.0.0 2307 | 2308 | supports-preserve-symlinks-flag@1.0.0: {} 2309 | 2310 | sver@1.8.4: 2311 | optionalDependencies: 2312 | semver: 6.3.1 2313 | 2314 | sync-child-process@1.0.2: 2315 | dependencies: 2316 | sync-message-port: 1.1.3 2317 | 2318 | sync-message-port@1.1.3: {} 2319 | 2320 | teex@1.0.1: 2321 | dependencies: 2322 | streamx: 2.22.0 2323 | 2324 | text-decoder@1.2.3: 2325 | dependencies: 2326 | b4a: 1.6.7 2327 | 2328 | through2@3.0.1: 2329 | dependencies: 2330 | readable-stream: 3.6.2 2331 | 2332 | tildify@3.0.0: {} 2333 | 2334 | to-regex-range@5.0.1: 2335 | dependencies: 2336 | is-number: 7.0.0 2337 | 2338 | to-through@3.0.0: 2339 | dependencies: 2340 | streamx: 2.22.0 2341 | 2342 | tslib@2.8.1: {} 2343 | 2344 | typescript@5.8.2: {} 2345 | 2346 | unc-path-regex@0.1.2: {} 2347 | 2348 | undertaker-registry@2.0.0: {} 2349 | 2350 | undertaker@2.0.0: 2351 | dependencies: 2352 | bach: 2.0.1 2353 | fast-levenshtein: 3.0.0 2354 | last-run: 2.0.0 2355 | undertaker-registry: 2.0.0 2356 | 2357 | undici-types@6.20.0: {} 2358 | 2359 | unicorn-magic@0.3.0: {} 2360 | 2361 | util-deprecate@1.0.2: {} 2362 | 2363 | v8flags@4.0.1: {} 2364 | 2365 | value-or-function@4.0.0: {} 2366 | 2367 | varint@6.0.0: {} 2368 | 2369 | vinyl-contents@2.0.0: 2370 | dependencies: 2371 | bl: 5.1.0 2372 | vinyl: 3.0.0 2373 | 2374 | vinyl-fs@4.0.0: 2375 | dependencies: 2376 | fs-mkdirp-stream: 2.0.1 2377 | glob-stream: 8.0.2 2378 | graceful-fs: 4.2.11 2379 | iconv-lite: 0.6.3 2380 | is-valid-glob: 1.0.0 2381 | lead: 4.0.0 2382 | normalize-path: 3.0.0 2383 | resolve-options: 2.0.0 2384 | stream-composer: 1.0.2 2385 | streamx: 2.22.0 2386 | to-through: 3.0.0 2387 | value-or-function: 4.0.0 2388 | vinyl: 3.0.0 2389 | vinyl-sourcemap: 2.0.0 2390 | 2391 | vinyl-sourcemap@2.0.0: 2392 | dependencies: 2393 | convert-source-map: 2.0.0 2394 | graceful-fs: 4.2.11 2395 | now-and-later: 3.0.0 2396 | streamx: 2.22.0 2397 | vinyl: 3.0.0 2398 | vinyl-contents: 2.0.0 2399 | 2400 | vinyl-sourcemaps-apply@0.2.1: 2401 | dependencies: 2402 | source-map: 0.5.7 2403 | 2404 | vinyl@3.0.0: 2405 | dependencies: 2406 | clone: 2.1.2 2407 | clone-stats: 1.0.0 2408 | remove-trailing-separator: 1.1.0 2409 | replace-ext: 2.0.0 2410 | teex: 1.0.1 2411 | 2412 | which@1.3.1: 2413 | dependencies: 2414 | isexe: 2.0.0 2415 | 2416 | which@2.0.2: 2417 | dependencies: 2418 | isexe: 2.0.0 2419 | 2420 | wrap-ansi@7.0.0: 2421 | dependencies: 2422 | ansi-styles: 4.3.0 2423 | string-width: 4.2.3 2424 | strip-ansi: 6.0.1 2425 | 2426 | wrap-ansi@8.1.0: 2427 | dependencies: 2428 | ansi-styles: 6.2.1 2429 | string-width: 5.1.2 2430 | strip-ansi: 7.1.0 2431 | 2432 | wrappy@1.0.2: {} 2433 | 2434 | y18n@5.0.8: {} 2435 | 2436 | yargs-parser@20.2.9: {} 2437 | 2438 | yargs@16.2.0: 2439 | dependencies: 2440 | cliui: 7.0.4 2441 | escalade: 3.2.0 2442 | get-caller-file: 2.0.5 2443 | require-directory: 2.1.1 2444 | string-width: 4.2.3 2445 | y18n: 5.0.8 2446 | yargs-parser: 20.2.9 2447 | -------------------------------------------------------------------------------- /src/_fonts.scss: -------------------------------------------------------------------------------- 1 | @use "abstracts/variables" as vars; 2 | 3 | .ff-c { 4 | font-family: vars.$yma-font-charter; 5 | font-weight: vars.$yma-font-weight; 6 | } 7 | 8 | .ff-m { 9 | font-family: vars.$yma-font-mono; 10 | font-weight: vars.$yma-font-weight; 11 | } 12 | 13 | .ff-s { 14 | font-family: vars.$yma-font-system; 15 | font-weight: vars.$yma-font-weight; 16 | } 17 | -------------------------------------------------------------------------------- /src/abstracts/_breakpoints.scss: -------------------------------------------------------------------------------- 1 | @use "sass:map"; 2 | 3 | $yma-breakpoints: ( 4 | "sm": 40rem, 5 | "md": 48rem, 6 | "lg": 64rem, 7 | "xl": 80rem, 8 | "xxl": 96rem, 9 | ); 10 | 11 | @mixin sm { 12 | @media (min-width: map.get($yma-breakpoints, "sm")) { 13 | @content; 14 | } 15 | } 16 | 17 | @mixin md { 18 | @media (min-width: map.get($yma-breakpoints, "md")) { 19 | @content; 20 | } 21 | } 22 | 23 | @mixin lg { 24 | @media (min-width: map.get($yma-breakpoints, "lg")) { 25 | @content; 26 | } 27 | } 28 | 29 | @mixin xl { 30 | @media (min-width: map.get($yma-breakpoints, "xl")) { 31 | @content; 32 | } 33 | } 34 | 35 | @mixin xxl { 36 | @media (min-width: map.get($yma-breakpoints, "xxl")) { 37 | @content; 38 | } 39 | } 40 | 41 | @mixin breakpoint($bp) { 42 | @media (min-width: $bp) { 43 | @content; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/abstracts/_index.scss: -------------------------------------------------------------------------------- 1 | @forward "functions"; 2 | @forward "variables"; 3 | @forward "breakpoints"; 4 | @forward "mixins"; 5 | @forward "theme"; 6 | -------------------------------------------------------------------------------- /src/abstracts/_theme.scss: -------------------------------------------------------------------------------- 1 | @use "sass:map"; 2 | @use "variables" as vars; 3 | 4 | $yma-theme: ( 5 | "red": vars.$yma-color-red, 6 | "orange": vars.$yma-color-orange, 7 | "yellow": vars.$yma-color-yellow, 8 | "green": vars.$yma-color-green, 9 | "teal": vars.$yma-color-teal, 10 | "cyan": vars.$yma-color-cyan, 11 | "blue": vars.$yma-color-blue, 12 | "indigo": vars.$yma-color-indigo, 13 | "violet": vars.$yma-color-violet, 14 | "pink": vars.$yma-color-pink, 15 | "silver": vars.$yma-color-silver, 16 | "gray": vars.$yma-color-gray, 17 | "lead": vars.$yma-color-lead, 18 | "black": vars.$yma-color-black, 19 | "white": vars.$yma-color-white, 20 | "transparent": vars.$yma-color-transparent, 21 | ); 22 | -------------------------------------------------------------------------------- /src/abstracts/_variables.scss: -------------------------------------------------------------------------------- 1 | // color 2 | $yma-color-red: rgb(215, 61, 61) !default; 3 | $yma-color-orange: rgb(224, 104, 20) !default; 4 | $yma-color-yellow: rgb(211, 161, 7) !default; 5 | $yma-color-green: rgb(31, 177, 85) !default; 6 | $yma-color-teal: rgb(18, 166, 149) !default; 7 | $yma-color-cyan: rgb(5, 164, 191) !default; 8 | $yma-color-blue: rgb(53, 117, 221) !default; 9 | $yma-color-indigo: rgb(89, 92, 217) !default; 10 | $yma-color-violet: rgb(125, 83, 221) !default; 11 | $yma-color-pink: rgb(212, 65, 138) !default; 12 | $yma-color-lead: rgb(63, 63, 78) !default; 13 | $yma-color-gray: rgb(96, 103, 115) !default; 14 | $yma-color-silver: rgb(191, 194, 199) !default; 15 | $yma-color-black: black !default; 16 | $yma-color-white: white !default; 17 | $yma-color-transparent: transparent !default; 18 | 19 | // border 20 | $yma-border: 1px !default; 21 | $yma-border-radius: 0.25rem !default; 22 | $yma-border-spacing: 0.25rem !default; 23 | 24 | // box model 25 | $yma-dimension: 0.25rem !default; 26 | $yma-height: 0.25rem !default; 27 | $yma-width: 0.25rem !default; 28 | $yma-padding: 0.25rem !default; 29 | $yma-margin: 0.25rem !default; 30 | $yma-spacing: 0.25rem !default; 31 | 32 | // effect 33 | $yma-backdrop-blur: 4px !default; 34 | 35 | $yma-blur: 4px !default; 36 | 37 | $yma-box-shadow-lg: 1px 3px 5px 1px rgb(0, 0, 0, 0.1) !default; 38 | $yma-box-shadow-md: 1px 3px 5px -1px rgb(0, 0, 0, 0.1) !default; 39 | $yma-box-shadow-sm: 1px 3px 5px -2px rgb(0, 0, 0, 0.1) !default; 40 | $yma-box-shadow-xl: 1px 3px 5px 2px rgb(0, 0, 0, 0.1) !default; 41 | $yma-box-shadow-xs: 1px 3px 5px -3px rgb(0, 0, 0, 0.1) !default; 42 | 43 | $yma-grayscale: 10% !default; 44 | 45 | // flexbox 46 | $yma-flex-basis: 0.25rem !default; 47 | 48 | // grid 49 | $yma-gap: 0.25rem !default; 50 | $yma-column-gap: 0.25rem !default; 51 | $yma-row-gap: 0.25rem !default; 52 | 53 | // outline 54 | $yma-outline-offset: 1px !default; 55 | $yma-outline-width: 1px !default; 56 | 57 | // positioning 58 | $yma-bottom-left-top-right: 0.25rem !default; 59 | 60 | // typography 61 | $yma-decoration-thickness: 1px !default; 62 | 63 | $yma-font-size-xs: 0.75rem !default; 64 | $yma-font-size-sm: 0.875rem !default; 65 | $yma-font-size-md: 1rem !default; 66 | $yma-font-size-lg: 1.125rem !default; 67 | $yma-font-size-xl: 1.25rem !default; 68 | $yma-font-size-2xl: 1.5rem !default; 69 | $yma-font-size-3xl: 1.875rem !default; 70 | $yma-font-size-4xl: 2.25rem !default; 71 | $yma-font-size-5xl: 3rem !default; 72 | $yma-font-size-6xl: 3.75rem !default; 73 | $yma-font-size-7xl: 4.5rem !default; 74 | $yma-font-size-8xl: 6rem !default; 75 | $yma-font-size-9xl: 8rem !default; 76 | 77 | $yma-font-weight: 500 !default; 78 | 79 | $yma-font-charter: Charter, "Bitstream Charter", "Sitka Text", Cambria, serif !default; 80 | $yma-font-mono: "Nimbus Mono PS", "Courier New", monospace !default; 81 | $yma-font-system: system-ui, sans-serif !default; 82 | -------------------------------------------------------------------------------- /src/abstracts/functions/_create-values.scss: -------------------------------------------------------------------------------- 1 | @use "sass:map"; 2 | 3 | @function create-values($variable, $min: 0, $max: 100) { 4 | $values: (); 5 | 6 | @for $i from $min through $max { 7 | $values: map.merge( 8 | $values, 9 | ( 10 | "#{$i}": $variable * $i, 11 | ) 12 | ); 13 | } 14 | 15 | @return $values; 16 | } 17 | -------------------------------------------------------------------------------- /src/abstracts/functions/_ignore-neutral.scss: -------------------------------------------------------------------------------- 1 | @use "../theme" as *; 2 | @use "sass:map"; 3 | 4 | // prettier-ignore 5 | @function ignore-neutral($v, $yma-theme) { 6 | @return $v != map.get($yma-theme, "black") 7 | and $v != map.get($yma-theme, "white") 8 | and $v != map.get($yma-theme, "transparent"); 9 | } 10 | -------------------------------------------------------------------------------- /src/abstracts/functions/_index.scss: -------------------------------------------------------------------------------- 1 | @forward "ignore-neutral"; 2 | @forward "create-values"; 3 | -------------------------------------------------------------------------------- /src/abstracts/mixins/_create-colors.scss: -------------------------------------------------------------------------------- 1 | @use "sass:color"; 2 | 3 | @mixin mod-color-scaling($property, $prefix, $k, $v) { 4 | .#{$prefix}-#{$k} { 5 | #{$property}: $v; 6 | } 7 | 8 | .h\:#{$prefix}-#{$k} { 9 | &:hover { 10 | #{$property}: $v; 11 | } 12 | } 13 | } 14 | 15 | @mixin shade-scaling($property, $prefix, $k, $v, $percentage) { 16 | @for $i from 1 through 13 { 17 | @if $i <= 6 { 18 | .#{$prefix}-#{$k}-#{$i} { 19 | #{$property}: color.mix(white, $v, (7 - $i) * $percentage); 20 | } 21 | 22 | .h\:#{$prefix}-#{$k}-#{$i} { 23 | &:hover { 24 | #{$property}: color.mix(white, $v, (7 - $i) * $percentage); 25 | } 26 | } 27 | } @else if $i > 7 { 28 | .#{$prefix}-#{$k}-#{$i - 1} { 29 | #{$property}: color.mix(black, $v, ($i - 7) * $percentage); 30 | } 31 | 32 | .h\:#{$prefix}-#{$k}-#{$i - 1} { 33 | &:hover { 34 | #{$property}: color.mix(black, $v, ($i - 7) * $percentage); 35 | } 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/abstracts/mixins/_create-utilities.scss: -------------------------------------------------------------------------------- 1 | @use "../breakpoints" as bp; 2 | @use "sass:map"; 3 | 4 | @mixin create-utilities($map, $prefix, $properties) { 5 | $function: if( 6 | map.has-key($map, "property-function"), 7 | map.get($map, "property-function"), 8 | null 9 | ); 10 | 11 | // base styles 12 | @each $k, $v in map.get($map, "values") { 13 | .#{$prefix}-#{$k} { 14 | @each $property in $properties { 15 | #{$property}: if($function != null, $function + "(" + $v + ")", $v); 16 | } 17 | } 18 | 19 | // hover styles 20 | .h\:#{$prefix}-#{$k}:hover { 21 | @each $property in $properties { 22 | #{$property}: if($function != null, $function + "(" + $v + ")", $v); 23 | } 24 | } 25 | } 26 | 27 | // responsive styles 28 | @each $bp, $bp-value in bp.$yma-breakpoints { 29 | @media (min-width: $bp-value) { 30 | @each $k, $v in map.get($map, "values") { 31 | .#{$bp}\:#{$prefix}-#{$k} { 32 | @each $property in $properties { 33 | #{$property}: if($function != null, $function + "(" + $v + ")", $v); 34 | } 35 | } 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/abstracts/mixins/_extend-utilities.scss: -------------------------------------------------------------------------------- 1 | @mixin extensions($map, $prefixes) { 2 | @each $k, $v in $map { 3 | @each $prefix, $property in $prefixes { 4 | // base styles 5 | .#{$prefix}-#{$k} { 6 | #{$property}: $v; 7 | } 8 | 9 | // hover styles 10 | .h\:#{$prefix}-#{$k}:hover { 11 | #{$property}: $v; 12 | } 13 | 14 | @each $bp, $bp-value in $yma-breakpoints { 15 | // responsive styles 16 | .#{$bp}\:#{$prefix}-#{$k} { 17 | @include breakpoint($bp-value) { 18 | #{$property}: $v; 19 | } 20 | } 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/abstracts/mixins/_index.scss: -------------------------------------------------------------------------------- 1 | @forward "create-colors"; 2 | @forward "create-utilities"; 3 | @forward "extend-utilities"; 4 | -------------------------------------------------------------------------------- /src/reset/_stylecent.scss: -------------------------------------------------------------------------------- 1 | @use "../abstracts/variables" as vars; 2 | 3 | /** 4 | * Yumma CSS v3.0.0 by Renildo Pereira | https://www.yummacss.com/ 5 | */ 6 | 7 | /** -- Box sizing -- 8 | * 1. Use a more intuitive box-sizing model to make the design consistent. 9 | * 2. Remove default margin and padding. 10 | * 3. Reset default border styles. 11 | */ 12 | 13 | *, 14 | *::before, 15 | *::after { 16 | box-sizing: border-box; /* 1 */ 17 | border: 0 solid; /* 3 */ 18 | } 19 | 20 | * { 21 | margin: 0; /* 2 */ 22 | padding: 0; /* 2 */ 23 | } 24 | 25 | /** -- Document -- 26 | * 1. Improve font smoothing. 27 | * 2. Set a default system font. 28 | * 3. Add accessible line-height. 29 | */ 30 | 31 | body { 32 | -webkit-font-smoothing: antialiased; /* 1 */ 33 | font-family: vars.$yma-font-system; /* 2 */ 34 | line-height: 1.5; /* 3 */ 35 | } 36 | 37 | /** -- Media Elements -- 38 | * 1. Ensure all media elements like images, videos, and canvases are block-level. 39 | * 2. Limit their maximum width to the parent container. 40 | */ 41 | 42 | canvas, 43 | img, 44 | picture, 45 | svg, 46 | video { 47 | display: block; /* 1 */ 48 | max-width: 100%; /* 2 */ 49 | } 50 | 51 | /** -- Form Elements -- 52 | * 1. Reset background and border styles for form elements. 53 | * 2. Use `inherit` to ensure font consistency within forms. 54 | * 3. Add default padding for usability. 55 | */ 56 | 57 | button, 58 | input, 59 | optgroup, 60 | select, 61 | textarea { 62 | background-color: vars.$yma-color-transparent; /* 1 */ 63 | font-family: inherit; /* 2 */ 64 | padding: 0.5rem; /* 3 */ 65 | } 66 | 67 | /** 68 | * Add a default border to form elements that do not have a class attribute. 69 | */ 70 | 71 | button:not([class]), 72 | input:not([class]), 73 | optgroup:not([class]), 74 | select:not([class]), 75 | textarea:not([class]) { 76 | border: 1px solid vars.$yma-color-silver; /* 1 */ 77 | } 78 | 79 | /** 80 | * Apply consistent focus styles to interactive elements. 81 | */ 82 | 83 | a, 84 | button, 85 | input, 86 | select, 87 | summary, 88 | textarea { 89 | &:focus { 90 | outline: 2px solid vars.$yma-color-transparent; 91 | } 92 | } 93 | 94 | /** 95 | * Set a minimum height for textareas without a defined `rows` attribute. 96 | */ 97 | 98 | textarea:not([rows]) { 99 | min-height: 10em; 100 | } 101 | 102 | /** 103 | * Ensure the buttons have a pointer cursor. 104 | */ 105 | 106 | button { 107 | cursor: pointer; 108 | } 109 | 110 | /** Disabled States 111 | * 1. Reduce opacity and set a "not-allowed" cursor for disabled elements. 112 | */ 113 | 114 | button:disabled, 115 | input:disabled, 116 | select:disabled, 117 | textarea:disabled { 118 | cursor: not-allowed; /* 1 */ 119 | opacity: 0.5; /* 1 */ 120 | } 121 | 122 | /** -- Typography -- 123 | * 1. Avoid text overflows. 124 | * 2. Improve line wrapping for headings. 125 | * 3. Add a consistent font weight for bold text. 126 | */ 127 | 128 | h1, 129 | h2, 130 | h3, 131 | h4, 132 | h5, 133 | h6, 134 | p { 135 | overflow-wrap: break-word; /* 1 */ 136 | } 137 | 138 | h1, 139 | h2, 140 | h3, 141 | h4, 142 | h5, 143 | h6 { 144 | font-size: 1rem; /* 3 */ 145 | font-weight: 600; /* 3 */ 146 | text-wrap: balance; /* 2 */ 147 | } 148 | 149 | p { 150 | text-wrap: pretty; /* 2 */ 151 | } 152 | 153 | /** 154 | * Add the correct font weight in Chrome, Edge, and Safari. 155 | */ 156 | 157 | b, 158 | strong { 159 | font-weight: 700; 160 | } 161 | 162 | /** 163 | * Add the correct font size in all browsers. 164 | */ 165 | 166 | small { 167 | font-size: 80%; 168 | line-height: 1.4; 169 | } 170 | 171 | /** 172 | * 1. Correct the inheritance and scaling of font size in all browsers. 173 | * 2. Correct the odd `em` font sizing in all browsers. 174 | */ 175 | 176 | pre, 177 | code, 178 | kbd, 179 | samp { 180 | font-family: monospace, monospace; /* 1 */ 181 | font-size: 1em; /* 2 */ 182 | } 183 | 184 | /** -- Links -- 185 | * 1. Remove underline styling from links by default. 186 | * 3. Reset color to inherit from parent element. 187 | */ 188 | 189 | a { 190 | color: inherit; /* 3 */ 191 | text-decoration: none; /* 1 */ 192 | } 193 | 194 | /** -- Lists -- 195 | * Remove default list styling and padding. 196 | */ 197 | 198 | ol, 199 | ul { 200 | list-style: none; 201 | padding: 0; 202 | } 203 | 204 | /** -- Tables -- 205 | * 1. Add a consistent font weight for bold text. 206 | */ 207 | 208 | th { 209 | font-size: 1rem; /* 1 */ 210 | font-weight: 600; /* 1 */ 211 | } 212 | 213 | /** -- Miscellaneous -- 214 | * 1. Add the correct height in Firefox. 215 | * 2. Correct text decoration. 216 | * 3. Add spacing around horizontal rules. 217 | */ 218 | 219 | hr { 220 | border-top: 1px solid vars.$yma-color-silver; /* 2 */ 221 | height: 0; /* 1 */ 222 | margin: 1em 0; /* 3 */ 223 | } 224 | 225 | /** 226 | * Ensure details and summary elements display correctly. 227 | */ 228 | 229 | details { 230 | display: block; 231 | } 232 | 233 | summary { 234 | display: list-item; 235 | } 236 | -------------------------------------------------------------------------------- /src/utilities/_background.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "../abstracts/variables" as vars; 4 | @use "../abstracts/mixins/" as mix; 5 | 6 | $yma-background-utils: ( 7 | "background-attachment": ( 8 | "prefix": "ba", 9 | "properties": ( 10 | "background-attachment", 11 | ), 12 | "values": ( 13 | "f": fixed, 14 | "l": local, 15 | "s": scroll, 16 | ), 17 | ), 18 | 19 | "background-clip": ( 20 | "prefix": "bc", 21 | "properties": ( 22 | "background-clip", 23 | ), 24 | "values": ( 25 | "bb": border-box, 26 | "cb": content-box, 27 | "pb": padding-box, 28 | "t": text, 29 | ), 30 | ), 31 | 32 | "background-origin": ( 33 | "prefix": "bo", 34 | "properties": ( 35 | "background-origin", 36 | ), 37 | "values": ( 38 | "bb": border-box, 39 | "cb": content-box, 40 | "pb": padding-box, 41 | ), 42 | ), 43 | 44 | "background-position": ( 45 | "prefix": "bp", 46 | "properties": ( 47 | "background-position", 48 | ), 49 | "values": ( 50 | "b": bottom, 51 | "c": center, 52 | "l": left, 53 | "lb": left bottom, 54 | "lt": left top, 55 | "r": right, 56 | "rb": right bottom, 57 | "rt": right top, 58 | "t": top, 59 | ), 60 | ), 61 | 62 | "background-repeat": ( 63 | "prefix": "br", 64 | "properties": ( 65 | "background-repeat", 66 | ), 67 | "values": ( 68 | "nr": no-repeat, 69 | "r": repeat, 70 | "ro": round, 71 | "rx": repeat-x, 72 | "ry": repeat-y, 73 | "s": space, 74 | ), 75 | ), 76 | 77 | "background-size": ( 78 | "prefix": "bs", 79 | "properties": ( 80 | "background-size", 81 | ), 82 | "values": ( 83 | "auto": auto, 84 | "c": cover, 85 | "co": contain, 86 | ), 87 | ), 88 | ); 89 | 90 | @each $properties, $map in $yma-background-utils { 91 | $prefix: map.get($map, "prefix"); 92 | $properties: map.get($map, "properties"); 93 | 94 | @include mix.create-utilities($map, $prefix, $properties); 95 | } 96 | -------------------------------------------------------------------------------- /src/utilities/_border.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "../abstracts/variables" as vars; 4 | @use "../abstracts/mixins/" as mix; 5 | @use "../utilities/maps/" as maps; 6 | 7 | $yma-border-utils: ( 8 | "border-collapse": ( 9 | "prefix": "bc", 10 | "properties": ( 11 | "border-collapse", 12 | ), 13 | "values": ( 14 | "c": collapse, 15 | "s": separate, 16 | ), 17 | ), 18 | 19 | "border-radius": ( 20 | "prefix": "rad", 21 | "properties": ( 22 | "border-radius", 23 | ), 24 | "values": ( 25 | "0": vars.$yma-border-radius * 0, 26 | "1": vars.$yma-border-radius, 27 | "2": vars.$yma-border-radius * 2, 28 | "3": vars.$yma-border-radius * 3, 29 | "4": vars.$yma-border-radius * 4, 30 | "5": vars.$yma-border-radius * 5, 31 | "6": vars.$yma-border-radius * 6, 32 | "7": vars.$yma-border-radius * 7, 33 | "8": vars.$yma-border-radius * 8, 34 | "full": 100%, 35 | "half": 50%, 36 | ), 37 | ), 38 | 39 | "border-bottom-radius": ( 40 | "prefix": "rad-b", 41 | "properties": ( 42 | "border-bottom-left-radius", 43 | "border-bottom-right-radius", 44 | ), 45 | "values": ( 46 | "0": vars.$yma-border-radius * 0, 47 | "1": vars.$yma-border-radius, 48 | "2": vars.$yma-border-radius * 2, 49 | "3": vars.$yma-border-radius * 3, 50 | "4": vars.$yma-border-radius * 4, 51 | "5": vars.$yma-border-radius * 5, 52 | "6": vars.$yma-border-radius * 6, 53 | "7": vars.$yma-border-radius * 7, 54 | "8": vars.$yma-border-radius * 8, 55 | ), 56 | ), 57 | 58 | "border-left-radius": ( 59 | "prefix": "rad-l", 60 | "properties": ( 61 | "border-bottom-left-radius", 62 | "border-top-left-radius", 63 | ), 64 | "values": ( 65 | "0": vars.$yma-border-radius * 0, 66 | "1": vars.$yma-border-radius, 67 | "2": vars.$yma-border-radius * 2, 68 | "3": vars.$yma-border-radius * 3, 69 | "4": vars.$yma-border-radius * 4, 70 | "5": vars.$yma-border-radius * 5, 71 | "6": vars.$yma-border-radius * 6, 72 | "7": vars.$yma-border-radius * 7, 73 | "8": vars.$yma-border-radius * 8, 74 | ), 75 | ), 76 | 77 | "border-right-radius": ( 78 | "prefix": "rad-r", 79 | "properties": ( 80 | "border-bottom-right-radius", 81 | "border-top-right-radius", 82 | ), 83 | "values": ( 84 | "0": vars.$yma-border-radius * 0, 85 | "1": vars.$yma-border-radius, 86 | "2": vars.$yma-border-radius * 2, 87 | "3": vars.$yma-border-radius * 3, 88 | "4": vars.$yma-border-radius * 4, 89 | "5": vars.$yma-border-radius * 5, 90 | "6": vars.$yma-border-radius * 6, 91 | "7": vars.$yma-border-radius * 7, 92 | "8": vars.$yma-border-radius * 8, 93 | ), 94 | ), 95 | 96 | "border-bottom-left-radius": ( 97 | "prefix": "rad-bl", 98 | "properties": ( 99 | "border-bottom-left-radius", 100 | ), 101 | "values": ( 102 | "0": vars.$yma-border-radius * 0, 103 | "1": vars.$yma-border-radius, 104 | "2": vars.$yma-border-radius * 2, 105 | "3": vars.$yma-border-radius * 3, 106 | "4": vars.$yma-border-radius * 4, 107 | "5": vars.$yma-border-radius * 5, 108 | "6": vars.$yma-border-radius * 6, 109 | "7": vars.$yma-border-radius * 7, 110 | "8": vars.$yma-border-radius * 8, 111 | ), 112 | ), 113 | 114 | "border-bottom-right-radius": ( 115 | "prefix": "rad-br", 116 | "properties": ( 117 | "border-bottom-right-radius", 118 | ), 119 | "values": ( 120 | "0": vars.$yma-border-radius * 0, 121 | "1": vars.$yma-border-radius, 122 | "2": vars.$yma-border-radius * 2, 123 | "3": vars.$yma-border-radius * 3, 124 | "4": vars.$yma-border-radius * 4, 125 | "5": vars.$yma-border-radius * 5, 126 | "6": vars.$yma-border-radius * 6, 127 | "7": vars.$yma-border-radius * 7, 128 | "8": vars.$yma-border-radius * 8, 129 | ), 130 | ), 131 | 132 | "border-top-radius": ( 133 | "prefix": "rad-t", 134 | "properties": ( 135 | "border-top-left-radius", 136 | "border-top-right-radius", 137 | ), 138 | "values": ( 139 | "0": vars.$yma-border-radius * 0, 140 | "1": vars.$yma-border-radius, 141 | "2": vars.$yma-border-radius * 2, 142 | "3": vars.$yma-border-radius * 3, 143 | "4": vars.$yma-border-radius * 4, 144 | "5": vars.$yma-border-radius * 5, 145 | "6": vars.$yma-border-radius * 6, 146 | "7": vars.$yma-border-radius * 7, 147 | "8": vars.$yma-border-radius * 8, 148 | ), 149 | ), 150 | 151 | "border-top-left-radius": ( 152 | "prefix": "rad-tl", 153 | "properties": ( 154 | "border-top-left-radius", 155 | ), 156 | "values": ( 157 | "0": vars.$yma-border-radius * 0, 158 | "1": vars.$yma-border-radius, 159 | "2": vars.$yma-border-radius * 2, 160 | "3": vars.$yma-border-radius * 3, 161 | "4": vars.$yma-border-radius * 4, 162 | "5": vars.$yma-border-radius * 5, 163 | "6": vars.$yma-border-radius * 6, 164 | "7": vars.$yma-border-radius * 7, 165 | "8": vars.$yma-border-radius * 8, 166 | ), 167 | ), 168 | 169 | "border-top-right-radius": ( 170 | "prefix": "rad-tr", 171 | "properties": ( 172 | "border-top-right-radius", 173 | ), 174 | "values": ( 175 | "0": vars.$yma-border-radius * 0, 176 | "1": vars.$yma-border-radius, 177 | "2": vars.$yma-border-radius * 2, 178 | "3": vars.$yma-border-radius * 3, 179 | "4": vars.$yma-border-radius * 4, 180 | "5": vars.$yma-border-radius * 5, 181 | "6": vars.$yma-border-radius * 6, 182 | "7": vars.$yma-border-radius * 7, 183 | "8": vars.$yma-border-radius * 8, 184 | ), 185 | ), 186 | 187 | "border-spacing": ( 188 | "prefix": "bs", 189 | "properties": ( 190 | "border-spacing", 191 | ), 192 | "values": ( 193 | "0": vars.$yma-border-spacing * 0, 194 | "1": vars.$yma-border-spacing, 195 | "2": vars.$yma-border-spacing * 2, 196 | "3": vars.$yma-border-spacing * 3, 197 | "4": vars.$yma-border-spacing * 4, 198 | "5": vars.$yma-border-spacing * 5, 199 | "6": vars.$yma-border-spacing * 6, 200 | "7": vars.$yma-border-spacing * 7, 201 | "8": vars.$yma-border-spacing * 8, 202 | ), 203 | ), 204 | 205 | "border-style": ( 206 | "prefix": "b", 207 | "properties": ( 208 | "border-style", 209 | ), 210 | "values": ( 211 | "none": none, 212 | "d": dashed, 213 | "s": solid, 214 | ), 215 | ), 216 | 217 | "border-width": ( 218 | "prefix": "b", 219 | "properties": ( 220 | "border-width", 221 | ), 222 | "values": ( 223 | "0": vars.$yma-border * 0, 224 | "1": vars.$yma-border, 225 | "2": vars.$yma-border * 2, 226 | "3": vars.$yma-border * 3, 227 | "4": vars.$yma-border * 4, 228 | "5": vars.$yma-border * 5, 229 | "6": vars.$yma-border * 6, 230 | "7": vars.$yma-border * 7, 231 | "8": vars.$yma-border * 8, 232 | ), 233 | ), 234 | 235 | "border-bottom-width": ( 236 | "prefix": "bb", 237 | "properties": ( 238 | "border-bottom-width", 239 | ), 240 | "values": ( 241 | "0": vars.$yma-border * 0, 242 | "1": vars.$yma-border, 243 | "2": vars.$yma-border * 2, 244 | "3": vars.$yma-border * 3, 245 | "4": vars.$yma-border * 4, 246 | "5": vars.$yma-border * 5, 247 | "6": vars.$yma-border * 6, 248 | "7": vars.$yma-border * 7, 249 | "8": vars.$yma-border * 8, 250 | ), 251 | ), 252 | 253 | "border-left-width": ( 254 | "prefix": "bl", 255 | "properties": ( 256 | "border-left-width", 257 | ), 258 | "values": ( 259 | "0": vars.$yma-border * 0, 260 | "1": vars.$yma-border, 261 | "2": vars.$yma-border * 2, 262 | "3": vars.$yma-border * 3, 263 | "4": vars.$yma-border * 4, 264 | "5": vars.$yma-border * 5, 265 | "6": vars.$yma-border * 6, 266 | "7": vars.$yma-border * 7, 267 | "8": vars.$yma-border * 8, 268 | ), 269 | ), 270 | 271 | "border-right-width": ( 272 | "prefix": "br", 273 | "properties": ( 274 | "border-right-width", 275 | ), 276 | "values": ( 277 | "0": vars.$yma-border * 0, 278 | "1": vars.$yma-border, 279 | "2": vars.$yma-border * 2, 280 | "3": vars.$yma-border * 3, 281 | "4": vars.$yma-border * 4, 282 | "5": vars.$yma-border * 5, 283 | "6": vars.$yma-border * 6, 284 | "7": vars.$yma-border * 7, 285 | "8": vars.$yma-border * 8, 286 | ), 287 | ), 288 | 289 | "border-top-width": ( 290 | "prefix": "bt", 291 | "properties": ( 292 | "border-top-width", 293 | ), 294 | "values": ( 295 | "0": vars.$yma-border * 0, 296 | "1": vars.$yma-border, 297 | "2": vars.$yma-border * 2, 298 | "3": vars.$yma-border * 3, 299 | "4": vars.$yma-border * 4, 300 | "5": vars.$yma-border * 5, 301 | "6": vars.$yma-border * 6, 302 | "7": vars.$yma-border * 7, 303 | "8": vars.$yma-border * 8, 304 | ), 305 | ), 306 | ); 307 | 308 | @each $properties, $map in $yma-border-utils { 309 | $prefix: map.get($map, "prefix"); 310 | $properties: map.get($map, "properties"); 311 | 312 | @include mix.create-utilities($map, $prefix, $properties); 313 | } 314 | -------------------------------------------------------------------------------- /src/utilities/_box-model.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "sass:meta"; 4 | @use "../abstracts/variables" as vars; 5 | @use "../abstracts/mixins/" as mix; 6 | @use "../utilities/maps/" as maps; 7 | 8 | $yma-box-model-utils: ( 9 | "box-sizing": ( 10 | "prefix": "bs", 11 | "properties": ( 12 | "box-sizing", 13 | ), 14 | "values": ( 15 | "bb": border-box, 16 | "cb": content-box, 17 | ), 18 | ), 19 | 20 | "dimension": ( 21 | "prefix": "d", 22 | "properties": ( 23 | "height", 24 | "width", 25 | ), 26 | "values": maps.$yma-dimension-map, 27 | ), 28 | 29 | "max-dimension": ( 30 | "prefix": "max-d", 31 | "properties": ( 32 | "max-height", 33 | "max-width", 34 | ), 35 | "values": maps.$yma-dimension-map, 36 | ), 37 | 38 | "min-dimension": ( 39 | "prefix": "min-d", 40 | "properties": ( 41 | "min-height", 42 | "min-width", 43 | ), 44 | "values": maps.$yma-dimension-map, 45 | ), 46 | 47 | "height": ( 48 | "prefix": "h", 49 | "properties": ( 50 | "height", 51 | ), 52 | "values": maps.$yma-height-map, 53 | ), 54 | 55 | "max-height": ( 56 | "prefix": "max-h", 57 | "properties": ( 58 | "max-height", 59 | ), 60 | "values": maps.$yma-height-map, 61 | ), 62 | 63 | "min-height": ( 64 | "prefix": "min-h", 65 | "properties": ( 66 | "min-height", 67 | ), 68 | "values": maps.$yma-height-map, 69 | ), 70 | 71 | "margin": ( 72 | "prefix": "m", 73 | "properties": ( 74 | "margin", 75 | ), 76 | "values": maps.$yma-margin-map, 77 | ), 78 | 79 | "margin-block-end": ( 80 | "prefix": "mbe", 81 | "properties": ( 82 | "margin-block-end", 83 | ), 84 | "values": maps.$yma-margin-map, 85 | ), 86 | 87 | "margin-block-start": ( 88 | "prefix": "mbs", 89 | "properties": ( 90 | "margin-block-start", 91 | ), 92 | "values": maps.$yma-margin-map, 93 | ), 94 | 95 | "margin-bottom": ( 96 | "prefix": "mb", 97 | "properties": ( 98 | "margin-bottom", 99 | ), 100 | "values": maps.$yma-margin-map, 101 | ), 102 | 103 | "margin-inline-end": ( 104 | "prefix": "mie", 105 | "properties": ( 106 | "margin-inline-end", 107 | ), 108 | "values": maps.$yma-margin-map, 109 | ), 110 | 111 | "margin-inline-start": ( 112 | "prefix": "mis", 113 | "properties": ( 114 | "margin-inline-start", 115 | ), 116 | "values": maps.$yma-margin-map, 117 | ), 118 | 119 | "margin-left": ( 120 | "prefix": "ml", 121 | "properties": ( 122 | "margin-left", 123 | ), 124 | "values": maps.$yma-margin-map, 125 | ), 126 | 127 | "margin-right": ( 128 | "prefix": "mr", 129 | "properties": ( 130 | "margin-right", 131 | ), 132 | "values": maps.$yma-margin-map, 133 | ), 134 | 135 | "margin-top": ( 136 | "prefix": "mt", 137 | "properties": ( 138 | "margin-top", 139 | ), 140 | "values": maps.$yma-margin-map, 141 | ), 142 | 143 | "margin-x": ( 144 | "prefix": "mx", 145 | "properties": ( 146 | "margin-left", 147 | "margin-right", 148 | ), 149 | "values": maps.$yma-margin-map, 150 | ), 151 | 152 | "margin-y": ( 153 | "prefix": "my", 154 | "properties": ( 155 | "margin-bottom", 156 | "margin-top", 157 | ), 158 | "values": maps.$yma-margin-map, 159 | ), 160 | 161 | "padding": ( 162 | "prefix": "p", 163 | "properties": ( 164 | "padding", 165 | ), 166 | "values": maps.$yma-padding-map, 167 | ), 168 | 169 | "padding-block-end": ( 170 | "prefix": "pbe", 171 | "properties": ( 172 | "padding-block-end", 173 | ), 174 | "values": maps.$yma-padding-map, 175 | ), 176 | 177 | "padding-block-start": ( 178 | "prefix": "pbs", 179 | "properties": ( 180 | "padding-block-start", 181 | ), 182 | "values": maps.$yma-padding-map, 183 | ), 184 | 185 | "padding-bottom": ( 186 | "prefix": "pb", 187 | "properties": ( 188 | "padding-bottom", 189 | ), 190 | "values": maps.$yma-padding-map, 191 | ), 192 | 193 | "padding-inline-end": ( 194 | "prefix": "pie", 195 | "properties": ( 196 | "padding-inline-end", 197 | ), 198 | "values": maps.$yma-padding-map, 199 | ), 200 | 201 | "padding-inline-start": ( 202 | "prefix": "pis", 203 | "properties": ( 204 | "padding-inline-start", 205 | ), 206 | "values": maps.$yma-padding-map, 207 | ), 208 | 209 | "padding-left": ( 210 | "prefix": "pl", 211 | "properties": ( 212 | "padding-left", 213 | ), 214 | "values": maps.$yma-padding-map, 215 | ), 216 | 217 | "padding-right": ( 218 | "prefix": "pr", 219 | "properties": ( 220 | "padding-right", 221 | ), 222 | "values": maps.$yma-padding-map, 223 | ), 224 | 225 | "padding-top": ( 226 | "prefix": "pt", 227 | "properties": ( 228 | "padding-top", 229 | ), 230 | "values": maps.$yma-padding-map, 231 | ), 232 | 233 | "padding-x": ( 234 | "prefix": "px", 235 | "properties": ( 236 | "padding-left", 237 | "padding-right", 238 | ), 239 | "values": maps.$yma-padding-map, 240 | ), 241 | 242 | "padding-y": ( 243 | "prefix": "py", 244 | "properties": ( 245 | "padding-bottom", 246 | "padding-top", 247 | ), 248 | "values": maps.$yma-padding-map, 249 | ), 250 | 251 | "width": ( 252 | "prefix": "w", 253 | "properties": ( 254 | "width", 255 | ), 256 | "values": maps.$yma-width-map, 257 | ), 258 | 259 | "max-width": ( 260 | "prefix": "max-w", 261 | "properties": ( 262 | "max-width", 263 | ), 264 | "values": maps.$yma-width-map, 265 | ), 266 | 267 | "min-width": ( 268 | "prefix": "min-w", 269 | "properties": ( 270 | "min-width", 271 | ), 272 | "values": maps.$yma-width-map, 273 | ), 274 | ); 275 | 276 | @each $name, $map in $yma-box-model-utils { 277 | $prefix: map.get($map, "prefix"); 278 | $properties: map.get($map, "properties"); 279 | $values: map.get($map, "values"); 280 | 281 | @if meta.type-of($values) == "map" and map.get($values, "custom") { 282 | @include mix.create-spacing-utilities( 283 | $prefix, 284 | map.get($values, "map"), 285 | $properties 286 | ); 287 | } @else { 288 | @include mix.create-utilities($map, $prefix, $properties); 289 | } 290 | } 291 | -------------------------------------------------------------------------------- /src/utilities/_color.scss: -------------------------------------------------------------------------------- 1 | @use "sass:color"; 2 | @use "sass:map"; 3 | @use "../abstracts/mixins" as mix; 4 | @use "../abstracts/functions" as fun; 5 | @use "../abstracts/_theme" as theme; 6 | 7 | $yma-color-utils: ( 8 | "accent-color": ( 9 | "prefix": "ac", 10 | "property": "accent-color", 11 | ), 12 | 13 | "background-color": ( 14 | "prefix": "bg", 15 | "property": "background-color", 16 | ), 17 | 18 | "border-color": ( 19 | "prefix": "bc", 20 | "property": "border-color", 21 | ), 22 | 23 | "border-bottom-color": ( 24 | "prefix": "bc-b", 25 | "property": "border-bottom-color", 26 | ), 27 | 28 | "border-left-color": ( 29 | "prefix": "bc-l", 30 | "property": "border-left-color", 31 | ), 32 | 33 | "border-right-color": ( 34 | "prefix": "bc-r", 35 | "property": "border-right-color", 36 | ), 37 | 38 | "border-top-color": ( 39 | "prefix": "bc-t", 40 | "property": "border-top-color", 41 | ), 42 | 43 | "caret-color": ( 44 | "prefix": "cc", 45 | "property": "caret-color", 46 | ), 47 | 48 | "color": ( 49 | "prefix": "tc", 50 | "property": "color", 51 | ), 52 | 53 | "fill": ( 54 | "prefix": "f", 55 | "property": "fill", 56 | ), 57 | 58 | "outline-color": ( 59 | "prefix": "oc", 60 | "property": "outline-color", 61 | ), 62 | 63 | "stroke": ( 64 | "prefix": "s", 65 | "property": "stroke", 66 | ), 67 | 68 | "text-decoration-color": ( 69 | "prefix": "tdc", 70 | "property": "text-decoration-color", 71 | ), 72 | ); 73 | 74 | @each $utility, $map in $yma-color-utils { 75 | $property: map.get($map, "property"); 76 | $prefix: map.get($map, "prefix"); 77 | 78 | @each $k, $v in theme.$yma-theme { 79 | @include mix.mod-color-scaling($property, $prefix, $k, $v); 80 | 81 | @if (fun.ignore-neutral($v, theme.$yma-theme)) { 82 | @include mix.shade-scaling($property, $prefix, $k, $v, 14%); 83 | } 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /src/utilities/_effect.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "../abstracts/variables" as vars; 4 | @use "../abstracts/mixins/" as mix; 5 | 6 | $yma-effect-utils: ( 7 | "backdrop-blur": ( 8 | "prefix": "bf-b", 9 | "properties": ( 10 | "backdrop-filter", 11 | ), 12 | "values": ( 13 | "none": blur(vars.$yma-backdrop-blur * 0), 14 | "xs": blur(vars.$yma-backdrop-blur), 15 | "sm": blur(vars.$yma-backdrop-blur * 2), 16 | "md": blur(vars.$yma-backdrop-blur * 4), 17 | "lg": blur(vars.$yma-backdrop-blur * 8), 18 | "xl": blur(vars.$yma-backdrop-blur * 16), 19 | ), 20 | ), 21 | 22 | "blur": ( 23 | "prefix": "f-b", 24 | "properties": ( 25 | "filter", 26 | ), 27 | "values": ( 28 | "none": blur(vars.$yma-blur * 0), 29 | "xs": blur(vars.$yma-blur), 30 | "sm": blur(vars.$yma-blur * 2), 31 | "md": blur(vars.$yma-blur * 4), 32 | "lg": blur(vars.$yma-blur * 8), 33 | "xl": blur(vars.$yma-blur * 16), 34 | ), 35 | ), 36 | 37 | "box-shadow": ( 38 | "prefix": "bs", 39 | "properties": ( 40 | "box-shadow", 41 | ), 42 | "values": ( 43 | "none": none, 44 | "xs": vars.$yma-box-shadow-xs, 45 | "sm": vars.$yma-box-shadow-sm, 46 | "md": vars.$yma-box-shadow-md, 47 | "lg": vars.$yma-box-shadow-lg, 48 | "xl": vars.$yma-box-shadow-xl, 49 | ), 50 | ), 51 | 52 | "grayscale": ( 53 | "prefix": "f-g", 54 | "properties": ( 55 | "filter", 56 | ), 57 | "values": ( 58 | "0": grayscale(vars.$yma-grayscale * 0), 59 | "10": grayscale(vars.$yma-grayscale), 60 | "20": grayscale(vars.$yma-grayscale * 2), 61 | "30": grayscale(vars.$yma-grayscale * 3), 62 | "40": grayscale(vars.$yma-grayscale * 4), 63 | "50": grayscale(vars.$yma-grayscale * 5), 64 | "60": grayscale(vars.$yma-grayscale * 6), 65 | "70": grayscale(vars.$yma-grayscale * 7), 66 | "80": grayscale(vars.$yma-grayscale * 8), 67 | "90": grayscale(vars.$yma-grayscale * 9), 68 | "100": grayscale(vars.$yma-grayscale * 10), 69 | ), 70 | ), 71 | 72 | "opacity": ( 73 | "prefix": "o", 74 | "properties": ( 75 | "opacity", 76 | ), 77 | "values": ( 78 | "0": 0, 79 | "10": 0.1, 80 | "20": 0.2, 81 | "30": 0.3, 82 | "40": 0.4, 83 | "50": 0.5, 84 | "60": 0.6, 85 | "70": 0.7, 86 | "80": 0.8, 87 | "90": 0.9, 88 | "100": 1, 89 | ), 90 | ), 91 | ); 92 | 93 | @each $name, $map in $yma-effect-utils { 94 | $prefix: map.get($map, "prefix"); 95 | $properties: map.get($map, "properties"); 96 | 97 | @include mix.create-utilities($map, $prefix, $properties); 98 | } 99 | -------------------------------------------------------------------------------- /src/utilities/_flexbox.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "../abstracts/variables" as vars; 4 | @use "../abstracts/mixins/" as mix; 5 | @use "../utilities/maps/" as maps; 6 | 7 | $yma-flexbox-utils: ( 8 | "align-content": ( 9 | "prefix": "ac", 10 | "properties": ( 11 | "align-content", 12 | ), 13 | "values": ( 14 | "b": baseline, 15 | "c": center, 16 | "fe": flex-end, 17 | "fs": flex-start, 18 | "n": normal, 19 | "st": stretch, 20 | "sa": space-around, 21 | "sb": space-between, 22 | "se": space-evenly, 23 | ), 24 | ), 25 | 26 | "align-items": ( 27 | "prefix": "ai", 28 | "properties": ( 29 | "align-items", 30 | ), 31 | "values": ( 32 | "b": baseline, 33 | "c": center, 34 | "fe": flex-end, 35 | "fs": flex-start, 36 | "st": stretch, 37 | ), 38 | ), 39 | 40 | "align-self": ( 41 | "prefix": "as", 42 | "properties": ( 43 | "align-self", 44 | ), 45 | "values": ( 46 | "auto": auto, 47 | "b": baseline, 48 | "c": center, 49 | "fe": flex-end, 50 | "fs": flex-start, 51 | "st": stretch, 52 | ), 53 | ), 54 | 55 | "flex-basis": ( 56 | "prefix": "fb", 57 | "properties": ( 58 | "flex-basis", 59 | ), 60 | "values": maps.$yma-flex-basis-map, 61 | ), 62 | 63 | "flex-direction": ( 64 | "prefix": "fd", 65 | "properties": ( 66 | "flex-direction", 67 | ), 68 | "values": ( 69 | "c": column, 70 | "cr": column-reverse, 71 | "r": row, 72 | "rr": row-reverse, 73 | ), 74 | ), 75 | 76 | "flex-grow": ( 77 | "prefix": "fg", 78 | "properties": ( 79 | "flex-grow", 80 | ), 81 | "values": ( 82 | "0": 0, 83 | "1": 1, 84 | "2": 2, 85 | "3": 3, 86 | "4": 4, 87 | "5": 5, 88 | "6": 6, 89 | "7": 7, 90 | "8": 8, 91 | ), 92 | ), 93 | 94 | "flex-shrink": ( 95 | "prefix": "fs", 96 | "properties": ( 97 | "flex-shrink", 98 | ), 99 | "values": ( 100 | "0": 0, 101 | "1": 1, 102 | "2": 2, 103 | "3": 3, 104 | "4": 4, 105 | "5": 5, 106 | "6": 6, 107 | "7": 7, 108 | "8": 8, 109 | ), 110 | ), 111 | 112 | "flex-wrap": ( 113 | "prefix": "fw", 114 | "properties": ( 115 | "flex-wrap", 116 | ), 117 | "values": ( 118 | "nw": nowrap, 119 | "w": wrap, 120 | "wr": wrap-reverse, 121 | ), 122 | ), 123 | 124 | "flex": ( 125 | "prefix": "f", 126 | "properties": ( 127 | "flex", 128 | ), 129 | "values": ( 130 | "1": 1 1 0%, 131 | "2": 2 2 0%, 132 | "3": 3 3 0%, 133 | "4": 4 4 0%, 134 | "5": 5 5 0%, 135 | "6": 6 6 0%, 136 | "auto": 1 1 auto, 137 | "none": none, 138 | ), 139 | ), 140 | 141 | "justify-content": ( 142 | "prefix": "jc", 143 | "properties": ( 144 | "justify-content", 145 | ), 146 | "values": ( 147 | "c": center, 148 | "fe": flex-end, 149 | "fs": flex-start, 150 | "n": normal, 151 | "st": stretch, 152 | "sa": space-around, 153 | "sb": space-between, 154 | "se": space-evenly, 155 | ), 156 | ), 157 | 158 | "justify-items": ( 159 | "prefix": "ji", 160 | "properties": ( 161 | "justify-items", 162 | ), 163 | "values": ( 164 | "c": center, 165 | "e": end, 166 | "s": start, 167 | "st": stretch, 168 | ), 169 | ), 170 | 171 | "justify-self": ( 172 | "prefix": "js", 173 | "properties": ( 174 | "justify-self", 175 | ), 176 | "values": ( 177 | "auto": auto, 178 | "c": center, 179 | "e": end, 180 | "s": start, 181 | "st": stretch, 182 | ), 183 | ), 184 | 185 | "order": ( 186 | "prefix": "or", 187 | "properties": ( 188 | "order", 189 | ), 190 | "values": ( 191 | "l": -9999, 192 | "0": 0, 193 | "1": 1, 194 | "2": 2, 195 | "3": 3, 196 | "4": 4, 197 | "5": 5, 198 | "6": 6, 199 | "7": 7, 200 | "8": 8, 201 | "9": 9, 202 | "10": 1, 203 | "f": 9999, 204 | ), 205 | ), 206 | 207 | "place-content": ( 208 | "prefix": "pc", 209 | "properties": ( 210 | "place-content", 211 | ), 212 | "values": ( 213 | "b": baseline, 214 | "c": center, 215 | "e": end, 216 | "s": start, 217 | "sa": space-around, 218 | "sb": space-between, 219 | "se": space-evenly, 220 | "st": stretch, 221 | ), 222 | ), 223 | 224 | "place-items": ( 225 | "prefix": "pi", 226 | "properties": ( 227 | "place-items", 228 | ), 229 | "values": ( 230 | "b": baseline, 231 | "c": center, 232 | "e": end, 233 | "s": start, 234 | "st": stretch, 235 | ), 236 | ), 237 | 238 | "place-self": ( 239 | "prefix": "ps", 240 | "properties": ( 241 | "place-self", 242 | ), 243 | "values": ( 244 | "auto": auto, 245 | "c": center, 246 | "e": end, 247 | "s": start, 248 | "st": stretch, 249 | ), 250 | ), 251 | ); 252 | 253 | @each $name, $map in $yma-flexbox-utils { 254 | $prefix: map.get($map, "prefix"); 255 | $properties: map.get($map, "properties"); 256 | 257 | @include mix.create-utilities($map, $prefix, $properties); 258 | } 259 | -------------------------------------------------------------------------------- /src/utilities/_grid.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "sass:meta"; 4 | @use "../abstracts/variables" as vars; 5 | @use "../abstracts/mixins/" as mix; 6 | @use "../utilities/maps/" as maps; 7 | 8 | $yma-grid-utils: ( 9 | "column-gap": ( 10 | "prefix": "cg", 11 | "properties": ( 12 | "column-gap", 13 | ), 14 | "values": maps.$yma-gap-map, 15 | ), 16 | 17 | "gap": ( 18 | "prefix": "g", 19 | "properties": ( 20 | "gap", 21 | ), 22 | "values": maps.$yma-gap-map, 23 | ), 24 | 25 | "grid-auto-columns": ( 26 | "prefix": "gac", 27 | "properties": ( 28 | "grid-auto-columns", 29 | ), 30 | "values": ( 31 | "auto": auto, 32 | "max": max-content, 33 | "min": min-content, 34 | ), 35 | ), 36 | 37 | "grid-auto-flow": ( 38 | "prefix": "gaf", 39 | "properties": ( 40 | "grid-auto-flow", 41 | ), 42 | "values": ( 43 | "c": column, 44 | "cd": column dense, 45 | "d": dense, 46 | "r": row, 47 | "rd": row dense, 48 | ), 49 | ), 50 | 51 | "grid-auto-rows": ( 52 | "prefix": "gar", 53 | "properties": ( 54 | "grid-auto-rows", 55 | ), 56 | "values": ( 57 | "auto": auto, 58 | "max": max-content, 59 | "min": min-content, 60 | ), 61 | ), 62 | 63 | "grid-column": ( 64 | "prefix": "gc-s", 65 | "properties": ( 66 | "grid-column", 67 | ), 68 | "values": ( 69 | "1": span 1 / span 1, 70 | "2": span 2 / span 2, 71 | "3": span 3 / span 3, 72 | "4": span 4 / span 4, 73 | "5": span 5 / span 5, 74 | "6": span 6 / span 6, 75 | "7": span 7 / span 7, 76 | "8": span 8 / span 8, 77 | "9": span 9 / span 9, 78 | "10": span 10 / span 10, 79 | "11": span 11 / span 11, 80 | "12": span 12 / span 12, 81 | "13": span 13 / span 13, 82 | "14": span 14 / span 14, 83 | "15": span 15 / span 15, 84 | "16": span 16 / span 16, 85 | ), 86 | ), 87 | 88 | "grid-column-end": ( 89 | "prefix": "gce", 90 | "properties": ( 91 | "grid-column-end", 92 | ), 93 | "values": ( 94 | "1": 1, 95 | "2": 2, 96 | "3": 3, 97 | "4": 4, 98 | "5": 5, 99 | "6": 6, 100 | "7": 7, 101 | "8": 8, 102 | "9": 9, 103 | "10": 10, 104 | "11": 11, 105 | "12": 12, 106 | "13": 13, 107 | "14": 14, 108 | "15": 15, 109 | "16": 16, 110 | ), 111 | ), 112 | 113 | "grid-column-start": ( 114 | "prefix": "gcs", 115 | "properties": ( 116 | "grid-column-start", 117 | ), 118 | "values": ( 119 | "1": 1, 120 | "2": 2, 121 | "3": 3, 122 | "4": 4, 123 | "5": 5, 124 | "6": 6, 125 | "7": 7, 126 | "8": 8, 127 | "9": 9, 128 | "10": 10, 129 | "11": 11, 130 | "12": 12, 131 | "13": 13, 132 | "14": 14, 133 | "15": 15, 134 | "16": 16, 135 | ), 136 | ), 137 | 138 | "grid-row": ( 139 | "prefix": "gr-s", 140 | "properties": ( 141 | "grid-row", 142 | ), 143 | "values": ( 144 | "1": span 1 / span 1, 145 | "2": span 2 / span 2, 146 | "3": span 3 / span 3, 147 | "4": span 4 / span 4, 148 | "5": span 5 / span 5, 149 | "6": span 6 / span 6, 150 | "7": span 7 / span 7, 151 | "8": span 8 / span 8, 152 | "9": span 9 / span 9, 153 | "10": span 10 / span 10, 154 | "11": span 11 / span 11, 155 | "12": span 12 / span 12, 156 | "13": span 13 / span 13, 157 | "14": span 14 / span 14, 158 | "15": span 15 / span 15, 159 | "16": span 16 / span 16, 160 | ), 161 | ), 162 | 163 | "grid-row-end": ( 164 | "prefix": "gre", 165 | "properties": ( 166 | "grid-row-end", 167 | ), 168 | "values": ( 169 | "1": 1, 170 | "2": 2, 171 | "3": 3, 172 | "4": 4, 173 | "5": 5, 174 | "6": 6, 175 | "7": 7, 176 | "8": 8, 177 | "9": 9, 178 | "10": 10, 179 | "11": 11, 180 | "12": 12, 181 | "13": 13, 182 | "14": 14, 183 | "15": 15, 184 | "16": 16, 185 | ), 186 | ), 187 | 188 | "grid-row-start": ( 189 | "prefix": "grs", 190 | "properties": ( 191 | "grid-row-start", 192 | ), 193 | "values": ( 194 | "1": 1, 195 | "2": 2, 196 | "3": 3, 197 | "4": 4, 198 | "5": 5, 199 | "6": 6, 200 | "7": 7, 201 | "8": 8, 202 | "9": 9, 203 | "10": 10, 204 | "11": 11, 205 | "12": 12, 206 | "13": 13, 207 | "14": 14, 208 | "15": 15, 209 | "16": 16, 210 | ), 211 | ), 212 | 213 | "grid-template-columns": ( 214 | "prefix": "gtc", 215 | "properties": ( 216 | "grid-template-columns", 217 | ), 218 | "values": ( 219 | "1": repeat(1, minmax(0, 1fr)), 220 | "2": repeat(2, minmax(0, 1fr)), 221 | "3": repeat(3, minmax(0, 1fr)), 222 | "4": repeat(4, minmax(0, 1fr)), 223 | "5": repeat(5, minmax(0, 1fr)), 224 | "6": repeat(6, minmax(0, 1fr)), 225 | "7": repeat(7, minmax(0, 1fr)), 226 | "8": repeat(8, minmax(0, 1fr)), 227 | "9": repeat(9, minmax(0, 1fr)), 228 | "10": repeat(10, minmax(0, 1fr)), 229 | "11": repeat(11, minmax(0, 1fr)), 230 | "12": repeat(12, minmax(0, 1fr)), 231 | "13": repeat(13, minmax(0, 1fr)), 232 | "14": repeat(14, minmax(0, 1fr)), 233 | "15": repeat(15, minmax(0, 1fr)), 234 | "16": repeat(16, minmax(0, 1fr)), 235 | ), 236 | ), 237 | 238 | "grid-template-rows": ( 239 | "prefix": "gtr", 240 | "properties": ( 241 | "grid-template-rows", 242 | ), 243 | "values": ( 244 | "1": repeat(1, minmax(0, 1fr)), 245 | "2": repeat(2, minmax(0, 1fr)), 246 | "3": repeat(3, minmax(0, 1fr)), 247 | "4": repeat(4, minmax(0, 1fr)), 248 | "5": repeat(5, minmax(0, 1fr)), 249 | "6": repeat(6, minmax(0, 1fr)), 250 | "7": repeat(7, minmax(0, 1fr)), 251 | "8": repeat(8, minmax(0, 1fr)), 252 | "9": repeat(9, minmax(0, 1fr)), 253 | "10": repeat(10, minmax(0, 1fr)), 254 | "11": repeat(11, minmax(0, 1fr)), 255 | "12": repeat(12, minmax(0, 1fr)), 256 | "13": repeat(13, minmax(0, 1fr)), 257 | "14": repeat(14, minmax(0, 1fr)), 258 | "15": repeat(15, minmax(0, 1fr)), 259 | "16": repeat(16, minmax(0, 1fr)), 260 | ), 261 | ), 262 | 263 | "row-gap": ( 264 | "prefix": "rg", 265 | "properties": ( 266 | "row-gap", 267 | ), 268 | "values": maps.$yma-gap-map, 269 | ), 270 | ); 271 | 272 | @each $name, $map in $yma-grid-utils { 273 | $prefix: map.get($map, "prefix"); 274 | $properties: map.get($map, "properties"); 275 | 276 | @include mix.create-utilities($map, $prefix, $properties); 277 | } 278 | -------------------------------------------------------------------------------- /src/utilities/_index.scss: -------------------------------------------------------------------------------- 1 | @forward "background"; 2 | @forward "border"; 3 | @forward "box-model"; 4 | @forward "color"; 5 | @forward "effect"; 6 | @forward "flexbox"; 7 | @forward "grid"; 8 | @forward "interactivity"; 9 | @forward "positioning"; 10 | @forward "outline"; 11 | @forward "svg"; 12 | @forward "table"; 13 | @forward "transform"; 14 | @forward "typography"; 15 | -------------------------------------------------------------------------------- /src/utilities/_interactivity.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "../abstracts/variables" as vars; 4 | @use "../abstracts/mixins/" as mix; 5 | @use "../utilities/maps/" as maps; 6 | 7 | $yma-interactivity-utils: ( 8 | "appearance": ( 9 | "prefix": "a", 10 | "properties": ( 11 | "appearance", 12 | ), 13 | "values": ( 14 | "auto": auto, 15 | "none": none, 16 | ), 17 | ), 18 | 19 | "cursor": ( 20 | "prefix": "c", 21 | "properties": ( 22 | "cursor", 23 | ), 24 | "values": ( 25 | "auto": auto, 26 | "ch": crosshair, 27 | "cr": col-resize, 28 | "d": default, 29 | "h": help, 30 | "m": move, 31 | "na": not-allowed, 32 | "ner": ne-resize, 33 | "neswr": nesw-resize, 34 | "none": none, 35 | "nr": n-resize, 36 | "nwr": nw-resize, 37 | "nwser": nwse-resize, 38 | "p": pointer, 39 | "pr": progress, 40 | "rs": row-resize, 41 | "ser": se-resize, 42 | "sr": s-resize, 43 | "swr": sw-resize, 44 | "t": text, 45 | "w": wait, 46 | "wr": w-resize, 47 | "zi": zoom-in, 48 | "zo": zoom-out, 49 | ), 50 | ), 51 | 52 | "field-sizing": ( 53 | "prefix": "fs", 54 | "properties": ( 55 | "field-sizing", 56 | ), 57 | "values": ( 58 | "f": fixed, 59 | "c": content, 60 | ), 61 | ), 62 | 63 | "pointer-events": ( 64 | "prefix": "pe", 65 | "properties": ( 66 | "pointer-events", 67 | ), 68 | "values": ( 69 | "auto": auto, 70 | "none": none, 71 | ), 72 | ), 73 | 74 | "resize": ( 75 | "prefix": "r", 76 | "properties": ( 77 | "resize", 78 | ), 79 | "values": ( 80 | "b": both, 81 | "h": horizontal, 82 | "none": none, 83 | "v": vertical, 84 | ), 85 | ), 86 | 87 | "scroll-behavior": ( 88 | "prefix": "sb", 89 | "properties": ( 90 | "scroll-behavior", 91 | ), 92 | "values": ( 93 | "auto": auto, 94 | "s": smooth, 95 | ), 96 | ), 97 | 98 | "scroll-margin": ( 99 | "prefix": "sm", 100 | "properties": ( 101 | "scroll-margin", 102 | ), 103 | "values": maps.$yma-margin-map, 104 | ), 105 | 106 | "scroll-margin-bottom": ( 107 | "prefix": "smb", 108 | "properties": ( 109 | "scroll-margin-bottom", 110 | ), 111 | "values": maps.$yma-margin-map, 112 | ), 113 | 114 | "scroll-margin-inline-start": ( 115 | "prefix": "smis", 116 | "properties": ( 117 | "scroll-margin-inline-start", 118 | ), 119 | "values": maps.$yma-margin-map, 120 | ), 121 | 122 | "scroll-margin-left": ( 123 | "prefix": "sml", 124 | "properties": ( 125 | "scroll-margin-left", 126 | ), 127 | "values": maps.$yma-margin-map, 128 | ), 129 | 130 | "scroll-margin-right": ( 131 | "prefix": "smr", 132 | "properties": ( 133 | "scroll-margin-right", 134 | ), 135 | "values": maps.$yma-margin-map, 136 | ), 137 | 138 | "scroll-margin-top": ( 139 | "prefix": "smt", 140 | "properties": ( 141 | "scroll-margin-top", 142 | ), 143 | "values": maps.$yma-margin-map, 144 | ), 145 | 146 | "scroll-margin-inline-end": ( 147 | "prefix": "smie", 148 | "properties": ( 149 | "scroll-margin-inline-end", 150 | ), 151 | "values": maps.$yma-margin-map, 152 | ), 153 | 154 | "scroll-margin-x": ( 155 | "prefix": "smx", 156 | "properties": ( 157 | "scroll-margin-left", 158 | "scroll-margin-right", 159 | ), 160 | "values": maps.$yma-margin-map, 161 | ), 162 | 163 | "scroll-margin-y": ( 164 | "prefix": "smy", 165 | "properties": ( 166 | "scroll-margin-bottom", 167 | "scroll-margin-top", 168 | ), 169 | "values": maps.$yma-margin-map, 170 | ), 171 | 172 | "scroll-padding": ( 173 | "prefix": "sp", 174 | "properties": ( 175 | "scroll-padding", 176 | ), 177 | "values": maps.$yma-padding-map, 178 | ), 179 | 180 | "scroll-padding-bottom": ( 181 | "prefix": "spb", 182 | "properties": ( 183 | "scroll-padding-bottom", 184 | ), 185 | "values": maps.$yma-padding-map, 186 | ), 187 | 188 | "scroll-padding-inline-start": ( 189 | "prefix": "spis", 190 | "properties": ( 191 | "scroll-padding-inline-start", 192 | ), 193 | "values": maps.$yma-padding-map, 194 | ), 195 | 196 | "scroll-padding-left": ( 197 | "prefix": "spl", 198 | "properties": ( 199 | "scroll-padding-left", 200 | ), 201 | "values": maps.$yma-padding-map, 202 | ), 203 | 204 | "scroll-padding-right": ( 205 | "prefix": "spr", 206 | "properties": ( 207 | "scroll-padding-right", 208 | ), 209 | "values": maps.$yma-padding-map, 210 | ), 211 | 212 | "scroll-padding-top": ( 213 | "prefix": "spt", 214 | "properties": ( 215 | "scroll-padding-top", 216 | ), 217 | "values": maps.$yma-padding-map, 218 | ), 219 | 220 | "scroll-padding-inline-end": ( 221 | "prefix": "spie", 222 | "properties": ( 223 | "scroll-padding-inline-end", 224 | ), 225 | "values": maps.$yma-padding-map, 226 | ), 227 | 228 | "scroll-padding-x": ( 229 | "prefix": "spx", 230 | "properties": ( 231 | "scroll-padding-left", 232 | "scroll-padding-right", 233 | ), 234 | "values": maps.$yma-padding-map, 235 | ), 236 | 237 | "scroll-padding-y": ( 238 | "prefix": "spy", 239 | "properties": ( 240 | "scroll-padding-bottom", 241 | "scroll-padding-top", 242 | ), 243 | "values": maps.$yma-padding-map, 244 | ), 245 | 246 | "scroll-snap-align": ( 247 | "prefix": "ssa", 248 | "properties": ( 249 | "scroll-snap-align", 250 | ), 251 | "values": ( 252 | "c": center, 253 | "e": end, 254 | "none": none, 255 | "s": start, 256 | ), 257 | ), 258 | 259 | "scroll-snap-stop": ( 260 | "prefix": "sss", 261 | "properties": ( 262 | "scroll-snap-stop", 263 | ), 264 | "values": ( 265 | "a": always, 266 | "n": normal, 267 | ), 268 | ), 269 | 270 | "scroll-snap-type": ( 271 | "prefix": "sst", 272 | "properties": ( 273 | "scroll-snap-type", 274 | ), 275 | "values": ( 276 | "b-m": both mandatory, 277 | "none": none, 278 | "x-m": x mandatory, 279 | "x-p": x proximity, 280 | "y-m": y mandatory, 281 | "y-p": y proximity, 282 | ), 283 | ), 284 | 285 | "user-select": ( 286 | "prefix": "us", 287 | "properties": ( 288 | "user-select", 289 | ), 290 | "values": ( 291 | "a": all, 292 | "auto": auto, 293 | "none": none, 294 | "t": text, 295 | ), 296 | ), 297 | ); 298 | 299 | @each $name, $map in $yma-interactivity-utils { 300 | $prefix: map.get($map, "prefix"); 301 | $properties: map.get($map, "properties"); 302 | 303 | @include mix.create-utilities($map, $prefix, $properties); 304 | } 305 | -------------------------------------------------------------------------------- /src/utilities/_outline.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "../abstracts/variables" as vars; 4 | @use "../abstracts/mixins/" as mix; 5 | 6 | $yma-outline-utils: ( 7 | "outline-offset": ( 8 | "prefix": "oo", 9 | "properties": ( 10 | "outline-offset", 11 | ), 12 | "values": ( 13 | "0": vars.$yma-outline-offset * 0, 14 | "1": vars.$yma-outline-offset, 15 | "2": vars.$yma-outline-offset * 2, 16 | "3": vars.$yma-outline-offset * 3, 17 | "4": vars.$yma-outline-offset * 4, 18 | ), 19 | ), 20 | 21 | "outline-style": ( 22 | "prefix": "os", 23 | "properties": ( 24 | "outline-style", 25 | ), 26 | "values": ( 27 | "none": none, 28 | "d": dashed, 29 | "s": solid, 30 | ), 31 | ), 32 | 33 | "outline-width": ( 34 | "prefix": "ow", 35 | "properties": ( 36 | "outline-width", 37 | ), 38 | "values": ( 39 | "0": vars.$yma-outline-width * 0, 40 | "1": vars.$yma-outline-width, 41 | "2": vars.$yma-outline-width * 2, 42 | "3": vars.$yma-outline-width * 3, 43 | "4": vars.$yma-outline-width * 4, 44 | ), 45 | ), 46 | ); 47 | 48 | @each $properties, $map in $yma-outline-utils { 49 | $prefix: map.get($map, "prefix"); 50 | $properties: map.get($map, "properties"); 51 | 52 | @include mix.create-utilities($map, $prefix, $properties); 53 | } 54 | -------------------------------------------------------------------------------- /src/utilities/_positioning.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "sass:string"; 4 | @use "../abstracts/variables" as vars; 5 | @use "../abstracts/mixins/" as mix; 6 | 7 | $yma-positioning-utils: ( 8 | "aspect-ratio": ( 9 | "prefix": "ar", 10 | "properties": ( 11 | "aspect-ratio", 12 | ), 13 | "values": ( 14 | "auto": auto, 15 | 1\/1: string.unquote("1/1"), 16 | 1\/2: string.unquote("1/2"), 17 | 16\/9: string.unquote("16/9"), 18 | 2\/1: string.unquote("2/1"), 19 | 2\/3: string.unquote("2/3"), 20 | 3\/2: string.unquote("3/2"), 21 | 9\/16: string.unquote("9/16"), 22 | ), 23 | ), 24 | 25 | "clear": ( 26 | "prefix": "cl", 27 | "properties": ( 28 | "clear", 29 | ), 30 | "values": ( 31 | "b": both, 32 | "ie": inline-end, 33 | "is": inline-start, 34 | "l": left, 35 | "none": none, 36 | "r": right, 37 | ), 38 | ), 39 | 40 | "columns": ( 41 | "prefix": "c", 42 | "properties": ( 43 | "columns", 44 | ), 45 | "values": ( 46 | "1": 1, 47 | "2": 2, 48 | "3": 3, 49 | "4": 4, 50 | "5": 5, 51 | "6": 6, 52 | "7": 7, 53 | "8": 8, 54 | "9": 9, 55 | "10": 10, 56 | "11": 11, 57 | "12": 12, 58 | "13": 13, 59 | "14": 14, 60 | "15": 15, 61 | "16": 16, 62 | ), 63 | ), 64 | 65 | "bottom": ( 66 | "prefix": "bo", 67 | "properties": ( 68 | "bottom", 69 | ), 70 | "values": ( 71 | "0": vars.$yma-bottom-left-top-right * 0, 72 | "1": vars.$yma-bottom-left-top-right, 73 | "2": vars.$yma-bottom-left-top-right * 2, 74 | "3": vars.$yma-bottom-left-top-right * 3, 75 | "4": vars.$yma-bottom-left-top-right * 4, 76 | "5": vars.$yma-bottom-left-top-right * 5, 77 | "6": vars.$yma-bottom-left-top-right * 6, 78 | "7": vars.$yma-bottom-left-top-right * 7, 79 | "8": vars.$yma-bottom-left-top-right * 8, 80 | "9": vars.$yma-bottom-left-top-right * 9, 81 | "10": vars.$yma-bottom-left-top-right * 10, 82 | "11": vars.$yma-bottom-left-top-right * 11, 83 | "12": vars.$yma-bottom-left-top-right * 12, 84 | "13": vars.$yma-bottom-left-top-right * 13, 85 | "14": vars.$yma-bottom-left-top-right * 14, 86 | "15": vars.$yma-bottom-left-top-right * 15, 87 | "16": vars.$yma-bottom-left-top-right * 16, 88 | "full": 100%, 89 | "half": 50%, 90 | ), 91 | ), 92 | 93 | "inset": ( 94 | "prefix": "i", 95 | "properties": ( 96 | "inset", 97 | ), 98 | "values": ( 99 | "0": vars.$yma-bottom-left-top-right * 0, 100 | "1": vars.$yma-bottom-left-top-right, 101 | "2": vars.$yma-bottom-left-top-right * 2, 102 | "3": vars.$yma-bottom-left-top-right * 3, 103 | "4": vars.$yma-bottom-left-top-right * 4, 104 | "5": vars.$yma-bottom-left-top-right * 5, 105 | "6": vars.$yma-bottom-left-top-right * 6, 106 | "7": vars.$yma-bottom-left-top-right * 7, 107 | "8": vars.$yma-bottom-left-top-right * 8, 108 | "9": vars.$yma-bottom-left-top-right * 9, 109 | "10": vars.$yma-bottom-left-top-right * 10, 110 | "11": vars.$yma-bottom-left-top-right * 11, 111 | "12": vars.$yma-bottom-left-top-right * 12, 112 | "13": vars.$yma-bottom-left-top-right * 13, 113 | "14": vars.$yma-bottom-left-top-right * 14, 114 | "15": vars.$yma-bottom-left-top-right * 15, 115 | "16": vars.$yma-bottom-left-top-right * 16, 116 | "full": 100%, 117 | "half": 50%, 118 | ), 119 | ), 120 | 121 | "inset-x": ( 122 | "prefix": "ix", 123 | "properties": ( 124 | "left", 125 | "right", 126 | ), 127 | "values": ( 128 | "0": vars.$yma-bottom-left-top-right * 0, 129 | "1": vars.$yma-bottom-left-top-right, 130 | "2": vars.$yma-bottom-left-top-right * 2, 131 | "3": vars.$yma-bottom-left-top-right * 3, 132 | "4": vars.$yma-bottom-left-top-right * 4, 133 | "5": vars.$yma-bottom-left-top-right * 5, 134 | "6": vars.$yma-bottom-left-top-right * 6, 135 | "7": vars.$yma-bottom-left-top-right * 7, 136 | "8": vars.$yma-bottom-left-top-right * 8, 137 | "9": vars.$yma-bottom-left-top-right * 9, 138 | "10": vars.$yma-bottom-left-top-right * 10, 139 | "11": vars.$yma-bottom-left-top-right * 11, 140 | "12": vars.$yma-bottom-left-top-right * 12, 141 | "13": vars.$yma-bottom-left-top-right * 13, 142 | "14": vars.$yma-bottom-left-top-right * 14, 143 | "15": vars.$yma-bottom-left-top-right * 15, 144 | "16": vars.$yma-bottom-left-top-right * 16, 145 | "full": 100%, 146 | "half": 50%, 147 | ), 148 | ), 149 | 150 | "inset-y": ( 151 | "prefix": "iy", 152 | "properties": ( 153 | "top", 154 | "bottom", 155 | ), 156 | "values": ( 157 | "0": vars.$yma-bottom-left-top-right * 0, 158 | "1": vars.$yma-bottom-left-top-right, 159 | "2": vars.$yma-bottom-left-top-right * 2, 160 | "3": vars.$yma-bottom-left-top-right * 3, 161 | "4": vars.$yma-bottom-left-top-right * 4, 162 | "5": vars.$yma-bottom-left-top-right * 5, 163 | "6": vars.$yma-bottom-left-top-right * 6, 164 | "7": vars.$yma-bottom-left-top-right * 7, 165 | "8": vars.$yma-bottom-left-top-right * 8, 166 | "9": vars.$yma-bottom-left-top-right * 9, 167 | "10": vars.$yma-bottom-left-top-right * 10, 168 | "11": vars.$yma-bottom-left-top-right * 11, 169 | "12": vars.$yma-bottom-left-top-right * 12, 170 | "13": vars.$yma-bottom-left-top-right * 13, 171 | "14": vars.$yma-bottom-left-top-right * 14, 172 | "15": vars.$yma-bottom-left-top-right * 15, 173 | "16": vars.$yma-bottom-left-top-right * 16, 174 | "full": 100%, 175 | "half": 50%, 176 | ), 177 | ), 178 | 179 | "isolation": ( 180 | "prefix": "i", 181 | "properties": ( 182 | "isolation", 183 | ), 184 | "values": ( 185 | "auto": auto, 186 | "i": isolate, 187 | ), 188 | ), 189 | 190 | "left": ( 191 | "prefix": "l", 192 | "properties": ( 193 | "left", 194 | ), 195 | "values": ( 196 | "0": vars.$yma-bottom-left-top-right * 0, 197 | "1": vars.$yma-bottom-left-top-right, 198 | "2": vars.$yma-bottom-left-top-right * 2, 199 | "3": vars.$yma-bottom-left-top-right * 3, 200 | "4": vars.$yma-bottom-left-top-right * 4, 201 | "5": vars.$yma-bottom-left-top-right * 5, 202 | "6": vars.$yma-bottom-left-top-right * 6, 203 | "7": vars.$yma-bottom-left-top-right * 7, 204 | "8": vars.$yma-bottom-left-top-right * 8, 205 | "9": vars.$yma-bottom-left-top-right * 9, 206 | "10": vars.$yma-bottom-left-top-right * 10, 207 | "11": vars.$yma-bottom-left-top-right * 11, 208 | "12": vars.$yma-bottom-left-top-right * 12, 209 | "13": vars.$yma-bottom-left-top-right * 13, 210 | "14": vars.$yma-bottom-left-top-right * 14, 211 | "15": vars.$yma-bottom-left-top-right * 15, 212 | "16": vars.$yma-bottom-left-top-right * 16, 213 | "full": 100%, 214 | "half": 50%, 215 | ), 216 | ), 217 | 218 | "right": ( 219 | "prefix": "r", 220 | "properties": ( 221 | "right", 222 | ), 223 | "values": ( 224 | "0": vars.$yma-bottom-left-top-right * 0, 225 | "1": vars.$yma-bottom-left-top-right, 226 | "2": vars.$yma-bottom-left-top-right * 2, 227 | "3": vars.$yma-bottom-left-top-right * 3, 228 | "4": vars.$yma-bottom-left-top-right * 4, 229 | "5": vars.$yma-bottom-left-top-right * 5, 230 | "6": vars.$yma-bottom-left-top-right * 6, 231 | "7": vars.$yma-bottom-left-top-right * 7, 232 | "8": vars.$yma-bottom-left-top-right * 8, 233 | "9": vars.$yma-bottom-left-top-right * 9, 234 | "10": vars.$yma-bottom-left-top-right * 10, 235 | "11": vars.$yma-bottom-left-top-right * 11, 236 | "12": vars.$yma-bottom-left-top-right * 12, 237 | "13": vars.$yma-bottom-left-top-right * 13, 238 | "14": vars.$yma-bottom-left-top-right * 14, 239 | "15": vars.$yma-bottom-left-top-right * 15, 240 | "16": vars.$yma-bottom-left-top-right * 16, 241 | "full": 100%, 242 | "half": 50%, 243 | ), 244 | ), 245 | 246 | "top": ( 247 | "prefix": "t", 248 | "properties": ( 249 | "top", 250 | ), 251 | "values": ( 252 | "0": vars.$yma-bottom-left-top-right * 0, 253 | "1": vars.$yma-bottom-left-top-right, 254 | "2": vars.$yma-bottom-left-top-right * 2, 255 | "3": vars.$yma-bottom-left-top-right * 3, 256 | "4": vars.$yma-bottom-left-top-right * 4, 257 | "5": vars.$yma-bottom-left-top-right * 5, 258 | "6": vars.$yma-bottom-left-top-right * 6, 259 | "7": vars.$yma-bottom-left-top-right * 7, 260 | "8": vars.$yma-bottom-left-top-right * 8, 261 | "9": vars.$yma-bottom-left-top-right * 9, 262 | "10": vars.$yma-bottom-left-top-right * 10, 263 | "11": vars.$yma-bottom-left-top-right * 11, 264 | "12": vars.$yma-bottom-left-top-right * 12, 265 | "13": vars.$yma-bottom-left-top-right * 13, 266 | "14": vars.$yma-bottom-left-top-right * 14, 267 | "15": vars.$yma-bottom-left-top-right * 15, 268 | "16": vars.$yma-bottom-left-top-right * 16, 269 | "full": 100%, 270 | "half": 50%, 271 | ), 272 | ), 273 | 274 | "display": ( 275 | "prefix": "d", 276 | "properties": ( 277 | "display", 278 | ), 279 | "values": ( 280 | "b": block, 281 | "f": flex, 282 | "fr": flow-root, 283 | "g": grid, 284 | "i": inline, 285 | "ib": inline-block, 286 | "if": inline-flex, 287 | "ig": inline-grid, 288 | "it": inline-table, 289 | "none": none, 290 | "t": table, 291 | "tc": table-cell, 292 | "tco": table-column, 293 | "tr": table-row, 294 | ), 295 | ), 296 | 297 | "float": ( 298 | "prefix": "fl", 299 | "properties": ( 300 | "float", 301 | ), 302 | "values": ( 303 | "ie": inline-end, 304 | "is": inline-start, 305 | "l": left, 306 | "none": none, 307 | "r": right, 308 | ), 309 | ), 310 | 311 | "object-fit": ( 312 | "prefix": "of", 313 | "properties": ( 314 | "object-fit", 315 | ), 316 | "values": ( 317 | "c": cover, 318 | "f": fill, 319 | "none": none, 320 | "sd": scale-down, 321 | ), 322 | ), 323 | 324 | "object-position": ( 325 | "prefix": "op", 326 | "properties": ( 327 | "object-position", 328 | ), 329 | "values": ( 330 | "b": bottom, 331 | "c": center, 332 | "l": left, 333 | "lb": left bottom, 334 | "lt": left top, 335 | "r": right, 336 | "rb": right bottom, 337 | "rt": right top, 338 | "t": top, 339 | ), 340 | ), 341 | 342 | "overflow": ( 343 | "prefix": "o", 344 | "properties": ( 345 | "overflow", 346 | ), 347 | "values": ( 348 | "auto": auto, 349 | "c": clip, 350 | "h": hidden, 351 | "s": scroll, 352 | "v": visible, 353 | ), 354 | ), 355 | 356 | "overflow-x": ( 357 | "prefix": "o-x", 358 | "properties": ( 359 | "overflow-x", 360 | ), 361 | "values": ( 362 | "auto": auto, 363 | "c": clip, 364 | "h": hidden, 365 | "s": scroll, 366 | "v": visible, 367 | ), 368 | ), 369 | 370 | "overflow-y": ( 371 | "prefix": "o-y", 372 | "properties": ( 373 | "overflow-y", 374 | ), 375 | "values": ( 376 | "auto": auto, 377 | "c": clip, 378 | "h": hidden, 379 | "s": scroll, 380 | "v": visible, 381 | ), 382 | ), 383 | 384 | "position": ( 385 | "prefix": "p", 386 | "properties": ( 387 | "position", 388 | ), 389 | "values": ( 390 | "a": absolute, 391 | "f": fixed, 392 | "r": relative, 393 | "s": static, 394 | "st": sticky, 395 | ), 396 | ), 397 | 398 | "visibility": ( 399 | "prefix": "v", 400 | "properties": ( 401 | "visibility", 402 | ), 403 | "values": ( 404 | "c": collapse, 405 | "h": hidden, 406 | "v": visible, 407 | ), 408 | ), 409 | 410 | "z-index": ( 411 | "prefix": "zi", 412 | "properties": ( 413 | "z-index", 414 | ), 415 | "values": ( 416 | "0": 0, 417 | "10": 10, 418 | "20": 20, 419 | "30": 30, 420 | "40": 40, 421 | "50": 50, 422 | "60": 60, 423 | "70": 70, 424 | "80": 80, 425 | "90": 90, 426 | "auto": auto, 427 | ), 428 | ), 429 | ); 430 | 431 | @each $name, $map in $yma-positioning-utils { 432 | $prefix: map.get($map, "prefix"); 433 | $properties: map.get($map, "properties"); 434 | 435 | @include mix.create-utilities($map, $prefix, $properties); 436 | } 437 | -------------------------------------------------------------------------------- /src/utilities/_svg.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "../abstracts/mixins/" as mix; 4 | 5 | $yma-svg-utils: ( 6 | "stroke-width": ( 7 | "prefix": "sw", 8 | "properties": ( 9 | "stroke-width", 10 | ), 11 | "values": ( 12 | "0": 0, 13 | "2": 0.2, 14 | "4": 0.4, 15 | "6": 0.6, 16 | "8": 0.8, 17 | "1": 1, 18 | ), 19 | ), 20 | ); 21 | 22 | @each $name, $map in $yma-svg-utils { 23 | $prefix: map.get($map, "prefix"); 24 | $properties: map.get($map, "properties"); 25 | 26 | @include mix.create-utilities($map, $prefix, $properties); 27 | } 28 | -------------------------------------------------------------------------------- /src/utilities/_table.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "../abstracts/variables" as vars; 4 | @use "../abstracts/mixins/" as mix; 5 | 6 | $yma-table-utils: ( 7 | "caption-side": ( 8 | "prefix": "cs", 9 | "properties": ( 10 | "caption-side", 11 | ), 12 | "values": ( 13 | "b": bottom, 14 | "t": top, 15 | ), 16 | ), 17 | 18 | "table-layout": ( 19 | "prefix": "tl", 20 | "properties": ( 21 | "table-layout", 22 | ), 23 | "values": ( 24 | "auto": auto, 25 | "f": fixed, 26 | ), 27 | ), 28 | ); 29 | 30 | @each $properties, $map in $yma-table-utils { 31 | $prefix: map.get($map, "prefix"); 32 | $properties: map.get($map, "properties"); 33 | 34 | @include mix.create-utilities($map, $prefix, $properties); 35 | } 36 | -------------------------------------------------------------------------------- /src/utilities/_transform.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "../abstracts/variables" as vars; 4 | @use "../abstracts/mixins/" as mix; 5 | @use "../utilities/maps/" as maps; 6 | 7 | $yma-transform-utils: ( 8 | "rotate": ( 9 | "prefix": "t-r", 10 | "properties": ( 11 | "transform", 12 | ), 13 | "values": ( 14 | "0": rotate(0), 15 | "5": rotate(5deg), 16 | "10": rotate(10deg), 17 | "15": rotate(15deg), 18 | "20": rotate(20deg), 19 | "25": rotate(25deg), 20 | "30": rotate(30deg), 21 | "35": rotate(35deg), 22 | "40": rotate(40deg), 23 | "45": rotate(45deg), 24 | "50": rotate(50deg), 25 | "55": rotate(55deg), 26 | "60": rotate(60deg), 27 | "65": rotate(65deg), 28 | "70": rotate(70deg), 29 | "75": rotate(75deg), 30 | "80": rotate(80deg), 31 | "85": rotate(85deg), 32 | "90": rotate(90deg), 33 | "95": rotate(95deg), 34 | "100": rotate(100deg), 35 | ), 36 | ), 37 | 38 | "scale": ( 39 | "prefix": "t-s", 40 | "properties": ( 41 | "transform", 42 | ), 43 | "values": ( 44 | "0": scale(0%), 45 | "10": scale(10%), 46 | "20": scale(20%), 47 | "30": scale(30%), 48 | "40": scale(40%), 49 | "50": scale(50%), 50 | "60": scale(60%), 51 | "70": scale(70%), 52 | "80": scale(80%), 53 | "90": scale(90%), 54 | "100": scale(100%), 55 | ), 56 | ), 57 | 58 | "scale-x": ( 59 | "prefix": "t-sx", 60 | "properties": ( 61 | "transform", 62 | ), 63 | "values": ( 64 | "0": scaleX(0%), 65 | "10": scaleX(10%), 66 | "20": scaleX(20%), 67 | "30": scaleX(30%), 68 | "40": scaleX(40%), 69 | "50": scaleX(50%), 70 | "60": scaleX(60%), 71 | "70": scaleX(70%), 72 | "80": scaleX(80%), 73 | "90": scaleX(90%), 74 | "100": scaleX(100%), 75 | ), 76 | ), 77 | 78 | "scale-y": ( 79 | "prefix": "t-sy", 80 | "properties": ( 81 | "transform", 82 | ), 83 | "values": ( 84 | "0": scaleY(0%), 85 | "10": scaleY(10%), 86 | "20": scaleY(20%), 87 | "30": scaleY(30%), 88 | "40": scaleY(40%), 89 | "50": scaleY(50%), 90 | "60": scaleY(60%), 91 | "70": scaleY(70%), 92 | "80": scaleY(80%), 93 | "90": scaleY(90%), 94 | "100": scaleY(100%), 95 | ), 96 | ), 97 | 98 | "skew": ( 99 | "prefix": "t-sk", 100 | "properties": ( 101 | "transform", 102 | ), 103 | "values": ( 104 | "1": skew(1deg), 105 | "2": skew(2deg), 106 | "3": skew(3deg), 107 | "6": skew(6deg), 108 | "12": skew(12deg), 109 | ), 110 | ), 111 | 112 | "skew-x": ( 113 | "prefix": "t-skx", 114 | "properties": ( 115 | "transform", 116 | ), 117 | "values": ( 118 | "1": skewX(1deg), 119 | "2": skewX(2deg), 120 | "3": skewX(3deg), 121 | "6": skewX(6deg), 122 | "12": skewX(12deg), 123 | ), 124 | ), 125 | 126 | "skew-y": ( 127 | "prefix": "t-sky", 128 | "properties": ( 129 | "transform", 130 | ), 131 | "values": ( 132 | "1": skewY(1deg), 133 | "2": skewY(2deg), 134 | "3": skewY(3deg), 135 | "6": skewY(6deg), 136 | "12": skewY(12deg), 137 | ), 138 | ), 139 | 140 | "transform-origin": ( 141 | "prefix": "t-o", 142 | "properties": ( 143 | "transform-origin", 144 | ), 145 | "values": ( 146 | "b": bottom, 147 | "bl": bottom left, 148 | "br": bottom right, 149 | "c": center, 150 | "l": left, 151 | "r": right, 152 | "t": top, 153 | "tl": top left, 154 | "tr": top right, 155 | ), 156 | ), 157 | ); 158 | 159 | @each $name, $map in $yma-transform-utils { 160 | $prefix: map.get($map, "prefix"); 161 | $properties: map.get($map, "properties"); 162 | 163 | @include mix.create-utilities($map, $prefix, $properties); 164 | } 165 | -------------------------------------------------------------------------------- /src/utilities/_typography.scss: -------------------------------------------------------------------------------- 1 | @use "sass:math"; 2 | @use "sass:map"; 3 | @use "../abstracts/variables" as vars; 4 | @use "../abstracts/mixins/" as mix; 5 | 6 | $yma-typography-utils: ( 7 | "font-size": ( 8 | "prefix": "fs", 9 | "properties": ( 10 | "font-size", 11 | ), 12 | "values": ( 13 | "xs": vars.$yma-font-size-xs, 14 | "sm": vars.$yma-font-size-sm, 15 | "md": vars.$yma-font-size-md, 16 | "lg": vars.$yma-font-size-lg, 17 | "xl": vars.$yma-font-size-xl, 18 | "xxl": vars.$yma-font-size-2xl, 19 | "3xl": vars.$yma-font-size-3xl, 20 | "4xl": vars.$yma-font-size-4xl, 21 | "5xl": vars.$yma-font-size-5xl, 22 | "6xl": vars.$yma-font-size-6xl, 23 | "7xl": vars.$yma-font-size-7xl, 24 | "8xl": vars.$yma-font-size-8xl, 25 | "9xl": vars.$yma-font-size-9xl, 26 | ), 27 | ), 28 | 29 | "font-style": ( 30 | "prefix": "fs", 31 | "properties": ( 32 | "font-style", 33 | ), 34 | "values": ( 35 | "i": italic, 36 | "n": normal, 37 | ), 38 | ), 39 | 40 | "font-weight": ( 41 | "prefix": "fw", 42 | "properties": ( 43 | "font-weight", 44 | ), 45 | "values": ( 46 | "100": 100, 47 | "200": 200, 48 | "300": 300, 49 | "400": 400, 50 | "500": 500, 51 | "600": 600, 52 | "700": 700, 53 | "800": 800, 54 | "900": 900, 55 | ), 56 | ), 57 | 58 | "letter-spacing": ( 59 | "prefix": "ls", 60 | "properties": ( 61 | "letter-spacing", 62 | ), 63 | "values": ( 64 | "0": 0em, 65 | "1": -0.05em, 66 | "2": -0.025em, 67 | "3": 0.025em, 68 | "4": 0.05em, 69 | "5": 0.1em, 70 | ), 71 | ), 72 | 73 | "line-height": ( 74 | "prefix": "lh", 75 | "properties": ( 76 | "line-height", 77 | ), 78 | "values": ( 79 | "1": 1, 80 | "2": 1.25, 81 | "3": 1.375, 82 | "4": 1.5, 83 | "5": 1.625, 84 | "6": 2, 85 | ), 86 | ), 87 | 88 | "list-style-position": ( 89 | "prefix": "lsp", 90 | "properties": ( 91 | "list-style-position", 92 | ), 93 | "values": ( 94 | "i": inside, 95 | "o": outside, 96 | ), 97 | ), 98 | 99 | "list-style-type": ( 100 | "prefix": "lst", 101 | "properties": ( 102 | "list-style-type", 103 | ), 104 | "values": ( 105 | "c": circle, 106 | "d": disc, 107 | "s": square, 108 | ), 109 | ), 110 | 111 | "overflow-wrap": ( 112 | "prefix": "ow", 113 | "properties": ( 114 | "overflow-wrap", 115 | ), 116 | "values": ( 117 | "bw": break-word, 118 | "n": normal, 119 | ), 120 | ), 121 | 122 | "text-align": ( 123 | "prefix": "ta", 124 | "properties": ( 125 | "text-align", 126 | ), 127 | "values": ( 128 | "c": center, 129 | "e": end, 130 | "j": justify, 131 | "ja": justify-all, 132 | "l": left, 133 | "mp": match-parent, 134 | "r": right, 135 | "s": start, 136 | ), 137 | ), 138 | 139 | "text-decoration-line": ( 140 | "prefix": "tdl", 141 | "properties": ( 142 | "text-decoration-line", 143 | ), 144 | "values": ( 145 | "lt": line-through, 146 | "none": none, 147 | "o": overline, 148 | "u": underline, 149 | ), 150 | ), 151 | 152 | "text-decoration-style": ( 153 | "prefix": "tds", 154 | "properties": ( 155 | "text-decoration-style", 156 | ), 157 | "values": ( 158 | "d": dashed, 159 | "s": solid, 160 | "w": wavy, 161 | ), 162 | ), 163 | 164 | "text-decoration-thickness": ( 165 | "prefix": "tdt", 166 | "properties": ( 167 | "text-decoration-thickness", 168 | ), 169 | "values": ( 170 | "0": vars.$yma-decoration-thickness * 0, 171 | "1": vars.$yma-decoration-thickness, 172 | "2": vars.$yma-decoration-thickness * 2, 173 | "3": vars.$yma-decoration-thickness * 3, 174 | "4": vars.$yma-decoration-thickness * 4, 175 | "auto": auto, 176 | "ff": from-font, 177 | ), 178 | ), 179 | 180 | "text-decoration": ( 181 | "prefix": "td", 182 | "properties": ( 183 | "text-decoration", 184 | ), 185 | "values": ( 186 | "none": none, 187 | "u": underline, 188 | ), 189 | ), 190 | 191 | "text-indent": ( 192 | "prefix": "ti", 193 | "properties": ( 194 | "text-indent", 195 | ), 196 | "values": ( 197 | "0": 0px, 198 | "1": 1px, 199 | "2": 0.25rem, 200 | "3": 0.5rem, 201 | "4": 0.75rem, 202 | ), 203 | ), 204 | 205 | "text-overflow": ( 206 | "prefix": "to", 207 | "properties": ( 208 | "text-overflow", 209 | ), 210 | "values": ( 211 | "c": clip, 212 | "e": ellipsis, 213 | ), 214 | ), 215 | 216 | "text-transform": ( 217 | "prefix": "tt", 218 | "properties": ( 219 | "text-transform", 220 | ), 221 | "values": ( 222 | "c": capitalize, 223 | "l": lowercase, 224 | "n": none, 225 | "u": uppercase, 226 | ), 227 | ), 228 | 229 | "text-underline-offset": ( 230 | "prefix": "tuo", 231 | "properties": ( 232 | "text-underline-offset", 233 | ), 234 | "values": ( 235 | "0": 0px, 236 | "1": 1px, 237 | "2": 2px, 238 | "4": 4px, 239 | "8": 8px, 240 | "auto": auto, 241 | ), 242 | ), 243 | 244 | "text-wrap": ( 245 | "prefix": "tw", 246 | "properties": ( 247 | "text-wrap", 248 | ), 249 | "values": ( 250 | "b": balance, 251 | "n": nowrap, 252 | "p": pretty, 253 | "w": wrap, 254 | ), 255 | ), 256 | 257 | "white-space": ( 258 | "prefix": "ws", 259 | "properties": ( 260 | "white-space", 261 | ), 262 | "values": ( 263 | "bs": break-spaces, 264 | "n": normal, 265 | "nw": nowrap, 266 | "p": pre, 267 | "pl": pre-line, 268 | "pw": pre-wrap, 269 | ), 270 | ), 271 | ); 272 | 273 | @each $properties, $map in $yma-typography-utils { 274 | $prefix: map.get($map, "prefix"); 275 | $properties: map.get($map, "properties"); 276 | 277 | @include mix.create-utilities($map, $prefix, $properties); 278 | } 279 | -------------------------------------------------------------------------------- /src/utilities/maps/_index.scss: -------------------------------------------------------------------------------- 1 | // Box Model 2 | @forward "box-model/dimension"; 3 | @forward "box-model/height"; 4 | @forward "box-model/margin"; 5 | @forward "box-model/padding"; 6 | @forward "box-model/width"; 7 | 8 | // Flexbox 9 | @forward "flexbox/flex-basis"; 10 | 11 | // Grid 12 | @forward "grid/gap"; 13 | -------------------------------------------------------------------------------- /src/utilities/maps/box-model/_dimension.scss: -------------------------------------------------------------------------------- 1 | @use "sass:map"; 2 | @use "../../../abstracts/functions/create-values" as fun; 3 | @use "../../../abstracts/variables" as vars; 4 | 5 | $yma-dimension-map: map.merge( 6 | ( 7 | "auto": auto, 8 | "dvh": 100dvh, 9 | "fc": fit-content, 10 | "full": 100%, 11 | "half": 50%, 12 | "max": max-content, 13 | "min": min-content, 14 | ), 15 | fun.create-values(vars.$yma-dimension) 16 | ); 17 | -------------------------------------------------------------------------------- /src/utilities/maps/box-model/_height.scss: -------------------------------------------------------------------------------- 1 | @use "sass:map"; 2 | @use "../../../abstracts/functions/create-values" as fun; 3 | @use "../../../abstracts/variables" as vars; 4 | 5 | $yma-height-map: map.merge( 6 | ( 7 | "auto": auto, 8 | "dvh": 100dvh, 9 | "fc": fit-content, 10 | "full": 100%, 11 | "half": 50%, 12 | "max": max-content, 13 | "min": min-content, 14 | ), 15 | fun.create-values(vars.$yma-height) 16 | ); 17 | -------------------------------------------------------------------------------- /src/utilities/maps/box-model/_margin.scss: -------------------------------------------------------------------------------- 1 | @use "sass:map"; 2 | @use "../../../abstracts/functions/create-values" as fun; 3 | @use "../../../abstracts/variables" as vars; 4 | 5 | $yma-margin-map: map.merge( 6 | ( 7 | "auto": auto, 8 | ), 9 | fun.create-values(vars.$yma-margin) 10 | ); 11 | -------------------------------------------------------------------------------- /src/utilities/maps/box-model/_padding.scss: -------------------------------------------------------------------------------- 1 | @use "sass:map"; 2 | @use "../../../abstracts/functions/create-values" as fun; 3 | @use "../../../abstracts/variables" as vars; 4 | 5 | $yma-padding-map: map.merge( 6 | ( 7 | "auto": auto, 8 | ), 9 | fun.create-values(vars.$yma-padding) 10 | ); 11 | -------------------------------------------------------------------------------- /src/utilities/maps/box-model/_width.scss: -------------------------------------------------------------------------------- 1 | @use "sass:map"; 2 | @use "../../../abstracts/functions/create-values" as fun; 3 | @use "../../../abstracts/variables" as vars; 4 | 5 | $yma-width-map: map.merge( 6 | ( 7 | "auto": auto, 8 | "dvh": 100dvh, 9 | "fc": fit-content, 10 | "full": 100%, 11 | "half": 50%, 12 | "max": max-content, 13 | "min": min-content, 14 | ), 15 | fun.create-values(vars.$yma-width) 16 | ); 17 | -------------------------------------------------------------------------------- /src/utilities/maps/flexbox/_flex-basis.scss: -------------------------------------------------------------------------------- 1 | @use "sass:map"; 2 | @use "../../../abstracts/functions/create-values" as fun; 3 | @use "../../../abstracts/variables" as vars; 4 | 5 | $yma-flex-basis-map: map.merge( 6 | ( 7 | "auto": auto, 8 | "full": 100%, 9 | "half": 50%, 10 | ), 11 | fun.create-values(vars.$yma-flex-basis) 12 | ); 13 | -------------------------------------------------------------------------------- /src/utilities/maps/grid/_gap.scss: -------------------------------------------------------------------------------- 1 | @use "sass:map"; 2 | @use "../../../abstracts/functions/create-values" as fun; 3 | @use "../../../abstracts/variables" as vars; 4 | 5 | $yma-gap-map: fun.create-values(vars.$yma-gap); 6 | -------------------------------------------------------------------------------- /src/yummacss-core.scss: -------------------------------------------------------------------------------- 1 | @use "abstracts" as *; 2 | @use "utilities" as *; 3 | @use "fonts"; -------------------------------------------------------------------------------- /src/yummacss.scss: -------------------------------------------------------------------------------- 1 | @use "reset/stylecent"; 2 | @use "abstracts" as *; 3 | @use "utilities" as *; 4 | @use "fonts"; 5 | -------------------------------------------------------------------------------- /tsconfig.cli.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "module": "NodeNext", 5 | "moduleResolution": "NodeNext", 6 | "outDir": "./dist/cli", 7 | "rootDir": "./cli", 8 | "esModuleInterop": true, 9 | "strict": true, 10 | "skipLibCheck": true 11 | }, 12 | "include": ["cli/**/*"], 13 | "exclude": ["node_modules", "dist"] 14 | } 15 | --------------------------------------------------------------------------------