loopwind 0.20.2 → 0.21.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 (34) hide show
  1. package/_dsgn/templates/dashed-stroke-test/template.tsx +73 -0
  2. package/_dsgn/templates/path-follow-test/template.tsx +176 -0
  3. package/_dsgn/templates/path-simple-test/template.tsx +98 -0
  4. package/_dsgn/templates/stroke-dash-test/meta.json +12 -0
  5. package/_dsgn/templates/stroke-dash-test/template.tsx +53 -0
  6. package/dist/lib/path-helpers.d.ts +71 -0
  7. package/dist/lib/path-helpers.d.ts.map +1 -0
  8. package/dist/lib/path-helpers.js +118 -0
  9. package/dist/lib/path-helpers.js.map +1 -0
  10. package/dist/lib/renderer.d.ts.map +1 -1
  11. package/dist/lib/renderer.js +59 -4
  12. package/dist/lib/renderer.js.map +1 -1
  13. package/dist/lib/tailwind.d.ts.map +1 -1
  14. package/dist/lib/tailwind.js +191 -6
  15. package/dist/lib/tailwind.js.map +1 -1
  16. package/dist/lib/template-validator.d.ts.map +1 -1
  17. package/dist/lib/template-validator.js +19 -5
  18. package/dist/lib/template-validator.js.map +1 -1
  19. package/dist/lib/text-helpers.d.ts +52 -0
  20. package/dist/lib/text-helpers.d.ts.map +1 -0
  21. package/dist/lib/text-helpers.js +74 -0
  22. package/dist/lib/text-helpers.js.map +1 -0
  23. package/dist/lib/utils.d.ts +0 -4
  24. package/dist/lib/utils.d.ts.map +1 -1
  25. package/dist/lib/utils.js +33 -0
  26. package/dist/lib/utils.js.map +1 -1
  27. package/dist/types/template.d.ts +121 -0
  28. package/dist/types/template.d.ts.map +1 -1
  29. package/package.json +1 -1
  30. package/website/.astro/content.db +0 -0
  31. package/website/.astro/integrations/astro_db/db.d.ts +15 -0
  32. package/website/astro.config.mjs +2 -1
  33. package/website/package-lock.json +1090 -122
  34. package/website/package.json +14 -0
@@ -13,6 +13,8 @@ import { loadConfig } from './config.js';
13
13
  import { tw } from './tailwind.js';
14
14
  import { loadTailwindConfig } from './tailwind-config-loader.js';
15
15
  import { qr, image } from './helpers.js';
16
+ import { followLine, followQuadratic, followCubic, followCircle, followEllipse, followArc } from './path-helpers.js';
17
+ import * as textHelpers from './text-helpers.js';
16
18
  const __filename = fileURLToPath(import.meta.url);
17
19
  const __dirname = path.dirname(__filename);
18
20
  /**
@@ -228,13 +230,30 @@ export async function renderToSVG(templateName, props = {}, options = {}) {
228
230
  // Calculate animation context for embedded template
229
231
  const embeddedTotalFrames = cached.meta.video ? Math.floor(cached.meta.video.fps * cached.meta.video.duration) : undefined;
230
232
  const embeddedDurationMs = cached.meta.video ? cached.meta.video.duration * 1000 : undefined;
233
+ const embeddedTw = (classes) => tw(classes, tailwindConfig, loopwindConfig, { progress: embeddedProgress, frame: embeddedFrame, totalFrames: embeddedTotalFrames, durationMs: embeddedDurationMs });
234
+ const embeddedPath = {
235
+ followLine,
236
+ followQuadratic,
237
+ followCubic,
238
+ followCircle,
239
+ followEllipse,
240
+ followArc,
241
+ };
231
242
  const embeddedFullProps = {
232
243
  ...(templateProps || {}),
233
- tw: (classes) => tw(classes, tailwindConfig, loopwindConfig, { progress: embeddedProgress, frame: embeddedFrame, totalFrames: embeddedTotalFrames, durationMs: embeddedDurationMs }),
244
+ tw: embeddedTw,
234
245
  qr: qrHelper,
235
246
  image: imageHelper,
236
247
  template: createTemplateHelper(cached.templatePath), // Allow nested templates with proper context
237
248
  config: loopwindConfig,
249
+ path: embeddedPath,
250
+ textPath: {
251
+ onPath: (text, pathFollower, options = {}) => textHelpers.onPath(text, pathFollower, options, embeddedTw),
252
+ onCircle: (text, cx, cy, radius, offset, options = {}) => textHelpers.onCircle(text, cx, cy, radius, offset, embeddedPath, options, embeddedTw),
253
+ onQuadratic: (text, p0, p1, p2, options = {}) => textHelpers.onQuadratic(text, p0, p1, p2, embeddedPath, options, embeddedTw),
254
+ onCubic: (text, p0, p1, p2, p3, options = {}) => textHelpers.onCubic(text, p0, p1, p2, p3, embeddedPath, options, embeddedTw),
255
+ onArc: (text, cx, cy, radius, startAngle, endAngle, options = {}) => textHelpers.onArc(text, cx, cy, radius, startAngle, endAngle, embeddedPath, options, embeddedTw),
256
+ },
238
257
  };
239
258
  // Return JSX wrapped in a sized container (using template's own meta size)
240
259
  return React.createElement('div', { style: { width: cached.meta.size.width, height: cached.meta.size.height, display: 'flex' } }, cached.Component(embeddedFullProps));
@@ -243,13 +262,30 @@ export async function renderToSVG(templateName, props = {}, options = {}) {
243
262
  // Create the root template helper with the current template's path as context
244
263
  const templateHelper = createTemplateHelper(currentTemplatePath);
245
264
  // First pass: render to collect template and image dependencies
265
+ const firstPassPath = {
266
+ followLine,
267
+ followQuadratic,
268
+ followCubic,
269
+ followCircle,
270
+ followEllipse,
271
+ followArc,
272
+ };
273
+ const firstPassTw = () => ({});
246
274
  Component({
247
275
  ...props,
248
- tw: () => ({}),
276
+ tw: firstPassTw,
249
277
  qr: () => '',
250
278
  image: imageHelper,
251
279
  template: templateHelper,
252
- config: loopwindConfig
280
+ config: loopwindConfig,
281
+ path: firstPassPath,
282
+ textPath: {
283
+ onPath: (text, pathFollower, options = {}) => textHelpers.onPath(text, pathFollower, options, firstPassTw),
284
+ onCircle: (text, cx, cy, radius, offset, options = {}) => textHelpers.onCircle(text, cx, cy, radius, offset, firstPassPath, options, firstPassTw),
285
+ onQuadratic: (text, p0, p1, p2, options = {}) => textHelpers.onQuadratic(text, p0, p1, p2, firstPassPath, options, firstPassTw),
286
+ onCubic: (text, p0, p1, p2, p3, options = {}) => textHelpers.onCubic(text, p0, p1, p2, p3, firstPassPath, options, firstPassTw),
287
+ onArc: (text, cx, cy, radius, startAngle, endAngle, options = {}) => textHelpers.onArc(text, cx, cy, radius, startAngle, endAngle, firstPassPath, options, firstPassTw),
288
+ },
253
289
  });
254
290
  // Load all requested images in parallel
255
291
  const imageLoadPromises = [];
@@ -310,15 +346,34 @@ export async function renderToSVG(templateName, props = {}, options = {}) {
310
346
  // Calculate animation context for video templates
311
347
  const totalFrames = meta.video ? Math.floor(meta.video.fps * meta.video.duration) : undefined;
312
348
  const durationMs = meta.video ? meta.video.duration * 1000 : undefined;
349
+ const mainTw = (classes) => tw(classes, tailwindConfig, loopwindConfig, { progress, frame, totalFrames, durationMs });
350
+ const mainPath = {
351
+ followLine,
352
+ followQuadratic,
353
+ followCubic,
354
+ followCircle,
355
+ followEllipse,
356
+ followArc,
357
+ };
313
358
  const fullProps = {
314
359
  ...props,
315
360
  frame,
316
361
  progress,
317
362
  config: loopwindConfig, // Pass the design config to the template
318
- tw: (classes) => tw(classes, tailwindConfig, loopwindConfig, { progress, frame, totalFrames, durationMs }), // Tailwind class converter with animation context
363
+ tw: mainTw, // Tailwind class converter with animation context
319
364
  qr: qrHelper, // QR code generator (cached)
320
365
  image: imageHelper, // Image loader (cached)
321
366
  template: templateHelper, // Template embedder (cached)
367
+ // Path following helpers for animations
368
+ path: mainPath,
369
+ // Text on path helpers
370
+ textPath: {
371
+ onPath: (text, pathFollower, options = {}) => textHelpers.onPath(text, pathFollower, options, mainTw),
372
+ onCircle: (text, cx, cy, radius, offset, options = {}) => textHelpers.onCircle(text, cx, cy, radius, offset, mainPath, options, mainTw),
373
+ onQuadratic: (text, p0, p1, p2, options = {}) => textHelpers.onQuadratic(text, p0, p1, p2, mainPath, options, mainTw),
374
+ onCubic: (text, p0, p1, p2, p3, options = {}) => textHelpers.onCubic(text, p0, p1, p2, p3, mainPath, options, mainTw),
375
+ onArc: (text, cx, cy, radius, startAngle, endAngle, options = {}) => textHelpers.onArc(text, cx, cy, radius, startAngle, endAngle, mainPath, options, mainTw),
376
+ },
322
377
  };
323
378
  // Load fonts (template-specific or default)
324
379
  const fonts = await loadTemplateFonts(templateName, meta, loopwindConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/lib/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/lib/renderer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tailwind.d.ts","sourceRoot":"","sources":["../../src/lib/tailwind.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAOlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AA28B3C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAkkBD,wBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,cAAc,GAAE,cAAc,GAAG,IAAW,EAC5C,cAAc,GAAE,GAAU,EAC1B,gBAAgB,GAAE,gBAAqB,GACtC,aAAa,CAqMf"}
1
+ {"version":3,"file":"tailwind.d.ts","sourceRoot":"","sources":["../../src/lib/tailwind.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAOlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAgkC3C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA2oBD,wBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,cAAc,GAAE,cAAc,GAAG,IAAW,EAC5C,cAAc,GAAE,GAAU,EAC1B,gBAAgB,GAAE,gBAAqB,GACtC,aAAa,CA2Mf"}
@@ -865,6 +865,120 @@ function generateSpringEasing(mass = 1, stiffness = 100, damping = 10, velocity
865
865
  // Return easing function normalized to 0-1 range
866
866
  return (t) => solver(duration * t);
867
867
  }
868
+ /**
869
+ * Intelligently merge multiple transform functions
870
+ * Instead of concatenating "scale(0.8) scale(1.05)", this combines them properly:
871
+ * - scale: multiply values together (0.8 * 1.05 = 0.84)
872
+ * - rotate: add degrees together
873
+ * - translate: add distances together
874
+ * - skew: add degrees together
875
+ */
876
+ function mergeTransforms(transforms) {
877
+ const merged = {
878
+ scaleX: 1,
879
+ scaleY: 1,
880
+ scale: null,
881
+ rotate: 0,
882
+ translateX: 0,
883
+ translateY: 0,
884
+ skewX: 0,
885
+ skewY: 0,
886
+ };
887
+ // Parse each transform and accumulate values
888
+ for (const transform of transforms) {
889
+ // Match transform functions like "scale(1.05)", "rotate(45deg)", "translateX(10px)"
890
+ const functions = transform.match(/(\w+)\(([^)]+)\)/g) || [];
891
+ for (const fn of functions) {
892
+ const match = fn.match(/(\w+)\(([^)]+)\)/);
893
+ if (!match)
894
+ continue;
895
+ const [, name, value] = match;
896
+ const numValue = parseFloat(value);
897
+ if (isNaN(numValue))
898
+ continue;
899
+ switch (name) {
900
+ case 'scale':
901
+ // Uniform scale - multiply into both scaleX and scaleY
902
+ merged.scale = merged.scale === null ? numValue : merged.scale * numValue;
903
+ break;
904
+ case 'scaleX':
905
+ merged.scaleX *= numValue;
906
+ break;
907
+ case 'scaleY':
908
+ merged.scaleY *= numValue;
909
+ break;
910
+ case 'rotate':
911
+ merged.rotate += numValue;
912
+ break;
913
+ case 'translateX':
914
+ merged.translateX += numValue;
915
+ break;
916
+ case 'translateY':
917
+ merged.translateY += numValue;
918
+ break;
919
+ case 'skewX':
920
+ merged.skewX += numValue;
921
+ break;
922
+ case 'skewY':
923
+ merged.skewY += numValue;
924
+ break;
925
+ }
926
+ }
927
+ }
928
+ // Build final transform string
929
+ const parts = [];
930
+ // If we have a uniform scale, use that for both axes
931
+ if (merged.scale !== null) {
932
+ const finalScaleX = merged.scaleX * merged.scale;
933
+ const finalScaleY = merged.scaleY * merged.scale;
934
+ if (finalScaleX !== 1 || finalScaleY !== 1) {
935
+ if (finalScaleX === finalScaleY) {
936
+ parts.push(`scale(${finalScaleX})`);
937
+ }
938
+ else {
939
+ if (finalScaleX !== 1)
940
+ parts.push(`scaleX(${finalScaleX})`);
941
+ if (finalScaleY !== 1)
942
+ parts.push(`scaleY(${finalScaleY})`);
943
+ }
944
+ }
945
+ }
946
+ else {
947
+ // No uniform scale, just use scaleX/scaleY
948
+ if (merged.scaleX !== 1 || merged.scaleY !== 1) {
949
+ if (merged.scaleX === merged.scaleY) {
950
+ parts.push(`scale(${merged.scaleX})`);
951
+ }
952
+ else {
953
+ if (merged.scaleX !== 1)
954
+ parts.push(`scaleX(${merged.scaleX})`);
955
+ if (merged.scaleY !== 1)
956
+ parts.push(`scaleY(${merged.scaleY})`);
957
+ }
958
+ }
959
+ }
960
+ if (merged.rotate !== 0) {
961
+ parts.push(`rotate(${merged.rotate}deg)`);
962
+ }
963
+ if (merged.translateX !== 0 || merged.translateY !== 0) {
964
+ if (merged.translateX === 0) {
965
+ parts.push(`translateY(${merged.translateY}px)`);
966
+ }
967
+ else if (merged.translateY === 0) {
968
+ parts.push(`translateX(${merged.translateX}px)`);
969
+ }
970
+ else {
971
+ parts.push(`translate(${merged.translateX}px, ${merged.translateY}px)`);
972
+ }
973
+ }
974
+ if (merged.skewX !== 0) {
975
+ parts.push(`skewX(${merged.skewX}deg)`);
976
+ }
977
+ if (merged.skewY !== 0) {
978
+ parts.push(`skewY(${merged.skewY}deg)`);
979
+ }
980
+ return parts.join(' ');
981
+ }
868
982
  // Easing functions for animations
869
983
  const easingFunctions = {
870
984
  'linear': (t) => t,
@@ -916,6 +1030,9 @@ function parseTimeValue(value) {
916
1030
  * - Negative values: -translate-x-5, -rotate-45, -scale-50
917
1031
  * - Works with all prefixes: enter-, exit-, loop-, animate-
918
1032
  * - Works with /start/duration syntax: enter-translate-x-5/0/800
1033
+ * - SVG stroke animations: enter-stroke-dash-[300], exit-stroke-dash-[300], loop-stroke-dash-[300]
1034
+ * - Animates strokeDashoffset for drawing/erasing effects
1035
+ * - Requires path length in brackets: stroke-dash-[300]
919
1036
  */
920
1037
  function parseAnimationClass(className, context, easing, customEasingFunctions = {}) {
921
1038
  const { frame = 0, totalFrames = 100, durationMs = 3000 } = context;
@@ -923,6 +1040,68 @@ function parseAnimationClass(className, context, easing, customEasingFunctions =
923
1040
  const easeFn = allEasingFunctions[easing] || allEasingFunctions['ease-out'];
924
1041
  // Convert current frame to milliseconds
925
1042
  const currentMs = (frame / totalFrames) * durationMs;
1043
+ // Match stroke-dash animations: enter-stroke-dash-[length], exit-stroke-dash-[length], loop-stroke-dash-[length]
1044
+ const strokeDashMatch = className.match(/^(enter|exit|loop)-stroke-dash-\[(.+?)\](?:\/(\[[\d.]+(?:ms|s)?]|\d+)(?:\/(\[[\d.]+(?:ms|s)?]|\d+))?)?$/);
1045
+ if (strokeDashMatch) {
1046
+ const [, mode, lengthStr, startStr, durationStr] = strokeDashMatch;
1047
+ const pathLength = parseFloat(lengthStr);
1048
+ if (isNaN(pathLength))
1049
+ return null;
1050
+ if (mode === 'enter') {
1051
+ const startMs = startStr ? parseTimeValue(startStr) : 0;
1052
+ const animDurationMs = durationStr ? parseTimeValue(durationStr) : durationMs;
1053
+ const endMs = startMs + animDurationMs;
1054
+ let localProgress = 0;
1055
+ if (currentMs <= startMs) {
1056
+ localProgress = 0;
1057
+ }
1058
+ else if (currentMs >= endMs) {
1059
+ localProgress = 1;
1060
+ }
1061
+ else {
1062
+ localProgress = (currentMs - startMs) / animDurationMs;
1063
+ }
1064
+ const easedProgress = easeFn(localProgress);
1065
+ // Draw from 0% to 100%: offset goes from pathLength to 0
1066
+ return {
1067
+ strokeDasharray: pathLength,
1068
+ strokeDashoffset: pathLength * (1 - easedProgress)
1069
+ };
1070
+ }
1071
+ if (mode === 'exit') {
1072
+ const startMs = startStr ? parseTimeValue(startStr) : 0;
1073
+ const animDurationMs = durationStr ? parseTimeValue(durationStr) : durationMs;
1074
+ const endMs = startMs + animDurationMs;
1075
+ let localProgress = 0;
1076
+ if (currentMs <= startMs) {
1077
+ localProgress = 0;
1078
+ }
1079
+ else if (currentMs >= endMs) {
1080
+ localProgress = 1;
1081
+ }
1082
+ else {
1083
+ localProgress = (currentMs - startMs) / animDurationMs;
1084
+ }
1085
+ const easedProgress = easeFn(localProgress);
1086
+ // Erase from 100% to 0%: offset goes from 0 to pathLength
1087
+ return {
1088
+ strokeDasharray: pathLength,
1089
+ strokeDashoffset: pathLength * easedProgress
1090
+ };
1091
+ }
1092
+ if (mode === 'loop') {
1093
+ const loopDurationMs = startStr ? parseTimeValue(startStr) : 1000;
1094
+ const loopProgress = (currentMs % loopDurationMs) / loopDurationMs;
1095
+ // Oscillate: draw in first half, erase in second half
1096
+ const offset = loopProgress < 0.5
1097
+ ? pathLength * (1 - loopProgress * 2) // Draw: 1 -> 0
1098
+ : pathLength * ((loopProgress - 0.5) * 2); // Erase: 0 -> 1
1099
+ return {
1100
+ strokeDasharray: pathLength,
1101
+ strokeDashoffset: offset
1102
+ };
1103
+ }
1104
+ }
926
1105
  // Match enter animations: enter-{type} or enter-{type}/{start}/{duration}
927
1106
  // Supports both plain numbers and bracketed values like [0.6s]
928
1107
  const enterMatch = className.match(/^enter-([\w-]+)(?:\/(\[[\d.]+(?:ms|s)?\]|\d+)\/(\[[\d.]+(?:ms|s)?\]|\d+))?$/);
@@ -1403,7 +1582,7 @@ export function tw(classes, tailwindConfig = null, loopwindConfig = null, animat
1403
1582
  const customEasingFunctions = {};
1404
1583
  for (const className of classArray) {
1405
1584
  // Check for configurable spring easing: ease-spring/mass/stiffness/damping
1406
- const springConfigMatch = className.match(/^(enter-ease-|exit-ease-|loop-ease-)?ease-spring\/([^\/]+)\/([^\/]+)\/([^\/]+)$/);
1585
+ const springConfigMatch = className.match(/^(enter-|exit-|loop-)?ease-spring\/([^\/]+)\/([^\/]+)\/([^\/]+)$/);
1407
1586
  if (springConfigMatch) {
1408
1587
  const [, prefix, massStr, stiffnessStr, dampingStr] = springConfigMatch;
1409
1588
  const mass = parseFloat(massStr);
@@ -1413,13 +1592,13 @@ export function tw(classes, tailwindConfig = null, loopwindConfig = null, animat
1413
1592
  const customSpring = generateSpringEasing(mass, stiffness, damping);
1414
1593
  const customKey = `ease-spring-${mass}-${stiffness}-${damping}`;
1415
1594
  customEasingFunctions[customKey] = customSpring;
1416
- if (prefix === 'enter-ease-') {
1595
+ if (prefix === 'enter-') {
1417
1596
  enterEasing = customKey;
1418
1597
  }
1419
- else if (prefix === 'exit-ease-') {
1598
+ else if (prefix === 'exit-') {
1420
1599
  exitEasing = customKey;
1421
1600
  }
1422
- else if (prefix === 'loop-ease-') {
1601
+ else if (prefix === 'loop-') {
1423
1602
  loopEasing = customKey;
1424
1603
  }
1425
1604
  else {
@@ -1483,6 +1662,12 @@ export function tw(classes, tailwindConfig = null, loopwindConfig = null, animat
1483
1662
  if (animationResult.transformOrigin) {
1484
1663
  styles.transformOrigin = animationResult.transformOrigin;
1485
1664
  }
1665
+ if (animationResult.strokeDasharray !== undefined) {
1666
+ styles.strokeDasharray = animationResult.strokeDasharray;
1667
+ }
1668
+ if (animationResult.strokeDashoffset !== undefined) {
1669
+ styles.strokeDashoffset = animationResult.strokeDashoffset;
1670
+ }
1486
1671
  continue;
1487
1672
  }
1488
1673
  const parsed = parseClass(className, tailwindConfig, loopwindConfig);
@@ -1544,9 +1729,9 @@ export function tw(classes, tailwindConfig = null, loopwindConfig = null, animat
1544
1729
  const gradient = `linear-gradient(${direction}, ${stops.join(', ')})`;
1545
1730
  styles.backgroundImage = gradient;
1546
1731
  }
1547
- // Combine multiple transforms
1732
+ // Combine multiple transforms intelligently
1548
1733
  if (transforms.length > 0) {
1549
- styles.transform = transforms.join(' ');
1734
+ styles.transform = mergeTransforms(transforms);
1550
1735
  }
1551
1736
  // Combine multiple filters
1552
1737
  if (filters.length > 0) {