@samva/markup 0.8.0 → 0.10.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 (172) hide show
  1. package/AGENTS.md +107 -46
  2. package/CHANGELOG.md +345 -0
  3. package/README.md +188 -52
  4. package/dist/{brand-DcoVkh_S.d.ts → assets-BIsyMQ92.d.ts} +41 -11
  5. package/dist/{email/brand.js → brand-C0MKTwmX.js} +64 -4
  6. package/dist/{theme-css.d.ts → brand.d.ts} +12 -3
  7. package/dist/brand.js +4 -0
  8. package/dist/channel-specs-C2feJwuP.d.ts +13 -0
  9. package/dist/compiler.d.ts +88 -115
  10. package/dist/compiler.js +750 -171
  11. package/dist/components-BZCqegS8.js +1864 -0
  12. package/dist/diagnostic-model-DJtqbETd.js +38 -0
  13. package/dist/{diagnostics-OcQKQYSY.d.ts → diagnostic-model-DxthUZBT.d.ts} +3 -21
  14. package/dist/{diagnostics-BMYtBCQk.d.ts → diagnostics-B-Gym34R.d.ts} +8 -4
  15. package/dist/{email/diagnostics.js → diagnostics-CnKFefKz.js} +4 -3
  16. package/dist/diagnostics.d.ts +410 -2
  17. package/dist/diagnostics.js +402 -52
  18. package/dist/edit.d.ts +234 -0
  19. package/dist/edit.js +947 -0
  20. package/dist/email/jsx-dev-runtime.d.ts +2 -2
  21. package/dist/email/jsx-dev-runtime.js +1 -2
  22. package/dist/email/jsx-runtime.d.ts +1 -1
  23. package/dist/email/jsx-runtime.js +1 -85
  24. package/dist/{email/components.d.ts → email.d.ts} +22 -11
  25. package/dist/email.js +2 -0
  26. package/dist/fmt.d.ts +32 -0
  27. package/dist/fmt.js +174 -0
  28. package/dist/index.d.ts +2 -0
  29. package/dist/index.js +2 -0
  30. package/dist/{render-vAv_4r9v.js → ir-CLhlklKV.js} +96 -279
  31. package/dist/jsx-runtime-CBlexoeR.js +98 -0
  32. package/dist/{elements-BzjjnoCS.d.ts → jsx-runtime-ylIOnaSf.d.ts} +76 -76
  33. package/dist/profile-pWGtWZXF.js +3803 -0
  34. package/dist/render-BPonDpCl.d.ts +539 -0
  35. package/dist/render-BQmfh94k.js +257 -0
  36. package/dist/render.d.ts +35 -0
  37. package/dist/render.js +49 -0
  38. package/dist/sms.d.ts +16 -0
  39. package/dist/sms.js +12 -0
  40. package/dist/source-locations-C8wCsiAy.d.ts +23 -0
  41. package/dist/template-DMPwxMSq.d.ts +65 -0
  42. package/dist/template-zLUjcwfF.js +42 -0
  43. package/dist/{theme-css-hFqcPSar.js → theme-css-JtRCm1fb.js} +2 -2
  44. package/dist/whatsapp.d.ts +57 -0
  45. package/dist/whatsapp.js +22 -0
  46. package/generated/contract.json +1788 -0
  47. package/generated/reference.md +360 -0
  48. package/package.json +46 -239
  49. package/samva-brand.d.ts +4 -4
  50. package/skills/sml/SKILL.md +123 -0
  51. package/dist/ast-BrDtApwS.d.ts +0 -107
  52. package/dist/ast.d.ts +0 -2
  53. package/dist/ast.js +0 -124
  54. package/dist/candidate.d.ts +0 -29
  55. package/dist/candidate.js +0 -88
  56. package/dist/catalog-CKuOooB8.d.ts +0 -354
  57. package/dist/checks-D73Xizbw.js +0 -59366
  58. package/dist/checks.d.ts +0 -33
  59. package/dist/checks.js +0 -2
  60. package/dist/classes.d.ts +0 -26
  61. package/dist/classes.js +0 -184
  62. package/dist/compile-sms.d.ts +0 -28
  63. package/dist/compile-sms.js +0 -44
  64. package/dist/compile-whatsapp.d.ts +0 -56
  65. package/dist/compile-whatsapp.js +0 -186
  66. package/dist/compile.d.ts +0 -18
  67. package/dist/compile.js +0 -29
  68. package/dist/components.d.ts +0 -289
  69. package/dist/components.js +0 -106
  70. package/dist/conditionals.d.ts +0 -10
  71. package/dist/conditionals.js +0 -74
  72. package/dist/corpus-CPPfgAHN.d.ts +0 -106
  73. package/dist/css-CS2jLID6.d.ts +0 -109
  74. package/dist/email/assets.d.ts +0 -40
  75. package/dist/email/assets.js +0 -63
  76. package/dist/email/brand-footer.d.ts +0 -34
  77. package/dist/email/brand-footer.js +0 -62
  78. package/dist/email/brand.d.ts +0 -2
  79. package/dist/email/components.js +0 -240
  80. package/dist/email/diagnostics.d.ts +0 -2
  81. package/dist/email/elements.d.ts +0 -2
  82. package/dist/email/elements.js +0 -299
  83. package/dist/email/html.d.ts +0 -2
  84. package/dist/email/html.js +0 -278
  85. package/dist/email/render.d.ts +0 -50
  86. package/dist/email/render.js +0 -3
  87. package/dist/email/selection.d.ts +0 -2
  88. package/dist/email/selection.js +0 -91
  89. package/dist/email/source-edit.d.ts +0 -67
  90. package/dist/email/source-edit.js +0 -185
  91. package/dist/email/stylesheets.d.ts +0 -15
  92. package/dist/email/stylesheets.js +0 -48
  93. package/dist/email/text.d.ts +0 -7
  94. package/dist/email/text.js +0 -100
  95. package/dist/emit.d.ts +0 -51
  96. package/dist/emit.js +0 -151
  97. package/dist/html-Bl9BAdqc.d.ts +0 -42
  98. package/dist/interpolate.d.ts +0 -24
  99. package/dist/interpolate.js +0 -43
  100. package/dist/jsx-dev-runtime.d.ts +0 -11
  101. package/dist/jsx-dev-runtime.js +0 -15
  102. package/dist/jsx-runtime-I-1nCtl2.d.ts +0 -57
  103. package/dist/jsx-runtime.d.ts +0 -2
  104. package/dist/jsx-runtime.js +0 -121
  105. package/dist/lexer.d.ts +0 -60
  106. package/dist/lexer.js +0 -281
  107. package/dist/model.d.ts +0 -24
  108. package/dist/model.js +0 -77
  109. package/dist/ops-BvwqHl7V.js +0 -630
  110. package/dist/ops.d.ts +0 -114
  111. package/dist/ops.js +0 -2
  112. package/dist/parser-t29cHLVL.d.ts +0 -396
  113. package/dist/parser.d.ts +0 -2
  114. package/dist/parser.js +0 -859
  115. package/dist/predicate-BI6uRRM-.js +0 -549
  116. package/dist/predicate-M-05Nd7R.d.ts +0 -56
  117. package/dist/predicate.d.ts +0 -2
  118. package/dist/predicate.js +0 -2
  119. package/dist/printer.d.ts +0 -6
  120. package/dist/printer.js +0 -122
  121. package/dist/registry-Dcp6QEK_.d.ts +0 -73
  122. package/dist/registry.d.ts +0 -2
  123. package/dist/registry.js +0 -646
  124. package/dist/render-template.d.ts +0 -45
  125. package/dist/render-template.js +0 -76
  126. package/dist/selection-CCArx9lU.d.ts +0 -91
  127. package/dist/showcase-egkusQBf.d.ts +0 -415
  128. package/dist/sms-segments-y4FpPilJ.d.ts +0 -13
  129. package/dist/sms-segments.d.ts +0 -2
  130. package/dist/sms-segments.js +0 -46
  131. package/dist/source-locations-DrCM82Ym.d.ts +0 -67
  132. package/dist/source-locations.d.ts +0 -2
  133. package/dist/source-locations.js +0 -102
  134. package/dist/starters/category-mapping.d.ts +0 -13
  135. package/dist/starters/category-mapping.js +0 -49
  136. package/dist/starters/corpus.d.ts +0 -2
  137. package/dist/starters/corpus.js +0 -194
  138. package/dist/starters/library.d.ts +0 -18
  139. package/dist/starters/library.js +0 -692
  140. package/dist/starters/public-gallery.d.ts +0 -266
  141. package/dist/starters/public-gallery.js +0 -916
  142. package/dist/starters/public-handoff.d.ts +0 -164
  143. package/dist/starters/public-handoff.js +0 -361
  144. package/dist/starters/public-preview-artifacts.d.ts +0 -43
  145. package/dist/starters/public-preview-artifacts.js +0 -104
  146. package/dist/starters/public-preview.d.ts +0 -61
  147. package/dist/starters/public-preview.js +0 -83
  148. package/dist/starters/showcase.d.ts +0 -2
  149. package/dist/starters/showcase.js +0 -335
  150. package/dist/starters/sources.d.ts +0 -45
  151. package/dist/starters/sources.js +0 -7762
  152. package/dist/starters/theme.d.ts +0 -45
  153. package/dist/starters/theme.js +0 -77
  154. package/dist/starters.d.ts +0 -2
  155. package/dist/starters.js +0 -874
  156. package/dist/tailwind-BYq7Lo6u.js +0 -727
  157. package/dist/template-DWftqh4x.d.ts +0 -60
  158. package/dist/template.d.ts +0 -2
  159. package/dist/template.js +0 -37
  160. package/dist/theme-css.js +0 -2
  161. package/dist/tsx-source-instrumentation.d.ts +0 -30
  162. package/dist/tsx-source-instrumentation.js +0 -115
  163. package/dist/tsx-tracer.d.ts +0 -112
  164. package/dist/tsx-tracer.js +0 -985
  165. package/dist/variables-J_L3qxRa.d.ts +0 -77
  166. package/dist/variables.d.ts +0 -2
  167. package/dist/variables.js +0 -141
  168. package/dist/version-BITr58kk.js +0 -96
  169. package/generated/sml-agent-contract.json +0 -709
  170. package/generated/sml-email-agent-contract.json +0 -615
  171. package/generated/sml-email-language-reference.md +0 -94
  172. package/generated/sml-language-reference.md +0 -195
@@ -1,45 +0,0 @@
1
- import { BrandCss } from "../theme-css.js";
2
- //#region starters/theme.d.ts
3
- /**
4
- * The theme variables every starter defines and a brand sets to restyle one.
5
- * Each color also has a dark-mode counterpart named `<name>-dark`, which is
6
- * what a brand's dark-mode `@theme` lowers to.
7
- */
8
- declare const STARTER_THEME_VARIABLES: {
9
- readonly "--color-brand": "The primary color: buttons and the main call to action.";
10
- readonly "--color-brand-foreground": "Text on the primary color.";
11
- readonly "--color-accent": "The secondary color: eyebrows, labels, links and highlights.";
12
- readonly "--color-surface": "The content card.";
13
- readonly "--font-heading": "Headings.";
14
- readonly "--font-body": "Body text.";
15
- readonly "--radius-button": "Button corners.";
16
- readonly "--radius-card": "The content card's corners.";
17
- };
18
- type StarterThemeVariable = keyof typeof STARTER_THEME_VARIABLES;
19
- /** Every name a starter's `starter.css` defines: the vocabulary plus each color's `-dark` pair. */
20
- declare const starterThemeVariableNames: ReadonlyArray<string>;
21
- /**
22
- * The `theme.css` a project created from a starter begins with: the starter's
23
- * look, then the organization's default brand when the creator chose it, then
24
- * an empty `@theme` for the project's own overrides.
25
- */
26
- declare const starterThemeCss: (options: {
27
- readonly brand: boolean;
28
- }) => string;
29
- /**
30
- * The brand a starter's brand preview is compiled against: one marker value
31
- * per vocabulary name, dark colors in the dark-mode `@theme`.
32
- */
33
- declare const STARTER_PREVIEW_BRAND: {
34
- readonly slug: "samva-starter-preview";
35
- readonly css: string;
36
- };
37
- /**
38
- * Re-brand a starter's preview, rendered against `STARTER_PREVIEW_BRAND`, with
39
- * `brand`: each name takes the value the brand compiles to
40
- * (`brandThemeVariables`), or the starter's own where the brand sets none. The brand's font faces join the document head.
41
- */
42
- declare const brandStarterPreview: (previewHtml: string, starterVariables: Readonly<Record<string, string>>, brand: BrandCss) => string;
43
- //#endregion
44
- export { STARTER_PREVIEW_BRAND, STARTER_THEME_VARIABLES, StarterThemeVariable, brandStarterPreview, starterThemeCss, starterThemeVariableNames };
45
- //# sourceMappingURL=theme.d.ts.map
@@ -1,77 +0,0 @@
1
- import { escapeAttribute } from "../email/html.js";
2
- import { a as brandThemeVariables, l as printBrandCss, s as darkVariableName } from "../theme-css-hFqcPSar.js";
3
- //#region starters/theme.ts
4
- /**
5
- * The theme variables every starter defines and a brand sets to restyle one.
6
- * Each color also has a dark-mode counterpart named `<name>-dark`, which is
7
- * what a brand's dark-mode `@theme` lowers to.
8
- */
9
- const STARTER_THEME_VARIABLES = {
10
- "--color-brand": "The primary color: buttons and the main call to action.",
11
- "--color-brand-foreground": "Text on the primary color.",
12
- "--color-accent": "The secondary color: eyebrows, labels, links and highlights.",
13
- "--color-surface": "The content card.",
14
- "--font-heading": "Headings.",
15
- "--font-body": "Body text.",
16
- "--radius-button": "Button corners.",
17
- "--radius-card": "The content card's corners."
18
- };
19
- /** Every name a starter's `starter.css` defines: the vocabulary plus each color's `-dark` pair. */
20
- const starterThemeVariableNames = Object.keys(STARTER_THEME_VARIABLES).flatMap((name) => name.startsWith("--color-") ? [name, darkVariableName(name)] : [name]);
21
- /**
22
- * The `theme.css` a project created from a starter begins with: the starter's
23
- * look, then the organization's default brand when the creator chose it, then
24
- * an empty `@theme` for the project's own overrides.
25
- */
26
- const starterThemeCss = (options) => [
27
- "@import \"./starter.css\";",
28
- ...options.brand ? ["@import \"samva:brand\";"] : [],
29
- "@theme {}",
30
- ""
31
- ].join("\n");
32
- const markerColor = (index) => `#5a${(57344 + index).toString(16)}`;
33
- /** Each vocabulary name's marker value in the preview brand. */
34
- const PREVIEW_MARKERS = Object.fromEntries(starterThemeVariableNames.map((name, index) => {
35
- if (name.startsWith("--color-")) return [name, markerColor(index)];
36
- if (name.startsWith("--font-")) return [name, `samva-preview${name.slice(1)}, sans-serif`];
37
- return [name, `${(1731 + index) / 100}px`];
38
- }));
39
- const lightMarkers = () => Object.fromEntries(Object.entries(PREVIEW_MARKERS).filter(([name]) => !name.endsWith("-dark")));
40
- /**
41
- * The brand a starter's brand preview is compiled against: one marker value
42
- * per vocabulary name, dark colors in the dark-mode `@theme`.
43
- */
44
- const STARTER_PREVIEW_BRAND = {
45
- slug: "samva-starter-preview",
46
- css: printBrandCss({
47
- variables: lightMarkers(),
48
- dark: Object.fromEntries(Object.entries(lightMarkers()).filter(([name]) => name.startsWith("--color-")).map(([name]) => [name, PREVIEW_MARKERS[darkVariableName(name)]])),
49
- fontFaces: []
50
- })
51
- };
52
- const replaceOutsideStyles = (html, replace) => html.split(/(<style[^>]*>[\s\S]*?<\/style>)/).map((segment) => segment.startsWith("<style") ? replace(segment, (value) => value) : replace(segment, escapeAttribute)).join("");
53
- /**
54
- * Re-brand a starter's preview, rendered against `STARTER_PREVIEW_BRAND`, with
55
- * `brand`: each name takes the value the brand compiles to
56
- * (`brandThemeVariables`), or the starter's own where the brand sets none. The brand's font faces join the document head.
57
- */
58
- const brandStarterPreview = (previewHtml, starterVariables, brand) => {
59
- const brandVariables = brandThemeVariables(brand);
60
- const values = Object.entries(PREVIEW_MARKERS).map(([name, marker]) => {
61
- const value = brandVariables[name] ?? starterVariables[name];
62
- if (value === void 0) throw new TypeError(`The starter defines no ${name}.`);
63
- return [marker, value];
64
- });
65
- const rebranded = replaceOutsideStyles(previewHtml, (segment, escape) => values.reduce((text, [marker, value]) => text.replaceAll(escape(marker), escape(value)), segment));
66
- if (brand.fontFaces.length === 0) return rebranded;
67
- const faces = printBrandCss({
68
- variables: {},
69
- dark: {},
70
- fontFaces: brand.fontFaces
71
- });
72
- return rebranded.replace("</head>", `<style>${faces}</style></head>`);
73
- };
74
- //#endregion
75
- export { STARTER_PREVIEW_BRAND, STARTER_THEME_VARIABLES, brandStarterPreview, starterThemeCss, starterThemeVariableNames };
76
-
77
- //# sourceMappingURL=theme.js.map
@@ -1,2 +0,0 @@
1
- import { a as StarterMeta, i as StarterId, n as EmailStarterVariable, o as StarterVariable, r as StarterCategory, s as starterCatalog, t as EmailStarterId } from "./catalog-CKuOooB8.js";
2
- export { EmailStarterId, EmailStarterVariable, StarterCategory, StarterId, StarterMeta, StarterVariable, starterCatalog };