Release for with editor defaults and better handeling of POD-document converter.
All optional properties so you only have to set what you want to change
// ─── Element Defaults API ───────────────────────────────────────────────────
//
// Defaults are session-only (reset on document open) and all properties are
// optional — only set properties override the built-in element constructor
// values. Swatch UUIDs are validated against the swatch library; invalid UUIDs
// are silently ignored.
//
// Access via the global document instance:
// g_typograph_document.set_default_fill(...)
// ────────────────────────────────────────────────────────────────────────────
// --- Fill ---------------------------------------------------------------
// fill_swatch_uuid: built-in swatches or any user swatch UUID from the library
g_typograph_document.set_default_fill('BLACK'); // built-in black
g_typograph_document.set_default_fill('PAPER'); // built-in paper (white)
g_typograph_document.set_default_fill('NONE'); // no fill (transparent)
g_typograph_document.set_default_fill('REGISTRATION');
g_typograph_document.set_default_fill('your-swatch-uuid'); // user-defined swatch
// fill_tint: 0.0 (transparent) → 1.0 (full color), optional second argument
g_typograph_document.set_default_fill('BLACK', 1.0); // 100% black
g_typograph_document.set_default_fill('BLACK', 0.5); // 50% tint
// --- Stroke -------------------------------------------------------------
// stroke_swatch_uuid: same values as fill
g_typograph_document.set_default_stroke('NONE'); // no stroke
g_typograph_document.set_default_stroke('BLACK');
g_typograph_document.set_default_stroke('your-swatch-uuid', 0.75); // with tint
// --- Stroke width -------------------------------------------------------
// native_stroke_width: in points (pt), 0.0 = no stroke
g_typograph_document.set_default_stroke_width(0); // no stroke
g_typograph_document.set_default_stroke_width(0.25);
g_typograph_document.set_default_stroke_width(1);
g_typograph_document.set_default_stroke_width(2.5);
// --- Stroke dash pattern ------------------------------------------------
// stroke_dash: { name: string, pattern: number[] }
// pattern is an array of pt values [dash, gap, dash, gap, ...]
// empty pattern = solid
g_typograph_document.set_default_stroke_dash({ name: 'solid', pattern: [] });
g_typograph_document.set_default_stroke_dash({ name: 'dashed', pattern: [4, 4] });
g_typograph_document.set_default_stroke_dash({ name: 'dotted', pattern: [1, 3] });
g_typograph_document.set_default_stroke_dash({ name: 'custom', pattern: [8, 3, 2, 3] });
// --- Line cap -----------------------------------------------------------
// line_cap_type: 'butt' | 'round' | 'square'
g_typograph_document.set_default_line_cap('butt'); // flat, stops at endpoint
g_typograph_document.set_default_line_cap('round'); // semicircle beyond endpoint
g_typograph_document.set_default_line_cap('square'); // square beyond endpoint
// --- Line join ----------------------------------------------------------
// line_join_type: 'miter' | 'round' | 'bevel'
g_typograph_document.set_default_line_join('miter'); // sharp corner (default)
g_typograph_document.set_default_line_join('round'); // rounded corner
g_typograph_document.set_default_line_join('bevel'); // flattened corner
// --- Miter limit --------------------------------------------------------
// miter_limit: number >= 1. Only relevant when line_join is 'miter'.
// When the miter length exceeds limit × stroke_width the join falls back to bevel.
g_typograph_document.set_default_miter_limit(10); // default
g_typograph_document.set_default_miter_limit(2); // short miters, earlier bevel fallback
g_typograph_document.set_default_miter_limit(100); // very long miters allowed
// --- Blend mode ---------------------------------------------------------
// blend_mode: one of the canvas GlobalCompositeOperation values
g_typograph_document.set_default_blend_mode('source-over'); // normal (default)
g_typograph_document.set_default_blend_mode('multiply');
g_typograph_document.set_default_blend_mode('screen');
g_typograph_document.set_default_blend_mode('overlay');
g_typograph_document.set_default_blend_mode('darken');
g_typograph_document.set_default_blend_mode('lighten');
g_typograph_document.set_default_blend_mode('color-dodge');
g_typograph_document.set_default_blend_mode('color-burn');
g_typograph_document.set_default_blend_mode('hard-light');
g_typograph_document.set_default_blend_mode('soft-light');
g_typograph_document.set_default_blend_mode('difference');
g_typograph_document.set_default_blend_mode('exclusion');
g_typograph_document.set_default_blend_mode('hue');
g_typograph_document.set_default_blend_mode('saturation');
g_typograph_document.set_default_blend_mode('color');
g_typograph_document.set_default_blend_mode('luminosity');
// --- Bulk / set_element_defaults ----------------------------------------
// Set multiple properties at once (merges with existing defaults):
g_typograph_document.set_element_defaults({
fill_swatch_uuid: 'BLACK',
fill_tint: 1.0,
stroke_swatch_uuid: 'NONE',
native_stroke_width: 0,
blend_mode: 'source-over',
stroke_dash: { name: 'solid', pattern: [] },
line_cap: 'butt',
line_join: 'miter',
miter_limit: 10,
});
// --- Adopt from a selected element --------------------------------------
// Copy all styling from an existing element and use it as the new default:
const el = g_typograph_document.get_active_page().selectedElements()[0];
g_typograph_document.adopt_element_defaults(el);
// --- Read current defaults ----------------------------------------------
const defaults = g_typograph_document.get_element_defaults();
console.log(defaults.fill_swatch_uuid); // 'BLACK' or undefined
console.log(defaults.native_stroke_width); // number or undefined
// --- Reset --------------------------------------------------------------
// Clears all overrides; new elements revert to built-in constructor values:
g_typograph_document.reset_element_defaults();
The POD-converter is not yet setting all properties to the correct default values (mainly text releated). In this version the canvas/editor is better harnest against in correct defaults. When the manifest image url's null (as in POD-converter output) placeholders are used.