bejamas 0.2.12 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{generate-mdx-BejBMCLk.js → generate-mdx-PPNpe9_J.js} +2 -7
- package/dist/{generate-mdx-BejBMCLk.js.map → generate-mdx-PPNpe9_J.js.map} +1 -1
- package/dist/index.js +1603 -320
- package/dist/index.js.map +1 -1
- package/dist/utils-BCEkpKMO.js +9277 -0
- package/dist/utils-BCEkpKMO.js.map +1 -0
- package/package.json +16 -3
- package/src/tailwind.css +104 -0
- package/dist/utils-BfJTJvcy.js +0 -431
- package/dist/utils-BfJTJvcy.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils-BCEkpKMO.js","names":["THEMES: RegistryItem[]","BASE_COLORS","V1_CHART_COLOR_MAP: Partial<\n Record<\n (typeof PRESET_BASE_COLORS)[number],\n (typeof PRESET_CHART_COLORS)[number]\n >\n>","DEFAULT_PRESET_CONFIG: PresetConfig","decoded","BASE_COLORS","DEFAULT_DESIGN_SYSTEM_CONFIG: DesignSystemConfig","path","lightVars: Record<string, string>","darkVars: Record<string, string>","themeVars: Record<string, string>","tokenizer","pico","tokenizer","Input","terminalHighlight","terminalHighlight","CssSyntaxError","plugin","bold","red","spacing","Stringifier","root","p","Stringifier","stringify","CssSyntaxError","stringify","Node","isClean","my","Node","Comment","Node","Declaration","Comment","Declaration","Node","AtRule","parse","Root","Rule","isClean","Container","my","decl","Container","AtRule","Container","LazyResult","Processor","Document","nanoid","normalize","path","isAbsolute","join","relative","util","ArraySet","util","MappingList","base64VLQ","util","ArraySet","SourceMapGenerator","sourceFile","p","comparator","util","SourceMapConsumer","needle","section","SourceMapGenerator","PreviousMap","dirname","SourceMapConsumer","path","existsSync","readFileSync","SourceMapGenerator","join","CssSyntaxError","PreviousMap","sourceMapAvailable","SourceMapConsumer","SourceMapGenerator","pathAvailable","resolve","isAbsolute","Input","pathToFileURL","fileURLToPath","Container","LazyResult","Processor","Root","list","Container","list","Rule","sep","AtRule","Comment","Declaration","Input","Root","Rule","fromJSON","Input","dirname","resolve","relative","MapGenerator","stringify","root","p","path","AtRule","Comment","Declaration","Root","Rule","Parser","Container","Input","parse","Warning","Warning","Result","root","warnOnce","Container","Document","MapGenerator","parse","Result","Root","stringify","warnOnce","postcss","LazyResult","root","plugin","parse","Result","stringify","NoWorkResult","root","Document","LazyResult","Root","Processor","plugin","AtRule","Comment","Container","CssSyntaxError","Declaration","Document","fromJSON","Input","list","Node","parse","Processor","Result","Root","Rule","stringify","Warning","postcss","plugin","postcss","env","BUILTIN_REGISTRIES: z.infer<typeof registryConfigSchema>","registryCssValueSchema: z.ZodType<\n string | string[] | Record<string, unknown>\n>","path","resolvedAliases: any","key","RESERVED_COMPONENTS: Set<string>","meta: Record<string, any>","usageLines: string[]","examplesLines: string[]","primaryExampleLines: string[]","apiLines: string[]","descriptionBodyLines: string[]","current: any","decl","nameNode: any","defaultValue: string | undefined","require","createRequire","path","match: RegExpExecArray | null","join","found: string[]","extname","pathPosix"],"sources":["../../registry/src/catalog/themes.ts","../../registry/src/catalog/base-colors.ts","../../registry/src/catalog/fonts.ts","../../registry/src/catalog/styles.ts","../../create-config/src/preset.ts","../../create-config/src/config.ts","../../semantic-icons/src/index.ts","../../create-config/src/design.ts","../../../node_modules/picocolors/picocolors.js","../../../node_modules/postcss/lib/tokenize.js","../../../node_modules/postcss/lib/terminal-highlight.js","../../../node_modules/postcss/lib/css-syntax-error.js","../../../node_modules/postcss/lib/stringifier.js","../../../node_modules/postcss/lib/stringify.js","../../../node_modules/postcss/lib/symbols.js","../../../node_modules/postcss/lib/node.js","../../../node_modules/postcss/lib/comment.js","../../../node_modules/postcss/lib/declaration.js","../../../node_modules/postcss/lib/container.js","../../../node_modules/postcss/lib/at-rule.js","../../../node_modules/postcss/lib/document.js","../../../node_modules/postcss/node_modules/nanoid/non-secure/index.cjs","../../../node_modules/source-map-js/lib/base64.js","../../../node_modules/source-map-js/lib/base64-vlq.js","../../../node_modules/source-map-js/lib/util.js","../../../node_modules/source-map-js/lib/array-set.js","../../../node_modules/source-map-js/lib/mapping-list.js","../../../node_modules/source-map-js/lib/source-map-generator.js","../../../node_modules/source-map-js/lib/binary-search.js","../../../node_modules/source-map-js/lib/quick-sort.js","../../../node_modules/source-map-js/lib/source-map-consumer.js","../../../node_modules/source-map-js/lib/source-node.js","../../../node_modules/source-map-js/source-map.js","../../../node_modules/postcss/lib/previous-map.js","../../../node_modules/postcss/lib/input.js","../../../node_modules/postcss/lib/root.js","../../../node_modules/postcss/lib/list.js","../../../node_modules/postcss/lib/rule.js","../../../node_modules/postcss/lib/fromJSON.js","../../../node_modules/postcss/lib/map-generator.js","../../../node_modules/postcss/lib/parser.js","../../../node_modules/postcss/lib/parse.js","../../../node_modules/postcss/lib/warning.js","../../../node_modules/postcss/lib/result.js","../../../node_modules/postcss/lib/warn-once.js","../../../node_modules/postcss/lib/lazy-result.js","../../../node_modules/postcss/lib/no-work-result.js","../../../node_modules/postcss/lib/processor.js","../../../node_modules/postcss/lib/postcss.js","../../../node_modules/postcss/lib/postcss.mjs","../../registry/src/style-source.ts","../../create-config/src/style-css.ts","../src/utils/ui-base-url.ts","../src/registry/constants.ts","../src/schema.ts","../src/utils/highlighter.ts","../src/utils/logger.ts","../src/utils/get-project-info.ts","../src/utils/resolve-import.ts","../src/utils/get-config.ts","../src/utils/spinner.ts","../src/docs/generate-mdx/utils.ts"],"sourcesContent":["import { type RegistryItem } from \"shadcn/schema\";\n\nexport const THEMES: RegistryItem[] = [\n {\n name: \"neutral\",\n title: \"Neutral\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0.145 0 0)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0.145 0 0)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.145 0 0)\",\n primary: \"oklch(0.205 0 0)\",\n \"primary-foreground\": \"oklch(0.985 0 0)\",\n secondary: \"oklch(0.97 0 0)\",\n \"secondary-foreground\": \"oklch(0.205 0 0)\",\n muted: \"oklch(0.97 0 0)\",\n \"muted-foreground\": \"oklch(0.556 0 0)\",\n accent: \"oklch(0.97 0 0)\",\n \"accent-foreground\": \"oklch(0.205 0 0)\",\n destructive: \"oklch(0.58 0.22 27)\",\n border: \"oklch(0.922 0 0)\",\n input: \"oklch(0.922 0 0)\",\n ring: \"oklch(0.708 0 0)\",\n \"chart-1\": \"oklch(0.809 0.105 251.813)\",\n \"chart-2\": \"oklch(0.623 0.214 259.815)\",\n \"chart-3\": \"oklch(0.546 0.245 262.881)\",\n \"chart-4\": \"oklch(0.488 0.243 264.376)\",\n \"chart-5\": \"oklch(0.424 0.199 265.638)\",\n radius: \"0.625rem\",\n sidebar: \"oklch(0.985 0 0)\",\n \"sidebar-foreground\": \"oklch(0.145 0 0)\",\n \"sidebar-primary\": \"oklch(0.205 0 0)\",\n \"sidebar-primary-foreground\": \"oklch(0.985 0 0)\",\n \"sidebar-accent\": \"oklch(0.97 0 0)\",\n \"sidebar-accent-foreground\": \"oklch(0.205 0 0)\",\n \"sidebar-border\": \"oklch(0.922 0 0)\",\n \"sidebar-ring\": \"oklch(0.708 0 0)\",\n },\n dark: {\n background: \"oklch(0.145 0 0)\",\n foreground: \"oklch(0.985 0 0)\",\n card: \"oklch(0.205 0 0)\",\n \"card-foreground\": \"oklch(0.985 0 0)\",\n popover: \"oklch(0.205 0 0)\",\n \"popover-foreground\": \"oklch(0.985 0 0)\",\n primary: \"oklch(0.87 0.00 0)\",\n \"primary-foreground\": \"oklch(0.205 0 0)\",\n secondary: \"oklch(0.269 0 0)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n muted: \"oklch(0.269 0 0)\",\n \"muted-foreground\": \"oklch(0.708 0 0)\",\n accent: \"oklch(0.371 0 0)\",\n \"accent-foreground\": \"oklch(0.985 0 0)\",\n destructive: \"oklch(0.704 0.191 22.216)\",\n border: \"oklch(1 0 0 / 10%)\",\n input: \"oklch(1 0 0 / 15%)\",\n ring: \"oklch(0.556 0 0)\",\n \"chart-1\": \"oklch(0.809 0.105 251.813)\",\n \"chart-2\": \"oklch(0.623 0.214 259.815)\",\n \"chart-3\": \"oklch(0.546 0.245 262.881)\",\n \"chart-4\": \"oklch(0.488 0.243 264.376)\",\n \"chart-5\": \"oklch(0.424 0.199 265.638)\",\n sidebar: \"oklch(0.205 0 0)\",\n \"sidebar-foreground\": \"oklch(0.985 0 0)\",\n \"sidebar-primary\": \"oklch(0.488 0.243 264.376)\",\n \"sidebar-primary-foreground\": \"oklch(0.985 0 0)\",\n \"sidebar-accent\": \"oklch(0.269 0 0)\",\n \"sidebar-accent-foreground\": \"oklch(0.985 0 0)\",\n \"sidebar-border\": \"oklch(1 0 0 / 10%)\",\n \"sidebar-ring\": \"oklch(0.556 0 0)\",\n },\n },\n },\n {\n name: \"stone\",\n title: \"Stone\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0.147 0.004 49.25)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0.147 0.004 49.25)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.147 0.004 49.25)\",\n primary: \"oklch(0.216 0.006 56.043)\",\n \"primary-foreground\": \"oklch(0.985 0.001 106.423)\",\n secondary: \"oklch(0.97 0.001 106.424)\",\n \"secondary-foreground\": \"oklch(0.216 0.006 56.043)\",\n muted: \"oklch(0.97 0.001 106.424)\",\n \"muted-foreground\": \"oklch(0.553 0.013 58.071)\",\n accent: \"oklch(0.97 0.001 106.424)\",\n \"accent-foreground\": \"oklch(0.216 0.006 56.043)\",\n destructive: \"oklch(0.577 0.245 27.325)\",\n border: \"oklch(0.923 0.003 48.717)\",\n input: \"oklch(0.923 0.003 48.717)\",\n ring: \"oklch(0.709 0.01 56.259)\",\n \"chart-1\": \"oklch(0.897 0.196 126.665)\",\n \"chart-2\": \"oklch(0.768 0.233 130.85)\",\n \"chart-3\": \"oklch(0.648 0.2 131.684)\",\n \"chart-4\": \"oklch(0.532 0.157 131.589)\",\n \"chart-5\": \"oklch(0.453 0.124 130.933)\",\n radius: \"0.625rem\",\n sidebar: \"oklch(0.985 0.001 106.423)\",\n \"sidebar-foreground\": \"oklch(0.147 0.004 49.25)\",\n \"sidebar-primary\": \"oklch(0.216 0.006 56.043)\",\n \"sidebar-primary-foreground\": \"oklch(0.985 0.001 106.423)\",\n \"sidebar-accent\": \"oklch(0.97 0.001 106.424)\",\n \"sidebar-accent-foreground\": \"oklch(0.216 0.006 56.043)\",\n \"sidebar-border\": \"oklch(0.923 0.003 48.717)\",\n \"sidebar-ring\": \"oklch(0.709 0.01 56.259)\",\n },\n dark: {\n background: \"oklch(0.147 0.004 49.25)\",\n foreground: \"oklch(0.985 0.001 106.423)\",\n card: \"oklch(0.216 0.006 56.043)\",\n \"card-foreground\": \"oklch(0.985 0.001 106.423)\",\n popover: \"oklch(0.216 0.006 56.043)\",\n \"popover-foreground\": \"oklch(0.985 0.001 106.423)\",\n primary: \"oklch(0.923 0.003 48.717)\",\n \"primary-foreground\": \"oklch(0.216 0.006 56.043)\",\n secondary: \"oklch(0.268 0.007 34.298)\",\n \"secondary-foreground\": \"oklch(0.985 0.001 106.423)\",\n muted: \"oklch(0.268 0.007 34.298)\",\n \"muted-foreground\": \"oklch(0.709 0.01 56.259)\",\n accent: \"oklch(0.268 0.007 34.298)\",\n \"accent-foreground\": \"oklch(0.985 0.001 106.423)\",\n destructive: \"oklch(0.704 0.191 22.216)\",\n border: \"oklch(1 0 0 / 10%)\",\n input: \"oklch(1 0 0 / 15%)\",\n ring: \"oklch(0.553 0.013 58.071)\",\n \"chart-1\": \"oklch(0.897 0.196 126.665)\",\n \"chart-2\": \"oklch(0.768 0.233 130.85)\",\n \"chart-3\": \"oklch(0.648 0.2 131.684)\",\n \"chart-4\": \"oklch(0.532 0.157 131.589)\",\n \"chart-5\": \"oklch(0.453 0.124 130.933)\",\n sidebar: \"oklch(0.216 0.006 56.043)\",\n \"sidebar-foreground\": \"oklch(0.985 0.001 106.423)\",\n \"sidebar-primary\": \"oklch(0.488 0.243 264.376)\",\n \"sidebar-primary-foreground\": \"oklch(0.985 0.001 106.423)\",\n \"sidebar-accent\": \"oklch(0.268 0.007 34.298)\",\n \"sidebar-accent-foreground\": \"oklch(0.985 0.001 106.423)\",\n \"sidebar-border\": \"oklch(1 0 0 / 10%)\",\n \"sidebar-ring\": \"oklch(0.553 0.013 58.071)\",\n },\n },\n },\n {\n name: \"zinc\",\n title: \"Zinc\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0.141 0.005 285.823)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0.141 0.005 285.823)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.141 0.005 285.823)\",\n primary: \"oklch(0.21 0.006 285.885)\",\n \"primary-foreground\": \"oklch(0.985 0 0)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n muted: \"oklch(0.967 0.001 286.375)\",\n \"muted-foreground\": \"oklch(0.552 0.016 285.938)\",\n accent: \"oklch(0.967 0.001 286.375)\",\n \"accent-foreground\": \"oklch(0.21 0.006 285.885)\",\n destructive: \"oklch(0.577 0.245 27.325)\",\n border: \"oklch(0.92 0.004 286.32)\",\n input: \"oklch(0.92 0.004 286.32)\",\n ring: \"oklch(0.705 0.015 286.067)\",\n \"chart-1\": \"oklch(0.879 0.169 91.605)\",\n \"chart-2\": \"oklch(0.769 0.188 70.08)\",\n \"chart-3\": \"oklch(0.666 0.179 58.318)\",\n \"chart-4\": \"oklch(0.555 0.163 48.998)\",\n \"chart-5\": \"oklch(0.473 0.137 46.201)\",\n radius: \"0.625rem\",\n sidebar: \"oklch(0.985 0 0)\",\n \"sidebar-foreground\": \"oklch(0.141 0.005 285.823)\",\n \"sidebar-primary\": \"oklch(0.21 0.006 285.885)\",\n \"sidebar-primary-foreground\": \"oklch(0.985 0 0)\",\n \"sidebar-accent\": \"oklch(0.967 0.001 286.375)\",\n \"sidebar-accent-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"sidebar-border\": \"oklch(0.92 0.004 286.32)\",\n \"sidebar-ring\": \"oklch(0.705 0.015 286.067)\",\n },\n dark: {\n background: \"oklch(0.141 0.005 285.823)\",\n foreground: \"oklch(0.985 0 0)\",\n card: \"oklch(0.21 0.006 285.885)\",\n \"card-foreground\": \"oklch(0.985 0 0)\",\n popover: \"oklch(0.21 0.006 285.885)\",\n \"popover-foreground\": \"oklch(0.985 0 0)\",\n primary: \"oklch(0.92 0.004 286.32)\",\n \"primary-foreground\": \"oklch(0.21 0.006 285.885)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n muted: \"oklch(0.274 0.006 286.033)\",\n \"muted-foreground\": \"oklch(0.705 0.015 286.067)\",\n accent: \"oklch(0.274 0.006 286.033)\",\n \"accent-foreground\": \"oklch(0.985 0 0)\",\n destructive: \"oklch(0.704 0.191 22.216)\",\n border: \"oklch(1 0 0 / 10%)\",\n input: \"oklch(1 0 0 / 15%)\",\n ring: \"oklch(0.552 0.016 285.938)\",\n \"chart-1\": \"oklch(0.879 0.169 91.605)\",\n \"chart-2\": \"oklch(0.769 0.188 70.08)\",\n \"chart-3\": \"oklch(0.666 0.179 58.318)\",\n \"chart-4\": \"oklch(0.555 0.163 48.998)\",\n \"chart-5\": \"oklch(0.473 0.137 46.201)\",\n sidebar: \"oklch(0.21 0.006 285.885)\",\n \"sidebar-foreground\": \"oklch(0.985 0 0)\",\n \"sidebar-primary\": \"oklch(0.488 0.243 264.376)\",\n \"sidebar-primary-foreground\": \"oklch(0.985 0 0)\",\n \"sidebar-accent\": \"oklch(0.274 0.006 286.033)\",\n \"sidebar-accent-foreground\": \"oklch(0.985 0 0)\",\n \"sidebar-border\": \"oklch(1 0 0 / 10%)\",\n \"sidebar-ring\": \"oklch(0.552 0.016 285.938)\",\n },\n },\n },\n {\n name: \"mauve\",\n title: \"Mauve\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0.145 0.008 326)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0.145 0.008 326)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.145 0.008 326)\",\n primary: \"oklch(0.212 0.019 322.12)\",\n \"primary-foreground\": \"oklch(0.985 0 0)\",\n secondary: \"oklch(0.96 0.003 325.6)\",\n \"secondary-foreground\": \"oklch(0.212 0.019 322.12)\",\n muted: \"oklch(0.96 0.003 325.6)\",\n \"muted-foreground\": \"oklch(0.542 0.034 322.5)\",\n accent: \"oklch(0.96 0.003 325.6)\",\n \"accent-foreground\": \"oklch(0.212 0.019 322.12)\",\n destructive: \"oklch(0.577 0.245 27.325)\",\n border: \"oklch(0.922 0.005 325.62)\",\n input: \"oklch(0.922 0.005 325.62)\",\n ring: \"oklch(0.711 0.019 323.02)\",\n \"chart-1\": \"oklch(0.845 0.143 164.978)\",\n \"chart-2\": \"oklch(0.696 0.17 162.48)\",\n \"chart-3\": \"oklch(0.596 0.145 163.225)\",\n \"chart-4\": \"oklch(0.508 0.118 165.612)\",\n \"chart-5\": \"oklch(0.432 0.095 166.913)\",\n radius: \"0.625rem\",\n sidebar: \"oklch(0.985 0 0)\",\n \"sidebar-foreground\": \"oklch(0.145 0.008 326)\",\n \"sidebar-primary\": \"oklch(0.212 0.019 322.12)\",\n \"sidebar-primary-foreground\": \"oklch(0.985 0 0)\",\n \"sidebar-accent\": \"oklch(0.96 0.003 325.6)\",\n \"sidebar-accent-foreground\": \"oklch(0.212 0.019 322.12)\",\n \"sidebar-border\": \"oklch(0.922 0.005 325.62)\",\n \"sidebar-ring\": \"oklch(0.711 0.019 323.02)\",\n },\n dark: {\n background: \"oklch(0.145 0.008 326)\",\n foreground: \"oklch(0.985 0 0)\",\n card: \"oklch(0.212 0.019 322.12)\",\n \"card-foreground\": \"oklch(0.985 0 0)\",\n popover: \"oklch(0.212 0.019 322.12)\",\n \"popover-foreground\": \"oklch(0.985 0 0)\",\n primary: \"oklch(0.922 0.005 325.62)\",\n \"primary-foreground\": \"oklch(0.212 0.019 322.12)\",\n secondary: \"oklch(0.263 0.024 320.12)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n muted: \"oklch(0.263 0.024 320.12)\",\n \"muted-foreground\": \"oklch(0.711 0.019 323.02)\",\n accent: \"oklch(0.263 0.024 320.12)\",\n \"accent-foreground\": \"oklch(0.985 0 0)\",\n destructive: \"oklch(0.704 0.191 22.216)\",\n border: \"oklch(1 0 0 / 10%)\",\n input: \"oklch(1 0 0 / 15%)\",\n ring: \"oklch(0.542 0.034 322.5)\",\n \"chart-1\": \"oklch(0.845 0.143 164.978)\",\n \"chart-2\": \"oklch(0.696 0.17 162.48)\",\n \"chart-3\": \"oklch(0.596 0.145 163.225)\",\n \"chart-4\": \"oklch(0.508 0.118 165.612)\",\n \"chart-5\": \"oklch(0.432 0.095 166.913)\",\n sidebar: \"oklch(0.212 0.019 322.12)\",\n \"sidebar-foreground\": \"oklch(0.985 0 0)\",\n \"sidebar-primary\": \"oklch(0.488 0.243 264.376)\",\n \"sidebar-primary-foreground\": \"oklch(0.985 0 0)\",\n \"sidebar-accent\": \"oklch(0.263 0.024 320.12)\",\n \"sidebar-accent-foreground\": \"oklch(0.985 0 0)\",\n \"sidebar-border\": \"oklch(1 0 0 / 10%)\",\n \"sidebar-ring\": \"oklch(0.542 0.034 322.5)\",\n },\n },\n },\n {\n name: \"olive\",\n title: \"Olive\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0.153 0.006 107.1)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0.153 0.006 107.1)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.153 0.006 107.1)\",\n primary: \"oklch(0.228 0.013 107.4)\",\n \"primary-foreground\": \"oklch(0.988 0.003 106.5)\",\n secondary: \"oklch(0.966 0.005 106.5)\",\n \"secondary-foreground\": \"oklch(0.228 0.013 107.4)\",\n muted: \"oklch(0.966 0.005 106.5)\",\n \"muted-foreground\": \"oklch(0.58 0.031 107.3)\",\n accent: \"oklch(0.966 0.005 106.5)\",\n \"accent-foreground\": \"oklch(0.228 0.013 107.4)\",\n destructive: \"oklch(0.577 0.245 27.325)\",\n border: \"oklch(0.93 0.007 106.5)\",\n input: \"oklch(0.93 0.007 106.5)\",\n ring: \"oklch(0.737 0.021 106.9)\",\n \"chart-1\": \"oklch(0.811 0.111 293.571)\",\n \"chart-2\": \"oklch(0.606 0.25 292.717)\",\n \"chart-3\": \"oklch(0.541 0.281 293.009)\",\n \"chart-4\": \"oklch(0.491 0.27 292.581)\",\n \"chart-5\": \"oklch(0.432 0.232 292.759)\",\n radius: \"0.625rem\",\n sidebar: \"oklch(0.988 0.003 106.5)\",\n \"sidebar-foreground\": \"oklch(0.153 0.006 107.1)\",\n \"sidebar-primary\": \"oklch(0.228 0.013 107.4)\",\n \"sidebar-primary-foreground\": \"oklch(0.988 0.003 106.5)\",\n \"sidebar-accent\": \"oklch(0.966 0.005 106.5)\",\n \"sidebar-accent-foreground\": \"oklch(0.228 0.013 107.4)\",\n \"sidebar-border\": \"oklch(0.93 0.007 106.5)\",\n \"sidebar-ring\": \"oklch(0.737 0.021 106.9)\",\n },\n dark: {\n background: \"oklch(0.153 0.006 107.1)\",\n foreground: \"oklch(0.988 0.003 106.5)\",\n card: \"oklch(0.228 0.013 107.4)\",\n \"card-foreground\": \"oklch(0.988 0.003 106.5)\",\n popover: \"oklch(0.228 0.013 107.4)\",\n \"popover-foreground\": \"oklch(0.988 0.003 106.5)\",\n primary: \"oklch(0.93 0.007 106.5)\",\n \"primary-foreground\": \"oklch(0.228 0.013 107.4)\",\n secondary: \"oklch(0.286 0.016 107.4)\",\n \"secondary-foreground\": \"oklch(0.988 0.003 106.5)\",\n muted: \"oklch(0.286 0.016 107.4)\",\n \"muted-foreground\": \"oklch(0.737 0.021 106.9)\",\n accent: \"oklch(0.286 0.016 107.4)\",\n \"accent-foreground\": \"oklch(0.988 0.003 106.5)\",\n destructive: \"oklch(0.704 0.191 22.216)\",\n border: \"oklch(1 0 0 / 10%)\",\n input: \"oklch(1 0 0 / 15%)\",\n ring: \"oklch(0.58 0.031 107.3)\",\n \"chart-1\": \"oklch(0.811 0.111 293.571)\",\n \"chart-2\": \"oklch(0.606 0.25 292.717)\",\n \"chart-3\": \"oklch(0.541 0.281 293.009)\",\n \"chart-4\": \"oklch(0.491 0.27 292.581)\",\n \"chart-5\": \"oklch(0.432 0.232 292.759)\",\n sidebar: \"oklch(0.228 0.013 107.4)\",\n \"sidebar-foreground\": \"oklch(0.988 0.003 106.5)\",\n \"sidebar-primary\": \"oklch(0.488 0.243 264.376)\",\n \"sidebar-primary-foreground\": \"oklch(0.988 0.003 106.5)\",\n \"sidebar-accent\": \"oklch(0.286 0.016 107.4)\",\n \"sidebar-accent-foreground\": \"oklch(0.988 0.003 106.5)\",\n \"sidebar-border\": \"oklch(1 0 0 / 10%)\",\n \"sidebar-ring\": \"oklch(0.58 0.031 107.3)\",\n },\n },\n },\n {\n name: \"mist\",\n title: \"Mist\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0.148 0.004 228.8)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0.148 0.004 228.8)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.148 0.004 228.8)\",\n primary: \"oklch(0.218 0.008 223.9)\",\n \"primary-foreground\": \"oklch(0.987 0.002 197.1)\",\n secondary: \"oklch(0.963 0.002 197.1)\",\n \"secondary-foreground\": \"oklch(0.218 0.008 223.9)\",\n muted: \"oklch(0.963 0.002 197.1)\",\n \"muted-foreground\": \"oklch(0.56 0.021 213.5)\",\n accent: \"oklch(0.963 0.002 197.1)\",\n \"accent-foreground\": \"oklch(0.218 0.008 223.9)\",\n destructive: \"oklch(0.577 0.245 27.325)\",\n border: \"oklch(0.925 0.005 214.3)\",\n input: \"oklch(0.925 0.005 214.3)\",\n ring: \"oklch(0.723 0.014 214.4)\",\n \"chart-1\": \"oklch(0.81 0.117 11.638)\",\n \"chart-2\": \"oklch(0.645 0.246 16.439)\",\n \"chart-3\": \"oklch(0.586 0.253 17.585)\",\n \"chart-4\": \"oklch(0.514 0.222 16.935)\",\n \"chart-5\": \"oklch(0.455 0.188 13.697)\",\n radius: \"0.625rem\",\n sidebar: \"oklch(0.987 0.002 197.1)\",\n \"sidebar-foreground\": \"oklch(0.148 0.004 228.8)\",\n \"sidebar-primary\": \"oklch(0.218 0.008 223.9)\",\n \"sidebar-primary-foreground\": \"oklch(0.987 0.002 197.1)\",\n \"sidebar-accent\": \"oklch(0.963 0.002 197.1)\",\n \"sidebar-accent-foreground\": \"oklch(0.218 0.008 223.9)\",\n \"sidebar-border\": \"oklch(0.925 0.005 214.3)\",\n \"sidebar-ring\": \"oklch(0.723 0.014 214.4)\",\n },\n dark: {\n background: \"oklch(0.148 0.004 228.8)\",\n foreground: \"oklch(0.987 0.002 197.1)\",\n card: \"oklch(0.218 0.008 223.9)\",\n \"card-foreground\": \"oklch(0.987 0.002 197.1)\",\n popover: \"oklch(0.218 0.008 223.9)\",\n \"popover-foreground\": \"oklch(0.987 0.002 197.1)\",\n primary: \"oklch(0.925 0.005 214.3)\",\n \"primary-foreground\": \"oklch(0.218 0.008 223.9)\",\n secondary: \"oklch(0.275 0.011 216.9)\",\n \"secondary-foreground\": \"oklch(0.987 0.002 197.1)\",\n muted: \"oklch(0.275 0.011 216.9)\",\n \"muted-foreground\": \"oklch(0.723 0.014 214.4)\",\n accent: \"oklch(0.275 0.011 216.9)\",\n \"accent-foreground\": \"oklch(0.987 0.002 197.1)\",\n destructive: \"oklch(0.704 0.191 22.216)\",\n border: \"oklch(1 0 0 / 10%)\",\n input: \"oklch(1 0 0 / 15%)\",\n ring: \"oklch(0.56 0.021 213.5)\",\n \"chart-1\": \"oklch(0.81 0.117 11.638)\",\n \"chart-2\": \"oklch(0.645 0.246 16.439)\",\n \"chart-3\": \"oklch(0.586 0.253 17.585)\",\n \"chart-4\": \"oklch(0.514 0.222 16.935)\",\n \"chart-5\": \"oklch(0.455 0.188 13.697)\",\n sidebar: \"oklch(0.218 0.008 223.9)\",\n \"sidebar-foreground\": \"oklch(0.987 0.002 197.1)\",\n \"sidebar-primary\": \"oklch(0.488 0.243 264.376)\",\n \"sidebar-primary-foreground\": \"oklch(0.987 0.002 197.1)\",\n \"sidebar-accent\": \"oklch(0.275 0.011 216.9)\",\n \"sidebar-accent-foreground\": \"oklch(0.987 0.002 197.1)\",\n \"sidebar-border\": \"oklch(1 0 0 / 10%)\",\n \"sidebar-ring\": \"oklch(0.56 0.021 213.5)\",\n },\n },\n },\n {\n name: \"taupe\",\n title: \"Taupe\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n background: \"oklch(1 0 0)\",\n foreground: \"oklch(0.147 0.004 49.3)\",\n card: \"oklch(1 0 0)\",\n \"card-foreground\": \"oklch(0.147 0.004 49.3)\",\n popover: \"oklch(1 0 0)\",\n \"popover-foreground\": \"oklch(0.147 0.004 49.3)\",\n primary: \"oklch(0.214 0.009 43.1)\",\n \"primary-foreground\": \"oklch(0.986 0.002 67.8)\",\n secondary: \"oklch(0.96 0.002 17.2)\",\n \"secondary-foreground\": \"oklch(0.214 0.009 43.1)\",\n muted: \"oklch(0.96 0.002 17.2)\",\n \"muted-foreground\": \"oklch(0.547 0.021 43.1)\",\n accent: \"oklch(0.96 0.002 17.2)\",\n \"accent-foreground\": \"oklch(0.214 0.009 43.1)\",\n destructive: \"oklch(0.577 0.245 27.325)\",\n border: \"oklch(0.922 0.005 34.3)\",\n input: \"oklch(0.922 0.005 34.3)\",\n ring: \"oklch(0.714 0.014 41.2)\",\n \"chart-1\": \"oklch(0.865 0.127 207.078)\",\n \"chart-2\": \"oklch(0.715 0.143 215.221)\",\n \"chart-3\": \"oklch(0.609 0.126 221.723)\",\n \"chart-4\": \"oklch(0.52 0.105 223.128)\",\n \"chart-5\": \"oklch(0.45 0.085 224.283)\",\n radius: \"0.625rem\",\n sidebar: \"oklch(0.986 0.002 67.8)\",\n \"sidebar-foreground\": \"oklch(0.147 0.004 49.3)\",\n \"sidebar-primary\": \"oklch(0.214 0.009 43.1)\",\n \"sidebar-primary-foreground\": \"oklch(0.986 0.002 67.8)\",\n \"sidebar-accent\": \"oklch(0.96 0.002 17.2)\",\n \"sidebar-accent-foreground\": \"oklch(0.214 0.009 43.1)\",\n \"sidebar-border\": \"oklch(0.922 0.005 34.3)\",\n \"sidebar-ring\": \"oklch(0.714 0.014 41.2)\",\n },\n dark: {\n background: \"oklch(0.147 0.004 49.3)\",\n foreground: \"oklch(0.986 0.002 67.8)\",\n card: \"oklch(0.214 0.009 43.1)\",\n \"card-foreground\": \"oklch(0.986 0.002 67.8)\",\n popover: \"oklch(0.214 0.009 43.1)\",\n \"popover-foreground\": \"oklch(0.986 0.002 67.8)\",\n primary: \"oklch(0.922 0.005 34.3)\",\n \"primary-foreground\": \"oklch(0.214 0.009 43.1)\",\n secondary: \"oklch(0.268 0.011 36.5)\",\n \"secondary-foreground\": \"oklch(0.986 0.002 67.8)\",\n muted: \"oklch(0.268 0.011 36.5)\",\n \"muted-foreground\": \"oklch(0.714 0.014 41.2)\",\n accent: \"oklch(0.268 0.011 36.5)\",\n \"accent-foreground\": \"oklch(0.986 0.002 67.8)\",\n destructive: \"oklch(0.704 0.191 22.216)\",\n border: \"oklch(1 0 0 / 10%)\",\n input: \"oklch(1 0 0 / 15%)\",\n ring: \"oklch(0.547 0.021 43.1)\",\n \"chart-1\": \"oklch(0.865 0.127 207.078)\",\n \"chart-2\": \"oklch(0.715 0.143 215.221)\",\n \"chart-3\": \"oklch(0.609 0.126 221.723)\",\n \"chart-4\": \"oklch(0.52 0.105 223.128)\",\n \"chart-5\": \"oklch(0.45 0.085 224.283)\",\n sidebar: \"oklch(0.214 0.009 43.1)\",\n \"sidebar-foreground\": \"oklch(0.986 0.002 67.8)\",\n \"sidebar-primary\": \"oklch(0.488 0.243 264.376)\",\n \"sidebar-primary-foreground\": \"oklch(0.986 0.002 67.8)\",\n \"sidebar-accent\": \"oklch(0.268 0.011 36.5)\",\n \"sidebar-accent-foreground\": \"oklch(0.986 0.002 67.8)\",\n \"sidebar-border\": \"oklch(1 0 0 / 10%)\",\n \"sidebar-ring\": \"oklch(0.547 0.021 43.1)\",\n },\n },\n },\n {\n name: \"amber\",\n title: \"Amber\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.555 0.163 48.998)\",\n \"primary-foreground\": \"oklch(0.987 0.022 95.277)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.879 0.169 91.605)\",\n \"chart-2\": \"oklch(0.769 0.188 70.08)\",\n \"chart-3\": \"oklch(0.666 0.179 58.318)\",\n \"chart-4\": \"oklch(0.555 0.163 48.998)\",\n \"chart-5\": \"oklch(0.473 0.137 46.201)\",\n \"sidebar-primary\": \"oklch(0.666 0.179 58.318)\",\n \"sidebar-primary-foreground\": \"oklch(0.987 0.022 95.277)\",\n },\n dark: {\n primary: \"oklch(0.473 0.137 46.201)\",\n \"primary-foreground\": \"oklch(0.987 0.022 95.277)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.879 0.169 91.605)\",\n \"chart-2\": \"oklch(0.769 0.188 70.08)\",\n \"chart-3\": \"oklch(0.666 0.179 58.318)\",\n \"chart-4\": \"oklch(0.555 0.163 48.998)\",\n \"chart-5\": \"oklch(0.473 0.137 46.201)\",\n \"sidebar-primary\": \"oklch(0.769 0.188 70.08)\",\n \"sidebar-primary-foreground\": \"oklch(0.279 0.077 45.635)\",\n },\n },\n },\n {\n name: \"blue\",\n title: \"Blue\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.488 0.243 264.376)\",\n \"primary-foreground\": \"oklch(0.97 0.014 254.604)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.809 0.105 251.813)\",\n \"chart-2\": \"oklch(0.623 0.214 259.815)\",\n \"chart-3\": \"oklch(0.546 0.245 262.881)\",\n \"chart-4\": \"oklch(0.488 0.243 264.376)\",\n \"chart-5\": \"oklch(0.424 0.199 265.638)\",\n \"sidebar-primary\": \"oklch(0.546 0.245 262.881)\",\n \"sidebar-primary-foreground\": \"oklch(0.97 0.014 254.604)\",\n },\n dark: {\n primary: \"oklch(0.424 0.199 265.638)\",\n \"primary-foreground\": \"oklch(0.97 0.014 254.604)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.809 0.105 251.813)\",\n \"chart-2\": \"oklch(0.623 0.214 259.815)\",\n \"chart-3\": \"oklch(0.546 0.245 262.881)\",\n \"chart-4\": \"oklch(0.488 0.243 264.376)\",\n \"chart-5\": \"oklch(0.424 0.199 265.638)\",\n \"sidebar-primary\": \"oklch(0.623 0.214 259.815)\",\n \"sidebar-primary-foreground\": \"oklch(0.97 0.014 254.604)\",\n },\n },\n },\n {\n name: \"cyan\",\n title: \"Cyan\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.52 0.105 223.128)\",\n \"primary-foreground\": \"oklch(0.984 0.019 200.873)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.865 0.127 207.078)\",\n \"chart-2\": \"oklch(0.715 0.143 215.221)\",\n \"chart-3\": \"oklch(0.609 0.126 221.723)\",\n \"chart-4\": \"oklch(0.52 0.105 223.128)\",\n \"chart-5\": \"oklch(0.45 0.085 224.283)\",\n \"sidebar-primary\": \"oklch(0.609 0.126 221.723)\",\n \"sidebar-primary-foreground\": \"oklch(0.984 0.019 200.873)\",\n },\n dark: {\n primary: \"oklch(0.45 0.085 224.283)\",\n \"primary-foreground\": \"oklch(0.984 0.019 200.873)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.865 0.127 207.078)\",\n \"chart-2\": \"oklch(0.715 0.143 215.221)\",\n \"chart-3\": \"oklch(0.609 0.126 221.723)\",\n \"chart-4\": \"oklch(0.52 0.105 223.128)\",\n \"chart-5\": \"oklch(0.45 0.085 224.283)\",\n \"sidebar-primary\": \"oklch(0.715 0.143 215.221)\",\n \"sidebar-primary-foreground\": \"oklch(0.302 0.056 229.695)\",\n },\n },\n },\n {\n name: \"emerald\",\n title: \"Emerald\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.508 0.118 165.612)\",\n \"primary-foreground\": \"oklch(0.979 0.021 166.113)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.845 0.143 164.978)\",\n \"chart-2\": \"oklch(0.696 0.17 162.48)\",\n \"chart-3\": \"oklch(0.596 0.145 163.225)\",\n \"chart-4\": \"oklch(0.508 0.118 165.612)\",\n \"chart-5\": \"oklch(0.432 0.095 166.913)\",\n \"sidebar-primary\": \"oklch(0.596 0.145 163.225)\",\n \"sidebar-primary-foreground\": \"oklch(0.979 0.021 166.113)\",\n },\n dark: {\n primary: \"oklch(0.432 0.095 166.913)\",\n \"primary-foreground\": \"oklch(0.979 0.021 166.113)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.845 0.143 164.978)\",\n \"chart-2\": \"oklch(0.696 0.17 162.48)\",\n \"chart-3\": \"oklch(0.596 0.145 163.225)\",\n \"chart-4\": \"oklch(0.508 0.118 165.612)\",\n \"chart-5\": \"oklch(0.432 0.095 166.913)\",\n \"sidebar-primary\": \"oklch(0.696 0.17 162.48)\",\n \"sidebar-primary-foreground\": \"oklch(0.262 0.051 172.552)\",\n },\n },\n },\n {\n name: \"fuchsia\",\n title: \"Fuchsia\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.518 0.253 323.949)\",\n \"primary-foreground\": \"oklch(0.977 0.017 320.058)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.833 0.145 321.434)\",\n \"chart-2\": \"oklch(0.667 0.295 322.15)\",\n \"chart-3\": \"oklch(0.591 0.293 322.896)\",\n \"chart-4\": \"oklch(0.518 0.253 323.949)\",\n \"chart-5\": \"oklch(0.452 0.211 324.591)\",\n \"sidebar-primary\": \"oklch(0.591 0.293 322.896)\",\n \"sidebar-primary-foreground\": \"oklch(0.977 0.017 320.058)\",\n },\n dark: {\n primary: \"oklch(0.452 0.211 324.591)\",\n \"primary-foreground\": \"oklch(0.977 0.017 320.058)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.833 0.145 321.434)\",\n \"chart-2\": \"oklch(0.667 0.295 322.15)\",\n \"chart-3\": \"oklch(0.591 0.293 322.896)\",\n \"chart-4\": \"oklch(0.518 0.253 323.949)\",\n \"chart-5\": \"oklch(0.452 0.211 324.591)\",\n \"sidebar-primary\": \"oklch(0.667 0.295 322.15)\",\n \"sidebar-primary-foreground\": \"oklch(0.977 0.017 320.058)\",\n },\n },\n },\n {\n name: \"green\",\n title: \"Green\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.532 0.157 131.589)\",\n \"primary-foreground\": \"oklch(0.986 0.031 120.757)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.871 0.15 154.449)\",\n \"chart-2\": \"oklch(0.723 0.219 149.579)\",\n \"chart-3\": \"oklch(0.627 0.194 149.214)\",\n \"chart-4\": \"oklch(0.527 0.154 150.069)\",\n \"chart-5\": \"oklch(0.448 0.119 151.328)\",\n \"sidebar-primary\": \"oklch(0.648 0.2 131.684)\",\n \"sidebar-primary-foreground\": \"oklch(0.986 0.031 120.757)\",\n },\n dark: {\n primary: \"oklch(0.453 0.124 130.933)\",\n \"primary-foreground\": \"oklch(0.986 0.031 120.757)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.871 0.15 154.449)\",\n \"chart-2\": \"oklch(0.723 0.219 149.579)\",\n \"chart-3\": \"oklch(0.627 0.194 149.214)\",\n \"chart-4\": \"oklch(0.527 0.154 150.069)\",\n \"chart-5\": \"oklch(0.448 0.119 151.328)\",\n \"sidebar-primary\": \"oklch(0.768 0.233 130.85)\",\n \"sidebar-primary-foreground\": \"oklch(0.986 0.031 120.757)\",\n },\n },\n },\n {\n name: \"indigo\",\n title: \"Indigo\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.457 0.24 277.023)\",\n \"primary-foreground\": \"oklch(0.962 0.018 272.314)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.785 0.115 274.713)\",\n \"chart-2\": \"oklch(0.585 0.233 277.117)\",\n \"chart-3\": \"oklch(0.511 0.262 276.966)\",\n \"chart-4\": \"oklch(0.457 0.24 277.023)\",\n \"chart-5\": \"oklch(0.398 0.195 277.366)\",\n \"sidebar-primary\": \"oklch(0.511 0.262 276.966)\",\n \"sidebar-primary-foreground\": \"oklch(0.962 0.018 272.314)\",\n },\n dark: {\n primary: \"oklch(0.398 0.195 277.366)\",\n \"primary-foreground\": \"oklch(0.962 0.018 272.314)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.785 0.115 274.713)\",\n \"chart-2\": \"oklch(0.585 0.233 277.117)\",\n \"chart-3\": \"oklch(0.511 0.262 276.966)\",\n \"chart-4\": \"oklch(0.457 0.24 277.023)\",\n \"chart-5\": \"oklch(0.398 0.195 277.366)\",\n \"sidebar-primary\": \"oklch(0.585 0.233 277.117)\",\n \"sidebar-primary-foreground\": \"oklch(0.962 0.018 272.314)\",\n },\n },\n },\n {\n name: \"lime\",\n title: \"Lime\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.532 0.157 131.589)\",\n \"primary-foreground\": \"oklch(0.986 0.031 120.757)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.897 0.196 126.665)\",\n \"chart-2\": \"oklch(0.768 0.233 130.85)\",\n \"chart-3\": \"oklch(0.648 0.2 131.684)\",\n \"chart-4\": \"oklch(0.532 0.157 131.589)\",\n \"chart-5\": \"oklch(0.453 0.124 130.933)\",\n \"sidebar-primary\": \"oklch(0.648 0.2 131.684)\",\n \"sidebar-primary-foreground\": \"oklch(0.986 0.031 120.757)\",\n },\n dark: {\n primary: \"oklch(0.453 0.124 130.933)\",\n \"primary-foreground\": \"oklch(0.986 0.031 120.757)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.897 0.196 126.665)\",\n \"chart-2\": \"oklch(0.768 0.233 130.85)\",\n \"chart-3\": \"oklch(0.648 0.2 131.684)\",\n \"chart-4\": \"oklch(0.532 0.157 131.589)\",\n \"chart-5\": \"oklch(0.453 0.124 130.933)\",\n \"sidebar-primary\": \"oklch(0.768 0.233 130.85)\",\n \"sidebar-primary-foreground\": \"oklch(0.274 0.072 132.109)\",\n },\n },\n },\n {\n name: \"orange\",\n title: \"Orange\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.553 0.195 38.402)\",\n \"primary-foreground\": \"oklch(0.98 0.016 73.684)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.837 0.128 66.29)\",\n \"chart-2\": \"oklch(0.705 0.213 47.604)\",\n \"chart-3\": \"oklch(0.646 0.222 41.116)\",\n \"chart-4\": \"oklch(0.553 0.195 38.402)\",\n \"chart-5\": \"oklch(0.47 0.157 37.304)\",\n \"sidebar-primary\": \"oklch(0.646 0.222 41.116)\",\n \"sidebar-primary-foreground\": \"oklch(0.98 0.016 73.684)\",\n },\n dark: {\n primary: \"oklch(0.47 0.157 37.304)\",\n \"primary-foreground\": \"oklch(0.98 0.016 73.684)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.837 0.128 66.29)\",\n \"chart-2\": \"oklch(0.705 0.213 47.604)\",\n \"chart-3\": \"oklch(0.646 0.222 41.116)\",\n \"chart-4\": \"oklch(0.553 0.195 38.402)\",\n \"chart-5\": \"oklch(0.47 0.157 37.304)\",\n \"sidebar-primary\": \"oklch(0.705 0.213 47.604)\",\n \"sidebar-primary-foreground\": \"oklch(0.98 0.016 73.684)\",\n },\n },\n },\n {\n name: \"pink\",\n title: \"Pink\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.525 0.223 3.958)\",\n \"primary-foreground\": \"oklch(0.971 0.014 343.198)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.823 0.12 346.018)\",\n \"chart-2\": \"oklch(0.656 0.241 354.308)\",\n \"chart-3\": \"oklch(0.592 0.249 0.584)\",\n \"chart-4\": \"oklch(0.525 0.223 3.958)\",\n \"chart-5\": \"oklch(0.459 0.187 3.815)\",\n \"sidebar-primary\": \"oklch(0.592 0.249 0.584)\",\n \"sidebar-primary-foreground\": \"oklch(0.971 0.014 343.198)\",\n },\n dark: {\n primary: \"oklch(0.459 0.187 3.815)\",\n \"primary-foreground\": \"oklch(0.971 0.014 343.198)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.823 0.12 346.018)\",\n \"chart-2\": \"oklch(0.656 0.241 354.308)\",\n \"chart-3\": \"oklch(0.592 0.249 0.584)\",\n \"chart-4\": \"oklch(0.525 0.223 3.958)\",\n \"chart-5\": \"oklch(0.459 0.187 3.815)\",\n \"sidebar-primary\": \"oklch(0.656 0.241 354.308)\",\n \"sidebar-primary-foreground\": \"oklch(0.971 0.014 343.198)\",\n },\n },\n },\n {\n name: \"purple\",\n title: \"Purple\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.496 0.265 301.924)\",\n \"primary-foreground\": \"oklch(0.977 0.014 308.299)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.827 0.119 306.383)\",\n \"chart-2\": \"oklch(0.627 0.265 303.9)\",\n \"chart-3\": \"oklch(0.558 0.288 302.321)\",\n \"chart-4\": \"oklch(0.496 0.265 301.924)\",\n \"chart-5\": \"oklch(0.438 0.218 303.724)\",\n \"sidebar-primary\": \"oklch(0.558 0.288 302.321)\",\n \"sidebar-primary-foreground\": \"oklch(0.977 0.014 308.299)\",\n },\n dark: {\n primary: \"oklch(0.438 0.218 303.724)\",\n \"primary-foreground\": \"oklch(0.977 0.014 308.299)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.827 0.119 306.383)\",\n \"chart-2\": \"oklch(0.627 0.265 303.9)\",\n \"chart-3\": \"oklch(0.558 0.288 302.321)\",\n \"chart-4\": \"oklch(0.496 0.265 301.924)\",\n \"chart-5\": \"oklch(0.438 0.218 303.724)\",\n \"sidebar-primary\": \"oklch(0.627 0.265 303.9)\",\n \"sidebar-primary-foreground\": \"oklch(0.977 0.014 308.299)\",\n },\n },\n },\n {\n name: \"red\",\n title: \"Red\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.505 0.213 27.518)\",\n \"primary-foreground\": \"oklch(0.971 0.013 17.38)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.808 0.114 19.571)\",\n \"chart-2\": \"oklch(0.637 0.237 25.331)\",\n \"chart-3\": \"oklch(0.577 0.245 27.325)\",\n \"chart-4\": \"oklch(0.505 0.213 27.518)\",\n \"chart-5\": \"oklch(0.444 0.177 26.899)\",\n \"sidebar-primary\": \"oklch(0.577 0.245 27.325)\",\n \"sidebar-primary-foreground\": \"oklch(0.971 0.013 17.38)\",\n },\n dark: {\n primary: \"oklch(0.444 0.177 26.899)\",\n \"primary-foreground\": \"oklch(0.971 0.013 17.38)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.808 0.114 19.571)\",\n \"chart-2\": \"oklch(0.637 0.237 25.331)\",\n \"chart-3\": \"oklch(0.577 0.245 27.325)\",\n \"chart-4\": \"oklch(0.505 0.213 27.518)\",\n \"chart-5\": \"oklch(0.444 0.177 26.899)\",\n \"sidebar-primary\": \"oklch(0.637 0.237 25.331)\",\n \"sidebar-primary-foreground\": \"oklch(0.971 0.013 17.38)\",\n },\n },\n },\n {\n name: \"rose\",\n title: \"Rose\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.514 0.222 16.935)\",\n \"primary-foreground\": \"oklch(0.969 0.015 12.422)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.81 0.117 11.638)\",\n \"chart-2\": \"oklch(0.645 0.246 16.439)\",\n \"chart-3\": \"oklch(0.586 0.253 17.585)\",\n \"chart-4\": \"oklch(0.514 0.222 16.935)\",\n \"chart-5\": \"oklch(0.455 0.188 13.697)\",\n \"sidebar-primary\": \"oklch(0.586 0.253 17.585)\",\n \"sidebar-primary-foreground\": \"oklch(0.969 0.015 12.422)\",\n },\n dark: {\n primary: \"oklch(0.455 0.188 13.697)\",\n \"primary-foreground\": \"oklch(0.969 0.015 12.422)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.81 0.117 11.638)\",\n \"chart-2\": \"oklch(0.645 0.246 16.439)\",\n \"chart-3\": \"oklch(0.586 0.253 17.585)\",\n \"chart-4\": \"oklch(0.514 0.222 16.935)\",\n \"chart-5\": \"oklch(0.455 0.188 13.697)\",\n sidebar: \"oklch(0.21 0.006 285.885)\",\n \"sidebar-primary\": \"oklch(0.645 0.246 16.439)\",\n \"sidebar-primary-foreground\": \"oklch(0.969 0.015 12.422)\",\n },\n },\n },\n {\n name: \"sky\",\n title: \"Sky\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.5 0.134 242.749)\",\n \"primary-foreground\": \"oklch(0.977 0.013 236.62)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.828 0.111 230.318)\",\n \"chart-2\": \"oklch(0.685 0.169 237.323)\",\n \"chart-3\": \"oklch(0.588 0.158 241.966)\",\n \"chart-4\": \"oklch(0.5 0.134 242.749)\",\n \"chart-5\": \"oklch(0.443 0.11 240.79)\",\n \"sidebar-primary\": \"oklch(0.588 0.158 241.966)\",\n \"sidebar-primary-foreground\": \"oklch(0.977 0.013 236.62)\",\n },\n dark: {\n primary: \"oklch(0.443 0.11 240.79)\",\n \"primary-foreground\": \"oklch(0.977 0.013 236.62)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.828 0.111 230.318)\",\n \"chart-2\": \"oklch(0.685 0.169 237.323)\",\n \"chart-3\": \"oklch(0.588 0.158 241.966)\",\n \"chart-4\": \"oklch(0.5 0.134 242.749)\",\n \"chart-5\": \"oklch(0.443 0.11 240.79)\",\n \"sidebar-primary\": \"oklch(0.685 0.169 237.323)\",\n \"sidebar-primary-foreground\": \"oklch(0.293 0.066 243.157)\",\n },\n },\n },\n {\n name: \"teal\",\n title: \"Teal\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.511 0.096 186.391)\",\n \"primary-foreground\": \"oklch(0.984 0.014 180.72)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.855 0.138 181.071)\",\n \"chart-2\": \"oklch(0.704 0.14 182.503)\",\n \"chart-3\": \"oklch(0.6 0.118 184.704)\",\n \"chart-4\": \"oklch(0.511 0.096 186.391)\",\n \"chart-5\": \"oklch(0.437 0.078 188.216)\",\n \"sidebar-primary\": \"oklch(0.6 0.118 184.704)\",\n \"sidebar-primary-foreground\": \"oklch(0.984 0.014 180.72)\",\n },\n dark: {\n primary: \"oklch(0.437 0.078 188.216)\",\n \"primary-foreground\": \"oklch(0.984 0.014 180.72)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.855 0.138 181.071)\",\n \"chart-2\": \"oklch(0.704 0.14 182.503)\",\n \"chart-3\": \"oklch(0.6 0.118 184.704)\",\n \"chart-4\": \"oklch(0.511 0.096 186.391)\",\n \"chart-5\": \"oklch(0.437 0.078 188.216)\",\n \"sidebar-primary\": \"oklch(0.704 0.14 182.503)\",\n \"sidebar-primary-foreground\": \"oklch(0.277 0.046 192.524)\",\n },\n },\n },\n {\n name: \"violet\",\n title: \"Violet\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.491 0.27 292.581)\",\n \"primary-foreground\": \"oklch(0.969 0.016 293.756)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.811 0.111 293.571)\",\n \"chart-2\": \"oklch(0.606 0.25 292.717)\",\n \"chart-3\": \"oklch(0.541 0.281 293.009)\",\n \"chart-4\": \"oklch(0.491 0.27 292.581)\",\n \"chart-5\": \"oklch(0.432 0.232 292.759)\",\n \"sidebar-primary\": \"oklch(0.541 0.281 293.009)\",\n \"sidebar-primary-foreground\": \"oklch(0.969 0.016 293.756)\",\n },\n dark: {\n primary: \"oklch(0.432 0.232 292.759)\",\n \"primary-foreground\": \"oklch(0.969 0.016 293.756)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.811 0.111 293.571)\",\n \"chart-2\": \"oklch(0.606 0.25 292.717)\",\n \"chart-3\": \"oklch(0.541 0.281 293.009)\",\n \"chart-4\": \"oklch(0.491 0.27 292.581)\",\n \"chart-5\": \"oklch(0.432 0.232 292.759)\",\n \"sidebar-primary\": \"oklch(0.606 0.25 292.717)\",\n \"sidebar-primary-foreground\": \"oklch(0.969 0.016 293.756)\",\n },\n },\n },\n {\n name: \"yellow\",\n title: \"Yellow\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.852 0.199 91.936)\",\n \"primary-foreground\": \"oklch(0.421 0.095 57.708)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.905 0.182 98.111)\",\n \"chart-2\": \"oklch(0.795 0.184 86.047)\",\n \"chart-3\": \"oklch(0.681 0.162 75.834)\",\n \"chart-4\": \"oklch(0.554 0.135 66.442)\",\n \"chart-5\": \"oklch(0.476 0.114 61.907)\",\n \"sidebar-primary\": \"oklch(0.681 0.162 75.834)\",\n \"sidebar-primary-foreground\": \"oklch(0.987 0.026 102.212)\",\n },\n dark: {\n primary: \"oklch(0.795 0.184 86.047)\",\n \"primary-foreground\": \"oklch(0.421 0.095 57.708)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.905 0.182 98.111)\",\n \"chart-2\": \"oklch(0.795 0.184 86.047)\",\n \"chart-3\": \"oklch(0.681 0.162 75.834)\",\n \"chart-4\": \"oklch(0.554 0.135 66.442)\",\n \"chart-5\": \"oklch(0.476 0.114 61.907)\",\n \"sidebar-primary\": \"oklch(0.795 0.184 86.047)\",\n \"sidebar-primary-foreground\": \"oklch(0.987 0.026 102.212)\",\n },\n },\n },\n {\n name: \"bejamas-blue\",\n title: \"Marine\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.4634 0.2647 264.76)\",\n \"primary-foreground\": \"oklch(0.97 0.014 264.76)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.729 0.132 267.96)\",\n \"chart-2\": \"oklch(0.579 0.237 266.56)\",\n \"chart-3\": \"oklch(0.493 0.277 263.66)\",\n \"chart-4\": \"oklch(0.463 0.265 264.76)\",\n \"chart-5\": \"oklch(0.373 0.213 261.56)\",\n \"sidebar-primary\": \"oklch(0.4634 0.2647 264.76)\",\n \"sidebar-primary-foreground\": \"oklch(0.97 0.014 264.76)\",\n },\n dark: {\n primary: \"oklch(0.4634 0.2647 264.76)\",\n \"primary-foreground\": \"oklch(0.97 0.014 264.76)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.729 0.132 267.96)\",\n \"chart-2\": \"oklch(0.579 0.237 266.56)\",\n \"chart-3\": \"oklch(0.493 0.277 263.66)\",\n \"chart-4\": \"oklch(0.463 0.265 264.76)\",\n \"chart-5\": \"oklch(0.373 0.213 261.56)\",\n \"sidebar-primary\": \"oklch(0.4634 0.2647 264.76)\",\n \"sidebar-primary-foreground\": \"oklch(0.97 0.014 264.76)\",\n },\n },\n },\n {\n name: \"bejamas-neon-yellow\",\n title: \"Lime\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(91.98% 0.1905 128.5)\",\n \"primary-foreground\": \"oklch(0 0 0)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.905 0.182 98.111)\",\n \"chart-2\": \"oklch(0.795 0.184 86.047)\",\n \"chart-3\": \"oklch(0.681 0.162 75.834)\",\n \"chart-4\": \"oklch(91.98% 0.1905 128.5)\",\n \"chart-5\": \"oklch(0.476 0.114 61.907)\",\n \"sidebar-primary\": \"oklch(91.98% 0.1905 128.5)\",\n \"sidebar-primary-foreground\": \"oklch(0.421 0.095 57.708)\",\n },\n dark: {\n primary: \"oklch(91.98% 0.1905 128.5)\",\n \"primary-foreground\": \"oklch(0 0 0)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.905 0.182 98.111)\",\n \"chart-2\": \"oklch(0.795 0.184 86.047)\",\n \"chart-3\": \"oklch(0.681 0.162 75.834)\",\n \"chart-4\": \"oklch(91.98% 0.1905 128.5)\",\n \"chart-5\": \"oklch(0.476 0.114 61.907)\",\n \"sidebar-primary\": \"oklch(91.98% 0.1905 128.5)\",\n \"sidebar-primary-foreground\": \"oklch(0.421 0.095 57.708)\",\n },\n },\n },\n {\n name: \"bejamas-apple\",\n title: \"Apple\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.5468 0.2237 29.24)\",\n \"primary-foreground\": \"oklch(0.97 0.015 29.24)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.786 0.112 32.44)\",\n \"chart-2\": \"oklch(0.646 0.198 31.53)\",\n \"chart-3\": \"oklch(0.537 0.246 28.14)\",\n \"chart-4\": \"oklch(0.547 0.224 29.24)\",\n \"chart-5\": \"oklch(0.417 0.201 25.84)\",\n \"sidebar-primary\": \"oklch(0.5468 0.2237 29.24)\",\n \"sidebar-primary-foreground\": \"oklch(0.97 0.015 29.24)\",\n },\n dark: {\n primary: \"oklch(0.5468 0.2237 29.24)\",\n \"primary-foreground\": \"oklch(0.97 0.015 29.24)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.786 0.112 32.44)\",\n \"chart-2\": \"oklch(0.646 0.198 31.53)\",\n \"chart-3\": \"oklch(0.537 0.246 28.14)\",\n \"chart-4\": \"oklch(0.547 0.224 29.24)\",\n \"chart-5\": \"oklch(0.417 0.201 25.84)\",\n \"sidebar-primary\": \"oklch(0.5468 0.2237 29.24)\",\n \"sidebar-primary-foreground\": \"oklch(0.97 0.015 29.24)\",\n },\n },\n },\n {\n name: \"bejamas-orange\",\n title: \"Orange\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.7307 0.1848 51.7)\",\n \"primary-foreground\": \"oklch(0 0 0)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.858 0.105 38.59)\",\n \"chart-2\": \"oklch(0.748 0.195 37.19)\",\n \"chart-3\": \"oklch(0.648 0.232 34.29)\",\n \"chart-4\": \"oklch(0.678 0.211 35.39)\",\n \"chart-5\": \"oklch(0.538 0.190 32.19)\",\n \"sidebar-primary\": \"oklch(0.7307 0.1848 51.7)\",\n \"sidebar-primary-foreground\": \"oklch(0 0 0)\",\n },\n dark: {\n primary: \"oklch(0.7307 0.1848 51.7)\",\n \"primary-foreground\": \"oklch(0 0 0)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.858 0.105 38.59)\",\n \"chart-2\": \"oklch(0.748 0.195 37.19)\",\n \"chart-3\": \"oklch(0.648 0.232 34.29)\",\n \"chart-4\": \"oklch(0.678 0.211 35.39)\",\n \"chart-5\": \"oklch(0.538 0.190 32.19)\",\n \"sidebar-primary\": \"oklch(0.7307 0.1848 51.7)\",\n \"sidebar-primary-foreground\": \"oklch(0 0 0)\",\n },\n },\n },\n {\n name: \"bejamas-sunflower\",\n title: \"Sunflower\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.8989 0.1751 97.34)\",\n \"primary-foreground\": \"oklch(0 0 0)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.929 0.140 100.54)\",\n \"chart-2\": \"oklch(0.819 0.168 95.14)\",\n \"chart-3\": \"oklch(0.699 0.150 91.84)\",\n \"chart-4\": \"oklch(0.899 0.175 97.34)\",\n \"chart-5\": \"oklch(0.559 0.125 87.54)\",\n \"sidebar-primary\": \"oklch(0.8989 0.1751 97.34)\",\n \"sidebar-primary-foreground\": \"oklch(0 0 0)\",\n },\n dark: {\n primary: \"oklch(0.8989 0.1751 97.34)\",\n \"primary-foreground\": \"oklch(0 0 0)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.929 0.140 100.54)\",\n \"chart-2\": \"oklch(0.819 0.168 95.14)\",\n \"chart-3\": \"oklch(0.699 0.150 91.84)\",\n \"chart-4\": \"oklch(0.899 0.175 97.34)\",\n \"chart-5\": \"oklch(0.559 0.125 87.54)\",\n \"sidebar-primary\": \"oklch(0.8989 0.1751 97.34)\",\n \"sidebar-primary-foreground\": \"oklch(0 0 0)\",\n },\n },\n },\n {\n name: \"bejamas-violet\",\n title: \"Violet\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.6018 0.2871 308.31)\",\n \"primary-foreground\": \"oklch(0.97 0.015 308.31)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.812 0.144 311.51)\",\n \"chart-2\": \"oklch(0.682 0.257 310.01)\",\n \"chart-3\": \"oklch(0.582 0.306 307.21)\",\n \"chart-4\": \"oklch(0.602 0.287 308.31)\",\n \"chart-5\": \"oklch(0.462 0.244 305.01)\",\n \"sidebar-primary\": \"oklch(0.6018 0.2871 308.31)\",\n \"sidebar-primary-foreground\": \"oklch(0.97 0.015 308.31)\",\n },\n dark: {\n primary: \"oklch(0.6018 0.2871 308.31)\",\n \"primary-foreground\": \"oklch(0.97 0.015 308.31)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.812 0.144 311.51)\",\n \"chart-2\": \"oklch(0.682 0.257 310.01)\",\n \"chart-3\": \"oklch(0.582 0.306 307.21)\",\n \"chart-4\": \"oklch(0.602 0.287 308.31)\",\n \"chart-5\": \"oklch(0.462 0.244 305.01)\",\n \"sidebar-primary\": \"oklch(0.6018 0.2871 308.31)\",\n \"sidebar-primary-foreground\": \"oklch(0.97 0.015 308.31)\",\n },\n },\n },\n {\n name: \"bejamas-turquoise\",\n title: \"Turquoise\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.5431 0.0927 194.77)\",\n \"primary-foreground\": \"oklch(0.97 0.015 194.77)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.773 0.046 197.97)\",\n \"chart-2\": \"oklch(0.643 0.083 196.57)\",\n \"chart-3\": \"oklch(0.563 0.097 193.67)\",\n \"chart-4\": \"oklch(0.543 0.093 194.77)\",\n \"chart-5\": \"oklch(0.433 0.079 191.57)\",\n \"sidebar-primary\": \"oklch(0.5431 0.0927 194.77)\",\n \"sidebar-primary-foreground\": \"oklch(0.97 0.015 194.77)\",\n },\n dark: {\n primary: \"oklch(0.5431 0.0927 194.77)\",\n \"primary-foreground\": \"oklch(0.97 0.015 194.77)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.773 0.046 197.97)\",\n \"chart-2\": \"oklch(0.643 0.083 196.57)\",\n \"chart-3\": \"oklch(0.563 0.097 193.67)\",\n \"chart-4\": \"oklch(0.543 0.093 194.77)\",\n \"chart-5\": \"oklch(0.433 0.079 191.57)\",\n \"sidebar-primary\": \"oklch(0.5431 0.0927 194.77)\",\n \"sidebar-primary-foreground\": \"oklch(0.97 0.015 194.77)\",\n },\n },\n },\n {\n name: \"bejamas-magenta\",\n title: \"Magenta\",\n type: \"registry:theme\",\n cssVars: {\n light: {\n primary: \"oklch(0.6428 0.2311 1.62)\",\n \"primary-foreground\": \"oklch(0.97 0.015 1.62)\",\n secondary: \"oklch(0.967 0.001 286.375)\",\n \"secondary-foreground\": \"oklch(0.21 0.006 285.885)\",\n \"chart-1\": \"oklch(0.823 0.116 4.82)\",\n \"chart-2\": \"oklch(0.713 0.207 3.42)\",\n \"chart-3\": \"oklch(0.623 0.246 0.52)\",\n \"chart-4\": \"oklch(0.643 0.231 1.62)\",\n \"chart-5\": \"oklch(0.513 0.197 358.42)\",\n \"sidebar-primary\": \"oklch(0.6428 0.2311 1.62)\",\n \"sidebar-primary-foreground\": \"oklch(0.97 0.015 1.62)\",\n },\n dark: {\n primary: \"oklch(0.6428 0.2311 1.62)\",\n \"primary-foreground\": \"oklch(0.97 0.015 1.62)\",\n secondary: \"oklch(0.274 0.006 286.033)\",\n \"secondary-foreground\": \"oklch(0.985 0 0)\",\n \"chart-1\": \"oklch(0.823 0.116 4.82)\",\n \"chart-2\": \"oklch(0.713 0.207 3.42)\",\n \"chart-3\": \"oklch(0.623 0.246 0.52)\",\n \"chart-4\": \"oklch(0.643 0.231 1.62)\",\n \"chart-5\": \"oklch(0.513 0.197 358.42)\",\n \"sidebar-primary\": \"oklch(0.6428 0.2311 1.62)\",\n \"sidebar-primary-foreground\": \"oklch(0.97 0.015 1.62)\",\n },\n },\n },\n] as const satisfies RegistryItem[];\n\nexport type Theme = (typeof THEMES)[number];\n","import { THEMES } from \"./themes\";\n\nexport const BASE_COLORS = THEMES.filter((theme) =>\n [\"neutral\", \"stone\", \"zinc\", \"gray\", \"mauve\", \"olive\", \"mist\", \"taupe\"].includes(\n theme.name,\n ),\n);\n\nexport type BaseColor = (typeof BASE_COLORS)[number];\n","import { type RegistryItem } from \"shadcn/schema\";\n\ntype RegistryFontItem = Extract<RegistryItem, { type: \"registry:font\" }>;\n\ntype FontDefinition = {\n name: string;\n title: string;\n family: string;\n provider: \"google\";\n variable: \"--font-sans\" | \"--font-serif\" | \"--font-mono\";\n subsets: readonly string[];\n import: string;\n};\n\nconst FONT_DEFINITIONS = [\n {\n name: \"geist\",\n title: \"Geist\",\n family: \"'Geist Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Geist\",\n },\n {\n name: \"inter\",\n title: \"Inter\",\n family: \"'Inter Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Inter\",\n },\n {\n name: \"noto-sans\",\n title: \"Noto Sans\",\n family: \"'Noto Sans Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Noto_Sans\",\n },\n {\n name: \"nunito-sans\",\n title: \"Nunito Sans\",\n family: \"'Nunito Sans Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Nunito_Sans\",\n },\n {\n name: \"figtree\",\n title: \"Figtree\",\n family: \"'Figtree Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Figtree\",\n },\n {\n name: \"roboto\",\n title: \"Roboto\",\n family: \"'Roboto Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Roboto\",\n },\n {\n name: \"raleway\",\n title: \"Raleway\",\n family: \"'Raleway Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Raleway\",\n },\n {\n name: \"dm-sans\",\n title: \"DM Sans\",\n family: \"'DM Sans Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"DM_Sans\",\n },\n {\n name: \"public-sans\",\n title: \"Public Sans\",\n family: \"'Public Sans Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Public_Sans\",\n },\n {\n name: \"outfit\",\n title: \"Outfit\",\n family: \"'Outfit Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Outfit\",\n },\n {\n name: \"oxanium\",\n title: \"Oxanium\",\n family: \"'Oxanium Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Oxanium\",\n },\n {\n name: \"manrope\",\n title: \"Manrope\",\n family: \"'Manrope Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Manrope\",\n },\n {\n name: \"space-grotesk\",\n title: \"Space Grotesk\",\n family: \"'Space Grotesk Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Space_Grotesk\",\n },\n {\n name: \"montserrat\",\n title: \"Montserrat\",\n family: \"'Montserrat Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Montserrat\",\n },\n {\n name: \"ibm-plex-sans\",\n title: \"IBM Plex Sans\",\n family: \"'IBM Plex Sans Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"IBM_Plex_Sans\",\n },\n {\n name: \"source-sans-3\",\n title: \"Source Sans 3\",\n family: \"'Source Sans 3 Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Source_Sans_3\",\n },\n {\n name: \"instrument-sans\",\n title: \"Instrument Sans\",\n family: \"'Instrument Sans Variable', sans-serif\",\n provider: \"google\",\n variable: \"--font-sans\",\n subsets: [\"latin\"],\n import: \"Instrument_Sans\",\n },\n {\n name: \"jetbrains-mono\",\n title: \"JetBrains Mono\",\n family: \"'JetBrains Mono Variable', monospace\",\n provider: \"google\",\n variable: \"--font-mono\",\n subsets: [\"latin\"],\n import: \"JetBrains_Mono\",\n },\n {\n name: \"geist-mono\",\n title: \"Geist Mono\",\n family: \"'Geist Mono Variable', monospace\",\n provider: \"google\",\n variable: \"--font-mono\",\n subsets: [\"latin\"],\n import: \"Geist_Mono\",\n },\n {\n name: \"noto-serif\",\n title: \"Noto Serif\",\n family: \"'Noto Serif Variable', serif\",\n provider: \"google\",\n variable: \"--font-serif\",\n subsets: [\"latin\"],\n import: \"Noto_Serif\",\n },\n {\n name: \"roboto-slab\",\n title: \"Roboto Slab\",\n family: \"'Roboto Slab Variable', serif\",\n provider: \"google\",\n variable: \"--font-serif\",\n subsets: [\"latin\"],\n import: \"Roboto_Slab\",\n },\n {\n name: \"merriweather\",\n title: \"Merriweather\",\n family: \"'Merriweather Variable', serif\",\n provider: \"google\",\n variable: \"--font-serif\",\n subsets: [\"latin\"],\n import: \"Merriweather\",\n },\n {\n name: \"lora\",\n title: \"Lora\",\n family: \"'Lora Variable', serif\",\n provider: \"google\",\n variable: \"--font-serif\",\n subsets: [\"latin\"],\n import: \"Lora\",\n },\n {\n name: \"playfair-display\",\n title: \"Playfair Display\",\n family: \"'Playfair Display Variable', serif\",\n provider: \"google\",\n variable: \"--font-serif\",\n subsets: [\"latin\"],\n import: \"Playfair_Display\",\n },\n] as const satisfies readonly FontDefinition[];\n\nfunction createFontItem(\n definition: FontDefinition,\n role: \"body\" | \"heading\",\n): RegistryFontItem {\n return {\n name:\n role === \"body\"\n ? `font-${definition.name}`\n : `font-heading-${definition.name}`,\n title:\n role === \"body\"\n ? definition.title\n : `${definition.title} (Heading)`,\n type: \"registry:font\",\n font: {\n family: definition.family,\n provider: definition.provider,\n variable: role === \"body\" ? definition.variable : \"--font-heading\",\n subsets: [...definition.subsets],\n import: definition.import,\n },\n } satisfies RegistryFontItem;\n}\n\nexport const bodyFonts = FONT_DEFINITIONS.map((definition) =>\n createFontItem(definition, \"body\"),\n) satisfies RegistryFontItem[];\n\nexport const headingFonts = FONT_DEFINITIONS.map((definition) =>\n createFontItem(definition, \"heading\"),\n) satisfies RegistryFontItem[];\n\nexport const fonts = [...bodyFonts, ...headingFonts] satisfies RegistryFontItem[];\n","export const STYLES = [\n {\n name: \"juno\",\n id: \"bejamas-juno\",\n title: \"Juno\",\n description: \"Balanced and versatile baseline for Bejamas interfaces.\",\n },\n {\n name: \"vega\",\n id: \"bejamas-vega\",\n title: \"Vega\",\n description: \"Clean, neutral, and familiar.\",\n },\n {\n name: \"nova\",\n id: \"bejamas-nova\",\n title: \"Nova\",\n description: \"Reduced padding and tighter spacing.\",\n },\n {\n name: \"lyra\",\n id: \"bejamas-lyra\",\n title: \"Lyra\",\n description: \"Boxy and sharp for mono-heavy interfaces.\",\n },\n {\n name: \"maia\",\n id: \"bejamas-maia\",\n title: \"Maia\",\n description: \"Rounded and softer with larger surfaces.\",\n },\n {\n name: \"mira\",\n id: \"bejamas-mira\",\n title: \"Mira\",\n description: \"Compact and text-dense with smaller controls.\",\n },\n {\n name: \"luma\",\n id: \"bejamas-luma\",\n title: \"Luma\",\n description: \"Fluid, luminous, and glassy.\",\n },\n] as const;\n\nexport type Style = (typeof STYLES)[number];\n","// Preset encoding/decoding utilities.\n// Bit-packs design system params into a single integer,\n// then encodes as base62 with a version prefix character.\n//\n// Rules for backward compat:\n// 1. Never reorder existing values inside a given version.\n// 2. New fields must have their default at index 0.\n// 3. Only append new fields to the end of PRESET_FIELDS.\n// 4. Stay under 53 bits total (JS safe integer limit).\n\nexport const PRESET_STYLES = [\n \"nova\",\n \"vega\",\n \"maia\",\n \"lyra\",\n \"mira\",\n \"luma\",\n \"juno\",\n] as const;\n\nexport const SHARED_PRESET_STYLES = [\n \"nova\",\n \"vega\",\n \"maia\",\n \"lyra\",\n \"mira\",\n \"luma\",\n] as const;\n\nexport const LEGACY_PRESET_STYLES = [\n \"nova\",\n \"vega\",\n \"maia\",\n \"lyra\",\n \"mira\",\n \"juno\",\n] as const;\n\nexport const PRESET_BASE_COLORS = [\n \"neutral\",\n \"stone\",\n \"zinc\",\n \"gray\",\n \"mauve\",\n \"olive\",\n \"mist\",\n \"taupe\",\n] as const;\n\nconst SHARED_PRESET_THEMES = [\n \"neutral\",\n \"stone\",\n \"zinc\",\n \"gray\",\n \"amber\",\n \"blue\",\n \"cyan\",\n \"emerald\",\n \"fuchsia\",\n \"green\",\n \"indigo\",\n \"lime\",\n \"orange\",\n \"pink\",\n \"purple\",\n \"red\",\n \"rose\",\n \"sky\",\n \"teal\",\n \"violet\",\n \"yellow\",\n \"mauve\",\n \"olive\",\n \"mist\",\n \"taupe\",\n] as const;\n\nexport const PRESET_THEMES = [\n ...SHARED_PRESET_THEMES,\n \"bejamas-blue\",\n \"bejamas-neon-yellow\",\n \"bejamas-apple\",\n \"bejamas-orange\",\n \"bejamas-sunflower\",\n \"bejamas-violet\",\n \"bejamas-turquoise\",\n \"bejamas-magenta\",\n] as const;\n\nexport const PRESET_CHART_COLORS = SHARED_PRESET_THEMES;\n\nexport const V1_CHART_COLOR_MAP: Partial<\n Record<\n (typeof PRESET_BASE_COLORS)[number],\n (typeof PRESET_CHART_COLORS)[number]\n >\n> = {\n neutral: \"blue\",\n stone: \"lime\",\n zinc: \"amber\",\n mauve: \"emerald\",\n olive: \"violet\",\n mist: \"rose\",\n taupe: \"cyan\",\n};\n\nexport const PRESET_ICON_LIBRARIES = [\n \"lucide\",\n \"hugeicons\",\n \"tabler\",\n \"phosphor\",\n \"remixicon\",\n] as const;\n\nexport const PRESET_FONTS = [\n \"inter\",\n \"noto-sans\",\n \"nunito-sans\",\n \"figtree\",\n \"roboto\",\n \"raleway\",\n \"dm-sans\",\n \"public-sans\",\n \"outfit\",\n \"jetbrains-mono\",\n \"geist\",\n \"geist-mono\",\n \"lora\",\n \"merriweather\",\n \"playfair-display\",\n \"noto-serif\",\n \"roboto-slab\",\n \"oxanium\",\n \"manrope\",\n \"space-grotesk\",\n \"montserrat\",\n \"ibm-plex-sans\",\n \"source-sans-3\",\n \"instrument-sans\",\n] as const;\n\nexport const PRESET_FONT_HEADINGS = [\"inherit\", ...PRESET_FONTS] as const;\n\nexport const PRESET_RADII = [\n \"default\",\n \"none\",\n \"small\",\n \"medium\",\n \"large\",\n] as const;\n\nexport const PRESET_MENU_ACCENTS = [\"subtle\", \"bold\"] as const;\n\nexport const PRESET_MENU_COLORS = [\n \"default\",\n \"inverted\",\n \"default-translucent\",\n \"inverted-translucent\",\n] as const;\n\ntype PresetFieldKey =\n | \"style\"\n | \"baseColor\"\n | \"theme\"\n | \"chartColor\"\n | \"iconLibrary\"\n | \"font\"\n | \"fontHeading\"\n | \"radius\"\n | \"menuAccent\"\n | \"menuColor\";\n\ntype PresetVersion = \"a\" | \"b\" | \"c\";\n\ntype PresetFieldDefinition = {\n key: PresetFieldKey;\n values: readonly string[];\n bits: number;\n};\n\ntype PresetVersionDefinition = {\n version: PresetVersion;\n fields: readonly PresetFieldDefinition[];\n kind: \"shadcn-v1\" | \"shadcn-v2\" | \"bejamas-v2\" | \"bejamas-v3\";\n};\n\nconst PRESET_FIELDS_A = [\n { key: \"menuColor\", values: PRESET_MENU_COLORS, bits: 3 },\n { key: \"menuAccent\", values: PRESET_MENU_ACCENTS, bits: 3 },\n { key: \"radius\", values: PRESET_RADII, bits: 4 },\n { key: \"font\", values: PRESET_FONTS, bits: 6 },\n { key: \"iconLibrary\", values: PRESET_ICON_LIBRARIES, bits: 6 },\n { key: \"theme\", values: SHARED_PRESET_THEMES, bits: 6 },\n { key: \"baseColor\", values: PRESET_BASE_COLORS, bits: 6 },\n { key: \"style\", values: SHARED_PRESET_STYLES, bits: 6 },\n] as const satisfies readonly PresetFieldDefinition[];\n\nconst PRESET_FIELDS_B_SHARED = [\n ...PRESET_FIELDS_A,\n { key: \"chartColor\", values: PRESET_CHART_COLORS, bits: 6 },\n { key: \"fontHeading\", values: PRESET_FONT_HEADINGS, bits: 5 },\n] as const satisfies readonly PresetFieldDefinition[];\n\nconst PRESET_FIELDS_B_LEGACY = [\n { key: \"menuColor\", values: PRESET_MENU_COLORS, bits: 3 },\n { key: \"menuAccent\", values: PRESET_MENU_ACCENTS, bits: 3 },\n { key: \"radius\", values: PRESET_RADII, bits: 4 },\n { key: \"font\", values: PRESET_FONTS, bits: 6 },\n { key: \"iconLibrary\", values: PRESET_ICON_LIBRARIES, bits: 6 },\n { key: \"theme\", values: PRESET_THEMES, bits: 6 },\n { key: \"baseColor\", values: PRESET_BASE_COLORS, bits: 6 },\n { key: \"style\", values: LEGACY_PRESET_STYLES, bits: 6 },\n] as const satisfies readonly PresetFieldDefinition[];\n\nconst PRESET_FIELDS_C = [\n ...PRESET_FIELDS_B_LEGACY,\n { key: \"fontHeading\", values: PRESET_FONT_HEADINGS, bits: 5 },\n] as const satisfies readonly PresetFieldDefinition[];\n\nconst PRESET_VERSION_A = {\n version: \"a\",\n fields: PRESET_FIELDS_A,\n kind: \"shadcn-v1\",\n} as const satisfies PresetVersionDefinition;\n\nconst PRESET_VERSION_B_SHARED = {\n version: \"b\",\n fields: PRESET_FIELDS_B_SHARED,\n kind: \"shadcn-v2\",\n} as const satisfies PresetVersionDefinition;\n\nconst PRESET_VERSION_B_LEGACY = {\n version: \"b\",\n fields: PRESET_FIELDS_B_LEGACY,\n kind: \"bejamas-v2\",\n} as const satisfies PresetVersionDefinition;\n\nconst PRESET_VERSION_C = {\n version: \"c\",\n fields: PRESET_FIELDS_C,\n kind: \"bejamas-v3\",\n} as const satisfies PresetVersionDefinition;\n\nconst PRESET_ENCODERS = [\n PRESET_VERSION_B_SHARED,\n PRESET_VERSION_B_LEGACY,\n PRESET_VERSION_C,\n] as const;\n\nconst PRESET_VERSION_MAP = new Map([\n [\"a\", PRESET_VERSION_A],\n [\"c\", PRESET_VERSION_C],\n]);\n\nconst VALID_VERSIONS = [\"a\", \"b\", \"c\"] as const;\nconst MAX_LEGACY_B_PRESET_LENGTH = 8;\n\nexport type PresetConfig = {\n style: (typeof PRESET_STYLES)[number];\n baseColor: (typeof PRESET_BASE_COLORS)[number];\n theme: (typeof PRESET_THEMES)[number];\n chartColor?: (typeof PRESET_CHART_COLORS)[number];\n iconLibrary: (typeof PRESET_ICON_LIBRARIES)[number];\n font: (typeof PRESET_FONTS)[number];\n fontHeading: (typeof PRESET_FONT_HEADINGS)[number];\n radius: (typeof PRESET_RADII)[number];\n menuAccent: (typeof PRESET_MENU_ACCENTS)[number];\n menuColor: (typeof PRESET_MENU_COLORS)[number];\n};\n\nexport const DEFAULT_PRESET_CONFIG: PresetConfig = {\n style: \"juno\",\n baseColor: \"neutral\",\n theme: \"bejamas-blue\",\n iconLibrary: \"lucide\",\n font: \"inter\",\n fontHeading: \"inherit\",\n radius: \"default\",\n menuAccent: \"subtle\",\n menuColor: \"default\",\n};\n\nconst BASE62 = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\nexport function toBase62(num: number) {\n if (num === 0) {\n return \"0\";\n }\n\n let result = \"\";\n let current = num;\n\n while (current > 0) {\n result = BASE62[current % 62] + result;\n current = Math.floor(current / 62);\n }\n\n return result;\n}\n\nexport function fromBase62(value: string) {\n let result = 0;\n\n for (let index = 0; index < value.length; index += 1) {\n const charIndex = BASE62.indexOf(value[index]);\n if (charIndex === -1) {\n return -1;\n }\n\n result = result * 62 + charIndex;\n }\n\n return result;\n}\n\nfunction omitUndefined<T extends Record<string, unknown>>(value: T) {\n return Object.fromEntries(\n Object.entries(value).filter(([, entry]) => entry !== undefined),\n ) as T;\n}\n\nfunction hasValue<T extends readonly string[]>(\n values: T,\n value: string | undefined,\n): value is T[number] {\n return value !== undefined && values.includes(value);\n}\n\nfunction isBejamasOnlyTheme(\n value: string | undefined,\n): value is Exclude<(typeof PRESET_THEMES)[number], (typeof SHARED_PRESET_THEMES)[number]> {\n return !!value && value.startsWith(\"bejamas-\");\n}\n\nfunction resolveChartColorValue(\n config: Partial<PresetConfig>,\n): (typeof PRESET_CHART_COLORS)[number] {\n if (hasValue(PRESET_CHART_COLORS, config.chartColor)) {\n return config.chartColor;\n }\n\n if (hasValue(PRESET_BASE_COLORS, config.theme)) {\n return V1_CHART_COLOR_MAP[config.theme] ?? config.theme;\n }\n\n if (hasValue(PRESET_CHART_COLORS, config.theme)) {\n return config.theme;\n }\n\n return PRESET_CHART_COLORS[0];\n}\n\nfunction normalizePresetConfig(config: Partial<PresetConfig>): PresetConfig {\n const merged = {\n ...DEFAULT_PRESET_CONFIG,\n ...config,\n };\n const normalizedFontHeading =\n merged.fontHeading === merged.font ? \"inherit\" : merged.fontHeading;\n\n return omitUndefined({\n ...merged,\n fontHeading: normalizedFontHeading,\n chartColor: hasValue(PRESET_CHART_COLORS, merged.chartColor)\n ? merged.chartColor\n : undefined,\n }) as PresetConfig;\n}\n\nfunction getEncodedFieldValue(\n config: PresetConfig,\n field: PresetFieldDefinition,\n version: PresetVersionDefinition,\n) {\n if (field.key === \"chartColor\") {\n return resolveChartColorValue(config);\n }\n\n return config[field.key];\n}\n\nfunction canEncodeWithVersion(\n config: PresetConfig,\n version: PresetVersionDefinition,\n) {\n // Reserve legacy b-codes for Bejamas-only themes. Shared b-codes now follow\n // upstream shadcn ordering, so using legacy b for shared themes would collide\n // with upstream luma presets.\n if (version.kind === \"bejamas-v2\" && !isBejamasOnlyTheme(config.theme)) {\n return false;\n }\n\n if (\n version.kind !== \"shadcn-v2\" &&\n hasValue(PRESET_CHART_COLORS, config.chartColor)\n ) {\n return false;\n }\n\n if (\n version.kind !== \"shadcn-v2\" &&\n version.kind !== \"bejamas-v3\" &&\n config.fontHeading !== DEFAULT_PRESET_CONFIG.fontHeading\n ) {\n return false;\n }\n\n return version.fields.every((field) =>\n field.values.includes(getEncodedFieldValue(config, field, version)),\n );\n}\n\nfunction encodePresetWithVersion(\n config: PresetConfig,\n version: PresetVersionDefinition,\n) {\n let bits = 0;\n let offset = 0;\n\n for (const field of version.fields) {\n const index = field.values.indexOf(getEncodedFieldValue(config, field, version));\n bits += (index === -1 ? 0 : index) * 2 ** offset;\n offset += field.bits;\n }\n\n return version.version + toBase62(bits);\n}\n\nfunction decodePresetWithVersion(\n code: string,\n version: PresetVersionDefinition,\n): Partial<PresetConfig> | null {\n const bits = fromBase62(code.slice(1));\n if (bits < 0) {\n return null;\n }\n\n const result = {} as Record<string, string>;\n let offset = 0;\n\n for (const field of version.fields) {\n const index = Math.floor(bits / 2 ** offset) % 2 ** field.bits;\n result[field.key] =\n index < field.values.length ? field.values[index] : field.values[0];\n offset += field.bits;\n }\n\n return result as Partial<PresetConfig>;\n}\n\nfunction normalizeDecodedPreset(\n decoded: Partial<PresetConfig>,\n): PresetConfig {\n return normalizePresetConfig(decoded);\n}\n\nfunction shouldDecodeLegacyBejamasB(code: string) {\n if (code.length > MAX_LEGACY_B_PRESET_LENGTH) {\n return false;\n }\n\n const decoded = decodePresetWithVersion(code, PRESET_VERSION_B_LEGACY);\n if (!decoded) {\n return false;\n }\n\n return isBejamasOnlyTheme(decoded.theme);\n}\n\nexport function encodePreset(config: Partial<PresetConfig>) {\n const merged = normalizePresetConfig(config);\n\n for (const version of PRESET_ENCODERS) {\n if (canEncodeWithVersion(merged, version)) {\n return encodePresetWithVersion(merged, version);\n }\n }\n\n return encodePresetWithVersion(merged, PRESET_VERSION_C);\n}\n\nexport function decodePreset(code: string): PresetConfig | null {\n if (!code || code.length < 2) {\n return null;\n }\n\n const version = code[0] as (typeof VALID_VERSIONS)[number];\n if (!VALID_VERSIONS.includes(version)) {\n return null;\n }\n\n if (version === \"b\") {\n const presetVersion = shouldDecodeLegacyBejamasB(code)\n ? PRESET_VERSION_B_LEGACY\n : PRESET_VERSION_B_SHARED;\n const decoded = decodePresetWithVersion(code, presetVersion);\n\n return decoded ? normalizeDecodedPreset(decoded) : null;\n }\n\n const presetVersion = PRESET_VERSION_MAP.get(version);\n if (!presetVersion) {\n return null;\n }\n\n const decoded = decodePresetWithVersion(code, presetVersion);\n\n return decoded ? normalizeDecodedPreset(decoded) : null;\n}\n\nexport function isPresetCode(value: string) {\n if (!value || value.length < 2 || value.length > 10) {\n return false;\n }\n\n if (!VALID_VERSIONS.includes(value[0] as (typeof VALID_VERSIONS)[number])) {\n return false;\n }\n\n for (let index = 1; index < value.length; index += 1) {\n if (!BASE62.includes(value[index])) {\n return false;\n }\n }\n\n return true;\n}\n","import { z } from \"zod\";\nimport { BASE_COLORS } from \"./catalog/base-colors\";\nimport { bodyFonts, headingFonts } from \"./catalog/fonts\";\nimport { STYLES } from \"./catalog/styles\";\nimport { THEMES } from \"./catalog/themes\";\nimport {\n DEFAULT_PRESET_CONFIG,\n PRESET_ICON_LIBRARIES,\n PRESET_MENU_ACCENTS,\n PRESET_MENU_COLORS,\n PRESET_RADII,\n type PresetConfig,\n} from \"./preset\";\n\nexport const TEMPLATE_VALUES = [\n \"astro\",\n \"astro-monorepo\",\n \"astro-with-component-docs-monorepo\",\n] as const;\n\nexport type TemplateValue = (typeof TEMPLATE_VALUES)[number];\nexport const RTL_LANGUAGE_VALUES = [\"ar\", \"fa\", \"he\"] as const;\nexport const APP_LANGUAGE_VALUES = [\"en\", ...RTL_LANGUAGE_VALUES] as const;\nexport const DEFAULT_LANGUAGE = \"en\" as const;\n\nexport type RtlLanguageValue = (typeof RTL_LANGUAGE_VALUES)[number];\nexport type AppLanguageValue = (typeof APP_LANGUAGE_VALUES)[number];\n\nconst FONT_VALUES = bodyFonts.map((font) => font.name.replace(\"font-\", \"\")) as [\n string,\n ...string[],\n];\nconst FONT_HEADING_VALUES = [\"inherit\", ...FONT_VALUES] as const;\n\nexport type FontValue = (typeof FONT_VALUES)[number];\nexport type FontHeadingValue = (typeof FONT_HEADING_VALUES)[number];\n\nexport const designSystemConfigSchema = z\n .object({\n style: z.enum(STYLES.map((style) => style.name) as [string, ...string[]]),\n baseColor: z.enum(\n BASE_COLORS.map((color) => color.name) as [string, ...string[]],\n ),\n theme: z.enum(THEMES.map((theme) => theme.name) as [string, ...string[]]),\n iconLibrary: z.enum(PRESET_ICON_LIBRARIES),\n font: z.enum(FONT_VALUES),\n fontHeading: z.enum(FONT_HEADING_VALUES).default(\"inherit\"),\n radius: z.enum(PRESET_RADII),\n menuAccent: z.enum(PRESET_MENU_ACCENTS),\n menuColor: z.enum(PRESET_MENU_COLORS),\n template: z.enum(TEMPLATE_VALUES).default(\"astro\"),\n rtl: z.boolean().default(false),\n rtlLanguage: z.enum(RTL_LANGUAGE_VALUES).default(\"ar\"),\n })\n .superRefine((config, context) => {\n if (\n !getThemesForBaseColor(config.baseColor).some(\n (theme) => theme.name === config.theme,\n )\n ) {\n context.addIssue({\n code: \"custom\",\n message: `Theme \"${config.theme}\" is not available for base color \"${config.baseColor}\".`,\n path: [\"theme\"],\n });\n }\n });\n\nexport type DesignSystemConfig = z.infer<typeof designSystemConfigSchema>;\n\nexport const DEFAULT_DESIGN_SYSTEM_CONFIG: DesignSystemConfig = {\n ...DEFAULT_PRESET_CONFIG,\n template: \"astro\",\n rtl: false,\n rtlLanguage: \"ar\",\n};\n\nconst RADIUS_VALUES = {\n default: \"0.625rem\",\n none: \"0\",\n small: \"0.45rem\",\n medium: \"0.625rem\",\n large: \"0.875rem\",\n} as const satisfies Record<DesignSystemConfig[\"radius\"], string>;\n\nconst STYLE_DEFAULT_RADII = {\n juno: \"default\",\n vega: \"default\",\n nova: \"default\",\n lyra: \"none\",\n maia: \"large\",\n mira: \"default\",\n luma: \"default\",\n} as const satisfies Record<\n DesignSystemConfig[\"style\"],\n DesignSystemConfig[\"radius\"]\n>;\n\nconst STYLE_LOCKED_VALUES = {\n lyra: {\n radius: \"none\",\n },\n} as const satisfies Partial<\n Record<DesignSystemConfig[\"style\"], Partial<Pick<DesignSystemConfig, \"radius\">>>\n>;\n\nconst SHARED_SHADCN_STYLE_VALUES = [\n \"vega\",\n \"nova\",\n \"lyra\",\n \"maia\",\n \"mira\",\n \"luma\",\n] as const satisfies readonly DesignSystemConfig[\"style\"][];\n\nexport function getThemesForBaseColor(baseColorName: string) {\n const baseColorNames = BASE_COLORS.map((baseColor) => baseColor.name);\n\n return THEMES.filter((theme) => {\n if (theme.name === baseColorName) {\n return true;\n }\n\n return !baseColorNames.includes(theme.name);\n });\n}\n\nexport function getBaseColor(name: DesignSystemConfig[\"baseColor\"]) {\n return BASE_COLORS.find((color) => color.name === name);\n}\n\nexport function getTheme(name: DesignSystemConfig[\"theme\"]) {\n return THEMES.find((theme) => theme.name === name);\n}\n\nexport function getStyle(name: DesignSystemConfig[\"style\"]) {\n return STYLES.find((style) => style.name === name);\n}\n\nexport function isSharedShadcnStyle(style: DesignSystemConfig[\"style\"]) {\n return SHARED_SHADCN_STYLE_VALUES.includes(\n style as (typeof SHARED_SHADCN_STYLE_VALUES)[number],\n );\n}\n\nexport function getStyleId(style: DesignSystemConfig[\"style\"]) {\n return `bejamas-${style}`;\n}\n\nexport function getStyleDefaultRadius(style: DesignSystemConfig[\"style\"]) {\n return STYLE_DEFAULT_RADII[style as keyof typeof STYLE_DEFAULT_RADII];\n}\n\nexport function getStyleLockedConfig(style: DesignSystemConfig[\"style\"]) {\n return STYLE_LOCKED_VALUES[style as keyof typeof STYLE_LOCKED_VALUES] ?? {};\n}\n\nexport function getLockedStyleValue<\n Key extends keyof ReturnType<typeof getStyleLockedConfig>,\n>(\n style: DesignSystemConfig[\"style\"],\n key: Key,\n) {\n return getStyleLockedConfig(style)[key];\n}\n\nexport function isStyleOptionLocked(\n style: DesignSystemConfig[\"style\"],\n key: keyof Pick<DesignSystemConfig, \"radius\">,\n) {\n return getLockedStyleValue(style, key) !== undefined;\n}\n\nexport function normalizeDesignSystemConfig(config: DesignSystemConfig) {\n const normalizedFontHeading =\n config.fontHeading === config.font ? \"inherit\" : config.fontHeading;\n const normalizedMenuAccent =\n config.menuAccent === \"bold\" && isTranslucentMenuColor(config.menuColor)\n ? \"subtle\"\n : config.menuAccent;\n\n return {\n ...config,\n fontHeading: normalizedFontHeading,\n menuAccent: normalizedMenuAccent,\n ...getStyleLockedConfig(config.style),\n };\n}\n\nexport function resolveEffectiveRadius(\n style: DesignSystemConfig[\"style\"],\n radius: DesignSystemConfig[\"radius\"],\n) {\n const lockedRadius = getLockedStyleValue(style, \"radius\");\n if (lockedRadius) {\n return lockedRadius;\n }\n\n return radius === \"default\" ? getStyleDefaultRadius(style) : radius;\n}\n\nexport function getRadiusValue(radius: DesignSystemConfig[\"radius\"]) {\n return RADIUS_VALUES[radius];\n}\n\nexport function isInvertedMenuColor(\n menuColor: DesignSystemConfig[\"menuColor\"],\n) {\n return (\n menuColor === \"inverted\" || menuColor === \"inverted-translucent\"\n );\n}\n\nexport function isTranslucentMenuColor(\n menuColor: DesignSystemConfig[\"menuColor\"],\n) {\n return (\n menuColor === \"default-translucent\" ||\n menuColor === \"inverted-translucent\"\n );\n}\n\nexport function getFontValue(name: FontValue) {\n return bodyFonts.find((font) => font.name === `font-${name}`);\n}\n\nexport function getHeadingFontValue(\n name: Exclude<FontHeadingValue, \"inherit\">,\n) {\n return headingFonts.find((font) => font.name === `font-heading-${name}`);\n}\n\nexport function getInheritedHeadingFontValue(font: FontValue) {\n return `var(${getFontValue(font)?.font.variable ?? \"--font-sans\"})`;\n}\n\nexport function getFontPackageName(name: FontValue) {\n return `@fontsource-variable/${name}`;\n}\n\nexport function getDocumentLanguage(\n config: Pick<DesignSystemConfig, \"rtl\" | \"rtlLanguage\">,\n): AppLanguageValue {\n return config.rtl ? config.rtlLanguage : DEFAULT_LANGUAGE;\n}\n\nexport function getDocumentDirection(config: Pick<DesignSystemConfig, \"rtl\">) {\n return config.rtl ? \"rtl\" : \"ltr\";\n}\n\nexport function mergeDesignSystemConfig(\n partial?: Partial<DesignSystemConfig> & Partial<PresetConfig>,\n) {\n return normalizeDesignSystemConfig(\n designSystemConfigSchema.parse({\n ...DEFAULT_DESIGN_SYSTEM_CONFIG,\n ...partial,\n }),\n );\n}\n","export const ICON_LIBRARY_COLLECTIONS = {\n lucide: \"lucide\",\n hugeicons: \"hugeicons\",\n tabler: \"tabler\",\n phosphor: \"ph\",\n remixicon: \"ri\",\n} as const;\n\nexport const ICON_LIBRARY_PACKAGE_NAMES = {\n lucide: \"@lucide/astro\",\n hugeicons: \"@iconify-json/hugeicons\",\n tabler: \"@iconify-json/tabler\",\n phosphor: \"@iconify-json/ph\",\n remixicon: \"@iconify-json/ri\",\n} as const;\n\nexport const SEMANTIC_ICON_NAMES = [\n \"check\",\n \"chevron-down\",\n \"chevron-right\",\n \"chevron-up\",\n \"menu\",\n \"plus\",\n \"minus\",\n \"arrow-left\",\n \"arrow-right\",\n \"copy\",\n \"alert-circle\",\n \"trash\",\n \"share\",\n \"shopping-bag\",\n \"search\",\n \"settings\",\n \"shuffle\",\n \"sparkles\",\n \"bold\",\n \"italic\",\n \"underline\",\n \"bell\",\n \"ellipsis\",\n \"calendar\",\n \"globe\",\n \"credit-card\",\n \"x\",\n \"loader-circle\",\n] as const;\n\nexport const ICON_NAME_MAPPINGS = {\n \"check\": {\n lucide: \"check\",\n tabler: \"check\",\n hugeicons: \"tick-02\",\n phosphor: \"check\",\n remixicon: \"check-line\",\n },\n \"chevron-down\": {\n lucide: \"chevron-down\",\n tabler: \"chevron-down\",\n hugeicons: \"arrow-down-01\",\n phosphor: \"caret-down\",\n remixicon: \"arrow-down-s-line\",\n },\n \"chevron-right\": {\n lucide: \"chevron-right\",\n tabler: \"chevron-right\",\n hugeicons: \"arrow-right-01\",\n phosphor: \"caret-right\",\n remixicon: \"arrow-right-s-line\",\n },\n \"chevron-up\": {\n lucide: \"chevron-up\",\n tabler: \"chevron-up\",\n hugeicons: \"arrow-up-01\",\n phosphor: \"caret-up\",\n remixicon: \"arrow-up-s-line\",\n },\n \"menu\": {\n lucide: \"menu\",\n tabler: \"menu-2\",\n hugeicons: \"menu-02\",\n phosphor: \"list\",\n remixicon: \"menu-2-line\",\n },\n \"plus\": {\n lucide: \"plus\",\n tabler: \"plus\",\n hugeicons: \"plus-sign\",\n phosphor: \"plus\",\n remixicon: \"add-line\",\n },\n \"minus\": {\n lucide: \"minus\",\n tabler: \"minus\",\n hugeicons: \"minus-sign\",\n phosphor: \"minus\",\n remixicon: \"subtract-line\",\n },\n \"arrow-left\": {\n lucide: \"arrow-left\",\n tabler: \"arrow-left\",\n hugeicons: \"arrow-left-02\",\n phosphor: \"arrow-left\",\n remixicon: \"arrow-left-line\",\n },\n \"arrow-right\": {\n lucide: \"arrow-right\",\n tabler: \"arrow-right\",\n hugeicons: \"arrow-right-02\",\n phosphor: \"arrow-right\",\n remixicon: \"arrow-right-line\",\n },\n \"copy\": {\n lucide: \"copy\",\n tabler: \"copy\",\n hugeicons: \"copy-01\",\n phosphor: \"copy\",\n remixicon: \"file-copy-line\",\n },\n \"alert-circle\": {\n lucide: \"circle-alert\",\n tabler: \"alert-circle\",\n hugeicons: \"alert-circle\",\n phosphor: \"warning-circle\",\n remixicon: \"error-warning-line\",\n },\n \"trash\": {\n lucide: \"trash\",\n tabler: \"trash\",\n hugeicons: \"delete-02\",\n phosphor: \"trash\",\n remixicon: \"delete-bin-line\",\n },\n \"share\": {\n lucide: \"share\",\n tabler: \"share\",\n hugeicons: \"share-03\",\n phosphor: \"share\",\n remixicon: \"share-line\",\n },\n \"shopping-bag\": {\n lucide: \"shopping-bag\",\n tabler: \"shopping-bag\",\n hugeicons: \"shopping-bag-01\",\n phosphor: \"bag\",\n remixicon: \"shopping-bag-line\",\n },\n \"search\": {\n lucide: \"search\",\n tabler: \"search\",\n hugeicons: \"search-01\",\n phosphor: \"magnifying-glass\",\n remixicon: \"search-line\",\n },\n \"settings\": {\n lucide: \"settings\",\n tabler: \"settings\",\n hugeicons: \"settings-01\",\n phosphor: \"gear\",\n remixicon: \"settings-line\",\n },\n \"shuffle\": {\n lucide: \"shuffle\",\n tabler: \"arrows-shuffle\",\n hugeicons: \"shuffle\",\n phosphor: \"shuffle\",\n remixicon: \"shuffle-line\",\n },\n \"sparkles\": {\n lucide: \"sparkles\",\n tabler: \"sparkles\",\n hugeicons: \"sparkles\",\n phosphor: \"sparkle\",\n remixicon: \"sparkling-line\",\n },\n \"bold\": {\n lucide: \"bold\",\n tabler: \"bold\",\n hugeicons: \"text-bold\",\n phosphor: \"text-bolder\",\n remixicon: \"bold\",\n },\n \"italic\": {\n lucide: \"italic\",\n tabler: \"italic\",\n hugeicons: \"text-italic\",\n phosphor: \"text-italic\",\n remixicon: \"italic\",\n },\n \"underline\": {\n lucide: \"underline\",\n tabler: \"underline\",\n hugeicons: \"text-underline\",\n phosphor: \"text-underline\",\n remixicon: \"underline\",\n },\n \"bell\": {\n lucide: \"bell\",\n tabler: \"bell\",\n hugeicons: \"notification-03\",\n phosphor: \"bell\",\n remixicon: \"bell-line\",\n },\n \"ellipsis\": {\n lucide: \"ellipsis\",\n tabler: \"dots\",\n hugeicons: \"more-horizontal\",\n phosphor: \"dots-three\",\n remixicon: \"more-2-line\",\n },\n \"calendar\": {\n lucide: \"calendar\",\n tabler: \"calendar\",\n hugeicons: \"calendar-01\",\n phosphor: \"calendar\",\n remixicon: \"calendar-2-line\",\n },\n \"globe\": {\n lucide: \"globe\",\n tabler: \"globe\",\n hugeicons: \"globe\",\n phosphor: \"globe\",\n remixicon: \"globe-line\",\n },\n \"credit-card\": {\n lucide: \"credit-card\",\n tabler: \"credit-card\",\n hugeicons: \"credit-card\",\n phosphor: \"credit-card\",\n remixicon: \"bank-card-line\",\n },\n \"x\": {\n lucide: \"x\",\n tabler: \"x\",\n hugeicons: \"cancel-01\",\n phosphor: \"x\",\n remixicon: \"close-line\",\n },\n \"loader-circle\": {\n lucide: \"loader-circle\",\n tabler: \"loader-2\",\n hugeicons: \"loading-03\",\n phosphor: \"spinner\",\n remixicon: \"loader-2-line\",\n },\n} as const;\n\nexport const ICON_DATA = {\n lucide: {\n \"check\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M20 6L9 17l-5-5\\\"/>\", width: 24, height: 24 },\n \"chevron-down\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"m6 9l6 6l6-6\\\"/>\", width: 24, height: 24 },\n \"chevron-right\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"m9 6l6 6l-6 6\\\"/>\", width: 24, height: 24 },\n \"chevron-up\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"m18 15l-6-6l-6 6\\\"/>\", width: 24, height: 24 },\n \"menu\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M4 5h16M4 12h16M4 19h16\\\"/>\", width: 24, height: 24 },\n \"plus\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M12 5v14M5 12h14\\\"/>\", width: 24, height: 24 },\n \"minus\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M5 12h14\\\"/>\", width: 24, height: 24 },\n \"arrow-left\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"m12 19l-7-7l7-7m-7 7h14\\\"/>\", width: 24, height: 24 },\n \"arrow-right\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"m12 5l7 7l-7 7m7-7H5\\\"/>\", width: 24, height: 24 },\n \"copy\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><rect width=\\\"14\\\" height=\\\"14\\\" x=\\\"8\\\" y=\\\"8\\\" rx=\\\"2\\\" ry=\\\"2\\\"/><path d=\\\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\\\"/></g>\", width: 24, height: 24 },\n \"alert-circle\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"10\\\"/><path d=\\\"M12 8v4m0 4h.01\\\"/></g>\", width: 24, height: 24 },\n \"trash\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><path d=\\\"M3 6h18\\\"/><path d=\\\"M8 6V4h8v2\\\"/><path d=\\\"M19 6l-1 14H6L5 6\\\"/></g>\", width: 24, height: 24 },\n \"share\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><circle cx=\\\"18\\\" cy=\\\"5\\\" r=\\\"3\\\"/><circle cx=\\\"6\\\" cy=\\\"12\\\" r=\\\"3\\\"/><circle cx=\\\"18\\\" cy=\\\"19\\\" r=\\\"3\\\"/><path d=\\\"m8.7 10.7l6.6-3.4m-6.6 6.1l6.6 3.9\\\"/></g>\", width: 24, height: 24 },\n \"shopping-bag\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><path d=\\\"M6 8h12l-1 12H7L6 8Z\\\"/><path d=\\\"M9 8a3 3 0 0 1 6 0\\\"/></g>\", width: 24, height: 24 },\n \"search\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><circle cx=\\\"11\\\" cy=\\\"11\\\" r=\\\"7\\\"/><path d=\\\"m20 20l-3.5-3.5\\\"/></g>\", width: 24, height: 24 },\n \"settings\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M12 3l1.3 2.6l2.9.4l-.7 2.8l2 2l-2 2l.7 2.8l-2.9.4L12 21l-1.3-2.6l-2.9-.4l.7-2.8l-2-2l2-2l-.7-2.8l2.9-.4zm0 5a4 4 0 1 0 0 8a4 4 0 0 0 0-8\\\"/>\", width: 24, height: 24 },\n \"shuffle\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><path d=\\\"m18 14l4 4l-4 4m0-20l4 4l-4 4\\\"/><path d=\\\"M2 18h1.973a4 4 0 0 0 3.3-1.7l5.454-8.6a4 4 0 0 1 3.3-1.7H22M2 6h1.972a4 4 0 0 1 3.6 2.2M22 18h-6.041a4 4 0 0 1-3.3-1.8l-.359-.45\\\"/></g>\", width: 24, height: 24 },\n \"sparkles\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><path d=\\\"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594zM20 2v4m2-2h-4\\\"/><circle cx=\\\"4\\\" cy=\\\"20\\\" r=\\\"2\\\"/></g>\", width: 24, height: 24 },\n \"bold\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8\\\"/>\", width: 24, height: 24 },\n \"italic\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M19 4h-9m4 16H5M15 4L9 20\\\"/>\", width: 24, height: 24 },\n \"underline\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M6 4v6a6 6 0 0 0 12 0V4M4 20h16\\\"/>\", width: 24, height: 24 },\n \"bell\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M10.268 21a2 2 0 0 0 3.464 0m-10.47-5.674A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326\\\"/>\", width: 24, height: 24 },\n \"ellipsis\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"1\\\"/><circle cx=\\\"19\\\" cy=\\\"12\\\" r=\\\"1\\\"/><circle cx=\\\"5\\\" cy=\\\"12\\\" r=\\\"1\\\"/></g>\", width: 24, height: 24 },\n \"calendar\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><path d=\\\"M8 2v4m8-4v4\\\"/><rect width=\\\"18\\\" height=\\\"18\\\" x=\\\"3\\\" y=\\\"4\\\" rx=\\\"2\\\"/><path d=\\\"M3 10h18\\\"/></g>\", width: 24, height: 24 },\n \"globe\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"10\\\"/><path d=\\\"M12 2a14.5 14.5 0 0 0 0 20a14.5 14.5 0 0 0 0-20M2 12h20\\\"/></g>\", width: 24, height: 24 },\n \"credit-card\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><rect width=\\\"20\\\" height=\\\"14\\\" x=\\\"2\\\" y=\\\"5\\\" rx=\\\"2\\\"/><path d=\\\"M2 10h20\\\"/></g>\", width: 24, height: 24 },\n \"x\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M18 6L6 18M6 6l12 12\\\"/>\", width: 24, height: 24 },\n \"loader-circle\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M21 12a9 9 0 1 1-6.219-8.56\\\"/>\", width: 24, height: 24 },\n },\n hugeicons: {\n \"check\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"m5 14l3.5 3.5L19 6.5\\\"/>\", width: 24, height: 24 },\n \"chevron-down\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"M18 9s-4.419 6-6 6s-6-6-6-6\\\"/>\", width: 24, height: 24 },\n \"chevron-right\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"M9 6s6 4.419 6 6s-6 6-6 6\\\"/>\", width: 24, height: 24 },\n \"chevron-up\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"M18 15s-4.42-6-6-6s-6 6-6 6\\\"/>\", width: 24, height: 24 },\n \"menu\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"M4 5h12M4 12h16M4 19h8\\\"/>\", width: 24, height: 24 },\n \"plus\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"M12 5v14M5 12h14\\\"/>\", width: 24, height: 24 },\n \"minus\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"M5 12h14\\\"/>\", width: 24, height: 24 },\n \"arrow-left\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"m11 5l-7 7l7 7m-7-7h16\\\"/>\", width: 24, height: 24 },\n \"arrow-right\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"m13 5l7 7l-7 7m7-7H4\\\"/>\", width: 24, height: 24 },\n \"copy\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"><path d=\\\"M9 15c0-2.828 0-4.243.879-5.121C10.757 9 12.172 9 15 9h1c2.828 0 4.243 0 5.121.879C22 10.757 22 12.172 22 15v1c0 2.828 0 4.243-.879 5.121C20.243 22 18.828 22 16 22h-1c-2.828 0-4.243 0-5.121-.879C9 20.243 9 18.828 9 16z\\\"/><path d=\\\"M17 9c-.003-2.957-.047-4.489-.908-5.538a4 4 0 0 0-.554-.554C14.43 2 12.788 2 9.5 2c-3.287 0-4.931 0-6.038.908a4 4 0 0 0-.554.554C2 4.57 2 6.212 2 9.5c0 3.287 0 4.931.908 6.038a4 4 0 0 0 .554.554c1.05.86 2.58.906 5.538.908\\\"/></g>\", width: 24, height: 24 },\n \"alert-circle\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"9\\\"/><path d=\\\"M12 8v4m0 4h.01\\\"/></g>\", width: 24, height: 24 },\n \"trash\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"><path d=\\\"M4 6h16\\\"/><path d=\\\"M9 6V4h6v2\\\"/><path d=\\\"M18 6l-1 14H7L6 6\\\"/></g>\", width: 24, height: 24 },\n \"share\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"><circle cx=\\\"18\\\" cy=\\\"5\\\" r=\\\"2.5\\\"/><circle cx=\\\"6\\\" cy=\\\"12\\\" r=\\\"2.5\\\"/><circle cx=\\\"18\\\" cy=\\\"19\\\" r=\\\"2.5\\\"/><path d=\\\"m8.2 10.8l7.1-3.7m-7.1 6.1l7.1 4\\\"/></g>\", width: 24, height: 24 },\n \"shopping-bag\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"><path d=\\\"M6 8h12l-1 12H7L6 8Z\\\"/><path d=\\\"M9 8a3 3 0 0 1 6 0\\\"/></g>\", width: 24, height: 24 },\n \"search\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"><circle cx=\\\"11\\\" cy=\\\"11\\\" r=\\\"6.5\\\"/><path d=\\\"m19 19l-3.5-3.5\\\"/></g>\", width: 24, height: 24 },\n \"settings\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"M12 3l1.3 2.6l2.9.4l-.7 2.8l2 2l-2 2l.7 2.8l-2.9.4L12 21l-1.3-2.6l-2.9-.4l.7-2.8l-2-2l2-2l-.7-2.8l2.9-.4zm0 5a4 4 0 1 0 0 8a4 4 0 0 0 0-8\\\"/>\", width: 24, height: 24 },\n \"shuffle\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"m19.558 4l.897.976c.401.436.602.654.531.839S20.632 6 20.065 6c-1.27 0-2.788-.205-3.954.473c-.72.42-1.223 1.152-2.072 2.527M3 18h1.58c1.929 0 2.893 0 3.706-.473c.721-.42 1.223-1.152 2.072-2.527m9.2 5l.897-.976c.401-.436.602-.654.531-.839S20.632 18 20.065 18c-1.27 0-2.788.205-3.954-.473c-.813-.474-1.348-1.346-2.418-3.09l-2.99-4.875C9.635 7.82 9.1 6.947 8.287 6.473S6.51 6 4.581 6H3\\\"/>\", width: 24, height: 24 },\n \"sparkles\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"m15 2l.539 2.392a5.39 5.39 0 0 0 4.07 4.07L22 9l-2.392.539a5.39 5.39 0 0 0-4.07 4.07L15 16l-.539-2.392a5.39 5.39 0 0 0-4.07-4.07L8 9l2.392-.539a5.39 5.39 0 0 0 4.07-4.07zM7 12l.385 1.708a3.85 3.85 0 0 0 2.907 2.907L12 17l-1.708.385a3.85 3.85 0 0 0-2.907 2.907L7 22l-.385-1.708a3.85 3.85 0 0 0-2.907-2.907L2 17l1.708-.385a3.85 3.85 0 0 0 2.907-2.907z\\\"/>\", width: 24, height: 24 },\n \"bold\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"><path d=\\\"M5 6c0-1.414 0-2.121.44-2.56C5.878 3 6.585 3 8 3h4.579C15.02 3 17 5.015 17 7.5S15.02 12 12.579 12H5z\\\" clip-rule=\\\"evenodd\\\"/><path d=\\\"M12.429 12h1.238C16.06 12 18 14.015 18 16.5S16.06 21 13.667 21H8c-1.414 0-2.121 0-2.56-.44C5 20.122 5 19.415 5 18v-6\\\"/></g>\", width: 24, height: 24 },\n \"italic\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"M12 4h7M8 20l8-16M5 20h7\\\"/>\", width: 24, height: 24 },\n \"underline\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"1.5\\\"><path stroke-linejoin=\\\"round\\\" d=\\\"M5.5 3v8.5a6.5 6.5 0 1 0 13 0V3\\\"/><path d=\\\"M3 21h18\\\"/></g>\", width: 24, height: 24 },\n \"bell\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"><path d=\\\"M20 18.501L18.349 7.934a6.426 6.426 0 0 0-12.698 0L4 18.501\\\"/><path d=\\\"M20 18.5c0-1.657-3.582-3-8-3s-8 1.343-8 3s3.582 3 8 3s8-1.343 8-3m-7 0h-2\\\"/></g>\", width: 24, height: 24 },\n \"ellipsis\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"M12.005 11.5a1 1 0 1 1 0 2a1 1 0 0 1 0-2m6 0a1 1 0 1 1 0 2a1 1 0 0 1 0-2m-12.001 0a1 1 0 1 1 0 2a1 1 0 0 1 0-2\\\"/>\", width: 24, height: 24 },\n \"calendar\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"><path d=\\\"M16 2v4M8 2v4m5-2h-2C7.229 4 5.343 4 4.172 5.172S3 8.229 3 12v2c0 3.771 0 5.657 1.172 6.828S7.229 22 11 22h2c3.771 0 5.657 0 6.828-1.172S21 17.771 21 14v-2c0-3.771 0-5.657-1.172-6.828S16.771 4 13 4M3 10h18\\\"/><path d=\\\"M10 18.5v-4.653c0-.191-.137-.347-.305-.347H9m5 4.998l1.486-4.606a.3.3 0 0 0-.286-.392H13\\\"/></g>\", width: 24, height: 24 },\n \"globe\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-width=\\\"1.5\\\"><path stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" d=\\\"M12.5 19v3m-2 0h4\\\"/><circle cx=\\\"7\\\" cy=\\\"7\\\" r=\\\"7\\\" stroke-linecap=\\\"round\\\" transform=\\\"matrix(-1 0 0 1 20.5 2)\\\"/><path stroke-linejoin=\\\"round\\\" d=\\\"M8.5 4c.654.038.992.359 1.573.973c1.05 1.11 2.1 1.202 2.8.832c1.049-.555.167-1.453 1.399-1.94c.803-.32.915-1.185.468-1.865M20 10c-1.5 0-1.766 1.247-3 1c-2.5-.5-3.208.059-3.208 1.251s0 1.192-.52 2.086c-.338.582-.457 1.163.217 1.663\\\"/><path stroke-linecap=\\\"round\\\" d=\\\"M6.5 2a9.85 9.85 0 0 0-3 7.083C3.5 14.56 7.977 19 13.5 19a10 10 0 0 0 7-2.835\\\"/></g>\", width: 24, height: 24 },\n \"credit-card\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\"><path stroke-linecap=\\\"round\\\" d=\\\"M2 12c0-3.537 0-5.306 1.053-6.487q.253-.284.554-.522C4.862 4 6.741 4 10.5 4h3c3.759 0 5.638 0 6.892.99q.302.24.555.523C22 6.693 22 8.463 22 12s0 5.306-1.053 6.487a4.4 4.4 0 0 1-.555.522C19.138 20 17.26 20 13.5 20h-3c-3.759 0-5.638 0-6.893-.99a4.4 4.4 0 0 1-.554-.523C2 17.307 2 15.537 2 12\\\"/><path stroke-linecap=\\\"round\\\" stroke-miterlimit=\\\"10\\\" d=\\\"M10 16h1.5m3 0H18\\\"/><path d=\\\"M2 9h20\\\"/></g>\", width: 24, height: 24 },\n \"x\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"M18 6L6 18m12 0L6 6\\\"/>\", width: 24, height: 24 },\n \"loader-circle\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-width=\\\"1.5\\\" d=\\\"M12 3v3m0 12v3m9-9h-3M6 12H3m15.364-6.363l-2.122 2.121m-8.484 8.484l-2.121 2.121m12.727.001l-2.122-2.122M7.758 7.758L5.637 5.637\\\"/>\", width: 24, height: 24 },\n },\n tabler: {\n \"check\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"m5 12l5 5L20 7\\\"/>\", width: 24, height: 24 },\n \"chevron-down\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"m6 9l6 6l6-6\\\"/>\", width: 24, height: 24 },\n \"chevron-right\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"m9 6l6 6l-6 6\\\"/>\", width: 24, height: 24 },\n \"chevron-up\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"m6 15l6-6l6 6\\\"/>\", width: 24, height: 24 },\n \"menu\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M4 6h16M4 12h16M4 18h16\\\"/>\", width: 24, height: 24 },\n \"plus\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M12 5v14M5 12h14\\\"/>\", width: 24, height: 24 },\n \"minus\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M5 12h14\\\"/>\", width: 24, height: 24 },\n \"arrow-left\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"m12 19l-7-7l7-7m-7 7h14\\\"/>\", width: 24, height: 24 },\n \"arrow-right\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"m12 5l7 7l-7 7m7-7H5\\\"/>\", width: 24, height: 24 },\n \"copy\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><path d=\\\"M7 9.667A2.667 2.667 0 0 1 9.667 7h8.666A2.667 2.667 0 0 1 21 9.667v8.666A2.667 2.667 0 0 1 18.333 21H9.667A2.667 2.667 0 0 1 7 18.333z\\\"/><path d=\\\"M4.012 16.737A2 2 0 0 1 3 15V5c0-1.1.9-2 2-2h10c.75 0 1.158.385 1.5 1\\\"/></g>\", width: 24, height: 24 },\n \"alert-circle\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><circle cx=\\\"12\\\" cy=\\\"12\\\" r=\\\"9\\\"/><path d=\\\"M12 8v4m0 4h.01\\\"/></g>\", width: 24, height: 24 },\n \"trash\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><path d=\\\"M4 6h16\\\"/><path d=\\\"M9 6V4h6v2\\\"/><path d=\\\"M18 6l-1 14H7L6 6\\\"/></g>\", width: 24, height: 24 },\n \"share\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><circle cx=\\\"18\\\" cy=\\\"5\\\" r=\\\"2.5\\\"/><circle cx=\\\"6\\\" cy=\\\"12\\\" r=\\\"2.5\\\"/><circle cx=\\\"18\\\" cy=\\\"19\\\" r=\\\"2.5\\\"/><path d=\\\"m8.2 10.8l7.1-3.7m-7.1 6.1l7.1 4\\\"/></g>\", width: 24, height: 24 },\n \"shopping-bag\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><path d=\\\"M6 8h12l-1 12H7L6 8Z\\\"/><path d=\\\"M9 8a3 3 0 0 1 6 0\\\"/></g>\", width: 24, height: 24 },\n \"search\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><circle cx=\\\"11\\\" cy=\\\"11\\\" r=\\\"6.5\\\"/><path d=\\\"m19 19l-3.5-3.5\\\"/></g>\", width: 24, height: 24 },\n \"settings\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M12 3l1.3 2.6l2.9.4l-.7 2.8l2 2l-2 2l.7 2.8l-2.9.4L12 21l-1.3-2.6l-2.9-.4l.7-2.8l-2-2l2-2l-.7-2.8l2.9-.4zm0 5a4 4 0 1 0 0 8a4 4 0 0 0 0-8\\\"/>\", width: 24, height: 24 },\n \"shuffle\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><path d=\\\"m18 4l3 3l-3 3m0 10l3-3l-3-3\\\"/><path d=\\\"M3 7h3a5 5 0 0 1 5 5a5 5 0 0 0 5 5h5m0-10h-5a4.98 4.98 0 0 0-3 1m-4 8a5 5 0 0 1-3 1H3\\\"/></g>\", width: 24, height: 24 },\n \"sparkles\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M16 18a2 2 0 0 1 2 2a2 2 0 0 1 2-2a2 2 0 0 1-2-2a2 2 0 0 1-2 2m0-12a2 2 0 0 1 2 2a2 2 0 0 1 2-2a2 2 0 0 1-2-2a2 2 0 0 1-2 2M9 18a6 6 0 0 1 6-6a6 6 0 0 1-6-6a6 6 0 0 1-6 6a6 6 0 0 1 6 6\\\"/>\", width: 24, height: 24 },\n \"bold\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M7 5h6a3.5 3.5 0 0 1 0 7H7zm6 7h1a3.5 3.5 0 0 1 0 7H7v-7\\\"/>\", width: 24, height: 24 },\n \"italic\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M11 5h6M7 19h6m1-14l-4 14\\\"/>\", width: 24, height: 24 },\n \"underline\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M7 5v5a5 5 0 0 0 10 0V5M5 19h14\\\"/>\", width: 24, height: 24 },\n \"bell\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M10 5a2 2 0 1 1 4 0a7 7 0 0 1 4 6v3a4 4 0 0 0 2 3H4a4 4 0 0 0 2-3v-3a7 7 0 0 1 4-6M9 17v1a3 3 0 0 0 6 0v-1\\\"/>\", width: 24, height: 24 },\n \"ellipsis\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M4 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0m7 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0\\\"/>\", width: 24, height: 24 },\n \"calendar\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M4 7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm12-4v4M8 3v4m-4 4h16m-9 4h1m0 0v3\\\"/>\", width: 24, height: 24 },\n \"globe\": { body: \"<g fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\"><path d=\\\"M7 9a4 4 0 1 0 8 0a4 4 0 0 0-8 0\\\"/><path d=\\\"M5.75 15A8.015 8.015 0 1 0 15 2m-4 15v4m-4 0h8\\\"/></g>\", width: 24, height: 24 },\n \"credit-card\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M3 8a3 3 0 0 1 3-3h12a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3zm0 2h18M7 15h.01M11 15h2\\\"/>\", width: 24, height: 24 },\n \"x\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M18 6L6 18M6 6l12 12\\\"/>\", width: 24, height: 24 },\n \"loader-circle\": { body: \"<path fill=\\\"none\\\" stroke=\\\"currentColor\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\" stroke-width=\\\"2\\\" d=\\\"M12 3a9 9 0 1 0 9 9\\\"/>\", width: 24, height: 24 },\n },\n phosphor: {\n \"check\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"m229.66 77.66l-128 128a8 8 0 0 1-11.32 0l-56-56a8 8 0 0 1 11.32-11.32L96 188.69L218.34 66.34a8 8 0 0 1 11.32 11.32\\\"/>\", width: 256, height: 256 },\n \"chevron-down\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"m213.66 101.66l-80 80a8 8 0 0 1-11.32 0l-80-80a8 8 0 0 1 11.32-11.32L128 164.69l74.34-74.35a8 8 0 0 1 11.32 11.32\\\"/>\", width: 256, height: 256 },\n \"chevron-right\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"m90.34 53.66l80 80a8 8 0 0 1 0 11.32l-80 80a8 8 0 0 1-11.32-11.32L153.37 139L79.02 64.98a8 8 0 0 1 11.32-11.32\\\"/>\", width: 256, height: 256 },\n \"chevron-up\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M213.66 165.66a8 8 0 0 1-11.32 0L128 91.31l-74.34 74.35a8 8 0 0 1-11.32-11.32l80-80a8 8 0 0 1 11.32 0l80 80a8 8 0 0 1 0 11.32\\\"/>\", width: 256, height: 256 },\n \"menu\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M224 128a8 8 0 0 1-8 8H40a8 8 0 0 1 0-16h176a8 8 0 0 1 8 8M40 72h176a8 8 0 0 0 0-16H40a8 8 0 0 0 0 16m176 112H40a8 8 0 0 0 0 16h176a8 8 0 0 0 0-16\\\"/>\", width: 256, height: 256 },\n \"plus\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M136 56v64h64a8 8 0 0 1 0 16h-64v64a8 8 0 0 1-16 0v-64H56a8 8 0 0 1 0-16h64V56a8 8 0 0 1 16 0\\\"/>\", width: 256, height: 256 },\n \"minus\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M208 136H48a8 8 0 0 1 0-16h160a8 8 0 0 1 0 16\\\"/>\", width: 256, height: 256 },\n \"arrow-left\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M141.66 53.66a8 8 0 0 1 0 11.32L78.63 128l63.03 63.03a8 8 0 0 1-11.32 11.32l-68.69-68.69a8 8 0 0 1 0-11.32l68.69-68.68a8 8 0 0 1 11.32 0m66.34 82.34H72a8 8 0 0 1 0-16h136a8 8 0 0 1 0 16\\\"/>\", width: 256, height: 256 },\n \"arrow-right\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M125.66 53.66a8 8 0 0 1 11.32 0l68.69 68.68a8 8 0 0 1 0 11.32l-68.69 68.69a8 8 0 0 1-11.32-11.32L188.69 128L125.66 64.98a8 8 0 0 1 0-11.32M184 136H48a8 8 0 0 1 0-16h136a8 8 0 0 1 0 16\\\"/>\", width: 256, height: 256 },\n \"copy\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M216 32H88a8 8 0 0 0-8 8v40H40a8 8 0 0 0-8 8v128a8 8 0 0 0 8 8h128a8 8 0 0 0 8-8v-40h40a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8m-56 176H48V96h112Zm48-48h-32V88a8 8 0 0 0-8-8H96V48h112Z\\\"/>\", width: 256, height: 256 },\n \"alert-circle\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 152a12 12 0 1 1 12-12a12 12 0 0 1-12 12m8-52a8 8 0 0 1-16 0V80a8 8 0 0 1 16 0Z\\\"/>\", width: 256, height: 256 },\n \"trash\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M216 56h-40V40a16 16 0 0 0-16-16H96a16 16 0 0 0-16 16v16H40a8 8 0 0 0 0 16h8l10.13 147.08A16 16 0 0 0 74.09 232h107.82a16 16 0 0 0 15.96-12.92L208 72h8a8 8 0 0 0 0-16M96 40h64v16H96Zm85.89 176H74.11L64.55 72h126.9Z\\\"/>\", width: 256, height: 256 },\n \"share\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M176 32a32 32 0 1 0 30.94 40.19l-79.43 39.71a32 32 0 1 0 0 32.2l79.43 39.71A32 32 0 1 0 216 160a31.8 31.8 0 0 0-9.06 1.31l-79.43-39.71a32.7 32.7 0 0 0 0-17.2l79.43-39.71A31.8 31.8 0 0 0 216 64a32 32 0 0 0-40-32\\\"/>\", width: 256, height: 256 },\n \"shopping-bag\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M184 56h-16a40 40 0 0 0-80 0H72a16 16 0 0 0-16 16v128a24 24 0 0 0 24 24h96a24 24 0 0 0 24-24V72a16 16 0 0 0-16-16m-56-24a24 24 0 0 1 24 24h-48a24 24 0 0 1 24-24m56 168a8 8 0 0 1-8 8H80a8 8 0 0 1-8-8V72h16v24a8 8 0 0 0 16 0V72h48v24a8 8 0 0 0 16 0V72h16Z\\\"/>\", width: 256, height: 256 },\n \"search\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"m229.66 218.34l-50.07-50.06a88 88 0 1 0-11.31 11.31l50.06 50.07a8 8 0 0 0 11.32-11.32M40 112a72 72 0 1 1 72 72a72.08 72.08 0 0 1-72-72\\\"/>\", width: 256, height: 256 },\n \"settings\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M224 136v-16l-20.83-7.5a76 76 0 0 0-4.66-11.24l9.44-20.1l-11.31-11.32l-20.11 9.45a75.3 75.3 0 0 0-11.23-4.66L152 32h-16l-7.5 20.83a76 76 0 0 0-11.24 4.66L97.16 48l-11.32 11.31l9.45 20.11a75.3 75.3 0 0 0-4.66 11.23L69.8 104H48v16l20.83 7.5a76 76 0 0 0 4.66 11.24l-9.45 20.1l11.32 11.32l20.1-9.45a76 76 0 0 0 11.24 4.66L120 224h16l7.5-20.83a76 76 0 0 0 11.23-4.66l20.11 9.45l11.31-11.32l-9.44-20.1a76 76 0 0 0 4.66-11.24Zm-96 24a32 32 0 1 1 32-32a32 32 0 0 1-32 32\\\"/>\", width: 256, height: 256 },\n \"shuffle\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M237.66 178.34a8 8 0 0 1 0 11.32l-24 24a8 8 0 0 1-11.32-11.32L212.69 192h-11.75a72.12 72.12 0 0 1-58.59-30.15l-41.72-58.4A56.1 56.1 0 0 0 55.06 80H32a8 8 0 0 1 0-16h23.06a72.12 72.12 0 0 1 58.59 30.15l41.72 58.4A56.1 56.1 0 0 0 200.94 176h11.75l-10.35-10.34a8 8 0 0 1 11.32-11.32ZM143 107a8 8 0 0 0 11.16-1.86l1.2-1.67A56.1 56.1 0 0 1 200.94 80h11.75l-10.35 10.34a8 8 0 0 0 11.32 11.32l24-24a8 8 0 0 0 0-11.32l-24-24a8 8 0 0 0-11.32 11.32L212.69 64h-11.75a72.12 72.12 0 0 0-58.59 30.15l-1.2 1.67A8 8 0 0 0 143 107m-30 42a8 8 0 0 0-11.16 1.86l-1.2 1.67A56.1 56.1 0 0 1 55.06 176H32a8 8 0 0 0 0 16h23.06a72.12 72.12 0 0 0 58.59-30.15l1.2-1.67A8 8 0 0 0 113 149\\\"/>\", width: 256, height: 256 },\n \"sparkles\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M197.58 129.06L146 110l-19-51.62a15.92 15.92 0 0 0-29.88 0L78 110l-51.62 19a15.92 15.92 0 0 0 0 29.88L78 178l19 51.62a15.92 15.92 0 0 0 29.88 0L146 178l51.62-19a15.92 15.92 0 0 0 0-29.88ZM137 164.22a8 8 0 0 0-4.74 4.74L112 223.85L91.78 169a8 8 0 0 0-4.78-4.78L32.15 144L87 123.78a8 8 0 0 0 4.78-4.78L112 64.15L132.22 119a8 8 0 0 0 4.74 4.74L191.85 144ZM144 40a8 8 0 0 1 8-8h16V16a8 8 0 0 1 16 0v16h16a8 8 0 0 1 0 16h-16v16a8 8 0 0 1-16 0V48h-16a8 8 0 0 1-8-8m104 48a8 8 0 0 1-8 8h-8v8a8 8 0 0 1-16 0v-8h-8a8 8 0 0 1 0-16h8v-8a8 8 0 0 1 16 0v8h8a8 8 0 0 1 8 8\\\"/>\", width: 256, height: 256 },\n \"bold\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M170.5 115.7A44 44 0 0 0 140 40H64a7.9 7.9 0 0 0-8 8v152a8 8 0 0 0 8 8h88a48 48 0 0 0 18.5-92.3ZM72 56h68a28 28 0 0 1 0 56H72Zm80 136H72v-64h80a32 32 0 0 1 0 64Z\\\"/>\", width: 256, height: 256 },\n \"italic\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M200 56a8 8 0 0 1-8 8h-34.23L115.1 192H144a8 8 0 0 1 0 16H64a8 8 0 0 1 0-16h34.23L140.9 64H112a8 8 0 0 1 0-16h80a8 8 0 0 1 8 8\\\"/>\", width: 256, height: 256 },\n \"underline\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M200 224a8 8 0 0 1-8 8H64a8 8 0 0 1 0-16h128a8 8 0 0 1 8 8m-72-24a64.07 64.07 0 0 0 64-64V56a8 8 0 0 0-16 0v80a48 48 0 0 1-96 0V56a8 8 0 0 0-16 0v80a64.07 64.07 0 0 0 64 64\\\"/>\", width: 256, height: 256 },\n \"bell\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M221.8 175.94c-5.55-9.56-13.8-36.61-13.8-71.94a80 80 0 1 0-160 0c0 35.34-8.26 62.38-13.81 71.94A16 16 0 0 0 48 200h40.81a40 40 0 0 0 78.38 0H208a16 16 0 0 0 13.8-24.06M128 216a24 24 0 0 1-22.62-16h45.24A24 24 0 0 1 128 216m-80-32c7.7-13.24 16-43.92 16-80a64 64 0 1 1 128 0c0 36.05 8.28 66.73 16 80Z\\\"/>\", width: 256, height: 256 },\n \"ellipsis\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M140 128a12 12 0 1 1-12-12a12 12 0 0 1 12 12m56-12a12 12 0 1 0 12 12a12 12 0 0 0-12-12m-136 0a12 12 0 1 0 12 12a12 12 0 0 0-12-12\\\"/>\", width: 256, height: 256 },\n \"calendar\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M208 32h-24v-8a8 8 0 0 0-16 0v8H88v-8a8 8 0 0 0-16 0v8H48a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16M72 48v8a8 8 0 0 0 16 0v-8h80v8a8 8 0 0 0 16 0v-8h24v32H48V48Zm136 160H48V96h160zm-96-88v64a8 8 0 0 1-16 0v-51.06l-4.42 2.22a8 8 0 0 1-7.16-14.32l16-8A8 8 0 0 1 112 120m59.16 30.45L152 176h16a8 8 0 0 1 0 16h-32a8 8 0 0 1-6.4-12.8l28.78-38.37a8 8 0 1 0-13.31-8.83a8 8 0 1 1-13.85-8A24 24 0 0 1 176 136a23.76 23.76 0 0 1-4.84 14.45\\\"/>\", width: 256, height: 256 },\n \"globe\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M128 24a104 104 0 1 0 104 104A104.12 104.12 0 0 0 128 24m88 104a87.6 87.6 0 0 1-3.33 24h-38.51a157.4 157.4 0 0 0 0-48h38.51a87.6 87.6 0 0 1 3.33 24m-114 40h52a115.1 115.1 0 0 1-26 45a115.3 115.3 0 0 1-26-45m-3.9-16a140.8 140.8 0 0 1 0-48h59.88a140.8 140.8 0 0 1 0 48ZM40 128a87.6 87.6 0 0 1 3.33-24h38.51a157.4 157.4 0 0 0 0 48H43.33A87.6 87.6 0 0 1 40 128m114-40h-52a115.1 115.1 0 0 1 26-45a115.3 115.3 0 0 1 26 45m52.33 0h-35.62a135.3 135.3 0 0 0-22.3-45.6A88.29 88.29 0 0 1 206.37 88Zm-98.74-45.6A135.3 135.3 0 0 0 85.29 88H49.63a88.29 88.29 0 0 1 57.96-45.6M49.63 168h35.66a135.3 135.3 0 0 0 22.3 45.6A88.29 88.29 0 0 1 49.63 168m98.78 45.6a135.3 135.3 0 0 0 22.3-45.6h35.66a88.29 88.29 0 0 1-57.96 45.6\\\"/>\", width: 256, height: 256 },\n \"credit-card\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M224 48H32a16 16 0 0 0-16 16v128a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16m0 16v24H32V64Zm0 128H32v-88h192zm-16-24a8 8 0 0 1-8 8h-32a8 8 0 0 1 0-16h32a8 8 0 0 1 8 8m-64 0a8 8 0 0 1-8 8h-16a8 8 0 0 1 0-16h16a8 8 0 0 1 8 8\\\"/>\", width: 256, height: 256 },\n \"x\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M205.66 194.34a8 8 0 0 1-11.32 11.32L128 139.31l-66.34 66.35a8 8 0 0 1-11.32-11.32L116.69 128L50.34 61.66a8 8 0 0 1 11.32-11.32L128 116.69l66.34-66.35a8 8 0 0 1 11.32 11.32L139.31 128Z\\\"/>\", width: 256, height: 256 },\n \"loader-circle\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M136 32v32a8 8 0 0 1-16 0V32a8 8 0 0 1 16 0m37.25 58.75a8 8 0 0 0 5.66-2.35l22.63-22.62a8 8 0 0 0-11.32-11.32L167.6 77.09a8 8 0 0 0 5.65 13.66M224 120h-32a8 8 0 0 0 0 16h32a8 8 0 0 0 0-16m-45.09 47.6a8 8 0 0 0-11.31 11.31l22.62 22.63a8 8 0 0 0 11.32-11.32ZM128 184a8 8 0 0 0-8 8v32a8 8 0 0 0 16 0v-32a8 8 0 0 0-8-8m-50.91-16.4l-22.63 22.62a8 8 0 0 0 11.32 11.32l22.62-22.63a8 8 0 0 0-11.31-11.31M72 128a8 8 0 0 0-8-8H32a8 8 0 0 0 0 16h32a8 8 0 0 0 8-8m-6.22-73.54a8 8 0 0 0-11.32 11.32L77.09 88.4A8 8 0 0 0 88.4 77.09Z\\\"/>\", width: 256, height: 256 },\n },\n remixicon: {\n \"check\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"m10 15.17l9.192-9.191l1.414 1.414L10 17.999l-6.364-6.364l1.414-1.414z\\\"/>\", width: 24, height: 24 },\n \"chevron-down\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"m12 13.171l4.95-4.95l1.414 1.415L12 16L5.636 9.636L7.05 8.222z\\\"/>\", width: 24, height: 24 },\n \"chevron-right\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"m13.172 12l-4.95 4.95l1.414 1.414L16 12L9.636 5.636L8.222 7.05z\\\"/>\", width: 24, height: 24 },\n \"chevron-up\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"m12 10.828l-4.95 4.95l-1.414-1.414L12 8l6.364 6.364l-1.414 1.414z\\\"/>\", width: 24, height: 24 },\n \"menu\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M3 4h18v2H3zm0 7h12v2H3zm0 7h18v2H3z\\\"/>\", width: 24, height: 24 },\n \"plus\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M11 11V4h2v7h7v2h-7v7h-2v-7H4v-2z\\\"/>\", width: 24, height: 24 },\n \"minus\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M4 11h16v2H4z\\\"/>\", width: 24, height: 24 },\n \"arrow-left\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"m7.828 11l4.95-4.95l-1.414-1.414L4 12l7.364 7.364l1.414-1.414l-4.95-4.95H20v-2z\\\"/>\", width: 24, height: 24 },\n \"arrow-right\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M16.172 11H4v2h12.172l-4.95 4.95l1.414 1.414L20 12l-7.364-7.364l-1.414 1.414z\\\"/>\", width: 24, height: 24 },\n \"copy\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M7 6V3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-3v3c0 .552-.45 1-1.007 1H4.007A1 1 0 0 1 3 21l.003-14c0-.552.45-1 1.006-1zM5.002 8L5 20h10V8zM9 6h8v10h2V4H9z\\\"/>\", width: 24, height: 24 },\n \"alert-circle\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10s-4.477 10-10 10m-1-6v2h2v-2zm0-10v8h2V6z\\\"/>\", width: 24, height: 24 },\n \"trash\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M7 4V2h10v2h5v2h-1l-1 15a1 1 0 0 1-1 .933H5a1 1 0 0 1-1-.933L3 6H2V4zm2 0h6V4z\\\"/>\", width: 24, height: 24 },\n \"share\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M18 16a3 3 0 0 0-2.387 1.183l-6.58-3.29a3 3 0 0 0 0-3.786l6.58-3.29A3 3 0 1 0 15 5a2.98 2.98 0 0 0 .033.44l-6.58 3.29a3 3 0 1 0 0 6.54l6.58 3.29A3 3 0 1 0 18 16\\\"/>\", width: 24, height: 24 },\n \"shopping-bag\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M7 7V6a5 5 0 0 1 10 0v1h4a1 1 0 0 1 .995 1.1l-1 12A2 2 0 0 1 19.003 22H4.997a2 2 0 0 1-1.992-1.9l-1-12A1 1 0 0 1 3 7zm2 0h6V6a3 3 0 0 0-6 0z\\\"/>\", width: 24, height: 24 },\n \"search\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M10 2a8 8 0 1 1 5.293 14l4.854 4.853l-1.414 1.414l-4.853-4.854A8 8 0 0 1 10 2m0 2a6 6 0 1 0 0 12a6 6 0 0 0 0-12\\\"/>\", width: 24, height: 24 },\n \"settings\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"m12 1l1.52 2.58l2.96.66l-.28 2.98l2.05 2.18l-2.05 2.18l.28 2.98l-2.96.66L12 19l-1.52-2.58l-2.96-.66l.28-2.98l-2.05-2.18l2.05-2.18l-.28-2.98l2.96-.66zm0 6a5 5 0 1 0 0 10a5 5 0 0 0 0-10\\\"/>\", width: 24, height: 24 },\n \"shuffle\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M18 17.883V16l5 3l-5 3v-2.09a9 9 0 0 1-6.997-5.365L11 14.54l-.003.006A9 9 0 0 1 2.725 20H2v-2h.725a7 7 0 0 0 6.434-4.243L9.912 12l-.753-1.757A7 7 0 0 0 2.725 6H2V4h.725a9 9 0 0 1 8.272 5.455L11 9.46l.003-.006A9 9 0 0 1 18 4.09V2l5 3l-5 3V6.117a7 7 0 0 0-5.159 4.126L12.088 12l.753 1.757A7 7 0 0 0 18 17.883\\\"/>\", width: 24, height: 24 },\n \"sparkles\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M14 4.438A2.437 2.437 0 0 0 16.438 2h1.125A2.437 2.437 0 0 0 20 4.438v1.125A2.437 2.437 0 0 0 17.563 8h-1.125A2.437 2.437 0 0 0 14 5.563zM1 11a6 6 0 0 0 6-6h2a6 6 0 0 0 6 6v2a6 6 0 0 0-6 6H7a6 6 0 0 0-6-6zm3.876 1A8.04 8.04 0 0 1 8 15.124A8.04 8.04 0 0 1 11.124 12A8.04 8.04 0 0 1 8 8.876A8.04 8.04 0 0 1 4.876 12m12.374 2A3.25 3.25 0 0 1 14 17.25v1.5A3.25 3.25 0 0 1 17.25 22h1.5A3.25 3.25 0 0 1 22 18.75v-1.5A3.25 3.25 0 0 1 18.75 14z\\\"/>\", width: 24, height: 24 },\n \"bold\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M8 11h4.5a2.5 2.5 0 0 0 0-5H8zm10 4.5a4.5 4.5 0 0 1-4.5 4.5H6V4h6.5a4.5 4.5 0 0 1 3.256 7.606A4.5 4.5 0 0 1 18 15.5M8 13v5h5.5a2.5 2.5 0 0 0 0-5z\\\"/>\", width: 24, height: 24 },\n \"italic\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M15 20H7v-2h2.927l2.116-12H9V4h8v2h-2.927l-2.116 12H15z\\\"/>\", width: 24, height: 24 },\n \"underline\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M8 3v9a4 4 0 0 0 8 0V3h2v9a6 6 0 0 1-12 0V3zM4 20h16v2H4z\\\"/>\", width: 24, height: 24 },\n \"bell\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M14.121 9.879c4.296 4.295 6.829 8.728 5.657 9.9c-.475.474-1.486.34-2.807-.273a9.01 9.01 0 0 1-10.59-.474l-.038.039l-1.414-1.414l.038-.04A9.01 9.01 0 0 1 4.495 7.03c-.614-1.322-.748-2.333-.273-2.808c1.128-1.128 5.277 1.177 9.417 5.182zm-1.414 1.414C10.823 9.409 8.87 7.842 7.236 6.87l-.186.18a7 7 0 0 0-.657 9.142l1.846-1.846a2 2 0 0 1 3.347-1.932a2 2 0 0 1-1.931 3.347l-1.848 1.846a7 7 0 0 0 9.143-.657l.179-.188l-.053-.089c-.976-1.615-2.52-3.53-4.369-5.38m7.071-7.071a2 2 0 0 1-.165 2.976a9.02 9.02 0 0 1 .663 8.345a21 21 0 0 0-1.386-2.306a6.99 6.99 0 0 0-1.94-6.187a6.99 6.99 0 0 0-6.187-1.94a21 21 0 0 0-2.306-1.386a9.02 9.02 0 0 1 8.347.663q.066-.086.146-.165a2 2 0 0 1 2.828 0\\\"/>\", width: 24, height: 24 },\n \"ellipsis\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M12 3c-.825 0-1.5.675-1.5 1.5S11.175 6 12 6s1.5-.675 1.5-1.5S12.825 3 12 3m0 15c-.825 0-1.5.675-1.5 1.5S11.175 21 12 21s1.5-.675 1.5-1.5S12.825 18 12 18m0-7.5c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5s1.5-.675 1.5-1.5s-.675-1.5-1.5-1.5\\\"/>\", width: 24, height: 24 },\n \"calendar\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M9 1v2h6V1h2v2h4a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h4V1zm11 10H4v8h16zM8 13v2H6v-2zm5 0v2h-2v-2zm5 0v2h-2v-2zM7 5H4v4h16V5h-3v2h-2V5H9v2H7z\\\"/>\", width: 24, height: 24 },\n \"globe\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M13 21h5v2H6v-2h5v-1.05a10 10 0 0 1-7.684-4.988l1.737-.992A8 8 0 1 0 15.97 3.053l.993-1.737A10 10 0 0 1 22 10c0 5.185-3.946 9.449-9 9.95zm-1-4a7 7 0 1 1 0-14a7 7 0 0 1 0 14m0-2a5 5 0 1 0 0-10a5 5 0 0 0 0 10\\\"/>\", width: 24, height: 24 },\n \"credit-card\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M3.005 3h18a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1h-18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1m17 8h-16v8h16zm0-2V5h-16v4zm-6 6h4v2h-4z\\\"/>\", width: 24, height: 24 },\n \"x\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"m12 10.587l4.95-4.95l1.414 1.414l-4.95 4.95l4.95 4.95l-1.415 1.414l-4.95-4.95l-4.949 4.95l-1.414-1.415l4.95-4.95l-4.95-4.95L7.05 5.638z\\\"/>\", width: 24, height: 24 },\n \"loader-circle\": { body: \"<path fill=\\\"currentColor\\\" d=\\\"M12 2a1 1 0 0 1 1 1v3a1 1 0 1 1-2 0V3a1 1 0 0 1 1-1m0 15a1 1 0 0 1 1 1v3a1 1 0 1 1-2 0v-3a1 1 0 0 1 1-1m10-5a1 1 0 0 1-1 1h-3a1 1 0 1 1 0-2h3a1 1 0 0 1 1 1M7 12a1 1 0 0 1-1 1H3a1 1 0 1 1 0-2h3a1 1 0 0 1 1 1m12.071 7.071a1 1 0 0 1-1.414 0l-2.121-2.121a1 1 0 0 1 1.414-1.414l2.121 2.12a1 1 0 0 1 0 1.415M8.464 8.464a1 1 0 0 1-1.414 0l-2.12-2.12a1 1 0 0 1 1.414-1.415l2.12 2.121a1 1 0 0 1 0 1.414M4.93 19.071a1 1 0 0 1 0-1.414l2.121-2.121a1 1 0 0 1 1.414 1.414l-2.12 2.121a1 1 0 0 1-1.415 0M15.536 8.464a1 1 0 0 1 0-1.414l2.12-2.121a1 1 0 1 1 1.415 1.414L16.95 8.464a1 1 0 0 1-1.414 0\\\"/>\", width: 24, height: 24 },\n },\n} as const;\n\nexport type IconLibraryName = keyof typeof ICON_LIBRARY_COLLECTIONS;\nexport type SemanticIconName = (typeof SEMANTIC_ICON_NAMES)[number];\n\ntype IconRecord = {\n body: string;\n width: number;\n height: number;\n};\n\nexport const LUCIDE_EXPORT_TO_SEMANTIC_ICON = {\n Check: \"check\",\n CheckIcon: \"check\",\n ChevronDown: \"chevron-down\",\n ChevronDownIcon: \"chevron-down\",\n ChevronRight: \"chevron-right\",\n ChevronRightIcon: \"chevron-right\",\n ChevronUp: \"chevron-up\",\n ChevronUpIcon: \"chevron-up\",\n Plus: \"plus\",\n PlusIcon: \"plus\",\n Minus: \"minus\",\n MinusIcon: \"minus\",\n ArrowLeft: \"arrow-left\",\n ArrowLeftIcon: \"arrow-left\",\n ArrowRight: \"arrow-right\",\n ArrowRightIcon: \"arrow-right\",\n Copy: \"copy\",\n CopyIcon: \"copy\",\n CircleAlert: \"alert-circle\",\n CircleAlertIcon: \"alert-circle\",\n Trash: \"trash\",\n TrashIcon: \"trash\",\n Share: \"share\",\n ShareIcon: \"share\",\n ShoppingBag: \"shopping-bag\",\n ShoppingBagIcon: \"shopping-bag\",\n Search: \"search\",\n SearchIcon: \"search\",\n Settings: \"settings\",\n SettingsIcon: \"settings\",\n CreditCard: \"credit-card\",\n CreditCardIcon: \"credit-card\",\n Ellipsis: \"ellipsis\",\n EllipsisIcon: \"ellipsis\",\n Globe: \"globe\",\n GlobeIcon: \"globe\",\n Bell: \"bell\",\n BellIcon: \"bell\",\n Bold: \"bold\",\n BoldIcon: \"bold\",\n Italic: \"italic\",\n ItalicIcon: \"italic\",\n Underline: \"underline\",\n UnderlineIcon: \"underline\",\n Sparkles: \"sparkles\",\n SparklesIcon: \"sparkles\",\n Calendar: \"calendar\",\n CalendarIcon: \"calendar\",\n Menu: \"menu\",\n MenuIcon: \"menu\",\n Shuffle: \"shuffle\",\n ShuffleIcon: \"shuffle\",\n X: \"x\",\n XIcon: \"x\",\n LoaderCircle: \"loader-circle\",\n Loader2: \"loader-circle\",\n Loader2Icon: \"loader-circle\",\n LoaderIcon: \"loader-circle\",\n} as const satisfies Record<string, SemanticIconName>;\n\nexport const LUCIDE_PATH_TO_SEMANTIC_ICON = {\n check: \"check\",\n \"chevron-down\": \"chevron-down\",\n \"chevron-right\": \"chevron-right\",\n \"chevron-up\": \"chevron-up\",\n plus: \"plus\",\n minus: \"minus\",\n \"arrow-left\": \"arrow-left\",\n \"arrow-right\": \"arrow-right\",\n copy: \"copy\",\n \"circle-alert\": \"alert-circle\",\n trash: \"trash\",\n share: \"share\",\n \"shopping-bag\": \"shopping-bag\",\n search: \"search\",\n settings: \"settings\",\n \"credit-card\": \"credit-card\",\n ellipsis: \"ellipsis\",\n globe: \"globe\",\n bell: \"bell\",\n bold: \"bold\",\n italic: \"italic\",\n underline: \"underline\",\n sparkles: \"sparkles\",\n calendar: \"calendar\",\n menu: \"menu\",\n shuffle: \"shuffle\",\n x: \"x\",\n \"loader-circle\": \"loader-circle\",\n} as const satisfies Record<string, SemanticIconName>;\n\nfunction escapeHtmlAttribute(value: string) {\n return value\n .split(\"&\")\n .join(\"&\")\n .split('\"')\n .join(\""\")\n .split(\"<\")\n .join(\"<\")\n .split(\">\")\n .join(\">\");\n}\n\nfunction buildAttributeString(attributes?: Record<string, string | number | boolean | null | undefined>) {\n if (!attributes) {\n return \"\";\n }\n\n return Object.entries(attributes)\n .filter(([, value]) => value !== false && value !== null && value !== undefined)\n .map(([key, value]) => {\n if (value === true) {\n return ` ${key}`;\n }\n\n return ` ${key}=\"${escapeHtmlAttribute(String(value))}\"`;\n })\n .join(\"\");\n}\n\nexport function getSemanticIconNameFromLucidePath(path: string) {\n return LUCIDE_PATH_TO_SEMANTIC_ICON[path as keyof typeof LUCIDE_PATH_TO_SEMANTIC_ICON];\n}\n\nexport function getSemanticIconNameFromLucideExport(name: string) {\n return LUCIDE_EXPORT_TO_SEMANTIC_ICON[name as keyof typeof LUCIDE_EXPORT_TO_SEMANTIC_ICON];\n}\n\nexport function getIconData(\n library: IconLibraryName,\n name: SemanticIconName,\n): IconRecord {\n return ICON_DATA[library][name];\n}\n\nexport function renderSemanticIconSvg(\n library: IconLibraryName,\n name: SemanticIconName,\n attributes?: Record<string, string | number | boolean | null | undefined>,\n) {\n const icon = getIconData(library, name);\n\n return `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 ${icon.width} ${icon.height}\"${buildAttributeString(\n attributes,\n )}>${icon.body}</svg>`;\n}\n\nexport function renderSemanticIconSvgWithAttributeString(\n library: IconLibraryName,\n name: SemanticIconName,\n attributeString = \"\",\n) {\n const icon = getIconData(library, name);\n const normalizedAttributes = attributeString.trim();\n\n return `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 ${icon.width} ${icon.height}\"${\n normalizedAttributes ? ` ${normalizedAttributes}` : \"\"\n }>${icon.body}</svg>`;\n}\n","import { bodyFonts, headingFonts } from \"./catalog/fonts\";\nimport { BASE_COLORS } from \"./catalog/base-colors\";\nimport { STYLES } from \"./catalog/styles\";\nimport { THEMES } from \"./catalog/themes\";\nimport {\n ICON_LIBRARY_COLLECTIONS,\n ICON_LIBRARY_PACKAGE_NAMES,\n type IconLibraryName,\n} from \"@bejamas/semantic-icons\";\nimport {\n getBaseColor,\n getFontValue,\n getHeadingFontValue,\n getInheritedHeadingFontValue,\n getRadiusValue,\n getStyleId,\n getTheme,\n resolveEffectiveRadius,\n type DesignSystemConfig,\n} from \"./config\";\n\nexport const ICON_LIBRARIES = [\n {\n name: \"lucide\",\n packageName: ICON_LIBRARY_PACKAGE_NAMES.lucide,\n collection: ICON_LIBRARY_COLLECTIONS.lucide,\n label: \"Lucide\",\n },\n {\n name: \"hugeicons\",\n packageName: ICON_LIBRARY_PACKAGE_NAMES.hugeicons,\n collection: ICON_LIBRARY_COLLECTIONS.hugeicons,\n label: \"Hugeicons\",\n },\n {\n name: \"tabler\",\n packageName: ICON_LIBRARY_PACKAGE_NAMES.tabler,\n collection: ICON_LIBRARY_COLLECTIONS.tabler,\n label: \"Tabler\",\n },\n {\n name: \"phosphor\",\n packageName: ICON_LIBRARY_PACKAGE_NAMES.phosphor,\n collection: ICON_LIBRARY_COLLECTIONS.phosphor,\n label: \"Phosphor\",\n },\n {\n name: \"remixicon\",\n packageName: ICON_LIBRARY_PACKAGE_NAMES.remixicon,\n collection: ICON_LIBRARY_COLLECTIONS.remixicon,\n label: \"Remix Icon\",\n },\n] as const satisfies ReadonlyArray<{\n name: IconLibraryName;\n packageName: string;\n collection: string;\n label: string;\n}>;\n\nexport function buildRegistryTheme(config: DesignSystemConfig) {\n const baseColor = getBaseColor(config.baseColor);\n const theme = getTheme(config.theme);\n\n if (!baseColor || !theme) {\n throw new Error(\n `Base color \"${config.baseColor}\" or theme \"${config.theme}\" not found.`,\n );\n }\n\n const lightVars: Record<string, string> = {\n ...(baseColor.cssVars?.light as Record<string, string>),\n ...(theme.cssVars?.light as Record<string, string>),\n };\n const darkVars: Record<string, string> = {\n ...(baseColor.cssVars?.dark as Record<string, string>),\n ...(theme.cssVars?.dark as Record<string, string>),\n };\n\n if (config.menuAccent === \"bold\") {\n lightVars.accent = lightVars.primary;\n lightVars[\"accent-foreground\"] = lightVars[\"primary-foreground\"];\n darkVars.accent = darkVars.primary;\n darkVars[\"accent-foreground\"] = darkVars[\"primary-foreground\"];\n }\n\n const effectiveRadius = resolveEffectiveRadius(config.style, config.radius);\n if (effectiveRadius !== \"default\") {\n const radius = getRadiusValue(effectiveRadius);\n if (radius) {\n lightVars.radius = radius;\n darkVars.radius = radius;\n }\n }\n\n const font = getFontValue(config.font);\n const normalizedFontHeading =\n config.fontHeading === config.font ? \"inherit\" : config.fontHeading;\n const themeVars: Record<string, string> = {};\n\n if (font) {\n themeVars[\"bejamas-font-family\"] = font.font.family;\n }\n\n if (normalizedFontHeading === \"inherit\") {\n themeVars[\"font-heading\"] = getInheritedHeadingFontValue(config.font);\n } else {\n const headingFont = getHeadingFontValue(normalizedFontHeading);\n\n if (headingFont) {\n themeVars[\"font-heading\"] = headingFont.font.family;\n }\n }\n\n return {\n name: `${config.baseColor}-${config.theme}`,\n type: \"registry:theme\" as const,\n cssVars: {\n theme: Object.keys(themeVars).length ? themeVars : undefined,\n light: lightVars,\n dark: darkVars,\n },\n };\n}\n\nexport function buildThemeCss(config: DesignSystemConfig) {\n const theme = buildRegistryTheme(config);\n const themeVars = theme.cssVars.theme ?? {};\n const lightVars = theme.cssVars.light ?? {};\n const darkVars = theme.cssVars.dark ?? {};\n const styleId = getStyleId(config.style);\n const lines = [\n \":root {\",\n ...Object.entries(themeVars).map(([key, value]) => ` --${key}: ${value};`),\n ...Object.entries(lightVars).map(([key, value]) => ` --${key}: ${value};`),\n \"}\",\n \".dark, [data-theme=\\\"dark\\\"] {\",\n ...Object.entries(darkVars).map(([key, value]) => ` --${key}: ${value};`),\n \"}\",\n `:root { --bejamas-style-id: ${styleId}; }`,\n ];\n\n return lines.join(\"\\n\");\n}\n\nexport const catalogs = {\n themes: THEMES,\n baseColors: BASE_COLORS,\n fonts: bodyFonts,\n headingFonts,\n styles: STYLES,\n iconLibraries: ICON_LIBRARIES,\n};\n","let p = process || {}, argv = p.argv || [], env = p.env || {}\nlet isColorSupported =\n\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI)\n\nlet formatter = (open, close, replace = open) =>\n\tinput => {\n\t\tlet string = \"\" + input, index = string.indexOf(close, open.length)\n\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t}\n\nlet replaceClose = (string, close, replace, index) => {\n\tlet result = \"\", cursor = 0\n\tdo {\n\t\tresult += string.substring(cursor, index) + replace\n\t\tcursor = index + close.length\n\t\tindex = string.indexOf(close, cursor)\n\t} while (~index)\n\treturn result + string.substring(cursor)\n}\n\nlet createColors = (enabled = isColorSupported) => {\n\tlet f = enabled ? formatter : () => String\n\treturn {\n\t\tisColorSupported: enabled,\n\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t}\n}\n\nmodule.exports = createColors()\nmodule.exports.createColors = createColors\n","'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, content, escape, next, quote\n let currentToken, escaped, escapePos, n, prev\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n endOfFile,\n nextToken,\n position\n }\n}\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet tokenizer = require('./tokenize')\n\nlet Input\n\nfunction registerInput(dependant) {\n Input = dependant\n}\n\nconst HIGHLIGHT_THEME = {\n ';': pico.yellow,\n ':': pico.yellow,\n '(': pico.cyan,\n ')': pico.cyan,\n '[': pico.yellow,\n ']': pico.yellow,\n '{': pico.yellow,\n '}': pico.yellow,\n 'at-word': pico.cyan,\n 'brackets': pico.cyan,\n 'call': pico.cyan,\n 'class': pico.yellow,\n 'comment': pico.gray,\n 'hash': pico.magenta,\n 'string': pico.green\n}\n\nfunction getTokenType([type, value], processor) {\n if (type === 'word') {\n if (value[0] === '.') {\n return 'class'\n }\n if (value[0] === '#') {\n return 'hash'\n }\n }\n\n if (!processor.endOfFile()) {\n let next = processor.nextToken()\n processor.back(next)\n if (next[0] === 'brackets' || next[0] === '(') return 'call'\n }\n\n return type\n}\n\nfunction terminalHighlight(css) {\n let processor = tokenizer(new Input(css), { ignoreErrors: true })\n let result = ''\n while (!processor.endOfFile()) {\n let token = processor.nextToken()\n let color = HIGHLIGHT_THEME[getTokenType(token, processor)]\n if (color) {\n result += token[1]\n .split(/\\r?\\n/)\n .map(i => color(i))\n .join('\\n')\n } else {\n result += token[1]\n }\n }\n return result\n}\n\nterminalHighlight.registerInput = registerInput\n\nmodule.exports = terminalHighlight\n","'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : '<css input>'\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n\n let aside = text => text\n let mark = text => text\n let highlight = text => text\n if (color) {\n let { bold, gray, red } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n if (terminalHighlight) {\n highlight = text => terminalHighlight(text)\n }\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n let maxWidth = String(end).length\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n if (line.length > 160) {\n let padding = 20\n let subLineStart = Math.max(0, this.column - padding)\n let subLineEnd = Math.max(\n this.column + padding,\n this.endColumn + padding\n )\n let subLine = line.slice(subLineStart, subLineEnd)\n\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line\n .slice(0, Math.min(this.column - 1, padding - 1))\n .replace(/[^\\t]/g, ' ')\n\n return (\n mark('>') +\n aside(gutter) +\n highlight(subLine) +\n '\\n ' +\n spacing +\n mark('^')\n )\n }\n\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n\n return (\n mark('>') +\n aside(gutter) +\n highlight(line) +\n '\\n ' +\n spacing +\n mark('^')\n )\n }\n\n return ' ' + aside(gutter) + highlight(line)\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n","'use strict'\n\nconst DEFAULT_RAW = {\n after: '\\n',\n beforeClose: '\\n',\n beforeComment: '\\n',\n beforeDecl: '\\n',\n beforeOpen: ' ',\n beforeRule: '\\n',\n colon: ': ',\n commentLeft: ' ',\n commentRight: ' ',\n emptyBody: '',\n indent: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n document(node) {\n this.body(node)\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n","'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n","'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n","'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\nlet { isClean, my } = require('./symbols')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nfunction sourceOffset(inputCSS, position) {\n // Not all custom syntaxes support `offset` in `source.start` and `source.end`\n if (position && typeof position.offset !== 'undefined') {\n return position.offset\n }\n\n let column = 1\n let line = 1\n let offset = 0\n\n for (let i = 0; i < inputCSS.length; i++) {\n if (line === position.line && column === position.column) {\n offset = i\n break\n }\n\n if (inputCSS[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return offset\n}\n\nclass Node {\n get proxyOf() {\n return this\n }\n\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n /* c8 ignore next 3 */\n markClean() {\n this[isClean] = true\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n positionBy(opts = {}) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index)\n } else if (opts.word) {\n let inputString =\n 'document' in this.source.input\n ? this.source.input.document\n : this.source.input.css\n let stringRepresentation = inputString.slice(\n sourceOffset(inputString, this.source.start),\n sourceOffset(inputString, this.source.end)\n )\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index)\n }\n return pos\n }\n\n positionInside(index) {\n let column = this.source.start.column\n let line = this.source.start.line\n let inputString =\n 'document' in this.source.input\n ? this.source.input.document\n : this.source.input.css\n let offset = sourceOffset(inputString, this.source.start)\n let end = offset + index\n\n for (let i = offset; i < end; i++) {\n if (inputString[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { column, line, offset: end }\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n rangeBy(opts = {}) {\n let inputString =\n 'document' in this.source.input\n ? this.source.input.document\n : this.source.input.css\n let start = {\n column: this.source.start.column,\n line: this.source.start.line,\n offset: sourceOffset(inputString, this.source.start)\n }\n let end = this.source.end\n ? {\n column: this.source.end.column + 1,\n line: this.source.end.line,\n offset:\n typeof this.source.end.offset === 'number'\n ? // `source.end.offset` is exclusive, so we don't need to add 1\n this.source.end.offset\n : // Since line/column in this.source.end is inclusive,\n // the `sourceOffset(... , this.source.end)` returns an inclusive offset.\n // So, we add 1 to convert it to exclusive.\n sourceOffset(inputString, this.source.end) + 1\n }\n : {\n column: start.column + 1,\n line: start.line,\n offset: start.offset + 1\n }\n\n if (opts.word) {\n let stringRepresentation = inputString.slice(\n sourceOffset(inputString, this.source.start),\n sourceOffset(inputString, this.source.end)\n )\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index)\n end = this.positionInside(index + opts.word.length)\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line,\n offset: sourceOffset(inputString, opts.start)\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line,\n offset: sourceOffset(inputString, opts.end)\n }\n } else if (typeof opts.endIndex === 'number') {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = {\n column: start.column + 1,\n line: start.line,\n offset: start.offset + 1\n }\n }\n\n return { end, start }\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n if (value == null) continue\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n warn(result, text, opts = {}) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n","'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n","'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n","'use strict'\n\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Node = require('./node')\nlet { isClean, my } = require('./symbols')\n\nlet AtRule, parse, Root, Rule\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markTreeDirty(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markTreeDirty(i)\n }\n }\n}\n\nclass Container extends Node {\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(\n add,\n this.proxyOf.nodes[existIndex],\n type\n ).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (typeof nodes === 'undefined') {\n nodes = []\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector || nodes.selectors) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markTreeDirty(i)\n\n if (!i.raws) i.raws = {}\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n","'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n","// This alphabet uses `A-Za-z0-9_-` symbols.\n// The order of characters is optimized for better gzip and brotli compression.\n// References to the same file (works both for gzip and brotli):\n// `'use`, `andom`, and `rict'`\n// References to the brotli default dictionary:\n// `-26T`, `1983`, `40px`, `75px`, `bush`, `jack`, `mind`, `very`, and `wolf`\nlet urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\n\nlet nanoid = (size = 21) => {\n let id = ''\n // A compact alternative for `for (var i = 0; i < step; i++)`.\n let i = size | 0\n while (i--) {\n // `| 0` is more compact and faster than `Math.floor()`.\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\n\nmodule.exports = { nanoid, customAlphabet }\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\nvar MAX_CACHED_INPUTS = 32;\n\n/**\n * Takes some function `f(input) -> result` and returns a memoized version of\n * `f`.\n *\n * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The\n * memoization is a dumb-simple, linear least-recently-used cache.\n */\nfunction lruMemoize(f) {\n var cache = [];\n\n return function(input) {\n for (var i = 0; i < cache.length; i++) {\n if (cache[i].input === input) {\n var temp = cache[0];\n cache[0] = cache[i];\n cache[i] = temp;\n return cache[0].result;\n }\n }\n\n var result = f(input);\n\n cache.unshift({\n input,\n result,\n });\n\n if (cache.length > MAX_CACHED_INPUTS) {\n cache.pop();\n }\n\n return result;\n };\n}\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '<dir>/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nvar normalize = lruMemoize(function normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n // Split the path into parts between `/` characters. This is much faster than\n // using `.split(/\\/+/g)`.\n var parts = [];\n var start = 0;\n var i = 0;\n while (true) {\n start = i;\n i = path.indexOf(\"/\", start);\n if (i === -1) {\n parts.push(path.slice(start));\n break;\n } else {\n parts.push(path.slice(start, i));\n while (i < path.length && path[i] === \"/\") {\n i++;\n }\n }\n }\n\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n});\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\nfunction compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) {\n var cmp\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._ignoreInvalidMapping = util.getArg(aArgs, 'ignoreInvalidMapping', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, {\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n }));\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n if (this._validateMapping(generated, original, source, name) === false) {\n return;\n }\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n var message = 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n\n if (this._ignoreInvalidMapping) {\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message);\n }\n return false;\n } else {\n throw new Error(message);\n }\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n var message = 'Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n });\n\n if (this._ignoreInvalidMapping) {\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message);\n }\n return false;\n } else {\n throw new Error(message)\n }\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\nfunction SortTemplate(comparator) {\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot, false) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n return doQuickSort;\n}\n\nfunction cloneSort(comparator) {\n let template = SortTemplate.toString();\n let templateFn = new Function(`return ${template}`)();\n return templateFn(comparator);\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\n\nlet sortCache = new WeakMap();\nexports.quickSort = function (ary, comparator, start = 0) {\n let doQuickSort = sortCache.get(comparator);\n if (doQuickSort === void 0) {\n doQuickSort = cloneSort(comparator);\n sortCache.set(comparator, doQuickSort);\n }\n doQuickSort(ary, comparator, start, ary.length - 1);\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n var boundCallback = aCallback.bind(context);\n var names = this._names;\n var sources = this._sources;\n var sourceMapURL = this._sourceMapURL;\n\n for (var i = 0, n = mappings.length; i < n; i++) {\n var mapping = mappings[i];\n var source = mapping.source === null ? null : sources.at(mapping.source);\n if(source !== null) {\n source = util.computeSourceURL(sourceRoot, source, sourceMapURL);\n }\n boundCallback({\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : names.at(mapping.name)\n });\n }\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\n\nconst compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine;\nfunction sortGenerated(array, start) {\n let l = array.length;\n let n = array.length - start;\n if (n <= 1) {\n return;\n } else if (n == 2) {\n let a = array[start];\n let b = array[start + 1];\n if (compareGenerated(a, b) > 0) {\n array[start] = b;\n array[start + 1] = a;\n }\n } else if (n < 20) {\n for (let i = start; i < l; i++) {\n for (let j = i; j > start; j--) {\n let a = array[j - 1];\n let b = array[j];\n if (compareGenerated(a, b) <= 0) {\n break;\n }\n array[j - 1] = b;\n array[j] = a;\n }\n }\n } else {\n quickSort(array, compareGenerated, start);\n }\n}\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n let subarrayStart = 0;\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n\n sortGenerated(generatedMappings, subarrayStart);\n subarrayStart = generatedMappings.length;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n let currentSource = mapping.source;\n while (originalMappings.length <= currentSource) {\n originalMappings.push(null);\n }\n if (originalMappings[currentSource] === null) {\n originalMappings[currentSource] = [];\n }\n originalMappings[currentSource].push(mapping);\n }\n }\n }\n\n sortGenerated(generatedMappings, subarrayStart);\n this.__generatedMappings = generatedMappings;\n\n for (var i = 0; i < originalMappings.length; i++) {\n if (originalMappings[i] != null) {\n quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource);\n }\n }\n this.__originalMappings = [].concat(...originalMappings);\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content || content === '') {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n if(source !== null) {\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n }\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n","'use strict'\n\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n let uriMatch = text.match(charsetUri) || text.match(uri)\n if (uriMatch) {\n return decodeURIComponent(text.substr(uriMatch[0].length))\n }\n\n let baseUriMatch = text.match(baseCharsetUri) || text.match(baseUri)\n if (baseUriMatch) {\n return fromBase64(text.substr(baseUriMatch[0].length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/g)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n","'use strict'\n\nlet { nanoid } = require('nanoid/non-secure')\nlet { isAbsolute, resolve } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\nlet terminalHighlight = require('./terminal-highlight')\n\nlet lineToIndexCache = Symbol('lineToIndexCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nfunction getLineToIndex(input) {\n if (input[lineToIndexCache]) return input[lineToIndexCache]\n let lines = input.css.split('\\n')\n let lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n input[lineToIndexCache] = lineToIndex\n return lineToIndex\n}\n\nclass Input {\n get from() {\n return this.file || this.id\n }\n\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n this.document = this.css\n if (opts.document) this.document = opts.document.toString()\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = '<input css ' + nanoid(6) + '>'\n }\n if (this.map) this.map.file = this.from\n }\n\n error(message, line, column, opts = {}) {\n let endColumn, endLine, endOffset, offset, result\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n offset = start.offset\n let pos = this.fromOffset(offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n offset = this.fromLineAndColumn(line, column)\n }\n if (typeof end.offset === 'number') {\n endOffset = end.offset\n let pos = this.fromOffset(endOffset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n endOffset = this.fromLineAndColumn(end.line, end.column)\n }\n } else if (!column) {\n offset = line\n let pos = this.fromOffset(offset)\n line = pos.line\n column = pos.col\n } else {\n offset = this.fromLineAndColumn(line, column)\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { column: origin.column, line: origin.line },\n origin.endLine === undefined\n ? origin.column\n : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { column, line },\n endLine === undefined ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { column, endColumn, endLine, endOffset, line, offset, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n fromLineAndColumn(line, column) {\n let lineToIndex = getLineToIndex(this)\n let index = lineToIndex[line - 1]\n return index + column - 1\n }\n\n fromOffset(offset) {\n let lineToIndex = getLineToIndex(this)\n let lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n }\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ column, line })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n","'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n","'use strict'\n\nlet list = {\n comma(string) {\n return list.split(string, [','], true)\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n }\n}\n\nmodule.exports = list\nlist.default = list\n","'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Input = require('./input')\nlet PreviousMap = require('./previous-map')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n","'use strict'\n\nlet { dirname, relative, resolve, sep } = require('path')\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.originalCSS = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n\n this.memoizedFileURLs = new Map()\n this.memoizedPaths = new Map()\n this.memoizedURLs = new Map()\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = null\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.startsWith('# sourceMappingURL=')) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n let startIndex\n while ((startIndex = this.css.lastIndexOf('/*#')) !== -1) {\n let endIndex = this.css.indexOf('*/', startIndex + 3)\n if (endIndex === -1) break\n while (startIndex > 0 && this.css[startIndex - 1] === '\\n') {\n startIndex--\n }\n this.css = this.css.slice(0, startIndex) + this.css.slice(endIndex + 2)\n }\n }\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n })\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n\n let line = 1\n let column = 1\n\n let noSource = '<no source>'\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: ''\n }\n\n let last, lines\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n path(file) {\n if (this.mapOpts.absolute) return file\n if (file.charCodeAt(0) === 60 /* `<` */) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n let cached = this.memoizedPaths.get(file)\n if (cached) return cached\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n let path = relative(from, file)\n this.memoizedPaths.set(file, path)\n\n return path\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.originalCSS, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : '<no source>'\n this.map.setSourceContent(from, this.css)\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path)\n if (cached) return cached\n\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString()\n this.memoizedFileURLs.set(path, fileURL)\n\n return fileURL\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n toUrl(path) {\n let cached = this.memoizedURLs.get(path)\n if (cached) return cached\n\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n this.memoizedURLs.set(path, url)\n\n return url\n }\n}\n\nmodule.exports = MapGenerator\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Declaration = require('./declaration')\nlet Root = require('./root')\nlet Rule = require('./rule')\nlet tokenizer = require('./tokenize')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n\n this.createTokenizer()\n this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n node.source.end.offset++\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n node.source.end.offset++\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n\n colon(tokens) {\n let brackets = 0\n let prev, token, type\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n\n let text = token[1].slice(2, -2)\n if (!text.trim()) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n node.source.end.offset++\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().startsWith('!') && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().startsWith('!')) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current.source.end.offset++\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.root.source.end = this.getPosition(this.tokenizer.position())\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n prev.source.end = this.getPosition(token[2])\n prev.source.end.offset += prev.raws.ownSemicolon.length\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n column: pos.col,\n line: pos.line,\n offset\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n input: this.input,\n start: this.getPosition(offset)\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { raw, value }\n }\n node[prop] = value\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n // Errors\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word ' + tokens[0][1],\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n}\n\nmodule.exports = Parser\n","'use strict'\n\nlet Container = require('./container')\nlet Input = require('./input')\nlet Parser = require('./parser')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n","'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n","'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n get content() {\n return this.css\n }\n\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = ''\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n","/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n","'use strict'\n\nlet Container = require('./container')\nlet Document = require('./document')\nlet MapGenerator = require('./map-generator')\nlet parse = require('./parse')\nlet Result = require('./result')\nlet Root = require('./root')\nlet stringify = require('./stringify')\nlet { isClean, my } = require('./symbols')\nlet warnOnce = require('./warn-once')\n\nconst TYPE_TO_CLASS_NAME = {\n atrule: 'AtRule',\n comment: 'Comment',\n decl: 'Declaration',\n document: 'Document',\n root: 'Root',\n rule: 'Rule'\n}\n\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n}\n\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node,\n visitorIndex: 0,\n visitors: []\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n get content() {\n return this.stringify().content\n }\n\n get css() {\n return this.stringify().css\n }\n\n get map() {\n return this.stringify().map\n }\n\n get messages() {\n return this.sync().messages\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n return this.sync().root\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, postcss, result: this.result }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this.css\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n warnings() {\n return this.sync().warnings()\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n","'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet parse = require('./parse')\nconst Result = require('./result')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\n\nclass NoWorkResult {\n get content() {\n return this.result.css\n }\n\n get css() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get messages() {\n return []\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n\n let str = stringify\n this.result = new Result(this._processor, undefined, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, undefined, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n } else {\n map.clearAnnotation()\n this.result.css = map.css\n }\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this._css\n }\n\n warnings() {\n return []\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n","'use strict'\n\nlet Document = require('./document')\nlet LazyResult = require('./lazy-result')\nlet NoWorkResult = require('./no-work-result')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.5.8'\n this.plugins = this.normalize(plugins)\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n\n process(css, opts = {}) {\n if (\n !this.plugins.length &&\n !opts.parser &&\n !opts.stringifier &&\n !opts.syntax\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n","'use strict'\n\nlet AtRule = require('./at-rule')\nlet Comment = require('./comment')\nlet Container = require('./container')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet Document = require('./document')\nlet fromJSON = require('./fromJSON')\nlet Input = require('./input')\nlet LazyResult = require('./lazy-result')\nlet list = require('./list')\nlet Node = require('./node')\nlet parse = require('./parse')\nlet Processor = require('./processor')\nlet Result = require('./result.js')\nlet Root = require('./root')\nlet Rule = require('./rule')\nlet stringify = require('./stringify')\nlet Warning = require('./warning')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n","import postcss from './postcss.js'\n\nexport default postcss\n\nexport const stringify = postcss.stringify\nexport const fromJSON = postcss.fromJSON\nexport const plugin = postcss.plugin\nexport const parse = postcss.parse\nexport const list = postcss.list\n\nexport const document = postcss.document\nexport const comment = postcss.comment\nexport const atRule = postcss.atRule\nexport const rule = postcss.rule\nexport const decl = postcss.decl\nexport const root = postcss.root\n\nexport const CssSyntaxError = postcss.CssSyntaxError\nexport const Declaration = postcss.Declaration\nexport const Container = postcss.Container\nexport const Processor = postcss.Processor\nexport const Document = postcss.Document\nexport const Comment = postcss.Comment\nexport const Warning = postcss.Warning\nexport const AtRule = postcss.AtRule\nexport const Result = postcss.Result\nexport const Input = postcss.Input\nexport const Rule = postcss.Rule\nexport const Root = postcss.Root\nexport const Node = postcss.Node\n","import { readFileSync, statSync } from \"node:fs\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { STYLES } from \"./catalog/styles\";\n\ntype StyleName = (typeof STYLES)[number][\"name\"];\n\ntype CachedCss = {\n mtimeMs: number;\n value: string;\n};\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\nconst styleCssCache = new Map<StyleName, CachedCss>();\n\nexport function getStyleFilepath(style: StyleName) {\n return path.resolve(__dirname, \"styles\", `style-${style}.css`);\n}\n\nfunction unwrapScopedCss(cssText: string, style: StyleName) {\n const scope = `.style-${style}`;\n const start = cssText.indexOf(scope);\n const braceStart = cssText.indexOf(\"{\", start);\n const braceEnd = cssText.lastIndexOf(\"}\");\n\n if (start === -1 || braceStart === -1 || braceEnd === -1) {\n return cssText.trim();\n }\n\n return cssText.slice(braceStart + 1, braceEnd).trim();\n}\n\nexport function getStyleCss(style: StyleName) {\n const filepath = getStyleFilepath(style);\n const mtimeMs = statSync(filepath).mtimeMs;\n const existing = styleCssCache.get(style);\n\n if (existing?.mtimeMs === mtimeMs) {\n return existing.value;\n }\n\n const css = readFileSync(filepath, \"utf8\");\n styleCssCache.set(style, { mtimeMs, value: css });\n return css;\n}\n\nexport function getScopedStyleCss(\n style: StyleName,\n scopeClass = `.style-${style}`,\n) {\n return getStyleCss(style).replace(`.style-${style}`, scopeClass).trim();\n}\n\nexport function getGlobalStyleCss(style: StyleName) {\n return unwrapScopedCss(getStyleCss(style), style);\n}\n","import postcss, { type AtRule, type ChildNode, type Declaration, type Rule } from \"postcss\";\nimport { STYLES } from \"./catalog/styles\";\nimport type { DesignSystemConfig } from \"./config\";\nimport {\n compiledGlobalStyleCssByStyle,\n compiledStyleCssByStyle,\n} from \"./generated/compiled-style-css.js\";\nimport { getGlobalStyleCss } from \"./style-css-source\";\nexport {\n getGlobalStyleCss,\n getScopedStyleCss,\n getStyleCss,\n} from \"./style-css-source\";\n\nexport interface RegistryCssObject {\n [key: string]: string | RegistryCssObject;\n}\n\nconst registryCssCache = new Map<string, RegistryCssObject>();\n\nfunction nodeToObject(node: ChildNode): [string, string | RegistryCssObject] | null {\n if (node.type === \"rule\") {\n const rule = node as Rule;\n const value: RegistryCssObject = {};\n\n rule.nodes?.forEach((child) => {\n const entry = nodeToObject(child);\n if (entry) {\n value[entry[0]] = entry[1];\n }\n });\n\n return [rule.selector, value];\n }\n\n if (node.type === \"atrule\") {\n const atRule = node as AtRule;\n const key = `@${atRule.name}${atRule.params ? ` ${atRule.params}` : \"\"}`;\n\n if (!atRule.nodes?.length) {\n return [key, {}];\n }\n\n const value: RegistryCssObject = {};\n atRule.nodes.forEach((child) => {\n const entry = nodeToObject(child);\n if (entry) {\n value[entry[0]] = entry[1];\n }\n });\n\n return [key, value];\n }\n\n if (node.type === \"decl\") {\n const declaration = node as Declaration;\n return [declaration.prop, declaration.value];\n }\n\n return null;\n}\n\nexport async function getCompiledStyleCss(style: DesignSystemConfig[\"style\"]) {\n return compiledStyleCssByStyle[style];\n}\n\nexport async function getCompiledGlobalStyleCss(\n style: DesignSystemConfig[\"style\"],\n) {\n return compiledGlobalStyleCssByStyle[style];\n}\n\nexport function getRegistryStyleCss(style: DesignSystemConfig[\"style\"]) {\n const cached = registryCssCache.get(style);\n if (cached) {\n return cached;\n }\n\n const root = postcss.parse(getGlobalStyleCss(style));\n const result: RegistryCssObject = {};\n\n root.nodes.forEach((node) => {\n const entry = nodeToObject(node);\n if (entry) {\n result[entry[0]] = entry[1];\n }\n });\n\n registryCssCache.set(style, result);\n return result;\n}\n\nexport const STYLE_IDS = STYLES.map((style) => style.id);\n","const DEFAULT_UI_BASE_URL = \"https://ui.bejamas.com\";\nconst DEFAULT_REGISTRY_URL = `${DEFAULT_UI_BASE_URL}/r`;\n\nfunction normalizeUrl(url: string) {\n return url.trim().replace(/\\/+$/, \"\");\n}\n\nfunction deriveUiBaseUrlFromRegistryUrl(registryUrl: string) {\n const normalizedRegistryUrl = normalizeUrl(registryUrl);\n return normalizedRegistryUrl.endsWith(\"/r\")\n ? normalizedRegistryUrl.slice(0, -2)\n : DEFAULT_UI_BASE_URL;\n}\n\nexport function resolveUiBaseUrl(env: NodeJS.ProcessEnv = process.env) {\n if (env.BEJAMAS_UI_URL?.trim()) {\n return normalizeUrl(env.BEJAMAS_UI_URL);\n }\n\n if (env.REGISTRY_URL?.trim()) {\n return deriveUiBaseUrlFromRegistryUrl(env.REGISTRY_URL);\n }\n\n return DEFAULT_UI_BASE_URL;\n}\n\nexport function resolveRegistryUrl(env: NodeJS.ProcessEnv = process.env) {\n if (env.REGISTRY_URL?.trim()) {\n return normalizeUrl(env.REGISTRY_URL);\n }\n\n if (env.BEJAMAS_UI_URL?.trim()) {\n return `${normalizeUrl(env.BEJAMAS_UI_URL)}/r`;\n }\n\n return DEFAULT_REGISTRY_URL;\n}\n\nexport function buildUiUrl(\n pathname: string,\n env: NodeJS.ProcessEnv = process.env,\n) {\n const normalizedPathname = pathname.startsWith(\"/\") ? pathname : `/${pathname}`;\n return `${resolveUiBaseUrl(env)}${normalizedPathname}`;\n}\n\nexport { DEFAULT_REGISTRY_URL, DEFAULT_UI_BASE_URL };\n","import { resolveRegistryUrl } from \"@/src/utils/ui-base-url\";\nimport { registryConfigSchema } from \"@/src/schema\";\nimport { z } from \"zod\";\n\nexport const REGISTRY_URL = resolveRegistryUrl();\n\nexport const FALLBACK_STYLE = \"bejamas-juno\";\n\nexport const BASE_COLORS = [\n {\n name: \"neutral\",\n label: \"Neutral\",\n },\n {\n name: \"gray\",\n label: \"Gray\",\n },\n {\n name: \"zinc\",\n label: \"Zinc\",\n },\n {\n name: \"stone\",\n label: \"Stone\",\n },\n {\n name: \"slate\",\n label: \"Slate\",\n },\n] as const;\n\n// Built-in registries that are always available and cannot be overridden\nexport const BUILTIN_REGISTRIES: z.infer<typeof registryConfigSchema> = {\n \"@bejamas\": `${REGISTRY_URL}/{name}.json`,\n};\n\nexport const BUILTIN_MODULES = new Set([\n [\n // Node.js built-in modules\n // From https://github.com/sindresorhus/builtin-modules.\n \"node:assert\",\n \"assert\",\n \"node:assert/strict\",\n \"assert/strict\",\n \"node:async_hooks\",\n \"async_hooks\",\n \"node:buffer\",\n \"buffer\",\n \"node:child_process\",\n \"child_process\",\n \"node:cluster\",\n \"cluster\",\n \"node:console\",\n \"console\",\n \"node:constants\",\n \"constants\",\n \"node:crypto\",\n \"crypto\",\n \"node:dgram\",\n \"dgram\",\n \"node:diagnostics_channel\",\n \"diagnostics_channel\",\n \"node:dns\",\n \"dns\",\n \"node:dns/promises\",\n \"dns/promises\",\n \"node:domain\",\n \"domain\",\n \"node:events\",\n \"events\",\n \"node:fs\",\n \"fs\",\n \"node:fs/promises\",\n \"fs/promises\",\n \"node:http\",\n \"http\",\n \"node:http2\",\n \"http2\",\n \"node:https\",\n \"https\",\n \"node:inspector\",\n \"inspector\",\n \"node:inspector/promises\",\n \"inspector/promises\",\n \"node:module\",\n \"module\",\n \"node:net\",\n \"net\",\n \"node:os\",\n \"os\",\n \"node:path\",\n \"path\",\n \"node:path/posix\",\n \"path/posix\",\n \"node:path/win32\",\n \"path/win32\",\n \"node:perf_hooks\",\n \"perf_hooks\",\n \"node:process\",\n \"process\",\n \"node:querystring\",\n \"querystring\",\n \"node:quic\",\n \"node:readline\",\n \"readline\",\n \"node:readline/promises\",\n \"readline/promises\",\n \"node:repl\",\n \"repl\",\n \"node:sea\",\n \"node:sqlite\",\n \"node:stream\",\n \"stream\",\n \"node:stream/consumers\",\n \"stream/consumers\",\n \"node:stream/promises\",\n \"stream/promises\",\n \"node:stream/web\",\n \"stream/web\",\n \"node:string_decoder\",\n \"string_decoder\",\n \"node:test\",\n \"node:test/reporters\",\n \"node:timers\",\n \"timers\",\n \"node:timers/promises\",\n \"timers/promises\",\n \"node:tls\",\n \"tls\",\n \"node:trace_events\",\n \"trace_events\",\n \"node:tty\",\n \"tty\",\n \"node:url\",\n \"url\",\n \"node:util\",\n \"util\",\n \"node:util/types\",\n \"util/types\",\n \"node:v8\",\n \"v8\",\n \"node:vm\",\n \"vm\",\n \"node:wasi\",\n \"wasi\",\n \"node:worker_threads\",\n \"worker_threads\",\n \"node:zlib\",\n \"zlib\",\n\n // Bun built-in modules.\n \"bun\",\n \"bun:test\",\n \"bun:sqlite\",\n \"bun:ffi\",\n \"bun:jsc\",\n \"bun:internal\",\n ],\n]);\n\nexport const DEPRECATED_COMPONENTS = [\n {\n name: \"toast\",\n deprecatedBy: \"sonner\",\n message:\n \"The toast component is deprecated. Use the sonner component instead.\",\n },\n {\n name: \"toaster\",\n deprecatedBy: \"sonner\",\n message:\n \"The toaster component is deprecated. Use the sonner component instead.\",\n },\n];\n","import {\n PRESET_ICON_LIBRARIES,\n PRESET_MENU_ACCENTS,\n PRESET_MENU_COLORS,\n STYLE_IDS,\n} from \"@bejamas/create-config/server\";\nimport { z } from \"zod\";\n\nexport const BEJAMAS_COMPONENTS_SCHEMA_URL =\n \"https://ui.bejamas.com/schema.json\";\nexport const DEPRECATED_CONFIG_KEYS = [\"rsc\", \"tsx\"] as const;\n\nconst PUBLIC_STYLE_IDS = STYLE_IDS as [string, ...string[]];\nconst PUBLIC_BASE_COLOR_VALUES = [\n \"neutral\",\n \"gray\",\n \"zinc\",\n \"stone\",\n \"slate\",\n \"mauve\",\n \"olive\",\n \"mist\",\n \"taupe\",\n] as const;\n\nconst registryUrlSchema = z.union([\n z.string().refine((value) => value.includes(\"{name}\"), {\n message: \"Registry URL must include {name} placeholder\",\n }),\n z.object({\n url: z.string().refine((value) => value.includes(\"{name}\"), {\n message: \"Registry URL must include {name} placeholder\",\n }),\n params: z.record(z.string(), z.string()).optional(),\n headers: z.record(z.string(), z.string()).optional(),\n }),\n]);\n\nexport const registryConfigSchema = z.record(\n z.string().refine((value) => value.startsWith(\"@\"), {\n message: \"Registry names must start with @ (e.g., @v0, @acme)\",\n }),\n registryUrlSchema,\n);\n\nconst configTailwindSchema = z.object({\n config: z.string().optional(),\n css: z.string(),\n baseColor: z.string(),\n cssVariables: z.boolean().default(true),\n prefix: z.string().default(\"\").optional(),\n});\n\nconst publicConfigTailwindSchema = z.object({\n config: z.string().optional(),\n css: z.string(),\n baseColor: z.enum(PUBLIC_BASE_COLOR_VALUES),\n cssVariables: z.boolean().default(true),\n prefix: z.string().default(\"\").optional(),\n});\n\nconst configAliasesSchema = z.object({\n components: z.string(),\n utils: z.string(),\n ui: z.string().optional(),\n lib: z.string().optional(),\n hooks: z.string().optional(),\n docs: z.string().optional(),\n});\n\nexport const publicConfigSchema = z\n .object({\n $schema: z.literal(BEJAMAS_COMPONENTS_SCHEMA_URL).optional(),\n style: z.enum(PUBLIC_STYLE_IDS),\n tailwind: publicConfigTailwindSchema,\n iconLibrary: z.enum(PRESET_ICON_LIBRARIES).optional(),\n rtl: z.boolean().default(false).optional(),\n menuColor: z.enum(PRESET_MENU_COLORS).default(\"default\").optional(),\n menuAccent: z.enum(PRESET_MENU_ACCENTS).default(\"subtle\").optional(),\n aliases: configAliasesSchema,\n registries: registryConfigSchema.optional(),\n })\n .strict();\n\nexport const rawConfigSchema = z\n .object({\n $schema: z.string().optional(),\n style: z.string(),\n tailwind: configTailwindSchema,\n iconLibrary: z.string().optional(),\n rtl: z.coerce.boolean().default(false).optional(),\n menuColor: z.enum(PRESET_MENU_COLORS).default(\"default\").optional(),\n menuAccent: z.enum(PRESET_MENU_ACCENTS).default(\"subtle\").optional(),\n aliases: configAliasesSchema,\n registries: registryConfigSchema.optional(),\n })\n .strict();\n\nconst compatibleRawConfigSchema = rawConfigSchema\n .extend({\n rsc: z.coerce.boolean().optional(),\n tsx: z.coerce.boolean().optional(),\n })\n .strict();\n\nexport interface RawConfigCompatibilityResult {\n config: z.infer<typeof rawConfigSchema>;\n deprecatedKeys: string[];\n}\n\nexport function parseRawConfigWithCompatibility(\n input: unknown,\n): RawConfigCompatibilityResult {\n const parsed = compatibleRawConfigSchema.parse(input);\n const deprecatedKeys = DEPRECATED_CONFIG_KEYS.filter(\n (key) => parsed[key] !== undefined,\n );\n const { rsc: _rsc, tsx: _tsx, ...normalized } = parsed;\n\n return {\n config: rawConfigSchema.parse(normalized),\n deprecatedKeys,\n };\n}\n\nconst partialRawConfigSchema = rawConfigSchema.partial().extend({\n tailwind: rawConfigSchema.shape.tailwind.partial().optional(),\n aliases: rawConfigSchema.shape.aliases.partial().optional(),\n registries: registryConfigSchema.optional(),\n});\n\nexport const configSchema = rawConfigSchema.extend({\n resolvedPaths: z.object({\n cwd: z.string(),\n tailwindConfig: z.string(),\n tailwindCss: z.string(),\n utils: z.string(),\n components: z.string(),\n lib: z.string(),\n hooks: z.string(),\n ui: z.string(),\n }),\n});\n\nexport const workspaceConfigSchema = z.record(z.string(), configSchema);\n\nexport function createPublicConfigJsonSchema() {\n return {\n ...z.toJSONSchema(publicConfigSchema),\n $id: BEJAMAS_COMPONENTS_SCHEMA_URL,\n title: \"Bejamas Components Config\",\n description: \"Configuration for Bejamas-managed components.json files.\",\n };\n}\n\nexport const registryItemTypeSchema = z.enum([\n \"registry:lib\",\n \"registry:block\",\n \"registry:component\",\n \"registry:ui\",\n \"registry:hook\",\n \"registry:page\",\n \"registry:file\",\n \"registry:theme\",\n \"registry:style\",\n \"registry:item\",\n \"registry:base\",\n \"registry:font\",\n \"registry:example\",\n \"registry:internal\",\n]);\n\nexport const registryFileSchema = z.discriminatedUnion(\"type\", [\n z.object({\n path: z.string(),\n content: z.string().optional(),\n type: z.enum([\"registry:file\", \"registry:page\"]),\n target: z.string(),\n }),\n z.object({\n path: z.string(),\n content: z.string().optional(),\n type: registryItemTypeSchema.exclude([\"registry:file\", \"registry:page\"]),\n target: z.string().optional(),\n }),\n]);\n\nconst registryTailwindSchema = z.object({\n config: z\n .object({\n content: z.array(z.string()).optional(),\n theme: z.record(z.string(), z.any()).optional(),\n plugins: z.array(z.string()).optional(),\n })\n .optional(),\n});\n\nconst registryCssVarsSchema = z.object({\n theme: z.record(z.string(), z.string()).optional(),\n light: z.record(z.string(), z.string()).optional(),\n dark: z.record(z.string(), z.string()).optional(),\n});\n\nconst registryCssValueSchema: z.ZodType<\n string | string[] | Record<string, unknown>\n> = z.lazy(() =>\n z.union([\n z.string(),\n z.array(z.union([z.string(), z.record(z.string(), z.string())])),\n z.record(z.string(), registryCssValueSchema),\n ]),\n);\n\nconst registryCssSchema = z.record(z.string(), registryCssValueSchema);\nconst registryEnvVarsSchema = z.record(z.string(), z.string());\n\nconst registryFontSchema = z.object({\n family: z.string(),\n provider: z.literal(\"google\"),\n import: z.string(),\n variable: z.string(),\n weight: z.array(z.string()).optional(),\n subsets: z.array(z.string()).optional(),\n selector: z.string().optional(),\n});\n\nconst registryBaseItemSchema = z.object({\n $schema: z.string().optional(),\n extends: z.string().optional(),\n name: z.string(),\n title: z.string().optional(),\n author: z.string().min(2).optional(),\n description: z.string().optional(),\n dependencies: z.array(z.string()).optional(),\n devDependencies: z.array(z.string()).optional(),\n registryDependencies: z.array(z.string()).optional(),\n files: z.array(registryFileSchema).optional(),\n tailwind: registryTailwindSchema.optional(),\n cssVars: registryCssVarsSchema.optional(),\n css: registryCssSchema.optional(),\n envVars: registryEnvVarsSchema.optional(),\n meta: z.record(z.string(), z.any()).optional(),\n docs: z.string().optional(),\n categories: z.array(z.string()).optional(),\n});\n\nexport const registryItemSchema = z.discriminatedUnion(\"type\", [\n registryBaseItemSchema.extend({\n type: z.literal(\"registry:base\"),\n config: partialRawConfigSchema.optional(),\n }),\n registryBaseItemSchema.extend({\n type: z.literal(\"registry:font\"),\n font: registryFontSchema,\n }),\n registryBaseItemSchema.extend({\n type: registryItemTypeSchema.exclude([\"registry:base\", \"registry:font\"]),\n }),\n]);\n\nexport const registrySchema = z.object({\n name: z.string(),\n homepage: z.string(),\n items: z.array(registryItemSchema),\n});\n\nexport const registryIndexSchema = z.array(registryItemSchema);\n\nexport const stylesSchema = z.array(\n z.object({\n name: z.string(),\n label: z.string(),\n }),\n);\n\nexport const iconsSchema = z.record(\n z.string(),\n z.record(z.string(), z.string()),\n);\n\nexport const registryBaseColorSchema = z.object({\n inlineColors: z.object({\n light: z.record(z.string(), z.string()),\n dark: z.record(z.string(), z.string()),\n }),\n cssVars: registryCssVarsSchema,\n cssVarsV4: registryCssVarsSchema.optional(),\n inlineColorsTemplate: z.string(),\n cssVarsTemplate: z.string(),\n});\n\nexport const registriesIndexSchema = z.object({\n pagination: z.object({\n total: z.number(),\n offset: z.number(),\n limit: z.number(),\n hasMore: z.boolean(),\n }),\n items: z.array(\n z.object({\n name: z.string(),\n type: z.string().optional(),\n description: z.string().optional(),\n registry: z.string(),\n addCommandArgument: z.string(),\n }),\n ),\n});\n","import { cyan, green, red, yellow } from \"kleur/colors\";\n\nexport const highlighter = {\n error: red,\n warn: yellow,\n info: cyan,\n success: green,\n};\n","import { highlighter } from \"@/src/utils/highlighter\";\n\nexport const logger = {\n error(...args: unknown[]) {\n console.log(highlighter.error(args.join(\" \")));\n },\n warn(...args: unknown[]) {\n console.log(highlighter.warn(args.join(\" \")));\n },\n info(...args: unknown[]) {\n console.log(highlighter.info(args.join(\" \")));\n },\n success(...args: unknown[]) {\n console.log(highlighter.success(args.join(\" \")));\n },\n log(...args: unknown[]) {\n console.log(args.join(\" \"));\n },\n break() {\n console.log(\"\");\n },\n};\n","import path from \"path\";\nimport { BEJAMAS_COMPONENTS_SCHEMA_URL, rawConfigSchema } from \"@/src/schema\";\nimport { Config, getConfig, resolveConfigPaths } from \"@/src/utils/get-config\";\nimport { getPackageInfo } from \"@/src/utils/get-package-info\";\nimport fg from \"fast-glob\";\nimport fs from \"fs-extra\";\nimport { loadConfig } from \"tsconfig-paths\";\nimport { z } from \"zod\";\n\nexport type TailwindVersion = \"v3\" | \"v4\" | null;\n\nexport type ProjectInfo = {\n isAstro: boolean;\n tailwindConfigFile: string | null;\n tailwindCssFile: string | null;\n tailwindVersion: TailwindVersion;\n aliasPrefix: string | null;\n};\n\nconst PROJECT_SHARED_IGNORE = [\n \"**/node_modules/**\",\n \".astro\",\n \"public\",\n \"dist\",\n \"build\",\n];\n\nconst TS_CONFIG_SCHEMA = z.object({\n compilerOptions: z.object({\n paths: z.record(z.string(), z.string().or(z.array(z.string()))),\n }),\n});\n\nexport async function getProjectInfo(cwd: string): Promise<ProjectInfo | null> {\n const [\n configFiles,\n tailwindConfigFile,\n tailwindCssFile,\n tailwindVersion,\n aliasPrefix,\n packageJson,\n ] = await Promise.all([\n fg.glob(\n \"**/{next,vite,astro,app}.config.*|gatsby-config.*|composer.json|react-router.config.*\",\n {\n cwd,\n deep: 3,\n ignore: PROJECT_SHARED_IGNORE,\n },\n ),\n getTailwindConfigFile(cwd),\n getTailwindCssFile(cwd),\n getTailwindVersion(cwd),\n getTsConfigAliasPrefix(cwd),\n getPackageInfo(cwd, false),\n ]);\n\n const type: ProjectInfo = {\n isAstro: false,\n tailwindConfigFile,\n tailwindCssFile,\n tailwindVersion,\n aliasPrefix,\n };\n\n // Astro.\n if (configFiles.find((file) => file.startsWith(\"astro.config.\"))?.length) {\n type.isAstro = true;\n return type;\n }\n\n return type;\n}\n\nexport async function getTailwindVersion(\n cwd: string,\n): Promise<ProjectInfo[\"tailwindVersion\"]> {\n const [packageInfo, config] = await Promise.all([\n getPackageInfo(cwd, false),\n getConfig(cwd),\n ]);\n\n // If the config file is empty, we can assume that it's a v4 project.\n if (config?.tailwind?.config === \"\") {\n return \"v4\";\n }\n\n if (\n !packageInfo?.dependencies?.tailwindcss &&\n !packageInfo?.devDependencies?.tailwindcss\n ) {\n return null;\n }\n\n if (\n /^(?:\\^|~)?3(?:\\.\\d+)*(?:-.*)?$/.test(\n packageInfo?.dependencies?.tailwindcss ||\n packageInfo?.devDependencies?.tailwindcss ||\n \"\",\n )\n ) {\n return \"v3\";\n }\n\n return \"v4\";\n}\n\nexport async function getTailwindCssFile(cwd: string) {\n const [files, tailwindVersion] = await Promise.all([\n fg.glob([\"**/*.css\", \"**/*.scss\"], {\n cwd,\n deep: 5,\n ignore: PROJECT_SHARED_IGNORE,\n }),\n getTailwindVersion(cwd),\n ]);\n\n if (!files.length) {\n return null;\n }\n\n const needle =\n tailwindVersion === \"v4\" ? `@import \"tailwindcss\"` : \"@tailwind base\";\n for (const file of files) {\n const contents = await fs.readFile(path.resolve(cwd, file), \"utf8\");\n if (\n contents.includes(`@import \"tailwindcss\"`) ||\n contents.includes(`@import 'tailwindcss'`) ||\n contents.includes(`@tailwind base`)\n ) {\n return file;\n }\n }\n\n return null;\n}\n\nexport async function getTailwindConfigFile(cwd: string) {\n const files = await fg.glob(\"tailwind.config.*\", {\n cwd,\n deep: 3,\n ignore: PROJECT_SHARED_IGNORE,\n });\n\n if (!files.length) {\n return null;\n }\n\n return files[0];\n}\n\nexport async function getTsConfigAliasPrefix(cwd: string) {\n const tsConfig = await loadConfig(cwd);\n\n if (\n tsConfig?.resultType === \"failed\" ||\n !Object.entries(tsConfig?.paths).length\n ) {\n return null;\n }\n\n // This assume that the first alias is the prefix.\n for (const [alias, paths] of Object.entries(tsConfig.paths)) {\n if (\n paths.includes(\"./*\") ||\n paths.includes(\"./src/*\") ||\n paths.includes(\"./app/*\") ||\n paths.includes(\"./resources/js/*\") // Laravel.\n ) {\n return alias.replace(/\\/\\*$/, \"\") ?? null;\n }\n }\n\n // Use the first alias as the prefix.\n return Object.keys(tsConfig?.paths)?.[0].replace(/\\/\\*$/, \"\") ?? null;\n}\n\nexport async function isTypeScriptProject(cwd: string) {\n const files = await fg.glob(\"tsconfig.*\", {\n cwd,\n deep: 1,\n ignore: PROJECT_SHARED_IGNORE,\n });\n\n return files.length > 0;\n}\n\nexport async function getTsConfig(cwd: string) {\n for (const fallback of [\n \"tsconfig.json\",\n \"tsconfig.web.json\",\n \"tsconfig.app.json\",\n ]) {\n const filePath = path.resolve(cwd, fallback);\n if (!(await fs.pathExists(filePath))) {\n continue;\n }\n\n // We can't use fs.readJSON because it doesn't support comments.\n const contents = await fs.readFile(filePath, \"utf8\");\n const cleanedContents = contents.replace(/\\/\\*\\s*\\*\\//g, \"\");\n const result = TS_CONFIG_SCHEMA.safeParse(JSON.parse(cleanedContents));\n\n if (result.error) {\n continue;\n }\n\n return result.data;\n }\n\n return null;\n}\n\nexport async function getProjectConfig(\n cwd: string,\n defaultProjectInfo: ProjectInfo | null = null,\n): Promise<Config | null> {\n // Check for existing component config.\n const [existingConfig, projectInfo] = await Promise.all([\n getConfig(cwd),\n !defaultProjectInfo\n ? getProjectInfo(cwd)\n : Promise.resolve(defaultProjectInfo),\n ]);\n\n if (existingConfig) {\n return existingConfig;\n }\n\n if (\n !projectInfo ||\n !projectInfo.tailwindCssFile ||\n (projectInfo.tailwindVersion === \"v3\" && !projectInfo.tailwindConfigFile)\n ) {\n return null;\n }\n\n const config: z.infer<typeof rawConfigSchema> = {\n $schema: BEJAMAS_COMPONENTS_SCHEMA_URL,\n style: \"bejamas-juno\",\n tailwind: {\n config: projectInfo.tailwindConfigFile ?? \"\",\n baseColor: \"zinc\",\n css: projectInfo.tailwindCssFile,\n cssVariables: true,\n prefix: \"\",\n },\n iconLibrary: \"lucide\",\n aliases: {\n components: `${projectInfo.aliasPrefix}/components`,\n ui: `${projectInfo.aliasPrefix}/components/ui`,\n lib: `${projectInfo.aliasPrefix}/lib`,\n utils: `${projectInfo.aliasPrefix}/lib/utils`,\n },\n };\n\n return await resolveConfigPaths(cwd, config);\n}\n\nexport async function getProjectTailwindVersionFromConfig(config: {\n resolvedPaths: Pick<Config[\"resolvedPaths\"], \"cwd\">;\n}): Promise<TailwindVersion> {\n if (!config.resolvedPaths?.cwd) {\n return \"v3\";\n }\n\n const projectInfo = await getProjectInfo(config.resolvedPaths.cwd);\n\n if (!projectInfo?.tailwindVersion) {\n return null;\n }\n\n return projectInfo.tailwindVersion;\n}\n","import {\n createMatchPath,\n type ConfigLoaderSuccessResult,\n} from \"tsconfig-paths\";\n\nexport async function resolveImport(\n importPath: string,\n config: Pick<ConfigLoaderSuccessResult, \"absoluteBaseUrl\" | \"paths\">,\n) {\n return createMatchPath(config.absoluteBaseUrl, config.paths)(\n importPath,\n undefined,\n () => true,\n [\".ts\", \".tsx\", \".jsx\", \".js\", \".css\"],\n );\n}\n","import path from \"path\";\nimport { BUILTIN_REGISTRIES } from \"@/src/registry/constants\";\nimport {\n BEJAMAS_COMPONENTS_SCHEMA_URL,\n configSchema,\n parseRawConfigWithCompatibility,\n rawConfigSchema,\n workspaceConfigSchema,\n} from \"@/src/schema\";\nimport { getProjectInfo } from \"@/src/utils/get-project-info\";\nimport { highlighter } from \"@/src/utils/highlighter\";\nimport { resolveImport } from \"@/src/utils/resolve-import\";\nimport { cosmiconfig } from \"cosmiconfig\";\nimport fg from \"fast-glob\";\nimport { loadConfig } from \"tsconfig-paths\";\nimport { z } from \"zod\";\n\nexport const DEFAULT_STYLE = \"default\";\nexport const DEFAULT_COMPONENTS = \"@/components\";\nexport const DEFAULT_UTILS = \"@/lib/utils\";\nexport const DEFAULT_TAILWIND_CSS = \"app/globals.css\";\nexport const DEFAULT_TAILWIND_CONFIG = \"tailwind.config.js\";\nexport const DEFAULT_TAILWIND_BASE_COLOR = \"slate\";\n\n// TODO: Figure out if we want to support all cosmiconfig formats.\n// A simple components.json file would be nice.\nexport const explorer = cosmiconfig(\"components\", {\n searchPlaces: [\"components.json\"],\n});\n\nexport type Config = z.infer<typeof configSchema>;\nconst warnedDeprecatedConfigPaths = new Set<string>();\n\nfunction warnDeprecatedConfigKeys(componentPath: string, keys: string[]) {\n if (keys.length === 0 || warnedDeprecatedConfigPaths.has(componentPath)) {\n return;\n }\n\n warnedDeprecatedConfigPaths.add(componentPath);\n process.stderr.write(\n `${highlighter.warn(\n `Deprecated components.json keys in ${componentPath}: ${keys.join(\n \", \",\n )}. Bejamas ignores these keys. Remove them and point $schema to ${BEJAMAS_COMPONENTS_SCHEMA_URL}.`,\n )}\\n`,\n );\n}\n\nexport async function getConfig(cwd: string) {\n const config = await getRawConfig(cwd);\n\n if (!config) {\n return null;\n }\n\n // Set default icon library if not provided.\n if (!config.iconLibrary) {\n config.iconLibrary = config.style?.startsWith(\"new-york\")\n ? \"radix\"\n : \"lucide\";\n }\n\n return await resolveConfigPaths(cwd, config);\n}\n\nexport async function resolveConfigPaths(\n cwd: string,\n config: z.infer<typeof rawConfigSchema>,\n) {\n // Merge built-in registries with user registries\n config.registries = {\n ...BUILTIN_REGISTRIES,\n ...(config.registries || {}),\n };\n\n // Read tsconfig.json.\n const tsConfig = await loadConfig(cwd);\n\n if (tsConfig.resultType === \"failed\") {\n throw new Error(\n `Failed to load tsconfig.json or jsconfig.json. ${tsConfig.message ?? \"\"}`.trim(),\n );\n }\n\n return configSchema.parse({\n ...config,\n resolvedPaths: {\n cwd,\n tailwindConfig: config.tailwind.config\n ? path.resolve(cwd, config.tailwind.config)\n : \"\",\n tailwindCss: path.resolve(cwd, config.tailwind.css),\n utils: await resolveImport(config.aliases[\"utils\"], tsConfig),\n components: await resolveImport(config.aliases[\"components\"], tsConfig),\n ui: config.aliases[\"ui\"]\n ? await resolveImport(config.aliases[\"ui\"], tsConfig)\n : path.resolve(\n (await resolveImport(config.aliases[\"components\"], tsConfig)) ??\n cwd,\n \"ui\",\n ),\n // TODO: Make this configurable.\n // For now, we assume the lib and hooks directories are one level up from the components directory.\n lib: config.aliases[\"lib\"]\n ? await resolveImport(config.aliases[\"lib\"], tsConfig)\n : path.resolve(\n (await resolveImport(config.aliases[\"utils\"], tsConfig)) ?? cwd,\n \"..\",\n ),\n hooks: config.aliases[\"hooks\"]\n ? await resolveImport(config.aliases[\"hooks\"], tsConfig)\n : path.resolve(\n (await resolveImport(config.aliases[\"components\"], tsConfig)) ??\n cwd,\n \"..\",\n \"hooks\",\n ),\n },\n });\n}\n\nexport async function getRawConfig(\n cwd: string,\n): Promise<z.infer<typeof rawConfigSchema> | null> {\n try {\n const configResult = await explorer.search(cwd);\n\n if (!configResult) {\n return null;\n }\n\n const { config, deprecatedKeys } = parseRawConfigWithCompatibility(\n configResult.config,\n );\n warnDeprecatedConfigKeys(configResult.filepath, deprecatedKeys);\n\n // Check if user is trying to override built-in registries\n if (config.registries) {\n for (const registryName of Object.keys(config.registries)) {\n if (registryName in BUILTIN_REGISTRIES) {\n throw new Error(\n `\"${registryName}\" is a built-in registry and cannot be overridden.`,\n );\n }\n }\n }\n\n return config;\n } catch (error) {\n const componentPath = `${cwd}/components.json`;\n if (error instanceof Error && error.message.includes(\"reserved registry\")) {\n throw error;\n }\n throw new Error(\n `Invalid configuration found in ${highlighter.info(componentPath)}.`,\n );\n }\n}\n\n// Note: we can check for -workspace.yaml or \"workspace\" in package.json.\n// Since cwd is not necessarily the root of the project.\n// We'll instead check if ui aliases resolve to a different root.\nexport async function getWorkspaceConfig(config: Config) {\n let resolvedAliases: any = {};\n\n for (const key of Object.keys(config.aliases)) {\n if (!isAliasKey(key, config)) {\n continue;\n }\n\n const resolvedPath = config.resolvedPaths[key];\n const packageRoot = await findPackageRoot(\n config.resolvedPaths.cwd,\n resolvedPath,\n );\n\n if (!packageRoot) {\n resolvedAliases[key] = config;\n continue;\n }\n\n resolvedAliases[key] = await getConfig(packageRoot);\n }\n\n const result = workspaceConfigSchema.safeParse(resolvedAliases);\n if (!result.success) {\n return null;\n }\n\n return result.data;\n}\n\nexport async function findPackageRoot(cwd: string, resolvedPath: string) {\n const commonRoot = findCommonRoot(cwd, resolvedPath);\n const relativePath = path.relative(commonRoot, resolvedPath);\n\n const packageRoots = await fg.glob(\"**/package.json\", {\n cwd: commonRoot,\n deep: 3,\n ignore: [\"**/node_modules/**\", \"**/dist/**\", \"**/build/**\", \"**/public/**\"],\n });\n\n const matchingPackageRoot = packageRoots\n .map((pkgPath) => path.dirname(pkgPath))\n .find((pkgDir) => relativePath.startsWith(pkgDir));\n\n return matchingPackageRoot\n ? path.join(commonRoot, matchingPackageRoot)\n : null;\n}\n\nfunction isAliasKey(\n key: string,\n config: Config,\n): key is keyof Config[\"aliases\"] {\n return Object.keys(config.resolvedPaths)\n .filter((key) => key !== \"utils\")\n .includes(key);\n}\n\nexport function findCommonRoot(cwd: string, resolvedPath: string) {\n const parts1 = cwd.split(path.sep);\n const parts2 = resolvedPath.split(path.sep);\n const commonParts = [];\n\n for (let i = 0; i < Math.min(parts1.length, parts2.length); i++) {\n if (parts1[i] !== parts2[i]) {\n break;\n }\n commonParts.push(parts1[i]);\n }\n\n return commonParts.join(path.sep);\n}\n\n// TODO: Cache this call.\nexport async function getTargetStyleFromConfig(cwd: string, fallback: string) {\n await getProjectInfo(cwd);\n return fallback;\n}\n\ntype DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\n/**\n * Creates a config object with sensible defaults.\n * Useful for universal registry items that bypass framework detection.\n *\n * @param partial - Partial config values to override defaults\n * @returns A complete Config object\n */\nexport function createConfig(partial?: DeepPartial<Config>): Config {\n const defaultConfig: Config = {\n resolvedPaths: {\n cwd: process.cwd(),\n tailwindConfig: \"\",\n tailwindCss: \"\",\n utils: \"\",\n components: \"\",\n ui: \"\",\n lib: \"\",\n hooks: \"\",\n },\n style: \"\",\n tailwind: {\n config: \"\",\n css: \"\",\n baseColor: \"\",\n cssVariables: false,\n },\n aliases: {\n components: \"\",\n utils: \"\",\n },\n registries: {\n ...BUILTIN_REGISTRIES,\n },\n };\n\n // Deep merge the partial config with defaults\n if (partial) {\n return {\n ...defaultConfig,\n ...partial,\n resolvedPaths: {\n ...defaultConfig.resolvedPaths,\n ...(partial.resolvedPaths || {}),\n },\n tailwind: {\n ...defaultConfig.tailwind,\n ...(partial.tailwind || {}),\n },\n aliases: {\n ...defaultConfig.aliases,\n ...(partial.aliases || {}),\n },\n registries: {\n ...defaultConfig.registries,\n ...(partial.registries || {}),\n },\n };\n }\n\n return defaultConfig;\n}\n","import ora, { type Options } from \"ora\";\n\nexport function spinner(\n text: Options[\"text\"],\n options?: {\n silent?: boolean;\n },\n) {\n return ora({\n text,\n isSilent: options?.silent,\n });\n}\n","import { existsSync, readFileSync } from \"fs\";\nimport { readdir } from \"fs/promises\";\nimport path, { dirname, extname, join, posix as pathPosix } from \"path\";\nimport { createRequire } from \"module\";\nimport { Project, SyntaxKind, SourceFile } from \"ts-morph\";\n\nexport const RESERVED_COMPONENTS: Set<string> = new Set([\n \"Fragment\",\n \"CodePackageManagers\",\n \"DocsTabs\",\n \"DocsTabItem\",\n \"DocsCodePackageManagers\",\n \"Tabs\",\n \"TabItem\",\n]);\n\nexport function slugify(input: string): string {\n return input\n .replace(/\\.(astro|md|mdx|tsx|ts|jsx|js)$/i, \"\")\n .replace(/([a-z0-9])([A-Z])/g, \"$1-$2\")\n .replace(/\\s+/g, \"-\")\n .replace(/_+/g, \"-\")\n .toLowerCase();\n}\n\nexport function extractFrontmatter(source: string): string {\n const match = source.match(/^---\\n([\\s\\S]*?)\\n---/);\n return (match && match[1]) || \"\";\n}\n\nexport function toIdentifier(name: string): string {\n const base = name\n .replace(/\\.[^.]+$/, \"\")\n .replace(/[^a-zA-Z0-9]+/g, \" \")\n .trim()\n .replace(/\\b\\w/g, (c) => c.toUpperCase())\n .replace(/\\s+/g, \"\");\n return /^[A-Za-z_]/.test(base) ? base : `Ex${base}`;\n}\n\nexport function parseJsDocMetadata(\n frontmatterCode: string,\n): Record<string, any> {\n const jsDocMatch = frontmatterCode.match(/\\/\\*\\*([\\s\\S]*?)\\*\\//);\n if (!jsDocMatch) return {};\n const content = jsDocMatch[1];\n const lines = content.split(\"\\n\").map((l) => l.replace(/^\\s*\\*\\s?/, \"\"));\n const meta: Record<string, any> = {};\n let inUsage = false;\n let inExamples = false;\n let inPrimaryExample = false;\n let inApi = false;\n let captureDescriptionBody = false;\n const usageLines: string[] = [];\n const examplesLines: string[] = [];\n const primaryExampleLines: string[] = [];\n const apiLines: string[] = [];\n const descriptionBodyLines: string[] = [];\n for (const rawLine of lines) {\n const line = rawLine;\n if (inUsage) {\n if (line.trim().startsWith(\"@\")) {\n inUsage = false;\n } else {\n usageLines.push(line);\n continue;\n }\n }\n if (inPrimaryExample) {\n if (line.trim().startsWith(\"@\")) {\n inPrimaryExample = false;\n } else {\n primaryExampleLines.push(line);\n continue;\n }\n }\n if (inExamples) {\n if (line.trim().startsWith(\"@\")) {\n inExamples = false;\n } else {\n examplesLines.push(line);\n continue;\n }\n }\n if (inApi) {\n if (line.trim().startsWith(\"@\")) {\n inApi = false;\n } else {\n apiLines.push(line);\n continue;\n }\n }\n if (captureDescriptionBody) {\n if (line.trim().startsWith(\"@\")) {\n captureDescriptionBody = false;\n } else {\n descriptionBodyLines.push(line);\n continue;\n }\n }\n if (line.trim().startsWith(\"@component\"))\n meta.name = line.replace(\"@component\", \"\").trim();\n else if (line.trim().startsWith(\"@title\"))\n meta.title = line.replace(\"@title\", \"\").trim();\n else if (line.trim().startsWith(\"@description\")) {\n meta.description = line.replace(\"@description\", \"\").trim();\n captureDescriptionBody = true;\n continue;\n } else if (line.trim().startsWith(\"@figmaUrl\"))\n meta.figmaUrl = line.replace(\"@figmaUrl\", \"\").trim();\n // Backward compatibility: support @figma but map to figmaUrl\n else if (line.trim().startsWith(\"@figma\"))\n meta.figmaUrl = line.replace(\"@figma\", \"\").trim();\n else if (line.trim().startsWith(\"@usage\")) {\n inUsage = true;\n continue;\n } else if (line.trim().startsWith(\"@examples\")) {\n inExamples = true;\n continue;\n } else if (line.trim().startsWith(\"@preview\")) {\n inPrimaryExample = true;\n continue;\n } else if (line.trim().startsWith(\"@example\")) {\n // backward compatibility with older docs\n inPrimaryExample = true;\n continue;\n } else if (line.trim().startsWith(\"@api\")) {\n inApi = true;\n continue;\n }\n }\n if (usageLines.length) meta.usageMDX = usageLines.join(\"\\n\").trim();\n if (examplesLines.length) meta.examplesMDX = examplesLines.join(\"\\n\").trim();\n if (primaryExampleLines.length)\n meta.primaryExampleMDX = primaryExampleLines.join(\"\\n\").trim();\n if (descriptionBodyLines.length)\n meta.descriptionBodyMDX = descriptionBodyLines.join(\"\\n\").trim();\n if (apiLines.length) meta.apiMDX = apiLines.join(\"\\n\").trim();\n return meta;\n}\n\nexport function extractPropsFromAstroProps(sourceFile: SourceFile): Array<{\n name?: string;\n isRest?: boolean;\n hasDefault?: boolean;\n defaultValue?: string;\n alias?: string;\n}> {\n // Helper: unwrap expressions like `(Astro.props as Props)`, `Astro.props as Props`,\n // `<Props>Astro.props`, `(Astro.props)!`, and parenthesized variants until we reach\n // the underlying PropertyAccessExpression.\n function unwrapAstroProps(node: any): any | null {\n let current: any = node;\n // Unwrap layers that can wrap the property access\n // AsExpression, TypeAssertion, SatisfiesExpression, NonNullExpression, ParenthesizedExpression\n // Keep drilling down via getExpression()\n // Guard against cycles by limiting iterations\n for (let i = 0; i < 10; i += 1) {\n const kind = current.getKind();\n if (kind === SyntaxKind.PropertyAccessExpression) {\n const expr = current.getExpression();\n if (\n expr &&\n expr.getText() === \"Astro\" &&\n current.getName() === \"props\"\n ) {\n return current;\n }\n return null;\n }\n if (\n kind === SyntaxKind.AsExpression ||\n kind === SyntaxKind.TypeAssertion ||\n // @ts-ignore - SatisfiesExpression may not exist in older TS versions\n kind === (SyntaxKind as any).SatisfiesExpression ||\n kind === SyntaxKind.NonNullExpression ||\n kind === SyntaxKind.ParenthesizedExpression\n ) {\n const next = current.getExpression && current.getExpression();\n if (!next) return null;\n current = next;\n continue;\n }\n return null;\n }\n return null;\n }\n\n const declarations = sourceFile.getDescendantsOfKind(\n SyntaxKind.VariableDeclaration,\n );\n const target = declarations.find((decl) => {\n const init = decl.getInitializer();\n if (!init) return false;\n return !!unwrapAstroProps(init);\n });\n if (!target) return [];\n const nameNode: any = target.getNameNode();\n if (!nameNode || nameNode.getKind() !== SyntaxKind.ObjectBindingPattern)\n return [];\n const obj = nameNode.asKindOrThrow(SyntaxKind.ObjectBindingPattern);\n return obj.getElements().map((el: any) => {\n const isRest = !!el.getDotDotDotToken();\n if (isRest) return { isRest: true, hasDefault: false, alias: el.getName() };\n const propertyNameNode = el.getPropertyNameNode();\n const name = el.getName();\n const propName = propertyNameNode ? propertyNameNode.getText() : name;\n const initializer = el.getInitializer();\n let defaultValue: string | undefined;\n if (initializer) defaultValue = initializer.getText();\n return { name: propName, hasDefault: initializer != null, defaultValue };\n });\n}\n\nexport function extractPropsFromDeclaredProps(sourceFile: SourceFile): Array<{\n name: string;\n type: string;\n optional: boolean;\n}> {\n function normalizeTypeText(text: string | undefined): string {\n if (!text) return \"\";\n return text.replace(/\\s+/g, \" \").replace(/;\\s*$/, \"\").trim();\n }\n // Prefer interface Props\n const iface = sourceFile.getInterface(\"Props\");\n if (iface) {\n const properties = iface.getProperties();\n return properties.map((prop) => {\n const name = prop.getName();\n const typeNode = prop.getTypeNode();\n const rawType = typeNode ? typeNode.getText() : prop.getType().getText();\n const typeText = normalizeTypeText(rawType);\n const optional = prop.hasQuestionToken();\n return { name, type: typeText, optional };\n });\n }\n\n // Fallback: type Props = { ... }\n const typeAlias = sourceFile.getTypeAlias(\"Props\");\n if (typeAlias) {\n const typeNode = typeAlias.getTypeNode();\n if (typeNode && typeNode.getKind() === SyntaxKind.TypeLiteral) {\n const literal = typeNode.asKindOrThrow(SyntaxKind.TypeLiteral);\n const properties = literal.getProperties();\n return properties.map((prop) => {\n const name = prop.getName();\n const tn = prop.getTypeNode();\n const rawType = tn ? tn.getText() : prop.getType().getText();\n const typeText = normalizeTypeText(rawType);\n const optional = prop.hasQuestionToken();\n return { name, type: typeText, optional };\n });\n }\n }\n\n return [];\n}\n\nexport function resolveUiRoot(cwd: string): string {\n const require = createRequire(import.meta.url);\n\n const envRoot = process.env.BEJAMAS_UI_ROOT;\n if (envRoot && existsSync(path.join(envRoot, \"package.json\"))) {\n return envRoot;\n }\n\n try {\n const pkgPath = require.resolve(\"@bejamas/ui/package.json\", {\n paths: [cwd],\n });\n return path.dirname(pkgPath);\n } catch {}\n\n let current = cwd;\n for (let i = 0; i < 6; i += 1) {\n const candidate = path.join(current, \"packages\", \"ui\", \"package.json\");\n if (existsSync(candidate)) return path.dirname(candidate);\n const parent = path.dirname(current);\n if (parent === current) break;\n current = parent;\n }\n\n try {\n const anyEntry = require.resolve(\"@bejamas/ui/*\", { paths: [cwd] });\n return path.resolve(anyEntry, \"..\", \"..\");\n } catch {}\n\n throw new Error(\"Unable to locate @bejamas/ui in the workspace\");\n}\n\nexport function resolveOutDir(cwd: string): string {\n const envOut = process.env.BEJAMAS_DOCS_OUT_DIR;\n if (envOut && envOut.length) {\n return path.isAbsolute(envOut) ? envOut : path.resolve(cwd, envOut);\n }\n return path.resolve(cwd, \"../../apps/web/src/content/docs/components\");\n}\n\nexport function detectHasImportTopLevel(\n block: string,\n pascalName: string,\n): boolean {\n if (!block) return false;\n let inFence = false;\n const importLineRegex = new RegExp(\n `^\\\\s*import\\\\s+.*\\\\bfrom\\\\s+['\"][^'\"]+\\\\b${pascalName}\\\\.astro['\"]`,\n );\n for (const line of block.split(\"\\n\")) {\n const trimmed = line.trim();\n if (trimmed.startsWith(\"```\")) {\n inFence = !inFence;\n continue;\n }\n if (!inFence && importLineRegex.test(line)) return true;\n }\n return false;\n}\n\nexport function hasImportOfTopLevel(\n block: string,\n componentName: string,\n): boolean {\n if (!block) return false;\n let inFence = false;\n const importRegex = new RegExp(\n `^\\\\s*import\\\\s+[^;]*\\\\b${componentName}\\\\b[^;]*from\\\\s+['\"][^'\"]*(?:/|^)${componentName}\\\\.astro['\"]`,\n );\n const lucideIconRegex = /Icon$/.test(componentName)\n ? new RegExp(\n `^\\\\s*import\\\\s+\\\\{[^}]*\\\\b${componentName}\\\\b[^}]*\\\\}\\\\s+from\\\\s+['\"]@lucide/astro['\"]`,\n )\n : null;\n for (const line of block.split(\"\\n\")) {\n const trimmed = line.trim();\n if (trimmed.startsWith(\"```\")) {\n inFence = !inFence;\n continue;\n }\n if (!inFence && importRegex.test(line)) return true;\n if (!inFence && lucideIconRegex && lucideIconRegex.test(line)) return true;\n }\n return false;\n}\n\nexport function normalizeBlockMDX(block: string): string {\n if (!block) return \"\";\n return block.replace(\n /from\\s+['\"]@\\/ui\\/components\\//g,\n \"from '@bejamas/ui/components/\",\n );\n}\n\nexport function replaceDocsComponentTags(block: string): string {\n if (!block) return \"\";\n let inFence = false;\n const lines = block.split(\"\\n\");\n const out: string[] = [];\n for (const line of lines) {\n const trimmed = line.trim();\n if (trimmed.startsWith(\"```\")) {\n inFence = !inFence;\n out.push(line);\n continue;\n }\n if (inFence) {\n out.push(line);\n continue;\n }\n const replaced = line\n .replace(/<Tabs(\\b|\\s)/g, \"<DocsTabs$1\")\n .replace(/<\\/Tabs>/g, \"</DocsTabs>\")\n .replace(/<TabItem(\\b|\\s)/g, \"<DocsTabItem$1\")\n .replace(/<\\/TabItem>/g, \"</DocsTabItem>\");\n out.push(replaced);\n }\n return out.join(\"\\n\");\n}\n\nexport function normalizeUsageMDX(\n usageMDX: string,\n pascalName: string,\n): { text: string; hasImport: boolean } {\n const normalized = normalizeBlockMDX(usageMDX);\n const hasImport = detectHasImportTopLevel(normalized, pascalName);\n return { text: normalized.trim(), hasImport };\n}\n\nexport function extractComponentTagsFromMDX(block: string): string[] {\n if (!block) return [];\n let inFence = false;\n const found = new Set<string>();\n const tagRegex = /<([A-Z][A-Za-z0-9_]*)\\b/g;\n for (const line of block.split(\"\\n\")) {\n const trimmed = line.trim();\n if (trimmed.startsWith(\"```\")) {\n inFence = !inFence;\n continue;\n }\n if (inFence) continue;\n let match: RegExpExecArray | null;\n while ((match = tagRegex.exec(line)) !== null) {\n const name = match[1];\n found.add(name);\n }\n }\n return Array.from(found);\n}\n\nexport async function discoverExamples(\n componentFilePath: string,\n componentsDir: string,\n): Promise<string[]> {\n const fileBase = path.basename(\n componentFilePath,\n path.extname(componentFilePath),\n );\n const kebabBase = slugify(fileBase);\n const candidates = [\n join(dirname(componentFilePath), `${fileBase}.examples`),\n join(dirname(componentFilePath), `${kebabBase}.examples`),\n ];\n const found: string[] = [];\n for (const dir of candidates) {\n try {\n const items = await readdir(dir, { withFileTypes: true });\n for (const it of items) {\n if (it.isFile() && extname(it.name).toLowerCase() === \".astro\") {\n const abs = join(dir, it.name);\n const relFromComponents = path\n .relative(componentsDir, abs)\n .split(path.sep)\n .join(pathPosix.sep);\n found.push(relFromComponents);\n }\n }\n } catch {}\n }\n return found;\n}\n\nexport function createSourceFileFromFrontmatter(\n frontmatterCode: string,\n): SourceFile {\n const project = new Project({ useInMemoryFileSystem: true });\n return project.createSourceFile(\"Component.ts\", frontmatterCode, {\n overwrite: true,\n });\n}\n"],"x_google_ignoreList":[8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],"mappings":"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CX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACF;EACF;CACD;EACE,MAAM;EACN,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;IACL,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACD,MAAM;IACJ,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACF;EACF;CACD;EACE,MAAM;EACN,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;IACL,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACD,MAAM;IACJ,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACF;EACF;CACD;EACE,MAAM;EACN,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;IACL,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACD,MAAM;IACJ,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACF;EACF;CACD;EACE,MAAM;EACN,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;IACL,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IAC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B,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACF;EACF;CACD;EACE,MAAM;EACN,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;IACL,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACD,MAAM;IACJ,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACF;EACF;CACD;EACE,MAAM;EACN,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;IACL,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACD,MAAM;IACJ,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACF;EACF;CACD;EACE,MAAM;EACN,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;IACL,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACD,MAAM;IACJ,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,WAAW;IACX,mBAAmB;IACnB,8BAA8B;IAC/B;GACF;EACF;CACD;EACE,MAAM;EACN,OAAO;EACP,MAAM;EACN,SAAS;GACP,OAAO;IACL,SAAS;IACT,sBAAsB;IACtB,WAAW;IACX,wBAAwB;IACxB,WAAW;IACX,WAAW;IACX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EACP,aAAa;EACd;CACD;EACE,MAAM;EACN,IAAI;EACJ,OAAO;EACP,aAAa;EACd;CACD;EACE,MAAM;EACN,IAAI;EACJ,OAAO;EACP,aAAa;EACd;CACD;EACE,MAAM;EACN,IAAI;EACJ,OAAO;EACP,aAAa;EACd;CACF;;;;ACvBD,MAAa,uBAAuB;CAClC;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,uBAAuB;CAClC;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,qBAAqB;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAM,uBAAuB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,gBAAgB;CAC3B,GAAG;CACH;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,sBAAsB;AAEnC,MAAaC,qBAKT;CACF,SAAS;CACT,OAAO;CACP,MAAM;CACN,OAAO;CACP,OAAO;CACP,MAAM;CACN,OAAO;CACR;AAED,MAAa,wBAAwB;CACnC;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,eAAe;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,uBAAuB,CAAC,WAAW,GAAG,aAAa;AAEhE,MAAa,eAAe;CAC1B;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,sBAAsB,CAAC,UAAU,OAAO;AAErD,MAAa,qBAAqB;CAChC;CACA;CACA;CACA;CACD;AA4BD,MAAM,kBAAkB;CACtB;EAAE,KAAK;EAAa,QAAQ;EAAoB,MAAM;EAAG;CACzD;EAAE,KAAK;EAAc,QAAQ;EAAqB,MAAM;EAAG;CAC3D;EAAE,KAAK;EAAU,QAAQ;EAAc,MAAM;EAAG;CAChD;EAAE,KAAK;EAAQ,QAAQ;EAAc,MAA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"}
|