Skip to content

Commit 3a0172f

Browse files
committed
feat(DotTextCanvas): enhance constructor to accept options object and add character spacing management
1 parent 112247c commit 3a0172f

File tree

3 files changed

+525
-39
lines changed

3 files changed

+525
-39
lines changed

playground/auto-imports.d.ts

Lines changed: 247 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,247 @@
1+
// Generated by 'unplugin-auto-import'
2+
// We suggest you to commit this file into source control
3+
declare global {
4+
const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
5+
const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
6+
const computed: typeof import('vue')['computed']
7+
const computedAsync: typeof import('@vueuse/core')['computedAsync']
8+
const computedEager: typeof import('@vueuse/core')['computedEager']
9+
const computedInject: typeof import('@vueuse/core')['computedInject']
10+
const computedWithControl: typeof import('@vueuse/core')['computedWithControl']
11+
const controlledComputed: typeof import('@vueuse/core')['controlledComputed']
12+
const controlledRef: typeof import('@vueuse/core')['controlledRef']
13+
const createApp: typeof import('vue')['createApp']
14+
const createEventHook: typeof import('@vueuse/core')['createEventHook']
15+
const createGlobalState: typeof import('@vueuse/core')['createGlobalState']
16+
const createInjectionState: typeof import('@vueuse/core')['createInjectionState']
17+
const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn']
18+
const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable']
19+
const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn']
20+
const customRef: typeof import('vue')['customRef']
21+
const debouncedRef: typeof import('@vueuse/core')['debouncedRef']
22+
const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch']
23+
const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
24+
const defineComponent: typeof import('vue')['defineComponent']
25+
const eagerComputed: typeof import('@vueuse/core')['eagerComputed']
26+
const effectScope: typeof import('vue')['effectScope']
27+
const EffectScope: typeof import('vue')['EffectScope']
28+
const extendRef: typeof import('@vueuse/core')['extendRef']
29+
const getCurrentInstance: typeof import('vue')['getCurrentInstance']
30+
const getCurrentScope: typeof import('vue')['getCurrentScope']
31+
const h: typeof import('vue')['h']
32+
const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch']
33+
const inject: typeof import('vue')['inject']
34+
const isDefined: typeof import('@vueuse/core')['isDefined']
35+
const isReadonly: typeof import('vue')['isReadonly']
36+
const isRef: typeof import('vue')['isRef']
37+
const logicAnd: typeof import('@vueuse/core')['logicAnd']
38+
const logicNot: typeof import('@vueuse/core')['logicNot']
39+
const logicOr: typeof import('@vueuse/core')['logicOr']
40+
const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable']
41+
const markRaw: typeof import('vue')['markRaw']
42+
const nextTick: typeof import('vue')['nextTick']
43+
const onActivated: typeof import('vue')['onActivated']
44+
const onBeforeMount: typeof import('vue')['onBeforeMount']
45+
const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
46+
const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
47+
const onClickOutside: typeof import('@vueuse/core')['onClickOutside']
48+
const onDeactivated: typeof import('vue')['onDeactivated']
49+
const onErrorCaptured: typeof import('vue')['onErrorCaptured']
50+
const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke']
51+
const onLongPress: typeof import('@vueuse/core')['onLongPress']
52+
const onMounted: typeof import('vue')['onMounted']
53+
const onRenderTracked: typeof import('vue')['onRenderTracked']
54+
const onRenderTriggered: typeof import('vue')['onRenderTriggered']
55+
const onScopeDispose: typeof import('vue')['onScopeDispose']
56+
const onServerPrefetch: typeof import('vue')['onServerPrefetch']
57+
const onStartTyping: typeof import('@vueuse/core')['onStartTyping']
58+
const onUnmounted: typeof import('vue')['onUnmounted']
59+
const onUpdated: typeof import('vue')['onUpdated']
60+
const pausableWatch: typeof import('@vueuse/core')['pausableWatch']
61+
const provide: typeof import('vue')['provide']
62+
const reactify: typeof import('@vueuse/core')['reactify']
63+
const reactifyObject: typeof import('@vueuse/core')['reactifyObject']
64+
const reactive: typeof import('vue')['reactive']
65+
const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed']
66+
const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit']
67+
const reactivePick: typeof import('@vueuse/core')['reactivePick']
68+
const readonly: typeof import('vue')['readonly']
69+
const ref: typeof import('vue')['ref']
70+
const refAutoReset: typeof import('@vueuse/core')['refAutoReset']
71+
const refDebounced: typeof import('@vueuse/core')['refDebounced']
72+
const refDefault: typeof import('@vueuse/core')['refDefault']
73+
const refThrottled: typeof import('@vueuse/core')['refThrottled']
74+
const refWithControl: typeof import('@vueuse/core')['refWithControl']
75+
const resolveComponent: typeof import('vue')['resolveComponent']
76+
const resolveRef: typeof import('@vueuse/core')['resolveRef']
77+
const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
78+
const shallowReactive: typeof import('vue')['shallowReactive']
79+
const shallowReadonly: typeof import('vue')['shallowReadonly']
80+
const shallowRef: typeof import('vue')['shallowRef']
81+
const syncRef: typeof import('@vueuse/core')['syncRef']
82+
const syncRefs: typeof import('@vueuse/core')['syncRefs']
83+
const templateRef: typeof import('@vueuse/core')['templateRef']
84+
const throttledRef: typeof import('@vueuse/core')['throttledRef']
85+
const throttledWatch: typeof import('@vueuse/core')['throttledWatch']
86+
const toRaw: typeof import('vue')['toRaw']
87+
const toReactive: typeof import('@vueuse/core')['toReactive']
88+
const toRef: typeof import('vue')['toRef']
89+
const toRefs: typeof import('vue')['toRefs']
90+
const triggerRef: typeof import('vue')['triggerRef']
91+
const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount']
92+
const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount']
93+
const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted']
94+
const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose']
95+
const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted']
96+
const unref: typeof import('vue')['unref']
97+
const unrefElement: typeof import('@vueuse/core')['unrefElement']
98+
const until: typeof import('@vueuse/core')['until']
99+
const useActiveElement: typeof import('@vueuse/core')['useActiveElement']
100+
const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue']
101+
const useAsyncState: typeof import('@vueuse/core')['useAsyncState']
102+
const useAttrs: typeof import('vue')['useAttrs']
103+
const useBase64: typeof import('@vueuse/core')['useBase64']
104+
const useBattery: typeof import('@vueuse/core')['useBattery']
105+
const useBluetooth: typeof import('@vueuse/core')['useBluetooth']
106+
const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints']
107+
const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel']
108+
const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation']
109+
const useCached: typeof import('@vueuse/core')['useCached']
110+
const useClamp: typeof import('@vueuse/core')['useClamp']
111+
const useClipboard: typeof import('@vueuse/core')['useClipboard']
112+
const useColorMode: typeof import('@vueuse/core')['useColorMode']
113+
const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog']
114+
const useCounter: typeof import('@vueuse/core')['useCounter']
115+
const useCssModule: typeof import('vue')['useCssModule']
116+
const useCssVar: typeof import('@vueuse/core')['useCssVar']
117+
const useCssVars: typeof import('vue')['useCssVars']
118+
const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement']
119+
const useCycleList: typeof import('@vueuse/core')['useCycleList']
120+
const useDark: typeof import('@vueuse/core')['useDark']
121+
const useDateFormat: typeof import('@vueuse/core')['useDateFormat']
122+
const useDebounce: typeof import('@vueuse/core')['useDebounce']
123+
const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory']
124+
const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn']
125+
const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion']
126+
const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation']
127+
const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio']
128+
const useDevicesList: typeof import('@vueuse/core')['useDevicesList']
129+
const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia']
130+
const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility']
131+
const useDraggable: typeof import('@vueuse/core')['useDraggable']
132+
const useDropZone: typeof import('@vueuse/core')['useDropZone']
133+
const useElementBounding: typeof import('@vueuse/core')['useElementBounding']
134+
const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint']
135+
const useElementHover: typeof import('@vueuse/core')['useElementHover']
136+
const useElementSize: typeof import('@vueuse/core')['useElementSize']
137+
const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility']
138+
const useEventBus: typeof import('@vueuse/core')['useEventBus']
139+
const useEventListener: typeof import('@vueuse/core')['useEventListener']
140+
const useEventSource: typeof import('@vueuse/core')['useEventSource']
141+
const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper']
142+
const useFavicon: typeof import('@vueuse/core')['useFavicon']
143+
const useFetch: typeof import('@vueuse/core')['useFetch']
144+
const useFileDialog: typeof import('@vueuse/core')['useFileDialog']
145+
const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess']
146+
const useFocus: typeof import('@vueuse/core')['useFocus']
147+
const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin']
148+
const useFps: typeof import('@vueuse/core')['useFps']
149+
const useFullscreen: typeof import('@vueuse/core')['useFullscreen']
150+
const useGamepad: typeof import('@vueuse/core')['useGamepad']
151+
const useGeolocation: typeof import('@vueuse/core')['useGeolocation']
152+
const useIdle: typeof import('@vueuse/core')['useIdle']
153+
const useImage: typeof import('@vueuse/core')['useImage']
154+
const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll']
155+
const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver']
156+
const useInterval: typeof import('@vueuse/core')['useInterval']
157+
const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn']
158+
const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier']
159+
const useLastChanged: typeof import('@vueuse/core')['useLastChanged']
160+
const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage']
161+
const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys']
162+
const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory']
163+
const useMediaControls: typeof import('@vueuse/core')['useMediaControls']
164+
const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery']
165+
const useMemoize: typeof import('@vueuse/core')['useMemoize']
166+
const useMemory: typeof import('@vueuse/core')['useMemory']
167+
const useMounted: typeof import('@vueuse/core')['useMounted']
168+
const useMouse: typeof import('@vueuse/core')['useMouse']
169+
const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement']
170+
const useMousePressed: typeof import('@vueuse/core')['useMousePressed']
171+
const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver']
172+
const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage']
173+
const useNetwork: typeof import('@vueuse/core')['useNetwork']
174+
const useNow: typeof import('@vueuse/core')['useNow']
175+
const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl']
176+
const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination']
177+
const useOnline: typeof import('@vueuse/core')['useOnline']
178+
const usePageLeave: typeof import('@vueuse/core')['usePageLeave']
179+
const useParallax: typeof import('@vueuse/core')['useParallax']
180+
const usePermission: typeof import('@vueuse/core')['usePermission']
181+
const usePointer: typeof import('@vueuse/core')['usePointer']
182+
const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe']
183+
const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme']
184+
const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark']
185+
const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages']
186+
const useRafFn: typeof import('@vueuse/core')['useRafFn']
187+
const useRefHistory: typeof import('@vueuse/core')['useRefHistory']
188+
const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver']
189+
const useRoute: typeof import('vue-router')['useRoute']
190+
const useRouter: typeof import('vue-router')['useRouter']
191+
const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation']
192+
const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea']
193+
const useScriptTag: typeof import('@vueuse/core')['useScriptTag']
194+
const useScroll: typeof import('@vueuse/core')['useScroll']
195+
const useScrollLock: typeof import('@vueuse/core')['useScrollLock']
196+
const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage']
197+
const useShare: typeof import('@vueuse/core')['useShare']
198+
const useSlots: typeof import('vue')['useSlots']
199+
const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition']
200+
const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis']
201+
const useStepper: typeof import('@vueuse/core')['useStepper']
202+
const useStorage: typeof import('@vueuse/core')['useStorage']
203+
const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync']
204+
const useStyleTag: typeof import('@vueuse/core')['useStyleTag']
205+
const useSwipe: typeof import('@vueuse/core')['useSwipe']
206+
const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList']
207+
const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize']
208+
const useTextSelection: typeof import('@vueuse/core')['useTextSelection']
209+
const useThrottle: typeof import('@vueuse/core')['useThrottle']
210+
const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory']
211+
const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn']
212+
const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo']
213+
const useTimeout: typeof import('@vueuse/core')['useTimeout']
214+
const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn']
215+
const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll']
216+
const useTimestamp: typeof import('@vueuse/core')['useTimestamp']
217+
const useTitle: typeof import('@vueuse/core')['useTitle']
218+
const useToggle: typeof import('@vueuse/core')['useToggle']
219+
const useTransition: typeof import('@vueuse/core')['useTransition']
220+
const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams']
221+
const useUserMedia: typeof import('@vueuse/core')['useUserMedia']
222+
const useVibrate: typeof import('@vueuse/core')['useVibrate']
223+
const useVirtualList: typeof import('@vueuse/core')['useVirtualList']
224+
const useVModel: typeof import('@vueuse/core')['useVModel']
225+
const useVModels: typeof import('@vueuse/core')['useVModels']
226+
const useWakeLock: typeof import('@vueuse/core')['useWakeLock']
227+
const useWebNotification: typeof import('@vueuse/core')['useWebNotification']
228+
const useWebSocket: typeof import('@vueuse/core')['useWebSocket']
229+
const useWebWorker: typeof import('@vueuse/core')['useWebWorker']
230+
const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn']
231+
const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus']
232+
const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll']
233+
const useWindowSize: typeof import('@vueuse/core')['useWindowSize']
234+
const watch: typeof import('vue')['watch']
235+
const watchArray: typeof import('@vueuse/core')['watchArray']
236+
const watchAtMost: typeof import('@vueuse/core')['watchAtMost']
237+
const watchDebounced: typeof import('@vueuse/core')['watchDebounced']
238+
const watchEffect: typeof import('vue')['watchEffect']
239+
const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable']
240+
const watchOnce: typeof import('@vueuse/core')['watchOnce']
241+
const watchPausable: typeof import('@vueuse/core')['watchPausable']
242+
const watchThrottled: typeof import('@vueuse/core')['watchThrottled']
243+
const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable']
244+
const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter']
245+
const whenever: typeof import('@vueuse/core')['whenever']
246+
}
247+
export {}

0 commit comments

Comments
 (0)