@razorwind/core 0.0.47 → 0.0.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/{config-BjuUx31T.d.cts → config-BtscEr7S.d.cts} +9 -4
  2. package/dist/{config-BjuUx31T.d.cts.map → config-BtscEr7S.d.cts.map} +1 -1
  3. package/dist/{config-CEPqgKnD.d.mts → config-CNTGHrST.d.mts} +8 -3
  4. package/dist/config-CNTGHrST.d.mts.map +1 -0
  5. package/dist/flatten-tokens-CMlVe_J6.d.cts +54 -0
  6. package/dist/flatten-tokens-CMlVe_J6.d.cts.map +1 -0
  7. package/dist/flatten-tokens-DgTPHEhI.d.mts +54 -0
  8. package/dist/flatten-tokens-DgTPHEhI.d.mts.map +1 -0
  9. package/dist/{fonts-CUwsBEd5.mjs → fonts-BiuIJVev.mjs} +4 -4
  10. package/dist/fonts-BiuIJVev.mjs.map +1 -0
  11. package/dist/{fonts-75PPb25H.cjs → fonts-CkBPEFie.cjs} +2 -2
  12. package/dist/{index-DXx1b3vZ.d.cts → index-B7MsziQp.d.cts} +5 -5
  13. package/dist/{index-DXx1b3vZ.d.cts.map → index-B7MsziQp.d.cts.map} +1 -1
  14. package/dist/{index-DovYOOtL.d.cts → index-CwN0c1Q4.d.cts} +1 -1
  15. package/dist/{index-D7VrdiAn.d.mts → index-CzbZzpnz.d.mts} +4 -4
  16. package/dist/{index-D7VrdiAn.d.mts.map → index-CzbZzpnz.d.mts.map} +1 -1
  17. package/dist/{index-crrCGMN9.d.mts → index-CzjDptav.d.mts} +4 -4
  18. package/dist/{index-crrCGMN9.d.mts.map → index-CzjDptav.d.mts.map} +1 -1
  19. package/dist/{index-ktFi0nZL.d.mts → index-D5L2WXYk.d.mts} +1 -1
  20. package/dist/{index-DNAWtBG8.d.cts → index-Di7vqmsi.d.cts} +4 -4
  21. package/dist/{index-DNAWtBG8.d.cts.map → index-Di7vqmsi.d.cts.map} +1 -1
  22. package/dist/index.cjs +1 -1
  23. package/dist/index.d.cts +82 -16
  24. package/dist/index.d.cts.map +1 -1
  25. package/dist/index.d.mts +82 -16
  26. package/dist/index.d.mts.map +1 -1
  27. package/dist/index.mjs +1 -1
  28. package/dist/lib/fonts/index.cjs +1 -1
  29. package/dist/lib/fonts/index.d.cts +1 -1
  30. package/dist/lib/fonts/index.d.mts +1 -1
  31. package/dist/lib/fonts/index.mjs +1 -1
  32. package/dist/lib/tokens/index.cjs +1 -1
  33. package/dist/lib/tokens/index.d.cts +1 -1
  34. package/dist/lib/tokens/index.d.mts +1 -1
  35. package/dist/lib/tokens/index.mjs +1 -1
  36. package/dist/{plugin-BocNoTkM.d.mts → plugin-0UYp_yIy.d.cts} +2 -2
  37. package/dist/{plugin-DMOM9PDs.d.cts.map → plugin-0UYp_yIy.d.cts.map} +1 -1
  38. package/dist/{plugin-DMOM9PDs.d.cts → plugin-CH6vFnxu.d.mts} +2 -2
  39. package/dist/plugin-CH6vFnxu.d.mts.map +1 -0
  40. package/dist/plugin.d.cts +2 -2
  41. package/dist/plugin.d.mts +2 -2
  42. package/dist/schema/index.cjs +1 -1
  43. package/dist/schema/index.d.cts +2 -2
  44. package/dist/schema/index.d.mts +2 -2
  45. package/dist/schema/index.mjs +1 -1
  46. package/dist/{schema-D0sXEBjV.cjs → schema-BCofDJWf.cjs} +1 -1
  47. package/dist/{schema-Crr8KMUY.d.cts → schema-BwOBgJIM.d.cts} +6 -1
  48. package/dist/{schema-Crr8KMUY.d.cts.map → schema-BwOBgJIM.d.cts.map} +1 -1
  49. package/dist/{schema-Crr8KMUY.d.mts → schema-BwOBgJIM.d.mts} +6 -1
  50. package/dist/schema-BwOBgJIM.d.mts.map +1 -0
  51. package/dist/{schema-Btk_-NEI.mjs → schema-CXK5pVmJ.mjs} +2 -2
  52. package/dist/schema-CXK5pVmJ.mjs.map +1 -0
  53. package/dist/tokens-By75va9Y.cjs +7 -0
  54. package/dist/tokens-DFYNBFFR.mjs +8 -0
  55. package/dist/tokens-DFYNBFFR.mjs.map +1 -0
  56. package/dist/utils/index.cjs +1 -1
  57. package/dist/utils/index.d.cts +78 -92
  58. package/dist/utils/index.d.cts.map +1 -1
  59. package/dist/utils/index.d.mts +78 -92
  60. package/dist/utils/index.d.mts.map +1 -1
  61. package/dist/utils/index.mjs +1 -1
  62. package/dist/utils-CDYdsyyW.mjs +2 -0
  63. package/dist/utils-CDYdsyyW.mjs.map +1 -0
  64. package/dist/utils-DyK4l_bT.cjs +1 -0
  65. package/package.json +2 -2
  66. package/dist/config-CEPqgKnD.d.mts.map +0 -1
  67. package/dist/fonts-CUwsBEd5.mjs.map +0 -1
  68. package/dist/plugin-BocNoTkM.d.mts.map +0 -1
  69. package/dist/schema-Btk_-NEI.mjs.map +0 -1
  70. package/dist/schema-Crr8KMUY.d.mts.map +0 -1
  71. package/dist/tokens-BSuKch7x.cjs +0 -7
  72. package/dist/tokens-CsosSHvJ.mjs +0 -8
  73. package/dist/tokens-CsosSHvJ.mjs.map +0 -1
  74. package/dist/utils-B5uabOd5.mjs +0 -2
  75. package/dist/utils-B5uabOd5.mjs.map +0 -1
  76. package/dist/utils-BiL8zQzg.cjs +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schema-Crr8KMUY.d.cts","names":[],"sources":["../src/schema/components.ts","../src/schema/fonts.ts","../src/schema/icons.ts","../src/schema/schema.ts"],"mappings":";;;cAoBa,qBAAmB,IAAA;;;;;;;;;;;;;;;;;;GAyB9B,IAAA,KAAA;KAEU,gBAAgB,IAAE,aAAa;;;;;;;;cAS9B,sBAAoB,IAAA;;;;;;;;;;;;;;;;;GAiB/B,IAAA,KAAA;KAEU,iBAAiB,IAAE,aAAa;cAE/B,iBAAe,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsB1B,IAAA,KAAA;KAEU,YAAY,IAAE,aAAa;cAE1B,kBAAgB,IAAA,UAAA,IAAA,WAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAwC,IAAA,KAAA;KAEzD,aAAa,IAAE,aAAa;;;cCrF3B,gBAAc,IAAA;;;;;;;;;KAUf,WAAW,IAAE,aAAa;cAEzB,mBAAiB,IAAA;;;;;;;KAQlB,cAAc,IAAE,aAAa;cAE5B,sBAAoB,IAAA;;;;;;;KAQrB,iBAAiB,IAAE,aAAa;cAE/B,gBAAc,IAAA;;;;;;;;;;;;;;;;GAMzB,IAAA,KAAA;KAEU,WAAW,IAAE,aAAa;cAiBzB,kBAAgB,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAM3B,IAAA,KAAA;KAEU,aAAa,IAAE,aAAa;cAE3B,iBAAe,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAG1B,IAAA,KAAA;KAEU,YAAY,IAAE,aAAa;cAE1B,YAAU,IAAA,uBAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGrB,IAAA,KAAA;KAEU,OAAO,IAAE,aAAa;cAErB,aAAW,IAAA,UAAA,IAAA,WAAA,IAAA,uBAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAmC,IAAA,KAAA;KAE/C,QAAQ,IAAE,aAAa;;;cCnFtB,gBAAc,IAAA;;;;;;;;;;;;;;;GAkBzB,IAAA,KAAA;KAEU,WAAW,IAAE,aAAa;cAEzB,YAAU,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAarB,IAAA,KAAA;KAEU,OAAO,IAAE,aAAa;cAErB,aAAW,IAAA,UAAA,IAAA,WAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAmC,IAAA,KAAA;KAE/C,QAAQ,IAAE,aAAa;;;UC5BlB;EACf;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ,OAAO;EACP,OAAO;EACP,QAAQ,SAAS,eAAe;;cAGrB,QAAQ,EAAE,QAAQ"}
1
+ {"version":3,"file":"schema-BwOBgJIM.d.cts","names":[],"sources":["../src/schema/components.ts","../src/schema/fonts.ts","../src/schema/icons.ts","../src/schema/schema.ts"],"mappings":";;;cAoBa,qBAAmB,IAAA;;;;;;;;;;;;;;;;;;GAyB9B,IAAA,KAAA;KAEU,gBAAgB,IAAE,aAAa;;;;;;;;cAS9B,sBAAoB,IAAA;;;;;;;;;;;;;;;;;GAiB/B,IAAA,KAAA;KAEU,iBAAiB,IAAE,aAAa;cAE/B,iBAAe,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsB1B,IAAA,KAAA;KAEU,YAAY,IAAE,aAAa;cAE1B,kBAAgB,IAAA,UAAA,IAAA,WAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAwC,IAAA,KAAA;KAEzD,aAAa,IAAE,aAAa;;;cCrF3B,gBAAc,IAAA;;;;;;;;;KAUf,WAAW,IAAE,aAAa;cAEzB,mBAAiB,IAAA;;;;;;;KAQlB,cAAc,IAAE,aAAa;cAE5B,sBAAoB,IAAA;;;;;;;KAQrB,iBAAiB,IAAE,aAAa;cAE/B,gBAAc,IAAA;;;;;;;;;;;;;;;;GAMzB,IAAA,KAAA;KAEU,WAAW,IAAE,aAAa;cAiBzB,kBAAgB,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAM3B,IAAA,KAAA;KAEU,aAAa,IAAE,aAAa;cAE3B,iBAAe,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAG1B,IAAA,KAAA;KAEU,YAAY,IAAE,aAAa;cAE1B,YAAU,IAAA,uBAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGrB,IAAA,KAAA;KAEU,OAAO,IAAE,aAAa;cAErB,aAAW,IAAA,UAAA,IAAA,WAAA,IAAA,uBAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAmC,IAAA,KAAA;KAE/C,QAAQ,IAAE,aAAa;;;cCnFtB,gBAAc,IAAA;;;;;;;;;;;;;;;GAkBzB,IAAA,KAAA;KAEU,WAAW,IAAE,aAAa;cAEzB,YAAU,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAarB,IAAA,KAAA;KAEU,OAAO,IAAE,aAAa;cAErB,aAAW,IAAA,UAAA,IAAA,WAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAmC,IAAA,KAAA;KAE/C,QAAQ,IAAE,aAAa;;;UC5BlB;EACf;EACA;EACA;EACA;EACA;EACA;;;;;EAKA;EACA,YAAY;EACZ,OAAO;EACP,OAAO;EACP,QAAQ,SAAS,eAAe;;cAGrB,QAAQ,EAAE,QAAQ"}
@@ -529,6 +529,11 @@ interface Schema {
529
529
  homepage?: string;
530
530
  description?: string;
531
531
  logo?: string;
532
+ /**
533
+ * Active theme id when generating a single theme from a multi-theme token
534
+ * record. Generators append this to titles and output file names.
535
+ */
536
+ theme?: string;
532
537
  components: Components;
533
538
  icons: Icons;
534
539
  fonts: Fonts;
@@ -537,4 +542,4 @@ interface Schema {
537
542
  declare const schema: z.ZodType<Schema>;
538
543
  //#endregion
539
544
  export { componentSchema as A, googleFontSchema as C, ComponentUsage as D, ComponentFile as E, componentsSchema as M, Components as O, fontsSchema as S, Component as T, fontDisplaySchema as _, Icons as a, fontRoleSchema as b, iconsSchema as c, FontFile as d, FontFileFormat as f, LocalFont as g, GoogleFont as h, IconFile as i, componentUsageSchema as j, componentFileSchema as k, Font as l, Fonts as m, schema as n, iconFileSchema as o, FontRole as p, Icon as r, iconSchema as s, Schema as t, FontDisplay as u, fontFileFormatSchema as v, localFontSchema as w, fontSchema as x, fontFileSchema as y };
540
- //# sourceMappingURL=schema-Crr8KMUY.d.mts.map
545
+ //# sourceMappingURL=schema-BwOBgJIM.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-BwOBgJIM.d.mts","names":[],"sources":["../src/schema/components.ts","../src/schema/fonts.ts","../src/schema/icons.ts","../src/schema/schema.ts"],"mappings":""}
@@ -1,2 +1,2 @@
1
- import{o as e}from"./fonts-B0ESWBBC.mjs";import t,{z as n}from"zod";import{tokenSchema as r,tokensSchema as i,tokensSchema as a}from"@power-plant/dtcg-schema";const o=n.object({path:n.string(),type:n.enum([`lib`,`block`,`component`,`ui`,`hook`,`theme`,`page`,`file`,`style`,`base`,`font`,`item`]).optional(),content:n.string().optional(),target:n.string().optional().describe(`The target path of the file. This is the path to the file in the project. Supports registry target placeholders @components/, @ui/, @lib/, and @hooks/, which resolve to the corresponding aliases configured in components.json. These placeholders are independent of the project's import prefix.`)}),s=n.object({name:n.string().optional().describe(`Stable usage example id. Defaults to the source filename without extension.`),title:n.string().optional(),description:n.string().optional(),path:n.string(),content:n.string().optional(),language:n.enum([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]).optional().describe(`Source language for syntax highlighting. Inferred from the file extension when omitted.`)}),c=n.object({name:n.string(),title:n.string(),type:n.enum([`block`,`component`,`ui`,`page`]).default(`component`),category:n.string().optional(),description:n.string().optional(),tags:n.array(n.string()).optional(),related:n.array(n.string()).optional(),since:n.string().optional(),version:n.string().optional(),repository:n.string().optional(),homepage:n.string().optional(),dependencies:n.record(n.string(),n.string()).optional(),devDependencies:n.record(n.string(),n.string()).optional(),registryDependencies:n.record(n.string(),n.string()).optional(),files:n.array(o).optional(),usage:n.array(s).optional().describe("Example usage snippets for this component. Prefer a `usage/` directory of source files; entries may also be declared in metadata.")}),l=n.record(n.string(),c),u=n.object({path:n.string(),type:n.enum([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`,`file`]).optional(),content:n.string().optional(),theme:n.string().optional().describe(`Optional theme variant for this asset (for example light or dark).`),target:n.string().optional().describe(`The target path of the file in the project. Supports registry-style placeholders independent of the project's import prefix.`)}),d=n.object({name:n.string(),title:n.string(),category:n.string().optional(),description:n.string().optional(),tags:n.array(n.string()).optional(),aliases:n.array(n.string()).optional(),related:n.array(n.string()).optional(),since:n.string().optional(),version:n.string().optional(),repository:n.string().optional(),homepage:n.string().optional(),files:n.array(u).optional()}),f=n.record(n.string(),d),p=t.union([i,t.record(t.string(),i)]),m=t.object({name:t.string().optional(),title:t.string().optional(),repository:t.string().optional(),homepage:t.string().optional(),description:t.string().optional(),logo:t.string().optional(),tokens:p,components:l,icons:f,fonts:e});export{d as a,c,u as i,s as l,a as n,f as o,m as r,o as s,r as t,l as u};
2
- //# sourceMappingURL=schema-Btk_-NEI.mjs.map
1
+ import{o as e}from"./fonts-B0ESWBBC.mjs";import t,{z as n}from"zod";import{tokenSchema as r,tokensSchema as i,tokensSchema as a}from"@power-plant/dtcg-schema";const o=n.object({path:n.string(),type:n.enum([`lib`,`block`,`component`,`ui`,`hook`,`theme`,`page`,`file`,`style`,`base`,`font`,`item`]).optional(),content:n.string().optional(),target:n.string().optional().describe(`The target path of the file. This is the path to the file in the project. Supports registry target placeholders @components/, @ui/, @lib/, and @hooks/, which resolve to the corresponding aliases configured in components.json. These placeholders are independent of the project's import prefix.`)}),s=n.object({name:n.string().optional().describe(`Stable usage example id. Defaults to the source filename without extension.`),title:n.string().optional(),description:n.string().optional(),path:n.string(),content:n.string().optional(),language:n.enum([`tsx`,`jsx`,`ts`,`js`,`mdx`,`md`,`css`,`html`,`txt`]).optional().describe(`Source language for syntax highlighting. Inferred from the file extension when omitted.`)}),c=n.object({name:n.string(),title:n.string(),type:n.enum([`block`,`component`,`ui`,`page`]).default(`component`),category:n.string().optional(),description:n.string().optional(),tags:n.array(n.string()).optional(),related:n.array(n.string()).optional(),since:n.string().optional(),version:n.string().optional(),repository:n.string().optional(),homepage:n.string().optional(),dependencies:n.record(n.string(),n.string()).optional(),devDependencies:n.record(n.string(),n.string()).optional(),registryDependencies:n.record(n.string(),n.string()).optional(),files:n.array(o).optional(),usage:n.array(s).optional().describe("Example usage snippets for this component. Prefer a `usage/` directory of source files; entries may also be declared in metadata.")}),l=n.record(n.string(),c),u=n.object({path:n.string(),type:n.enum([`svg`,`png`,`webp`,`jpg`,`jpeg`,`gif`,`ico`,`file`]).optional(),content:n.string().optional(),theme:n.string().optional().describe(`Optional theme variant for this asset (for example light or dark).`),target:n.string().optional().describe(`The target path of the file in the project. Supports registry-style placeholders independent of the project's import prefix.`)}),d=n.object({name:n.string(),title:n.string(),category:n.string().optional(),description:n.string().optional(),tags:n.array(n.string()).optional(),aliases:n.array(n.string()).optional(),related:n.array(n.string()).optional(),since:n.string().optional(),version:n.string().optional(),repository:n.string().optional(),homepage:n.string().optional(),files:n.array(u).optional()}),f=n.record(n.string(),d),p=t.union([i,t.record(t.string(),i)]),m=t.object({name:t.string().optional(),title:t.string().optional(),repository:t.string().optional(),homepage:t.string().optional(),description:t.string().optional(),logo:t.string().optional(),theme:t.string().optional(),tokens:p,components:l,icons:f,fonts:e});export{d as a,c,u as i,s as l,a as n,f as o,m as r,o as s,r as t,l as u};
2
+ //# sourceMappingURL=schema-CXK5pVmJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-CXK5pVmJ.mjs","names":[],"sources":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ const e=require("./rolldown-runtime-BocRIvOZ.cjs"),t=require("./utils-DyK4l_bT.cjs");let n=require("node:path"),r=require("@stryke/fs/exists"),i=require("@stryke/fs/is-file"),a=require("@stryke/path/join"),o=require("@stryke/type-checks/is-set-string"),s=require("@stryke/type-checks/is-function"),c=require("@stryke/fs/resolve"),l=require("fast-glob");l=e.t(l,1);let u=require("style-dictionary");u=e.t(u,1);let d=require("style-dictionary/enums"),f=require("json5");f=e.t(f,1);let p=require("smol-toml"),ee=require("yaml");const m=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],h=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],te=h.join(`,`),g=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],_=`**/*.{${te}}`,v=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,y={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},ne=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,re=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ie=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,ae=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,b=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,oe=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,se=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,ce=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,le=/^\{[^{}]+\}$/,ue={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},x=new Set([`px`,`rem`]);function S(e){return Math.min(1,Math.max(0,e))}function C(e,t=100){let n=e.trim();if(n.endsWith(`%`))return S(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return S(r>1?r/255:r)}function de(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function w(e){let t=de(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function T(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function E(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=y[n];if(r)return r}}function D(e,n=[]){let r=E(n);if(typeof e==`string`){let t=e.trim();if(le.test(t))return{value:t,type:r};let i=t.match(ce);if(i?.[1])return{value:T(i[1]),type:r};if(ne.test(t))return{value:w(t),type:`color`};let a=t.match(re);if(a){let e=[C(a[1]),C(a[2]),C(a[3])],t=a[4]?a[4].endsWith(`%`)?S(Number.parseFloat(a[4])/100):S(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=t.match(ie);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?S(Number.parseFloat(o[4])/100):S(Number.parseFloat(o[4]))}:{}},type:`color`};let s=t.match(ae);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?S(Number.parseFloat(s[4])/100):S(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=t.match(b);if(c){let e=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return x.has(e)?{value:{value:n,unit:e},type:`dimension`}:{value:t,type:r===`dimension`?void 0:r}}let l=t.match(oe);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=t.match(se);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=ue[t.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?t.includes(`,`)?{value:t.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:t.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!t.startsWith(`{`)?{value:t,type:void 0}:{value:t,type:r}:{value:d,type:`fontWeight`}}if(typeof e==`number`)return r===`fontWeight`?{value:e,type:`fontWeight`}:r===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:r??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:r??`fontFamily`}:{value:e,type:r};if(t.n(e)){if(`colorSpace`in e&&`components`in e)return{value:e,type:`color`};if(`value`in e&&`unit`in e){let t=String(e.unit).toLowerCase();return t===`ms`||t===`s`?{value:e,type:`duration`}:x.has(t)?{value:e,type:`dimension`}:{value:e,type:r}}}return{value:e,type:r}}function fe(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=D(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function O(e,n=[]){if(Array.isArray(e))return e.map((e,t)=>O(e,[...n,String(t)]));if(!t.n(e))return e;if(t.m(e))return fe(e,n);let r={};for(let[t,i]of Object.entries(e)){if(t.startsWith(`$`)){r[t]=i;continue}r[t]=O(i,[...n,t])}if(!(`$type`in r)){let e=E(n);e&&n.length>0&&(r.$type=e)}return r}function k(e){let n={};for(let[r,i]of Object.entries(e)){let e=r.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(e.length===0)continue;let a=n;for(let n=0;n<e.length-1;n++){let r=e[n],i=a[r];t.n(i)?t.m(i)&&(a[r]={DEFAULT:i}):a[r]={},a=a[r]}let o=e.at(-1),s=D(i,e),c={$value:s.value,...s.type?{$type:s.type}:{}},l=a[o];t.n(l)&&!t.m(l)?l.DEFAULT=c:a[o]=c}return O(n)}const pe=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function A(e){let t={},n=e.split(` `).join(` `).replace(/\s*\{\s*/g,` {
2
+ `).replace(/;\s*/g,`;
3
+ `).replace(/,\s*/g,`, `).replace(/ *\}\s*/g,`}
4
+ `).replace(/\}\s*(.+)/g,`}
5
+ $1`).replace(/\n {4}([^:]+):\s*/g,`
6
+ $1: `).replace(/([a-z0-9-)])\}/gi,`$1;
7
+ }`).replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(pe)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return k(t)}function j(e){return e?{verbosity:d.logVerbosityLevels.verbose}:{}}const M=`razorwind-infer`;function N(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return O(e)}function P(e){try{return N(f.default.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function F(e){try{return N((0,ee.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function I(e){try{return N((0,p.parse)(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const L=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>P(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>F(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>I(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>O(A(e))}];function R(){return Object.fromEntries(L.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function z(e){return O(e)}function B(){return{[M]:z}}function V(e=[]){let t={...R()},n={...B()},r=[...m],i=[M],a=0,o=0;for(let c of e){for(let e of c.parsers??[]){let n=e.name??`${c.name}-parser-${a}`;t[n]={pattern:e.pattern,parser:({contents:t})=>e.parser(t)},r.push(n),a++}for(let e of c.preprocessors??[]){let t=(0,s.isFunction)(e)?{name:`${c.name}-preprocessor-${o}`,preprocessor:e}:{name:e.name??`${c.name}-preprocessor-${o}`,preprocessor:e.preprocessor};n[t.name]=t.preprocessor,i.push(t.name),o++}}return{parsers:t,preprocessors:n,parserNames:r,preprocessorNames:i}}function H(e=[],t=u.default){let n=V(e);if(typeof t.registerParser==`function`)for(let[e,r]of Object.entries(n.parsers))t.registerParser({name:e,...r});if(typeof t.registerPreprocessor==`function`)for(let[e,r]of Object.entries(n.preprocessors))t.registerPreprocessor({name:e,preprocessor:r});return n}const me=H;function U(e,t){return(0,n.isAbsolute)(t)?t:(0,n.resolve)(e,t)}function W(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function G(e){return h.includes(W(e))}function K(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function q(e){return(0,a.joinPaths)(e,_)}function he(e){return Array.isArray(e)?e.filter(o.isSetString):(0,o.isSetString)(e)?[e]:[]}const ge=/[*?[\]{}]/;function _e(e){return ge.test(e)}function ve(e){let t=e.search(/[*?[{]/);if(t<=0)return;let n=e.slice(0,t).replace(/[/\\]+$/,``);return n.length>0?n:void 0}function ye(e,t){let n=U(e,t);if(_e(t)){let e=ve(n);if(e&&!(0,r.existsSync)(e))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}if(!(0,r.existsSync)(n))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return(0,i.isDirectory)(n)?{resolvedPath:n,source:[q(n)],isStyleDictionaryConfig:!1}:K(n)?{resolvedPath:n,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}function J(e){let{cwd:t,tokensPath:n,fallbackPaths:a=[]}=e,o=he(n);if(o.length>0){let e=o.map(e=>ye(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of g){let n=U(t,e);if((0,r.existsSync)(n)){if((0,i.isDirectory)(n))return{resolvedPath:n,source:[q(n)],origin:`default`};if(K(n))return{resolvedPath:n,source:[],origin:`default`};if(G(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of a){if(!e)continue;let n=U(t,e);if(!(!(0,r.existsSync)(n)||(0,i.isDirectory)(n))&&(G(n)||W(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function Y(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(v)?.[1]?.toLowerCase()}function be(e){let t=e,n=new Set;for(;t!=null&&!n.has(t);){if(n.add(t),typeof t==`function`)return t;if(typeof t==`object`&&`default`in t){t=t.default;continue}break}throw TypeError(`style-dictionary did not export a constructable StyleDictionary class.`)}const xe=be(u.default);function X(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function Se(e){let t=await(0,c.importModule)(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function Z(e,t){let n=V(e.plugins),r=new xe({...t,parsers:[...n.parserNames,...t.parsers??[]],preprocessors:[...n.preprocessorNames,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...n.parsers,...t.hooks?.parsers},preprocessors:{...n.preprocessors,...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}},j(e.verbose));return await r.hasInitialized,r}async function Q(e,t){return t.length===0?{}:(await Z(e,{source:t})).tokens}async function Ce(e){return(await(0,l.default)(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function we(e,t){let n=await Ce(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=Y(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Q(e,t);let a={};if(i.length>0){let t=await Q(e,i);X(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Q(e,[...i,...n]);return a}async function $(e){let t=J(e.options);return t.resolvedPath&&(0,r.existsSync)(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test((0,n.basename)(t.resolvedPath))?(e.sd=await Z(e.options,await Se(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?we(e.options,t.source):Q(e.options,t.source)}async function Te(e){let t=await $(e);if(X(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:(0,o.isSetString)(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return me}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return g}});
@@ -0,0 +1,8 @@
1
+ import{m as e,n as t}from"./utils-CDYdsyyW.mjs";import{basename as n,isAbsolute as r,resolve as i}from"node:path";import{existsSync as a}from"@stryke/fs/exists";import{isDirectory as o}from"@stryke/fs/is-file";import{joinPaths as s}from"@stryke/path/join";import{isSetString as c}from"@stryke/type-checks/is-set-string";import{isFunction as l}from"@stryke/type-checks/is-function";import{importModule as u}from"@stryke/fs/resolve";import d from"fast-glob";import f from"style-dictionary";import{logVerbosityLevels as ee}from"style-dictionary/enums";import te from"json5";import{parse as ne}from"smol-toml";import{parse as re}from"yaml";const p=[`razorwind-json`,`razorwind-yaml`,`razorwind-toml`,`razorwind-css`],m=[`json`,`json5`,`jsonc`,`yaml`,`yml`,`toml`,`css`,`js`,`mjs`,`cjs`,`ts`,`mts`,`cts`],h=m.join(`,`),g=[`tokens.json`,`tokens.json5`,`tokens.jsonc`,`tokens.yaml`,`tokens.yml`,`tokens.toml`,`tokens.css`,`design-tokens.json`,`design-tokens.yaml`,`design-tokens.yml`,`tokens`,`design-tokens`,`src/tokens`,`src/design-tokens`,`packages/tokens`,`style-dictionary.config.js`,`style-dictionary.config.mjs`,`style-dictionary.config.ts`,`sd.config.js`,`sd.config.mjs`,`sd.config.ts`],_=`**/*.{${h}}`,v=/^(light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)([._-].+)?$/i,y={color:`color`,colours:`color`,colors:`color`,colour:`color`,palette:`color`,bg:`color`,background:`color`,foreground:`color`,fg:`color`,border:`color`,fill:`color`,stroke:`color`,spacing:`dimension`,space:`dimension`,size:`dimension`,sizes:`dimension`,sizing:`dimension`,gap:`dimension`,radius:`dimension`,radii:`dimension`,rounded:`dimension`,width:`dimension`,height:`dimension`,dimension:`dimension`,dimensions:`dimension`,duration:`duration`,durations:`duration`,time:`duration`,delay:`duration`,animation:`duration`,motion:`duration`,transition:`duration`,font:`fontFamily`,fonts:`fontFamily`,fontfamily:`fontFamily`,"font-family":`fontFamily`,typeface:`fontFamily`,fontweight:`fontWeight`,"font-weight":`fontWeight`,weight:`fontWeight`,opacity:`number`,opacities:`number`,zindex:`number`,"z-index":`number`,lineheight:`number`,"line-height":`number`,letterspacing:`dimension`,"letter-spacing":`dimension`,shadow:`shadow`,shadows:`shadow`,elevation:`shadow`,gradient:`gradient`,gradients:`gradient`,typography:`typography`,text:`typography`,cubicbezier:`cubicBezier`,easing:`cubicBezier`,ease:`cubicBezier`},ie=/^#(?:[0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i,ae=/^rgba?\(\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+%?)(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,oe=/^hsla?\(\s*([+\d.]+)[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%[\x09-\x0D\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*(?: |(?: \s*)?,)\s*([+\d.]+)%(?:\s*[,/]\s*([+\d.]+%?))?\s*\)$/i,se=/^oklch\(\s*([+\d.]+%?|none)\s+([+\d.]+|none)\s+([+\d.]+|none)(?:\s*\/\s*([+\d.]+%?))?\s*\)$/i,ce=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(px|rem|em|%|vh|vw|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/i,le=/^([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*(ms|s)$/i,ue=/^cubic-bezier\(\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*,\s*([+-]?(?:\d+(?:\.\d+)?|\.\d+))\s*\)$/i,de=/^var\(\s*(--[\w-]+)\s*(?:,\s*(?:\S.*|[\t\v\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]))?\)\s*$/i,b=/^\{[^{}]+\}$/,x={thin:100,hairline:100,extralight:200,"extra-light":200,ultralight:200,light:300,normal:400,regular:400,book:400,medium:500,semibold:600,"semi-bold":600,demibold:600,bold:700,extrabold:800,"extra-bold":800,ultrabold:800,black:900,heavy:900},S=new Set([`px`,`rem`]);function C(e){return Math.min(1,Math.max(0,e))}function w(e,t=100){let n=e.trim();if(n.endsWith(`%`))return C(Number.parseFloat(n)/t);let r=Number.parseFloat(n);return C(r>1?r/255:r)}function fe(e){let t=e.slice(1);return t.length===3||t.length===4?`#${[...t].map(e=>e+e).join(``)}`:(e.length===7||e.length,e)}function pe(e){let t=fe(e.toLowerCase()).slice(1),n=Number.parseInt(t.slice(0,2),16)/255,r=Number.parseInt(t.slice(2,4),16)/255,i=Number.parseInt(t.slice(4,6),16)/255,a=t.length===8?Number.parseInt(t.slice(6,8),16)/255:void 0;return{colorSpace:`srgb`,components:[n,r,i],...a===void 0||a===1?{}:{alpha:a},hex:`#${t.slice(0,6)}`}}function me(e){return`{${e.replace(/^--/,``).split(`-`).filter(Boolean).join(`.`)}}`}function T(e){for(let t=e.length-1;t>=0;t--){let n=e[t]?.toLowerCase();if(!n)continue;let r=y[n];if(r)return r}}function E(e,n=[]){let r=T(n);if(typeof e==`string`){let t=e.trim();if(b.test(t))return{value:t,type:r};let i=t.match(de);if(i?.[1])return{value:me(i[1]),type:r};if(ie.test(t))return{value:pe(t),type:`color`};let a=t.match(ae);if(a){let e=[w(a[1]),w(a[2]),w(a[3])],t=a[4]?a[4].endsWith(`%`)?C(Number.parseFloat(a[4])/100):C(Number.parseFloat(a[4])):void 0;return{value:{colorSpace:`srgb`,components:e,...t===void 0||Number.isNaN(t)?{}:{alpha:t}},type:`color`}}let o=t.match(oe);if(o)return{value:{colorSpace:`hsl`,components:[Number.parseFloat(o[1]),Number.parseFloat(o[2]),Number.parseFloat(o[3])],...o[4]?{alpha:o[4].endsWith(`%`)?C(Number.parseFloat(o[4])/100):C(Number.parseFloat(o[4]))}:{}},type:`color`};let s=t.match(se);if(s){let e=e=>e===`none`?`none`:e.endsWith(`%`)?Number.parseFloat(e)/100:Number.parseFloat(e);return{value:{colorSpace:`oklch`,components:[e(s[1]),e(s[2]),e(s[3])],...s[4]?{alpha:s[4].endsWith(`%`)?C(Number.parseFloat(s[4])/100):C(Number.parseFloat(s[4]))}:{}},type:`color`}}let c=t.match(ce);if(c){let e=c[2].toLowerCase(),n=Number.parseFloat(c[1]);return S.has(e)?{value:{value:n,unit:e},type:`dimension`}:{value:t,type:r===`dimension`?void 0:r}}let l=t.match(le);if(l)return{value:{value:Number.parseFloat(l[1]),unit:l[2].toLowerCase()},type:`duration`};let u=t.match(ue);if(u)return{value:[Number.parseFloat(u[1]),Number.parseFloat(u[2]),Number.parseFloat(u[3]),Number.parseFloat(u[4])],type:`cubicBezier`};let d=x[t.toLowerCase()];return d===void 0?r===`fontFamily`||/family|font|typeface/i.test(n.at(-1)??``)?t.includes(`,`)?{value:t.split(`,`).map(e=>e.trim().replace(/^["']|["']$/g,``)),type:`fontFamily`}:{value:t.replace(/^["']|["']$/g,``),type:`fontFamily`}:r===`color`&&!t.startsWith(`{`)?{value:t,type:void 0}:{value:t,type:r}:{value:d,type:`fontWeight`}}if(typeof e==`number`)return r===`fontWeight`?{value:e,type:`fontWeight`}:r===`duration`?{value:{value:e,unit:`ms`},type:`duration`}:r===`dimension`?{value:{value:e,unit:`px`},type:`dimension`}:{value:e,type:r??`number`};if(Array.isArray(e))return e.length===4&&e.every(e=>typeof e==`number`)&&(r===`cubicBezier`||n.some(e=>/ease|bezier/i.test(e)))?{value:e,type:`cubicBezier`}:e.every(e=>typeof e==`string`)?{value:e,type:r??`fontFamily`}:{value:e,type:r};if(t(e)){if(`colorSpace`in e&&`components`in e)return{value:e,type:`color`};if(`value`in e&&`unit`in e){let t=String(e.unit).toLowerCase();return t===`ms`||t===`s`?{value:e,type:`duration`}:S.has(t)?{value:e,type:`dimension`}:{value:e,type:r}}}return{value:e,type:r}}function he(e,t){let n={...e};if(`value`in n&&!(`$value`in n)&&(n.$value=n.value,delete n.value),`type`in n&&!(`$type`in n)&&(n.$type=n.type,delete n.type),`comment`in n&&!(`$description`in n)&&(n.$description=n.comment,delete n.comment),`description`in n&&!(`$description`in n)&&(n.$description=n.description,delete n.description),`ref`in n&&!(`$ref`in n)&&(n.$ref=n.ref,delete n.ref),`$value`in n){let e=E(n.$value,t);n.$value=e.value,!(`$type`in n)&&e.type&&(n.$type=e.type)}return n}function D(n,r=[]){if(Array.isArray(n))return n.map((e,t)=>D(e,[...r,String(t)]));if(!t(n))return n;if(e(n))return he(n,r);let i={};for(let[e,t]of Object.entries(n)){if(e.startsWith(`$`)){i[e]=t;continue}i[e]=D(t,[...r,e])}if(!(`$type`in i)){let e=T(r);e&&r.length>0&&(i.$type=e)}return i}function O(n){let r={};for(let[i,a]of Object.entries(n)){let n=i.replace(/^--/,``).split(/[-./]/).filter(Boolean);if(n.length===0)continue;let o=r;for(let r=0;r<n.length-1;r++){let i=n[r],a=o[i];t(a)?e(a)&&(o[i]={DEFAULT:a}):o[i]={},o=o[i]}let s=n.at(-1),c=E(a,n),l={$value:c.value,...c.type?{$type:c.type}:{}},u=o[s];t(u)&&!e(u)?u.DEFAULT=l:o[s]=l}return D(r)}const ge=/(--[A-Z_][\w-]*)\s*:\s*([^;}{]+?)(?=\s*(?:;|\}|$))/gi;function k(e){let t={},n=e.split(` `).join(` `).replace(/\s*\{\s*/g,` {
2
+ `).replace(/;\s*/g,`;
3
+ `).replace(/,\s*/g,`, `).replace(/ *\}\s*/g,`}
4
+ `).replace(/\}\s*(.+)/g,`}
5
+ $1`).replace(/\n {4}([^:]+):\s*/g,`
6
+ $1: `).replace(/([a-z0-9-)])\}/gi,`$1;
7
+ }`).replace(/\/\*[\s\S]*?\*\//g,``);for(let e of n.matchAll(ge)){let n=e[1],r=e[2]?.trim();!n||!r||(t[n]=r)}return O(t)}function A(e){return e?{verbosity:ee.verbose}:{}}const j=`razorwind-infer`;function M(e){if(e==null)return{};if(typeof e!=`object`||Array.isArray(e))throw TypeError(`Token file must parse to a plain object.`);return D(e)}function N(e){try{return M(te.parse(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse JSON token file: ${t}`)}}function P(e){try{return M(re(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse YAML token file: ${t}`)}}function F(e){try{return M(ne(e))}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to parse TOML token file: ${t}`)}}const I=[{name:`razorwind-json`,pattern:/\.json[c5]?$/i,parser:({contents:e})=>N(e)},{name:`razorwind-yaml`,pattern:/\.ya?ml$/i,parser:({contents:e})=>P(e)},{name:`razorwind-toml`,pattern:/\.toml$/i,parser:({contents:e})=>F(e)},{name:`razorwind-css`,pattern:/\.css$/i,parser:({contents:e})=>D(k(e))}];function L(){return Object.fromEntries(I.map(({name:e,pattern:t,parser:n})=>[e,{pattern:t,parser:n}]))}function R(e){return D(e)}function z(){return{[j]:R}}function B(e=[]){let t={...L()},n={...z()},r=[...p],i=[j],a=0,o=0;for(let s of e){for(let e of s.parsers??[]){let n=e.name??`${s.name}-parser-${a}`;t[n]={pattern:e.pattern,parser:({contents:t})=>e.parser(t)},r.push(n),a++}for(let e of s.preprocessors??[]){let t=l(e)?{name:`${s.name}-preprocessor-${o}`,preprocessor:e}:{name:e.name??`${s.name}-preprocessor-${o}`,preprocessor:e.preprocessor};n[t.name]=t.preprocessor,i.push(t.name),o++}}return{parsers:t,preprocessors:n,parserNames:r,preprocessorNames:i}}function V(e=[],t=f){let n=B(e);if(typeof t.registerParser==`function`)for(let[e,r]of Object.entries(n.parsers))t.registerParser({name:e,...r});if(typeof t.registerPreprocessor==`function`)for(let[e,r]of Object.entries(n.preprocessors))t.registerPreprocessor({name:e,preprocessor:r});return n}const _e=V;function H(e,t){return r(t)?t:i(e,t)}function U(e){return/\.([^.]+)$/.exec(e)?.[1]?.toLowerCase()??``}function W(e){return m.includes(U(e))}function G(e){let t=e.split(/[/\\]/).pop()?.toLowerCase()??``;return t.startsWith(`style-dictionary.config.`)||t.startsWith(`sd.config.`)}function K(e){return s(e,_)}function ve(e){return Array.isArray(e)?e.filter(c):c(e)?[e]:[]}const ye=/[*?[\]{}]/;function be(e){return ye.test(e)}function xe(e){let t=e.search(/[*?[{]/);if(t<=0)return;let n=e.slice(0,t).replace(/[/\\]+$/,``);return n.length>0?n:void 0}function Se(e,t){let n=H(e,t);if(be(t)){let e=xe(n);if(e&&!a(e))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}if(!a(n))throw Error(`tokensPath "${t}" does not exist (resolved: ${n}).`);return o(n)?{resolvedPath:n,source:[K(n)],isStyleDictionaryConfig:!1}:G(n)?{resolvedPath:n,source:[],isStyleDictionaryConfig:!0}:{resolvedPath:n,source:[n],isStyleDictionaryConfig:!1}}function q(e){let{cwd:t,tokensPath:n,fallbackPaths:r=[]}=e,i=ve(n);if(i.length>0){let e=i.map(e=>Se(t,e)),n=e.filter(e=>e.isStyleDictionaryConfig);if(n.length>0){if(e.length>1)throw Error(`tokensPath cannot mix Style Dictionary config files with other token sources.`);return{resolvedPath:n[0].resolvedPath,source:[],origin:`tokensPath`}}return{resolvedPath:e[0]?.resolvedPath,source:e.flatMap(e=>e.source),origin:`tokensPath`}}for(let e of g){let n=H(t,e);if(a(n)){if(o(n))return{resolvedPath:n,source:[K(n)],origin:`default`};if(G(n))return{resolvedPath:n,source:[],origin:`default`};if(W(n))return{resolvedPath:n,source:[n],origin:`default`}}}for(let e of r){if(!e)continue;let n=H(t,e);if(!(!a(n)||o(n))&&(W(n)||U(n)===`css`))return{resolvedPath:n,source:[n],origin:`fallback`}}return{source:[],origin:`none`}}function J(e){return(e.split(/[/\\]/).pop()??``).replace(/\.[^.]+$/,``).match(v)?.[1]?.toLowerCase()}function Ce(e){let t=e,n=new Set;for(;t!=null&&!n.has(t);){if(n.add(t),typeof t==`function`)return t;if(typeof t==`object`&&`default`in t){t=t.default;continue}break}throw TypeError(`style-dictionary did not export a constructable StyleDictionary class.`)}const we=Ce(f);function Y(e){return!e||typeof e!=`object`||Object.keys(e).length===0}async function Te(e){let t=await u(e);return t&&typeof t==`object`&&`default`in t&&t.default?t.default:t}async function X(e,t){let n=B(e.plugins),r=new we({...t,parsers:[...n.parserNames,...t.parsers??[]],preprocessors:[...n.preprocessorNames,...t.preprocessors??[]],hooks:{...t.hooks,parsers:{...n.parsers,...t.hooks?.parsers},preprocessors:{...n.preprocessors,...t.hooks?.preprocessors}},usesDtcg:t.usesDtcg??!0,platforms:t.platforms??{}},A(e.verbose));return await r.hasInitialized,r}async function Z(e,t){return t.length===0?{}:(await X(e,{source:t})).tokens}async function Q(e){return(await d(e,{absolute:!0,onlyFiles:!0,unique:!0})).sort()}async function Ee(e,t){let n=await Q(t);if(n.length===0)return{};let r=new Map,i=[];for(let e of n){let t=J(e);if(t){let n=r.get(t)??[];n.push(e),r.set(t,n)}else i.push(e)}if(r.size<2)return Z(e,t);let a={};if(i.length>0){let t=await Z(e,i);Y(t)||(a.base=t)}for(let[t,n]of r)a[t]=await Z(e,[...i,...n]);return a}async function $(e){let t=q(e.options);return t.resolvedPath&&a(t.resolvedPath)&&/(?:^|[/\\])(?:style-dictionary|sd)\.config\./i.test(n(t.resolvedPath))?(e.sd=await X(e.options,await Te(t.resolvedPath)),e.sd.tokens):t.source.length===0?{}:e.options.splitThemes?Ee(e.options,t.source):Z(e.options,t.source)}async function De(e){let t=await $(e);if(Y(t)){let{tokensPath:t}=e.options,n=Array.isArray(t)?t.length>0?`tokensPath=[${t.map(e=>`"${e}"`).join(`, `)}]`:`default token paths / CSS fallbacks`:c(t)?`tokensPath="${t}"`:`default token paths / CSS fallbacks`;throw Error(`No design tokens found via ${n}. Provide tokensPath or add a tokens file.`)}return t}export{p as C,m as S,O as _,J as a,v as b,L as c,V as d,_e as f,E as g,T as h,q as i,z as l,k as m,$ as n,j as o,A as p,De as r,B as s,Y as t,R as u,D as v,y as w,_ as x,g as y};
8
+ //# sourceMappingURL=tokens-DFYNBFFR.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens-DFYNBFFR.mjs","names":[],"sources":[],"mappings":""}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-BiL8zQzg.cjs");exports.TOKEN_SET_THEME_PATTERN=e.c,exports.createDocument=e.t,exports.flattenTokens=e.l,exports.formatColorValue=e.d,exports.formatDimensionValue=e.f,exports.formatTokenValue=e.p,exports.isObject=e.n,exports.resolveSchemaIdentity=e.i,exports.resolveTokenSets=e.u,exports.slugifyThemeName=e.a,exports.themeDisplayName=e.o,exports.titleCase=e.s,exports.toCssVar=e.r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../utils-DyK4l_bT.cjs");exports.TOKEN_SET_THEME_PATTERN=e.f,exports.appendThemeToFilePath=e.o,exports.applyThemeToDocuments=e.s,exports.applyThemeToTitle=e.c,exports.createDocument=e.t,exports.flattenTokens=e.p,exports.formatColorValue=e.g,exports.formatDimensionValue=e._,exports.formatTokenValue=e.v,exports.isObject=e.n,exports.isTokenLeaf=e.m,exports.mergeTokenTrees=e.d,exports.resolveSchemaIdentity=e.a,exports.resolveTokenSets=e.h,exports.slugifyThemeName=e.u,exports.themeDisplayName=e.i,exports.titleCase=e.l,exports.toCssVar=e.r;
@@ -1,79 +1,57 @@
1
- import { t as Schema } from "../schema-Crr8KMUY.cjs";
2
- import { n as Tokens } from "../index-DovYOOtL.cjs";
3
- import { GeneratorFunctionResult } from "@power-plant/core";
4
- //#region src/utils/token-format.d.ts
5
- /**
6
- * Convert a DTCG color `$value` (string, hex/alpha object, or
7
- * colorSpace/components object) into a CSS-friendly color string.
8
- */
9
- declare function formatColorValue(value: unknown): string | undefined;
10
- /**
11
- * Convert a DTCG dimension/duration `$value` (number, string, or
12
- * value/unit object) into a CSS-friendly string.
13
- */
14
- declare function formatDimensionValue(value: unknown): string | undefined;
1
+ import { t as Schema } from "../schema-BwOBgJIM.cjs";
2
+ import { n as Tokens } from "../index-CwN0c1Q4.cjs";
3
+ import { a as flattenTokens, i as TokenSet, n as FlattenTokensOptions, o as isTokenLeaf, r as TOKEN_SET_THEME_PATTERN, s as resolveTokenSets, t as BaseFlatToken } from "../flatten-tokens-CMlVe_J6.cjs";
4
+ import { GeneratedDocument, GeneratorFunctionResult } from "@power-plant/core";
5
+ //#region src/utils/merge-tokens.d.ts
15
6
  /**
16
- * Convert a DTCG `$value` into a CSS-friendly string, dispatching on `type`
17
- * (or, when `type` is omitted, on the shape of `value`).
7
+ * Deep-merge token **groups**, replacing token leaves atomically.
8
+ *
9
+ * Unlike `defu`, this does not concatenate arrays inside `$value` (color
10
+ * `components`, cubicBezier lists, shadow layers). Theme `override` wins
11
+ * for leaves and `$`-prefixed group metadata.
18
12
  */
19
- declare function formatTokenValue(value: unknown, type?: string): string;
13
+ declare function mergeTokenTrees(override: Tokens, base: Tokens): Tokens;
20
14
  //#endregion
21
- //#region src/utils/flatten-tokens.d.ts
22
- /**
23
- * A flattened design token row produced by {@link flattenTokens}.
24
- */
25
- interface BaseFlatToken {
26
- /** Dot-separated token path (e.g. `color.primary`). */
27
- path: string;
28
- /** DTCG `$type`, when known. */
29
- type?: string;
30
- /** Raw `$value` from the token document. */
31
- value: unknown;
32
- /** CSS-friendly string form of {@link value}. */
33
- cssValue: string;
34
- /** Optional DTCG `$description`. */
15
+ //#region src/utils/schema-identity.d.ts
16
+ /** Design-system identity resolved for generated artifacts. */
17
+ interface SchemaIdentity {
18
+ name?: string;
19
+ title?: string;
35
20
  description?: string;
36
- /** Theme / set id when tokens are a `Record<string, Tokens>`. */
37
- theme?: string;
38
- }
39
- interface TokenSet {
40
- id: string;
41
- tokens: Tokens;
21
+ repository?: string;
22
+ homepage?: string;
23
+ logo?: string;
42
24
  }
43
25
  /**
44
- * Theme-like keys for splitting multi-theme token records.
45
- *
46
- * Extends core {@link ../lib/tokens/constants#THEME_BASENAME_PATTERN} with
47
- * camelCase suffixes from `@razorwind/color-variants` (e.g. `darkHighContrast`).
48
- */
49
- declare const TOKEN_SET_THEME_PATTERN: RegExp;
50
- /**
51
- * Split `Schema.tokens` into one or more named token sets.
52
- *
53
- * A record whose keys all look like themes (`light`, `dark`, …) is treated as
54
- * multi-theme input; otherwise the whole document is a single set.
26
+ * Plugin / call-site overrides. `displayName` aliases `title`; `icon` aliases
27
+ * `logo` (VS Code / Cursor extension field names).
55
28
  */
56
- declare function resolveTokenSets(tokens: Tokens | Record<string, Tokens>): TokenSet[];
57
- interface FlattenTokensOptions<T extends BaseFlatToken = BaseFlatToken> {
58
- /** When set, only tokens whose `$type` is listed are returned. */
59
- includeTypes?: readonly string[];
60
- /** Map each base row before it is appended (e.g. add `cssVar`). */
61
- enrichToken?: (token: BaseFlatToken) => T;
29
+ interface SchemaIdentityOverrides {
30
+ name?: string;
31
+ title?: string;
32
+ displayName?: string;
33
+ description?: string;
34
+ repository?: string;
35
+ homepage?: string;
36
+ logo?: string;
37
+ icon?: string;
62
38
  }
63
39
  /**
64
- * Flatten DTCG token trees into rows for theme mapping or documentation.
40
+ * Resolve design-system identity for generators.
41
+ *
42
+ * Precedence: plugin overrides → {@link Schema} fields → title-cased name.
43
+ * When {@link Schema.theme} is set, titles gain a ` (<Theme>)` suffix.
65
44
  */
66
- declare function flattenTokens<T extends BaseFlatToken = BaseFlatToken>(tokens: Tokens | Record<string, Tokens>, options?: FlattenTokensOptions<T>): T[];
45
+ declare function resolveSchemaIdentity(spec: Pick<Schema, "name" | "title" | "description" | "repository" | "homepage" | "logo" | "theme">, overrides?: SchemaIdentityOverrides): SchemaIdentity;
67
46
  //#endregion
68
- //#region src/utils/title-case.d.ts
47
+ //#region src/utils/slugify-theme-name.d.ts
69
48
  /**
70
- * Convert a slug or identifier into title case for display labels.
49
+ * Convert a theme name into a filesystem-safe slug.
71
50
  *
72
51
  * @example
73
- * titleCase("my-dark-theme") // "My Dark Theme"
74
- * titleCase("darkHighContrast") // "Dark High Contrast"
52
+ * slugifyThemeName("My Dark Theme") // "my-dark-theme"
75
53
  */
76
- declare function titleCase(value: string): string;
54
+ declare function slugifyThemeName(name: string): string;
77
55
  //#endregion
78
56
  //#region src/utils/theme-display-name.d.ts
79
57
  /** Theme-like object with optional human-readable label. */
@@ -87,45 +65,53 @@ interface ThemeNamed {
87
65
  */
88
66
  declare function themeDisplayName(theme: ThemeNamed): string;
89
67
  //#endregion
90
- //#region src/utils/slugify-theme-name.d.ts
68
+ //#region src/utils/theme-output.d.ts
91
69
  /**
92
- * Convert a theme name into a filesystem-safe slug.
70
+ * Append a title-cased theme label to a display title.
93
71
  *
94
72
  * @example
95
- * slugifyThemeName("My Dark Theme") // "my-dark-theme"
73
+ * applyThemeToTitle("My Theme", "dark") // "My Theme (Dark)"
96
74
  */
97
- declare function slugifyThemeName(name: string): string;
98
- //#endregion
99
- //#region src/utils/schema-identity.d.ts
100
- /** Design-system identity resolved for generated artifacts. */
101
- interface SchemaIdentity {
102
- name?: string;
103
- title?: string;
104
- description?: string;
105
- repository?: string;
106
- homepage?: string;
107
- logo?: string;
108
- }
75
+ declare function applyThemeToTitle(title: string | undefined, theme: string | undefined): string | undefined;
109
76
  /**
110
- * Plugin / call-site overrides. `displayName` aliases `title`; `icon` aliases
111
- * `logo` (VS Code / Cursor extension field names).
77
+ * Insert `-<theme>` before a file path's extension.
78
+ *
79
+ * @example
80
+ * appendThemeToFilePath("tokens.css", "dark") // "tokens-dark.css"
112
81
  */
113
- interface SchemaIdentityOverrides {
114
- name?: string;
115
- title?: string;
116
- displayName?: string;
117
- description?: string;
118
- repository?: string;
119
- homepage?: string;
120
- logo?: string;
121
- icon?: string;
122
- }
82
+ declare function appendThemeToFilePath(filePath: string, theme: string): string;
123
83
  /**
124
- * Resolve design-system identity for generators.
84
+ * Rewrite document record keys and {@link GeneratedDocument.path} with a
85
+ * theme suffix so per-theme generator passes do not collide.
86
+ */
87
+ declare function applyThemeToDocuments(documents: Record<string, GeneratedDocument>, theme: string): Record<string, GeneratedDocument>;
88
+ //#endregion
89
+ //#region src/utils/title-case.d.ts
90
+ /**
91
+ * Convert a slug or identifier into title case for display labels.
125
92
  *
126
- * Precedence: plugin overrides → {@link Schema} fields → title-cased name.
93
+ * @example
94
+ * titleCase("my-dark-theme") // "My Dark Theme"
95
+ * titleCase("darkHighContrast") // "Dark High Contrast"
127
96
  */
128
- declare function resolveSchemaIdentity(spec: Pick<Schema, "name" | "title" | "description" | "repository" | "homepage" | "logo">, overrides?: SchemaIdentityOverrides): SchemaIdentity;
97
+ declare function titleCase(value: string): string;
98
+ //#endregion
99
+ //#region src/utils/token-format.d.ts
100
+ /**
101
+ * Convert a DTCG color `$value` (string, hex/alpha object, or
102
+ * colorSpace/components object) into a CSS-friendly color string.
103
+ */
104
+ declare function formatColorValue(value: unknown): string | undefined;
105
+ /**
106
+ * Convert a DTCG dimension/duration `$value` (number, string, or
107
+ * value/unit object) into a CSS-friendly string.
108
+ */
109
+ declare function formatDimensionValue(value: unknown): string | undefined;
110
+ /**
111
+ * Convert a DTCG `$value` into a CSS-friendly string, dispatching on `type`
112
+ * (or, when `type` is omitted, on the shape of `value`).
113
+ */
114
+ declare function formatTokenValue(value: unknown, type?: string): string;
129
115
  //#endregion
130
116
  //#region src/utils/index.d.ts
131
117
  declare function isObject(value: unknown): value is Record<string, unknown>;
@@ -143,5 +129,5 @@ declare function createDocument<TSchema, TOptions extends object>(path: string,
143
129
  name: string;
144
130
  }, language?: string): GeneratorFunctionResult<TSchema, TOptions>[string];
145
131
  //#endregion
146
- export { type BaseFlatToken, type FlattenTokensOptions, type SchemaIdentity, type SchemaIdentityOverrides, TOKEN_SET_THEME_PATTERN, type ThemeNamed, type TokenSet, createDocument, flattenTokens, formatColorValue, formatDimensionValue, formatTokenValue, isObject, resolveSchemaIdentity, resolveTokenSets, slugifyThemeName, themeDisplayName, titleCase, toCssVar };
132
+ export { type BaseFlatToken, type FlattenTokensOptions, type SchemaIdentity, type SchemaIdentityOverrides, TOKEN_SET_THEME_PATTERN, type ThemeNamed, type TokenSet, appendThemeToFilePath, applyThemeToDocuments, applyThemeToTitle, createDocument, flattenTokens, formatColorValue, formatDimensionValue, formatTokenValue, isObject, isTokenLeaf, mergeTokenTrees, resolveSchemaIdentity, resolveTokenSets, slugifyThemeName, themeDisplayName, titleCase, toCssVar };
147
133
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/utils/token-format.ts","../../src/utils/flatten-tokens.ts","../../src/utils/title-case.ts","../../src/utils/theme-display-name.ts","../../src/utils/slugify-theme-name.ts","../../src/utils/schema-identity.ts","../../src/utils/index.ts"],"mappings":";;;;;;;;iBA4BgB,iBAAiB;;;;;iBAuDjB,qBAAqB;;;;;iBAwBrB,iBAAiB,gBAAgB;;;;;;UC9EhC;;EAEf;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA;;UAGe;EACf;EACA,QAAQ;;;;;;;;cASG,yBAAuB;;;;;;;iBAwFpB,iBACd,QAAQ,SAAS,eAAe,UAC/B;UAqBc,qBAAqB,UAAU,gBAAgB;;EAE9D;;EAEA,eAAe,OAAO,kBAAkB;;;;;iBAM1B,cAAc,UAAU,gBAAgB,eACtD,QAAQ,SAAS,eAAe,SAChC,UAAS,qBAAqB,KAC7B;;;;;;;;;;iBCxJa,UAAU;;;;UCNT;EACf;EACA;;;;;;iBAOc,iBAAiB,OAAO;;;;;;;;;iBCNxB,iBAAiB;;;;UCFhB;EACf;EACA;EACA;EACA;EACA;EACA;;;;;;UAOe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;;;;iBAac,sBACd,MAAM,KACJ,gFAGF,YAAW,0BACV;;;iBC1Ca,SAAS,iBAAiB,SAAS;;;;;;;iBAkCnC,SAAS,cAAc;;;;iBAavB,eAAe,SAAS,yBACtC,cACA,iBACA;EAAQ;GACR,oBACC,wBAAwB,SAAS"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../../src/utils/merge-tokens.ts","../../src/utils/schema-identity.ts","../../src/utils/slugify-theme-name.ts","../../src/utils/theme-display-name.ts","../../src/utils/theme-output.ts","../../src/utils/title-case.ts","../../src/utils/token-format.ts","../../src/utils/index.ts"],"mappings":";;;;;;;;;;;;iBAiCgB,gBAAgB,UAAU,QAAQ,MAAM,SAAS;;;;UCVhD;EACf;EACA;EACA;EACA;EACA;EACA;;;;;;UAOe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;;;;;;iBAec,sBACd,MAAM,KACJ,0FASF,YAAW,0BACV;;;;;;;;;iBC/Ca,iBAAiB;;;;UCHhB;EACf;EACA;;;;;;iBAOc,iBAAiB,OAAO;;;;;;;;;iBCDxB,kBACd,2BACA;;;;;;;iBAoBc,sBAAsB,kBAAkB;;;;;iBAkBxC,sBACd,WAAW,eAAe,oBAC1B,gBACC,eAAe;;;;;;;;;;iBC7CF,UAAU;;;;;;;iBCCV,iBAAiB;;;;;iBAuDjB,qBAAqB;;;;;iBAwBrB,iBAAiB,gBAAgB;;;iBCvFjC,SAAS,iBAAiB,SAAS;;;;;;;iBAyCnC,SAAS,cAAc;;;;iBAavB,eAAe,SAAS,yBACtC,cACA,iBACA;EAAQ;GACR,oBACC,wBAAwB,SAAS"}
@@ -1,79 +1,57 @@
1
- import { t as Schema } from "../schema-Crr8KMUY.mjs";
2
- import { n as Tokens } from "../index-ktFi0nZL.mjs";
3
- import { GeneratorFunctionResult } from "@power-plant/core";
4
- //#region src/utils/token-format.d.ts
5
- /**
6
- * Convert a DTCG color `$value` (string, hex/alpha object, or
7
- * colorSpace/components object) into a CSS-friendly color string.
8
- */
9
- declare function formatColorValue(value: unknown): string | undefined;
10
- /**
11
- * Convert a DTCG dimension/duration `$value` (number, string, or
12
- * value/unit object) into a CSS-friendly string.
13
- */
14
- declare function formatDimensionValue(value: unknown): string | undefined;
1
+ import { t as Schema } from "../schema-BwOBgJIM.mjs";
2
+ import { n as Tokens } from "../index-D5L2WXYk.mjs";
3
+ import { a as flattenTokens, i as TokenSet, n as FlattenTokensOptions, o as isTokenLeaf, r as TOKEN_SET_THEME_PATTERN, s as resolveTokenSets, t as BaseFlatToken } from "../flatten-tokens-DgTPHEhI.mjs";
4
+ import { GeneratedDocument, GeneratorFunctionResult } from "@power-plant/core";
5
+ //#region src/utils/merge-tokens.d.ts
15
6
  /**
16
- * Convert a DTCG `$value` into a CSS-friendly string, dispatching on `type`
17
- * (or, when `type` is omitted, on the shape of `value`).
7
+ * Deep-merge token **groups**, replacing token leaves atomically.
8
+ *
9
+ * Unlike `defu`, this does not concatenate arrays inside `$value` (color
10
+ * `components`, cubicBezier lists, shadow layers). Theme `override` wins
11
+ * for leaves and `$`-prefixed group metadata.
18
12
  */
19
- declare function formatTokenValue(value: unknown, type?: string): string;
13
+ declare function mergeTokenTrees(override: Tokens, base: Tokens): Tokens;
20
14
  //#endregion
21
- //#region src/utils/flatten-tokens.d.ts
22
- /**
23
- * A flattened design token row produced by {@link flattenTokens}.
24
- */
25
- interface BaseFlatToken {
26
- /** Dot-separated token path (e.g. `color.primary`). */
27
- path: string;
28
- /** DTCG `$type`, when known. */
29
- type?: string;
30
- /** Raw `$value` from the token document. */
31
- value: unknown;
32
- /** CSS-friendly string form of {@link value}. */
33
- cssValue: string;
34
- /** Optional DTCG `$description`. */
15
+ //#region src/utils/schema-identity.d.ts
16
+ /** Design-system identity resolved for generated artifacts. */
17
+ interface SchemaIdentity {
18
+ name?: string;
19
+ title?: string;
35
20
  description?: string;
36
- /** Theme / set id when tokens are a `Record<string, Tokens>`. */
37
- theme?: string;
38
- }
39
- interface TokenSet {
40
- id: string;
41
- tokens: Tokens;
21
+ repository?: string;
22
+ homepage?: string;
23
+ logo?: string;
42
24
  }
43
25
  /**
44
- * Theme-like keys for splitting multi-theme token records.
45
- *
46
- * Extends core {@link ../lib/tokens/constants#THEME_BASENAME_PATTERN} with
47
- * camelCase suffixes from `@razorwind/color-variants` (e.g. `darkHighContrast`).
48
- */
49
- declare const TOKEN_SET_THEME_PATTERN: RegExp;
50
- /**
51
- * Split `Schema.tokens` into one or more named token sets.
52
- *
53
- * A record whose keys all look like themes (`light`, `dark`, …) is treated as
54
- * multi-theme input; otherwise the whole document is a single set.
26
+ * Plugin / call-site overrides. `displayName` aliases `title`; `icon` aliases
27
+ * `logo` (VS Code / Cursor extension field names).
55
28
  */
56
- declare function resolveTokenSets(tokens: Tokens | Record<string, Tokens>): TokenSet[];
57
- interface FlattenTokensOptions<T extends BaseFlatToken = BaseFlatToken> {
58
- /** When set, only tokens whose `$type` is listed are returned. */
59
- includeTypes?: readonly string[];
60
- /** Map each base row before it is appended (e.g. add `cssVar`). */
61
- enrichToken?: (token: BaseFlatToken) => T;
29
+ interface SchemaIdentityOverrides {
30
+ name?: string;
31
+ title?: string;
32
+ displayName?: string;
33
+ description?: string;
34
+ repository?: string;
35
+ homepage?: string;
36
+ logo?: string;
37
+ icon?: string;
62
38
  }
63
39
  /**
64
- * Flatten DTCG token trees into rows for theme mapping or documentation.
40
+ * Resolve design-system identity for generators.
41
+ *
42
+ * Precedence: plugin overrides → {@link Schema} fields → title-cased name.
43
+ * When {@link Schema.theme} is set, titles gain a ` (<Theme>)` suffix.
65
44
  */
66
- declare function flattenTokens<T extends BaseFlatToken = BaseFlatToken>(tokens: Tokens | Record<string, Tokens>, options?: FlattenTokensOptions<T>): T[];
45
+ declare function resolveSchemaIdentity(spec: Pick<Schema, "name" | "title" | "description" | "repository" | "homepage" | "logo" | "theme">, overrides?: SchemaIdentityOverrides): SchemaIdentity;
67
46
  //#endregion
68
- //#region src/utils/title-case.d.ts
47
+ //#region src/utils/slugify-theme-name.d.ts
69
48
  /**
70
- * Convert a slug or identifier into title case for display labels.
49
+ * Convert a theme name into a filesystem-safe slug.
71
50
  *
72
51
  * @example
73
- * titleCase("my-dark-theme") // "My Dark Theme"
74
- * titleCase("darkHighContrast") // "Dark High Contrast"
52
+ * slugifyThemeName("My Dark Theme") // "my-dark-theme"
75
53
  */
76
- declare function titleCase(value: string): string;
54
+ declare function slugifyThemeName(name: string): string;
77
55
  //#endregion
78
56
  //#region src/utils/theme-display-name.d.ts
79
57
  /** Theme-like object with optional human-readable label. */
@@ -87,45 +65,53 @@ interface ThemeNamed {
87
65
  */
88
66
  declare function themeDisplayName(theme: ThemeNamed): string;
89
67
  //#endregion
90
- //#region src/utils/slugify-theme-name.d.ts
68
+ //#region src/utils/theme-output.d.ts
91
69
  /**
92
- * Convert a theme name into a filesystem-safe slug.
70
+ * Append a title-cased theme label to a display title.
93
71
  *
94
72
  * @example
95
- * slugifyThemeName("My Dark Theme") // "my-dark-theme"
73
+ * applyThemeToTitle("My Theme", "dark") // "My Theme (Dark)"
96
74
  */
97
- declare function slugifyThemeName(name: string): string;
98
- //#endregion
99
- //#region src/utils/schema-identity.d.ts
100
- /** Design-system identity resolved for generated artifacts. */
101
- interface SchemaIdentity {
102
- name?: string;
103
- title?: string;
104
- description?: string;
105
- repository?: string;
106
- homepage?: string;
107
- logo?: string;
108
- }
75
+ declare function applyThemeToTitle(title: string | undefined, theme: string | undefined): string | undefined;
109
76
  /**
110
- * Plugin / call-site overrides. `displayName` aliases `title`; `icon` aliases
111
- * `logo` (VS Code / Cursor extension field names).
77
+ * Insert `-<theme>` before a file path's extension.
78
+ *
79
+ * @example
80
+ * appendThemeToFilePath("tokens.css", "dark") // "tokens-dark.css"
112
81
  */
113
- interface SchemaIdentityOverrides {
114
- name?: string;
115
- title?: string;
116
- displayName?: string;
117
- description?: string;
118
- repository?: string;
119
- homepage?: string;
120
- logo?: string;
121
- icon?: string;
122
- }
82
+ declare function appendThemeToFilePath(filePath: string, theme: string): string;
123
83
  /**
124
- * Resolve design-system identity for generators.
84
+ * Rewrite document record keys and {@link GeneratedDocument.path} with a
85
+ * theme suffix so per-theme generator passes do not collide.
86
+ */
87
+ declare function applyThemeToDocuments(documents: Record<string, GeneratedDocument>, theme: string): Record<string, GeneratedDocument>;
88
+ //#endregion
89
+ //#region src/utils/title-case.d.ts
90
+ /**
91
+ * Convert a slug or identifier into title case for display labels.
125
92
  *
126
- * Precedence: plugin overrides → {@link Schema} fields → title-cased name.
93
+ * @example
94
+ * titleCase("my-dark-theme") // "My Dark Theme"
95
+ * titleCase("darkHighContrast") // "Dark High Contrast"
127
96
  */
128
- declare function resolveSchemaIdentity(spec: Pick<Schema, "name" | "title" | "description" | "repository" | "homepage" | "logo">, overrides?: SchemaIdentityOverrides): SchemaIdentity;
97
+ declare function titleCase(value: string): string;
98
+ //#endregion
99
+ //#region src/utils/token-format.d.ts
100
+ /**
101
+ * Convert a DTCG color `$value` (string, hex/alpha object, or
102
+ * colorSpace/components object) into a CSS-friendly color string.
103
+ */
104
+ declare function formatColorValue(value: unknown): string | undefined;
105
+ /**
106
+ * Convert a DTCG dimension/duration `$value` (number, string, or
107
+ * value/unit object) into a CSS-friendly string.
108
+ */
109
+ declare function formatDimensionValue(value: unknown): string | undefined;
110
+ /**
111
+ * Convert a DTCG `$value` into a CSS-friendly string, dispatching on `type`
112
+ * (or, when `type` is omitted, on the shape of `value`).
113
+ */
114
+ declare function formatTokenValue(value: unknown, type?: string): string;
129
115
  //#endregion
130
116
  //#region src/utils/index.d.ts
131
117
  declare function isObject(value: unknown): value is Record<string, unknown>;
@@ -143,5 +129,5 @@ declare function createDocument<TSchema, TOptions extends object>(path: string,
143
129
  name: string;
144
130
  }, language?: string): GeneratorFunctionResult<TSchema, TOptions>[string];
145
131
  //#endregion
146
- export { type BaseFlatToken, type FlattenTokensOptions, type SchemaIdentity, type SchemaIdentityOverrides, TOKEN_SET_THEME_PATTERN, type ThemeNamed, type TokenSet, createDocument, flattenTokens, formatColorValue, formatDimensionValue, formatTokenValue, isObject, resolveSchemaIdentity, resolveTokenSets, slugifyThemeName, themeDisplayName, titleCase, toCssVar };
132
+ export { type BaseFlatToken, type FlattenTokensOptions, type SchemaIdentity, type SchemaIdentityOverrides, TOKEN_SET_THEME_PATTERN, type ThemeNamed, type TokenSet, appendThemeToFilePath, applyThemeToDocuments, applyThemeToTitle, createDocument, flattenTokens, formatColorValue, formatDimensionValue, formatTokenValue, isObject, isTokenLeaf, mergeTokenTrees, resolveSchemaIdentity, resolveTokenSets, slugifyThemeName, themeDisplayName, titleCase, toCssVar };
147
133
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/utils/token-format.ts","../../src/utils/flatten-tokens.ts","../../src/utils/title-case.ts","../../src/utils/theme-display-name.ts","../../src/utils/slugify-theme-name.ts","../../src/utils/schema-identity.ts","../../src/utils/index.ts"],"mappings":""}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/utils/merge-tokens.ts","../../src/utils/schema-identity.ts","../../src/utils/slugify-theme-name.ts","../../src/utils/theme-display-name.ts","../../src/utils/theme-output.ts","../../src/utils/title-case.ts","../../src/utils/token-format.ts","../../src/utils/index.ts"],"mappings":""}
@@ -1 +1 @@
1
- import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,p as c,r as l,s as u,t as d,u as f}from"../utils-B5uabOd5.mjs";export{t as TOKEN_SET_THEME_PATTERN,d as createDocument,a as flattenTokens,n as formatColorValue,r as formatDimensionValue,c as formatTokenValue,o as isObject,i as resolveSchemaIdentity,f as resolveTokenSets,e as slugifyThemeName,s as themeDisplayName,u as titleCase,l as toCssVar};
1
+ import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,t as h,u as g,v as _}from"../utils-CDYdsyyW.mjs";export{i as TOKEN_SET_THEME_PATTERN,d as appendThemeToFilePath,m as applyThemeToDocuments,n as applyThemeToTitle,h as createDocument,f as flattenTokens,a as formatColorValue,e as formatDimensionValue,_ as formatTokenValue,u as isObject,l as isTokenLeaf,r as mergeTokenTrees,t as resolveSchemaIdentity,o as resolveTokenSets,g as slugifyThemeName,s as themeDisplayName,c as titleCase,p as toCssVar};
@@ -0,0 +1,2 @@
1
+ import{isObject as e}from"@stryke/type-checks/is-object";import{format as t,parse as n}from"node:path";import{titleCase as r}from"@stryke/string-format/title-case";function i(t){return e(t)}function a(e){if(typeof e==`string`)return e;if(!i(e))return;if(typeof e.hex==`string`){let t=typeof e.alpha==`number`&&e.alpha<1?Math.round(e.alpha*255).toString(16).padStart(2,`0`):``;return`${e.hex}${t}`}let t=typeof e.colorSpace==`string`?e.colorSpace:void 0,n=Array.isArray(e.components)?e.components:void 0;if(!t||!n)return;let r=typeof e.alpha==`number`&&e.alpha<1?` / ${e.alpha}`:``;if(t===`srgb`&&n.length>=3){let[e,t,i]=n;if(typeof e==`number`&&typeof t==`number`&&typeof i==`number`)return`rgb(${Math.round(e*255)} ${Math.round(t*255)} ${Math.round(i*255)}${r})`}return`${t}(${n.map(e=>String(e)).join(` `)}${r})`}function o(e){if(typeof e==`number`)return String(e);if(typeof e==`string`)return e;if(i(e)&&typeof e.value==`number`&&typeof e.unit==`string`)return`${e.value}${e.unit}`}function s(e,t){if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);if(t===`color`||!t&&i(e)&&`colorSpace`in e){let t=a(e);if(t)return t}if(t===`dimension`||t===`duration`||i(e)&&`value`in e&&`unit`in e){let t=o(e);if(t)return t}if(t===`cubicBezier`&&Array.isArray(e))return`cubic-bezier(${e.join(`, `)})`;if(Array.isArray(e))return e.map(String).join(`, `);if(i(e)){let t=a(e);if(t)return t;let n=o(e);if(n)return n}try{return JSON.stringify(e)}catch{return String(e)}}function c(t){return e(t)}const l=/^(?:light|dark|dim|dimmed|high-contrast|hc|protanopia|deuteranopia|tritanopia|achromatopsia|achromatomaly|monochrome|monochromatic|grayscale|greyscale|bw|black-and-white|black-white|blackWhite|default|base|theme)(?:[A-Z]\w*|[._-].+)?$/i;function u(e){return`$value`in e||`value`in e||`$ref`in e||`ref`in e}function d(e){if(typeof e.$description==`string`)return e.$description;if(typeof e.description==`string`)return e.description}function f(e,t){return typeof e.$type==`string`?e.$type:typeof e.type==`string`?e.type:t}function p(e){if(`$value`in e)return e.$value;if(`value`in e)return e.value;if(typeof e.$ref==`string`)return e.$ref;if(typeof e.ref==`string`)return e.ref}function m(e,t,n,r,i,a){if(!c(e))return;let o=f(e,n);if(u(e)){let n=p(e),c={path:t.join(`.`),type:o,value:n,cssValue:s(n,o),description:d(e),theme:r};a.push(i?i(c):c);return}for(let[n,s]of Object.entries(e))n.startsWith(`$`)||m(s,[...t,n],o,r,i,a)}function h(e){if(!c(e))return[];let t=Object.keys(e).filter(e=>!e.startsWith(`$`));if(t.length>0&&t.every(e=>l.test(e))){let n=e;return t.map(e=>({id:e,tokens:n[e]}))}return[{id:`default`,tokens:e}]}function g(e,t={}){let n=t.includeTypes?new Set(t.includeTypes):void 0,r=[];for(let n of h(e)){let e=n.id==="default"?void 0:n.id;m(n.tokens,[],void 0,e,t.enrichToken,r)}return n?r.filter(e=>!e.type||n.has(e.type)):r}function _(t){return e(t)}function v(e,t){return y(e,t)}function y(e,t){if(!_(t))return e;if(!_(e))return e??t;if(u(t)||u(e))return e;let n={...t};for(let[t,r]of Object.entries(e)){if(t.startsWith(`$`)){n[t]=r;continue}n[t]=t in n?y(r,n[t]):r}return n}function b(e){return e.trim().toLowerCase().replaceAll(/[^a-z0-9]+/g,`-`).replaceAll(/^-+|-+$/g,``)}function x(e){return r(e)}function S(e,t){if(!e||!t)return e;let n=` (${x(t)})`;return e.endsWith(n)?e:`${e}${n}`}function C(e,r){let i=n(e);return i.name?t({root:i.root,dir:i.dir,ext:i.ext,name:`${i.name}-${b(r)}`}):e}function w(e,t){let n={};for(let[r,i]of Object.entries(e)){let e=C(r,t);n[e]={...i,path:i.path?C(i.path,t):e}}return n}function T(e){let t=e.lastIndexOf(`/`);return t>=0?e.slice(t+1):e}function E(e,t={}){let n=t.name??e.name,r=S(t.displayName??t.title??e.title??(n?x(T(n)):void 0),e.theme),i=t.description??e.description,a=t.repository??e.repository,o=t.homepage??e.homepage,s=t.icon??t.logo??e.logo;return{...n?{name:n}:{},...r?{title:r}:{},...i?{description:i}:{},...a?{repository:a}:{},...o?{homepage:o}:{},...s?{logo:s}:{}}}function D(e){return e.displayName??x(e.name)}function O(t){return e(t)}function k(e,t){return`--${t}-${e.split(`.`).filter(Boolean).join(`-`).replaceAll(/[^\w-]+/g,`-`)}`}function A(e,t,n,r){return{path:e,language:r,chunks:[{content:t,meta:n}]}}export{o as _,E as a,S as c,v as d,l as f,a as g,h,D as i,x as l,u as m,O as n,C as o,g as p,k as r,w as s,A as t,b as u,s as v};
2
+ //# sourceMappingURL=utils-CDYdsyyW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-CDYdsyyW.mjs","names":[],"sources":[],"mappings":""}