@unmade/text-renderer 0.1.9 → 0.1.10

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function C(t){return t.type==="text"}function P(t){const i=t.getState().garment;return t.settings.garments.find(s=>s.slug===i)}function M(t,o){if(t.embellishment_positions)return t.embellishment_positions.find(i=>i.placement===o)}function w(t,o){const i=t.fonts.find(s=>s.id===o);if(i)return{id:i.id,fontUrl:i.font_url,fontFamily:i.font_family,letterSpacing:i.letter_spacing??0,letterSpacingOutline:i.letter_spacing_outline??0,outlineWidth:i.outline_width??0,fixedColours:i.fixed_colours}}function v(t,o,i,s,a){const{library:h}=a,u=[];for(const[l,g]of Object.entries(s)){if(g.type!=="text")continue;const d=g,{meta:e}=d;if(!e?.text)continue;const{libraryItemID:y}=d,c=h[y];if(!c||!C(c))continue;const f=e.font;if(f===void 0)continue;const S=w(c,f);if(!S)continue;const r=M(o,l);if(!r)continue;let x=null,b=null;if(e.colours&&c.palette!=null)try{const n=t.palettes.getUsedColours(c.palette,e.colours);x=n[0]??null,b=n[1]??null}catch(n){console.warn(`[extractTextPlacements] Colour resolution failed for ${l}:`,n)}const m=a.byId?.[l],p={vertical:"top",horizontal:"left"};if(m){const n=m;n.vertical_alignment&&(p.vertical=n.vertical_alignment),n.horizontal_alignment&&(p.horizontal=n.horizontal_alignment)}u.push({placementId:l,displayName:l,source:i,text:e.text,font:S,isCurved:e.isCurved??!1,isDistributed:e.isDistributed??!1,verticalAlignment:e.verticalAlignment??p.vertical,horizontalAlignment:e.horizontalAlignment??p.horizontal,rotation:e.rotation??0,spacing:e.spacing??null,fillColour:x,outlineColour:b,position:{width:r.width,height:r.height,physicalWidth:r.physical_width_decimal,physicalHeight:r.physical_height_decimal,physicalUnits:r.physical_size_units,baselinePath:r.baseline_path,rotation:r.rotation},userSetPhysicalSize:e.retainedPhysicalSize??null,fontMetrics:(()=>{const n=e.fontMetrics??{size:0,height:0,baseline:0,width:0},_=n.physicalHeight!=null&&n.physicalHeight>0&&n.physicalUnits!=null?[n.physicalHeight,n.physicalUnits]:void 0;return{...n,physicalFontSize:_}})(),manufacturingMethod:e.manufacturing_method??""})}return u}function U(t){const o=t.getState(),i=P(t);if(!i)return console.warn("[extractTextPlacements] No matching garment found"),[];const s=[],a=o.vals?.placements,h=t.settings.placements;a&&h&&s.push(...v(t,i,"placements",a,h));const u=o.vals?.embellishments,l=t.settings.embellishments;return u&&l&&s.push(...v(t,i,"embellishments",u,l)),s.length===0&&console.warn("[extractTextPlacements] No text entries found in either placements or embellishments"),s}function z(t){return t==="center"?"centre":t}function A(t){let o=z(t.horizontalAlignment);t.isDistributed&&(o="distributed");let i;t.position.baselinePath?i={type:"custom",path:t.position.baselinePath}:t.isCurved?i="curved":i="flat";const s=t.userSetPhysicalSize?[t.userSetPhysicalSize[0],t.userSetPhysicalSize[1]]:t.fontMetrics.physicalFontSize!=null?t.fontMetrics.physicalFontSize:[t.position.physicalHeight,t.position.physicalUnits],h=!t.userSetPhysicalSize&&t.fontMetrics.physicalFontSize!=null&&t.fontMetrics.physicalHeight!=null&&t.fontMetrics.physicalUnits===t.position.physicalUnits&&t.fontMetrics.height>0?t.position.height/t.fontMetrics.height*t.fontMetrics.physicalHeight:t.position.physicalHeight,l={outlineWidth:t.outlineColour!=null?t.font.outlineWidth:0,letterSpacing:t.spacing?.letter_spacing??0,letterSpacingOutline:t.spacing?.letter_spacing_outline??0},g=t.fillColour?{hex:t.fillColour.hex,reference:t.fillColour.reference??void 0}:void 0,d=t.outlineColour?{hex:t.outlineColour.hex,reference:t.outlineColour.reference??void 0}:void 0;let e;if(t.font.fixedColours){const y={};for(const[c,f]of Object.entries(t.font.fixedColours))y[c]={hex:f.hex,reference:f.reference};e=y}return{text:t.text,fontUrl:t.font.fontUrl,physicalSize:s,fontSizeFallback:t.fontMetrics.size,boxDimensions:{width:t.position.width,height:t.position.height,physicalWidth:t.position.physicalWidth,physicalHeight:h,physicalUnits:t.position.physicalUnits},spacing:l,verticalAlignment:z(t.verticalAlignment),horizontalAlignment:o,baseline:i,fillColour:g,strokeColour:d,colourMap:e}}exports.extractTextPlacements=U;exports.mapStateToRendererOptions=A;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function C(t){return t.type==="text"}function P(t){const i=t.getState().garment;return t.settings.garments.find(s=>s.slug===i)}function M(t,o){if(t.embellishment_positions)return t.embellishment_positions.find(i=>i.placement===o)}function w(t,o){const i=t.fonts.find(s=>s.id===o);if(i)return{id:i.id,fontUrl:i.font_url,fontFamily:i.font_family,letterSpacing:i.letter_spacing??0,letterSpacingOutline:i.letter_spacing_outline??0,outlineWidth:i.outline_width??0,fixedColours:i.fixed_colours}}function z(t,o,i,s,a){const{library:h}=a,u=[];for(const[l,g]of Object.entries(s)){if(g.type!=="text")continue;const d=g,{meta:e}=d;if(!e?.text)continue;const{libraryItemID:y}=d,c=h[y];if(!c||!C(c))continue;const f=e.font;if(f===void 0)continue;const S=w(c,f);if(!S)continue;const r=M(o,l);if(!r)continue;let x=null,b=null;if(e.colours&&c.palette!=null)try{const n=t.palettes.getUsedColours(c.palette,e.colours);x=n[0]??null,b=n[1]??null}catch(n){console.warn(`[extractTextPlacements] Colour resolution failed for ${l}:`,n)}const m=a.byId?.[l],p={vertical:"top",horizontal:"left"};if(m){const n=m;n.vertical_alignment&&(p.vertical=n.vertical_alignment),n.horizontal_alignment&&(p.horizontal=n.horizontal_alignment)}u.push({placementId:l,displayName:l,source:i,text:e.text,font:S,isCurved:e.isCurved??!1,isDistributed:e.isDistributed??!1,verticalAlignment:e.verticalAlignment??p.vertical,horizontalAlignment:e.horizontalAlignment??p.horizontal,rotation:e.rotation??0,spacing:e.spacing??null,fillColour:x,outlineColour:b,position:{width:r.width,height:r.height,physicalWidth:r.physical_width_decimal,physicalHeight:r.physical_height_decimal,physicalUnits:r.physical_size_units,baselinePath:r.baseline_path,rotation:r.rotation},userSetPhysicalSize:e.retainedPhysicalSize??null,fontMetrics:(()=>{const n=e.fontMetrics??{size:0,height:0,baseline:0,width:0},_=n.physicalFontSize||(n.physicalHeight!=null&&n.physicalHeight>0&&n.physicalUnits!=null?[n.physicalHeight,n.physicalUnits]:void 0);return{...n,physicalFontSize:_}})(),manufacturingMethod:e.manufacturing_method??""})}return u}function U(t){const o=t.getState(),i=P(t);if(!i)return console.warn("[extractTextPlacements] No matching garment found"),[];const s=[],a=o.vals?.placements,h=t.settings.placements;a&&h&&s.push(...z(t,i,"placements",a,h));const u=o.vals?.embellishments,l=t.settings.embellishments;return u&&l&&s.push(...z(t,i,"embellishments",u,l)),s.length===0&&console.warn("[extractTextPlacements] No text entries found in either placements or embellishments"),s}function v(t){return t==="center"?"centre":t}function A(t){let o=v(t.horizontalAlignment);t.isDistributed&&(o="distributed");let i;t.position.baselinePath?i={type:"custom",path:t.position.baselinePath}:t.isCurved?i="curved":i="flat";const s=t.userSetPhysicalSize?[t.userSetPhysicalSize[0],t.userSetPhysicalSize[1]]:t.fontMetrics.physicalFontSize!=null?t.fontMetrics.physicalFontSize:[t.position.physicalHeight,t.position.physicalUnits],h=!t.userSetPhysicalSize&&t.fontMetrics.physicalFontSize!=null&&t.fontMetrics.physicalHeight!=null&&t.fontMetrics.physicalUnits===t.position.physicalUnits&&t.fontMetrics.height>0?t.position.height/t.fontMetrics.height*t.fontMetrics.physicalHeight:t.position.physicalHeight,l={outlineWidth:t.outlineColour!=null?t.font.outlineWidth:0,letterSpacing:t.spacing?.letter_spacing??0,letterSpacingOutline:t.spacing?.letter_spacing_outline??0},g=t.fillColour?{hex:t.fillColour.hex,reference:t.fillColour.reference??void 0}:void 0,d=t.outlineColour?{hex:t.outlineColour.hex,reference:t.outlineColour.reference??void 0}:void 0;let e;if(t.font.fixedColours){const y={};for(const[c,f]of Object.entries(t.font.fixedColours))y[c]={hex:f.hex,reference:f.reference};e=y}return{text:t.text,fontUrl:t.font.fontUrl,physicalSize:s,fontSizeFallback:t.fontMetrics.size,boxDimensions:{width:t.position.width,height:t.position.height,physicalWidth:t.position.physicalWidth,physicalHeight:h,physicalUnits:t.position.physicalUnits},spacing:l,verticalAlignment:v(t.verticalAlignment),horizontalAlignment:o,baseline:i,fillColour:g,strokeColour:d,colourMap:e}}exports.extractTextPlacements=U;exports.mapStateToRendererOptions=A;
@@ -34,18 +34,18 @@ function z(t, o, i, s, a) {
34
34
  if (!c || !C(c)) continue;
35
35
  const f = e.font;
36
36
  if (f === void 0) continue;
37
- const x = w(c, f);
38
- if (!x) continue;
37
+ const S = w(c, f);
38
+ if (!S) continue;
39
39
  const r = M(o, l);
40
40
  if (!r) continue;
41
- let S = null, b = null;
41
+ let x = null, b = null;
42
42
  if (e.colours && c.palette != null)
43
43
  try {
44
44
  const n = t.palettes.getUsedColours(
45
45
  c.palette,
46
46
  e.colours
47
47
  );
48
- S = n[0] ?? null, b = n[1] ?? null;
48
+ x = n[0] ?? null, b = n[1] ?? null;
49
49
  } catch (n) {
50
50
  console.warn(`[extractTextPlacements] Colour resolution failed for ${l}:`, n);
51
51
  }
@@ -62,14 +62,14 @@ function z(t, o, i, s, a) {
62
62
  displayName: l,
63
63
  source: i,
64
64
  text: e.text,
65
- font: x,
65
+ font: S,
66
66
  isCurved: e.isCurved ?? !1,
67
67
  isDistributed: e.isDistributed ?? !1,
68
68
  verticalAlignment: e.verticalAlignment ?? p.vertical,
69
69
  horizontalAlignment: e.horizontalAlignment ?? p.horizontal,
70
70
  rotation: e.rotation ?? 0,
71
71
  spacing: e.spacing ?? null,
72
- fillColour: S,
72
+ fillColour: x,
73
73
  outlineColour: b,
74
74
  position: {
75
75
  width: r.width,
@@ -82,7 +82,7 @@ function z(t, o, i, s, a) {
82
82
  },
83
83
  userSetPhysicalSize: e.retainedPhysicalSize ?? null,
84
84
  fontMetrics: (() => {
85
- const n = e.fontMetrics ?? { size: 0, height: 0, baseline: 0, width: 0 }, _ = n.physicalHeight != null && n.physicalHeight > 0 && n.physicalUnits != null ? [n.physicalHeight, n.physicalUnits] : void 0;
85
+ const n = e.fontMetrics ?? { size: 0, height: 0, baseline: 0, width: 0 }, _ = n.physicalFontSize || (n.physicalHeight != null && n.physicalHeight > 0 && n.physicalUnits != null ? [n.physicalHeight, n.physicalUnits] : void 0);
86
86
  return { ...n, physicalFontSize: _ };
87
87
  })(),
88
88
  manufacturingMethod: e.manufacturing_method ?? ""
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unmade/text-renderer",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "description": "Pure function text renderer for SVG output",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -52,6 +52,12 @@
52
52
  "*": {
53
53
  "ce-adapter": [
54
54
  "./dist/ce-adapter/index.d.ts"
55
+ ],
56
+ "node": [
57
+ "./dist/node/index.d.ts"
58
+ ],
59
+ "worker": [
60
+ "./dist/worker/index.d.ts"
55
61
  ]
56
62
  }
57
63
  },