@hyperframes/core 0.7.27 → 0.7.29

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 (82) hide show
  1. package/dist/compiler/compositionScoping.d.ts.map +1 -1
  2. package/dist/compiler/compositionScoping.js +13 -0
  3. package/dist/compiler/compositionScoping.js.map +1 -1
  4. package/dist/compiler/inlineSubCompositions.d.ts.map +1 -1
  5. package/dist/compiler/inlineSubCompositions.js +10 -0
  6. package/dist/compiler/inlineSubCompositions.js.map +1 -1
  7. package/dist/figma/assetSnippet.d.ts +3 -0
  8. package/dist/figma/assetSnippet.d.ts.map +1 -0
  9. package/dist/figma/assetSnippet.js +18 -0
  10. package/dist/figma/assetSnippet.js.map +1 -0
  11. package/dist/figma/bindings.d.ts +38 -0
  12. package/dist/figma/bindings.d.ts.map +1 -0
  13. package/dist/figma/bindings.js +84 -0
  14. package/dist/figma/bindings.js.map +1 -0
  15. package/dist/figma/client.d.ts +67 -0
  16. package/dist/figma/client.d.ts.map +1 -0
  17. package/dist/figma/client.js +134 -0
  18. package/dist/figma/client.js.map +1 -0
  19. package/dist/figma/color.d.ts +3 -0
  20. package/dist/figma/color.d.ts.map +1 -0
  21. package/dist/figma/color.js +23 -0
  22. package/dist/figma/color.js.map +1 -0
  23. package/dist/figma/emitTimelineScript.d.ts +3 -0
  24. package/dist/figma/emitTimelineScript.d.ts.map +1 -0
  25. package/dist/figma/emitTimelineScript.js +42 -0
  26. package/dist/figma/emitTimelineScript.js.map +1 -0
  27. package/dist/figma/freeze.d.ts +16 -0
  28. package/dist/figma/freeze.d.ts.map +1 -0
  29. package/dist/figma/freeze.js +67 -0
  30. package/dist/figma/freeze.js.map +1 -0
  31. package/dist/figma/index.d.ts +21 -0
  32. package/dist/figma/index.d.ts.map +1 -0
  33. package/dist/figma/index.js +15 -0
  34. package/dist/figma/index.js.map +1 -0
  35. package/dist/figma/jsonl.d.ts +3 -0
  36. package/dist/figma/jsonl.d.ts.map +1 -0
  37. package/dist/figma/jsonl.js +22 -0
  38. package/dist/figma/jsonl.js.map +1 -0
  39. package/dist/figma/manifest.d.ts +17 -0
  40. package/dist/figma/manifest.d.ts.map +1 -0
  41. package/dist/figma/manifest.js +96 -0
  42. package/dist/figma/manifest.js.map +1 -0
  43. package/dist/figma/motionEase.d.ts +3 -0
  44. package/dist/figma/motionEase.d.ts.map +1 -0
  45. package/dist/figma/motionEase.js +45 -0
  46. package/dist/figma/motionEase.js.map +1 -0
  47. package/dist/figma/motionToGsap.d.ts +3 -0
  48. package/dist/figma/motionToGsap.d.ts.map +1 -0
  49. package/dist/figma/motionToGsap.js +61 -0
  50. package/dist/figma/motionToGsap.js.map +1 -0
  51. package/dist/figma/nodeDocument.d.ts +4 -0
  52. package/dist/figma/nodeDocument.d.ts.map +1 -0
  53. package/dist/figma/nodeDocument.js +26 -0
  54. package/dist/figma/nodeDocument.js.map +1 -0
  55. package/dist/figma/nodeToHtml.d.ts +31 -0
  56. package/dist/figma/nodeToHtml.d.ts.map +1 -0
  57. package/dist/figma/nodeToHtml.js +244 -0
  58. package/dist/figma/nodeToHtml.js.map +1 -0
  59. package/dist/figma/parseFigmaRef.d.ts +3 -0
  60. package/dist/figma/parseFigmaRef.d.ts.map +1 -0
  61. package/dist/figma/parseFigmaRef.js +31 -0
  62. package/dist/figma/parseFigmaRef.js.map +1 -0
  63. package/dist/figma/resolveBindings.d.ts +31 -0
  64. package/dist/figma/resolveBindings.d.ts.map +1 -0
  65. package/dist/figma/resolveBindings.js +77 -0
  66. package/dist/figma/resolveBindings.js.map +1 -0
  67. package/dist/figma/sanitizeSvg.d.ts +18 -0
  68. package/dist/figma/sanitizeSvg.d.ts.map +1 -0
  69. package/dist/figma/sanitizeSvg.js +52 -0
  70. package/dist/figma/sanitizeSvg.js.map +1 -0
  71. package/dist/figma/tokensToVariables.d.ts +40 -0
  72. package/dist/figma/tokensToVariables.d.ts.map +1 -0
  73. package/dist/figma/tokensToVariables.js +118 -0
  74. package/dist/figma/tokensToVariables.js.map +1 -0
  75. package/dist/figma/types.d.ts +81 -0
  76. package/dist/figma/types.d.ts.map +1 -0
  77. package/dist/figma/types.js +2 -0
  78. package/dist/figma/types.js.map +1 -0
  79. package/dist/generated/runtime-inline.js +1 -1
  80. package/dist/generated/runtime-inline.js.map +1 -1
  81. package/dist/hyperframe.runtime.iife.js +19 -19
  82. package/package.json +8 -4
@@ -1 +1 @@
1
- {"version":3,"file":"compositionScoping.d.ts","sourceRoot":"","sources":["../../src/compiler/compositionScoping.ts"],"names":[],"mappings":"AAqKA,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,qBAAqB,CAAC,EAAE,MAAM,EAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,EAC9B,OAAO,CAAC,EAAE;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3C,MAAM,CAsBR;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,SAA4C,EACtD,qBAAqB,CAAC,EAAE,MAAM,EAC9B,qBAAqB,SAAgB,EACrC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAC7B,MAAM,CAuSR;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5F"}
1
+ {"version":3,"file":"compositionScoping.d.ts","sourceRoot":"","sources":["../../src/compiler/compositionScoping.ts"],"names":[],"mappings":"AAkLA,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,qBAAqB,CAAC,EAAE,MAAM,EAC9B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,EAC9B,OAAO,CAAC,EAAE;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3C,MAAM,CAsBR;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,UAAU,SAA4C,EACtD,qBAAqB,CAAC,EAAE,MAAM,EAC9B,qBAAqB,SAAgB,EACrC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAC7B,MAAM,CAuSR;AAED,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5F"}
@@ -1,5 +1,6 @@
1
1
  import postcss from "postcss";
2
2
  const AUTHORED_ROOT_ID_ATTR = "data-hf-authored-id";
3
+ const INNER_ROOT_ATTR = "data-hf-inner-root";
3
4
  function escapeRegExp(value) {
4
5
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
5
6
  }
@@ -84,6 +85,18 @@ function scopeSelector(selector, scope, compositionId, authoredRootId, compoundA
84
85
  return selector;
85
86
  const compositionIdPattern = new RegExp(`\\[\\s*data-composition-id\\s*=\\s*(["'])${escapeRegExp(compositionId)}\\1\\s*\\]`, "g");
86
87
  if (compositionIdPattern.test(trimmed)) {
88
+ const isRootBoxSelector = trimmed.replace(compositionIdPattern, "").trim() === "";
89
+ if (isRootBoxSelector) {
90
+ // A bare root selector styles the composition's own box (flex/grid/
91
+ // position/padding). When flattenInnerRoot preserves the authored root
92
+ // as a wrapper below `scope` (see prepareFlattenedInnerRoot), that
93
+ // wrapper is the element real children are laid out in, not `scope`
94
+ // itself, so the box styling must land there instead. It must land on
95
+ // exactly one of the two: applying it to both compounds any additive
96
+ // property (padding, margin, non-zero transform) since the wrapper
97
+ // sits nested inside the host and would inherit the effect twice.
98
+ return `${scope}:not(:has([${INNER_ROOT_ATTR}])), ${scope} > [${INNER_ROOT_ATTR}]`;
99
+ }
87
100
  return selectorWithoutRootTiming.replace(compositionIdPattern, scope);
88
101
  }
89
102
  const leading = selectorWithoutRootTiming.match(/^\s*/)?.[0] ?? "";
@@ -1 +1 @@
1
- {"version":3,"file":"compositionScoping.js","sourceRoot":"","sources":["../../src/compiler/compositionScoping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compositionScoping.js","sourceRoot":"","sources":["../../src/compiler/compositionScoping.ts"],"names":[],"mappings":"AAAA,OAAO,OAA8C,MAAM,SAAS,CAAC;AAErE,MAAM,qBAAqB,GAAG,qBAAqB,CAAC;AACpD,MAAM,eAAe,GAAG,oBAAoB,CAAC;AAE7C,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACxE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,SAAS,8BAA8B,CAAC,cAAsB;IAC5D,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC;IACtC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAwB;IAClD,OAAO,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,8BAA8B,CACrC,QAAgB,EAChB,cAAsB,EACtB,WAAmB;IAEnB,MAAM,KAAK,GAAG,8BAA8B,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IACjG,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAExC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,KAAK,GAAqB,IAAI,CAAC;IAEnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1D,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,IAAI,IAAI,CAAC;YACf,IAAI,IAAI,KAAK,KAAK,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC5C,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,KAAK,GAAG,IAAI,CAAC;YACb,MAAM,IAAI,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,YAAY,IAAI,CAAC,CAAC;YAClB,MAAM,IAAI,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;YAC7C,MAAM,IAAI,IAAI,CAAC;YACf,SAAS;QACX,CAAC;QAED,IAAI,IAAI,KAAK,GAAG,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/E,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;gBAC1D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAClC,MAAM,IAAI,WAAW,CAAC;oBACtB,KAAK,IAAI,WAAW,CAAC,MAAM,CAAC;oBAC5B,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,+BAA+B,CAAC,QAAgB,EAAE,cAA8B;IACvF,MAAM,OAAO,GAAG,cAAc,EAAE,IAAI,EAAE,CAAC;IACvC,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,8BAA8B,CACnC,QAAQ,EACR,OAAO,EACP,IAAI,qBAAqB,KAAK,uBAAuB,CAAC,OAAO,CAAC,IAAI,CACnE,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,QAAgB,EAChB,KAAa,EACb,aAAqB,EACrB,cAA8B,EAC9B,oBAA8B;IAE9B,MAAM,6BAA6B,GAAG,+BAA+B,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAChG,MAAM,yBAAyB,GAAG,gCAAgC,CAChE,6BAA6B,EAC7B,KAAK,EACL,aAAa,CACd,CAAC;IACF,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,EAAE,CAAC;IACjD,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7D,MAAM,oBAAoB,GAAG,IAAI,MAAM,CACrC,4CAA4C,YAAY,CAAC,aAAa,CAAC,YAAY,EACnF,GAAG,CACJ,CAAC;IACF,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAClF,IAAI,iBAAiB,EAAE,CAAC;YACtB,oEAAoE;YACpE,uEAAuE;YACvE,mEAAmE;YACnE,oEAAoE;YACpE,sEAAsE;YACtE,qEAAqE;YACrE,mEAAmE;YACnE,kEAAkE;YAClE,OAAO,GAAG,KAAK,cAAc,eAAe,QAAQ,KAAK,OAAO,eAAe,GAAG,CAAC;QACrF,CAAC;QACD,OAAO,yBAAyB,CAAC,OAAO,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,OAAO,GAAG,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,MAAM,QAAQ,GAAG,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,IAAI,oBAAoB,EAAE,CAAC;QACzB,MAAM,gBAAgB,GAAG,cAAc;YACrC,CAAC,CAAC,IAAI,qBAAqB,KAAK,uBAAuB,CAAC,cAAc,CAAC,IAAI;YAC3E,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACpD,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,gBAAgB,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,OAAO,GAAG,KAAK,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,gCAAgC,CACvC,QAAgB,EAChB,KAAa,EACb,aAAqB;IAErB,MAAM,YAAY,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAA,sCAAsC,YAAY,MAAM,YAAY,SAAS,CAAC;IACzG,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAA,gEAAgE,CAAC;IAC9F,OAAO,QAAQ;SACZ,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,MAAM,UAAU,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC;SAChE,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,UAAU,KAAK,QAAQ,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC;AAEjF,SAAS,YAAY,CAAC,IAAoB;IACxC,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC;AACjC,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAU;IACtC,IAAI,OAAO,GAAmB,IAAI,CAAC,MAAM,CAAC;IAC1C,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC7E,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,GAAW,EACX,aAAqB,EACrB,qBAA8B,EAC9B,cAA8B,EAC9B,OAA4C;IAE5C,MAAM,oBAAoB,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IAClD,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB;QAAE,OAAO,GAAG,CAAC;IAC9C,MAAM,KAAK,GACT,qBAAqB;QACrB,yBAAyB,uBAAuB,CAAC,oBAAoB,CAAC,IAAI,CAAC;IAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEhC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;QACtB,IAAI,oBAAoB,CAAC,IAAI,CAAC;YAAE,OAAO;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC/C,aAAa,CACX,QAAQ,EACR,KAAK,EACL,oBAAoB,EACpB,cAAc,EACd,OAAO,EAAE,oBAAoB,CAC9B,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAc,EACd,aAAqB,EACrB,UAAU,GAAG,yCAAyC,EACtD,qBAA8B,EAC9B,qBAAqB,GAAG,aAAa,EACrC,cAA8B;IAE9B,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3D,MAAM,4BAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC3E,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,oBAAoB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;IAC7E,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,IAAI,IAAI,CAAC,CAAC;IAC3E,MAAM,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAC/C,MAAM,CAAC,GAAG,CAAA,sCAAsC,oBAAoB,MAAM,oBAAoB,SAAS,CACxG,CAAC;IACF,MAAM,4BAA4B,GAAG,IAAI,CAAC,SAAS,CACjD,MAAM,CAAC,GAAG,CAAA,gEAAgE,CAC3E,CAAC;IACF,MAAM,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAC/C,8BAA8B,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAC7D,CAAC;IACF,OAAO;qBACY,oBAAoB;6BACZ,4BAA4B;yBAChC,iBAAiB;6BACb,qBAAqB;+BACnB,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;;;;2BAIzC,oBAAoB;;;;kCAIb,0BAA0B;oCACxB,4BAA4B;kCAC9B,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+P1D,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC;;;;;;;;MAQrC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,MAAc,EAAE,UAAkB;IAClF,OAAO,+BAA+B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,kDAAkD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,kBAAkB,CAAC;AAC7J,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"inlineSubCompositions.d.ts","sourceRoot":"","sources":["../../src/compiler/inlineSubCompositions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmBH,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAEhD;;;;;OAKG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC;IAEtC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,GAAG,CACnB,OAAO,EACP;QAAE,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAC9E,CAAC;IAEF;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC;IAEnD;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAExE;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhE;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAEhD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5F,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1D;AAeD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,EAAE,4BAA4B,GACpC,2BAA2B,CAmP7B"}
1
+ {"version":3,"file":"inlineSubCompositions.d.ts","sourceRoot":"","sources":["../../src/compiler/inlineSubCompositions.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAmBH,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAEhD;;;;;OAKG;IACH,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAC;IAEtC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,GAAG,CACnB,OAAO,EACP;QAAE,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAC9E,CAAC;IAEF;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC;IAEnD;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAExE;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhE;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAEhD;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5F,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrE,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1D;AAeD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,EAAE,4BAA4B,GACpC,2BAA2B,CA6P7B"}
@@ -211,6 +211,16 @@ export function inlineSubCompositions(document, hosts, options) {
211
211
  child.remove();
212
212
  if (flattenInnerRoot) {
213
213
  const prepared = flattenInnerRoot(innerRoot);
214
+ if (!compId && inferredCompId) {
215
+ // Anonymous host: flattenInnerRoot strips data-composition-id,
216
+ // assuming the host already carries the composition's identity.
217
+ // When the host has none, nothing in the render DOM matches the
218
+ // composition's own root-styling CSS or self-referencing scripts
219
+ // (e.g. document.querySelector('[data-composition-id="X"]')).
220
+ // Restore it on the wrapper so both keep resolving, same as
221
+ // before flattening preserved it via outerHTML.
222
+ prepared.setAttribute("data-composition-id", inferredCompId);
223
+ }
214
224
  hostEl.innerHTML = prepared.outerHTML || "";
215
225
  }
216
226
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"inlineSubCompositions.js","sourceRoot":"","sources":["../../src/compiler/inlineSubCompositions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inlineSubCompositions.js","sourceRoot":"","sources":["../../src/compiler/inlineSubCompositions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AssetSnippet, FigmaManifestRecord } from "./types";
2
+ export declare function buildAssetSnippet(record: FigmaManifestRecord): AssetSnippet;
3
+ //# sourceMappingURL=assetSnippet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetSnippet.d.ts","sourceRoot":"","sources":["../../src/figma/assetSnippet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAUjE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,YAAY,CAS3E"}
@@ -0,0 +1,18 @@
1
+ function escapeAttr(value) {
2
+ return value
3
+ .replace(/&/g, "&")
4
+ .replace(/</g, "&lt;")
5
+ .replace(/>/g, "&gt;")
6
+ .replace(/"/g, "&quot;");
7
+ }
8
+ export function buildAssetSnippet(record) {
9
+ // Every interpolated attribute is escaped — path and nodeId are
10
+ // system-generated today, but defense-in-depth is free here.
11
+ const alt = escapeAttr(record.description ?? record.id);
12
+ const src = escapeAttr(record.path);
13
+ const w = record.width !== undefined ? ` width="${record.width}"` : "";
14
+ const h = record.height !== undefined ? ` height="${record.height}"` : "";
15
+ const html = `<img src="${src}" alt="${alt}"${w}${h} data-figma-id="${escapeAttr(record.provenance.nodeId)}" />`;
16
+ return { path: record.path, html };
17
+ }
18
+ //# sourceMappingURL=assetSnippet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetSnippet.js","sourceRoot":"","sources":["../../src/figma/assetSnippet.ts"],"names":[],"mappings":"AAEA,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK;SACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAA2B;IAC3D,gEAAgE;IAChE,6DAA6D;IAC7D,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,IAAI,GAAG,aAAa,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;IACjH,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;AACrC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Binding index — the machine-readable join between figma variable/style
3
+ * identities and composition variables (design spec §7.1).
4
+ *
5
+ * Lives at .media/figma-bindings.jsonl, next to (but separate from) the
6
+ * human-readable figma-tokens.json sidecar. Resolution is exact-ID only:
7
+ * a missed link bakes a correct literal; a wrong link silently changes
8
+ * color at the next brand refresh. Never match by value or name.
9
+ */
10
+ export interface FigmaBindingRecord {
11
+ kind: "binding";
12
+ /** the figma variable/style id as it appears in node data (exact match key) */
13
+ figmaId: string;
14
+ /** stable cross-file identity, when known ("id and key are stable over the lifetime") */
15
+ key?: string;
16
+ sourceFileKey: string;
17
+ /** semantic→primitive alias chain, directly-bound id first */
18
+ aliasChain?: string[];
19
+ compositionVariableId: string;
20
+ brandRole?: string;
21
+ /** figma file version at import time — staleness check */
22
+ version: string;
23
+ }
24
+ export declare function readBindings(projectDir: string): FigmaBindingRecord[];
25
+ export declare function appendBinding(projectDir: string, record: FigmaBindingRecord): void;
26
+ /**
27
+ * Upsert by figmaId: re-running a tokens import must REPLACE that file's
28
+ * stale binding rows, not append duplicates — `findBindingByFigmaId`
29
+ * returns the first match, so appended duplicates would pin lookups to the
30
+ * stale record forever. Library rows and other files' bindings survive.
31
+ */
32
+ export declare function upsertBindings(projectDir: string, records: FigmaBindingRecord[]): void;
33
+ /** Exact-ID lookup, checking alias chains too. Never value/name matching. */
34
+ export declare function findBindingByFigmaId(projectDir: string, figmaId: string): FigmaBindingRecord | null;
35
+ /** Answered "which file is this library?" mappings — asked once per project. */
36
+ export declare function readLibraryMap(projectDir: string): Record<string, string>;
37
+ export declare function recordLibraryFile(projectDir: string, libraryKey: string, fileKey: string): void;
38
+ //# sourceMappingURL=bindings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../../src/figma/bindings.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,SAAS,CAAC;IAChB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;CACjB;AA6CD,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAErE;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAQtF;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GACd,kBAAkB,GAAG,IAAI,CAM3B;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMzE;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAG/F"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Binding index — the machine-readable join between figma variable/style
3
+ * identities and composition variables (design spec §7.1).
4
+ *
5
+ * Lives at .media/figma-bindings.jsonl, next to (but separate from) the
6
+ * human-readable figma-tokens.json sidecar. Resolution is exact-ID only:
7
+ * a missed link bakes a correct literal; a wrong link silently changes
8
+ * color at the next brand refresh. Never match by value or name.
9
+ */
10
+ import { appendFileSync, mkdirSync, writeFileSync } from "node:fs";
11
+ import { join } from "node:path";
12
+ import { readJsonlValues } from "./jsonl.js";
13
+ import { mediaDir } from "./manifest.js";
14
+ const BINDINGS_FILE = "figma-bindings.jsonl";
15
+ function bindingsPath(projectDir) {
16
+ return join(mediaDir(projectDir), BINDINGS_FILE);
17
+ }
18
+ function isRecord(value) {
19
+ return typeof value === "object" && value !== null;
20
+ }
21
+ function isBindingRecord(value) {
22
+ return (isRecord(value) &&
23
+ value.kind === "binding" &&
24
+ typeof value.figmaId === "string" &&
25
+ typeof value.sourceFileKey === "string" &&
26
+ typeof value.compositionVariableId === "string" &&
27
+ typeof value.version === "string");
28
+ }
29
+ function isLibraryRecord(value) {
30
+ return (isRecord(value) &&
31
+ value.kind === "library" &&
32
+ typeof value.libraryKey === "string" &&
33
+ typeof value.fileKey === "string");
34
+ }
35
+ function readLines(projectDir) {
36
+ return readJsonlValues(bindingsPath(projectDir));
37
+ }
38
+ function appendLine(projectDir, record) {
39
+ mkdirSync(mediaDir(projectDir), { recursive: true });
40
+ appendFileSync(bindingsPath(projectDir), JSON.stringify(record) + "\n");
41
+ }
42
+ export function readBindings(projectDir) {
43
+ return readLines(projectDir).filter(isBindingRecord);
44
+ }
45
+ export function appendBinding(projectDir, record) {
46
+ appendLine(projectDir, record);
47
+ }
48
+ /**
49
+ * Upsert by figmaId: re-running a tokens import must REPLACE that file's
50
+ * stale binding rows, not append duplicates — `findBindingByFigmaId`
51
+ * returns the first match, so appended duplicates would pin lookups to the
52
+ * stale record forever. Library rows and other files' bindings survive.
53
+ */
54
+ export function upsertBindings(projectDir, records) {
55
+ const incoming = new Set(records.map((r) => r.figmaId));
56
+ const survivors = readLines(projectDir).filter((line) => !(isBindingRecord(line) && incoming.has(line.figmaId)));
57
+ mkdirSync(mediaDir(projectDir), { recursive: true });
58
+ const lines = [...survivors, ...records].map((r) => JSON.stringify(r)).join("\n");
59
+ writeFileSync(bindingsPath(projectDir), lines.length > 0 ? lines + "\n" : "");
60
+ }
61
+ /** Exact-ID lookup, checking alias chains too. Never value/name matching. */
62
+ export function findBindingByFigmaId(projectDir, figmaId) {
63
+ for (const b of readBindings(projectDir)) {
64
+ if (b.figmaId === figmaId)
65
+ return b;
66
+ if (b.aliasChain?.includes(figmaId))
67
+ return b;
68
+ }
69
+ return null;
70
+ }
71
+ /** Answered "which file is this library?" mappings — asked once per project. */
72
+ export function readLibraryMap(projectDir) {
73
+ const map = {};
74
+ for (const r of readLines(projectDir)) {
75
+ if (isLibraryRecord(r))
76
+ map[r.libraryKey] = r.fileKey;
77
+ }
78
+ return map;
79
+ }
80
+ export function recordLibraryFile(projectDir, libraryKey, fileKey) {
81
+ const record = { kind: "library", libraryKey, fileKey };
82
+ appendLine(projectDir, record);
83
+ }
84
+ //# sourceMappingURL=bindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../src/figma/bindings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { FigmaAssetFormat, FigmaRef } from "./types";
2
+ /** Typed capability/transport failures per design spec §4.4. */
3
+ export type FigmaClientErrorCode = "NO_TOKEN" | "BAD_TOKEN" | "FORBIDDEN" | "REQUIRES_ENTERPRISE" | "RATE_LIMITED" | "RENDER_FAILED" | "NODE_NOT_FOUND" | "HTTP_ERROR";
4
+ export declare class FigmaClientError extends Error {
5
+ readonly code: FigmaClientErrorCode;
6
+ readonly status?: number;
7
+ constructor(code: FigmaClientErrorCode, message: string, status?: number);
8
+ }
9
+ /** Injectable fetch so tests never touch the network. */
10
+ export type FigmaFetch = (url: string, init?: {
11
+ headers?: Record<string, string>;
12
+ }) => Promise<Response>;
13
+ export interface RenderNodeOptions {
14
+ format: FigmaAssetFormat;
15
+ scale?: number;
16
+ }
17
+ export interface RenderedNode {
18
+ /** short-lived figma CDN url — freeze it immediately */
19
+ url: string;
20
+ ext: FigmaAssetFormat;
21
+ }
22
+ export interface FigmaVariablePayload {
23
+ name: string;
24
+ key?: string;
25
+ resolvedType?: string;
26
+ valuesByMode?: Record<string, unknown>;
27
+ variableCollectionId?: string;
28
+ }
29
+ export interface FigmaVariablesResult {
30
+ variables: Record<string, FigmaVariablePayload>;
31
+ variableCollections: Record<string, unknown>;
32
+ }
33
+ export interface FigmaStyleMeta {
34
+ key: string;
35
+ name: string;
36
+ style_type: string;
37
+ node_id?: string;
38
+ description?: string;
39
+ }
40
+ /** Raw figma node document from GET /v1/files/:key/nodes. Field-level shape
41
+ * is consumed by nodeToHtml; kept loose here on purpose — consumers narrow
42
+ * children/fills/etc themselves. */
43
+ export interface FigmaNodeDocument {
44
+ id: string;
45
+ name: string;
46
+ type: string;
47
+ [field: string]: unknown;
48
+ }
49
+ export interface FigmaFileVersion {
50
+ version: string;
51
+ lastModified: string;
52
+ }
53
+ export interface FigmaClient {
54
+ renderNode(ref: FigmaRef, opts: RenderNodeOptions): Promise<RenderedNode>;
55
+ imageFills(fileKey: string): Promise<Map<string, string>>;
56
+ variables(fileKey: string): Promise<FigmaVariablesResult>;
57
+ styles(fileKey: string): Promise<FigmaStyleMeta[]>;
58
+ nodeTree(ref: FigmaRef): Promise<FigmaNodeDocument>;
59
+ fileVersion(fileKey: string): Promise<FigmaFileVersion>;
60
+ }
61
+ export interface FigmaClientOptions {
62
+ token: string;
63
+ fetch?: FigmaFetch;
64
+ baseUrl?: string;
65
+ }
66
+ export declare function createFigmaClient(options: FigmaClientOptions): FigmaClient;
67
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/figma/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ export class FigmaClientError extends Error {
2
+ code;
3
+ status;
4
+ constructor(code, message, status) {
5
+ super(message);
6
+ this.name = "FigmaClientError";
7
+ this.code = code;
8
+ this.status = status;
9
+ }
10
+ }
11
+ function requireNodeId(ref) {
12
+ if (!ref.nodeId)
13
+ throw new Error(`figma ref ${ref.fileKey} has no nodeId`);
14
+ return ref.nodeId;
15
+ }
16
+ function isRecord(value) {
17
+ return typeof value === "object" && value !== null;
18
+ }
19
+ function optionalString(value) {
20
+ return typeof value === "string" ? value : undefined;
21
+ }
22
+ function toVariablePayload(payload) {
23
+ if (!isRecord(payload) || typeof payload.name !== "string")
24
+ return null;
25
+ return {
26
+ name: payload.name,
27
+ key: optionalString(payload.key),
28
+ resolvedType: optionalString(payload.resolvedType),
29
+ valuesByMode: isRecord(payload.valuesByMode) ? payload.valuesByMode : undefined,
30
+ variableCollectionId: optionalString(payload.variableCollectionId),
31
+ };
32
+ }
33
+ export function createFigmaClient(options) {
34
+ const token = options.token.trim();
35
+ if (token === "") {
36
+ throw new FigmaClientError("NO_TOKEN", [
37
+ "FIGMA_TOKEN is missing. One-time setup:",
38
+ " 1. figma.com/settings → Security → Personal access tokens → Generate new token",
39
+ " 2. Scopes (read-only is all this integration ever needs — it never writes to figma):",
40
+ " File content: Read-only · File metadata: Read-only",
41
+ " Variables: Read-only (optional — brand variables, requires figma Enterprise;",
42
+ " without it `tokens` falls back to published styles)",
43
+ ' 3. export FIGMA_TOKEN="figd_…" — add it to your shell profile or the project .env',
44
+ " so future sessions skip this step",
45
+ "Then re-run this command.",
46
+ ].join("\n"));
47
+ }
48
+ const doFetch = options.fetch ?? ((url, init) => fetch(url, init));
49
+ const base = options.baseUrl ?? "https://api.figma.com";
50
+ async function get(path, enterpriseGated = false) {
51
+ const res = await doFetch(`${base}${path}`, {
52
+ headers: { "X-Figma-Token": token },
53
+ });
54
+ if (res.status === 401)
55
+ throw new FigmaClientError("BAD_TOKEN", "figma rejected the token (401) — it is expired or revoked. Re-mint at figma.com/settings → Security, then update FIGMA_TOKEN.", 401);
56
+ if (res.status === 403 && enterpriseGated)
57
+ throw new FigmaClientError("REQUIRES_ENTERPRISE", "figma variables require an Enterprise plan (403) — fall back to styles", 403);
58
+ if (res.status === 403)
59
+ throw new FigmaClientError("FORBIDDEN", "figma denied access (403) — the token is missing a read scope, or your account can't view this file. Check the token has File content: Read-only + File metadata: Read-only (figma.com/settings → Security) and that the file is visible to your account.", 403);
60
+ if (res.status === 429)
61
+ throw new FigmaClientError("RATE_LIMITED", "figma rate limit hit (429) — back off and retry", 429);
62
+ if (!res.ok)
63
+ throw new FigmaClientError("HTTP_ERROR", `figma request failed: HTTP ${res.status} ${path}`, res.status);
64
+ return res.json();
65
+ }
66
+ return {
67
+ async renderNode(ref, opts) {
68
+ const nodeId = requireNodeId(ref);
69
+ const params = new URLSearchParams({ ids: nodeId, format: opts.format });
70
+ if (opts.scale !== undefined)
71
+ params.set("scale", String(opts.scale));
72
+ const body = await get(`/v1/images/${ref.fileKey}?${params}`);
73
+ const images = isRecord(body) && isRecord(body.images) ? body.images : {};
74
+ const url = images[nodeId];
75
+ if (typeof url !== "string" || url === "")
76
+ throw new FigmaClientError("RENDER_FAILED", `figma could not render node ${nodeId} as ${opts.format}`);
77
+ return { url, ext: opts.format };
78
+ },
79
+ async imageFills(fileKey) {
80
+ const body = await get(`/v1/files/${fileKey}/images`);
81
+ const meta = isRecord(body) && isRecord(body.meta) ? body.meta : {};
82
+ const images = isRecord(meta.images) ? meta.images : {};
83
+ const out = new Map();
84
+ for (const [ref, url] of Object.entries(images)) {
85
+ if (typeof url === "string")
86
+ out.set(ref, url);
87
+ }
88
+ return out;
89
+ },
90
+ async variables(fileKey) {
91
+ const body = await get(`/v1/files/${fileKey}/variables/local`, true);
92
+ const meta = isRecord(body) && isRecord(body.meta) ? body.meta : {};
93
+ const variables = isRecord(meta.variables) ? meta.variables : {};
94
+ const collections = isRecord(meta.variableCollections) ? meta.variableCollections : {};
95
+ const typed = {};
96
+ for (const [id, payload] of Object.entries(variables)) {
97
+ const v = toVariablePayload(payload);
98
+ if (v)
99
+ typed[id] = v;
100
+ }
101
+ return { variables: typed, variableCollections: collections };
102
+ },
103
+ async styles(fileKey) {
104
+ const body = await get(`/v1/files/${fileKey}/styles`);
105
+ const meta = isRecord(body) && isRecord(body.meta) ? body.meta : {};
106
+ const styles = Array.isArray(meta.styles) ? meta.styles : [];
107
+ return styles.filter((s) => isRecord(s) &&
108
+ typeof s.key === "string" &&
109
+ typeof s.name === "string" &&
110
+ typeof s.style_type === "string");
111
+ },
112
+ async nodeTree(ref) {
113
+ const nodeId = requireNodeId(ref);
114
+ const params = new URLSearchParams({ ids: nodeId, geometry: "paths" });
115
+ const body = await get(`/v1/files/${ref.fileKey}/nodes?${params}`);
116
+ const nodes = isRecord(body) && isRecord(body.nodes) ? body.nodes : {};
117
+ const entry = nodes[nodeId];
118
+ const doc = isRecord(entry) ? entry.document : undefined;
119
+ if (!isRecord(doc) ||
120
+ typeof doc.id !== "string" ||
121
+ typeof doc.name !== "string" ||
122
+ typeof doc.type !== "string")
123
+ throw new FigmaClientError("NODE_NOT_FOUND", `node ${nodeId} not found in ${ref.fileKey}`);
124
+ return { ...doc, id: doc.id, name: doc.name, type: doc.type };
125
+ },
126
+ async fileVersion(fileKey) {
127
+ const body = await get(`/v1/files/${fileKey}?depth=1`);
128
+ const version = isRecord(body) && typeof body.version === "string" ? body.version : "";
129
+ const lastModified = isRecord(body) && typeof body.lastModified === "string" ? body.lastModified : "";
130
+ return { version, lastModified };
131
+ },
132
+ };
133
+ }
134
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/figma/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** figma {r,g,b,a?} floats (0..1) → #RRGGBB, or rgba() when translucent. */
2
+ export declare function figmaColorToCss(value: unknown, extraOpacity?: number): string | null;
3
+ //# sourceMappingURL=color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/figma/color.ts"],"names":[],"mappings":"AAWA,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,SAAI,GAAG,MAAM,GAAG,IAAI,CAQ/E"}
@@ -0,0 +1,23 @@
1
+ function isRecord(value) {
2
+ return typeof value === "object" && value !== null;
3
+ }
4
+ function toHexByte(channel) {
5
+ return Math.round(channel * 255)
6
+ .toString(16)
7
+ .padStart(2, "0")
8
+ .toUpperCase();
9
+ }
10
+ /** figma {r,g,b,a?} floats (0..1) → #RRGGBB, or rgba() when translucent. */
11
+ export function figmaColorToCss(value, extraOpacity = 1) {
12
+ if (!isRecord(value))
13
+ return null;
14
+ const { r, g, b, a } = value;
15
+ if (typeof r !== "number" || typeof g !== "number" || typeof b !== "number")
16
+ return null;
17
+ const alpha = (typeof a === "number" ? a : 1) * extraOpacity;
18
+ if (alpha >= 1)
19
+ return `#${toHexByte(r)}${toHexByte(g)}${toHexByte(b)}`;
20
+ const c = (n) => Math.round(n * 255);
21
+ return `rgba(${c(r)}, ${c(g)}, ${c(b)}, ${Number(alpha.toFixed(4))})`;
22
+ }
23
+ //# sourceMappingURL=color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/figma/color.ts"],"names":[],"mappings":"AAAA,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;SAC7B,QAAQ,CAAC,EAAE,CAAC;SACZ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;SAChB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,YAAY,GAAG,CAAC;IAC9D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;IAC7B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzF,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC;IAC7D,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC7C,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACxE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { TimelineSpec } from "./types";
2
+ export declare function emitTimelineScript(spec: TimelineSpec): string;
3
+ //# sourceMappingURL=emitTimelineScript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitTimelineScript.d.ts","sourceRoot":"","sources":["../../src/figma/emitTimelineScript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,SAAS,CAAC;AA0BvD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CA0B7D"}
@@ -0,0 +1,42 @@
1
+ function lit(value) {
2
+ return JSON.stringify(value);
3
+ }
4
+ function num(value) {
5
+ return Math.round(value * 1e6) / 1e6;
6
+ }
7
+ function val(value) {
8
+ return typeof value === "number" ? String(num(value)) : JSON.stringify(value);
9
+ }
10
+ function emitTween(t) {
11
+ const set = `tl.set(${lit(t.selector)}, { ${t.property}: ${val(t.initial)} }, 0);`;
12
+ const kf = t.steps
13
+ .map((s) => `{ ${t.property}: ${val(s.value)}, duration: ${num(s.duration)}, ease: ${lit(s.ease)} }`)
14
+ .join(", ");
15
+ const repeat = t.repeat > 0 ? `, repeat: ${t.repeat}` : "";
16
+ return [set, `tl.to(${lit(t.selector)}, { keyframes: [${kf}]${repeat} }, 0);`];
17
+ }
18
+ export function emitTimelineScript(spec) {
19
+ const lines = [];
20
+ // Guard the whole script: if the composition author forgot the GSAP or
21
+ // CustomEase CDN tag, warn loudly instead of throwing mid-script and
22
+ // silently never registering the timeline.
23
+ lines.push("(function () {");
24
+ const needsCustomEase = spec.customEases.length > 0;
25
+ const missing = needsCustomEase
26
+ ? 'typeof gsap === "undefined" || typeof CustomEase === "undefined"'
27
+ : 'typeof gsap === "undefined"';
28
+ const libs = needsCustomEase ? "gsap + CustomEase" : "gsap";
29
+ lines.push(`if (${missing}) { console.warn(${lit(`figma timeline ${spec.timelineId}: ${libs} not loaded — add the CDN <script> tags before this one`)}); return; }`);
30
+ for (const ce of spec.customEases) {
31
+ const [x1, y1, x2, y2] = ce.bezier;
32
+ lines.push(`CustomEase.create(${lit(ce.name)}, "M0,0 C${num(x1)},${num(y1)} ${num(x2)},${num(y2)} 1,1");`);
33
+ }
34
+ lines.push("const tl = gsap.timeline({ paused: true });");
35
+ for (const t of spec.tweens)
36
+ lines.push(...emitTween(t));
37
+ lines.push("window.__timelines = window.__timelines || {};");
38
+ lines.push(`window.__timelines[${lit(spec.timelineId)}] = tl;`);
39
+ lines.push("})();");
40
+ return lines.join("\n");
41
+ }
42
+ //# sourceMappingURL=emitTimelineScript.js.map