fika-editor 3.2.8 → 3.2.9

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,10 +1,10 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "fika-editor",
4
- "packageVersion": "3.2.8",
5
- "generatedAt": "2026-09-20T23:23:04.016Z",
4
+ "packageVersion": "3.2.9",
5
+ "generatedAt": "2026-09-21T15:54:48.564Z",
6
6
  "summary": "Authoring guidance for the Fika agentic bridge. SLIDE NUMBERS START AT 1 everywhere: payload.index, result.data.slideIndex, screenshot.slideIndex, getState().slideIndex, selectedSlideIndexes, plan.slides[].index, and plan.loudIndex are the SAME 1-based number — never subtract or add 1. First slide = 1; last existing = slideCount; omit index to append; index === slideCount+1 also appends; 1 ≤ index ≤ slideCount on createFromLayout REPLACES that slide. The recommended way to build a deck from scratch: (1) ONE bootstrap call deck.setup({ styleId, slideCount, title? }) — applies the visual identity, returns the composition plan (anchors + loud slide), and optionally builds the title slide together; prefer this over separate styles.catalog / deck.applyStyle / deck.planComposition, then (2) for each slide pick a recipe + visual variant from layouts.catalog and add it with slides.createFromLayout({ layoutId, variantId, slots }), preferring a variant whose anchor matches the plan (when variantId is omitted the engine picks a filled/full-width match; an explicit variantId is kept). The engine themes, positions, sanitizes slot markers the layout already draws, AND auto-fits every text box (via responsive measurement) so content does not overflow, and it runs a deterministic QA pass on each slide (overlap / contrast / density / monotony) so you can fix issues in the same turn. Author slot content as Markdown/plain text or structured values (arrays for bullets, { labels, series } for charts) — never hand-written HTML. Host-registered templates (deck.applyTemplate + slides.insertFromTemplate) are optional when the embed host supplies them. Avoid blank slides.create / hand-placed elements unless no layout fits. Pair this with the machine schema (command payload/return types) in the same manifest.",
7
- "commandCount": 197,
7
+ "commandCount": 199,
8
8
  "designSystem": {
9
9
  "summary": "Fika lays elements out in a fixed pixel coordinate space, not inches. Prefer the styles + layouts flow (deck.applyStyle + slides.createFromLayout) so colors, contrast, fonts and layout are chosen for you instead of hand-picked. Host-registered templates (deck.applyTemplate + slides.insertFromTemplate) are optional when the embed host supplies them. These tokens describe the *fallback* defaults for manual placement only.",
10
10
  "coordinateSystem": {
@@ -58,7 +58,7 @@
58
58
  "domains": [
59
59
  {
60
60
  "id": "deck",
61
- "commandCount": 14,
61
+ "commandCount": 16,
62
62
  "title": "Deck",
63
63
  "summary": "Whole-document state: title, theme, viewport, templates, plus full get/set/patch.",
64
64
  "whenToUse": "Apply a style with deck.setup / deck.applyStyle up front; set the viewport once; use whole-document import/export at persistence boundaries."
@@ -328,6 +328,42 @@
328
328
  ]
329
329
  }
330
330
  },
331
+ {
332
+ "name": "deck.listDesignThemes",
333
+ "domain": "deck",
334
+ "payload": "undefined",
335
+ "returns": "Array<{ id: string; name: string; background: string; fontColor: string; colors: string[] }>",
336
+ "doc": {
337
+ "summary": "Read the active host-provided design picker catalog (Fika defaults when the host supplies none). Read-only; IDs may be passed directly to deck.applyDesignTheme.",
338
+ "examples": [
339
+ "controller.deck.listDesignThemes()"
340
+ ]
341
+ }
342
+ },
343
+ {
344
+ "name": "deck.applyDesignTheme",
345
+ "domain": "deck",
346
+ "payload": "{ themeId: string }",
347
+ "returns": "{ themeId: string; name: string; slideCount: number }",
348
+ "doc": {
349
+ "summary": "Apply a design from the active host catalog to the entire existing deck in one undoable command, using the same implementation as the design picker.",
350
+ "params": [
351
+ {
352
+ "name": "themeId",
353
+ "type": "string",
354
+ "required": true,
355
+ "description": "Exact ID from deck.listDesignThemes or host-provided live deck context."
356
+ }
357
+ ],
358
+ "examples": [
359
+ "controller.deck.applyDesignTheme('scio-blue')"
360
+ ],
361
+ "tips": [
362
+ "When host IDs are already in context, apply the requested theme directly without a catalog/read call.",
363
+ "Preserves slide IDs and content; changes backgrounds, fonts, colors and chart palettes. Never use deck.setup to restyle an existing deck."
364
+ ]
365
+ }
366
+ },
331
367
  {
332
368
  "name": "deck.getTheme",
333
369
  "domain": "deck",