mikuru 1.0.26 → 1.0.28

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 (57) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +36 -4
  3. package/components/MikuruAudioPlayer.mikuru +263 -0
  4. package/components/MikuruCarousel.mikuru +280 -0
  5. package/components/MikuruCodeBlock.mikuru +96 -0
  6. package/components/MikuruDropdown.mikuru +153 -0
  7. package/components/MikuruImageViewer.mikuru +269 -0
  8. package/components/MikuruModal.mikuru +159 -0
  9. package/components/MikuruProgress.mikuru +85 -0
  10. package/components/MikuruToast.mikuru +128 -0
  11. package/components/MikuruToolTip.mikuru +95 -0
  12. package/components/MikuruVideoPlayer.mikuru +635 -0
  13. package/dist/compiler/compile.js +9 -2
  14. package/dist/compiler/compile.js.map +1 -1
  15. package/dist/compiler/compileHydration.js +9 -2
  16. package/dist/compiler/compileHydration.js.map +1 -1
  17. package/dist/compiler/compileSsr.js +4 -1
  18. package/dist/compiler/compileSsr.js.map +1 -1
  19. package/dist/compiler/generate.d.ts +1 -0
  20. package/dist/compiler/generate.js +17 -2
  21. package/dist/compiler/generate.js.map +1 -1
  22. package/dist/compiler/generateHydration.js +1 -1
  23. package/dist/compiler/generateHydration.js.map +1 -1
  24. package/dist/compiler/index.d.ts +2 -0
  25. package/dist/compiler/index.js +1 -0
  26. package/dist/compiler/index.js.map +1 -1
  27. package/dist/compiler/parseSfc.js +20 -2
  28. package/dist/compiler/parseSfc.js.map +1 -1
  29. package/dist/compiler/sourceMap.js +72 -16
  30. package/dist/compiler/sourceMap.js.map +1 -1
  31. package/dist/compiler/templateTypeCheck.d.ts +19 -0
  32. package/dist/compiler/templateTypeCheck.js +270 -0
  33. package/dist/compiler/templateTypeCheck.js.map +1 -0
  34. package/dist/compiler/types.d.ts +7 -0
  35. package/dist/index.d.ts +2 -2
  36. package/dist/index.js +1 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/runtime/devtools.d.ts +19 -5
  39. package/dist/runtime/devtools.js +26 -3
  40. package/dist/runtime/devtools.js.map +1 -1
  41. package/dist/runtime/index.d.ts +2 -2
  42. package/dist/runtime/index.js +1 -1
  43. package/dist/runtime/index.js.map +1 -1
  44. package/dist/vite.d.ts +1 -0
  45. package/dist/vite.js +65 -3
  46. package/dist/vite.js.map +1 -1
  47. package/package.json +84 -2
  48. package/types/components/MikuruAudioPlayer.d.ts +12 -0
  49. package/types/components/MikuruCarousel.d.ts +21 -0
  50. package/types/components/MikuruCodeBlock.d.ts +11 -0
  51. package/types/components/MikuruDropdown.d.ts +17 -0
  52. package/types/components/MikuruImageViewer.d.ts +14 -0
  53. package/types/components/MikuruModal.d.ts +14 -0
  54. package/types/components/MikuruProgress.d.ts +12 -0
  55. package/types/components/MikuruToast.d.ts +17 -0
  56. package/types/components/MikuruToolTip.d.ts +11 -0
  57. package/types/components/MikuruVideoPlayer.d.ts +13 -0
@@ -5,6 +5,7 @@ import { generateHydration } from "./generateHydration.js";
5
5
  import { parseSfc } from "./parseSfc.js";
6
6
  import { parseTemplate } from "./parseTemplate.js";
7
7
  import { createSourceMap } from "./sourceMap.js";
8
+ import { assertTemplateTypeCheck } from "./templateTypeCheck.js";
8
9
  import { emitDebugDiagnostic } from "../runtime/devtools.js";
9
10
  export function compileHydration(source, options = {}) {
10
11
  try {
@@ -15,8 +16,13 @@ export function compileHydration(source, options = {}) {
15
16
  offset: descriptor.templateOffset
16
17
  });
17
18
  emitCompatDirectiveDiagnostics(ast, { debug: options.debug === true, filename: options.filename, phase: "compile-hydration" });
19
+ const templateTypeCheck = options.templateTypeCheck === true ? assertTemplateTypeCheck(descriptor, ast) : undefined;
18
20
  const bindings = analyzeTemplate(ast, { source, filename: options.filename });
19
- const mountCode = generate(descriptor, ast, { debug: options.debug === true, batchedUpdates: options.batchedUpdates === true });
21
+ const mountCode = generate(descriptor, ast, {
22
+ debug: options.debug === true,
23
+ batchedUpdates: options.batchedUpdates === true,
24
+ externalStyles: options.externalStyles === true
25
+ });
20
26
  const hydrationCode = generateHydration(descriptor, ast, { includeImports: false });
21
27
  const code = mountCode.replace("export default __mikuru_component;", `${hydrationCode}\nconst __mikuru_hydrationComponent = { ...__mikuru_component, hydrate };\nexport default __mikuru_hydrationComponent;`);
22
28
  const map = createSourceMap(code, descriptor, ast);
@@ -25,7 +31,8 @@ export function compileHydration(source, options = {}) {
25
31
  map,
26
32
  descriptor,
27
33
  ast,
28
- bindings
34
+ bindings,
35
+ templateTypeCheck
29
36
  };
30
37
  }
31
38
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"compileHydration.js","sourceRoot":"","sources":["../../src/compiler/compileHydration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,UAA0B,EAAE;IAC3E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM;YACN,MAAM,EAAE,UAAU,CAAC,cAAc;SAClC,CAAC,CAAC;QACH,8BAA8B,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC/H,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC,CAAC;QAChI,MAAM,aAAa,GAAG,iBAAiB,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,oCAAoC,EAAE,GAAG,aAAa,wHAAwH,CAAC,CAAC;QAC/M,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAEnD,OAAO;YACL,IAAI;YACJ,GAAG;YACH,UAAU;YACV,GAAG;YACH,QAAQ;SACT,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC/F,KAAK,EAAE,mBAAmB;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK;SACN,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"compileHydration.js","sourceRoot":"","sources":["../../src/compiler/compileHydration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,UAA0B,EAAE;IAC3E,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM;YACN,MAAM,EAAE,UAAU,CAAC,cAAc;SAClC,CAAC,CAAC;QACH,8BAA8B,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC/H,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpH,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;YAC1C,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI;YAC7B,cAAc,EAAE,OAAO,CAAC,cAAc,KAAK,IAAI;YAC/C,cAAc,EAAE,OAAO,CAAC,cAAc,KAAK,IAAI;SAChD,CAAC,CAAC;QACH,MAAM,aAAa,GAAG,iBAAiB,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,oCAAoC,EAAE,GAAG,aAAa,wHAAwH,CAAC,CAAC;QAC/M,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;QAEnD,OAAO;YACL,IAAI;YACJ,GAAG;YACH,UAAU;YACV,GAAG;YACH,QAAQ;YACR,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC/F,KAAK,EAAE,mBAAmB;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK;SACN,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -3,6 +3,7 @@ import { emitCompatDirectiveDiagnostics } from "./compatDiagnostics.js";
3
3
  import { generateSsr } from "./generateSsr.js";
4
4
  import { parseSfc } from "./parseSfc.js";
5
5
  import { parseTemplate } from "./parseTemplate.js";
6
+ import { assertTemplateTypeCheck } from "./templateTypeCheck.js";
6
7
  import { emitDebugDiagnostic } from "../runtime/devtools.js";
7
8
  export function compileSsr(source, options = {}) {
8
9
  try {
@@ -13,13 +14,15 @@ export function compileSsr(source, options = {}) {
13
14
  offset: descriptor.templateOffset
14
15
  });
15
16
  emitCompatDirectiveDiagnostics(ast, { debug: options.debug === true, filename: options.filename, phase: "compile-ssr" });
17
+ const templateTypeCheck = options.templateTypeCheck === true ? assertTemplateTypeCheck(descriptor, ast) : undefined;
16
18
  const bindings = analyzeTemplate(ast, { source, filename: options.filename });
17
19
  const code = generateSsr(descriptor, ast);
18
20
  return {
19
21
  code,
20
22
  descriptor,
21
23
  ast,
22
- bindings
24
+ bindings,
25
+ templateTypeCheck
23
26
  };
24
27
  }
25
28
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"compileSsr.js","sourceRoot":"","sources":["../../src/compiler/compileSsr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,UAA0B,EAAE;IACrE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM;YACN,MAAM,EAAE,UAAU,CAAC,cAAc;SAClC,CAAC,CAAC;QACH,8BAA8B,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QACzH,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAE1C,OAAO;YACL,IAAI;YACJ,UAAU;YACV,GAAG;YACH,QAAQ;SACT,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC/F,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK;SACN,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"compileSsr.js","sourceRoot":"","sources":["../../src/compiler/compileSsr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,UAA0B,EAAE;IACrE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC7C,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM;YACN,MAAM,EAAE,UAAU,CAAC,cAAc;SAClC,CAAC,CAAC;QACH,8BAA8B,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QACzH,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpH,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAE1C,OAAO;YACL,IAAI;YACJ,UAAU;YACV,GAAG;YACH,QAAQ;YACR,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mBAAmB,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC/F,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK;SACN,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -14,6 +14,7 @@ export type GenerateContext = {
14
14
  type GenerateOptions = {
15
15
  debug?: boolean;
16
16
  batchedUpdates?: boolean;
17
+ externalStyles?: boolean;
17
18
  };
18
19
  export declare function generate(descriptor: SfcDescriptor, root: ElementNode, options?: GenerateOptions): string;
19
20
  export declare function generateNode(context: GenerateContext, node: TemplateNode, parentVar: string, cleanupVar: string, indent: number, beforeVar?: string): string;
@@ -146,8 +146,15 @@ export function generate(descriptor, root, options = {}) {
146
146
  emit(context, 1, "};");
147
147
  emit(context, 1, "");
148
148
  if (descriptor.style?.trim()) {
149
- emitStyleInjection(context, descriptor, 1);
150
- emit(context, 1, "");
149
+ if (options.externalStyles === true) {
150
+ emitExternalStyleDebugEvent(context, descriptor, 1);
151
+ }
152
+ else {
153
+ emitStyleInjection(context, descriptor, 1);
154
+ }
155
+ if (options.externalStyles !== true || context.debug) {
156
+ emit(context, 1, "");
157
+ }
151
158
  }
152
159
  if (script.body.trim()) {
153
160
  if (script.usesPropsAlias) {
@@ -216,6 +223,14 @@ function emitStyleInjection(context, descriptor, indent) {
216
223
  }
217
224
  emit(context, indent, "}");
218
225
  }
226
+ function emitExternalStyleDebugEvent(context, descriptor, indent) {
227
+ if (!context.debug) {
228
+ return;
229
+ }
230
+ const styleId = `mikuru-${hash(`${descriptor.filename ?? ""}\n${descriptor.style ?? ""}`)}`;
231
+ const styleResult = compileDescriptorStyle(descriptor, context.scopeAttr);
232
+ emit(context, indent, `emitDebugEvent("style:inject", { component: __mikuru_componentInfo, componentId: __mikuru_debug.id, style: { id: ${quote(styleId)}, scoped: ${styleResult.scoped ? "true" : "false"}, scopeAttr: ${quote(styleResult.scopeAttr)}, length: ${styleResult.code.length}, external: true } });`);
233
+ }
219
234
  function emitDevtoolsRegistration(context, indent) {
220
235
  if (!context.debug) {
221
236
  return;