@mastors/core 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +940 -0
  3. package/api/_index.scss +5 -0
  4. package/dist/mastors-core.css +7419 -0
  5. package/dist/mastors-core.css.map +1 -0
  6. package/package.json +73 -0
  7. package/postinstall.js +41 -0
  8. package/scripts/generate-tokens.js +259 -0
  9. package/scss/abstracts/_index.scss +6 -0
  10. package/scss/abstracts/_maps.scss +9 -0
  11. package/scss/abstracts/_placeholders.scss +7 -0
  12. package/scss/accessibility/_focus.scss +21 -0
  13. package/scss/accessibility/_index.scss +7 -0
  14. package/scss/accessibility/_motion.scss +14 -0
  15. package/scss/accessibility/_print.scss +52 -0
  16. package/scss/accessibility/_screen-reader.scss +31 -0
  17. package/scss/api/_index.scss +14 -0
  18. package/scss/base/_box-sizing.scss +6 -0
  19. package/scss/base/_index.scss +7 -0
  20. package/scss/base/_reset.scss +59 -0
  21. package/scss/base/_root.scss +43 -0
  22. package/scss/base/_typography-base.scss +40 -0
  23. package/scss/config/_flags.scss +13 -0
  24. package/scss/config/_index.scss +12 -0
  25. package/scss/config/_settings.scss +18 -0
  26. package/scss/functions/_color.scss +66 -0
  27. package/scss/functions/_em.scss +28 -0
  28. package/scss/functions/_index.scss +15 -0
  29. package/scss/functions/_map-helpers.scss +29 -0
  30. package/scss/functions/_math.scss +40 -0
  31. package/scss/functions/_rem.scss +27 -0
  32. package/scss/functions/_string.scss +57 -0
  33. package/scss/functions/_vars.scss +49 -0
  34. package/scss/generators/_class-generator.scss +83 -0
  35. package/scss/generators/_custom-property-generator.scss +29 -0
  36. package/scss/generators/_index.scss +6 -0
  37. package/scss/generators/_responsive-generator.scss +28 -0
  38. package/scss/helpers/_clearfix.scss +9 -0
  39. package/scss/helpers/_index.scss +7 -0
  40. package/scss/helpers/_ratio.scss +22 -0
  41. package/scss/helpers/_truncate.scss +25 -0
  42. package/scss/helpers/_visually-hidden.scss +39 -0
  43. package/scss/index.scss +41 -0
  44. package/scss/mixins/_breakpoint.scss +33 -0
  45. package/scss/mixins/_container.scss +20 -0
  46. package/scss/mixins/_elevation.scss +12 -0
  47. package/scss/mixins/_index.scss +9 -0
  48. package/scss/mixins/_pseudo.scss +13 -0
  49. package/scss/mixins/_theme.scss +31 -0
  50. package/scss/mixins/_transition.scss +20 -0
  51. package/scss/responsive/_container-queries.scss +31 -0
  52. package/scss/responsive/_engine.scss +65 -0
  53. package/scss/responsive/_fluid-type.scss +40 -0
  54. package/scss/responsive/_index.scss +6 -0
  55. package/scss/semantic/_colors.scss +29 -0
  56. package/scss/semantic/_index.scss +6 -0
  57. package/scss/semantic/_spacing.scss +13 -0
  58. package/scss/semantic/_typography.scss +13 -0
  59. package/scss/themes/_base-theme.scss +28 -0
  60. package/scss/themes/_dark.scss +59 -0
  61. package/scss/themes/_index.scss +6 -0
  62. package/scss/themes/_light.scss +31 -0
  63. package/scss/tokens/_color.scss +100 -0
  64. package/scss/tokens/_index.scss +12 -0
  65. package/scss/tokens/_opacity.scss +28 -0
  66. package/scss/tokens/_radii.scss +21 -0
  67. package/scss/tokens/_shadows.scss +20 -0
  68. package/scss/tokens/_sizing.scss +47 -0
  69. package/scss/tokens/_spacing.scss +48 -0
  70. package/scss/tokens/_transitions.scss +27 -0
  71. package/scss/tokens/_typography.scss +63 -0
  72. package/scss/tokens/_z-index.scss +21 -0
  73. package/scss/utilities/_animation.scss +125 -0
  74. package/scss/utilities/_borders.scss +55 -0
  75. package/scss/utilities/_colors.scss +42 -0
  76. package/scss/utilities/_cursor.scss +28 -0
  77. package/scss/utilities/_display.scss +26 -0
  78. package/scss/utilities/_index.scss +20 -0
  79. package/scss/utilities/_interaction.scss +156 -0
  80. package/scss/utilities/_layout.scss +162 -0
  81. package/scss/utilities/_opacity.scss +9 -0
  82. package/scss/utilities/_overflow.scss +36 -0
  83. package/scss/utilities/_pointer-events.scss +6 -0
  84. package/scss/utilities/_position.scss +32 -0
  85. package/scss/utilities/_shadows.scss +11 -0
  86. package/scss/utilities/_sizing.scss +40 -0
  87. package/scss/utilities/_spacing.scss +42 -0
  88. package/scss/utilities/_transform.scss +43 -0
  89. package/scss/utilities/_typography.scss +163 -0
  90. package/scss/utilities/_z-index.scss +9 -0
  91. package/scss/variables/_breakpoints.scss +14 -0
  92. package/scss/variables/_container.scss +13 -0
  93. package/scss/variables/_global.scss +8 -0
  94. package/scss/variables/_grid.scss +7 -0
  95. package/scss/variables/_index.scss +7 -0
  96. package/scss/vendors/_index.scss +15 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sourceRoot":"","sources":["file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/base/_reset.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/base/_root.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/generators/_custom-property-generator.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/base/_typography-base.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/variables/_global.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/themes/_light.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/themes/_dark.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/responsive/_container-queries.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/helpers/_clearfix.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/accessibility/_screen-reader.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/helpers/_visually-hidden.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/helpers/_truncate.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/helpers/_ratio.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/generators/_class-generator.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_position.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_spacing.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/tokens/_spacing.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_sizing.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/tokens/_sizing.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_colors.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_borders.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/tokens/_radii.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_shadows.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/tokens/_shadows.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_opacity.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/tokens/_opacity.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_pointer-events.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_z-index.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/tokens/_z-index.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_transform.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_typography.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/tokens/_typography.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_layout.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_interaction.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/utilities/_animation.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/tokens/_transitions.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/accessibility/_focus.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/accessibility/_motion.scss","file:///D:/Web/Mastors%20CDN/Mastors/packages/core/scss/accessibility/_print.scss"],"names":[],"mappings":"AAMA;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAGF;EAAW;;;AC5CX;ECWM;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAZF;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;;;ACNJ;EACE,WCHe;EDIf,aCHiB;EDIjB,aCHiB;EDIjB;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;EAAK;;;AACL;EAAK;;;AACL;EAAK;;;AACL;EAAK;;;AACL;EAAK;;;AACL;EAAK;;;AAEL;EAAK;;;AAEL;EAAQ;;;AAER;EACE;EACA;;;AE7BF;AAAA;AAAA;EAGE;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;;;ACfA;AAAA;EAEE;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;;;ACvBJ;EAAc;;;AACd;EAAc;;;AACd;EAAc;;;AAKd;EACE;;;ACdF;EACE;EACA;EACA;;;ACCF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACfF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AChCF;EACE;EACA;EACA;;;AAKA;EACE;EACA,oBAHQ;EAIR;EACA;;;AAJF;EACE;EACA,oBAHQ;EAIR;EACA;;;AAJF;EACE;EACA,oBAHQ;EAIR;EACA;;;AAJF;EACE;EACA,oBAHQ;EAIR;EACA;;;AAJF;EACE;EACA,oBAHQ;EAIR;EACA;;;AAJF;EACE;EACA,oBAHQ;EAIR;EACA;;;AAKJ;EAAgB;EAA2B;;;AAC3C;EAAgB;;;AAChB;EAAgB;;;ACNd;EACE,cAXM;;;AAUR;EACE,cAXM;;;AAUR;EACE,cAXM;;;AAUR;EACE,cAXM;;;AAUR;EACE,cAXM;;;AAUR;EACE,cAXM;;;ACmBJ;EAII,SAZG;;;AAQP;EAII,SAZG;;;AAQP;EAII,SAZG;;;AAQP;EAII,SAZG;;;AAQP;EAII,SAZG;;;AAQP;EAII,SAZG;;;AAQP;EAII,SAZG;;;AAQP;EAII,SAZG;;;AAQP;EAII,SAZG;;;AAQP;EAII,SAZG;;;AAQP;EAII,SAZG;;;AAQP;EAII,SAZG;;;AAsBL;EA2BiB;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;;AAJf;EA2BiB;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;;AAJf;EA2BiB;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;;AAJf;EA2BiB;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;;AAJf;EA2BiB;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;;AAJf;EA2BiB;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;;EAuBE;IAIL,SA3BG;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Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADmBf;EAAc,SCnBC;;;ADoBf;EAAc,cCpBC;EDoBmB,eCpBnB;;;ADqBf;EAAc,aCrBC;EDqBkB,gBCrBlB;;;ADsBf;EAAc,aCtBC;;;ADuBf;EAAc,eCvBC;;;ADwBf;EAAc,gBCxBC;;;ADyBf;EAAc,cCzBC;;;AD0Bf;EAAc,sBC1BC;;;AD2Bf;EAAc,oBC3BC;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ADgCf;EAAiB,KChCF;;;ADiCf;EAAiB,YCjCF;;;ADkCf;EAAiB,SClCF;;;ACEf;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADEd;EAAa,OCFC;;;ADOd;EAAa,QCPC;;;ADOd;EAAa,QCPC;;;ADOd;EAAa,QCPC;;;ADOd;EAAa,QCPC;;;ADOd;EAAa,QCPC;;;ADOd;EAAa,QCPC;;;ADOd;EAAa,QCPC;;;ADOd;EAAa,QCPC;;;ADOd;EAAa,QCPC;;;ADOd;EAAa,QCPC;;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;;AD2CZ;EACE,2BC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,2BC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,2BC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,2BC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,2BC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,2BC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,wBC5CU;ED6CV,2BC7CU;;;AD2CZ;EACE,wBC5CU;ED6CV,2BC7CU;;;AD2CZ;EACE,wBC5CU;ED6CV,2BC7CU;;;AD2CZ;EACE,wBC5CU;ED6CV,2BC7CU;;;AD2CZ;EACE,wBC5CU;ED6CV,2BC7CU;;;AD2CZ;EACE,wBC5CU;ED6CV,2BC7CU;;;AD2CZ;EACE,wBC5CU;ED6CV,2BC7CU;;;AD2CZ;EACE,wBC5CU;ED6CV,2BC7CU;;;AD2CZ;EACE,wBC5CU;ED6CV,2BC7CU;;;AD2CZ;EACE,yBC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,yBC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,yBC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,yBC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,yBC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,yBC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,yBC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,yBC5CU;ED6CV,4BC7CU;;;AD2CZ;EACE,yBC5CU;ED6CV,4BC7CU;;;ACCd;EAAkB,YCDJ;;;ADCd;EAAkB,YCDJ;;;ADCd;EAAkB,YCDJ;;;ADCd;EAAkB,YCDJ;;;ADCd;EAAkB,YCDJ;;;ADCd;EAAkB,YCDJ;;;ADCd;EAAkB,YCDJ;;;ADCd;EAAkB,YCDJ;;;ADIhB;EAAU;;;AEHR;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ;;;ADCf;EAAmB,SCDJ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","sourcesContent":["// base/_reset.scss\n// Modern CSS reset / normalization layer.\n// ─────────────────────────────────────────────────────────────\n\n// Modern CSS reset — opinionated, minimal, predictable.\n\n*, *::before, *::after {\n box-sizing: border-box;\n}\n\n* {\n margin: 0;\n padding: 0;\n}\n\nhtml {\n text-size-adjust: 100%;\n tab-size: 4;\n scroll-behavior: smooth;\n}\n\nbody {\n line-height: inherit;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nimg, picture, video, canvas, svg {\n display: block;\n max-width: 100%;\n}\n\ninput, button, textarea, select {\n font: inherit;\n}\n\np, h1, h2, h3, h4, h5, h6 {\n overflow-wrap: break-word;\n}\n\nol, ul {\n list-style: none;\n}\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\nbutton, [role=\"button\"] {\n cursor: pointer;\n}\n\n[hidden] { display: none !important; }\n","// base/_root.scss\n// :root CSS custom property declarations.\n// ─────────────────────────────────────────────────────────────\n\n@use \"../tokens/color\" as ct;\n@use \"../tokens/spacing\" as sp;\n@use \"../tokens/typography\" as ty;\n@use \"../tokens/shadows\" as sh;\n@use \"../tokens/radii\" as ra;\n@use \"../tokens/transitions\" as tr;\n@use \"../tokens/z-index\" as zi;\n@use \"../tokens/opacity\" as op;\n@use \"../generators/custom-property-generator\" as gen;\n\n:root {\n // Color tokens — nested emit (primary-50, primary-100 …)\n @include gen.emit-nested-custom-properties(ct.$color-tokens, \"mastors-color\");\n\n // Spacing\n @include gen.emit-custom-properties(sp.$spacing-tokens, \"mastors-spacing\");\n\n // Typography\n @include gen.emit-custom-properties(ty.$font-size-tokens, \"mastors-font-size\");\n @include gen.emit-custom-properties(ty.$font-weight-tokens, \"mastors-font-weight\");\n @include gen.emit-custom-properties(ty.$line-height-tokens, \"mastors-leading\");\n @include gen.emit-custom-properties(ty.$letter-spacing-tokens, \"mastors-tracking\");\n\n // Radii\n @include gen.emit-custom-properties(ra.$radius-tokens, \"mastors-radius\");\n\n // Shadows\n @include gen.emit-custom-properties(sh.$shadow-tokens, \"mastors-shadow\");\n\n // Transitions\n @include gen.emit-custom-properties(tr.$duration-tokens, \"mastors-duration\");\n @include gen.emit-custom-properties(tr.$easing-tokens, \"mastors-easing\");\n\n // Z-index\n @include gen.emit-custom-properties(zi.$z-index-tokens, \"mastors-z\");\n\n // Opacity\n @include gen.emit-custom-properties(op.$opacity-tokens, \"mastors-opacity\");\n}\n","// generators/_custom-property-generator.scss\n// Emits CSS custom properties from SCSS token maps.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"sass:string\";\n\n/// Emit CSS custom properties from a token map onto a selector\n/// @param {Map} $map - token map (key → value)\n/// @param {String} $prefix - custom property prefix (e.g. \"mastors-color-primary\")\n@mixin emit-custom-properties($map, $prefix) {\n @each $key, $value in $map {\n --#{$prefix}-#{$key}: #{$value};\n }\n}\n\n/// Recursively emit nested token maps (e.g. color palette with scales)\n/// @param {Map} $map - nested map\n/// @param {String} $prefix - base prefix (e.g. \"mastors-color\")\n@mixin emit-nested-custom-properties($map, $prefix) {\n @each $key, $value in $map {\n @if meta.type-of($value) == map {\n @include emit-nested-custom-properties($value, \"#{$prefix}-#{$key}\");\n } @else {\n --#{$prefix}-#{$key}: #{$value};\n }\n }\n}\n","// base/_typography-base.scss\n// Base element typography (html, body, headings, p, a, etc.)\n// ─────────────────────────────────────────────────────────────\n\n@use \"../variables/global\" as vars;\n@use \"../tokens/typography\" as ty;\n\nhtml {\n font-size: vars.$base-font-size;\n line-height: vars.$base-line-height;\n font-family: vars.$base-font-family;\n color: var(--mastors-text);\n background-color: var(--mastors-bg);\n}\n\nbody {\n font-size: ty.font-size(\"base\");\n font-weight: ty.font-weight(\"normal\");\n}\n\nh1, h2, h3, h4, h5, h6 {\n font-weight: ty.font-weight(\"semibold\");\n line-height: ty.line-height(\"tight\");\n}\n\nh1 { font-size: ty.font-size(\"4xl\"); }\nh2 { font-size: ty.font-size(\"3xl\"); }\nh3 { font-size: ty.font-size(\"2xl\"); }\nh4 { font-size: ty.font-size(\"xl\"); }\nh5 { font-size: ty.font-size(\"lg\"); }\nh6 { font-size: ty.font-size(\"base\"); }\n\np { line-height: ty.line-height(\"relaxed\"); }\n\nsmall { font-size: ty.font-size(\"sm\"); }\n\ncode, kbd, samp, pre {\n font-family: ty.font-family(\"mono\");\n font-size: ty.font-size(\"sm\");\n}\n","// variables/_global.scss\n// Top-level global SCSS variables (prefix, base font size, etc.)\n// ─────────────────────────────────────────────────────────────\n\n$mastors-prefix: \"\" !default; // e.g. \"m-\" → .m-flex\n$base-font-size: 16px !default;\n$base-line-height: 1.5 !default;\n$base-font-family: system-ui, -apple-system, sans-serif !default;\n","// themes/_light.scss\n// Light theme CSS custom property overrides.\n// ─────────────────────────────────────────────────────────────\n\n@use \"../tokens/color\" as ct;\n\n// Light theme — explicit override (identical to base, but declared\n// so a .light class or data-theme can be toggled back from dark).\n\n:root,\n[data-theme=\"light\"],\n.light {\n --mastors-bg: #{ct.color(\"white\")};\n --mastors-bg-subtle: #{ct.color(\"neutral\", 50)};\n --mastors-surface: #{ct.color(\"white\")};\n --mastors-surface-raised: #{ct.color(\"neutral\", 50)};\n --mastors-surface-overlay: #{ct.color(\"neutral\", 100)};\n\n --mastors-text: #{ct.color(\"neutral\", 900)};\n --mastors-text-muted: #{ct.color(\"neutral\", 500)};\n --mastors-text-subtle: #{ct.color(\"neutral\", 400)};\n --mastors-text-inverse: #{ct.color(\"white\")};\n\n --mastors-border: #{ct.color(\"neutral\", 200)};\n --mastors-border-strong: #{ct.color(\"neutral\", 400)};\n\n --mastors-accent: #{ct.color(\"primary\", 600)};\n --mastors-accent-hover: #{ct.color(\"primary\", 700)};\n --mastors-accent-subtle: #{ct.color(\"primary\", 50)};\n --mastors-accent-text: #{ct.color(\"white\")};\n}\n","// themes/_dark.scss\n// Dark theme CSS custom property overrides.\n// ─────────────────────────────────────────────────────────────\n\n@use \"../tokens/color\" as ct;\n\n// Dark theme — inverts surface/text/border semantics.\n// Strategy is controlled by $dark-mode-strategy (default: \"class\").\n// \"class\" → activated by .dark / [data-theme=\"dark\"] on <html>\n// \"media\" → activated by prefers-color-scheme: dark\n\n$dark-mode-strategy: \"class\" !default;\n\n@if $dark-mode-strategy == \"class\" {\n [data-theme=\"dark\"],\n .dark {\n --mastors-bg: #{ct.color(\"neutral\", 950)};\n --mastors-bg-subtle: #{ct.color(\"neutral\", 900)};\n --mastors-surface: #{ct.color(\"neutral\", 900)};\n --mastors-surface-raised: #{ct.color(\"neutral\", 800)};\n --mastors-surface-overlay: #{ct.color(\"neutral\", 700)};\n\n --mastors-text: #{ct.color(\"neutral\", 50)};\n --mastors-text-muted: #{ct.color(\"neutral\", 400)};\n --mastors-text-subtle: #{ct.color(\"neutral\", 500)};\n --mastors-text-inverse: #{ct.color(\"neutral\", 900)};\n\n --mastors-border: #{ct.color(\"neutral\", 700)};\n --mastors-border-strong: #{ct.color(\"neutral\", 500)};\n\n --mastors-accent: #{ct.color(\"primary\", 400)};\n --mastors-accent-hover: #{ct.color(\"primary\", 300)};\n --mastors-accent-subtle: #{ct.color(\"primary\", 950)};\n --mastors-accent-text: #{ct.color(\"neutral\", 950)};\n }\n} @else {\n @media (prefers-color-scheme: dark) {\n :root {\n --mastors-bg: #{ct.color(\"neutral\", 950)};\n --mastors-bg-subtle: #{ct.color(\"neutral\", 900)};\n --mastors-surface: #{ct.color(\"neutral\", 900)};\n --mastors-surface-raised: #{ct.color(\"neutral\", 800)};\n --mastors-surface-overlay: #{ct.color(\"neutral\", 700)};\n\n --mastors-text: #{ct.color(\"neutral\", 50)};\n --mastors-text-muted: #{ct.color(\"neutral\", 400)};\n --mastors-text-subtle: #{ct.color(\"neutral\", 500)};\n --mastors-text-inverse: #{ct.color(\"neutral\", 900)};\n\n --mastors-border: #{ct.color(\"neutral\", 700)};\n --mastors-border-strong: #{ct.color(\"neutral\", 500)};\n\n --mastors-accent: #{ct.color(\"primary\", 400)};\n --mastors-accent-hover: #{ct.color(\"primary\", 300)};\n --mastors-accent-subtle: #{ct.color(\"primary\", 950)};\n --mastors-accent-text: #{ct.color(\"neutral\", 950)};\n }\n }\n}\n","// responsive/_container-queries.scss\n// CSS container query helpers (@container).\n// ─────────────────────────────────────────────────────────────\n\n// Container query helpers\n// Requires elements to have a containment context set:\n// .cq-inline { container-type: inline-size; }\n// .cq-size { container-type: size; }\n// .cq-normal { container-type: normal; }\n\n.cq-inline { container-type: inline-size; }\n.cq-size { container-type: size; }\n.cq-normal { container-type: normal; }\n\n// Named container helper\n// Usage: <div class=\"cq-inline\" style=\"container-name: card\">...\n// or use data attribute: [data-container] { container-type: inline-size; }\n[data-container] {\n container-type: inline-size;\n}\n\n// Mixin for inline container queries in component SCSS\n// @use \"@mastors/core/api\" as m;\n// @include m.cq(40rem) { ... }\n@mixin cq($min-width, $name: null) {\n @if $name {\n @container #{$name} (min-width: #{$min-width}) { @content; }\n } @else {\n @container (min-width: #{$min-width}) { @content; }\n }\n}\n","// helpers/_clearfix.scss\n// Clearfix helper for legacy float layouts.\n// ─────────────────────────────────────────────────────────────\n\n.clearfix::after {\n content: \"\";\n display: table;\n clear: both;\n}\n","// accessibility/_screen-reader.scss\n// Screen-reader-only utility — canonical single source of truth.\n// ─────────────────────────────────────────────────────────────\n// .sr-only / .not-sr-only are the primary class names (modern standard).\n// Legacy aliases (.visually-hidden, .vh, .visually-hidden-focusable)\n// are provided in helpers/_visually-hidden.scss and share these rules.\n\n// Screen reader only — visually hidden but announced by screen readers\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n// Undo sr-only — make visible again\n.not-sr-only {\n position: static;\n width: auto;\n height: auto;\n padding: 0;\n margin: 0;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n","// helpers/_visually-hidden.scss\n// Visually hides content while keeping it accessible to screen readers.\n// ─────────────────────────────────────────────────────────────\n// The canonical implementation lives in accessibility/_screen-reader.scss\n// (.sr-only / .not-sr-only — the modern standard class names).\n// This file provides the legacy aliases (.visually-hidden, .vh,\n// .visually-hidden-focusable) that map onto the same rules, so existing\n// codebases using either naming convention continue to work without\n// duplicating any declarations.\n\n@use \"../accessibility/screen-reader\" as *;\n\n// Legacy aliases — extend the canonical sr-only rules\n// so no extra CSS is emitted; both class names share one rule block.\n.visually-hidden,\n.vh {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n// Undo visually-hidden when focused (e.g. skip links)\n.visually-hidden-focusable:not(:focus):not(:focus-within) {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n","// helpers/_truncate.scss\n// Text truncation and overflow helpers.\n// ─────────────────────────────────────────────────────────────\n\n// Single-line truncation\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n// Multi-line clamp helpers (.line-clamp-{n})\n@each $n in 1, 2, 3, 4, 5, 6 {\n .line-clamp-#{$n} {\n display: -webkit-box;\n -webkit-line-clamp: $n;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n}\n\n// Break long words\n.break-words { overflow-wrap: break-word; word-break: break-word; }\n.break-all { word-break: break-all; }\n.break-keep { word-break: keep-all; }\n","// helpers/_ratio.scss\n// Aspect ratio helpers.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:math\";\n\n// Aspect ratio helpers using the native aspect-ratio property\n\n$-ratios: (\n \"auto\": auto,\n \"square\": math.div(1, 1),\n \"video\": math.div(16, 9),\n \"portrait\": math.div(3, 4),\n \"wide\": math.div(21, 9),\n \"golden\": math.div(1.618, 1),\n) !default;\n\n@each $name, $ratio in $-ratios {\n .ratio-#{$name} {\n aspect-ratio: $ratio;\n }\n}\n","// generators/_class-generator.scss\n// Core mixin engine for generating utility class output.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:map\";\n@use \"sass:meta\";\n@use \"sass:string\";\n@use \"../config/settings\" as cfg;\n@use \"../config/flags\";\n@use \"../variables/breakpoints\" as bpvars;\n\n/// Core utility class generator engine.\n@mixin generate-utilities($utilities) {\n $cls-prefix: cfg.config(\"prefix\");\n $use-important: cfg.config(\"important\");\n\n // ── Pass 1: base (unprefixed) classes ──────────────────────\n @each $name, $config in $utilities {\n $prop: map.get($config, property);\n $values: map.get($config, values);\n $prefix: map.get($config, prefix);\n\n @each $suffix, $value in $values {\n $class-name: \"#{$cls-prefix}#{$suffix}\";\n @if $prefix {\n $class-name: \"#{$cls-prefix}#{$prefix}-#{$suffix}\";\n }\n .#{$class-name} {\n @if $use-important {\n #{$prop}: $value !important;\n } @else {\n #{$prop}: $value;\n }\n }\n }\n }\n\n // ── Pass 2: responsive variants (.sm\\:, .md\\:, …) ─────────\n @if flags.$enable-responsive {\n @each $bp-key, $bp-value in bpvars.$breakpoints {\n @if $bp-value != 0 {\n @media (min-width: #{$bp-value}) {\n @each $name, $config in $utilities {\n @if map.get($config, responsive) == true {\n $prop: map.get($config, property);\n $values: map.get($config, values);\n $prefix: map.get($config, prefix);\n\n @each $suffix, $value in $values {\n $class: null;\n @if $prefix {\n $class: \"#{$cls-prefix}#{$prefix}-#{$suffix}\";\n } @else {\n $class: \"#{$cls-prefix}#{$suffix}\";\n }\n\n // Escape numeric-leading breakpoint keys (e.g. \"2xl\" → \"\\32 xl\")\n $first: string.slice(\"#{$bp-key}\", 1, 1);\n $rest: string.slice(\"#{$bp-key}\", 2);\n $safe-bp: null;\n @if $first == \"0\" or $first == \"1\" or $first == \"2\" or $first == \"3\" or\n $first == \"4\" or $first == \"5\" or $first == \"6\" or $first == \"7\" or\n $first == \"8\" or $first == \"9\" {\n $safe-bp: \"\\\\3#{$first} #{$rest}\";\n } @else {\n $safe-bp: \"#{$bp-key}\";\n }\n\n @at-root .#{$safe-bp}\\:#{$class} {\n @if $use-important {\n #{$prop}: $value !important;\n } @else {\n #{$prop}: $value;\n }\n }\n }\n }\n }\n }\n }\n }\n }\n}\n","// utilities/_position.scss\n// Position utility classes.\n// ─────────────────────────────────────────────────────────────\n\n@use \"../generators/class-generator\" as gen;\n\n@include gen.generate-utilities((\n \"position\": (\n property: position,\n values: (\n \"static\": static,\n \"relative\": relative,\n \"absolute\": absolute,\n \"fixed\": fixed,\n \"sticky\": sticky,\n ),\n responsive: true,\n ),\n));\n\n// Inset utilities\n$-inset-values: (\"0\": 0px, \"auto\": auto, \"full\": 100%, \"1\\\\/2\": 50%);\n\n@each $key, $val in $-inset-values {\n .inset-#{$key} { inset: $val; }\n .inset-x-#{$key} { left: $val; right: $val; }\n .inset-y-#{$key} { top: $val; bottom: $val; }\n .top-#{$key} { top: $val; }\n .right-#{$key} { right: $val; }\n .bottom-#{$key} { bottom: $val; }\n .left-#{$key} { left: $val; }\n}\n","// utilities/_spacing.scss\n// Margin and padding utility classes from spacing tokens.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:map\";\n@use \"../tokens/spacing\" as sp;\n@use \"../generators/class-generator\" as gen;\n\n// Margin utilities\n$-margin-values: map.merge(sp.$spacing-tokens, (\"auto\": auto));\n\n@each $key, $val in $-margin-values {\n .m-#{$key} { margin: $val; }\n .mx-#{$key} { margin-left: $val; margin-right: $val; }\n .my-#{$key} { margin-top: $val; margin-bottom: $val; }\n .mt-#{$key} { margin-top: $val; }\n .mr-#{$key} { margin-right: $val; }\n .mb-#{$key} { margin-bottom: $val; }\n .ml-#{$key} { margin-left: $val; }\n .ms-#{$key} { margin-inline-start: $val; }\n .me-#{$key} { margin-inline-end: $val; }\n}\n\n// Padding utilities\n@each $key, $val in sp.$spacing-tokens {\n .p-#{$key} { padding: $val; }\n .px-#{$key} { padding-left: $val; padding-right: $val; }\n .py-#{$key} { padding-top: $val; padding-bottom: $val; }\n .pt-#{$key} { padding-top: $val; }\n .pr-#{$key} { padding-right: $val; }\n .pb-#{$key} { padding-bottom: $val; }\n .pl-#{$key} { padding-left: $val; }\n .ps-#{$key} { padding-inline-start: $val; }\n .pe-#{$key} { padding-inline-end: $val; }\n}\n\n// Gap utilities\n@each $key, $val in sp.$spacing-tokens {\n .gap-#{$key} { gap: $val; }\n .gap-x-#{$key} { column-gap: $val; }\n .gap-y-#{$key} { row-gap: $val; }\n}\n","// tokens/_spacing.scss\n// Design token map: spacing scale.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:map\";\n\n$spacing-tokens: (\n \"0\": 0px,\n \"px\": 1px,\n \"0\\\\.5\": 0.125rem,\n \"1\": 0.25rem,\n \"1\\\\.5\": 0.375rem,\n \"2\": 0.5rem,\n \"2\\\\.5\": 0.625rem,\n \"3\": 0.75rem,\n \"3\\\\.5\": 0.875rem,\n \"4\": 1rem,\n \"5\": 1.25rem,\n \"6\": 1.5rem,\n \"7\": 1.75rem,\n \"8\": 2rem,\n \"9\": 2.25rem,\n \"10\": 2.5rem,\n \"11\": 2.75rem,\n \"12\": 3rem,\n \"14\": 3.5rem,\n \"16\": 4rem,\n \"20\": 5rem,\n \"24\": 6rem,\n \"28\": 7rem,\n \"32\": 8rem,\n \"36\": 9rem,\n \"40\": 10rem,\n \"44\": 11rem,\n \"48\": 12rem,\n \"52\": 13rem,\n \"56\": 14rem,\n \"60\": 15rem,\n \"64\": 16rem,\n \"72\": 18rem,\n \"80\": 20rem,\n \"96\": 24rem,\n) !default;\n\n// Accessor: spacing(4) → 1rem\n@function spacing($key) {\n @return map.get($spacing-tokens, \"#{$key}\");\n}\n","// utilities/_sizing.scss\n// Width and height utility classes from sizing tokens.\n// ─────────────────────────────────────────────────────────────\n\n@use \"../tokens/sizing\" as sz;\n\n// Width utilities\n@each $key, $val in sz.$sizing-tokens {\n .w-#{$key} { width: $val; }\n}\n\n// Height utilities\n@each $key, $val in sz.$sizing-tokens {\n .h-#{$key} { height: $val; }\n}\n\n// Min / max width\n.min-w-0 { min-width: 0; }\n.min-w-full { min-width: 100%; }\n.min-w-min { min-width: min-content; }\n.min-w-max { min-width: max-content; }\n.min-w-fit { min-width: fit-content; }\n\n.max-w-none { max-width: none; }\n.max-w-full { max-width: 100%; }\n.max-w-min { max-width: min-content; }\n.max-w-max { max-width: max-content; }\n.max-w-fit { max-width: fit-content; }\n.max-w-prose { max-width: 65ch; }\n\n// Min / max height\n.min-h-0 { min-height: 0; }\n.min-h-full { min-height: 100%; }\n.min-h-screen { min-height: 100vh; }\n.min-h-svh { min-height: 100svh; }\n.min-h-dvh { min-height: 100dvh; }\n\n.max-h-none { max-height: none; }\n.max-h-full { max-height: 100%; }\n.max-h-screen { max-height: 100vh; }\n","// tokens/_sizing.scss\n// Design token map: width / height / size scale.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:map\";\n\n$sizing-tokens: (\n \"0\": 0,\n \"px\": 1px,\n \"1\": 0.25rem,\n \"2\": 0.5rem,\n \"4\": 1rem,\n \"8\": 2rem,\n \"12\": 3rem,\n \"16\": 4rem,\n \"20\": 5rem,\n \"24\": 6rem,\n \"32\": 8rem,\n \"40\": 10rem,\n \"48\": 12rem,\n \"56\": 14rem,\n \"64\": 16rem,\n \"72\": 18rem,\n \"80\": 20rem,\n \"96\": 24rem,\n \"1\\\\/2\": 50%,\n \"1\\\\/3\": 33.3333%,\n \"2\\\\/3\": 66.6667%,\n \"1\\\\/4\": 25%,\n \"3\\\\/4\": 75%,\n \"1\\\\/5\": 20%,\n \"2\\\\/5\": 40%,\n \"3\\\\/5\": 60%,\n \"4\\\\/5\": 80%,\n \"auto\": auto,\n \"full\": 100%,\n \"screen\": 100vw,\n \"svw\": 100svw,\n \"dvw\": 100dvw,\n \"min\": min-content,\n \"max\": max-content,\n \"fit\": fit-content,\n) !default;\n\n@function sizing($key) {\n @return map.get($sizing-tokens, \"#{$key}\");\n}\n","// utilities/_colors.scss\n// Color utility classes (text, background, border color).\n// ─────────────────────────────────────────────────────────────\n\n@use \"../tokens/color\" as ct;\n\n// Text color utilities — semantic\n.text-default { color: var(--mastors-text); }\n.text-muted { color: var(--mastors-text-muted); }\n.text-subtle { color: var(--mastors-text-subtle); }\n.text-inverse { color: var(--mastors-text-inverse); }\n.text-accent { color: var(--mastors-accent); }\n\n// Text color utilities — primitives (primary, neutral, success, warning, error, info)\n$-text-palettes: \"primary\", \"neutral\", \"success\", \"warning\", \"error\", \"info\";\n$-text-shades: \"50\", \"100\", \"200\", \"300\", \"400\", \"500\", \"600\", \"700\", \"800\", \"900\", \"950\";\n\n@each $palette in $-text-palettes {\n @each $shade in $-text-shades {\n .text-#{$palette}-#{$shade} { color: ct.color($palette, $shade); }\n }\n}\n.text-white { color: ct.color(\"white\"); }\n.text-black { color: ct.color(\"black\"); }\n.text-current { color: currentColor; }\n.text-transparent { color: transparent; }\n\n// Background color utilities — semantic\n.bg-default { background-color: var(--mastors-bg); }\n.bg-subtle { background-color: var(--mastors-bg-subtle); }\n.bg-surface { background-color: var(--mastors-surface); }\n.bg-accent { background-color: var(--mastors-accent); }\n\n// Background color utilities — primitives\n@each $palette in $-text-palettes {\n @each $shade in $-text-shades {\n .bg-#{$palette}-#{$shade} { background-color: ct.color($palette, $shade); }\n }\n}\n.bg-white { background-color: ct.color(\"white\"); }\n.bg-black { background-color: ct.color(\"black\"); }\n.bg-transparent { background-color: transparent; }\n","// utilities/_borders.scss\n// Border width, style, and radius utility classes.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:list\";\n@use \"../tokens/color\" as ct;\n@use \"../tokens/radii\" as ra;\n\n// Border width\n.border { border-width: 1px; border-style: solid; }\n.border-0 { border-width: 0; }\n.border-2 { border-width: 2px; border-style: solid; }\n.border-4 { border-width: 4px; border-style: solid; }\n.border-8 { border-width: 8px; border-style: solid; }\n\n.border-t { border-top-width: 1px; border-top-style: solid; }\n.border-r { border-right-width: 1px; border-right-style: solid; }\n.border-b { border-bottom-width: 1px; border-bottom-style: solid; }\n.border-l { border-left-width: 1px; border-left-style: solid; }\n\n// Border style\n.border-solid { border-style: solid; }\n.border-dashed { border-style: dashed; }\n.border-dotted { border-style: dotted; }\n.border-none { border-style: none; }\n\n// Border color (semantic + key primitive steps)\n.border-transparent { border-color: transparent; }\n.border-current { border-color: currentColor; }\n.border-default { border-color: var(--mastors-border); }\n.border-strong { border-color: var(--mastors-border-strong); }\n\n// Border radius — all scale steps from token map\n@each $key, $val in ra.$radius-tokens {\n .rounded-#{$key} { border-radius: $val; }\n}\n// Shorthand: .rounded = base radius\n.rounded { border-radius: ra.radius(\"base\"); }\n\n// Directional border radius\n$-radius-sides: (\n \"t\": (\"border-top-left-radius\", \"border-top-right-radius\"),\n \"b\": (\"border-bottom-left-radius\", \"border-bottom-right-radius\"),\n \"l\": (\"border-top-left-radius\", \"border-bottom-left-radius\"),\n \"r\": (\"border-top-right-radius\", \"border-bottom-right-radius\"),\n);\n\n@each $side, $props in $-radius-sides {\n @each $key, $val in ra.$radius-tokens {\n .rounded-#{$side}-#{$key} {\n #{list.nth($props, 1)}: $val;\n #{list.nth($props, 2)}: $val;\n }\n }\n}\n","// tokens/_radii.scss\n// Design token map: border-radius scale.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:map\";\n\n$radius-tokens: (\n \"none\": 0px,\n \"sm\": 0.125rem,\n \"base\": 0.25rem,\n \"md\": 0.375rem,\n \"lg\": 0.5rem,\n \"xl\": 0.75rem,\n \"2xl\": 1rem,\n \"3xl\": 1.5rem,\n \"full\": 9999px,\n) !default;\n\n@function radius($key) {\n @return map.get($radius-tokens, $key);\n}\n","// utilities/_shadows.scss\n// Box-shadow utility classes from shadow tokens.\n// ─────────────────────────────────────────────────────────────\n\n@use \"../tokens/shadows\" as sh;\n\n@each $key, $val in sh.$shadow-tokens {\n .shadow-#{$key} { box-shadow: $val; }\n}\n// Shorthand\n.shadow { box-shadow: sh.shadow(\"md\"); }\n","// tokens/_shadows.scss\n// Design token map: box-shadow elevation scale.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:map\";\n\n$shadow-tokens: (\n \"xs\": (0 1px 2px 0 rgb(0 0 0 / 5%)),\n \"sm\": (0 1px 3px 0 rgb(0 0 0 / 10%), 0 1px 2px -1px rgb(0 0 0 / 10%)),\n \"md\": (0 4px 6px -1px rgb(0 0 0 / 10%), 0 2px 4px -2px rgb(0 0 0 / 10%)),\n \"lg\": (0 10px 15px -3px rgb(0 0 0 / 10%), 0 4px 6px -4px rgb(0 0 0 / 10%)),\n \"xl\": (0 20px 25px -5px rgb(0 0 0 / 10%), 0 8px 10px -6px rgb(0 0 0 / 10%)),\n \"2xl\": (0 25px 50px -12px rgb(0 0 0 / 25%)),\n \"inner\": (inset 0 2px 4px 0 rgb(0 0 0 / 5%)),\n \"none\": none,\n) !default;\n\n@function shadow($key) {\n @return map.get($shadow-tokens, $key);\n}\n","// utilities/_opacity.scss\n// Opacity utility classes from opacity tokens.\n// ─────────────────────────────────────────────────────────────\n\n@use \"../tokens/opacity\" as op;\n\n@each $key, $val in op.$opacity-tokens {\n .opacity-#{$key} { opacity: $val; }\n}\n","// tokens/_opacity.scss\n// Design token map: opacity scale.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:map\";\n\n$opacity-tokens: (\n \"0\": 0,\n \"5\": 0.05,\n \"10\": 0.1,\n \"15\": 0.15,\n \"20\": 0.2,\n \"25\": 0.25,\n \"30\": 0.3,\n \"40\": 0.4,\n \"50\": 0.5,\n \"60\": 0.6,\n \"70\": 0.7,\n \"75\": 0.75,\n \"80\": 0.8,\n \"90\": 0.9,\n \"95\": 0.95,\n \"100\": 1,\n) !default;\n\n@function opacity($key) {\n @return map.get($opacity-tokens, \"#{$key}\");\n}\n","// utilities/_pointer-events.scss\n// Pointer-events utility classes.\n// ─────────────────────────────────────────────────────────────\n\n.pointer-events-none { pointer-events: none; }\n.pointer-events-auto { pointer-events: auto; }\n","// utilities/_z-index.scss\n// Z-index utility classes from z-index tokens.\n// ─────────────────────────────────────────────────────────────\n\n@use \"../tokens/z-index\" as zi;\n\n@each $key, $val in zi.$z-index-tokens {\n .z-#{$key} { z-index: $val; }\n}\n","// tokens/_z-index.scss\n// Design token map: z-index stacking layers.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:map\";\n\n$z-index-tokens: (\n \"base\": 0,\n \"raised\": 10,\n \"dropdown\": 100,\n \"sticky\": 200,\n \"overlay\": 300,\n \"modal\": 400,\n \"toast\": 500,\n \"tooltip\": 600,\n \"max\": 9999,\n) !default;\n\n@function z($key) {\n @return map.get($z-index-tokens, $key);\n}\n","// utilities/_transform.scss\n// Transform utility classes.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:list\";\n\n// Transform utilities\n\n// GPU compositing layer\n.transform-gpu { transform: translateZ(0); }\n.transform-none { transform: none; }\n\n// Translate\n$-translate-values: (\"0\": 0px, \"1\": 0.25rem, \"2\": 0.5rem, \"4\": 1rem, \"8\": 2rem,\n \"full\": 100%, \"1\\\\/2\": 50%, \"-full\": -100%, \"-1\\\\/2\": -50%);\n\n@each $key, $val in $-translate-values {\n .translate-x-#{$key} { transform: translateX($val); }\n .translate-y-#{$key} { transform: translateY($val); }\n}\n\n// Rotate\n@each $deg in 0, 1, 2, 3, 6, 12, 45, 90, 180 {\n .rotate-#{$deg} { transform: rotate(#{$deg}deg); }\n .-rotate-#{$deg} { transform: rotate(-#{$deg}deg); }\n}\n\n// Scale\n$-scale-values: (\"0\": 0, \"50\": .5, \"75\": .75, \"90\": .9, \"95\": .95,\n \"100\": 1, \"105\": 1.05, \"110\": 1.1, \"125\": 1.25, \"150\": 1.5);\n\n@each $key, $val in $-scale-values {\n .scale-#{$key} { transform: scale($val); }\n .scale-x-#{$key} { transform: scaleX($val); }\n .scale-y-#{$key} { transform: scaleY($val); }\n}\n\n// Transform origin\n.origin-center { transform-origin: center; }\n.origin-top { transform-origin: top; }\n.origin-right { transform-origin: right; }\n.origin-bottom { transform-origin: bottom; }\n.origin-left { transform-origin: left; }\n","// utilities/_typography.scss\n// Typography utility classes — text-align, size, weight, leading, tracking,\n// decoration, transform, whitespace, overflow, font-family, font-style.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:map\";\n@use \"../tokens/typography\" as ty;\n@use \"../generators/class-generator\" as gen;\n\n// ── Text align ───────────────────────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"text-align\": (\n property: text-align,\n prefix: \"text\",\n values: (\n \"left\": left,\n \"center\": center,\n \"right\": right,\n \"justify\": justify,\n \"start\": start,\n \"end\": end,\n ),\n responsive: true,\n ),\n));\n\n// ── Font size ────────────────────────────────────────────────────────────────\n\n@each $key, $val in ty.$font-size-tokens {\n .text-#{$key} { font-size: $val; }\n}\n\n// ── Font weight ──────────────────────────────────────────────────────────────\n\n@each $key, $val in ty.$font-weight-tokens {\n .font-#{$key} { font-weight: $val; }\n}\n\n// ── Font family ──────────────────────────────────────────────────────────────\n\n@each $key, $val in ty.$font-family-tokens {\n .font-#{$key} { font-family: $val; }\n}\n\n// ── Font style ───────────────────────────────────────────────────────────────\n\n.italic { font-style: italic; }\n.not-italic { font-style: normal; }\n\n// ── Line height (leading) ────────────────────────────────────────────────────\n\n@each $key, $val in ty.$line-height-tokens {\n .leading-#{$key} { line-height: $val; }\n}\n\n// ── Letter spacing (tracking) ────────────────────────────────────────────────\n\n@each $key, $val in ty.$letter-spacing-tokens {\n .tracking-#{$key} { letter-spacing: $val; }\n}\n\n// ── Text decoration ──────────────────────────────────────────────────────────\n\n.underline { text-decoration-line: underline; }\n.overline { text-decoration-line: overline; }\n.line-through { text-decoration-line: line-through; }\n.no-underline { text-decoration-line: none; }\n\n// Decoration style\n.decoration-solid { text-decoration-style: solid; }\n.decoration-dashed { text-decoration-style: dashed; }\n.decoration-dotted { text-decoration-style: dotted; }\n.decoration-double { text-decoration-style: double; }\n.decoration-wavy { text-decoration-style: wavy; }\n\n// Decoration thickness\n.decoration-auto { text-decoration-thickness: auto; }\n.decoration-1 { text-decoration-thickness: 1px; }\n.decoration-2 { text-decoration-thickness: 2px; }\n.decoration-4 { text-decoration-thickness: 4px; }\n.decoration-8 { text-decoration-thickness: 8px; }\n\n// ── Text transform ───────────────────────────────────────────────────────────\n\n.uppercase { text-transform: uppercase; }\n.lowercase { text-transform: lowercase; }\n.capitalize { text-transform: capitalize; }\n.normal-case { text-transform: none; }\n\n// ── Text overflow ────────────────────────────────────────────────────────────\n\n.text-ellipsis { text-overflow: ellipsis; }\n.text-clip { text-overflow: clip; }\n\n// ── Whitespace ───────────────────────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"whitespace\": (\n property: white-space,\n prefix: \"whitespace\",\n values: (\n \"normal\": normal,\n \"nowrap\": nowrap,\n \"pre\": pre,\n \"pre-line\": pre-line,\n \"pre-wrap\": pre-wrap,\n \"break-spaces\": break-spaces,\n ),\n ),\n));\n\n// ── Word break ───────────────────────────────────────────────────────────────\n\n.break-normal { overflow-wrap: normal; word-break: normal; }\n.break-words { overflow-wrap: break-word; }\n.break-all { word-break: break-all; }\n.break-keep { word-break: keep-all; }\n\n// ── Text indent ──────────────────────────────────────────────────────────────\n\n.indent-0 { text-indent: 0; }\n.indent-4 { text-indent: 1rem; }\n.indent-8 { text-indent: 2rem; }\n\n// ── Vertical align ───────────────────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"align\": (\n property: vertical-align,\n prefix: \"align\",\n values: (\n \"baseline\": baseline,\n \"top\": top,\n \"middle\": middle,\n \"bottom\": bottom,\n \"text-top\": text-top,\n \"text-bottom\": text-bottom,\n \"sub\": sub,\n \"super\": super,\n ),\n ),\n));\n\n// ── List style ───────────────────────────────────────────────────────────────\n\n.list-none { list-style-type: none; }\n.list-disc { list-style-type: disc; }\n.list-decimal { list-style-type: decimal; }\n.list-inside { list-style-position: inside; }\n.list-outside { list-style-position: outside; }\n\n// ── Smooth font rendering ────────────────────────────────────────────────────\n\n.antialiased {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.subpixel-antialiased {\n -webkit-font-smoothing: auto;\n -moz-osx-font-smoothing: auto;\n}\n","// tokens/_typography.scss\n// Design token map: type scale, font families, weights, tracking.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:map\";\n\n$font-size-tokens: (\n \"xs\": 0.75rem,\n \"sm\": 0.875rem,\n \"base\": 1rem,\n \"lg\": 1.125rem,\n \"xl\": 1.25rem,\n \"2xl\": 1.5rem,\n \"3xl\": 1.875rem,\n \"4xl\": 2.25rem,\n \"5xl\": 3rem,\n \"6xl\": 3.75rem,\n \"7xl\": 4.5rem,\n \"8xl\": 6rem,\n \"9xl\": 8rem,\n) !default;\n\n$font-family-tokens: (\n \"sans\": (system-ui, -apple-system, \"BlinkMacSystemFont\", \"Segoe UI\", \"Roboto\", sans-serif),\n \"serif\": (\"Georgia\", \"Cambria\", \"Times New Roman\", \"Times\", serif),\n \"mono\": (ui-monospace, \"SFMono-Regular\", \"Menlo\", \"Monaco\", \"Consolas\", monospace),\n) !default;\n\n$font-weight-tokens: (\n \"thin\": 100,\n \"extralight\": 200,\n \"light\": 300,\n \"normal\": 400,\n \"medium\": 500,\n \"semibold\": 600,\n \"bold\": 700,\n \"extrabold\": 800,\n \"black\": 900,\n) !default;\n\n$line-height-tokens: (\n \"none\": 1,\n \"tight\": 1.25,\n \"snug\": 1.375,\n \"normal\": 1.5,\n \"relaxed\": 1.625,\n \"loose\": 2,\n) !default;\n\n$letter-spacing-tokens: (\n \"tighter\": -0.05em,\n \"tight\": -0.025em,\n \"normal\": 0,\n \"wide\": 0.025em,\n \"wider\": 0.05em,\n \"widest\": 0.1em,\n) !default;\n\n@function font-size($key) { @return map.get($font-size-tokens, $key); }\n@function font-family($key) { @return map.get($font-family-tokens, $key); }\n@function font-weight($key) { @return map.get($font-weight-tokens, $key); }\n@function line-height($key) { @return map.get($line-height-tokens, $key); }\n@function letter-spacing($key) { @return map.get($letter-spacing-tokens, $key); }\n","// utilities/_layout.scss\n// Layout utilities — aspect-ratio, object-fit, object-position, float, clear,\n// isolation, mix-blend-mode, box-decoration, appearance.\n// ─────────────────────────────────────────────────────────────\n\n@use \"../generators/class-generator\" as gen;\n\n// ── Aspect ratio ──────────────────────────────────────────────────────────────\n// Use calc() for ratio values — bare slash division is deprecated in Sass 2+.\n$-aspect-ratios: (\n \"auto\": auto,\n \"square\": calc(1 / 1),\n \"video\": calc(16 / 9),\n \"4-3\": calc(4 / 3),\n \"3-2\": calc(3 / 2),\n \"21-9\": calc(21 / 9),\n \"9-16\": calc(9 / 16),\n \"golden\": 1.618,\n) !default;\n\n@each $key, $value in $-aspect-ratios {\n .aspect-#{$key} { aspect-ratio: $value; }\n}\n\n// ── Object fit ───────────────────────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"object-fit\": (\n property: object-fit,\n prefix: \"object\",\n values: (\n \"contain\": contain,\n \"cover\": cover,\n \"fill\": fill,\n \"none\": none,\n \"scale-down\": scale-down,\n ),\n ),\n));\n\n// ── Object position ──────────────────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"object-position\": (\n property: object-position,\n prefix: \"object\",\n values: (\n \"bottom\": bottom,\n \"center\": center,\n \"left\": left,\n \"left-bottom\": left bottom,\n \"left-top\": left top,\n \"right\": right,\n \"right-bottom\": right bottom,\n \"right-top\": right top,\n \"top\": top,\n ),\n ),\n));\n\n// ── Float ─────────────────────────────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"float\": (\n property: float,\n prefix: \"float\",\n values: (\n \"right\": right,\n \"left\": left,\n \"none\": none,\n \"start\": inline-start,\n \"end\": inline-end,\n ),\n responsive: true,\n ),\n));\n\n// ── Clear ─────────────────────────────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"clear\": (\n property: clear,\n prefix: \"clear\",\n values: (\n \"left\": left,\n \"right\": right,\n \"both\": both,\n \"none\": none,\n \"start\": inline-start,\n \"end\": inline-end,\n ),\n ),\n));\n\n// ── Isolation ─────────────────────────────────────────────────────────────────\n\n.isolate { isolation: isolate; }\n.isolation-auto { isolation: auto; }\n\n// ── Mix blend mode ────────────────────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"mix-blend\": (\n property: mix-blend-mode,\n prefix: \"mix-blend\",\n values: (\n \"normal\": normal,\n \"multiply\": multiply,\n \"screen\": screen,\n \"overlay\": overlay,\n \"darken\": darken,\n \"lighten\": lighten,\n \"hard-light\": hard-light,\n \"soft-light\": soft-light,\n \"difference\": difference,\n \"exclusion\": exclusion,\n \"hue\": hue,\n \"saturation\": saturation,\n \"color\": color,\n \"luminosity\": luminosity,\n \"plus-lighter\": plus-lighter,\n ),\n ),\n));\n\n// ── Background blend mode ─────────────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"bg-blend\": (\n property: background-blend-mode,\n prefix: \"bg-blend\",\n values: (\n \"normal\": normal,\n \"multiply\": multiply,\n \"screen\": screen,\n \"overlay\": overlay,\n \"darken\": darken,\n \"lighten\": lighten,\n \"difference\": difference,\n \"exclusion\": exclusion,\n \"color\": color,\n \"luminosity\": luminosity,\n ),\n ),\n));\n\n// ── Box decoration break ──────────────────────────────────────────────────────\n\n.box-decoration-clone { box-decoration-break: clone; }\n.box-decoration-slice { box-decoration-break: slice; }\n\n// ── Appearance ───────────────────────────────────────────────────────────────\n\n.appearance-none { appearance: none; }\n.appearance-auto { appearance: auto; }\n\n// ── Will-change ──────────────────────────────────────────────────────────────\n\n.will-change-auto { will-change: auto; }\n.will-change-scroll { will-change: scroll-position; }\n.will-change-contents { will-change: contents; }\n.will-change-transform { will-change: transform; }\n","// utilities/_interaction.scss\n// Interaction and user-experience utilities:\n// user-select, resize, scroll-behavior, scroll-snap, touch-action,\n// and state-variant prefixes (hover:, focus:, active:, disabled:).\n// ─────────────────────────────────────────────────────────────\n\n@use \"../generators/class-generator\" as gen;\n\n// ── User select ───────────────────────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"select\": (\n property: user-select,\n prefix: \"select\",\n values: (\n \"none\": none,\n \"text\": text,\n \"all\": all,\n \"auto\": auto,\n ),\n ),\n));\n\n// ── Resize ────────────────────────────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"resize\": (\n property: resize,\n prefix: \"resize\",\n values: (\n \"none\": none,\n \"x\": horizontal,\n \"y\": vertical,\n \"\": both, // .resize\n ),\n ),\n));\n\n// ── Scroll behavior ───────────────────────────────────────────────────────────\n\n.scroll-auto { scroll-behavior: auto; }\n.scroll-smooth { scroll-behavior: smooth; }\n\n// ── Scroll snap ───────────────────────────────────────────────────────────────\n\n// Container\n@include gen.generate-utilities((\n \"snap-type\": (\n property: scroll-snap-type,\n prefix: \"snap\",\n values: (\n \"none\": none,\n \"x\": x var(--mastors-snap-strictness, mandatory),\n \"y\": y var(--mastors-snap-strictness, mandatory),\n \"both\": both var(--mastors-snap-strictness, mandatory),\n \"mandatory\": x mandatory,\n \"proximity\": x proximity,\n ),\n ),\n));\n\n// Item\n@include gen.generate-utilities((\n \"snap-align\": (\n property: scroll-snap-align,\n prefix: \"snap\",\n values: (\n \"start\": start,\n \"end\": end,\n \"center\": center,\n \"align-none\": none,\n ),\n ),\n));\n\n.snap-stop-always { scroll-snap-stop: always; }\n.snap-stop-normal { scroll-snap-stop: normal; }\n\n// ── Scroll margin/padding ─────────────────────────────────────────────────────\n\n$-scroll-values: (\"0\": 0px, \"4\": 1rem, \"8\": 2rem, \"16\": 4rem);\n\n@each $key, $val in $-scroll-values {\n .scroll-m-#{$key} { scroll-margin: $val; }\n .scroll-mt-#{$key} { scroll-margin-top: $val; }\n .scroll-mb-#{$key} { scroll-margin-bottom: $val; }\n .scroll-p-#{$key} { scroll-padding: $val; }\n .scroll-pt-#{$key} { scroll-padding-top: $val; }\n .scroll-pb-#{$key} { scroll-padding-bottom: $val; }\n}\n\n// ── Touch action ──────────────────────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"touch\": (\n property: touch-action,\n prefix: \"touch\",\n values: (\n \"auto\": auto,\n \"none\": none,\n \"pan-x\": pan-x,\n \"pan-y\": pan-y,\n \"pan-left\": pan-left,\n \"pan-right\": pan-right,\n \"pan-up\": pan-up,\n \"pan-down\": pan-down,\n \"pinch-zoom\": pinch-zoom,\n \"manipulation\": manipulation,\n ),\n ),\n));\n\n// ── State-variant pseudo-class utilities ─────────────────────────────────────\n// Hover, focus, active, disabled, and group-hover variants.\n// Pattern: .hover\\:{utility}:hover { ... }\n// These are the most commonly used interactive overrides. For full\n// state-variant coverage, use a PostCSS/Vite plugin or the responsive engine.\n\n// Hover: opacity\n@each $key, $val in (\"0\": 0, \"50\": 0.5, \"75\": 0.75, \"100\": 1) {\n .hover\\:opacity-#{$key}:hover { opacity: $val; }\n}\n\n// Hover: background accent\n.hover\\:bg-accent:hover { background-color: var(--mastors-accent-hover); }\n.hover\\:text-accent:hover { color: var(--mastors-accent-hover); }\n.hover\\:underline:hover { text-decoration-line: underline; }\n.hover\\:no-underline:hover { text-decoration-line: none; }\n.hover\\:shadow-lg:hover { box-shadow: var(--mastors-shadow-lg); }\n.hover\\:scale-105:hover { transform: scale(1.05); }\n.hover\\:scale-110:hover { transform: scale(1.1); }\n.hover\\:-translate-y-1:hover { transform: translateY(-0.25rem); }\n\n// Focus-visible: ring utilities\n.focus\\:ring:focus-visible {\n outline: 2px solid var(--mastors-accent);\n outline-offset: 2px;\n}\n\n.focus\\:ring-2:focus-visible {\n outline: 2px solid var(--mastors-accent);\n outline-offset: 2px;\n}\n\n.focus\\:ring-offset-2:focus-visible {\n outline-offset: 4px;\n}\n\n.focus\\:ring-none:focus-visible {\n outline: none;\n}\n\n// Disabled: dim + block interaction\n.disabled\\:opacity-50:disabled { opacity: 50%; }\n.disabled\\:cursor-not-allowed:disabled { cursor: not-allowed; }\n.disabled\\:pointer-events-none:disabled { pointer-events: none; }\n","// utilities/_animation.scss\n// Transition and animation utility classes.\n// ─────────────────────────────────────────────────────────────\n\n@use \"../tokens/transitions\" as tr;\n@use \"../generators/class-generator\" as gen;\n\n// ── Transition property ───────────────────────────────────────────────────────\n\n.transition-none { transition-property: none; }\n.transition-all { transition-property: all; }\n.transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; }\n.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; }\n.transition-opacity { transition-property: opacity; }\n.transition-shadow { transition-property: box-shadow; }\n.transition-transform { transition-property: transform; }\n\n// ── Transition duration ───────────────────────────────────────────────────────\n\n@each $key, $val in tr.$duration-tokens {\n .duration-#{$key} { transition-duration: $val; }\n}\n\n// ── Transition timing function ────────────────────────────────────────────────\n\n@each $key, $val in tr.$easing-tokens {\n .ease-#{$key} { transition-timing-function: $val; }\n}\n\n// ── Transition delay ──────────────────────────────────────────────────────────\n\n@each $key, $val in tr.$duration-tokens {\n .delay-#{$key} { transition-delay: $val; }\n}\n\n// ── Animation ────────────────────────────────────────────────────────────────\n\n.animate-none { animation: none; }\n.animate-spin { animation: mastors-spin 1s linear infinite; }\n.animate-ping { animation: mastors-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; }\n.animate-pulse { animation: mastors-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }\n.animate-bounce { animation: mastors-bounce 1s infinite; }\n.animate-fade-in { animation: mastors-fade-in 0.3s ease-out both; }\n.animate-fade-out{ animation: mastors-fade-out 0.3s ease-in both; }\n.animate-slide-up { animation: mastors-slide-up 0.3s ease-out both; }\n.animate-slide-down { animation: mastors-slide-down 0.3s ease-out both; }\n.animate-scale-in { animation: mastors-scale-in 0.2s ease-out both; }\n\n// ── Keyframe definitions ─────────────────────────────────────────────────────\n\n@keyframes mastors-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n@keyframes mastors-ping {\n 75%, 100% { transform: scale(2); opacity: 0%; }\n}\n\n@keyframes mastors-pulse {\n 0%, 100% { opacity: 100%; }\n 50% { opacity: 50%; }\n}\n\n@keyframes mastors-bounce {\n 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); }\n 50% { transform: translateY(0); animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }\n}\n\n@keyframes mastors-fade-in {\n from { opacity: 0%; }\n to { opacity: 100%; }\n}\n\n@keyframes mastors-fade-out {\n from { opacity: 100%; }\n to { opacity: 0%; }\n}\n\n@keyframes mastors-slide-up {\n from { opacity: 0%; transform: translateY(0.5rem); }\n to { opacity: 100%; transform: translateY(0); }\n}\n\n@keyframes mastors-slide-down {\n from { opacity: 0%; transform: translateY(-0.5rem); }\n to { opacity: 100%; transform: translateY(0); }\n}\n\n@keyframes mastors-scale-in {\n from { opacity: 0%; transform: scale(0.95); }\n to { opacity: 100%; transform: scale(1); }\n}\n\n// ── Animation control utilities ───────────────────────────────────────────────\n\n@include gen.generate-utilities((\n \"animation-fill-mode\": (\n property: animation-fill-mode,\n prefix: \"fill\",\n values: (\n \"none\": none,\n \"forwards\": forwards,\n \"backwards\": backwards,\n \"both\": both,\n ),\n ),\n \"animation-play-state\": (\n property: animation-play-state,\n prefix: \"animation\",\n values: (\n \"running\": running,\n \"paused\": paused,\n ),\n ),\n \"animation-iteration\": (\n property: animation-iteration-count,\n prefix: \"animate-repeat\",\n values: (\n \"0\": 0,\n \"1\": 1,\n \"infinite\": infinite,\n ),\n ),\n));\n","// tokens/_transitions.scss\n// Design token map: duration and easing curves.\n// ─────────────────────────────────────────────────────────────\n\n@use \"sass:map\";\n\n$duration-tokens: (\n \"75\": 75ms,\n \"100\": 100ms,\n \"150\": 150ms,\n \"200\": 200ms,\n \"300\": 300ms,\n \"500\": 500ms,\n \"700\": 700ms,\n \"1000\": 1000ms,\n) !default;\n\n$easing-tokens: (\n \"linear\": linear,\n \"in\": cubic-bezier(0.4, 0, 1, 1),\n \"out\": cubic-bezier(0, 0, 0.2, 1),\n \"in-out\": cubic-bezier(0.4, 0, 0.2, 1),\n \"bounce\": cubic-bezier(0.34, 1.56, 0.64, 1),\n) !default;\n\n@function duration($key) { @return map.get($duration-tokens, \"#{$key}\"); }\n@function easing($key) { @return map.get($easing-tokens, $key); }\n","// accessibility/_focus.scss\n// Focus ring and keyboard navigation styles.\n// ─────────────────────────────────────────────────────────────\n\n// Focus ring — respects browser defaults, enhances with custom ring.\n// Custom property --mastors-color-primary-500 is emitted by base/_root.scss\n// via the nested emit-nested-custom-properties() generator, which produces\n// --mastors-color-primary-{shade} for every shade in $color-tokens.\n// The hardcoded fallback #3b82f6 (primary-500) fires only in environments\n// where @mastors/core's :root block has not been loaded (e.g. partial imports).\n\n:focus-visible {\n outline: 2px solid var(--mastors-color-primary-500, #3b82f6);\n outline-offset: 2px;\n border-radius: 2px;\n}\n\n// Remove focus ring for mouse users\n:focus:not(:focus-visible) {\n outline: none;\n}\n","// accessibility/_motion.scss\n// Reduced motion preferences and safe animation overrides.\n// ─────────────────────────────────────────────────────────────\n\n// Respect user motion preferences — disable animations for users who request it.\n\n@media (prefers-reduced-motion: reduce) {\n *, *::before, *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n}\n","// accessibility/_print.scss\n// Print-specific utilities and media query helpers.\n// ─────────────────────────────────────────────────────────────\n\n// Hide from print\n.print\\:hidden {\n @media print { display: none !important; }\n}\n\n// Show only in print\n.screen\\:hidden {\n @media not print { display: none !important; }\n}\n\n@media print {\n // Avoid page breaks inside these elements by default\n .print\\:break-inside-avoid {\n break-inside: avoid;\n page-break-inside: avoid;\n }\n\n // Force page break before\n .print\\:break-before {\n break-before: page;\n page-break-before: always;\n }\n\n // Force page break after\n .print\\:break-after {\n break-after: page;\n page-break-after: always;\n }\n\n // Print-safe color override (ensure text is black on white)\n .print\\:text-black { color: #000 !important; }\n .print\\:bg-white { background: #fff !important; }\n .print\\:border-none { border: none !important; }\n .print\\:shadow-none { box-shadow: none !important; }\n\n // Expand truncated links for print readers\n a[href]::after {\n content: \" (\" attr(href) \")\";\n font-size: 0.75em;\n color: #555;\n }\n\n // Don't expand hash or JS links\n a[href^=\"#\"]::after,\n a[href^=\"javascript:\"]::after {\n content: \"\";\n }\n}\n"]}
package/package.json ADDED
@@ -0,0 +1,73 @@
1
+ {
2
+ "name": "@mastors/core",
3
+ "version": "1.1.0",
4
+ "description": "Mastors Core — foundational tokens, mixins, functions, and SCSS architecture",
5
+ "license": "MIT",
6
+ "author": "Mastors Contributors",
7
+ "homepage": "https://mastorscdn.kehem.com/packages/core",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/KEHEM-IT/Mastors.git",
11
+ "directory": "packages/core"
12
+ },
13
+ "keywords": [
14
+ "mastors",
15
+ "core",
16
+ "scss",
17
+ "tokens",
18
+ "design-system",
19
+ "css-framework"
20
+ ],
21
+ "main": "./dist/index.js",
22
+ "module": "./dist/index.mjs",
23
+ "types": "./dist/index.d.ts",
24
+ "sass": "./scss/index.scss",
25
+ "style": "./dist/mastors-core.css",
26
+ "exports": {
27
+ ".": {
28
+ "import": "./dist/index.mjs",
29
+ "require": "./dist/index.js",
30
+ "types": "./dist/index.d.ts"
31
+ },
32
+ "./scss": "./scss/index.scss",
33
+ "./scss/*": "./scss/*",
34
+ "./api": "./scss/api/_index.scss",
35
+ "./dist/mastors-core.css": "./dist/mastors-core.css"
36
+ },
37
+ "files": [
38
+ "api",
39
+ "dist",
40
+ "postinstall.js",
41
+ "scripts",
42
+ "scss",
43
+ "README.md"
44
+ ],
45
+ "devDependencies": {
46
+ "@types/node": "^20.0.0",
47
+ "postcss-scss": "^4.0.0",
48
+ "rimraf": "^5.0.0",
49
+ "sass": "^1.80.0",
50
+ "stylelint": "^16.0.0",
51
+ "stylelint-config-standard-scss": "^13.0.0",
52
+ "typescript": "^5.3.0",
53
+ "@mastors/sass-config": "1.0.1",
54
+ "@mastors/tsconfig": "1.0.1",
55
+ "@mastors/build-utils": "2.0.0"
56
+ },
57
+ "peerDependencies": {
58
+ "sass": ">=1.80.0"
59
+ },
60
+ "sideEffects": [
61
+ "dist/*.css",
62
+ "scss/**/*.scss"
63
+ ],
64
+ "scripts": {
65
+ "build": "node build.js",
66
+ "build:prod": "node build.js --prod",
67
+ "dev": "node build.js --watch",
68
+ "clean": "rimraf dist",
69
+ "typecheck": "tsc --noEmit",
70
+ "lint": "stylelint \"scss/**/*.scss\" --custom-syntax postcss-scss",
71
+ "postinstall": "node postinstall.js"
72
+ }
73
+ }
package/postinstall.js ADDED
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env node
2
+ // postinstall.js — Mastors ecosystem welcome script
3
+ // Runs automatically after: npm install @mastors/core
4
+
5
+ 'use strict'
6
+
7
+ const RESET = '\x1b[0m'
8
+ const BOLD = '\x1b[1m'
9
+ const DIM = '\x1b[2m'
10
+ const GREEN = '\x1b[32m'
11
+ const CYAN = '\x1b[36m'
12
+ const YELLOW = '\x1b[33m'
13
+ const WHITE = '\x1b[37m'
14
+ const GRAY = '\x1b[90m'
15
+
16
+ function line(char = '─', len = 52) {
17
+ return GRAY + char.repeat(len) + RESET
18
+ }
19
+
20
+ const message = `
21
+ ${line()}
22
+ ${BOLD}${WHITE} ✦ Thanks for installing Mastors!${RESET}
23
+ ${line()}
24
+
25
+ ${BOLD} Installed:${RESET}
26
+ ${GREEN}✔${RESET} @mastors/core
27
+
28
+ ${BOLD} Optional packages:${RESET}
29
+ ${GREEN}✔${RESET} @mastors/flexer ${DIM}npm install @mastors/flexer${RESET}
30
+ ${GREEN}✔${RESET} @mastors/gridder ${DIM}npm install @mastors/gridder${RESET}
31
+ ${CYAN}◌${RESET} @mastors/typography ${GRAY}coming soon${RESET}
32
+ ${CYAN}◌${RESET} @mastors/themes ${GRAY}coming soon${RESET}
33
+ ${CYAN}◌${RESET} @mastors/animator ${GRAY}coming soon${RESET}
34
+
35
+ ${BOLD} Documentation:${RESET}
36
+ ${YELLOW}https://mastorscdn.kehem.com${RESET}
37
+
38
+ ${line()}
39
+ `
40
+
41
+ process.stdout.write(message)
@@ -0,0 +1,259 @@
1
+ #!/usr/bin/env node
2
+ // scripts/generate-tokens.js
3
+ // ─────────────────────────────────────────────────────────────
4
+ // Reads SCSS token map files and regenerates src/tokens.ts so
5
+ // the TypeScript token mirror never drifts from the SCSS source.
6
+ //
7
+ // Run: node scripts/generate-tokens.js
8
+ // Auto: called by `node build.js` before tsc (see build.js)
9
+ // ─────────────────────────────────────────────────────────────
10
+
11
+ 'use strict'
12
+
13
+ const fs = require('fs')
14
+ const path = require('path')
15
+
16
+ const TOKENS_DIR = path.join(__dirname, '..', 'scss', 'tokens')
17
+ const OUT_FILE = path.join(__dirname, '..', 'src', 'tokens.ts')
18
+
19
+ // ── Helpers ──────────────────────────────────────────────────
20
+
21
+ /** Extract all $map-name: ( ... ) blocks from a SCSS string */
22
+ function extractMaps(scss) {
23
+ const maps = {}
24
+ const mapRe = /\$([a-z][a-z0-9-]*)\s*:\s*\(/g
25
+ let match
26
+ while ((match = mapRe.exec(scss)) !== null) {
27
+ const varName = match[1]
28
+ let depth = 1
29
+ let i = match.index + match[0].length
30
+ let inner = ''
31
+ while (i < scss.length && depth > 0) {
32
+ if (scss[i] === '(') depth++
33
+ else if (scss[i] === ')') depth--
34
+ if (depth > 0) inner += scss[i]
35
+ i++
36
+ }
37
+ maps[varName] = parseMap(inner)
38
+ }
39
+ return maps
40
+ }
41
+
42
+ /** Parse a flat SCSS map body into a JS object (string keys → string values) */
43
+ function parseMap(body) {
44
+ const result = {}
45
+ const lines = body.split('\n')
46
+ for (const raw of lines) {
47
+ const line = raw.trim().replace(/,$/, '').replace(/\/\/.*$/, '').trim()
48
+ if (!line || line.startsWith('(') || line.endsWith('(')) continue
49
+ const colonIdx = line.indexOf(':')
50
+ if (colonIdx === -1) continue
51
+ const rawKey = line.slice(0, colonIdx).trim().replace(/^["']|["']$/g, '')
52
+ const rawVal = line.slice(colonIdx + 1).trim()
53
+ if (!rawKey || !rawVal) continue
54
+ // Unescape SCSS key escapes: "0\\.5" → "0.5", "1\\/2" → "1/2"
55
+ const key = rawKey.replace(/\\\\?\./g, '.').replace(/\\\\?\//g, '/')
56
+ result[key] = rawVal
57
+ }
58
+ return result
59
+ }
60
+
61
+ /** Parse nested color map ($color-tokens with sub-palettes) */
62
+ function extractNestedColorMap(scss) {
63
+ const palettes = {}
64
+ const paletteRe = /"([a-z]+)"\s*:\s*\(([\s\S]*?)\),/g
65
+ let m
66
+ while ((m = paletteRe.exec(scss)) !== null) {
67
+ const name = m[1]
68
+ const inner = m[2]
69
+ if (inner.includes(':')) {
70
+ palettes[name] = parseMap(inner)
71
+ } else {
72
+ palettes[name] = inner.trim()
73
+ }
74
+ }
75
+ // flat top-level entries (white, black, transparent)
76
+ const flatRe = /"(white|black|transparent)"\s*:\s*([^,\n]+)/g
77
+ while ((m = flatRe.exec(scss)) !== null) {
78
+ palettes[m[1]] = m[2].trim().replace(/,$/, '')
79
+ }
80
+ return palettes
81
+ }
82
+
83
+ // ── Read token files ──────────────────────────────────────────
84
+
85
+ function readScss(filename) {
86
+ return fs.readFileSync(path.join(TOKENS_DIR, filename), 'utf8')
87
+ }
88
+
89
+ const colorScss = readScss('_color.scss')
90
+ const spacingScss = readScss('_spacing.scss')
91
+ const typographyScss = readScss('_typography.scss')
92
+ const shadowsScss = readScss('_shadows.scss')
93
+ const radiiScss = readScss('_radii.scss')
94
+ const transitionsScss = readScss('_transitions.scss')
95
+ const zIndexScss = readScss('_z-index.scss')
96
+ const opacityScss = readScss('_opacity.scss')
97
+ const sizingScss = readScss('_sizing.scss')
98
+
99
+ const colorMap = extractNestedColorMap(colorScss)
100
+ const spacingMap = extractMaps(spacingScss)['spacing-tokens'] || {}
101
+ const fontSizeMap = extractMaps(typographyScss)['font-size-tokens'] || {}
102
+ const fontFamilyMap = extractMaps(typographyScss)['font-family-tokens'] || {}
103
+ const fontWeightMap = extractMaps(typographyScss)['font-weight-tokens'] || {}
104
+ const lineHeightMap = extractMaps(typographyScss)['line-height-tokens'] || {}
105
+ const trackingMap = extractMaps(typographyScss)['letter-spacing-tokens'] || {}
106
+ const shadowMap = extractMaps(shadowsScss)['shadow-tokens'] || {}
107
+ const radiusMap = extractMaps(radiiScss)['radius-tokens'] || {}
108
+ const durationMap = extractMaps(transitionsScss)['duration-tokens'] || {}
109
+ const easingMap = extractMaps(transitionsScss)['easing-tokens'] || {}
110
+ const zIndexMap = extractMaps(zIndexScss)['z-index-tokens'] || {}
111
+ const opacityMap = extractMaps(opacityScss)['opacity-tokens'] || {}
112
+ const sizingMap = extractMaps(sizingScss)['sizing-tokens'] || {}
113
+
114
+ // ── Serialise to TypeScript ───────────────────────────────────
115
+
116
+ function toTsObj(map, indent = 2) {
117
+ const pad = ' '.repeat(indent)
118
+ const entries = Object.entries(map).map(([k, v]) => {
119
+ const key = /^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(k) ? k : `'${k}'`
120
+ const val = typeof v === 'object'
121
+ ? `{\n${toTsObj(v, indent + 2)}\n${pad}}`
122
+ : `'${String(v)}'`
123
+ return `${pad}${key}: ${val},`
124
+ })
125
+ return entries.join('\n')
126
+ }
127
+
128
+ // ── Generate file ─────────────────────────────────────────────
129
+
130
+ const now = new Date().toISOString().slice(0, 10)
131
+
132
+ const out = `\
133
+ /**
134
+ * @mastors/core — src/tokens.ts
135
+ * AUTO-GENERATED by scripts/generate-tokens.js on ${now}.
136
+ * DO NOT EDIT MANUALLY — run \`node scripts/generate-tokens.js\` to regenerate.
137
+ *
138
+ * Source of truth: packages/core/scss/tokens/
139
+ */
140
+
141
+ // ─── Color ───────────────────────────────────────────────────────────────────
142
+
143
+ const colorTokens = {
144
+ ${toTsObj(colorMap)}
145
+ } as const
146
+
147
+ // ─── Spacing ─────────────────────────────────────────────────────────────────
148
+
149
+ const spacingTokens = {
150
+ ${toTsObj(spacingMap)}
151
+ } as const
152
+
153
+ // ─── Typography ──────────────────────────────────────────────────────────────
154
+
155
+ const fontSizeTokens = {
156
+ ${toTsObj(fontSizeMap)}
157
+ } as const
158
+
159
+ const fontFamilyTokens = {
160
+ ${toTsObj(fontFamilyMap)}
161
+ } as const
162
+
163
+ const fontWeightTokens = {
164
+ ${toTsObj(fontWeightMap)}
165
+ } as const
166
+
167
+ const lineHeightTokens = {
168
+ ${toTsObj(lineHeightMap)}
169
+ } as const
170
+
171
+ const letterSpacingTokens = {
172
+ ${toTsObj(trackingMap)}
173
+ } as const
174
+
175
+ // ─── Border radius ───────────────────────────────────────────────────────────
176
+
177
+ const radiusTokens = {
178
+ ${toTsObj(radiusMap)}
179
+ } as const
180
+
181
+ // ─── Shadows ─────────────────────────────────────────────────────────────────
182
+
183
+ const shadowTokens = {
184
+ ${toTsObj(shadowMap)}
185
+ } as const
186
+
187
+ // ─── Duration & easing ───────────────────────────────────────────────────────
188
+
189
+ const durationTokens = {
190
+ ${toTsObj(durationMap)}
191
+ } as const
192
+
193
+ const easingTokens = {
194
+ ${toTsObj(easingMap)}
195
+ } as const
196
+
197
+ // ─── Z-index ─────────────────────────────────────────────────────────────────
198
+
199
+ const zIndexTokens = {
200
+ ${toTsObj(zIndexMap)}
201
+ } as const
202
+
203
+ // ─── Opacity ─────────────────────────────────────────────────────────────────
204
+
205
+ const opacityTokens = {
206
+ ${toTsObj(opacityMap)}
207
+ } as const
208
+
209
+ // ─── Sizing ──────────────────────────────────────────────────────────────────
210
+
211
+ const sizingTokens = {
212
+ ${toTsObj(sizingMap)}
213
+ } as const
214
+
215
+ // ─── Exported tokens object ───────────────────────────────────────────────────
216
+
217
+ export const tokens = {
218
+ color: colorTokens,
219
+ spacing: spacingTokens,
220
+ fontSize: fontSizeTokens,
221
+ fontFamily: fontFamilyTokens,
222
+ fontWeight: fontWeightTokens,
223
+ lineHeight: lineHeightTokens,
224
+ letterSpacing: letterSpacingTokens,
225
+ radius: radiusTokens,
226
+ shadow: shadowTokens,
227
+ duration: durationTokens,
228
+ easing: easingTokens,
229
+ zIndex: zIndexTokens,
230
+ opacity: opacityTokens,
231
+ sizing: sizingTokens,
232
+ } as const
233
+
234
+ // ─── Types ───────────────────────────────────────────────────────────────────
235
+
236
+ export type Tokens = typeof tokens
237
+ export type ColorPalette = keyof typeof colorTokens
238
+ export type SpacingKey = keyof typeof spacingTokens
239
+ export type FontSizeKey = keyof typeof fontSizeTokens
240
+ export type FontFamilyKey = keyof typeof fontFamilyTokens
241
+ export type FontWeightKey = keyof typeof fontWeightTokens
242
+ export type LineHeightKey = keyof typeof lineHeightTokens
243
+ export type LetterSpacingKey = keyof typeof letterSpacingTokens
244
+ export type RadiusKey = keyof typeof radiusTokens
245
+ export type ShadowKey = keyof typeof shadowTokens
246
+ export type DurationKey = keyof typeof durationTokens
247
+ export type EasingKey = keyof typeof easingTokens
248
+ export type ZIndexKey = keyof typeof zIndexTokens
249
+ export type OpacityKey = keyof typeof opacityTokens
250
+ export type SizingKey = keyof typeof sizingTokens
251
+
252
+ export type ColorShade<P extends ColorPalette> =
253
+ typeof colorTokens[P] extends Record<string, string>
254
+ ? keyof typeof colorTokens[P]
255
+ : never
256
+ `
257
+
258
+ fs.writeFileSync(OUT_FILE, out, 'utf8')
259
+ console.log('[generate-tokens] Written → ' + path.relative(process.cwd(), OUT_FILE))
@@ -0,0 +1,6 @@
1
+ // abstracts/_index.scss
2
+ // Re-exports all abstracts as a single namespace.
3
+ // ─────────────────────────────────────────────────────────────
4
+
5
+ @forward "maps";
6
+ @forward "placeholders";