@akairos/myno 0.4.4 → 0.4.5

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 (53) hide show
  1. package/dist/.vite/manifest.json +46 -46
  2. package/dist/assets/image-markdown-DgUSV7mN.js +1291 -0
  3. package/dist/assets/index-C4uqbD_u.js +1 -0
  4. package/dist/assets/index-CIbhMi1T.js +2 -0
  5. package/dist/assets/index-CM2dnuzg.js +1 -0
  6. package/dist/assets/index-CbGf0QhN.js +1 -0
  7. package/dist/assets/index-CgDTPwTH.js +1 -0
  8. package/dist/assets/index-CmJoi-qJ.js +1 -0
  9. package/dist/assets/index-CxJDYlea.js +1 -0
  10. package/dist/assets/index-D-vHwgiS.js +1 -0
  11. package/dist/assets/index-D6M9LgVG.js +13 -0
  12. package/dist/assets/index-D7i7nQv0.js +1 -0
  13. package/dist/assets/index-D7rOsdsO.js +1 -0
  14. package/dist/assets/index-DNE1CHt3.js +6 -0
  15. package/dist/assets/index-DObFF16u.js +1 -0
  16. package/dist/assets/index-DYeacVVO.js +7 -0
  17. package/dist/assets/index-DbTiNyEa.js +1 -0
  18. package/dist/assets/index-DdXc1kqk.js +1 -0
  19. package/dist/assets/index-Dtxlw1NF.js +1 -0
  20. package/dist/assets/index-DwuQO5D6.js +3 -0
  21. package/dist/assets/index-jQrpY4tQ.js +1 -0
  22. package/dist/assets/index-ntlIzpa6.js +1 -0
  23. package/dist/assets/index-qARAihe6.js +1 -0
  24. package/dist/editor/index.d.ts +1 -0
  25. package/dist/editor/index.d.ts.map +1 -1
  26. package/dist/editor/index.js +1 -0
  27. package/dist/editor/index.js.map +1 -1
  28. package/dist/editor/myno-editor.d.ts +7 -5
  29. package/dist/editor/myno-editor.d.ts.map +1 -1
  30. package/dist/editor/myno-editor.js +52 -21
  31. package/dist/editor/myno-editor.js.map +1 -1
  32. package/dist/editor/style-config-css.d.ts +14 -0
  33. package/dist/editor/style-config-css.d.ts.map +1 -0
  34. package/dist/editor/style-config-css.js +101 -0
  35. package/dist/editor/style-config-css.js.map +1 -0
  36. package/dist/editor/style-controls.d.ts +12 -0
  37. package/dist/editor/style-controls.d.ts.map +1 -0
  38. package/dist/editor/style-controls.js +197 -0
  39. package/dist/editor/style-controls.js.map +1 -0
  40. package/dist/editor-export.js +1 -1
  41. package/dist/index.d.ts +2 -0
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +1 -0
  44. package/dist/index.js.map +1 -1
  45. package/dist/src/studio/studio.html +1 -1
  46. package/dist/studio/studio.js +1 -7
  47. package/dist/studio/studio.js.map +1 -1
  48. package/dist/studio.js +105 -90
  49. package/dist/style-config.d.ts +23 -0
  50. package/dist/style-config.d.ts.map +1 -0
  51. package/dist/style-config.js +58 -0
  52. package/dist/style-config.js.map +1 -0
  53. package/package.json +13 -2
@@ -0,0 +1,23 @@
1
+ import type { WechatExportTheme } from "./studio/themes";
2
+ import type { StandaloneStyleConfig } from "./studio/config-manager";
3
+ import type { StylePack } from "./studio/style-packs";
4
+ import type { ColorPalette } from "./studio/color-palettes";
5
+ import type { ArticleStructure } from "./studio/wechat-renderer";
6
+ export { STYLE_PACKS } from "./studio/style-packs";
7
+ export { SYNTAX_CATEGORIES } from "./studio/syntax-presets";
8
+ export { COLOR_PALETTES } from "./studio/color-palettes";
9
+ export { parseStyleConfig, exportStyleConfigBlob } from "./studio/config-manager";
10
+ export type { StandaloneStyleConfig, StylePack, ColorPalette, WechatExportTheme };
11
+ /** 宿主只传排版数据;账号、网络与正文由宿主保管。 */
12
+ export interface MynoStyleConfig {
13
+ editorVars: Record<string, string>;
14
+ exportTheme: Partial<WechatExportTheme> | Record<string, string | undefined>;
15
+ syntaxPresets: Record<string, string>;
16
+ structure: ArticleStructure;
17
+ css: string;
18
+ }
19
+ export declare function normalizeStyleConfig(input?: Partial<MynoStyleConfig>): MynoStyleConfig;
20
+ export declare function brandTint(hex: string, alpha: number): string | null;
21
+ export declare function applyColorPalette(value: MynoStyleConfig, palette: ColorPalette): MynoStyleConfig;
22
+ export declare function applyStylePack(value: MynoStyleConfig, pack: StylePack): MynoStyleConfig;
23
+ //# sourceMappingURL=style-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-config.d.ts","sourceRoot":"","sources":["../src/style-config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAClF,YAAY,EAAE,qBAAqB,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAElF,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,SAAS,EAAE,gBAAgB,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAYtF;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKnE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,GAAG,eAAe,CAehG;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,GAAG,eAAe,CAevF"}
@@ -0,0 +1,58 @@
1
+ import { getWechatPreviewTheme } from "./studio/themes";
2
+ export { STYLE_PACKS } from "./studio/style-packs";
3
+ export { SYNTAX_CATEGORIES } from "./studio/syntax-presets";
4
+ export { COLOR_PALETTES } from "./studio/color-palettes";
5
+ export { parseStyleConfig, exportStyleConfigBlob } from "./studio/config-manager";
6
+ export function normalizeStyleConfig(input) {
7
+ const theme = getWechatPreviewTheme("default", {
8
+ editorVars: input?.editorVars,
9
+ exportTheme: { footerText: "", bodyFontSize: "16px", bodyParagraphSpacing: "1.18em", ...input?.exportTheme },
10
+ });
11
+ return {
12
+ editorVars: { ...theme.editorVars },
13
+ exportTheme: { ...theme.exportTheme },
14
+ syntaxPresets: { ...input?.syntaxPresets },
15
+ structure: { ...input?.structure },
16
+ css: input?.css ?? "",
17
+ };
18
+ }
19
+ export function brandTint(hex, alpha) {
20
+ const match = /^#?([0-9a-f]{6})$/i.exec(hex.trim());
21
+ if (!match)
22
+ return null;
23
+ const value = Number.parseInt(match[1], 16);
24
+ return `rgba(${(value >> 16) & 255}, ${(value >> 8) & 255}, ${value & 255}, ${alpha})`;
25
+ }
26
+ export function applyColorPalette(value, palette) {
27
+ const colors = palette.colors;
28
+ return {
29
+ ...value,
30
+ editorVars: {
31
+ ...value.editorVars,
32
+ "--brand": colors.brand, "--text": colors.text, "--divider": colors.divider,
33
+ "--brand-bg": brandTint(colors.brand, 0.08), "--brand-bg-deep": brandTint(colors.brand, 0.12),
34
+ },
35
+ exportTheme: {
36
+ ...value.exportTheme,
37
+ primaryColor: colors.brand, bodyColor: colors.text, h2Color: colors.h2,
38
+ h3Color: colors.h3, blockquoteBorderColor: colors.quote, dividerColor: colors.divider,
39
+ },
40
+ };
41
+ }
42
+ export function applyStylePack(value, pack) {
43
+ const theme = pack.theme;
44
+ const colored = applyColorPalette(value, { ...pack, category: pack.subtitle, colors: {
45
+ brand: theme.brandColor, text: theme.textColor, h2: theme.h2Color,
46
+ h3: theme.h3Color, quote: theme.quoteColor, divider: theme.dividerColor,
47
+ } });
48
+ return {
49
+ ...colored,
50
+ exportTheme: {
51
+ ...colored.exportTheme, bodyFontSize: `${theme.fontSize}px`, bodyLineHeight: theme.lineHeight,
52
+ bodyLetterSpacing: `${theme.letterSpacing}em`, bodyParagraphSpacing: `${theme.paragraphSpacing}em`,
53
+ },
54
+ syntaxPresets: { ...value.syntaxPresets, h2: theme.h2Preset, h3: theme.h3Preset },
55
+ structure: { ...value.structure, numberedHeadings: theme.numberedHeadings },
56
+ };
57
+ }
58
+ //# sourceMappingURL=style-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-config.js","sourceRoot":"","sources":["../src/style-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akairos/myno",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "WeChat article WYSIWYG editor & visual typography studio",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -30,6 +30,16 @@
30
30
  "types": "./dist/editor/article-menu.d.ts",
31
31
  "default": "./dist/editor/article-menu.js"
32
32
  },
33
+ "./style-config": {
34
+ "types": "./dist/style-config.d.ts",
35
+ "import": "./dist/style-config.js",
36
+ "default": "./dist/style-config.js"
37
+ },
38
+ "./style-controls": {
39
+ "types": "./dist/editor/style-controls.d.ts",
40
+ "import": "./dist/editor/style-controls.js",
41
+ "default": "./dist/editor/style-controls.js"
42
+ },
33
43
  "./style": "./dist/styles/index.css",
34
44
  "./article.css": "./dist/styles/article.css",
35
45
  "./tokens-default.css": "./dist/styles/tokens-default.css"
@@ -52,7 +62,8 @@
52
62
  },
53
63
  "dependencies": {
54
64
  "@akairos/milkdown-article-plugins": "^0.1.3",
55
- "juice": "^12.2.0"
65
+ "juice": "^12.2.0",
66
+ "postcss-selector-parser": "7.1.6"
56
67
  },
57
68
  "devDependencies": {
58
69
  "@milkdown/crepe": "^7.21.2",