@pixerate/editor-svelte 0.23.0 → 0.25.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.
- package/README.md +4 -2
- package/dist/ExportDocxButton.svelte +48 -0
- package/dist/ExportDocxButton.svelte.d.ts +13 -0
- package/dist/ExportDocxButton.svelte.d.ts.map +1 -0
- package/dist/StylesGallery.svelte +169 -0
- package/dist/StylesGallery.svelte.d.ts +27 -0
- package/dist/StylesGallery.svelte.d.ts.map +1 -0
- package/dist/canvas/AnimationTimeline.svelte +217 -0
- package/dist/canvas/AnimationTimeline.svelte.d.ts +20 -0
- package/dist/canvas/AnimationTimeline.svelte.d.ts.map +1 -0
- package/dist/canvas/CanvasComponentsPanel.svelte +73 -0
- package/dist/canvas/CanvasComponentsPanel.svelte.d.ts +13 -0
- package/dist/canvas/CanvasComponentsPanel.svelte.d.ts.map +1 -0
- package/dist/canvas/CanvasInstanceInspector.svelte +136 -0
- package/dist/canvas/CanvasInstanceInspector.svelte.d.ts +16 -0
- package/dist/canvas/CanvasInstanceInspector.svelte.d.ts.map +1 -0
- package/dist/canvas/TokenBindingPicker.svelte +93 -0
- package/dist/canvas/TokenBindingPicker.svelte.d.ts +20 -0
- package/dist/canvas/TokenBindingPicker.svelte.d.ts.map +1 -0
- package/dist/canvas/TokenModeSwitcher.svelte +55 -0
- package/dist/canvas/TokenModeSwitcher.svelte.d.ts +18 -0
- package/dist/canvas/TokenModeSwitcher.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasAnimation.svelte.d.ts +98 -0
- package/dist/canvas/createCanvasAnimation.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasAnimation.svelte.js +79 -0
- package/dist/canvas/createCanvasArrange.svelte.d.ts +4 -0
- package/dist/canvas/createCanvasArrange.svelte.d.ts.map +1 -1
- package/dist/canvas/createCanvasAutoLayout.svelte.d.ts.map +1 -1
- package/dist/canvas/createCanvasComponents.svelte.d.ts +68 -0
- package/dist/canvas/createCanvasComponents.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasComponents.svelte.js +31 -0
- package/dist/canvas/createCanvasTokens.svelte.d.ts +31 -0
- package/dist/canvas/createCanvasTokens.svelte.d.ts.map +1 -0
- package/dist/canvas/createCanvasTokens.svelte.js +50 -0
- package/dist/canvas/index.d.ts +12 -0
- package/dist/canvas/index.d.ts.map +1 -1
- package/dist/canvas/index.js +16 -0
- package/dist/docxExport.svelte.d.ts +26 -0
- package/dist/docxExport.svelte.d.ts.map +1 -0
- package/dist/docxExport.svelte.js +36 -0
- package/dist/fileImport.svelte.d.ts +8 -1
- package/dist/fileImport.svelte.d.ts.map +1 -1
- package/dist/fileImport.svelte.js +11 -1
- package/dist/generation/AssetMentionChips.svelte +130 -0
- package/dist/generation/AssetMentionChips.svelte.d.ts +21 -0
- package/dist/generation/AssetMentionChips.svelte.d.ts.map +1 -0
- package/dist/generation/GenerationHistory.svelte +161 -0
- package/dist/generation/GenerationHistory.svelte.d.ts +28 -0
- package/dist/generation/GenerationHistory.svelte.d.ts.map +1 -0
- package/dist/generation/index.d.ts +7 -0
- package/dist/generation/index.d.ts.map +1 -1
- package/dist/generation/index.js +3 -0
- package/dist/generation/records.svelte.d.ts +18 -0
- package/dist/generation/records.svelte.d.ts.map +1 -0
- package/dist/generation/records.svelte.js +66 -0
- package/dist/image-editor/ImageEditor.svelte +72 -1
- package/dist/image-editor/ImageEditor.svelte.d.ts.map +1 -1
- package/dist/image-editor/RefineEdgePanel.svelte +180 -0
- package/dist/image-editor/RefineEdgePanel.svelte.d.ts +13 -0
- package/dist/image-editor/RefineEdgePanel.svelte.d.ts.map +1 -0
- package/dist/image-editor/SelectionOptionsBar.svelte +135 -0
- package/dist/image-editor/SelectionOptionsBar.svelte.d.ts +15 -0
- package/dist/image-editor/SelectionOptionsBar.svelte.d.ts.map +1 -0
- package/dist/image-editor/index.d.ts +6 -0
- package/dist/image-editor/index.d.ts.map +1 -1
- package/dist/image-editor/index.js +2 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/paragraphStyles.svelte.d.ts +30 -0
- package/dist/paragraphStyles.svelte.d.ts.map +1 -0
- package/dist/paragraphStyles.svelte.js +44 -0
- package/dist/review/TrackedChangesList.svelte +67 -0
- package/dist/review/TrackedChangesList.svelte.d.ts +13 -0
- package/dist/review/TrackedChangesList.svelte.d.ts.map +1 -0
- package/dist/review/index.d.ts +3 -0
- package/dist/review/index.d.ts.map +1 -1
- package/dist/review/index.js +1 -0
- package/dist/review/review.svelte.d.ts +6 -0
- package/dist/review/review.svelte.d.ts.map +1 -1
- package/dist/review/review.svelte.js +3 -0
- package/dist/spreadsheet/FormulaBar.svelte +13 -4
- package/dist/spreadsheet/FormulaBar.svelte.d.ts.map +1 -1
- package/dist/spreadsheet/FormulaHints.svelte +7 -5
- package/dist/spreadsheet/FormulaHints.svelte.d.ts +3 -0
- package/dist/spreadsheet/FormulaHints.svelte.d.ts.map +1 -1
- package/dist/spreadsheet/NameManager.svelte +165 -0
- package/dist/spreadsheet/NameManager.svelte.d.ts +11 -0
- package/dist/spreadsheet/NameManager.svelte.d.ts.map +1 -0
- package/dist/spreadsheet/SheetTabs.svelte +161 -0
- package/dist/spreadsheet/SheetTabs.svelte.d.ts +10 -0
- package/dist/spreadsheet/SheetTabs.svelte.d.ts.map +1 -0
- package/dist/spreadsheet/SpreadsheetConditionalFormatPanel.svelte +184 -0
- package/dist/spreadsheet/SpreadsheetConditionalFormatPanel.svelte.d.ts +9 -0
- package/dist/spreadsheet/SpreadsheetConditionalFormatPanel.svelte.d.ts.map +1 -0
- package/dist/spreadsheet/SpreadsheetContextMenu.svelte +9 -4
- package/dist/spreadsheet/SpreadsheetContextMenu.svelte.d.ts +5 -1
- package/dist/spreadsheet/SpreadsheetContextMenu.svelte.d.ts.map +1 -1
- package/dist/spreadsheet/SpreadsheetDataValidationPanel.svelte +141 -0
- package/dist/spreadsheet/SpreadsheetDataValidationPanel.svelte.d.ts +9 -0
- package/dist/spreadsheet/SpreadsheetDataValidationPanel.svelte.d.ts.map +1 -0
- package/dist/spreadsheet/SpreadsheetEditor.svelte +273 -19
- package/dist/spreadsheet/SpreadsheetEditor.svelte.d.ts +8 -0
- package/dist/spreadsheet/SpreadsheetEditor.svelte.d.ts.map +1 -1
- package/dist/spreadsheet/SpreadsheetGroupRow.svelte +31 -3
- package/dist/spreadsheet/SpreadsheetGroupRow.svelte.d.ts +6 -0
- package/dist/spreadsheet/SpreadsheetGroupRow.svelte.d.ts.map +1 -1
- package/dist/spreadsheet/SpreadsheetValidationDialog.svelte +92 -0
- package/dist/spreadsheet/SpreadsheetValidationDialog.svelte.d.ts +9 -0
- package/dist/spreadsheet/SpreadsheetValidationDialog.svelte.d.ts.map +1 -0
- package/dist/spreadsheet/index.d.ts +10 -0
- package/dist/spreadsheet/index.d.ts.map +1 -1
- package/dist/spreadsheet/index.js +6 -0
- package/dist/spreadsheet/spreadsheet.svelte.d.ts +56 -3
- package/dist/spreadsheet/spreadsheet.svelte.d.ts.map +1 -1
- package/dist/spreadsheet/spreadsheet.svelte.js +105 -6
- package/dist/spreadsheet/viewport.svelte.d.ts +26 -0
- package/dist/spreadsheet/viewport.svelte.d.ts.map +1 -0
- package/dist/spreadsheet/viewport.svelte.js +93 -0
- package/dist/tables/InsertTableGrid.svelte +85 -0
- package/dist/tables/InsertTableGrid.svelte.d.ts +21 -0
- package/dist/tables/InsertTableGrid.svelte.d.ts.map +1 -0
- package/dist/tables/TableBubbleMenu.svelte +43 -0
- package/dist/tables/TableBubbleMenu.svelte.d.ts +18 -0
- package/dist/tables/TableBubbleMenu.svelte.d.ts.map +1 -0
- package/dist/tables/TableToolbar.svelte +81 -0
- package/dist/tables/TableToolbar.svelte.d.ts +19 -0
- package/dist/tables/TableToolbar.svelte.d.ts.map +1 -0
- package/dist/tables/index.d.ts +12 -0
- package/dist/tables/index.d.ts.map +1 -0
- package/dist/tables/index.js +4 -0
- package/dist/tables/tableMenu.svelte.d.ts +21 -0
- package/dist/tables/tableMenu.svelte.d.ts.map +1 -0
- package/dist/tables/tableMenu.svelte.js +27 -0
- package/dist/tokens/TokenSwatch.svelte +14 -0
- package/dist/tokens/TokenSwatch.svelte.d.ts +8 -0
- package/dist/tokens/TokenSwatch.svelte.d.ts.map +1 -0
- package/dist/tokens/TokensPanel.svelte +323 -0
- package/dist/tokens/TokensPanel.svelte.d.ts +14 -0
- package/dist/tokens/TokensPanel.svelte.d.ts.map +1 -0
- package/dist/tokens/createTokens.svelte.d.ts +31 -0
- package/dist/tokens/createTokens.svelte.d.ts.map +1 -0
- package/dist/tokens/createTokens.svelte.js +43 -0
- package/dist/tokens/index.d.ts +7 -0
- package/dist/tokens/index.d.ts.map +1 -0
- package/dist/tokens/index.js +3 -0
- package/package.json +10 -2
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { untrack } from 'svelte';
|
|
2
|
+
import { createCanvasComponentsController } from '@pixerate/editor/canvas';
|
|
3
|
+
/**
|
|
4
|
+
* Headless Svelte 5 rune for Figma-style components and instances on a SvelteFlow canvas.
|
|
5
|
+
* After node changes it records edits inside instances as overrides and rebuilds the
|
|
6
|
+
* instances of edited main components (keeping overrides). Its actions (`createComponent`,
|
|
7
|
+
* `createInstance`, `combineAsVariants`, `detachInstance`, `resetOverrides`, `pushOverrides`,
|
|
8
|
+
* `swapInstance`, `setInstanceProperties`, `restoreMainComponent`, …) are undoable steps with a
|
|
9
|
+
* `history`, and each has a `can…` check returning `true` or the reason it can't run. Call
|
|
10
|
+
* `destroy()` to stop the automatic sync.
|
|
11
|
+
*/
|
|
12
|
+
export function createCanvasComponents(options) {
|
|
13
|
+
const controller = createCanvasComponentsController(options);
|
|
14
|
+
let stop;
|
|
15
|
+
if (options.autoSync !== false) {
|
|
16
|
+
stop = $effect.root(() => {
|
|
17
|
+
$effect(() => {
|
|
18
|
+
options.getNodes();
|
|
19
|
+
untrack(() => controller.sync());
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
...controller,
|
|
25
|
+
/** Stops the automatic sync. */
|
|
26
|
+
destroy() {
|
|
27
|
+
stop?.();
|
|
28
|
+
stop = undefined;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type CanvasTokenOptions } from '@pixerate/editor/canvas';
|
|
2
|
+
import type { TokenModeContext, TokenState, TokenStore } from '@pixerate/editor/tokens';
|
|
3
|
+
import type { CanvasNode } from './types.js';
|
|
4
|
+
export interface CreateCanvasTokensOptions<TNode extends CanvasNode = CanvasNode> extends Omit<CanvasTokenOptions, 'modes'> {
|
|
5
|
+
store: TokenStore;
|
|
6
|
+
getNodes: () => TNode[];
|
|
7
|
+
setNodes: (nodes: TNode[]) => void;
|
|
8
|
+
/** Modes for nodes without an explicit mode up their tree, or a getter for reactive modes. */
|
|
9
|
+
modes?: TokenModeContext | (() => TokenModeContext | undefined);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Headless Svelte 5 rune keeping token-bound node properties resolved. Token edits, undo and
|
|
13
|
+
* redo re-resolve the nodes; deleting a variable detaches the nodes bound to it, keeping their
|
|
14
|
+
* values. Call `resolve()` after changing the nodes yourself (e.g. pasting bound nodes, or
|
|
15
|
+
* switching the root `modes`); `bind` and `setMode` resolve on their own.
|
|
16
|
+
*/
|
|
17
|
+
export declare function createCanvasTokens<TNode extends CanvasNode = CanvasNode>(options: CreateCanvasTokensOptions<TNode>): {
|
|
18
|
+
/** The token store's state (reactive). */
|
|
19
|
+
readonly state: TokenState;
|
|
20
|
+
/** Binds (or with `null` unbinds) a property of the nodes; throws `TokenError` when refused. */
|
|
21
|
+
bind(ids: Iterable<string>, propertyKey: string, variableId: string | null): void;
|
|
22
|
+
/** Sets (or with `null` clears) an explicit mode on frames / groups; descendants follow. */
|
|
23
|
+
setMode(ids: Iterable<string>, collectionId: string, modeId: string | null): void;
|
|
24
|
+
/** The modes a node is in (its own, inherited, then the root `modes`). */
|
|
25
|
+
modesOf(nodeId: string): Record<string, string>;
|
|
26
|
+
/** Re-resolves every bound property (after changing nodes or root modes). */
|
|
27
|
+
resolve: () => void;
|
|
28
|
+
destroy: () => void;
|
|
29
|
+
};
|
|
30
|
+
export type SvelteCanvasTokens = ReturnType<typeof createCanvasTokens>;
|
|
31
|
+
//# sourceMappingURL=createCanvasTokens.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCanvasTokens.svelte.d.ts","sourceRoot":"","sources":["../../src/canvas/createCanvasTokens.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAMN,KAAK,kBAAkB,EACvB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,yBAAyB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC1H,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,MAAM,KAAK,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC;IACnC,8FAA8F;IAC9F,KAAK,CAAC,EAAE,gBAAgB,GAAG,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC,CAAC;CAChE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,UAAU,GAAG,UAAU,EAAE,OAAO,EAAE,yBAAyB,CAAC,KAAK,CAAC;IAoBjH,0CAA0C;;IAI1C,gGAAgG;cACtF,QAAQ,CAAC,MAAM,CAAC,eAAe,MAAM,cAAc,MAAM,GAAG,IAAI;IAG1E,4FAA4F;iBAC/E,QAAQ,CAAC,MAAM,CAAC,gBAAgB,MAAM,UAAU,MAAM,GAAG,IAAI;IAG1E,0EAA0E;oBAC1D,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAK/C,6EAA6E;;;EAI9E;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { bindCanvasToken, detachTokenBindings, getEffectiveTokenModes, resolveCanvasTokens, setCanvasTokenMode } from '@pixerate/editor/canvas';
|
|
2
|
+
/**
|
|
3
|
+
* Headless Svelte 5 rune keeping token-bound node properties resolved. Token edits, undo and
|
|
4
|
+
* redo re-resolve the nodes; deleting a variable detaches the nodes bound to it, keeping their
|
|
5
|
+
* values. Call `resolve()` after changing the nodes yourself (e.g. pasting bound nodes, or
|
|
6
|
+
* switching the root `modes`); `bind` and `setMode` resolve on their own.
|
|
7
|
+
*/
|
|
8
|
+
export function createCanvasTokens(options) {
|
|
9
|
+
const { store } = options;
|
|
10
|
+
let state = $state.raw(store.getState());
|
|
11
|
+
const opts = () => ({
|
|
12
|
+
modes: typeof options.modes === 'function' ? options.modes() : options.modes,
|
|
13
|
+
properties: options.properties
|
|
14
|
+
});
|
|
15
|
+
const commit = (next) => {
|
|
16
|
+
if (next !== options.getNodes())
|
|
17
|
+
options.setNodes(next);
|
|
18
|
+
};
|
|
19
|
+
const resolve = () => commit(resolveCanvasTokens(options.getNodes(), store.getState(), opts()));
|
|
20
|
+
const unsubscribe = store.subscribe((event) => {
|
|
21
|
+
state = event.state;
|
|
22
|
+
let nodes = options.getNodes();
|
|
23
|
+
if (event.deletedVariableIds.length > 0)
|
|
24
|
+
nodes = detachTokenBindings(nodes, event.previous, event.deletedVariableIds, opts());
|
|
25
|
+
commit(resolveCanvasTokens(nodes, event.state, opts()));
|
|
26
|
+
});
|
|
27
|
+
return {
|
|
28
|
+
/** The token store's state (reactive). */
|
|
29
|
+
get state() {
|
|
30
|
+
return state;
|
|
31
|
+
},
|
|
32
|
+
/** Binds (or with `null` unbinds) a property of the nodes; throws `TokenError` when refused. */
|
|
33
|
+
bind(ids, propertyKey, variableId) {
|
|
34
|
+
commit(bindCanvasToken(options.getNodes(), ids, propertyKey, variableId, store.getState(), opts()));
|
|
35
|
+
},
|
|
36
|
+
/** Sets (or with `null` clears) an explicit mode on frames / groups; descendants follow. */
|
|
37
|
+
setMode(ids, collectionId, modeId) {
|
|
38
|
+
commit(setCanvasTokenMode(options.getNodes(), ids, collectionId, modeId, store.getState(), opts()));
|
|
39
|
+
},
|
|
40
|
+
/** The modes a node is in (its own, inherited, then the root `modes`). */
|
|
41
|
+
modesOf(nodeId) {
|
|
42
|
+
const nodes = options.getNodes();
|
|
43
|
+
const node = nodes.find((n) => n.id === nodeId);
|
|
44
|
+
return node ? getEffectiveTokenModes(node, nodes, store.getState(), opts()) : {};
|
|
45
|
+
},
|
|
46
|
+
/** Re-resolves every bound property (after changing nodes or root modes). */
|
|
47
|
+
resolve,
|
|
48
|
+
destroy: unsubscribe
|
|
49
|
+
};
|
|
50
|
+
}
|
package/dist/canvas/index.d.ts
CHANGED
|
@@ -22,7 +22,19 @@ export { measureBetween, measureToLine, measureSelection, measureLabel, isMeasur
|
|
|
22
22
|
export { alignNodes, distributeNodes, matchSize, reorderNodes, applyNodeUpdates, invertNodeUpdates, lockNodes, unlockNodes, toggleLockNodes, isLocked, getNodeSize, getNodeRect, getAbsolutePosition, readStyleSize, withStyleSize, computeSnapGuides, createGuideIndex, createNodeGuideIndex, snapNodeDrag, findConnectorSnap, nearestHandlePositions, handlePoint, positionToSide, sideToPosition, oppositePosition, CONNECTION_LINE_TYPES, CanvasScenesStore, createCanvasScenesStore, parseCanvasScenes, fitViewportToRect, fitViewportToNodes, matchArrangeShortcut, DEFAULT_ARRANGE_SHORTCUTS, type AlignEdge, type DistributeAxis, type DistributeMode, type SizeDimension, type ZOrderOperation, type CanvasNodeUpdate, type GuideLine, type GuideIndex, type SnapGuidesOptions, type SnapResult, type ConnectorSnap, type ConnectorSnapTarget, type CanvasConnectionLineType, type CanvasScene, type CanvasScenesState, type CanvasViewport, type CanvasArrangeAction, type ArrangeShortcutBinding } from '@pixerate/editor/canvas';
|
|
23
23
|
export { default as ShapeNode } from './ShapeNode.svelte';
|
|
24
24
|
export { combineShapeNodes, canCombineShapeNodes, applyShapeCombination, revertShapeCombination, shapeNodeToPolygon, isShapeNode, getNodeShape, SHAPE_DATA_KEY, SHAPE_NODE_TYPE, SHAPE_OPERATIONS, SHAPE_KINDS, isShapeDescription, shapeToPolygon, getShapeSvg, getShapeRenderData, parseSvgPath, flattenSvgPath, polygonToSvgPath, simplifyRing, polygonBoolean, unionPolygons, intersectPolygons, subtractPolygons, xorPolygons, dividePolygons, polygonArea, multiPolygonArea, multiPolygonBounds, ringSignedArea, pointInRings, pointInMultiPolygon, type ShapeOperation, type ShapeDescription, type ShapeKind, type ShapePaint, type ShapeSize, type ShapeRenderData, type RectShape, type EllipseShape, type RegularPolygonShape, type StarShape, type PathShape, type PathCommand, type FlattenOptions, type PolygonToPathOptions, type CombineShapeNodesOptions, type CombineShapeNodesResult, type CombineShapeNodesRefusal, type ShapeNodePolygonOptions, type MultiPolygon, type PolygonWithHoles, type PolygonRing, type PolygonFillRule, type PolygonOperand, type PolygonInput, type PolygonPiece, type PolygonBooleanOperation, type PolygonBooleanOptions } from '@pixerate/editor/canvas';
|
|
25
|
+
export { offsetShapeNodes, outlineShapeNodeStrokes, canOffsetShapeNodes, canOutlineShapeNodeStrokes, applyShapeReplacement, hasVisibleStroke, shapeToBezierPath, shapeNodeToBezierPath, pathBoolean, unitePaths, intersectPaths, subtractPaths, excludePaths, dividePaths, normalizeBezierPath, bezierPathArea, offsetPath, outlineStroke, strokeOutlineRings, dashContours, toBezierPath, bezierPathToSvg, transformBezierPath, bezierPathBounds, bezierPathSignedArea, bezierPathLength, bezierPathPointAtLength, pointInBezierPath, distanceToBezierPath, countPathSegments, type BezierCommand, type BezierPath, type BezierPathInput, type PathOperand, type PathOperandInput, type PathOpsOptions, type PathBooleanResult, type DividePathsResult, type StrokeJoin, type StrokeCap, type OutlineStrokeOptions, type OffsetPathOptions, type OffsetShapeNodesOptions, type OutlineShapeStrokesOptions, type ShapePathEditResult, type ShapePathEditRefusal, type ShapePathEditOperation } from '@pixerate/editor/canvas';
|
|
25
26
|
export { realClock, ManualClock, layoutBounds, canvasHeight, estimateCanvasHeight, blendLayout, connectedOnly, type Clock, type CanvasHeightOptions } from '@pixerate/editor/canvas';
|
|
26
27
|
export { layoutFrame, layoutAll, layoutUp, layoutUpMany, applyConstraints, getAutoLayout, getChildLayout, getLayoutSizing, getAutoLayoutGrid, getAutoLayoutInsertTarget, getFlowChildren, getLayoutParent, isAutoLayoutFrame, makeSizingCoherent, moveLayoutChild, mergeNodeUpdates, relayoutUpdates, resolvePadding, clampLayoutSize, createCanvasAutoLayoutController, AUTO_LAYOUT_DATA_KEY, CHILD_LAYOUT_DATA_KEY, type AutoLayout, type AutoLayoutChild, type AutoLayoutMode, type AutoLayoutSizing, type AutoLayoutSizingPair, type AutoLayoutSize, type AutoLayoutAlignMain, type AutoLayoutAlignCross, type AutoLayoutAlignContent, type AutoLayoutPadding, type AutoLayoutGrid, type AutoLayoutGridTrack, type AutoLayoutGridArea, type AutoLayoutGridCell, type AutoLayoutGridGeometry, type AutoLayoutCellAlign, type AutoLayoutConstraints, type AutoLayoutHorizontalConstraint, type AutoLayoutVerticalConstraint, type AutoLayoutMeasure, type AutoLayoutOptions, type AutoLayoutInsertTarget, type CanvasAutoLayoutController, type CanvasAutoLayoutControllerOptions } from '@pixerate/editor/canvas';
|
|
27
28
|
export { createCanvasAutoLayout, type CanvasAutoLayout, type CreateCanvasAutoLayoutOptions } from './createCanvasAutoLayout.svelte.js';
|
|
29
|
+
export { createCanvasTokens, type CreateCanvasTokensOptions, type SvelteCanvasTokens } from './createCanvasTokens.svelte.js';
|
|
30
|
+
export { default as TokenBindingPicker } from './TokenBindingPicker.svelte';
|
|
31
|
+
export { default as TokenModeSwitcher } from './TokenModeSwitcher.svelte';
|
|
32
|
+
export { bindCanvasToken, setCanvasTokenMode, resolveCanvasTokens, detachTokenBindings, pruneCanvasTokenModes, inspectNodeTokens, getNodeTokenBindings, getNodeTokenModes, getEffectiveTokenModes, getBindableTokenProperties, getCanvasTokenProperty, getTokenPropertyScope, getTokensForProperty, readNodeStyleProperty, writeNodeStyleProperty, CANVAS_TOKEN_PROPERTIES, TOKEN_BINDINGS_DATA_KEY, TOKEN_MODES_DATA_KEY, type CanvasTokenProperty, type CanvasTokenOptions, type CanvasTokenBindingInfo } from '@pixerate/editor/canvas';
|
|
33
|
+
export { createCanvasAnimation, type CreateCanvasAnimationOptions, type SvelteCanvasAnimation } from './createCanvasAnimation.svelte.js';
|
|
34
|
+
export { default as AnimationTimeline } from './AnimationTimeline.svelte';
|
|
35
|
+
export { createCanvasAnimationController, AnimationPlayer, createAnimationPlayer, AnimationEditError, ANIMATION_DATA_KEY, ANIMATION_TIME_EPSILON, ANIMATABLE_PROPERTIES, ANIMATION_EASING_PRESETS, ANIMATION_EASING_LABELS, CUBIC_BEZIER_PRESETS, MAX_KEYFRAME_REFS, CSS_ANIMATION_PROPERTIES, evaluateAnimation, evaluateTrack, evaluateEasing, applyAnimation, applyAnimationOverrides, interpolateAnimationValue, getAnimationDuration, wrapAnimationTime, cubicBezierAt, springAt, resolveEasing, parseCssEasing, easingToCss, easingLabel, easingFromInfluence, isAnimationEasing, mixColorsOklab, rgbToOklab, oklabToRgb, parseOklab, formatOklab, getNodeAnimation, getAnimationTrack, getAnimatedProperties, getAnimatableProperty, isNodeAnimated, withNodeAnimation, normalizeKeyframes, isAnimationKeyframe, clampAnimationValue, setKeyframe, addKeyframesAtTime, updateKeyframe, deleteKeyframes, setKeyframeEasing, setTrackEnabled, removeTrack, setMotionPath, moveKeyframes, scaleKeyframes, snapKeyframeDelta, snapTimeToFrame, getKeyframeTimes, copyKeyframes, pasteKeyframes, parseKeyframeClipboard, recordAnimationChanges, animateNode, getAnimatedValue, readAnimatableValue, sampleAnimationFrames, exportCssAnimation, toWebAnimations, playWebAnimations, getCssPropertyAnimations, isCssExportExact, getTimelineRows, getTimelineTicks, isKeyframeSelected, timeToX, xToTime, formatAnimationTime, type AnimatableProperty, type AnimationValue, type AnimationValueType, type AnimationKeyframe, type AnimationTrack, type AnimationMotionPath, type NodeAnimation, type AnimationEasing, type AnimationEasingPreset, type CubicBezierEasing, type SpringEasing, type AnimationLoopMode, type AnimationDocument, type AnimationOverrides, type AnimationFrame, type AnimationPlayerState, type AnimationPlayerOptions, type AnimationHistoryTarget, type AnimationKeyframeClipboard, type AnimationEditErrorCode, type KeyframeRef, type KeyframePatch, type KeyframeSnap, type KeyframeDragState, type AnimateNodeOptions, type CanvasAnimationController, type CanvasAnimationControllerOptions, type CanvasAnimationState, type CssAnimationExport, type CssExportOptions, type WebAnimationSpec, type TimelineRow, type TimelineKeyframe, type OklabColor } from '@pixerate/editor/canvas';
|
|
36
|
+
export { createCanvasComponents, type CanvasComponents, type CreateCanvasComponentsOptions } from './createCanvasComponents.svelte.js';
|
|
37
|
+
export { default as CanvasComponentsPanel } from './CanvasComponentsPanel.svelte';
|
|
38
|
+
export { default as CanvasInstanceInspector } from './CanvasInstanceInspector.svelte';
|
|
39
|
+
export { createCanvasComponentsController, createCanvasComponent, combineCanvasComponentsAsVariants, createCanvasInstance, detachCanvasInstance, resetCanvasInstanceOverrides, pushCanvasInstanceOverrides, swapCanvasInstance, setCanvasInstanceProperties, setCanvasComponentProperty, bindCanvasComponentProperty, restoreCanvasMainComponent, syncCanvasComponents, syncCanvasInstance, syncAllCanvasInstances, listCanvasComponents, inspectCanvasInstance, getInstanceStatus, getNodeOverrides, getComponentSourceId, getInstanceData, getCanvasComponentDragId, isCanvasComponent, isCanvasComponentSet, isCanvasInstance, wouldCreateComponentCycle, CANVAS_COMPONENT_DRAG_TYPE, type CanvasComponentsController, type CanvasComponentsControllerOptions, type CanvasComponentPropertyDef, type CanvasComponentPropertyField, type CanvasComponentResult, type CanvasComponentSyncOptions, type CanvasInstanceInfo, type CanvasComponentInfo, type CanvasComponentSetInfo } from '@pixerate/editor/canvas';
|
|
28
40
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/canvas/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/canvas/index.ts"],"names":[],"mappings":"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"}
|
package/dist/canvas/index.js
CHANGED
|
@@ -41,8 +41,24 @@ export { alignNodes, distributeNodes, matchSize, reorderNodes, applyNodeUpdates,
|
|
|
41
41
|
export { default as ShapeNode } from './ShapeNode.svelte';
|
|
42
42
|
// Shape nodes and boolean operations (Unite / Intersect / Subtract / Exclude / Divide)
|
|
43
43
|
export { combineShapeNodes, canCombineShapeNodes, applyShapeCombination, revertShapeCombination, shapeNodeToPolygon, isShapeNode, getNodeShape, SHAPE_DATA_KEY, SHAPE_NODE_TYPE, SHAPE_OPERATIONS, SHAPE_KINDS, isShapeDescription, shapeToPolygon, getShapeSvg, getShapeRenderData, parseSvgPath, flattenSvgPath, polygonToSvgPath, simplifyRing, polygonBoolean, unionPolygons, intersectPolygons, subtractPolygons, xorPolygons, dividePolygons, polygonArea, multiPolygonArea, multiPolygonBounds, ringSignedArea, pointInRings, pointInMultiPolygon } from '@pixerate/editor/canvas';
|
|
44
|
+
// Curve-preserving path operations, Offset Path and Outline Stroke
|
|
45
|
+
export { offsetShapeNodes, outlineShapeNodeStrokes, canOffsetShapeNodes, canOutlineShapeNodeStrokes, applyShapeReplacement, hasVisibleStroke, shapeToBezierPath, shapeNodeToBezierPath, pathBoolean, unitePaths, intersectPaths, subtractPaths, excludePaths, dividePaths, normalizeBezierPath, bezierPathArea, offsetPath, outlineStroke, strokeOutlineRings, dashContours, toBezierPath, bezierPathToSvg, transformBezierPath, bezierPathBounds, bezierPathSignedArea, bezierPathLength, bezierPathPointAtLength, pointInBezierPath, distanceToBezierPath, countPathSegments } from '@pixerate/editor/canvas';
|
|
44
46
|
// Clock and view helpers from core
|
|
45
47
|
export { realClock, ManualClock, layoutBounds, canvasHeight, estimateCanvasHeight, blendLayout, connectedOnly } from '@pixerate/editor/canvas';
|
|
46
48
|
// Auto layout (Figma-style stacks, wrap, grid, hug / fill / fixed) and constraints
|
|
47
49
|
export { layoutFrame, layoutAll, layoutUp, layoutUpMany, applyConstraints, getAutoLayout, getChildLayout, getLayoutSizing, getAutoLayoutGrid, getAutoLayoutInsertTarget, getFlowChildren, getLayoutParent, isAutoLayoutFrame, makeSizingCoherent, moveLayoutChild, mergeNodeUpdates, relayoutUpdates, resolvePadding, clampLayoutSize, createCanvasAutoLayoutController, AUTO_LAYOUT_DATA_KEY, CHILD_LAYOUT_DATA_KEY } from '@pixerate/editor/canvas';
|
|
48
50
|
export { createCanvasAutoLayout } from './createCanvasAutoLayout.svelte.js';
|
|
51
|
+
// Design tokens: bindings, per-frame modes and inspector controls
|
|
52
|
+
export { createCanvasTokens } from './createCanvasTokens.svelte.js';
|
|
53
|
+
export { default as TokenBindingPicker } from './TokenBindingPicker.svelte';
|
|
54
|
+
export { default as TokenModeSwitcher } from './TokenModeSwitcher.svelte';
|
|
55
|
+
export { bindCanvasToken, setCanvasTokenMode, resolveCanvasTokens, detachTokenBindings, pruneCanvasTokenModes, inspectNodeTokens, getNodeTokenBindings, getNodeTokenModes, getEffectiveTokenModes, getBindableTokenProperties, getCanvasTokenProperty, getTokenPropertyScope, getTokensForProperty, readNodeStyleProperty, writeNodeStyleProperty, CANVAS_TOKEN_PROPERTIES, TOKEN_BINDINGS_DATA_KEY, TOKEN_MODES_DATA_KEY } from '@pixerate/editor/canvas';
|
|
56
|
+
// Keyframe animation: playback, record mode, timeline and export
|
|
57
|
+
export { createCanvasAnimation } from './createCanvasAnimation.svelte.js';
|
|
58
|
+
export { default as AnimationTimeline } from './AnimationTimeline.svelte';
|
|
59
|
+
export { createCanvasAnimationController, AnimationPlayer, createAnimationPlayer, AnimationEditError, ANIMATION_DATA_KEY, ANIMATION_TIME_EPSILON, ANIMATABLE_PROPERTIES, ANIMATION_EASING_PRESETS, ANIMATION_EASING_LABELS, CUBIC_BEZIER_PRESETS, MAX_KEYFRAME_REFS, CSS_ANIMATION_PROPERTIES, evaluateAnimation, evaluateTrack, evaluateEasing, applyAnimation, applyAnimationOverrides, interpolateAnimationValue, getAnimationDuration, wrapAnimationTime, cubicBezierAt, springAt, resolveEasing, parseCssEasing, easingToCss, easingLabel, easingFromInfluence, isAnimationEasing, mixColorsOklab, rgbToOklab, oklabToRgb, parseOklab, formatOklab, getNodeAnimation, getAnimationTrack, getAnimatedProperties, getAnimatableProperty, isNodeAnimated, withNodeAnimation, normalizeKeyframes, isAnimationKeyframe, clampAnimationValue, setKeyframe, addKeyframesAtTime, updateKeyframe, deleteKeyframes, setKeyframeEasing, setTrackEnabled, removeTrack, setMotionPath, moveKeyframes, scaleKeyframes, snapKeyframeDelta, snapTimeToFrame, getKeyframeTimes, copyKeyframes, pasteKeyframes, parseKeyframeClipboard, recordAnimationChanges, animateNode, getAnimatedValue, readAnimatableValue, sampleAnimationFrames, exportCssAnimation, toWebAnimations, playWebAnimations, getCssPropertyAnimations, isCssExportExact, getTimelineRows, getTimelineTicks, isKeyframeSelected, timeToX, xToTime, formatAnimationTime } from '@pixerate/editor/canvas';
|
|
60
|
+
// Components and instances: rune, components panel and instance inspector
|
|
61
|
+
export { createCanvasComponents } from './createCanvasComponents.svelte.js';
|
|
62
|
+
export { default as CanvasComponentsPanel } from './CanvasComponentsPanel.svelte';
|
|
63
|
+
export { default as CanvasInstanceInspector } from './CanvasInstanceInspector.svelte';
|
|
64
|
+
export { createCanvasComponentsController, createCanvasComponent, combineCanvasComponentsAsVariants, createCanvasInstance, detachCanvasInstance, resetCanvasInstanceOverrides, pushCanvasInstanceOverrides, swapCanvasInstance, setCanvasInstanceProperties, setCanvasComponentProperty, bindCanvasComponentProperty, restoreCanvasMainComponent, syncCanvasComponents, syncCanvasInstance, syncAllCanvasInstances, listCanvasComponents, inspectCanvasInstance, getInstanceStatus, getNodeOverrides, getComponentSourceId, getInstanceData, getCanvasComponentDragId, isCanvasComponent, isCanvasComponentSet, isCanvasInstance, wouldCreateComponentCycle, CANVAS_COMPONENT_DRAG_TYPE } from '@pixerate/editor/canvas';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Editor } from "@tiptap/core";
|
|
2
|
+
import { type DocxExportControllerOptions, type DocxExportReport } from "@pixerate/editor/export";
|
|
3
|
+
/**
|
|
4
|
+
* "Export to Word": downloads the editor's document as a `.docx` with its
|
|
5
|
+
* comments (from the `Comments` store), tracked changes and paragraph styles,
|
|
6
|
+
* with reactive `isExporting` / `error` / `lastReport` state (`lastReport`
|
|
7
|
+
* lists anything the export had to leave out).
|
|
8
|
+
*
|
|
9
|
+
* `getEditor` is read on every export, so pass `() => editor` for a
|
|
10
|
+
* `bind:editor` value.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createDocxExport(getEditor: () => Editor | null | undefined, options?: DocxExportControllerOptions): {
|
|
13
|
+
readonly isExporting: boolean;
|
|
14
|
+
readonly error: Error | null;
|
|
15
|
+
readonly lastReport: DocxExportReport | null;
|
|
16
|
+
/** Exports and downloads the `.docx`; resolves with the report (or `null`). */
|
|
17
|
+
download: (fileName?: string) => Promise<DocxExportReport | null>;
|
|
18
|
+
/** Builds the `.docx` without downloading it. */
|
|
19
|
+
exportBlob: () => Promise<{
|
|
20
|
+
blob: Blob;
|
|
21
|
+
report: DocxExportReport;
|
|
22
|
+
} | null>;
|
|
23
|
+
setOptions: (next: DocxExportControllerOptions) => void;
|
|
24
|
+
};
|
|
25
|
+
export type DocxExportHandle = ReturnType<typeof createDocxExport>;
|
|
26
|
+
//# sourceMappingURL=docxExport.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docxExport.svelte.d.ts","sourceRoot":"","sources":["../src/docxExport.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAEL,KAAK,2BAA2B,EAChC,KAAK,gBAAgB,EAEtB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1C,OAAO,GAAE,2BAAgC;;;yBAkBrB,gBAAgB,GAAG,IAAI;IAGzC,+EAA+E;0BACzD,MAAM;IAC5B,iDAAiD;;;;;uBAE9B,2BAA2B;EAEjD;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { DocxExportController, } from "@pixerate/editor/export";
|
|
2
|
+
/**
|
|
3
|
+
* "Export to Word": downloads the editor's document as a `.docx` with its
|
|
4
|
+
* comments (from the `Comments` store), tracked changes and paragraph styles,
|
|
5
|
+
* with reactive `isExporting` / `error` / `lastReport` state (`lastReport`
|
|
6
|
+
* lists anything the export had to leave out).
|
|
7
|
+
*
|
|
8
|
+
* `getEditor` is read on every export, so pass `() => editor` for a
|
|
9
|
+
* `bind:editor` value.
|
|
10
|
+
*/
|
|
11
|
+
export function createDocxExport(getEditor, options = {}) {
|
|
12
|
+
const controller = new DocxExportController(() => {
|
|
13
|
+
const editor = getEditor();
|
|
14
|
+
return editor && !editor.isDestroyed ? editor : null;
|
|
15
|
+
}, options);
|
|
16
|
+
let state = $state(controller.getState());
|
|
17
|
+
controller.subscribe((next) => {
|
|
18
|
+
state = next;
|
|
19
|
+
});
|
|
20
|
+
return {
|
|
21
|
+
get isExporting() {
|
|
22
|
+
return state.isExporting;
|
|
23
|
+
},
|
|
24
|
+
get error() {
|
|
25
|
+
return state.error;
|
|
26
|
+
},
|
|
27
|
+
get lastReport() {
|
|
28
|
+
return state.lastReport;
|
|
29
|
+
},
|
|
30
|
+
/** Exports and downloads the `.docx`; resolves with the report (or `null`). */
|
|
31
|
+
download: (fileName) => controller.download(fileName),
|
|
32
|
+
/** Builds the `.docx` without downloading it. */
|
|
33
|
+
exportBlob: () => controller.exportBlob(),
|
|
34
|
+
setOptions: (next) => controller.setOptions(next),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Editor } from "@tiptap/core";
|
|
2
|
-
import { type FileImportControllerOptions } from "@pixerate/editor";
|
|
2
|
+
import { type FileImportControllerOptions, type ImportStructureSummary } from "@pixerate/editor";
|
|
3
3
|
/**
|
|
4
4
|
* Imports markdown, HTML, plain-text and RTF files (or anything registered
|
|
5
5
|
* with `registerImportAdapter` for the `document` target) into an editor,
|
|
@@ -13,6 +13,13 @@ export declare function createFileImport(getEditor: () => Editor | null | undefi
|
|
|
13
13
|
readonly isImporting: boolean;
|
|
14
14
|
readonly error: Error | null;
|
|
15
15
|
readonly lastOutcomes: import("@pixerate/editor").ImportOutcome<import("@pixerate/editor").DocumentImport>[];
|
|
16
|
+
/**
|
|
17
|
+
* Structures detected in the last import (headings, lists, tables,
|
|
18
|
+
* columns), or `null` when no adapter reported any (only structure-aware
|
|
19
|
+
* adapters such as PDF do). Turn PDF detection off with
|
|
20
|
+
* `setOptions({ adapterOptions: { pdf: { structure: false } } })`.
|
|
21
|
+
*/
|
|
22
|
+
readonly structureSummary: ImportStructureSummary | null;
|
|
16
23
|
/** Value for `<input type="file" accept={…}>`. */
|
|
17
24
|
readonly accept: string;
|
|
18
25
|
/** Opens the browser file picker and imports the chosen files at the selection. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fileImport.svelte.d.ts","sourceRoot":"","sources":["../src/fileImport.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,
|
|
1
|
+
{"version":3,"file":"fileImport.svelte.d.ts","sourceRoot":"","sources":["../src/fileImport.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAGL,KAAK,2BAA2B,EAEhC,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,EAC1C,OAAO,GAAE,2BAAgC;;;;IAsBvC;;;;;OAKG;+BACqB,sBAAsB,GAAG,IAAI;IAGrD,kDAAkD;;IAIlD,mFAAmF;;IAEnF,0FAA0F;;uBAEvE,2BAA2B;EAEjD;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FileImportController, } from "@pixerate/editor";
|
|
1
|
+
import { FileImportController, summarizeImportStructure, } from "@pixerate/editor";
|
|
2
2
|
/**
|
|
3
3
|
* Imports markdown, HTML, plain-text and RTF files (or anything registered
|
|
4
4
|
* with `registerImportAdapter` for the `document` target) into an editor,
|
|
@@ -14,6 +14,7 @@ export function createFileImport(getEditor, options = {}) {
|
|
|
14
14
|
return editor && !editor.isDestroyed ? editor : null;
|
|
15
15
|
}, options);
|
|
16
16
|
let state = $state(controller.getState());
|
|
17
|
+
let summary = $derived(summarizeImportStructure(state.lastOutcomes));
|
|
17
18
|
controller.subscribe((next) => {
|
|
18
19
|
state = next;
|
|
19
20
|
});
|
|
@@ -27,6 +28,15 @@ export function createFileImport(getEditor, options = {}) {
|
|
|
27
28
|
get lastOutcomes() {
|
|
28
29
|
return state.lastOutcomes;
|
|
29
30
|
},
|
|
31
|
+
/**
|
|
32
|
+
* Structures detected in the last import (headings, lists, tables,
|
|
33
|
+
* columns), or `null` when no adapter reported any (only structure-aware
|
|
34
|
+
* adapters such as PDF do). Turn PDF detection off with
|
|
35
|
+
* `setOptions({ adapterOptions: { pdf: { structure: false } } })`.
|
|
36
|
+
*/
|
|
37
|
+
get structureSummary() {
|
|
38
|
+
return summary;
|
|
39
|
+
},
|
|
30
40
|
/** Value for `<input type="file" accept={…}>`. */
|
|
31
41
|
get accept() {
|
|
32
42
|
return controller.accept;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import {
|
|
4
|
+
defaultAssetRoleOptions,
|
|
5
|
+
describeAssetMentions,
|
|
6
|
+
findTextMentions,
|
|
7
|
+
getAssetRoleOptions,
|
|
8
|
+
setMentionRoleInText,
|
|
9
|
+
type AssetInfo,
|
|
10
|
+
type AssetMentionChip,
|
|
11
|
+
type AssetRoleOption,
|
|
12
|
+
type ModelCapabilities
|
|
13
|
+
} from '@pixerate/editor/generation';
|
|
14
|
+
|
|
15
|
+
interface Props {
|
|
16
|
+
/** Prompt text containing `@asset` / `@asset:role` mentions. */
|
|
17
|
+
content: string;
|
|
18
|
+
/** Called with the text after a role is picked (`@fox` → `@fox:style_ref`). */
|
|
19
|
+
onchange: (next: string) => void;
|
|
20
|
+
/** Mentionable assets; mentions that match none (by id or label) are not shown. */
|
|
21
|
+
assets: readonly AssetInfo[];
|
|
22
|
+
/** The selected model: its roles are offered and mentions are checked against it. */
|
|
23
|
+
capabilities?: ModelCapabilities;
|
|
24
|
+
/** Role options (default: the model's roles, else the built-in roles). */
|
|
25
|
+
roles?: readonly AssetRoleOption[];
|
|
26
|
+
/** Custom chip content (default: the asset label). */
|
|
27
|
+
asset?: Snippet<[AssetMentionChip]>;
|
|
28
|
+
class?: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
let { content, onchange, assets, capabilities, roles, asset, class: className = '' }: Props = $props();
|
|
32
|
+
|
|
33
|
+
let open = $state<number | null>(null);
|
|
34
|
+
let rootEl = $state<HTMLDivElement | null>(null);
|
|
35
|
+
const chips = $derived(describeAssetMentions(findTextMentions(content), assets, capabilities));
|
|
36
|
+
const options = $derived(roles ?? (capabilities ? getAssetRoleOptions(capabilities) : defaultAssetRoleOptions()));
|
|
37
|
+
|
|
38
|
+
$effect(() => {
|
|
39
|
+
if (open === null) return;
|
|
40
|
+
const onPointer = (event: MouseEvent) => {
|
|
41
|
+
if (!rootEl?.contains(event.target as Node)) open = null;
|
|
42
|
+
};
|
|
43
|
+
document.addEventListener('mousedown', onPointer);
|
|
44
|
+
return () => document.removeEventListener('mousedown', onPointer);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
const pick = (chip: AssetMentionChip, role: string | null) => {
|
|
48
|
+
open = null;
|
|
49
|
+
if (chip.start === undefined) return;
|
|
50
|
+
onchange(setMentionRoleInText(content, chip.start, role));
|
|
51
|
+
};
|
|
52
|
+
const problemOf = (chip: AssetMentionChip) =>
|
|
53
|
+
chip.issues.find((issue) => issue.severity === 'error') ?? chip.issues.find((issue) => issue.severity === 'warning');
|
|
54
|
+
const onKey = (event: KeyboardEvent) => {
|
|
55
|
+
if (event.key === 'Escape') open = null;
|
|
56
|
+
};
|
|
57
|
+
</script>
|
|
58
|
+
|
|
59
|
+
<!-- Asset mentions as chips with role badges and a role picker popover. -->
|
|
60
|
+
{#if chips.length > 0}
|
|
61
|
+
<div bind:this={rootEl} class="flex flex-wrap gap-1.5 {className}" data-asset-mention-chips="">
|
|
62
|
+
{#each chips as chip (`${chip.start}-${chip.index}`)}
|
|
63
|
+
{@const problem = problemOf(chip)}
|
|
64
|
+
{@const isOpen = open === chip.index}
|
|
65
|
+
<span class="relative inline-flex" data-asset-chip={chip.asset.id}>
|
|
66
|
+
<button
|
|
67
|
+
type="button"
|
|
68
|
+
aria-haspopup="listbox"
|
|
69
|
+
aria-expanded={isOpen}
|
|
70
|
+
title={problem?.message}
|
|
71
|
+
data-issue={problem?.code}
|
|
72
|
+
onclick={() => (open = isOpen ? null : chip.index)}
|
|
73
|
+
onkeydown={onKey}
|
|
74
|
+
class="inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-xs {problem?.severity === 'error'
|
|
75
|
+
? 'border-red-500/60'
|
|
76
|
+
: problem
|
|
77
|
+
? 'border-amber-500/60'
|
|
78
|
+
: 'border-border'} bg-muted/40 hover:bg-muted"
|
|
79
|
+
>
|
|
80
|
+
<span>{#if asset}{@render asset(chip)}{:else}@{chip.asset.label ?? chip.handle}{/if}</span>
|
|
81
|
+
<span
|
|
82
|
+
class="rounded px-1 text-[10px] uppercase tracking-wide {chip.role ? 'bg-primary/15' : 'opacity-60'}"
|
|
83
|
+
data-role-badge={chip.role ?? ''}>{chip.roleLabel ?? 'No role'}</span
|
|
84
|
+
>
|
|
85
|
+
</button>
|
|
86
|
+
{#if isOpen}
|
|
87
|
+
<div
|
|
88
|
+
role="listbox"
|
|
89
|
+
tabindex="-1"
|
|
90
|
+
aria-label="Role for {chip.asset.label ?? chip.handle}"
|
|
91
|
+
class="absolute left-0 top-full z-50 mt-1 flex min-w-[12rem] flex-col rounded-md border border-border bg-background p-1 text-xs shadow-lg"
|
|
92
|
+
data-role-picker=""
|
|
93
|
+
onkeydown={onKey}
|
|
94
|
+
>
|
|
95
|
+
{#each options as option (option.role)}
|
|
96
|
+
<button
|
|
97
|
+
type="button"
|
|
98
|
+
role="option"
|
|
99
|
+
aria-selected={chip.role === option.role}
|
|
100
|
+
data-role-option={option.role}
|
|
101
|
+
title={option.description}
|
|
102
|
+
onclick={() => pick(chip, option.role)}
|
|
103
|
+
class="flex items-center justify-between gap-2 rounded px-2 py-1 text-left hover:bg-muted"
|
|
104
|
+
>
|
|
105
|
+
<span>{option.label}</span>{#if option.accepts?.length}<span class="text-[10px] opacity-60"
|
|
106
|
+
>{option.accepts.join(', ')}</span
|
|
107
|
+
>{/if}
|
|
108
|
+
</button>
|
|
109
|
+
{/each}
|
|
110
|
+
<button
|
|
111
|
+
type="button"
|
|
112
|
+
role="option"
|
|
113
|
+
aria-selected={!chip.role}
|
|
114
|
+
data-role-option=""
|
|
115
|
+
onclick={() => pick(chip, null)}
|
|
116
|
+
class="rounded px-2 py-1 text-left opacity-70 hover:bg-muted">No role</button
|
|
117
|
+
>
|
|
118
|
+
{#if chip.issues.length > 0}
|
|
119
|
+
<ul class="mt-1 border-t border-border px-2 pt-1 text-[10px]" data-chip-issues="">
|
|
120
|
+
{#each chip.issues as issue, i (i)}
|
|
121
|
+
<li class={issue.severity === 'error' ? 'text-red-500' : 'text-amber-500'}>{issue.message}</li>
|
|
122
|
+
{/each}
|
|
123
|
+
</ul>
|
|
124
|
+
{/if}
|
|
125
|
+
</div>
|
|
126
|
+
{/if}
|
|
127
|
+
</span>
|
|
128
|
+
{/each}
|
|
129
|
+
</div>
|
|
130
|
+
{/if}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
import { type AssetInfo, type AssetMentionChip, type AssetRoleOption, type ModelCapabilities } from '@pixerate/editor/generation';
|
|
3
|
+
interface Props {
|
|
4
|
+
/** Prompt text containing `@asset` / `@asset:role` mentions. */
|
|
5
|
+
content: string;
|
|
6
|
+
/** Called with the text after a role is picked (`@fox` → `@fox:style_ref`). */
|
|
7
|
+
onchange: (next: string) => void;
|
|
8
|
+
/** Mentionable assets; mentions that match none (by id or label) are not shown. */
|
|
9
|
+
assets: readonly AssetInfo[];
|
|
10
|
+
/** The selected model: its roles are offered and mentions are checked against it. */
|
|
11
|
+
capabilities?: ModelCapabilities;
|
|
12
|
+
/** Role options (default: the model's roles, else the built-in roles). */
|
|
13
|
+
roles?: readonly AssetRoleOption[];
|
|
14
|
+
/** Custom chip content (default: the asset label). */
|
|
15
|
+
asset?: Snippet<[AssetMentionChip]>;
|
|
16
|
+
class?: string;
|
|
17
|
+
}
|
|
18
|
+
declare const AssetMentionChips: import("svelte").Component<Props, {}, "">;
|
|
19
|
+
type AssetMentionChips = ReturnType<typeof AssetMentionChips>;
|
|
20
|
+
export default AssetMentionChips;
|
|
21
|
+
//# sourceMappingURL=AssetMentionChips.svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssetMentionChips.svelte.d.ts","sourceRoot":"","sources":["../../src/generation/AssetMentionChips.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAMH,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAGrC,UAAU,KAAK;IACb,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,mFAAmF;IACnF,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAC7B,qFAAqF;IACrF,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACnC,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyEH,QAAA,MAAM,iBAAiB,2CAAwC,CAAC;AAChE,KAAK,iBAAiB,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC9D,eAAe,iBAAiB,CAAC"}
|