@varianta/sdk 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"react.esm.js","sources":["../src/react/Customizer.tsx","../src/react/useCustomizer.ts"],"sourcesContent":["/**\n * React wrapper for Customizer Editor\n * @packageDocumentation\n */\n\nimport {\n useRef,\n useEffect,\n useImperativeHandle,\n forwardRef,\n type CSSProperties,\n} from 'react';\nimport { initCustomizer } from '../vanilla';\nimport type {\n CustomizerOptions,\n CustomizerInstance,\n DesignJSON,\n FinalizeResult,\n CustomizerError,\n} from '../types';\n\n/**\n * Props for the Customizer React component\n */\nexport interface CustomizerProps {\n /**\n * Template ID to load. Required unless productId is provided.\n */\n templateId?: string;\n\n /**\n * Product ID to load (fetches all views/templates for the product).\n * Alternative to templateId. Exactly one of templateId or productId must be provided.\n */\n productId?: string;\n\n /**\n * API base URL for fetching templates and finalizing designs\n * @default 'https://api.varianta.io'\n */\n apiUrl?: string;\n\n /**\n * Visual theme\n * @default 'light'\n */\n theme?: 'light' | 'dark';\n\n /**\n * Editor mode\n * @default 'edit'\n */\n mode?: 'edit' | 'preview';\n\n /**\n * Enable debug mode with additional logging\n * @default false\n */\n debug?: boolean;\n\n /**\n * Custom CSS class name\n */\n className?: string;\n\n /**\n * Custom inline styles\n */\n style?: CSSProperties;\n\n /**\n * Initial design data to load\n */\n initialDesign?: DesignJSON;\n\n /**\n * Called when the editor is ready\n */\n onReady?: () => void;\n\n /**\n * Called when the design changes\n */\n onChange?: (design: DesignJSON) => void;\n\n /**\n * Called when a layer is selected\n */\n onLayerSelect?: (layerId: string | null) => void;\n\n /**\n * Called when a layer is added\n */\n onLayerAdd?: (layerId: string) => void;\n\n /**\n * Called when a layer is removed\n */\n onLayerRemove?: (layerId: string) => void;\n\n /**\n * Called when a layer is updated\n */\n onLayerUpdate?: (layerId: string) => void;\n\n /**\n * Called when an error occurs\n */\n onError?: (error: CustomizerError) => void;\n\n /**\n * Called when finalization is complete\n */\n onFinalize?: (result: FinalizeResult) => void;\n\n /**\n * Called when the active view changes (only relevant when using productId)\n */\n onViewChange?: (viewName: string) => void;\n\n /**\n * Show the Close button in the toolbar\n * @default true\n */\n showCloseButton?: boolean;\n\n /**\n * Show the Save Customization button in the toolbar.\n * When false, the button never appears even when the design is dirty.\n * @default true\n */\n showSaveButton?: boolean;\n\n /**\n * Called when the Close button is clicked\n */\n onClose?: () => void;\n\n /**\n * Called when the Save button is clicked and finalization completes successfully\n */\n onSave?: (result: FinalizeResult) => void;\n}\n\n/**\n * Handle type exposed via ref\n */\nexport interface CustomizerHandle extends CustomizerInstance {}\n\n/**\n * Customizer React Component\n *\n * @example\n * ```tsx\n * import { Customizer, CustomizerHandle } from '@varianta/sdk/react';\n * import { useRef } from 'react';\n *\n * function App() {\n * const customizerRef = useRef<CustomizerHandle>(null);\n *\n * const handleFinalize = async () => {\n * if (customizerRef.current) {\n * const result = await customizerRef.current.finalize();\n * console.log('Finalized:', result);\n * }\n * };\n *\n * return (\n * <div style={{ width: '100vw', height: '100vh' }}>\n * <Customizer\n * ref={customizerRef}\n * templateId=\"tshirt-001\"\n * theme=\"light\"\n * onChange={(design) => console.log('Design changed:', design)}\n * onReady={() => console.log('Editor ready!')}\n * />\n * <button onClick={handleFinalize}>Finalize Design</button>\n * </div>\n * );\n * }\n * ```\n */\nexport const Customizer = forwardRef<CustomizerHandle, CustomizerProps>(\n (props, ref) => {\n const {\n templateId,\n productId,\n apiUrl,\n theme = 'light',\n mode = 'edit',\n debug = false,\n className,\n style,\n initialDesign,\n showCloseButton,\n showSaveButton,\n onReady,\n onChange,\n onLayerSelect,\n onLayerAdd,\n onLayerRemove,\n onLayerUpdate,\n onError,\n onFinalize,\n onViewChange,\n onClose,\n onSave,\n } = props;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const instanceRef = useRef<CustomizerInstance | null>(null);\n\n // Store latest callbacks in a ref to avoid stale closures\n const callbacksRef = useRef({\n onReady,\n onChange,\n onLayerSelect,\n onLayerAdd,\n onLayerRemove,\n onLayerUpdate,\n onError,\n onFinalize,\n onViewChange,\n onClose,\n onSave,\n });\n\n // Update callbacks ref whenever they change\n useEffect(() => {\n callbacksRef.current = {\n onReady,\n onChange,\n onLayerSelect,\n onLayerAdd,\n onLayerRemove,\n onLayerUpdate,\n onError,\n onFinalize,\n onViewChange,\n onClose,\n onSave,\n };\n }, [onReady, onChange, onLayerSelect, onLayerAdd, onLayerRemove, onLayerUpdate, onError, onFinalize, onViewChange, onClose, onSave]);\n\n // Initialize the editor\n useEffect(() => {\n if (!containerRef.current) return;\n\n const options: CustomizerOptions = {\n templateId,\n productId,\n apiUrl,\n theme,\n mode,\n debug,\n initialDesign,\n showCloseButton,\n showSaveButton,\n // Use callback refs to always get latest callbacks\n onReady: () => callbacksRef.current.onReady?.(),\n onChange: (design) => callbacksRef.current.onChange?.(design),\n onLayerSelect: (layerId) => callbacksRef.current.onLayerSelect?.(layerId),\n onLayerAdd: (layerId) => callbacksRef.current.onLayerAdd?.(layerId),\n onLayerRemove: (layerId) => callbacksRef.current.onLayerRemove?.(layerId),\n onLayerUpdate: (layerId) => callbacksRef.current.onLayerUpdate?.(layerId),\n onError: (error) => callbacksRef.current.onError?.(error),\n onFinalize: (result) => callbacksRef.current.onFinalize?.(result),\n onViewChange: (viewName) => callbacksRef.current.onViewChange?.(viewName),\n onClose: () => callbacksRef.current.onClose?.(),\n onSave: (result) => callbacksRef.current.onSave?.(result),\n };\n\n try {\n const instance = initCustomizer(containerRef.current, options);\n instanceRef.current = instance;\n } catch (error) {\n console.error('[Customizer React] Failed to initialize:', error);\n callbacksRef.current.onError?.({\n code: 'INIT_ERROR',\n message: error instanceof Error ? error.message : 'Unknown error',\n details: error,\n });\n }\n\n // Cleanup\n return () => {\n if (instanceRef.current) {\n instanceRef.current.destroy();\n instanceRef.current = null;\n }\n };\n }, [templateId, productId, apiUrl, debug, initialDesign, showCloseButton, showSaveButton]); // Only re-initialize on structural changes\n\n // Update theme when it changes\n useEffect(() => {\n if (instanceRef.current) {\n instanceRef.current.setTheme(theme);\n }\n }, [theme]);\n\n // Update mode when it changes\n useEffect(() => {\n if (instanceRef.current) {\n instanceRef.current.setMode(mode);\n }\n }, [mode]);\n\n // Expose methods via ref\n useImperativeHandle(\n ref,\n () => {\n // Return API that always uses current instanceRef\n return {\n getDesign: () => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n return instanceRef.current.getDesign();\n },\n setDesign: (design: DesignJSON) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.setDesign(design);\n },\n undo: () => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.undo();\n },\n redo: () => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.redo();\n },\n canUndo: () => {\n if (!instanceRef.current) return false;\n return instanceRef.current.canUndo();\n },\n canRedo: () => {\n if (!instanceRef.current) return false;\n return instanceRef.current.canRedo();\n },\n finalize: async () => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n return instanceRef.current.finalize();\n },\n addTextLayer: (text?: string) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.addTextLayer(text);\n },\n addImageLayer: async (url: string) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n return instanceRef.current.addImageLayer(url);\n },\n removeLayer: (layerId: string) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.removeLayer(layerId);\n },\n selectLayer: (layerId: string | null) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.selectLayer(layerId);\n },\n getSelectedLayerId: () => {\n if (!instanceRef.current) return null;\n return instanceRef.current.getSelectedLayerId();\n },\n getActiveView: () => {\n if (!instanceRef.current) return null;\n return instanceRef.current.getActiveView();\n },\n getViews: () => {\n if (!instanceRef.current) return [];\n return instanceRef.current.getViews();\n },\n setActiveView: (viewName: string) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.setActiveView(viewName);\n },\n setTheme: (newTheme: 'light' | 'dark') => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.setTheme(newTheme);\n },\n setMode: (newMode: 'edit' | 'preview') => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.setMode(newMode);\n },\n destroy: () => {\n if (!instanceRef.current) return;\n instanceRef.current.destroy();\n instanceRef.current = null;\n },\n getElement: () => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n return instanceRef.current.getElement();\n },\n };\n },\n [] // Empty deps is OK - we always read from instanceRef.current\n );\n\n return (\n <div\n ref={containerRef}\n className={className}\n style={{\n width: '100%',\n height: '100%',\n ...style,\n }}\n />\n );\n }\n);\n\nCustomizer.displayName = 'Customizer';\n","/**\n * React hook for controlling the customizer editor\n * @packageDocumentation\n */\n\nimport { useRef, useCallback, useState, useEffect } from 'react';\nimport type { CustomizerHandle } from './Customizer';\nimport type { DesignJSON, FinalizeResult } from '../types';\n\n/**\n * Options for the useCustomizer hook\n */\nexport interface UseCustomizerOptions {\n /**\n * Auto-save design to localStorage\n */\n autoSave?: boolean;\n\n /**\n * localStorage key for auto-save\n * @default 'customizer-design'\n */\n autoSaveKey?: string;\n\n /**\n * Debounce time for auto-save in ms\n * @default 1000\n */\n autoSaveDebounce?: number;\n}\n\n/**\n * Return type for useCustomizer hook\n */\nexport interface UseCustomizerReturn {\n /**\n * Ref to attach to the Customizer component\n */\n customizerRef: React.RefObject<CustomizerHandle | null>;\n\n /**\n * Current design state\n */\n design: DesignJSON | null;\n\n /**\n * Whether undo is available\n */\n canUndo: boolean;\n\n /**\n * Whether redo is available\n */\n canRedo: boolean;\n\n /**\n * Selected layer ID\n */\n selectedLayerId: string | null;\n\n /**\n * Whether finalization is in progress\n */\n isFinalizing: boolean;\n\n /**\n * Finalization result\n */\n finalizeResult: FinalizeResult | null;\n\n /**\n * Get the current design\n */\n getDesign: () => DesignJSON | null;\n\n /**\n * Set a new design\n */\n setDesign: (design: DesignJSON) => void;\n\n /**\n * Undo the last action\n */\n undo: () => void;\n\n /**\n * Redo the last undone action\n */\n redo: () => void;\n\n /**\n * Finalize the design\n */\n finalize: () => Promise<FinalizeResult | null>;\n\n /**\n * Add a text layer\n */\n addTextLayer: (text?: string) => void;\n\n /**\n * Add an image layer\n */\n addImageLayer: (url: string) => Promise<void>;\n\n /**\n * Remove a layer\n */\n removeLayer: (layerId: string) => void;\n\n /**\n * Select a layer\n */\n selectLayer: (layerId: string | null) => void;\n}\n\n/**\n * React hook for controlling the customizer editor\n *\n * @example\n * ```tsx\n * import { Customizer } from '@varianta/sdk/react';\n * import { useCustomizer } from '@varianta/sdk/react';\n *\n * function App() {\n * const {\n * customizerRef,\n * design,\n * canUndo,\n * canRedo,\n * undo,\n * redo,\n * finalize,\n * isFinalizing,\n * } = useCustomizer({ autoSave: true });\n *\n * return (\n * <>\n * <Customizer\n * ref={customizerRef}\n * templateId=\"tshirt-001\"\n * onChange={(d) => console.log('Changed:', d)}\n * />\n * <button onClick={undo} disabled={!canUndo}>Undo</button>\n * <button onClick={redo} disabled={!canRedo}>Redo</button>\n * <button onClick={finalize} disabled={isFinalizing}>\n * {isFinalizing ? 'Finalizing...' : 'Finalize'}\n * </button>\n * </>\n * );\n * }\n * ```\n */\nexport function useCustomizer(\n options: UseCustomizerOptions = {}\n): UseCustomizerReturn {\n const {\n autoSave = false,\n autoSaveKey = 'customizer-design',\n autoSaveDebounce = 1000,\n } = options;\n\n const customizerRef = useRef<CustomizerHandle>(null);\n const [design, setDesign] = useState<DesignJSON | null>(null);\n const [canUndo, setCanUndo] = useState(false);\n const [canRedo, setCanRedo] = useState(false);\n const [selectedLayerId, setSelectedLayerId] = useState<string | null>(null);\n const [isFinalizing, setIsFinalizing] = useState(false);\n const [finalizeResult, setFinalizeResult] = useState<FinalizeResult | null>(\n null\n );\n\n const autoSaveTimeoutRef = useRef<NodeJS.Timeout | undefined>(undefined);\n\n // Auto-save to localStorage\n useEffect(() => {\n if (!autoSave || !design) return;\n\n // Clear existing timeout\n if (autoSaveTimeoutRef.current) {\n clearTimeout(autoSaveTimeoutRef.current);\n }\n\n // Set new timeout\n autoSaveTimeoutRef.current = setTimeout(() => {\n try {\n localStorage.setItem(autoSaveKey, JSON.stringify(design));\n } catch (error) {\n console.error('[useCustomizer] Auto-save failed:', error);\n }\n }, autoSaveDebounce);\n\n return () => {\n if (autoSaveTimeoutRef.current) {\n clearTimeout(autoSaveTimeoutRef.current);\n }\n };\n }, [design, autoSave, autoSaveKey, autoSaveDebounce]);\n\n const getDesign = useCallback(() => {\n if (!customizerRef.current) return null;\n try {\n return customizerRef.current.getDesign();\n } catch (error) {\n console.error('[useCustomizer] getDesign failed:', error);\n return null;\n }\n }, []);\n\n const setDesignCallback = useCallback((newDesign: DesignJSON) => {\n if (!customizerRef.current) return;\n try {\n customizerRef.current.setDesign(newDesign);\n setDesign(newDesign);\n } catch (error) {\n console.error('[useCustomizer] setDesign failed:', error);\n }\n }, []);\n\n const undo = useCallback(() => {\n if (!customizerRef.current) return;\n try {\n customizerRef.current.undo();\n setCanUndo(customizerRef.current.canUndo());\n setCanRedo(customizerRef.current.canRedo());\n } catch (error) {\n console.error('[useCustomizer] undo failed:', error);\n }\n }, []);\n\n const redo = useCallback(() => {\n if (!customizerRef.current) return;\n try {\n customizerRef.current.redo();\n setCanUndo(customizerRef.current.canUndo());\n setCanRedo(customizerRef.current.canRedo());\n } catch (error) {\n console.error('[useCustomizer] redo failed:', error);\n }\n }, []);\n\n const finalize = useCallback(async () => {\n if (!customizerRef.current || isFinalizing) return null;\n\n setIsFinalizing(true);\n try {\n const result = await customizerRef.current.finalize();\n setFinalizeResult(result);\n return result;\n } catch (error) {\n console.error('[useCustomizer] finalize failed:', error);\n return null;\n } finally {\n setIsFinalizing(false);\n }\n }, [isFinalizing]);\n\n const addTextLayer = useCallback((text?: string) => {\n if (!customizerRef.current) return;\n try {\n customizerRef.current.addTextLayer(text);\n } catch (error) {\n console.error('[useCustomizer] addTextLayer failed:', error);\n }\n }, []);\n\n const addImageLayer = useCallback(async (url: string) => {\n if (!customizerRef.current) return;\n try {\n await customizerRef.current.addImageLayer(url);\n } catch (error) {\n console.error('[useCustomizer] addImageLayer failed:', error);\n }\n }, []);\n\n const removeLayer = useCallback((layerId: string) => {\n if (!customizerRef.current) return;\n try {\n customizerRef.current.removeLayer(layerId);\n } catch (error) {\n console.error('[useCustomizer] removeLayer failed:', error);\n }\n }, []);\n\n const selectLayer = useCallback((layerId: string | null) => {\n if (!customizerRef.current) return;\n try {\n customizerRef.current.selectLayer(layerId);\n setSelectedLayerId(layerId);\n } catch (error) {\n console.error('[useCustomizer] selectLayer failed:', error);\n }\n }, []);\n\n return {\n customizerRef,\n design,\n canUndo,\n canRedo,\n selectedLayerId,\n isFinalizing,\n finalizeResult,\n getDesign,\n setDesign: setDesignCallback,\n undo,\n redo,\n finalize,\n addTextLayer,\n addImageLayer,\n removeLayer,\n selectLayer,\n };\n}\n"],"names":["Customizer","forwardRef","props","ref","templateId","productId","apiUrl","theme","mode","debug","className","style","initialDesign","showCloseButton","showSaveButton","onReady","onChange","onLayerSelect","onLayerAdd","onLayerRemove","onLayerUpdate","onError","onFinalize","onViewChange","onClose","onSave","containerRef","useRef","instanceRef","callbacksRef","useEffect","options","design","layerId","error","result","viewName","instance","initCustomizer","useImperativeHandle","text","url","newTheme","newMode","jsx","useCustomizer","autoSave","autoSaveKey","autoSaveDebounce","customizerRef","setDesign","useState","canUndo","setCanUndo","canRedo","setCanRedo","selectedLayerId","setSelectedLayerId","isFinalizing","setIsFinalizing","finalizeResult","setFinalizeResult","autoSaveTimeoutRef","getDesign","useCallback","setDesignCallback","newDesign","undo","redo","finalize","addTextLayer","addImageLayer","removeLayer","selectLayer"],"mappings":"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"}
1
+ {"version":3,"file":"react.esm.js","sources":["../src/react/Customizer.tsx","../src/react/useCustomizer.ts"],"sourcesContent":["/**\n * React wrapper for Customizer Editor\n * @packageDocumentation\n */\n\nimport {\n useRef,\n useEffect,\n useImperativeHandle,\n forwardRef,\n type CSSProperties,\n} from 'react';\nimport { initCustomizer } from '../vanilla';\nimport type {\n CustomizerOptions,\n CustomizerInstance,\n DesignJSON,\n FinalizeResult,\n CustomizerError,\n} from '../types';\n\n/**\n * Props for the Customizer React component\n */\nexport interface CustomizerProps {\n /**\n * Template ID to load. Required unless productId is provided.\n */\n templateId?: string;\n\n /**\n * Product ID to load (fetches all views/templates for the product).\n * Alternative to templateId. Exactly one of templateId or productId must be provided.\n */\n productId?: string;\n\n /**\n * API base URL for fetching templates and finalizing designs\n * @default 'https://api.varianta.io'\n */\n apiUrl?: string;\n\n /**\n * Visual theme\n * @default 'light'\n */\n theme?: 'light' | 'dark';\n\n /**\n * Editor mode\n * @default 'edit'\n */\n mode?: 'edit' | 'preview';\n\n /**\n * Enable debug mode with additional logging\n * @default false\n */\n debug?: boolean;\n\n /**\n * Custom CSS class name\n */\n className?: string;\n\n /**\n * Custom inline styles\n */\n style?: CSSProperties;\n\n /**\n * Initial design data to load\n */\n initialDesign?: DesignJSON;\n\n /**\n * Called when the editor is ready\n */\n onReady?: () => void;\n\n /**\n * Called when the design changes\n */\n onChange?: (design: DesignJSON) => void;\n\n /**\n * Called when a layer is selected\n */\n onLayerSelect?: (layerId: string | null) => void;\n\n /**\n * Called when a layer is added\n */\n onLayerAdd?: (layerId: string) => void;\n\n /**\n * Called when a layer is removed\n */\n onLayerRemove?: (layerId: string) => void;\n\n /**\n * Called when a layer is updated\n */\n onLayerUpdate?: (layerId: string) => void;\n\n /**\n * Called when an error occurs\n */\n onError?: (error: CustomizerError) => void;\n\n /**\n * Called when finalization is complete\n */\n onFinalize?: (result: FinalizeResult) => void;\n\n /**\n * Called when the active view changes (only relevant when using productId)\n */\n onViewChange?: (viewName: string) => void;\n\n /**\n * Show the Close button in the toolbar\n * @default true\n */\n showCloseButton?: boolean;\n\n /**\n * Show the Save Customization button in the toolbar.\n * When false, the button never appears even when the design is dirty.\n * @default true\n */\n showSaveButton?: boolean;\n\n /**\n * Called when the Close button is clicked\n */\n onClose?: () => void;\n\n /**\n * Called when the Save button is clicked and finalization completes successfully\n */\n onSave?: (result: FinalizeResult) => void;\n}\n\n/**\n * Handle type exposed via ref\n */\nexport type CustomizerHandle = CustomizerInstance;\n\n/**\n * Customizer React Component\n *\n * @example\n * ```tsx\n * import { Customizer, CustomizerHandle } from '@varianta/sdk/react';\n * import { useRef } from 'react';\n *\n * function App() {\n * const customizerRef = useRef<CustomizerHandle>(null);\n *\n * const handleFinalize = async () => {\n * if (customizerRef.current) {\n * const result = await customizerRef.current.finalize();\n * console.log('Finalized:', result);\n * }\n * };\n *\n * return (\n * <div style={{ width: '100vw', height: '100vh' }}>\n * <Customizer\n * ref={customizerRef}\n * templateId=\"tshirt-001\"\n * theme=\"light\"\n * onChange={(design) => console.log('Design changed:', design)}\n * onReady={() => console.log('Editor ready!')}\n * />\n * <button onClick={handleFinalize}>Finalize Design</button>\n * </div>\n * );\n * }\n * ```\n */\nexport const Customizer = forwardRef<CustomizerHandle, CustomizerProps>(\n (props, ref) => {\n const {\n templateId,\n productId,\n apiUrl,\n theme = 'light',\n mode = 'edit',\n debug = false,\n className,\n style,\n initialDesign,\n showCloseButton,\n showSaveButton,\n onReady,\n onChange,\n onLayerSelect,\n onLayerAdd,\n onLayerRemove,\n onLayerUpdate,\n onError,\n onFinalize,\n onViewChange,\n onClose,\n onSave,\n } = props;\n\n const containerRef = useRef<HTMLDivElement>(null);\n const instanceRef = useRef<CustomizerInstance | null>(null);\n\n // Store latest callbacks in a ref to avoid stale closures\n const callbacksRef = useRef({\n onReady,\n onChange,\n onLayerSelect,\n onLayerAdd,\n onLayerRemove,\n onLayerUpdate,\n onError,\n onFinalize,\n onViewChange,\n onClose,\n onSave,\n });\n\n // Update callbacks ref whenever they change\n useEffect(() => {\n callbacksRef.current = {\n onReady,\n onChange,\n onLayerSelect,\n onLayerAdd,\n onLayerRemove,\n onLayerUpdate,\n onError,\n onFinalize,\n onViewChange,\n onClose,\n onSave,\n };\n }, [onReady, onChange, onLayerSelect, onLayerAdd, onLayerRemove, onLayerUpdate, onError, onFinalize, onViewChange, onClose, onSave]);\n\n // Initialize the editor\n useEffect(() => {\n if (!containerRef.current) return;\n\n const options: CustomizerOptions = {\n templateId,\n productId,\n apiUrl,\n theme,\n mode,\n debug,\n initialDesign,\n showCloseButton,\n showSaveButton,\n // Use callback refs to always get latest callbacks\n onReady: () => callbacksRef.current.onReady?.(),\n onChange: (design) => callbacksRef.current.onChange?.(design),\n onLayerSelect: (layerId) => callbacksRef.current.onLayerSelect?.(layerId),\n onLayerAdd: (layerId) => callbacksRef.current.onLayerAdd?.(layerId),\n onLayerRemove: (layerId) => callbacksRef.current.onLayerRemove?.(layerId),\n onLayerUpdate: (layerId) => callbacksRef.current.onLayerUpdate?.(layerId),\n onError: (error) => callbacksRef.current.onError?.(error),\n onFinalize: (result) => callbacksRef.current.onFinalize?.(result),\n onViewChange: (viewName) => callbacksRef.current.onViewChange?.(viewName),\n onClose: () => callbacksRef.current.onClose?.(),\n onSave: (result) => callbacksRef.current.onSave?.(result),\n };\n\n try {\n const instance = initCustomizer(containerRef.current, options);\n instanceRef.current = instance;\n } catch (error) {\n console.error('[Customizer React] Failed to initialize:', error);\n callbacksRef.current.onError?.({\n code: 'INIT_ERROR',\n message: error instanceof Error ? error.message : 'Unknown error',\n details: error,\n });\n }\n\n // Cleanup\n return () => {\n if (instanceRef.current) {\n instanceRef.current.destroy();\n instanceRef.current = null;\n }\n };\n }, [templateId, productId, apiUrl, debug, initialDesign, showCloseButton, showSaveButton]); // Only re-initialize on structural changes\n\n // Update theme when it changes\n useEffect(() => {\n if (instanceRef.current) {\n instanceRef.current.setTheme(theme);\n }\n }, [theme]);\n\n // Update mode when it changes\n useEffect(() => {\n if (instanceRef.current) {\n instanceRef.current.setMode(mode);\n }\n }, [mode]);\n\n // Expose methods via ref\n useImperativeHandle(\n ref,\n () => {\n // Return API that always uses current instanceRef\n return {\n getDesign: () => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n return instanceRef.current.getDesign();\n },\n setDesign: (design: DesignJSON) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.setDesign(design);\n },\n undo: () => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.undo();\n },\n redo: () => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.redo();\n },\n canUndo: () => {\n if (!instanceRef.current) return false;\n return instanceRef.current.canUndo();\n },\n canRedo: () => {\n if (!instanceRef.current) return false;\n return instanceRef.current.canRedo();\n },\n finalize: async () => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n return instanceRef.current.finalize();\n },\n waitForResult: async (designIds: string[], waitOptions?: {\n pollInterval?: number;\n maxPolls?: number;\n signal?: AbortSignal;\n }) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n return instanceRef.current.waitForResult(designIds, waitOptions);\n },\n addTextLayer: (text?: string) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.addTextLayer(text);\n },\n addImageLayer: async (url: string) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n return instanceRef.current.addImageLayer(url);\n },\n removeLayer: (layerId: string) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.removeLayer(layerId);\n },\n selectLayer: (layerId: string | null) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.selectLayer(layerId);\n },\n getSelectedLayerId: () => {\n if (!instanceRef.current) return null;\n return instanceRef.current.getSelectedLayerId();\n },\n getActiveView: () => {\n if (!instanceRef.current) return null;\n return instanceRef.current.getActiveView();\n },\n getViews: () => {\n if (!instanceRef.current) return [];\n return instanceRef.current.getViews();\n },\n setActiveView: (viewName: string) => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.setActiveView(viewName);\n },\n setTheme: (newTheme: 'light' | 'dark') => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.setTheme(newTheme);\n },\n setMode: (newMode: 'edit' | 'preview') => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n instanceRef.current.setMode(newMode);\n },\n destroy: () => {\n if (!instanceRef.current) return;\n instanceRef.current.destroy();\n instanceRef.current = null;\n },\n getElement: () => {\n if (!instanceRef.current) {\n throw new Error('Editor not initialized');\n }\n return instanceRef.current.getElement();\n },\n };\n },\n [] // Empty deps is OK - we always read from instanceRef.current\n );\n\n return (\n <div\n ref={containerRef}\n className={className}\n style={{\n width: '100%',\n height: '100%',\n ...style,\n }}\n />\n );\n }\n);\n\nCustomizer.displayName = 'Customizer';\n","/**\n * React hook for controlling the customizer editor\n * @packageDocumentation\n */\n\nimport { useRef, useCallback, useState, useEffect } from 'react';\nimport type { CustomizerHandle } from './Customizer';\nimport type { DesignJSON, FinalizeResult, RenderStatusResult } from '../types';\n\n/**\n * Options for the useCustomizer hook\n */\nexport interface UseCustomizerOptions {\n /**\n * Auto-save design to localStorage\n */\n autoSave?: boolean;\n\n /**\n * localStorage key for auto-save\n * @default 'customizer-design'\n */\n autoSaveKey?: string;\n\n /**\n * Debounce time for auto-save in ms\n * @default 1000\n */\n autoSaveDebounce?: number;\n}\n\n/**\n * Return type for useCustomizer hook\n */\nexport interface UseCustomizerReturn {\n /**\n * Ref to attach to the Customizer component\n */\n customizerRef: React.RefObject<CustomizerHandle | null>;\n\n /**\n * Current design state\n */\n design: DesignJSON | null;\n\n /**\n * Whether undo is available\n */\n canUndo: boolean;\n\n /**\n * Whether redo is available\n */\n canRedo: boolean;\n\n /**\n * Selected layer ID\n */\n selectedLayerId: string | null;\n\n /**\n * Whether finalization (API submission) is in progress\n */\n isFinalizing: boolean;\n\n /**\n * Whether the background render is in progress (after finalize returned)\n */\n isRendering: boolean;\n\n /**\n * Finalization result (from API submission)\n */\n finalizeResult: FinalizeResult | null;\n\n /**\n * Render result (from polling after finalize)\n */\n renderResult: RenderStatusResult | null;\n\n /**\n * Poll for render completion after finalize\n */\n waitForResult: (designIds: string[], options?: {\n pollInterval?: number;\n maxPolls?: number;\n signal?: AbortSignal;\n }) => Promise<RenderStatusResult | null>;\n\n /**\n * Get the current design\n */\n getDesign: () => DesignJSON | null;\n\n /**\n * Set a new design\n */\n setDesign: (design: DesignJSON) => void;\n\n /**\n * Undo the last action\n */\n undo: () => void;\n\n /**\n * Redo the last undone action\n */\n redo: () => void;\n\n /**\n * Finalize the design\n */\n finalize: () => Promise<FinalizeResult | null>;\n\n /**\n * Add a text layer\n */\n addTextLayer: (text?: string) => void;\n\n /**\n * Add an image layer\n */\n addImageLayer: (url: string) => Promise<void>;\n\n /**\n * Remove a layer\n */\n removeLayer: (layerId: string) => void;\n\n /**\n * Select a layer\n */\n selectLayer: (layerId: string | null) => void;\n}\n\n/**\n * React hook for controlling the customizer editor\n *\n * @example\n * ```tsx\n * import { Customizer } from '@varianta/sdk/react';\n * import { useCustomizer } from '@varianta/sdk/react';\n *\n * function App() {\n * const {\n * customizerRef,\n * design,\n * canUndo,\n * canRedo,\n * undo,\n * redo,\n * finalize,\n * isFinalizing,\n * } = useCustomizer({ autoSave: true });\n *\n * return (\n * <>\n * <Customizer\n * ref={customizerRef}\n * templateId=\"tshirt-001\"\n * onChange={(d) => console.log('Changed:', d)}\n * />\n * <button onClick={undo} disabled={!canUndo}>Undo</button>\n * <button onClick={redo} disabled={!canRedo}>Redo</button>\n * <button onClick={finalize} disabled={isFinalizing}>\n * {isFinalizing ? 'Finalizing...' : 'Finalize'}\n * </button>\n * </>\n * );\n * }\n * ```\n */\nexport function useCustomizer(\n options: UseCustomizerOptions = {}\n): UseCustomizerReturn {\n const {\n autoSave = false,\n autoSaveKey = 'customizer-design',\n autoSaveDebounce = 1000,\n } = options;\n\n const customizerRef = useRef<CustomizerHandle>(null);\n const [design, setDesign] = useState<DesignJSON | null>(null);\n const [canUndo, setCanUndo] = useState(false);\n const [canRedo, setCanRedo] = useState(false);\n const [selectedLayerId, setSelectedLayerId] = useState<string | null>(null);\n const [isFinalizing, setIsFinalizing] = useState(false);\n const [isRendering, setIsRendering] = useState(false);\n const [finalizeResult, setFinalizeResult] = useState<FinalizeResult | null>(\n null\n );\n const [renderResult, setRenderResult] = useState<RenderStatusResult | null>(null);\n\n const autoSaveTimeoutRef = useRef<NodeJS.Timeout | undefined>(undefined);\n\n // Auto-save to localStorage\n useEffect(() => {\n if (!autoSave || !design) return;\n\n // Clear existing timeout\n if (autoSaveTimeoutRef.current) {\n clearTimeout(autoSaveTimeoutRef.current);\n }\n\n // Set new timeout\n autoSaveTimeoutRef.current = setTimeout(() => {\n try {\n localStorage.setItem(autoSaveKey, JSON.stringify(design));\n } catch (error) {\n console.error('[useCustomizer] Auto-save failed:', error);\n }\n }, autoSaveDebounce);\n\n return () => {\n if (autoSaveTimeoutRef.current) {\n clearTimeout(autoSaveTimeoutRef.current);\n }\n };\n }, [design, autoSave, autoSaveKey, autoSaveDebounce]);\n\n const getDesign = useCallback(() => {\n if (!customizerRef.current) return null;\n try {\n return customizerRef.current.getDesign();\n } catch (error) {\n console.error('[useCustomizer] getDesign failed:', error);\n return null;\n }\n }, []);\n\n const setDesignCallback = useCallback((newDesign: DesignJSON) => {\n if (!customizerRef.current) return;\n try {\n customizerRef.current.setDesign(newDesign);\n setDesign(newDesign);\n } catch (error) {\n console.error('[useCustomizer] setDesign failed:', error);\n }\n }, []);\n\n const undo = useCallback(() => {\n if (!customizerRef.current) return;\n try {\n customizerRef.current.undo();\n setCanUndo(customizerRef.current.canUndo());\n setCanRedo(customizerRef.current.canRedo());\n } catch (error) {\n console.error('[useCustomizer] undo failed:', error);\n }\n }, []);\n\n const redo = useCallback(() => {\n if (!customizerRef.current) return;\n try {\n customizerRef.current.redo();\n setCanUndo(customizerRef.current.canUndo());\n setCanRedo(customizerRef.current.canRedo());\n } catch (error) {\n console.error('[useCustomizer] redo failed:', error);\n }\n }, []);\n\n const finalize = useCallback(async () => {\n if (!customizerRef.current || isFinalizing) return null;\n\n setIsFinalizing(true);\n try {\n const result = await customizerRef.current.finalize();\n setFinalizeResult(result);\n return result;\n } catch (error) {\n console.error('[useCustomizer] finalize failed:', error);\n return null;\n } finally {\n setIsFinalizing(false);\n }\n }, [isFinalizing]);\n\n const waitForResult = useCallback(async (\n designIds: string[],\n waitOptions?: { pollInterval?: number; maxPolls?: number; signal?: AbortSignal },\n ): Promise<RenderStatusResult | null> => {\n if (!customizerRef.current || isRendering) return null;\n\n setIsRendering(true);\n try {\n const result = await customizerRef.current.waitForResult(designIds, waitOptions);\n setRenderResult(result);\n return result;\n } catch (error) {\n console.error('[useCustomizer] waitForResult failed:', error);\n return null;\n } finally {\n setIsRendering(false);\n }\n }, [isRendering]);\n\n const addTextLayer = useCallback((text?: string) => {\n if (!customizerRef.current) return;\n try {\n customizerRef.current.addTextLayer(text);\n } catch (error) {\n console.error('[useCustomizer] addTextLayer failed:', error);\n }\n }, []);\n\n const addImageLayer = useCallback(async (url: string) => {\n if (!customizerRef.current) return;\n try {\n await customizerRef.current.addImageLayer(url);\n } catch (error) {\n console.error('[useCustomizer] addImageLayer failed:', error);\n }\n }, []);\n\n const removeLayer = useCallback((layerId: string) => {\n if (!customizerRef.current) return;\n try {\n customizerRef.current.removeLayer(layerId);\n } catch (error) {\n console.error('[useCustomizer] removeLayer failed:', error);\n }\n }, []);\n\n const selectLayer = useCallback((layerId: string | null) => {\n if (!customizerRef.current) return;\n try {\n customizerRef.current.selectLayer(layerId);\n setSelectedLayerId(layerId);\n } catch (error) {\n console.error('[useCustomizer] selectLayer failed:', error);\n }\n }, []);\n\n return {\n customizerRef,\n design,\n canUndo,\n canRedo,\n selectedLayerId,\n isFinalizing,\n isRendering,\n finalizeResult,\n renderResult,\n getDesign,\n setDesign: setDesignCallback,\n undo,\n redo,\n finalize,\n waitForResult,\n addTextLayer,\n addImageLayer,\n removeLayer,\n selectLayer,\n };\n}\n"],"names":["Customizer","forwardRef","props","ref","templateId","productId","apiUrl","theme","mode","debug","className","style","initialDesign","showCloseButton","showSaveButton","onReady","onChange","onLayerSelect","onLayerAdd","onLayerRemove","onLayerUpdate","onError","onFinalize","onViewChange","onClose","onSave","containerRef","useRef","instanceRef","callbacksRef","useEffect","options","design","layerId","error","result","viewName","instance","initCustomizer","useImperativeHandle","designIds","waitOptions","text","url","newTheme","newMode","jsx","useCustomizer","autoSave","autoSaveKey","autoSaveDebounce","customizerRef","setDesign","useState","canUndo","setCanUndo","canRedo","setCanRedo","selectedLayerId","setSelectedLayerId","isFinalizing","setIsFinalizing","isRendering","setIsRendering","finalizeResult","setFinalizeResult","renderResult","setRenderResult","autoSaveTimeoutRef","getDesign","useCallback","setDesignCallback","newDesign","undo","redo","finalize","waitForResult","addTextLayer","addImageLayer","removeLayer","selectLayer"],"mappings":"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"}
@@ -108,8 +108,7 @@ export interface CustomizerProps {
108
108
  /**
109
109
  * Handle type exposed via ref
110
110
  */
111
- export interface CustomizerHandle extends CustomizerInstance {
112
- }
111
+ export type CustomizerHandle = CustomizerInstance;
113
112
  /**
114
113
  * Customizer React Component
115
114
  *
@@ -143,5 +142,5 @@ export interface CustomizerHandle extends CustomizerInstance {
143
142
  * }
144
143
  * ```
145
144
  */
146
- export declare const Customizer: import("react").ForwardRefExoticComponent<CustomizerProps & import("react").RefAttributes<CustomizerHandle>>;
145
+ export declare const Customizer: import("react").ForwardRefExoticComponent<CustomizerProps & import("react").RefAttributes<CustomizerInstance>>;
147
146
  //# sourceMappingURL=Customizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Customizer.d.ts","sourceRoot":"","sources":["../../../src/react/Customizer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAEV,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC;IAE3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAEjD;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAE3C;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;CAAG;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,UAAU,8GA2PtB,CAAC"}
1
+ {"version":3,"file":"Customizer.d.ts","sourceRoot":"","sources":["../../../src/react/Customizer.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAEV,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC;IAE3B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAEjD;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAE3C;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,UAAU,gHAqQtB,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * @packageDocumentation
4
4
  */
5
5
  import type { CustomizerHandle } from './Customizer';
6
- import type { DesignJSON, FinalizeResult } from '../types';
6
+ import type { DesignJSON, FinalizeResult, RenderStatusResult } from '../types';
7
7
  /**
8
8
  * Options for the useCustomizer hook
9
9
  */
@@ -48,13 +48,29 @@ export interface UseCustomizerReturn {
48
48
  */
49
49
  selectedLayerId: string | null;
50
50
  /**
51
- * Whether finalization is in progress
51
+ * Whether finalization (API submission) is in progress
52
52
  */
53
53
  isFinalizing: boolean;
54
54
  /**
55
- * Finalization result
55
+ * Whether the background render is in progress (after finalize returned)
56
+ */
57
+ isRendering: boolean;
58
+ /**
59
+ * Finalization result (from API submission)
56
60
  */
57
61
  finalizeResult: FinalizeResult | null;
62
+ /**
63
+ * Render result (from polling after finalize)
64
+ */
65
+ renderResult: RenderStatusResult | null;
66
+ /**
67
+ * Poll for render completion after finalize
68
+ */
69
+ waitForResult: (designIds: string[], options?: {
70
+ pollInterval?: number;
71
+ maxPolls?: number;
72
+ signal?: AbortSignal;
73
+ }) => Promise<RenderStatusResult | null>;
58
74
  /**
59
75
  * Get the current design
60
76
  */
@@ -1 +1 @@
1
- {"version":3,"file":"useCustomizer.d.ts","sourceRoot":"","sources":["../../../src/react/useCustomizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAExD;;OAEG;IACH,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IAEtC;;OAEG;IACH,SAAS,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;IAEnC;;OAEG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAE/C;;OAEG;IACH,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,aAAa,CAC3B,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CA6JrB"}
1
+ {"version":3,"file":"useCustomizer.d.ts","sourceRoot":"","sources":["../../../src/react/useCustomizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,aAAa,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAExD;;OAEG;IACH,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAE1B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IAEtC;;OAEG;IACH,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,KAAK,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,SAAS,EAAE,MAAM,UAAU,GAAG,IAAI,CAAC;IAEnC;;OAEG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,MAAM,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAE/C;;OAEG;IACH,YAAY,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9C;;OAEG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,aAAa,CAC3B,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CAqLrB"}
@@ -97,7 +97,7 @@ export interface DesignJSON {
97
97
  metadata?: {
98
98
  createdAt?: string;
99
99
  modifiedAt?: string;
100
- [key: string]: any;
100
+ [key: string]: unknown;
101
101
  };
102
102
  }
103
103
  /**
@@ -187,6 +187,11 @@ export interface CustomizerOptions {
187
187
  * Called when the active view changes (only relevant when using productId)
188
188
  */
189
189
  onViewChange?: (viewName: string) => void;
190
+ /**
191
+ * Called when the background render completes (after finalize returned instantly).
192
+ * Receives the final render status for all design IDs.
193
+ */
194
+ onRenderComplete?: (result: RenderStatusResult) => void;
190
195
  /**
191
196
  * Show the Close button in the toolbar
192
197
  * @default true
@@ -213,7 +218,19 @@ export interface CustomizerOptions {
213
218
  export interface CustomizerError {
214
219
  code: string;
215
220
  message: string;
216
- details?: any;
221
+ details?: unknown;
222
+ }
223
+ /**
224
+ * Result of polling for render completion (returned by waitForResult)
225
+ */
226
+ export interface RenderStatusResult {
227
+ designs: Array<{
228
+ designId: string;
229
+ status: 'processing' | 'completed' | 'failed';
230
+ proofUrl: string | null;
231
+ errorMessage: string | null;
232
+ }>;
233
+ allCompleted: boolean;
217
234
  }
218
235
  /**
219
236
  * Result of the finalize operation
@@ -223,6 +240,13 @@ export interface FinalizeResult {
223
240
  status: 'processing' | 'completed' | 'failed';
224
241
  proofUrl: string | null;
225
242
  errorMessage: string | null;
243
+ requestId?: string;
244
+ views?: Array<{
245
+ viewName: string;
246
+ designId: string;
247
+ status: string;
248
+ proofUrl: string | null;
249
+ }>;
226
250
  }
227
251
  /**
228
252
  * Methods available on a customizer instance
@@ -253,9 +277,19 @@ export interface CustomizerInstance {
253
277
  */
254
278
  canRedo(): boolean;
255
279
  /**
256
- * Finalize the design and generate print-ready files
280
+ * Finalize the design and generate print-ready files.
281
+ * Returns immediately after API submission (status: 'processing').
257
282
  */
258
283
  finalize(): Promise<FinalizeResult>;
284
+ /**
285
+ * Poll for render completion after finalize().
286
+ * Resolves when all designs are completed or failed, or on timeout.
287
+ */
288
+ waitForResult(designIds: string[], options?: {
289
+ pollInterval?: number;
290
+ maxPolls?: number;
291
+ signal?: AbortSignal;
292
+ }): Promise<RenderStatusResult>;
259
293
  /**
260
294
  * Add a text layer
261
295
  */
@@ -339,6 +373,12 @@ export interface CustomizerEditorElement extends HTMLElement {
339
373
  redo(): void;
340
374
  canUndo(): boolean;
341
375
  canRedo(): boolean;
376
+ finalize(): Promise<FinalizeResult>;
377
+ waitForResult(designIds: string[], options?: {
378
+ pollInterval?: number;
379
+ maxPolls?: number;
380
+ signal?: AbortSignal;
381
+ }): Promise<RenderStatusResult>;
342
382
  addTextLayer(text?: string): void;
343
383
  addImageLayer(url: string): Promise<void>;
344
384
  removeLayer(layerId: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhE,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC;IAG3B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAEjD;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAEjD;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAE3C;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC9C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,SAAS,IAAI,UAAU,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC;IAEnB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAEpC;;OAEG;IACH,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAE1C;;OAEG;IACH,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,QAAQ,IAAI,QAAQ,EAAE,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,UAAU,IAAI,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,eAAe,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,SAAS,IAAI,UAAU,CAAC;IACxB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IACpC,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,OAAO,CAAC;IACnB,OAAO,IAAI,OAAO,CAAC;IACnB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1C,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAAC;IACpC,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,IAAI,QAAQ,EAAE,CAAC;IACvB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhE,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAW,SAAQ,SAAS;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,KAAK,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC;IAG3B;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAEjD;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAExC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAEjD;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAE3C;;OAEG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE1C;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAExD;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC9C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B,CAAC,CAAC;IACH,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC9C,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,SAAS,IAAI,UAAU,CAAC;IAExB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC;IAEnB;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC;IAEnB;;;OAGG;IACH,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAEpC;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEhC;;OAEG;IACH,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAElC;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1C;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAE1C;;OAEG;IACH,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;IAE/B;;OAEG;IACH,QAAQ,IAAI,QAAQ,EAAE,CAAC;IAEvB;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAExC;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;OAEG;IACH,UAAU,IAAI,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,eAAe,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,SAAS,IAAI,UAAU,CAAC;IACxB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IACpC,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,OAAO,CAAC;IACnB,OAAO,IAAI,OAAO,CAAC;IACnB,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IACpC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE;QAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1C,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAAC;IACpC,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,IAAI,QAAQ,EAAE,CAAC;IACvB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vanilla/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAMnB,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAC5B,iBAAiB,EAAE,WAAW,GAAG,MAAM,EACvC,OAAO,EAAE,iBAAiB,GACzB,kBAAkB,CAiWpB;AAED;;GAEG;AACH,mBAAmB,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/vanilla/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAOnB,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAC5B,iBAAiB,EAAE,WAAW,GAAG,MAAM,EACvC,OAAO,EAAE,iBAAiB,GACzB,kBAAkB,CA4apB;AAED;;GAEG;AACH,mBAAmB,UAAU,CAAC"}
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * Vue component types
3
3
  */
4
- import type { CSSProperties } from 'vue';
5
4
  import type { DesignJSON, FinalizeResult, CustomizerError } from '../types';
6
5
  /**
7
6
  * Props for the Customizer Vue component
@@ -38,7 +37,7 @@ export interface CustomizerProps {
38
37
  /**
39
38
  * Custom inline styles
40
39
  */
41
- style?: CSSProperties;
40
+ style?: Record<string, string | number>;
42
41
  /**
43
42
  * Initial design data to load
44
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vue/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACzC,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IACxC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAClD,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3C,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;CAC/C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/vue/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,eAAe,EAChB,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAE1B;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IACxC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAClD,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3C,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;CAC/C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@varianta/sdk",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Multi-framework JavaScript SDK for product customization",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs.js",
@@ -24,7 +24,7 @@
24
24
  "sideEffects": true,
25
25
  "scripts": {
26
26
  "dev": "vite build --watch",
27
- "build": "vite build && tsc --emitDeclarationOnly",
27
+ "build": "vite build && vite build --mode umd && tsc --emitDeclarationOnly",
28
28
  "test": "vitest run",
29
29
  "test:watch": "vitest",
30
30
  "lint": "eslint src --max-warnings 0",
@@ -44,6 +44,7 @@
44
44
  "dependencies": {},
45
45
  "devDependencies": {
46
46
  "@customizer/editor": "workspace:*",
47
+ "@customizer/eslint-config": "workspace:*",
47
48
  "@customizer/scene-engine": "workspace:*",
48
49
  "@types/node": "^22.10.2",
49
50
  "@types/react": "^19.0.0",