@pixerate/editor 0.153.0 → 0.155.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 (63) hide show
  1. package/dist/animation-editor/index.cjs +2 -3
  2. package/dist/animation-editor/index.js +1 -2
  3. package/dist/canvas/editorDocument.d.cts +59 -0
  4. package/dist/canvas/editorDocument.d.ts +59 -0
  5. package/dist/canvas/index.cjs +125 -16
  6. package/dist/canvas/index.d.cts +1 -0
  7. package/dist/canvas/index.d.ts +1 -0
  8. package/dist/canvas/index.js +112 -3
  9. package/dist/chart/index.cjs +2 -3
  10. package/dist/chart/index.js +1 -2
  11. package/dist/chunk-M4MIZPQI.cjs +393 -0
  12. package/dist/chunk-NHLYK3AX.js +393 -0
  13. package/dist/{chunk-XFDQEAOS.cjs → chunk-RQCMSEM5.cjs} +2 -2
  14. package/dist/{chunk-BCY22GBH.js → chunk-SDHZG5TF.js} +1 -1
  15. package/dist/{chunk-HVX35M2I.cjs → chunk-WI7QJA7A.cjs} +2 -2
  16. package/dist/{chunk-4J4MC3F5.js → chunk-YXOW456B.js} +1 -1
  17. package/dist/diagram/index.cjs +2 -3
  18. package/dist/diagram/index.js +1 -2
  19. package/dist/image-editor/controller.d.cts +8 -0
  20. package/dist/image-editor/controller.d.ts +8 -0
  21. package/dist/image-editor/editorDocument.d.cts +16 -0
  22. package/dist/image-editor/editorDocument.d.ts +16 -0
  23. package/dist/image-editor/index.cjs +102 -52
  24. package/dist/image-editor/index.d.cts +1 -0
  25. package/dist/image-editor/index.d.ts +1 -0
  26. package/dist/image-editor/index.js +51 -1
  27. package/dist/index.cjs +4 -5
  28. package/dist/index.js +2 -3
  29. package/dist/paint-editor/controller.d.cts +8 -0
  30. package/dist/paint-editor/controller.d.ts +8 -0
  31. package/dist/paint-editor/editorDocument.d.cts +17 -0
  32. package/dist/paint-editor/editorDocument.d.ts +17 -0
  33. package/dist/paint-editor/index.cjs +74 -18
  34. package/dist/paint-editor/index.d.cts +1 -0
  35. package/dist/paint-editor/index.d.ts +1 -0
  36. package/dist/paint-editor/index.js +58 -2
  37. package/dist/parameters/index.cjs +2 -3
  38. package/dist/parameters/index.js +1 -2
  39. package/dist/persistence/assets.d.cts +51 -0
  40. package/dist/persistence/assets.d.ts +51 -0
  41. package/dist/persistence/editorDocument.d.cts +12 -0
  42. package/dist/persistence/editorDocument.d.ts +12 -0
  43. package/dist/persistence/index.cjs +32 -8
  44. package/dist/persistence/index.d.cts +1 -0
  45. package/dist/persistence/index.d.ts +1 -0
  46. package/dist/persistence/index.js +34 -10
  47. package/dist/spreadsheet/index.cjs +3 -4
  48. package/dist/spreadsheet/index.js +2 -3
  49. package/dist/tokens/index.cjs +3 -4
  50. package/dist/tokens/index.js +2 -3
  51. package/dist/vector/index.cjs +2 -3
  52. package/dist/vector/index.js +1 -2
  53. package/dist/video-editor/index.cjs +2 -3
  54. package/dist/video-editor/index.js +1 -2
  55. package/package.json +1 -1
  56. package/skills/pixerate-canvas/SKILL.md +14 -0
  57. package/skills/pixerate-image-editor/SKILL.md +16 -24
  58. package/skills/pixerate-image-editor/references/smart-objects.md +28 -0
  59. package/skills/pixerate-paint-editor/SKILL.md +17 -5
  60. package/dist/chunk-5H2C3QSF.cjs +0 -134
  61. package/dist/chunk-GNV54DLO.js +0 -134
  62. package/dist/chunk-L5OWG2NA.cjs +0 -135
  63. package/dist/chunk-WHKNYFM2.js +0 -135
@@ -6,14 +6,21 @@
6
6
 
7
7
 
8
8
 
9
- var _chunk5H2C3QSFcjs = require('../chunk-5H2C3QSF.cjs');
10
9
 
11
10
 
12
11
 
13
12
 
14
13
 
15
14
 
16
- var _chunkL5OWG2NAcjs = require('../chunk-L5OWG2NA.cjs');
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+ var _chunkM4MIZPQIcjs = require('../chunk-M4MIZPQI.cjs');
17
24
  require('../chunk-2BSBFBOA.cjs');
18
25
 
19
26
  // src/persistence/recoveryPolicy.ts
@@ -667,9 +674,11 @@ function createEditorAutosave(doc, options) {
667
674
  const revisions = createRevisionTracker({ history: doc, dirty });
668
675
  const controller = createAutosaveController({
669
676
  ...rest,
677
+ // Image and paint documents hold asset references: their bytes are saved and read with them.
678
+ storage: doc.assets ? _chunkM4MIZPQIcjs.withEditorAssets.call(void 0, rest.storage, doc.assets) : rest.storage,
670
679
  key: _nullishCoalesce(key, () => ( doc.kind)),
671
- getSnapshot: () => _chunk5H2C3QSFcjs.toEditorDocumentFile.call(void 0, doc),
672
- deserialize: (text) => _chunk5H2C3QSFcjs.parseEditorDocument.call(void 0, text, { kind: doc.kind }),
680
+ getSnapshot: () => _chunkM4MIZPQIcjs.toEditorDocumentFile.call(void 0, doc),
681
+ deserialize: (text) => _chunkM4MIZPQIcjs.parseEditorDocument.call(void 0, text, { kind: doc.kind }),
673
682
  revision: revisions.revision,
674
683
  savedRevision: revisions.savedRevision
675
684
  });
@@ -742,7 +751,7 @@ function createEditorDocumentStore(options) {
742
751
  const newestFirst = (a, b) => a.savedAt < b.savedAt ? 1 : a.savedAt > b.savedAt ? -1 : 0;
743
752
  const readFile = async (key) => {
744
753
  const raw = await storage.get(fileKey(key));
745
- return raw === null ? null : _chunk5H2C3QSFcjs.parseEditorDocument.call(void 0, raw);
754
+ return raw === null ? null : _chunkM4MIZPQIcjs.parseEditorDocument.call(void 0, raw);
746
755
  };
747
756
  return {
748
757
  save: (doc, name) => run(async () => {
@@ -754,7 +763,9 @@ function createEditorDocumentStore(options) {
754
763
  formatVersion: doc.formatVersion,
755
764
  savedAt: new Date(now()).toISOString()
756
765
  };
757
- await storage.set(fileKey(entry.key), JSON.stringify(_chunk5H2C3QSFcjs.toEditorDocumentFile.call(void 0, doc, trimmed)));
766
+ const text = JSON.stringify(_chunkM4MIZPQIcjs.toEditorDocumentFile.call(void 0, doc, trimmed));
767
+ if (doc.assets) await _chunkM4MIZPQIcjs.persistEditorAssets.call(void 0, storage, doc.assets, text);
768
+ await storage.set(fileKey(entry.key), text);
758
769
  await saveIndex([...(await loadIndex()).filter((item) => item.key !== entry.key), entry]);
759
770
  return entry;
760
771
  }),
@@ -765,10 +776,14 @@ function createEditorDocumentStore(options) {
765
776
  const file = entry ? await readFile(key) : null;
766
777
  if (!entry || !file) {
767
778
  const keys = (await loadIndex()).filter((item) => item.kind === doc.kind).sort(newestFirst).map((item) => item.key);
768
- throw new (0, _chunk5H2C3QSFcjs.EditorDocumentLoadError)(
779
+ throw new (0, _chunkM4MIZPQIcjs.EditorDocumentLoadError)(
769
780
  `There is no saved document "${key}". ${keys.length ? `Saved ${doc.kind} documents: ${keys.join(", ")}.` : `No ${doc.kind} documents are saved yet.`}`
770
781
  );
771
782
  }
783
+ if (doc.assets) {
784
+ const missing = await _chunkM4MIZPQIcjs.preloadEditorAssets.call(void 0, storage, doc.assets, file);
785
+ if (missing.length) throw new (0, _chunkM4MIZPQIcjs.EditorDocumentLoadError)(`The saved document "${key}" refers to ${missing.length} asset${missing.length === 1 ? "" : "s"} that storage no longer has, so it cannot be opened.`);
786
+ }
772
787
  const report = doc.loadDocument(file, { history: _nullishCoalesce(openOptions.history, () => ( "reset")) });
773
788
  return { ...entry, report };
774
789
  }),
@@ -966,4 +981,13 @@ function createDocumentToolProvider(doc, options = {}) {
966
981
 
967
982
 
968
983
 
969
- exports.EDITOR_DOCUMENT_FORMAT = _chunk5H2C3QSFcjs.EDITOR_DOCUMENT_FORMAT; exports.EditorDocumentLoadError = _chunk5H2C3QSFcjs.EditorDocumentLoadError; exports.InjectedStorageError = InjectedStorageError; exports.StorageUnavailableError = StorageUnavailableError; exports.createAutosaveController = createAutosaveController; exports.createDocumentToolProvider = createDocumentToolProvider; exports.createEditorAutosave = createEditorAutosave; exports.createEditorDocumentStore = createEditorDocumentStore; exports.createIndexedDbAdapter = createIndexedDbAdapter; exports.createLoadReport = _chunkL5OWG2NAcjs.createLoadReport; exports.createLocalStorageAdapter = createLocalStorageAdapter; exports.createMemoryStorage = createMemoryStorage; exports.createOpfsAdapter = createOpfsAdapter; exports.createRecoveryPolicy = createRecoveryPolicy; exports.createRevisionTracker = createRevisionTracker; exports.defineEditorDocument = _chunk5H2C3QSFcjs.defineEditorDocument; exports.exponentialBackoff = exponentialBackoff; exports.formatRecoveryMessage = formatRecoveryMessage; exports.hasLoadProblems = _chunkL5OWG2NAcjs.hasLoadProblems; exports.isEditorDocumentFile = _chunk5H2C3QSFcjs.isEditorDocumentFile; exports.isIndexedDbAvailable = isIndexedDbAvailable; exports.isLocalStorageAvailable = isLocalStorageAvailable; exports.isOpfsAvailable = isOpfsAvailable; exports.loadDocument = _chunkL5OWG2NAcjs.loadDocument; exports.loadSections = _chunkL5OWG2NAcjs.loadSections; exports.migrateDocument = _chunkL5OWG2NAcjs.migrateDocument; exports.parseEditorDocument = _chunk5H2C3QSFcjs.parseEditorDocument; exports.recoveryMetaKey = recoveryMetaKey; exports.serializeEditorDocument = _chunk5H2C3QSFcjs.serializeEditorDocument; exports.slugifyDocumentName = slugifyDocumentName; exports.toEditorDocumentFile = _chunk5H2C3QSFcjs.toEditorDocumentFile; exports.withStorageFailures = withStorageFailures;
984
+
985
+
986
+
987
+
988
+
989
+
990
+
991
+
992
+
993
+ exports.EDITOR_ASSET_PREFIX = _chunkM4MIZPQIcjs.EDITOR_ASSET_PREFIX; exports.EDITOR_DOCUMENT_FORMAT = _chunkM4MIZPQIcjs.EDITOR_DOCUMENT_FORMAT; exports.EditorDocumentLoadError = _chunkM4MIZPQIcjs.EditorDocumentLoadError; exports.InjectedStorageError = InjectedStorageError; exports.StorageUnavailableError = StorageUnavailableError; exports.collectAssetRefs = _chunkM4MIZPQIcjs.collectAssetRefs; exports.createAutosaveController = createAutosaveController; exports.createDocumentToolProvider = createDocumentToolProvider; exports.createEditorAssetRegistry = _chunkM4MIZPQIcjs.createEditorAssetRegistry; exports.createEditorAutosave = createEditorAutosave; exports.createEditorDocumentStore = createEditorDocumentStore; exports.createIndexedDbAdapter = createIndexedDbAdapter; exports.createLoadReport = _chunkM4MIZPQIcjs.createLoadReport; exports.createLocalStorageAdapter = createLocalStorageAdapter; exports.createMemoryStorage = createMemoryStorage; exports.createOpfsAdapter = createOpfsAdapter; exports.createRecoveryPolicy = createRecoveryPolicy; exports.createRevisionTracker = createRevisionTracker; exports.defineEditorDocument = _chunkM4MIZPQIcjs.defineEditorDocument; exports.exponentialBackoff = exponentialBackoff; exports.externalizeAssets = _chunkM4MIZPQIcjs.externalizeAssets; exports.formatRecoveryMessage = formatRecoveryMessage; exports.hasLoadProblems = _chunkM4MIZPQIcjs.hasLoadProblems; exports.internalizeAssets = _chunkM4MIZPQIcjs.internalizeAssets; exports.isEditorDocumentFile = _chunkM4MIZPQIcjs.isEditorDocumentFile; exports.isIndexedDbAvailable = isIndexedDbAvailable; exports.isInlineAsset = _chunkM4MIZPQIcjs.isInlineAsset; exports.isLocalStorageAvailable = isLocalStorageAvailable; exports.isOpfsAvailable = isOpfsAvailable; exports.loadDocument = _chunkM4MIZPQIcjs.loadDocument; exports.loadSections = _chunkM4MIZPQIcjs.loadSections; exports.migrateDocument = _chunkM4MIZPQIcjs.migrateDocument; exports.parseEditorDocument = _chunkM4MIZPQIcjs.parseEditorDocument; exports.persistEditorAssets = _chunkM4MIZPQIcjs.persistEditorAssets; exports.preloadEditorAssets = _chunkM4MIZPQIcjs.preloadEditorAssets; exports.recoveryMetaKey = recoveryMetaKey; exports.serializeEditorDocument = _chunkM4MIZPQIcjs.serializeEditorDocument; exports.slugifyDocumentName = slugifyDocumentName; exports.toEditorDocumentFile = _chunkM4MIZPQIcjs.toEditorDocumentFile; exports.withEditorAssets = _chunkM4MIZPQIcjs.withEditorAssets; exports.withStorageFailures = withStorageFailures;
@@ -7,3 +7,4 @@ export * from "./editorDocument.cjs";
7
7
  export * from "./editorAutosave.cjs";
8
8
  export * from "./documentStore.cjs";
9
9
  export * from "./documentTools.cjs";
10
+ export * from "./assets.cjs";
@@ -7,3 +7,4 @@ export * from "./editorDocument.js";
7
7
  export * from "./editorAutosave.js";
8
8
  export * from "./documentStore.js";
9
9
  export * from "./documentTools.js";
10
+ export * from "./assets.js";
@@ -1,19 +1,26 @@
1
1
  import {
2
+ EDITOR_ASSET_PREFIX,
2
3
  EDITOR_DOCUMENT_FORMAT,
3
4
  EditorDocumentLoadError,
4
- defineEditorDocument,
5
- isEditorDocumentFile,
6
- parseEditorDocument,
7
- serializeEditorDocument,
8
- toEditorDocumentFile
9
- } from "../chunk-GNV54DLO.js";
10
- import {
5
+ collectAssetRefs,
6
+ createEditorAssetRegistry,
11
7
  createLoadReport,
8
+ defineEditorDocument,
9
+ externalizeAssets,
12
10
  hasLoadProblems,
11
+ internalizeAssets,
12
+ isEditorDocumentFile,
13
+ isInlineAsset,
13
14
  loadDocument,
14
15
  loadSections,
15
- migrateDocument
16
- } from "../chunk-WHKNYFM2.js";
16
+ migrateDocument,
17
+ parseEditorDocument,
18
+ persistEditorAssets,
19
+ preloadEditorAssets,
20
+ serializeEditorDocument,
21
+ toEditorDocumentFile,
22
+ withEditorAssets
23
+ } from "../chunk-NHLYK3AX.js";
17
24
  import "../chunk-HF5QZS7Z.js";
18
25
 
19
26
  // src/persistence/recoveryPolicy.ts
@@ -667,6 +674,8 @@ function createEditorAutosave(doc, options) {
667
674
  const revisions = createRevisionTracker({ history: doc, dirty });
668
675
  const controller = createAutosaveController({
669
676
  ...rest,
677
+ // Image and paint documents hold asset references: their bytes are saved and read with them.
678
+ storage: doc.assets ? withEditorAssets(rest.storage, doc.assets) : rest.storage,
670
679
  key: key ?? doc.kind,
671
680
  getSnapshot: () => toEditorDocumentFile(doc),
672
681
  deserialize: (text) => parseEditorDocument(text, { kind: doc.kind }),
@@ -754,7 +763,9 @@ function createEditorDocumentStore(options) {
754
763
  formatVersion: doc.formatVersion,
755
764
  savedAt: new Date(now()).toISOString()
756
765
  };
757
- await storage.set(fileKey(entry.key), JSON.stringify(toEditorDocumentFile(doc, trimmed)));
766
+ const text = JSON.stringify(toEditorDocumentFile(doc, trimmed));
767
+ if (doc.assets) await persistEditorAssets(storage, doc.assets, text);
768
+ await storage.set(fileKey(entry.key), text);
758
769
  await saveIndex([...(await loadIndex()).filter((item) => item.key !== entry.key), entry]);
759
770
  return entry;
760
771
  }),
@@ -769,6 +780,10 @@ function createEditorDocumentStore(options) {
769
780
  `There is no saved document "${key}". ${keys.length ? `Saved ${doc.kind} documents: ${keys.join(", ")}.` : `No ${doc.kind} documents are saved yet.`}`
770
781
  );
771
782
  }
783
+ if (doc.assets) {
784
+ const missing = await preloadEditorAssets(storage, doc.assets, file);
785
+ if (missing.length) throw new EditorDocumentLoadError(`The saved document "${key}" refers to ${missing.length} asset${missing.length === 1 ? "" : "s"} that storage no longer has, so it cannot be opened.`);
786
+ }
772
787
  const report = doc.loadDocument(file, { history: openOptions.history ?? "reset" });
773
788
  return { ...entry, report };
774
789
  }),
@@ -934,12 +949,15 @@ function createDocumentToolProvider(doc, options = {}) {
934
949
  };
935
950
  }
936
951
  export {
952
+ EDITOR_ASSET_PREFIX,
937
953
  EDITOR_DOCUMENT_FORMAT,
938
954
  EditorDocumentLoadError,
939
955
  InjectedStorageError,
940
956
  StorageUnavailableError,
957
+ collectAssetRefs,
941
958
  createAutosaveController,
942
959
  createDocumentToolProvider,
960
+ createEditorAssetRegistry,
943
961
  createEditorAutosave,
944
962
  createEditorDocumentStore,
945
963
  createIndexedDbAdapter,
@@ -951,19 +969,25 @@ export {
951
969
  createRevisionTracker,
952
970
  defineEditorDocument,
953
971
  exponentialBackoff,
972
+ externalizeAssets,
954
973
  formatRecoveryMessage,
955
974
  hasLoadProblems,
975
+ internalizeAssets,
956
976
  isEditorDocumentFile,
957
977
  isIndexedDbAvailable,
978
+ isInlineAsset,
958
979
  isLocalStorageAvailable,
959
980
  isOpfsAvailable,
960
981
  loadDocument,
961
982
  loadSections,
962
983
  migrateDocument,
963
984
  parseEditorDocument,
985
+ persistEditorAssets,
986
+ preloadEditorAssets,
964
987
  recoveryMetaKey,
965
988
  serializeEditorDocument,
966
989
  slugifyDocumentName,
967
990
  toEditorDocumentFile,
991
+ withEditorAssets,
968
992
  withStorageFailures
969
993
  };
@@ -126,7 +126,7 @@
126
126
 
127
127
 
128
128
 
129
- var _chunkXFDQEAOScjs = require('../chunk-XFDQEAOS.cjs');
129
+ var _chunkRQCMSEM5cjs = require('../chunk-RQCMSEM5.cjs');
130
130
 
131
131
 
132
132
 
@@ -198,8 +198,7 @@ var _chunk55AKPTLMcjs = require('../chunk-55AKPTLM.cjs');
198
198
 
199
199
 
200
200
  var _chunkN3KJFGXTcjs = require('../chunk-N3KJFGXT.cjs');
201
- require('../chunk-5H2C3QSF.cjs');
202
- require('../chunk-L5OWG2NA.cjs');
201
+ require('../chunk-M4MIZPQI.cjs');
203
202
  require('../chunk-2BSBFBOA.cjs');
204
203
 
205
204
 
@@ -394,4 +393,4 @@ require('../chunk-2BSBFBOA.cjs');
394
393
 
395
394
 
396
395
 
397
- exports.CONDITIONAL_FORMAT_ICON_SETS = _chunkXFDQEAOScjs.CONDITIONAL_FORMAT_ICON_SETS; exports.CONDITIONAL_FORMAT_PRESETS = _chunkXFDQEAOScjs.CONDITIONAL_FORMAT_PRESETS; exports.CONDITIONAL_FORMAT_STYLE_PRESETS = _chunkXFDQEAOScjs.CONDITIONAL_FORMAT_STYLE_PRESETS; exports.CONDITIONAL_FORMAT_TIME_PERIODS = _chunkXFDQEAOScjs.CONDITIONAL_FORMAT_TIME_PERIODS; exports.ConditionalFormatEngine = _chunkXFDQEAOScjs.ConditionalFormatEngine; exports.DATA_VALIDATION_ERROR_STYLE_OPTIONS = _chunkXFDQEAOScjs.DATA_VALIDATION_ERROR_STYLE_OPTIONS; exports.DATA_VALIDATION_OPERATOR_OPTIONS = _chunkXFDQEAOScjs.DATA_VALIDATION_OPERATOR_OPTIONS; exports.DATA_VALIDATION_TYPE_OPTIONS = _chunkXFDQEAOScjs.DATA_VALIDATION_TYPE_OPTIONS; exports.DEFAULT_COLUMN_WIDTH = _chunkXFDQEAOScjs.DEFAULT_COLUMN_WIDTH; exports.DEFAULT_CONDITIONAL_FORMAT_STYLE = _chunkXFDQEAOScjs.DEFAULT_CONDITIONAL_FORMAT_STYLE; exports.DEFAULT_DATA_VALIDATION_MESSAGE = _chunkXFDQEAOScjs.DEFAULT_DATA_VALIDATION_MESSAGE; exports.DEFAULT_DATA_VALIDATION_TITLE = _chunkXFDQEAOScjs.DEFAULT_DATA_VALIDATION_TITLE; exports.DEFAULT_ROW_HEIGHT = _chunkXFDQEAOScjs.DEFAULT_ROW_HEIGHT; exports.DataSourceBinder = _chunkXFDQEAOScjs.DataSourceBinder; exports.DependencyGraph = _chunkXFDQEAOScjs.DependencyGraph; exports.EMPTY_CONDITIONAL_FORMAT_OVERLAY = _chunkXFDQEAOScjs.EMPTY_CONDITIONAL_FORMAT_OVERLAY; exports.FORMULA_ERRORS = _chunk55AKPTLMcjs.FORMULA_ERRORS; exports.FormulaEvaluator = _chunkQZFEX2N4cjs.FormulaEvaluator; exports.FormulaLambda = _chunkQZFEX2N4cjs.FormulaLambda; exports.FormulaParser = _chunkQZFEX2N4cjs.FormulaParser; exports.IntervalIndex = _chunkXFDQEAOScjs.IntervalIndex; exports.MAX_DEFINED_NAME_LENGTH = _chunkXFDQEAOScjs.MAX_DEFINED_NAME_LENGTH; exports.MAX_FORMULA_ARRAY_SIZE = _chunkQZFEX2N4cjs.MAX_FORMULA_ARRAY_SIZE; exports.MAX_LAMBDA_DEPTH = _chunkQZFEX2N4cjs.MAX_LAMBDA_DEPTH; exports.MAX_NUMBER_FORMAT_CODE_CHARS = _chunk55AKPTLMcjs.MAX_NUMBER_FORMAT_CODE_CHARS; exports.MAX_SHEET_NAME_LENGTH = _chunkXFDQEAOScjs.MAX_SHEET_NAME_LENGTH; exports.NUMBER_FORMAT_PRESETS = _chunkXFDQEAOScjs.NUMBER_FORMAT_PRESETS; exports.NumberFormat = _chunk55AKPTLMcjs.NumberFormat; exports.SPREADSHEET_CLIPBOARD_MIME = _chunkXFDQEAOScjs.SPREADSHEET_CLIPBOARD_MIME; exports.SPREADSHEET_COLUMN_HEADER_HEIGHT = _chunkXFDQEAOScjs.SPREADSHEET_COLUMN_HEADER_HEIGHT; exports.SPREADSHEET_DEFAULT_VIEWPORT = _chunkXFDQEAOScjs.SPREADSHEET_DEFAULT_VIEWPORT; exports.SPREADSHEET_GROUP_ROW_HEIGHT = _chunkXFDQEAOScjs.SPREADSHEET_GROUP_ROW_HEIGHT; exports.SPREADSHEET_IMPORT_ADAPTERS = _chunkXFDQEAOScjs.SPREADSHEET_IMPORT_ADAPTERS; exports.SPREADSHEET_ROW_HEADER_WIDTH = _chunkXFDQEAOScjs.SPREADSHEET_ROW_HEADER_WIDTH; exports.SPREADSHEET_TABLE_ACTIONS = _chunkXFDQEAOScjs.SPREADSHEET_TABLE_ACTIONS; exports.SPREADSHEET_VIRTUAL_COLUMN_THRESHOLD = _chunkXFDQEAOScjs.SPREADSHEET_VIRTUAL_COLUMN_THRESHOLD; exports.SPREADSHEET_VIRTUAL_ROW_THRESHOLD = _chunkXFDQEAOScjs.SPREADSHEET_VIRTUAL_ROW_THRESHOLD; exports.SpreadsheetController = _chunkXFDQEAOScjs.SpreadsheetController; exports.WHOLE_COLUMN_END_ROW = _chunkQZFEX2N4cjs.WHOLE_COLUMN_END_ROW; exports.adjustRangeForStructuralChange = _chunkXFDQEAOScjs.adjustRangeForStructuralChange; exports.adjustRangesForStructuralChange = _chunkXFDQEAOScjs.adjustRangesForStructuralChange; exports.aggregateValues = _chunkQZFEX2N4cjs.aggregateValues; exports.applyFormulaSuggestion = _chunkXFDQEAOScjs.applyFormulaSuggestion; exports.bindSpreadsheetTableActions = _chunkXFDQEAOScjs.bindSpreadsheetTableActions; exports.blendConditionalFormatColors = _chunkXFDQEAOScjs.blendConditionalFormatColors; exports.buildSpreadsheetView = _chunkXFDQEAOScjs.buildSpreadsheetView; exports.builtinNumberFormat = _chunk55AKPTLMcjs.builtinNumberFormat; exports.builtinNumberFormatId = _chunk55AKPTLMcjs.builtinNumberFormatId; exports.cellFormatForNumberFormat = _chunkXFDQEAOScjs.cellFormatForNumberFormat; exports.checkFormulaArgumentCount = _chunkQZFEX2N4cjs.checkFormulaArgumentCount; exports.clampMenuPosition = _chunkXFDQEAOScjs.clampMenuPosition; exports.clearNumberFormatCache = _chunk55AKPTLMcjs.clearNumberFormatCache; exports.colNameToIndex = _chunk55AKPTLMcjs.colNameToIndex; exports.columnDependencyKey = _chunkXFDQEAOScjs.columnDependencyKey; exports.compareCellValues = _chunkQZFEX2N4cjs.compareCellValues; exports.compareNumbers = _chunk55AKPTLMcjs.compareNumbers; exports.compareValues = _chunk55AKPTLMcjs.compareValues; exports.computeFillTarget = _chunkQZFEX2N4cjs.computeFillTarget; exports.computeRowGroups = _chunkXFDQEAOScjs.computeRowGroups; exports.conditionalFormatContrastColor = _chunkXFDQEAOScjs.conditionalFormatContrastColor; exports.conditionalFormatIconCount = _chunkXFDQEAOScjs.conditionalFormatIconCount; exports.conditionalFormatNumber = _chunkXFDQEAOScjs.conditionalFormatNumber; exports.conditionalFormatStyleString = _chunkXFDQEAOScjs.conditionalFormatStyleString; exports.copySheetName = _chunkXFDQEAOScjs.copySheetName; exports.createConditionalFormatRule = _chunkXFDQEAOScjs.createConditionalFormatRule; exports.createSpreadsheetClipboardData = _chunkXFDQEAOScjs.createSpreadsheetClipboardData; exports.createSpreadsheetEditorDocument = _chunkXFDQEAOScjs.createSpreadsheetEditorDocument; exports.csvImportAdapter = _chunkXFDQEAOScjs.csvImportAdapter; exports.dateValueToSerial = _chunk55AKPTLMcjs.dateValueToSerial; exports.defaultIconThresholds = _chunkXFDQEAOScjs.defaultIconThresholds; exports.deleteSheetInFormula = _chunkXFDQEAOScjs.deleteSheetInFormula; exports.describeConditionalFormat = _chunkXFDQEAOScjs.describeConditionalFormat; exports.describeDataValidation = _chunkXFDQEAOScjs.describeDataValidation; exports.describeFormulaError = _chunkQZFEX2N4cjs.describeFormulaError; exports.escapeCsvField = _chunkN3KJFGXTcjs.escapeCsvField; exports.evaluateConditionalFormats = _chunkXFDQEAOScjs.evaluateConditionalFormats; exports.extractCellDependencies = _chunkXFDQEAOScjs.extractCellDependencies; exports.extractNameDependencies = _chunkXFDQEAOScjs.extractNameDependencies; exports.extractReferenceDependencies = _chunkXFDQEAOScjs.extractReferenceDependencies; exports.fillSeries = _chunkQZFEX2N4cjs.fillSeries; exports.findDataValidation = _chunkXFDQEAOScjs.findDataValidation; exports.findInvalidCells = _chunkXFDQEAOScjs.findInvalidCells; exports.forEachRangeCell = _chunkXFDQEAOScjs.forEachRangeCell; exports.formatCellDisplay = _chunkXFDQEAOScjs.formatCellDisplay; exports.formatCellForDisplay = _chunkXFDQEAOScjs.formatCellForDisplay; exports.formatGeneralFit = _chunk55AKPTLMcjs.formatGeneralFit; exports.formatNumberFormatValue = _chunk55AKPTLMcjs.formatNumberFormatValue; exports.formatRuleRanges = _chunkXFDQEAOScjs.formatRuleRanges; exports.formatSheetPrefix = _chunkXFDQEAOScjs.formatSheetPrefix; exports.formatTextFunction = _chunk55AKPTLMcjs.formatTextFunction; exports.formatValueWithCode = _chunkXFDQEAOScjs.formatValueWithCode; exports.formulaIdentifiers = _chunkXFDQEAOScjs.formulaIdentifiers; exports.fullSpreadsheetViewWindow = _chunkXFDQEAOScjs.fullSpreadsheetViewWindow; exports.getConditionalFormatCss = _chunkXFDQEAOScjs.getConditionalFormatCss; exports.getConditionalFormatIcon = _chunkXFDQEAOScjs.getConditionalFormatIcon; exports.getDataBarCss = _chunkXFDQEAOScjs.getDataBarCss; exports.getFillDirection = _chunkQZFEX2N4cjs.getFillDirection; exports.getFormulaArgumentSpecIndex = _chunkQZFEX2N4cjs.getFormulaArgumentSpecIndex; exports.getFormulaCaretContext = _chunkXFDQEAOScjs.getFormulaCaretContext; exports.getFormulaFunction = _chunkQZFEX2N4cjs.getFormulaFunction; exports.getFormulaHints = _chunkXFDQEAOScjs.getFormulaHints; exports.getFormulaSignature = _chunkQZFEX2N4cjs.getFormulaSignature; exports.getFormulaSignatureParts = _chunkQZFEX2N4cjs.getFormulaSignatureParts; exports.getNameManagerRows = _chunkXFDQEAOScjs.getNameManagerRows; exports.getRowSection = _chunkXFDQEAOScjs.getRowSection; exports.getSheetTabMenuItems = _chunkXFDQEAOScjs.getSheetTabMenuItems; exports.getSpreadsheetMenuItems = _chunkXFDQEAOScjs.getSpreadsheetMenuItems; exports.getSpreadsheetScrollToCell = _chunkXFDQEAOScjs.getSpreadsheetScrollToCell; exports.getSpreadsheetViewWindow = _chunkXFDQEAOScjs.getSpreadsheetViewWindow; exports.getTableSections = _chunkXFDQEAOScjs.getTableSections; exports.getValidationListValues = _chunkXFDQEAOScjs.getValidationListValues; exports.importFileIntoSpreadsheet = _chunkXFDQEAOScjs.importFileIntoSpreadsheet; exports.indexToColName = _chunk55AKPTLMcjs.indexToColName; exports.isBlankValue = _chunkQZFEX2N4cjs.isBlankValue; exports.isFormulaError = _chunk55AKPTLMcjs.isFormulaError; exports.isFormulaLambda = _chunkQZFEX2N4cjs.isFormulaLambda; exports.isGeneralNumberFormat = _chunkXFDQEAOScjs.isGeneralNumberFormat; exports.isLambdaDefinition = _chunkXFDQEAOScjs.isLambdaDefinition; exports.isSingleCellRange = _chunkQZFEX2N4cjs.isSingleCellRange; exports.listFormulaFunctions = _chunkQZFEX2N4cjs.listFormulaFunctions; exports.mapConditionalFormatFormulas = _chunkXFDQEAOScjs.mapConditionalFormatFormulas; exports.mapDataValidationFormulas = _chunkXFDQEAOScjs.mapDataValidationFormulas; exports.mapFormulaReferences = _chunkXFDQEAOScjs.mapFormulaReferences; exports.matchesFilterRule = _chunkQZFEX2N4cjs.matchesFilterRule; exports.matchesTimePeriod = _chunkXFDQEAOScjs.matchesTimePeriod; exports.measureSpreadsheetView = _chunkXFDQEAOScjs.measureSpreadsheetView; exports.mergeRuleRanges = _chunkXFDQEAOScjs.mergeRuleRanges; exports.nextSheetName = _chunkXFDQEAOScjs.nextSheetName; exports.normalizeRange = _chunkQZFEX2N4cjs.normalizeRange; exports.numberFormatColorToCss = _chunk55AKPTLMcjs.numberFormatColorToCss; exports.numberFormatForCellFormat = _chunkXFDQEAOScjs.numberFormatForCellFormat; exports.numberToText = _chunk55AKPTLMcjs.numberToText; exports.offsetFormulaReferences = _chunkXFDQEAOScjs.offsetFormulaReferences; exports.parseCellInput = _chunk55AKPTLMcjs.parseCellInput; exports.parseCellReference = _chunkQZFEX2N4cjs.parseCellReference; exports.parseCriteria = _chunkQZFEX2N4cjs.parseCriteria; exports.parseCsv = _chunkN3KJFGXTcjs.parseCsv; exports.parseFormula = _chunkQZFEX2N4cjs.parseFormula; exports.parseHtmlTable = _chunkXFDQEAOScjs.parseHtmlTable; exports.parseNumberText = _chunk55AKPTLMcjs.parseNumberText; exports.parseRange = _chunkQZFEX2N4cjs.parseRange; exports.parseRuleRanges = _chunkXFDQEAOScjs.parseRuleRanges; exports.parseSpreadsheetPlaybackRef = _chunkQZFEX2N4cjs.parseSpreadsheetPlaybackRef; exports.parseTsv = _chunkN3KJFGXTcjs.parseTsv; exports.planSpreadsheetToolPlayback = _chunkQZFEX2N4cjs.planSpreadsheetToolPlayback; exports.quoteSheetName = _chunkXFDQEAOScjs.quoteSheetName; exports.rangeContains = _chunkQZFEX2N4cjs.rangeContains; exports.rangeContainsRange = _chunkQZFEX2N4cjs.rangeContainsRange; exports.rangeDependencyKey = _chunkXFDQEAOScjs.rangeDependencyKey; exports.rangesContain = _chunkXFDQEAOScjs.rangesContain; exports.rangesIntersect = _chunkQZFEX2N4cjs.rangesIntersect; exports.readSpreadsheetClipboard = _chunkXFDQEAOScjs.readSpreadsheetClipboard; exports.reanchorRuleFormula = _chunkXFDQEAOScjs.reanchorRuleFormula; exports.rebaseClipboardRows = _chunkXFDQEAOScjs.rebaseClipboardRows; exports.registerFormulaFunction = _chunkQZFEX2N4cjs.registerFormulaFunction; exports.registerSpreadsheetImportAdapters = _chunkXFDQEAOScjs.registerSpreadsheetImportAdapters; exports.remapFormulaReferences = _chunkXFDQEAOScjs.remapFormulaReferences; exports.renameNameInFormula = _chunkXFDQEAOScjs.renameNameInFormula; exports.renameSheetInFormula = _chunkXFDQEAOScjs.renameSheetInFormula; exports.roundFloat = _chunkQZFEX2N4cjs.roundFloat; exports.rowPassesFilters = _chunkXFDQEAOScjs.rowPassesFilters; exports.ruleAnchor = _chunkXFDQEAOScjs.ruleAnchor; exports.ruleFormulaAt = _chunkXFDQEAOScjs.ruleFormulaAt; exports.runSpreadsheetMenuItem = _chunkXFDQEAOScjs.runSpreadsheetMenuItem; exports.sameSpreadsheetViewWindow = _chunkXFDQEAOScjs.sameSpreadsheetViewWindow; exports.searchFormulaFunctions = _chunkQZFEX2N4cjs.searchFormulaFunctions; exports.serialFromYmd = _chunk55AKPTLMcjs.serialFromYmd; exports.serializeCsv = _chunkN3KJFGXTcjs.serializeCsv; exports.serializeHtmlTable = _chunkXFDQEAOScjs.serializeHtmlTable; exports.serializeTsv = _chunkN3KJFGXTcjs.serializeTsv; exports.sheetDropIndex = _chunkXFDQEAOScjs.sheetDropIndex; exports.sheetNameNeedsQuotes = _chunkXFDQEAOScjs.sheetNameNeedsQuotes; exports.shiftFormulaReferences = _chunkXFDQEAOScjs.shiftFormulaReferences; exports.shiftRuleFormula = _chunkXFDQEAOScjs.shiftRuleFormula; exports.shouldVirtualizeSpreadsheet = _chunkXFDQEAOScjs.shouldVirtualizeSpreadsheet; exports.sortCompareValues = _chunk55AKPTLMcjs.sortCompareValues; exports.sortRuleRanges = _chunkXFDQEAOScjs.sortRuleRanges; exports.sortRules = _chunkXFDQEAOScjs.sortRules; exports.subtractRange = _chunkXFDQEAOScjs.subtractRange; exports.subtractRangeFromRanges = _chunkXFDQEAOScjs.subtractRangeFromRanges; exports.toNumber = _chunkQZFEX2N4cjs.toNumber; exports.tokenizeFormula = _chunkQZFEX2N4cjs.tokenizeFormula; exports.transposeFormulaReferences = _chunkXFDQEAOScjs.transposeFormulaReferences; exports.transposeRuleFormula = _chunkXFDQEAOScjs.transposeRuleFormula; exports.transposeRuleRanges = _chunkXFDQEAOScjs.transposeRuleRanges; exports.transposeRules = _chunkXFDQEAOScjs.transposeRules; exports.tsvImportAdapter = _chunkXFDQEAOScjs.tsvImportAdapter; exports.unregisterFormulaFunction = _chunkQZFEX2N4cjs.unregisterFormulaFunction; exports.validateCellInput = _chunkXFDQEAOScjs.validateCellInput; exports.validateDefinedName = _chunkXFDQEAOScjs.validateDefinedName; exports.validateSheetName = _chunkXFDQEAOScjs.validateSheetName; exports.wildcardToRegExp = _chunkQZFEX2N4cjs.wildcardToRegExp;
396
+ exports.CONDITIONAL_FORMAT_ICON_SETS = _chunkRQCMSEM5cjs.CONDITIONAL_FORMAT_ICON_SETS; exports.CONDITIONAL_FORMAT_PRESETS = _chunkRQCMSEM5cjs.CONDITIONAL_FORMAT_PRESETS; exports.CONDITIONAL_FORMAT_STYLE_PRESETS = _chunkRQCMSEM5cjs.CONDITIONAL_FORMAT_STYLE_PRESETS; exports.CONDITIONAL_FORMAT_TIME_PERIODS = _chunkRQCMSEM5cjs.CONDITIONAL_FORMAT_TIME_PERIODS; exports.ConditionalFormatEngine = _chunkRQCMSEM5cjs.ConditionalFormatEngine; exports.DATA_VALIDATION_ERROR_STYLE_OPTIONS = _chunkRQCMSEM5cjs.DATA_VALIDATION_ERROR_STYLE_OPTIONS; exports.DATA_VALIDATION_OPERATOR_OPTIONS = _chunkRQCMSEM5cjs.DATA_VALIDATION_OPERATOR_OPTIONS; exports.DATA_VALIDATION_TYPE_OPTIONS = _chunkRQCMSEM5cjs.DATA_VALIDATION_TYPE_OPTIONS; exports.DEFAULT_COLUMN_WIDTH = _chunkRQCMSEM5cjs.DEFAULT_COLUMN_WIDTH; exports.DEFAULT_CONDITIONAL_FORMAT_STYLE = _chunkRQCMSEM5cjs.DEFAULT_CONDITIONAL_FORMAT_STYLE; exports.DEFAULT_DATA_VALIDATION_MESSAGE = _chunkRQCMSEM5cjs.DEFAULT_DATA_VALIDATION_MESSAGE; exports.DEFAULT_DATA_VALIDATION_TITLE = _chunkRQCMSEM5cjs.DEFAULT_DATA_VALIDATION_TITLE; exports.DEFAULT_ROW_HEIGHT = _chunkRQCMSEM5cjs.DEFAULT_ROW_HEIGHT; exports.DataSourceBinder = _chunkRQCMSEM5cjs.DataSourceBinder; exports.DependencyGraph = _chunkRQCMSEM5cjs.DependencyGraph; exports.EMPTY_CONDITIONAL_FORMAT_OVERLAY = _chunkRQCMSEM5cjs.EMPTY_CONDITIONAL_FORMAT_OVERLAY; exports.FORMULA_ERRORS = _chunk55AKPTLMcjs.FORMULA_ERRORS; exports.FormulaEvaluator = _chunkQZFEX2N4cjs.FormulaEvaluator; exports.FormulaLambda = _chunkQZFEX2N4cjs.FormulaLambda; exports.FormulaParser = _chunkQZFEX2N4cjs.FormulaParser; exports.IntervalIndex = _chunkRQCMSEM5cjs.IntervalIndex; exports.MAX_DEFINED_NAME_LENGTH = _chunkRQCMSEM5cjs.MAX_DEFINED_NAME_LENGTH; exports.MAX_FORMULA_ARRAY_SIZE = _chunkQZFEX2N4cjs.MAX_FORMULA_ARRAY_SIZE; exports.MAX_LAMBDA_DEPTH = _chunkQZFEX2N4cjs.MAX_LAMBDA_DEPTH; exports.MAX_NUMBER_FORMAT_CODE_CHARS = _chunk55AKPTLMcjs.MAX_NUMBER_FORMAT_CODE_CHARS; exports.MAX_SHEET_NAME_LENGTH = _chunkRQCMSEM5cjs.MAX_SHEET_NAME_LENGTH; exports.NUMBER_FORMAT_PRESETS = _chunkRQCMSEM5cjs.NUMBER_FORMAT_PRESETS; exports.NumberFormat = _chunk55AKPTLMcjs.NumberFormat; exports.SPREADSHEET_CLIPBOARD_MIME = _chunkRQCMSEM5cjs.SPREADSHEET_CLIPBOARD_MIME; exports.SPREADSHEET_COLUMN_HEADER_HEIGHT = _chunkRQCMSEM5cjs.SPREADSHEET_COLUMN_HEADER_HEIGHT; exports.SPREADSHEET_DEFAULT_VIEWPORT = _chunkRQCMSEM5cjs.SPREADSHEET_DEFAULT_VIEWPORT; exports.SPREADSHEET_GROUP_ROW_HEIGHT = _chunkRQCMSEM5cjs.SPREADSHEET_GROUP_ROW_HEIGHT; exports.SPREADSHEET_IMPORT_ADAPTERS = _chunkRQCMSEM5cjs.SPREADSHEET_IMPORT_ADAPTERS; exports.SPREADSHEET_ROW_HEADER_WIDTH = _chunkRQCMSEM5cjs.SPREADSHEET_ROW_HEADER_WIDTH; exports.SPREADSHEET_TABLE_ACTIONS = _chunkRQCMSEM5cjs.SPREADSHEET_TABLE_ACTIONS; exports.SPREADSHEET_VIRTUAL_COLUMN_THRESHOLD = _chunkRQCMSEM5cjs.SPREADSHEET_VIRTUAL_COLUMN_THRESHOLD; exports.SPREADSHEET_VIRTUAL_ROW_THRESHOLD = _chunkRQCMSEM5cjs.SPREADSHEET_VIRTUAL_ROW_THRESHOLD; exports.SpreadsheetController = _chunkRQCMSEM5cjs.SpreadsheetController; exports.WHOLE_COLUMN_END_ROW = _chunkQZFEX2N4cjs.WHOLE_COLUMN_END_ROW; exports.adjustRangeForStructuralChange = _chunkRQCMSEM5cjs.adjustRangeForStructuralChange; exports.adjustRangesForStructuralChange = _chunkRQCMSEM5cjs.adjustRangesForStructuralChange; exports.aggregateValues = _chunkQZFEX2N4cjs.aggregateValues; exports.applyFormulaSuggestion = _chunkRQCMSEM5cjs.applyFormulaSuggestion; exports.bindSpreadsheetTableActions = _chunkRQCMSEM5cjs.bindSpreadsheetTableActions; exports.blendConditionalFormatColors = _chunkRQCMSEM5cjs.blendConditionalFormatColors; exports.buildSpreadsheetView = _chunkRQCMSEM5cjs.buildSpreadsheetView; exports.builtinNumberFormat = _chunk55AKPTLMcjs.builtinNumberFormat; exports.builtinNumberFormatId = _chunk55AKPTLMcjs.builtinNumberFormatId; exports.cellFormatForNumberFormat = _chunkRQCMSEM5cjs.cellFormatForNumberFormat; exports.checkFormulaArgumentCount = _chunkQZFEX2N4cjs.checkFormulaArgumentCount; exports.clampMenuPosition = _chunkRQCMSEM5cjs.clampMenuPosition; exports.clearNumberFormatCache = _chunk55AKPTLMcjs.clearNumberFormatCache; exports.colNameToIndex = _chunk55AKPTLMcjs.colNameToIndex; exports.columnDependencyKey = _chunkRQCMSEM5cjs.columnDependencyKey; exports.compareCellValues = _chunkQZFEX2N4cjs.compareCellValues; exports.compareNumbers = _chunk55AKPTLMcjs.compareNumbers; exports.compareValues = _chunk55AKPTLMcjs.compareValues; exports.computeFillTarget = _chunkQZFEX2N4cjs.computeFillTarget; exports.computeRowGroups = _chunkRQCMSEM5cjs.computeRowGroups; exports.conditionalFormatContrastColor = _chunkRQCMSEM5cjs.conditionalFormatContrastColor; exports.conditionalFormatIconCount = _chunkRQCMSEM5cjs.conditionalFormatIconCount; exports.conditionalFormatNumber = _chunkRQCMSEM5cjs.conditionalFormatNumber; exports.conditionalFormatStyleString = _chunkRQCMSEM5cjs.conditionalFormatStyleString; exports.copySheetName = _chunkRQCMSEM5cjs.copySheetName; exports.createConditionalFormatRule = _chunkRQCMSEM5cjs.createConditionalFormatRule; exports.createSpreadsheetClipboardData = _chunkRQCMSEM5cjs.createSpreadsheetClipboardData; exports.createSpreadsheetEditorDocument = _chunkRQCMSEM5cjs.createSpreadsheetEditorDocument; exports.csvImportAdapter = _chunkRQCMSEM5cjs.csvImportAdapter; exports.dateValueToSerial = _chunk55AKPTLMcjs.dateValueToSerial; exports.defaultIconThresholds = _chunkRQCMSEM5cjs.defaultIconThresholds; exports.deleteSheetInFormula = _chunkRQCMSEM5cjs.deleteSheetInFormula; exports.describeConditionalFormat = _chunkRQCMSEM5cjs.describeConditionalFormat; exports.describeDataValidation = _chunkRQCMSEM5cjs.describeDataValidation; exports.describeFormulaError = _chunkQZFEX2N4cjs.describeFormulaError; exports.escapeCsvField = _chunkN3KJFGXTcjs.escapeCsvField; exports.evaluateConditionalFormats = _chunkRQCMSEM5cjs.evaluateConditionalFormats; exports.extractCellDependencies = _chunkRQCMSEM5cjs.extractCellDependencies; exports.extractNameDependencies = _chunkRQCMSEM5cjs.extractNameDependencies; exports.extractReferenceDependencies = _chunkRQCMSEM5cjs.extractReferenceDependencies; exports.fillSeries = _chunkQZFEX2N4cjs.fillSeries; exports.findDataValidation = _chunkRQCMSEM5cjs.findDataValidation; exports.findInvalidCells = _chunkRQCMSEM5cjs.findInvalidCells; exports.forEachRangeCell = _chunkRQCMSEM5cjs.forEachRangeCell; exports.formatCellDisplay = _chunkRQCMSEM5cjs.formatCellDisplay; exports.formatCellForDisplay = _chunkRQCMSEM5cjs.formatCellForDisplay; exports.formatGeneralFit = _chunk55AKPTLMcjs.formatGeneralFit; exports.formatNumberFormatValue = _chunk55AKPTLMcjs.formatNumberFormatValue; exports.formatRuleRanges = _chunkRQCMSEM5cjs.formatRuleRanges; exports.formatSheetPrefix = _chunkRQCMSEM5cjs.formatSheetPrefix; exports.formatTextFunction = _chunk55AKPTLMcjs.formatTextFunction; exports.formatValueWithCode = _chunkRQCMSEM5cjs.formatValueWithCode; exports.formulaIdentifiers = _chunkRQCMSEM5cjs.formulaIdentifiers; exports.fullSpreadsheetViewWindow = _chunkRQCMSEM5cjs.fullSpreadsheetViewWindow; exports.getConditionalFormatCss = _chunkRQCMSEM5cjs.getConditionalFormatCss; exports.getConditionalFormatIcon = _chunkRQCMSEM5cjs.getConditionalFormatIcon; exports.getDataBarCss = _chunkRQCMSEM5cjs.getDataBarCss; exports.getFillDirection = _chunkQZFEX2N4cjs.getFillDirection; exports.getFormulaArgumentSpecIndex = _chunkQZFEX2N4cjs.getFormulaArgumentSpecIndex; exports.getFormulaCaretContext = _chunkRQCMSEM5cjs.getFormulaCaretContext; exports.getFormulaFunction = _chunkQZFEX2N4cjs.getFormulaFunction; exports.getFormulaHints = _chunkRQCMSEM5cjs.getFormulaHints; exports.getFormulaSignature = _chunkQZFEX2N4cjs.getFormulaSignature; exports.getFormulaSignatureParts = _chunkQZFEX2N4cjs.getFormulaSignatureParts; exports.getNameManagerRows = _chunkRQCMSEM5cjs.getNameManagerRows; exports.getRowSection = _chunkRQCMSEM5cjs.getRowSection; exports.getSheetTabMenuItems = _chunkRQCMSEM5cjs.getSheetTabMenuItems; exports.getSpreadsheetMenuItems = _chunkRQCMSEM5cjs.getSpreadsheetMenuItems; exports.getSpreadsheetScrollToCell = _chunkRQCMSEM5cjs.getSpreadsheetScrollToCell; exports.getSpreadsheetViewWindow = _chunkRQCMSEM5cjs.getSpreadsheetViewWindow; exports.getTableSections = _chunkRQCMSEM5cjs.getTableSections; exports.getValidationListValues = _chunkRQCMSEM5cjs.getValidationListValues; exports.importFileIntoSpreadsheet = _chunkRQCMSEM5cjs.importFileIntoSpreadsheet; exports.indexToColName = _chunk55AKPTLMcjs.indexToColName; exports.isBlankValue = _chunkQZFEX2N4cjs.isBlankValue; exports.isFormulaError = _chunk55AKPTLMcjs.isFormulaError; exports.isFormulaLambda = _chunkQZFEX2N4cjs.isFormulaLambda; exports.isGeneralNumberFormat = _chunkRQCMSEM5cjs.isGeneralNumberFormat; exports.isLambdaDefinition = _chunkRQCMSEM5cjs.isLambdaDefinition; exports.isSingleCellRange = _chunkQZFEX2N4cjs.isSingleCellRange; exports.listFormulaFunctions = _chunkQZFEX2N4cjs.listFormulaFunctions; exports.mapConditionalFormatFormulas = _chunkRQCMSEM5cjs.mapConditionalFormatFormulas; exports.mapDataValidationFormulas = _chunkRQCMSEM5cjs.mapDataValidationFormulas; exports.mapFormulaReferences = _chunkRQCMSEM5cjs.mapFormulaReferences; exports.matchesFilterRule = _chunkQZFEX2N4cjs.matchesFilterRule; exports.matchesTimePeriod = _chunkRQCMSEM5cjs.matchesTimePeriod; exports.measureSpreadsheetView = _chunkRQCMSEM5cjs.measureSpreadsheetView; exports.mergeRuleRanges = _chunkRQCMSEM5cjs.mergeRuleRanges; exports.nextSheetName = _chunkRQCMSEM5cjs.nextSheetName; exports.normalizeRange = _chunkQZFEX2N4cjs.normalizeRange; exports.numberFormatColorToCss = _chunk55AKPTLMcjs.numberFormatColorToCss; exports.numberFormatForCellFormat = _chunkRQCMSEM5cjs.numberFormatForCellFormat; exports.numberToText = _chunk55AKPTLMcjs.numberToText; exports.offsetFormulaReferences = _chunkRQCMSEM5cjs.offsetFormulaReferences; exports.parseCellInput = _chunk55AKPTLMcjs.parseCellInput; exports.parseCellReference = _chunkQZFEX2N4cjs.parseCellReference; exports.parseCriteria = _chunkQZFEX2N4cjs.parseCriteria; exports.parseCsv = _chunkN3KJFGXTcjs.parseCsv; exports.parseFormula = _chunkQZFEX2N4cjs.parseFormula; exports.parseHtmlTable = _chunkRQCMSEM5cjs.parseHtmlTable; exports.parseNumberText = _chunk55AKPTLMcjs.parseNumberText; exports.parseRange = _chunkQZFEX2N4cjs.parseRange; exports.parseRuleRanges = _chunkRQCMSEM5cjs.parseRuleRanges; exports.parseSpreadsheetPlaybackRef = _chunkQZFEX2N4cjs.parseSpreadsheetPlaybackRef; exports.parseTsv = _chunkN3KJFGXTcjs.parseTsv; exports.planSpreadsheetToolPlayback = _chunkQZFEX2N4cjs.planSpreadsheetToolPlayback; exports.quoteSheetName = _chunkRQCMSEM5cjs.quoteSheetName; exports.rangeContains = _chunkQZFEX2N4cjs.rangeContains; exports.rangeContainsRange = _chunkQZFEX2N4cjs.rangeContainsRange; exports.rangeDependencyKey = _chunkRQCMSEM5cjs.rangeDependencyKey; exports.rangesContain = _chunkRQCMSEM5cjs.rangesContain; exports.rangesIntersect = _chunkQZFEX2N4cjs.rangesIntersect; exports.readSpreadsheetClipboard = _chunkRQCMSEM5cjs.readSpreadsheetClipboard; exports.reanchorRuleFormula = _chunkRQCMSEM5cjs.reanchorRuleFormula; exports.rebaseClipboardRows = _chunkRQCMSEM5cjs.rebaseClipboardRows; exports.registerFormulaFunction = _chunkQZFEX2N4cjs.registerFormulaFunction; exports.registerSpreadsheetImportAdapters = _chunkRQCMSEM5cjs.registerSpreadsheetImportAdapters; exports.remapFormulaReferences = _chunkRQCMSEM5cjs.remapFormulaReferences; exports.renameNameInFormula = _chunkRQCMSEM5cjs.renameNameInFormula; exports.renameSheetInFormula = _chunkRQCMSEM5cjs.renameSheetInFormula; exports.roundFloat = _chunkQZFEX2N4cjs.roundFloat; exports.rowPassesFilters = _chunkRQCMSEM5cjs.rowPassesFilters; exports.ruleAnchor = _chunkRQCMSEM5cjs.ruleAnchor; exports.ruleFormulaAt = _chunkRQCMSEM5cjs.ruleFormulaAt; exports.runSpreadsheetMenuItem = _chunkRQCMSEM5cjs.runSpreadsheetMenuItem; exports.sameSpreadsheetViewWindow = _chunkRQCMSEM5cjs.sameSpreadsheetViewWindow; exports.searchFormulaFunctions = _chunkQZFEX2N4cjs.searchFormulaFunctions; exports.serialFromYmd = _chunk55AKPTLMcjs.serialFromYmd; exports.serializeCsv = _chunkN3KJFGXTcjs.serializeCsv; exports.serializeHtmlTable = _chunkRQCMSEM5cjs.serializeHtmlTable; exports.serializeTsv = _chunkN3KJFGXTcjs.serializeTsv; exports.sheetDropIndex = _chunkRQCMSEM5cjs.sheetDropIndex; exports.sheetNameNeedsQuotes = _chunkRQCMSEM5cjs.sheetNameNeedsQuotes; exports.shiftFormulaReferences = _chunkRQCMSEM5cjs.shiftFormulaReferences; exports.shiftRuleFormula = _chunkRQCMSEM5cjs.shiftRuleFormula; exports.shouldVirtualizeSpreadsheet = _chunkRQCMSEM5cjs.shouldVirtualizeSpreadsheet; exports.sortCompareValues = _chunk55AKPTLMcjs.sortCompareValues; exports.sortRuleRanges = _chunkRQCMSEM5cjs.sortRuleRanges; exports.sortRules = _chunkRQCMSEM5cjs.sortRules; exports.subtractRange = _chunkRQCMSEM5cjs.subtractRange; exports.subtractRangeFromRanges = _chunkRQCMSEM5cjs.subtractRangeFromRanges; exports.toNumber = _chunkQZFEX2N4cjs.toNumber; exports.tokenizeFormula = _chunkQZFEX2N4cjs.tokenizeFormula; exports.transposeFormulaReferences = _chunkRQCMSEM5cjs.transposeFormulaReferences; exports.transposeRuleFormula = _chunkRQCMSEM5cjs.transposeRuleFormula; exports.transposeRuleRanges = _chunkRQCMSEM5cjs.transposeRuleRanges; exports.transposeRules = _chunkRQCMSEM5cjs.transposeRules; exports.tsvImportAdapter = _chunkRQCMSEM5cjs.tsvImportAdapter; exports.unregisterFormulaFunction = _chunkQZFEX2N4cjs.unregisterFormulaFunction; exports.validateCellInput = _chunkRQCMSEM5cjs.validateCellInput; exports.validateDefinedName = _chunkRQCMSEM5cjs.validateDefinedName; exports.validateSheetName = _chunkRQCMSEM5cjs.validateSheetName; exports.wildcardToRegExp = _chunkQZFEX2N4cjs.wildcardToRegExp;
@@ -126,7 +126,7 @@ import {
126
126
  validateCellInput,
127
127
  validateDefinedName,
128
128
  validateSheetName
129
- } from "../chunk-4J4MC3F5.js";
129
+ } from "../chunk-YXOW456B.js";
130
130
  import {
131
131
  FormulaEvaluator,
132
132
  FormulaLambda,
@@ -198,8 +198,7 @@ import {
198
198
  serializeCsv,
199
199
  serializeTsv
200
200
  } from "../chunk-WJSD3MAZ.js";
201
- import "../chunk-GNV54DLO.js";
202
- import "../chunk-WHKNYFM2.js";
201
+ import "../chunk-NHLYK3AX.js";
203
202
  import "../chunk-HF5QZS7Z.js";
204
203
  export {
205
204
  CONDITIONAL_FORMAT_ICON_SETS,
@@ -52,9 +52,8 @@
52
52
 
53
53
 
54
54
 
55
- var _chunkHVX35M2Icjs = require('../chunk-HVX35M2I.cjs');
56
- require('../chunk-5H2C3QSF.cjs');
57
- require('../chunk-L5OWG2NA.cjs');
55
+ var _chunkWI7QJA7Acjs = require('../chunk-WI7QJA7A.cjs');
56
+ require('../chunk-M4MIZPQI.cjs');
58
57
  require('../chunk-2BSBFBOA.cjs');
59
58
 
60
59
 
@@ -118,4 +117,4 @@ var _chunkA6QWKBJPcjs = require('../chunk-A6QWKBJP.cjs');
118
117
 
119
118
 
120
119
 
121
- exports.EMPTY_TOKEN_STATE = _chunkHVX35M2Icjs.EMPTY_TOKEN_STATE; exports.TOKEN_SCOPES_BY_TYPE = _chunkHVX35M2Icjs.TOKEN_SCOPES_BY_TYPE; exports.TOKEN_TYPES = _chunkHVX35M2Icjs.TOKEN_TYPES; exports.TokenError = _chunkHVX35M2Icjs.TokenError; exports.TokenStore = _chunkHVX35M2Icjs.TokenStore; exports.W3C_TOKENS_EXTENSION = _chunkHVX35M2Icjs.W3C_TOKENS_EXTENSION; exports.addTokenMode = _chunkHVX35M2Icjs.addTokenMode; exports.checkTokenAlias = _chunkHVX35M2Icjs.checkTokenAlias; exports.coerceTokenLiteral = _chunkHVX35M2Icjs.coerceTokenLiteral; exports.createTokenCollection = _chunkHVX35M2Icjs.createTokenCollection; exports.createTokenStore = _chunkHVX35M2Icjs.createTokenStore; exports.createTokenVariable = _chunkHVX35M2Icjs.createTokenVariable; exports.createTokensEditorDocument = _chunkHVX35M2Icjs.createTokensEditorDocument; exports.cssString = _chunkHVX35M2Icjs.cssString; exports.defaultTokenId = _chunkHVX35M2Icjs.defaultTokenId; exports.defaultTokenValue = _chunkHVX35M2Icjs.defaultTokenValue; exports.deleteTokenCollection = _chunkHVX35M2Icjs.deleteTokenCollection; exports.deleteTokenVariables = _chunkHVX35M2Icjs.deleteTokenVariables; exports.exportTokensCss = _chunkHVX35M2Icjs.exportTokensCss; exports.exportW3CTokens = _chunkHVX35M2Icjs.exportW3CTokens; exports.exportW3CTokensJson = _chunkHVX35M2Icjs.exportW3CTokensJson; exports.findTokenCollection = _chunkHVX35M2Icjs.findTokenCollection; exports.findTokenMode = _chunkHVX35M2Icjs.findTokenMode; exports.findTokenVariable = _chunkHVX35M2Icjs.findTokenVariable; exports.formatTokenCssValue = _chunkHVX35M2Icjs.formatTokenCssValue; exports.formatTokenValue = _chunkHVX35M2Icjs.formatTokenValue; exports.getCollectionVariables = _chunkHVX35M2Icjs.getCollectionVariables; exports.getCurrentMode = _chunkHVX35M2Icjs.getCurrentMode; exports.getDefaultMode = _chunkHVX35M2Icjs.getDefaultMode; exports.getTokenCollection = _chunkHVX35M2Icjs.getTokenCollection; exports.getTokenCssName = _chunkHVX35M2Icjs.getTokenCssName; exports.getTokenCssVariables = _chunkHVX35M2Icjs.getTokenCssVariables; exports.getTokenVariable = _chunkHVX35M2Icjs.getTokenVariable; exports.hexToRgba = _chunkA6QWKBJPcjs.hexToRgba; exports.importW3CTokens = _chunkHVX35M2Icjs.importW3CTokens; exports.isTokenAlias = _chunkHVX35M2Icjs.isTokenAlias; exports.isTokenInScope = _chunkHVX35M2Icjs.isTokenInScope; exports.isTokenScopeKnown = _chunkHVX35M2Icjs.isTokenScopeKnown; exports.literalTokenType = _chunkHVX35M2Icjs.literalTokenType; exports.moveTokenMode = _chunkHVX35M2Icjs.moveTokenMode; exports.normalizeTokenColor = _chunkA6QWKBJPcjs.normalizeTokenColor; exports.normalizeTokenName = _chunkHVX35M2Icjs.normalizeTokenName; exports.normalizeTokenScopes = _chunkHVX35M2Icjs.normalizeTokenScopes; exports.parseTokenState = _chunkHVX35M2Icjs.parseTokenState; exports.prepareTokenValue = _chunkHVX35M2Icjs.prepareTokenValue; exports.removeTokenMode = _chunkHVX35M2Icjs.removeTokenMode; exports.renameTokenCollection = _chunkHVX35M2Icjs.renameTokenCollection; exports.renameTokenMode = _chunkHVX35M2Icjs.renameTokenMode; exports.renameTokenVariable = _chunkHVX35M2Icjs.renameTokenVariable; exports.resolveToken = _chunkHVX35M2Icjs.resolveToken; exports.resolveTokenInMode = _chunkHVX35M2Icjs.resolveTokenInMode; exports.resolveTokenValue = _chunkHVX35M2Icjs.resolveTokenValue; exports.rgbaToHex = _chunkA6QWKBJPcjs.rgbaToHex; exports.setTokenValue = _chunkHVX35M2Icjs.setTokenValue; exports.tokenSlug = _chunkHVX35M2Icjs.tokenSlug; exports.updateTokenVariable = _chunkHVX35M2Icjs.updateTokenVariable;
120
+ exports.EMPTY_TOKEN_STATE = _chunkWI7QJA7Acjs.EMPTY_TOKEN_STATE; exports.TOKEN_SCOPES_BY_TYPE = _chunkWI7QJA7Acjs.TOKEN_SCOPES_BY_TYPE; exports.TOKEN_TYPES = _chunkWI7QJA7Acjs.TOKEN_TYPES; exports.TokenError = _chunkWI7QJA7Acjs.TokenError; exports.TokenStore = _chunkWI7QJA7Acjs.TokenStore; exports.W3C_TOKENS_EXTENSION = _chunkWI7QJA7Acjs.W3C_TOKENS_EXTENSION; exports.addTokenMode = _chunkWI7QJA7Acjs.addTokenMode; exports.checkTokenAlias = _chunkWI7QJA7Acjs.checkTokenAlias; exports.coerceTokenLiteral = _chunkWI7QJA7Acjs.coerceTokenLiteral; exports.createTokenCollection = _chunkWI7QJA7Acjs.createTokenCollection; exports.createTokenStore = _chunkWI7QJA7Acjs.createTokenStore; exports.createTokenVariable = _chunkWI7QJA7Acjs.createTokenVariable; exports.createTokensEditorDocument = _chunkWI7QJA7Acjs.createTokensEditorDocument; exports.cssString = _chunkWI7QJA7Acjs.cssString; exports.defaultTokenId = _chunkWI7QJA7Acjs.defaultTokenId; exports.defaultTokenValue = _chunkWI7QJA7Acjs.defaultTokenValue; exports.deleteTokenCollection = _chunkWI7QJA7Acjs.deleteTokenCollection; exports.deleteTokenVariables = _chunkWI7QJA7Acjs.deleteTokenVariables; exports.exportTokensCss = _chunkWI7QJA7Acjs.exportTokensCss; exports.exportW3CTokens = _chunkWI7QJA7Acjs.exportW3CTokens; exports.exportW3CTokensJson = _chunkWI7QJA7Acjs.exportW3CTokensJson; exports.findTokenCollection = _chunkWI7QJA7Acjs.findTokenCollection; exports.findTokenMode = _chunkWI7QJA7Acjs.findTokenMode; exports.findTokenVariable = _chunkWI7QJA7Acjs.findTokenVariable; exports.formatTokenCssValue = _chunkWI7QJA7Acjs.formatTokenCssValue; exports.formatTokenValue = _chunkWI7QJA7Acjs.formatTokenValue; exports.getCollectionVariables = _chunkWI7QJA7Acjs.getCollectionVariables; exports.getCurrentMode = _chunkWI7QJA7Acjs.getCurrentMode; exports.getDefaultMode = _chunkWI7QJA7Acjs.getDefaultMode; exports.getTokenCollection = _chunkWI7QJA7Acjs.getTokenCollection; exports.getTokenCssName = _chunkWI7QJA7Acjs.getTokenCssName; exports.getTokenCssVariables = _chunkWI7QJA7Acjs.getTokenCssVariables; exports.getTokenVariable = _chunkWI7QJA7Acjs.getTokenVariable; exports.hexToRgba = _chunkA6QWKBJPcjs.hexToRgba; exports.importW3CTokens = _chunkWI7QJA7Acjs.importW3CTokens; exports.isTokenAlias = _chunkWI7QJA7Acjs.isTokenAlias; exports.isTokenInScope = _chunkWI7QJA7Acjs.isTokenInScope; exports.isTokenScopeKnown = _chunkWI7QJA7Acjs.isTokenScopeKnown; exports.literalTokenType = _chunkWI7QJA7Acjs.literalTokenType; exports.moveTokenMode = _chunkWI7QJA7Acjs.moveTokenMode; exports.normalizeTokenColor = _chunkA6QWKBJPcjs.normalizeTokenColor; exports.normalizeTokenName = _chunkWI7QJA7Acjs.normalizeTokenName; exports.normalizeTokenScopes = _chunkWI7QJA7Acjs.normalizeTokenScopes; exports.parseTokenState = _chunkWI7QJA7Acjs.parseTokenState; exports.prepareTokenValue = _chunkWI7QJA7Acjs.prepareTokenValue; exports.removeTokenMode = _chunkWI7QJA7Acjs.removeTokenMode; exports.renameTokenCollection = _chunkWI7QJA7Acjs.renameTokenCollection; exports.renameTokenMode = _chunkWI7QJA7Acjs.renameTokenMode; exports.renameTokenVariable = _chunkWI7QJA7Acjs.renameTokenVariable; exports.resolveToken = _chunkWI7QJA7Acjs.resolveToken; exports.resolveTokenInMode = _chunkWI7QJA7Acjs.resolveTokenInMode; exports.resolveTokenValue = _chunkWI7QJA7Acjs.resolveTokenValue; exports.rgbaToHex = _chunkA6QWKBJPcjs.rgbaToHex; exports.setTokenValue = _chunkWI7QJA7Acjs.setTokenValue; exports.tokenSlug = _chunkWI7QJA7Acjs.tokenSlug; exports.updateTokenVariable = _chunkWI7QJA7Acjs.updateTokenVariable;
@@ -52,9 +52,8 @@ import {
52
52
  setTokenValue,
53
53
  tokenSlug,
54
54
  updateTokenVariable
55
- } from "../chunk-BCY22GBH.js";
56
- import "../chunk-GNV54DLO.js";
57
- import "../chunk-WHKNYFM2.js";
55
+ } from "../chunk-SDHZG5TF.js";
56
+ import "../chunk-NHLYK3AX.js";
58
57
  import "../chunk-HF5QZS7Z.js";
59
58
  import {
60
59
  hexToRgba,
@@ -560,8 +560,7 @@ require('../chunk-NIBFDFYW.cjs');
560
560
  require('../chunk-UWEQ55MY.cjs');
561
561
 
562
562
 
563
- var _chunk5H2C3QSFcjs = require('../chunk-5H2C3QSF.cjs');
564
- require('../chunk-L5OWG2NA.cjs');
563
+ var _chunkM4MIZPQIcjs = require('../chunk-M4MIZPQI.cjs');
565
564
  require('../chunk-2BSBFBOA.cjs');
566
565
 
567
566
 
@@ -18732,7 +18731,7 @@ function checkVectorDocument(document) {
18732
18731
  });
18733
18732
  }
18734
18733
  function createVectorEditorDocument(controller) {
18735
- return _chunk5H2C3QSFcjs.defineEditorDocument.call(void 0, {
18734
+ return _chunkM4MIZPQIcjs.defineEditorDocument.call(void 0, {
18736
18735
  kind: "vector",
18737
18736
  get: () => controller.toJSON(),
18738
18737
  load: (document, { history }) => {
@@ -560,8 +560,7 @@ import "../chunk-SIFAIGB3.js";
560
560
  import "../chunk-VDGBHYC7.js";
561
561
  import {
562
562
  defineEditorDocument
563
- } from "../chunk-GNV54DLO.js";
564
- import "../chunk-WHKNYFM2.js";
563
+ } from "../chunk-NHLYK3AX.js";
565
564
  import "../chunk-HF5QZS7Z.js";
566
565
  import {
567
566
  HistoryManager
@@ -147,8 +147,7 @@ var _chunkRUZQMYXHcjs = require('../chunk-RUZQMYXH.cjs');
147
147
  require('../chunk-WOFXZ3XU.cjs');
148
148
 
149
149
 
150
- var _chunk5H2C3QSFcjs = require('../chunk-5H2C3QSF.cjs');
151
- require('../chunk-L5OWG2NA.cjs');
150
+ var _chunkM4MIZPQIcjs = require('../chunk-M4MIZPQI.cjs');
152
151
  require('../chunk-2BSBFBOA.cjs');
153
152
 
154
153
 
@@ -4871,7 +4870,7 @@ function createVideoEffectsToolProvider(controller, options = {}) {
4871
4870
 
4872
4871
  // src/video-editor/editorDocument.ts
4873
4872
  function createVideoEditorDocument(controller) {
4874
- return _chunk5H2C3QSFcjs.defineEditorDocument.call(void 0, {
4873
+ return _chunkM4MIZPQIcjs.defineEditorDocument.call(void 0, {
4875
4874
  kind: "video",
4876
4875
  get: () => controller.getProject(),
4877
4876
  load: (document2, { history }) => {
@@ -147,8 +147,7 @@ import {
147
147
  import "../chunk-V2ZCJRDM.js";
148
148
  import {
149
149
  defineEditorDocument
150
- } from "../chunk-GNV54DLO.js";
151
- import "../chunk-WHKNYFM2.js";
150
+ } from "../chunk-NHLYK3AX.js";
152
151
  import "../chunk-HF5QZS7Z.js";
153
152
  import {
154
153
  HistoryManager
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixerate/editor",
3
- "version": "0.153.0",
3
+ "version": "0.155.0",
4
4
  "description": "UI-agnostic rich text and media editing core library",
5
5
  "author": "Pixerate",
6
6
  "license": "MIT",
@@ -130,6 +130,20 @@ the reason (for example a variant combination that already exists, or a cycle).
130
130
  | `rename_variant_property` | Rename property `name` to `newName` across a set; instances keep their variant. |
131
131
  | `rename_variant_value` | Rename `value` of `property` to `newValue` across a set; instances keep their variant. |
132
132
 
133
+ ### Save and open
134
+
135
+ The host may add the shared document tools (see `pixerate-agent-tools`). A canvas document is `{ nodes, edges, scenes }`: every node (`id`, `position`, `data`, `type`, `parentId`...) and edge without selection or measurement, plus the saved scenes.
136
+
137
+ | Tool | Use |
138
+ | --- | --- |
139
+ | `get_canvas_document` | Take a copy of the whole canvas as `{ kind, formatVersion, revision, document }` before a risky rewrite, or to hand it on. To read the canvas, use `get_editor_state`: it is smaller and says more. Refuses very large canvases. |
140
+ | `load_canvas_document` | Put back a copy from `get_canvas_document` (its `document`, or the whole result). Checked first: duplicate ids, edges to missing nodes and parents that do not exist are refused and nothing changes. One undo step (`undo_canvas` brings the previous canvas back). To add or change a few nodes use `canvas_add_node` / `canvas_update_node`. |
141
+ | `undo_canvas` | Undo the last canvas change (one tool call, command or user gesture such as a drag). Returns `undone` (the step's name) and whether more can be undone. Fails with "Nothing to undo." when there is nothing. |
142
+ | `redo_canvas` | Redo the last undone canvas change. |
143
+ | `save_canvas_document` | Save the canvas under a `name` in the host's storage (the same name replaces that copy). Returns the `key`. Only listed when the host has storage. Save when the user asks, not after every edit. |
144
+ | `list_saved_canvas_documents` | List saved canvases (`key`, `name`, `savedAt`), newest first. |
145
+ | `open_saved_canvas_document` | Replace the canvas with a saved one by `key`. One undo step. Ask before opening over changes the user has not saved. |
146
+
133
147
  ## Commands
134
148
 
135
149
  Run these through `run_command` / `run_commands`. Each takes `ids` (default: the selection) unless
@@ -96,30 +96,10 @@ batching.
96
96
 
97
97
  ### Smart objects
98
98
 
99
- 1. **Convert before repeated or uncertain changes**: `convert_to_smart_object` (one pixel layer, or
100
- several siblings that nest as a layer document). A converted pixel layer looks exactly the same
101
- and keeps its id; its filters become smart filters. From then on every transform and filter is
102
- re-rendered from the contents, so scaling down and back up, or rotating twelve times, loses
103
- nothing.
104
- 2. **Read it**: `get_smart_object` gives the contents (size, kind, instances), the placement
105
- (corners, warp, and scale / rotate in percent and degrees of the contents' own size) and the
106
- smart filters with their ids.
107
- 3. **Transform**: `set_smart_object_transform` sets the transform absolutely (scale 100 = the
108
- contents' own size, `x`, `y` = where its centre goes; or `corners`, `matrix`, and a `warp` in
109
- contents pixels, `null` to remove). `transform_layer`, `warp_layer`, `flip_layer` and
110
- `rotate_layer_90` also work on a smart object, relative to its current placement, and never
111
- degrade it. `offset_layer` moves it by whole pixels.
112
- 4. **Filter non-destructively**: `add_smart_filter` (`develop` or `blur`, each with its own
113
- `blend` and `opacity`; kinds can repeat), then `update_smart_filter`, `move_smart_filter`,
114
- `remove_smart_filter` and `set_smart_filters_enabled`. `set_smart_filter_mask` limits where the
115
- filters show; paint it with `paint_stroke` / `fill_pixels` `channel: "filter-mask"`.
116
- 5. **Contents**: `copy_smart_object` with `linked: true` shares the contents (edit once, both
117
- change), `linked: false` makes them independent. `edit_smart_object_contents` opens the
118
- contents as their own document: every tool then works inside them until
119
- `close_smart_object_contents` (`save: false` discards). `replace_smart_object_contents` swaps
120
- in a new image for every linked instance; `export_smart_object_contents` returns the file.
121
- 6. **Finish**: `rasterize_smart_object` only when the user wants plain pixels to paint on; the
122
- placement and filters are then gone.
99
+ Convert a pixel layer with `convert_to_smart_object` before repeated or uncertain transforms and
100
+ filters: from then on everything re-renders from the contents and nothing degrades. Read
101
+ [references/smart-objects.md](references/smart-objects.md) for the steps (reading, transforming,
102
+ smart filters, linked contents, rasterizing).
123
103
 
124
104
  ### Shapes and text
125
105
 
@@ -413,6 +393,18 @@ in the source frame at the document's bit depth, colour mode and profile. Read
413
393
  | `add_effect_layer` | Add a layer drawn by a generator, overlay or title effect at the document's size and bit depth (`values`, `time`, `name`, `aboveId` / `belowId`, `opacity`, `blend`). Returns the layer id. |
414
394
  | `apply_selection_as_mask` | Mask a layer with the current selection: pass `layerId` to mask an existing layer, or `kind` (plus optional `params`) to create a new masked layer in one step. `density` 0..1 and `feather` px soften the mask non-destructively. Returns `layerId`, kind, mask info and the selection summary. |
415
395
 
396
+ ### Save and open
397
+
398
+ The host may add the shared document tools (see `pixerate-agent-tools`). An image document is the saved state (layers, adjustments, crop, selection...) with layer pixels, masks and patterns as asset references; the source image stays the host's.
399
+
400
+ | Tool | Use |
401
+ | --- | --- |
402
+ | `get_image_document` | Take a copy of the whole image document as `{ kind, formatVersion, revision, document }` before a risky change, or to hand it on. Images in it are asset references (`pixerate-asset:...`), never pixel data, so it stays small. To look at the pixels use `render_preview` or `capture_view`. |
403
+ | `load_image_document` | Put back a copy from `get_image_document` in this session (its `document`, or the whole result). Checked first: a document whose assets are not loaded, or from a newer build, is refused and nothing changes. One undo step (`undo_image` brings the previous document back). To change part of the image use the layer and adjustment tools. |
404
+ | `save_image_document` | Save the image document and its assets under a `name` in the host's storage (the same name replaces that copy). Returns the `key`. Only listed when the host has storage. Save when the user asks, not after every edit. |
405
+ | `list_saved_image_documents` | List saved image documents (`key`, `name`, `savedAt`), newest first. |
406
+ | `open_saved_image_document` | Replace the image document with a saved one by `key`; its assets are read from storage first. Ask before opening over changes the user has not saved. |
407
+
416
408
  ## Pitfalls
417
409
 
418
410
  - Agent playback (if on) opens each write's panel, then traces `points`, drags boxes or visits the layers and sliders named; results are unchanged.
@@ -0,0 +1,28 @@
1
+ # Smart objects
2
+
3
+ How to work with smart objects in the image editor (see the main skill for the tool reference).
4
+
5
+ 1. **Convert before repeated or uncertain changes**: `convert_to_smart_object` (one pixel layer, or
6
+ several siblings that nest as a layer document). A converted pixel layer looks exactly the same
7
+ and keeps its id; its filters become smart filters. From then on every transform and filter is
8
+ re-rendered from the contents, so scaling down and back up, or rotating twelve times, loses
9
+ nothing.
10
+ 2. **Read it**: `get_smart_object` gives the contents (size, kind, instances), the placement
11
+ (corners, warp, and scale / rotate in percent and degrees of the contents' own size) and the
12
+ smart filters with their ids.
13
+ 3. **Transform**: `set_smart_object_transform` sets the transform absolutely (scale 100 = the
14
+ contents' own size, `x`, `y` = where its centre goes; or `corners`, `matrix`, and a `warp` in
15
+ contents pixels, `null` to remove). `transform_layer`, `warp_layer`, `flip_layer` and
16
+ `rotate_layer_90` also work on a smart object, relative to its current placement, and never
17
+ degrade it. `offset_layer` moves it by whole pixels.
18
+ 4. **Filter non-destructively**: `add_smart_filter` (`develop` or `blur`, each with its own
19
+ `blend` and `opacity`; kinds can repeat), then `update_smart_filter`, `move_smart_filter`,
20
+ `remove_smart_filter` and `set_smart_filters_enabled`. `set_smart_filter_mask` limits where the
21
+ filters show; paint it with `paint_stroke` / `fill_pixels` `channel: "filter-mask"`.
22
+ 5. **Contents**: `copy_smart_object` with `linked: true` shares the contents (edit once, both
23
+ change), `linked: false` makes them independent. `edit_smart_object_contents` opens the
24
+ contents as their own document: every tool then works inside them until
25
+ `close_smart_object_contents` (`save: false` discards). `replace_smart_object_contents` swaps
26
+ in a new image for every linked instance; `export_smart_object_contents` returns the file.
27
+ 6. **Finish**: `rasterize_smart_object` only when the user wants plain pixels to paint on; the
28
+ placement and filters are then gone.
@@ -85,7 +85,7 @@ is never part of a layer. Coordinates are document pixels, (0, 0) top-left, y do
85
85
  9. **Watercolour** is its own way of working (see "Wet media" below): wet the paper or not,
86
86
  lay washes light to dark, let them flow (`advance_wet_paint`), dry them (`dry_paint`), glaze.
87
87
  10. **Deliver**: `export_image` (PNG, or JPEG / WebP in a browser), `export_psd` for Photoshop,
88
- `save_document` to keep the painting with its strokes.
88
+ `save_paint_document` to keep the painting with its strokes (when the host has storage).
89
89
 
90
90
  ## Best practices
91
91
 
@@ -412,8 +412,20 @@ for the controls and presets.
412
412
  | `export_psd` | Export a PSD with every layer, the paper as a locked bottom layer, and the composite. Pigment and painterly modes are written as their nearest standard mode (`list_blend_modes` `psd`). Returns base64, size, `psb` and `warnings`. |
413
413
  | `export_time_lapse` | Repaint the painting from its recorded strokes and events as a time-lapse: `frames` (about how many), `fps`, `maxSide`, `wetStepsPerFrame` (frames while wet paint flows), `holdMs`. Returns a contact sheet image, the frame count, size, duration, a video project of the frames and the ffmpeg command that renders `timelapse.mp4`; `includeFrames` adds every frame as base64 PNG. Changes nothing. |
414
414
  | `export_high_res` | Repaint the painting from its strokes at `scale` 1..8 (brushes, grain, fills and wet events scaled): a PNG with real detail instead of upscaled pixels. Returns base64, size. Layers not painted with strokes come out empty. |
415
- | `save_document` | Get the document JSON (canvas, paper, layers as PNG data URLs, strokes unless `strokes: false`). |
416
- | `open_document` | Open a saved document JSON, replacing the painting and clearing the undo history. Returns the canvas, layers and any `problems`. |
415
+ | `save_document` | Deprecated, kept for one minor version: use `get_paint_document` or `save_paint_document`. Returns the document JSON with PNG data URLs inline (large). |
416
+ | `open_document` | Deprecated, kept for one minor version: use `load_paint_document` or `open_saved_paint_document`. Opens a document JSON from `save_document`, clearing the undo history. |
417
+
418
+ ### Save and open
419
+
420
+ The host may add the shared document tools (see `pixerate-agent-tools`). A paint document is the saved painting (canvas, paper, layers, thick paint, guides, swatches, mixing pad and recorded strokes) with every image as an asset reference; wet paint is saved dry.
421
+
422
+ | Tool | Use |
423
+ | --- | --- |
424
+ | `get_paint_document` | Take a copy of the whole painting as `{ kind, formatVersion, revision, document }` before a risky change, or to hand it on. Images in it are asset references (`pixerate-asset:...`), never pixel data, so it stays small. To look at the pixels use `render_preview` or `export_image`. |
425
+ | `load_paint_document` | Put back a copy from `get_paint_document` in this session (its `document`, or the whole result). Checked first: a document whose assets are not loaded, or from a newer build, is refused and nothing changes. Opening clears the undo history (`undoable: false`), so get a copy first if the user may want the current painting back. Refused while a stroke or a wet-paint step is in progress. To change part of the painting use the layer and painting tools. |
426
+ | `save_paint_document` | Save the painting and its assets under a `name` in the host's storage (the same name replaces that copy). Returns the `key`. Only listed when the host has storage. Save when the user asks, not after every edit. |
427
+ | `list_saved_paint_documents` | List saved paintings (`key`, `name`, `savedAt`), newest first. |
428
+ | `open_saved_paint_document` | Replace the painting with a saved one by `key`; its assets are read from storage first. Ask before opening over changes the user has not saved. |
417
429
 
418
430
  ## Pitfalls
419
431
 
@@ -458,5 +470,5 @@ for the controls and presets.
458
470
  - **Effects are pixels in replays.** Effect paper, effect layers, effect fills and baked light
459
471
  need the provider when they are made; replays and time-lapses do not repeat them. Add them
460
472
  after the painting, or keep the effect layer and redraw it.
461
- - **Recorded strokes are kept in saved documents**; `save_document` with `strokes: false` when
462
- only the pixels matter (smaller JSON).
473
+ - **Recorded strokes are kept in saved documents** (`save_paint_document`, `get_paint_document`),
474
+ so a painting can be replayed and repainted at a higher resolution.