@vizejs/fresco 0.291.0 → 0.303.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.
@@ -1 +1 @@
1
- {"version":3,"file":"composables-BKj30tnc.mjs","names":[],"sources":["../src/composables/useIme.ts","../src/composables/useWindowSize.ts","../src/composables/useAnimation.ts","../src/composables/useBoxMetrics.ts"],"sourcesContent":["/**\n * useIme - IME (Input Method Editor) composable\n */\n\nimport { ref, computed, type Ref } from \"@vue/runtime-core\";\n\nexport interface UseImeOptions {\n /** Initial IME mode */\n mode?: ImeMode;\n /** Called when IME mode changes */\n onModeChange?: (mode: ImeMode) => void;\n /** Called when composition updates */\n onCompositionUpdate?: (text: string, cursor: number) => void;\n /** Called when text is committed */\n onCommit?: (text: string) => void;\n}\n\nexport type ImeMode =\n | \"direct\"\n | \"hiragana\"\n | \"katakana\"\n | \"half-katakana\"\n | \"full-alpha\"\n | \"pinyin\"\n | \"hangul\";\n\nexport interface ImeManager {\n /** Whether IME is active */\n isActive: Ref<boolean>;\n /** Current input mode */\n mode: Ref<ImeMode>;\n /** Whether currently composing */\n isComposing: Ref<boolean>;\n /** Preedit text */\n preedit: Ref<string>;\n /** Cursor position in preedit */\n preeditCursor: Ref<number>;\n /** Candidate list */\n candidates: Ref<string[]>;\n /** Selected candidate index */\n selectedCandidate: Ref<number>;\n /** Mode display name */\n modeDisplay: Ref<string>;\n /** Enable IME */\n enable: () => void;\n /** Disable IME */\n disable: () => void;\n /** Set input mode */\n setMode: (mode: ImeMode) => void;\n /** Handle key event for IME */\n handleKey: (key: string, modifiers: { ctrl: boolean; alt: boolean }) => boolean;\n /** Commit current composition */\n commit: () => void;\n /** Cancel current composition */\n cancel: () => void;\n /** Select next candidate */\n nextCandidate: () => void;\n /** Select previous candidate */\n prevCandidate: () => void;\n /** Select candidate by number (1-9) */\n selectCandidate: (num: number) => void;\n}\n\nconst MODE_DISPLAY: Record<ImeMode, string> = {\n direct: \"A\",\n hiragana: \"あ\",\n katakana: \"ア\",\n \"half-katakana\": \"ア\",\n \"full-alpha\": \"A\",\n pinyin: \"拼\",\n hangul: \"한\",\n};\n\nexport function useIme(options: UseImeOptions = {}): ImeManager {\n const { mode: initialMode = \"direct\", onModeChange, onCompositionUpdate, onCommit } = options;\n\n const isActive = ref(false);\n const mode = ref<ImeMode>(initialMode);\n const isComposing = ref(false);\n const preedit = ref(\"\");\n const preeditCursor = ref(0);\n const candidates = ref<string[]>([]);\n const selectedCandidate = ref(0);\n\n const modeDisplay = computed(() => MODE_DISPLAY[mode.value] ?? \"A\");\n\n const enable = () => {\n isActive.value = true;\n };\n\n const disable = () => {\n isActive.value = false;\n cancel();\n };\n\n const setMode = (newMode: ImeMode) => {\n if (mode.value !== newMode) {\n cancel();\n mode.value = newMode;\n onModeChange?.(newMode);\n }\n };\n\n const handleKey = (key: string, modifiers: { ctrl: boolean; alt: boolean }): boolean => {\n if (!isActive.value || mode.value === \"direct\") {\n return false;\n }\n\n // IME mode toggle (usually Ctrl+Space or similar)\n // If we're here, mode is not 'direct' (filtered above), so toggle to 'direct'\n if (modifiers.ctrl && key === \" \") {\n setMode(\"direct\");\n return true;\n }\n\n // Handle composition\n if (isComposing.value) {\n switch (key) {\n case \"enter\":\n commit();\n return true;\n case \"escape\":\n cancel();\n return true;\n case \"backspace\":\n if (preedit.value.length > 0) {\n preedit.value = preedit.value.slice(0, -1);\n preeditCursor.value = Math.min(preeditCursor.value, preedit.value.length);\n onCompositionUpdate?.(preedit.value, preeditCursor.value);\n return true;\n }\n break;\n case \"space\":\n // Convert / select candidate\n if (candidates.value.length > 0) {\n nextCandidate();\n return true;\n }\n break;\n }\n\n // Number for candidate selection\n if (/^[1-9]$/.test(key)) {\n selectCandidate(parseInt(key, 10));\n return true;\n }\n }\n\n // Start/continue composition for printable characters\n if (key.length === 1 && !modifiers.ctrl && !modifiers.alt) {\n if (!isComposing.value) {\n isComposing.value = true;\n }\n preedit.value += key;\n preeditCursor.value = preedit.value.length;\n onCompositionUpdate?.(preedit.value, preeditCursor.value);\n return true;\n }\n\n return false;\n };\n\n const commit = () => {\n if (preedit.value) {\n const text = candidates.value[selectedCandidate.value] ?? preedit.value;\n onCommit?.(text);\n }\n preedit.value = \"\";\n preeditCursor.value = 0;\n candidates.value = [];\n selectedCandidate.value = 0;\n isComposing.value = false;\n };\n\n const cancel = () => {\n preedit.value = \"\";\n preeditCursor.value = 0;\n candidates.value = [];\n selectedCandidate.value = 0;\n isComposing.value = false;\n };\n\n const nextCandidate = () => {\n if (candidates.value.length > 0) {\n selectedCandidate.value = (selectedCandidate.value + 1) % candidates.value.length;\n }\n };\n\n const prevCandidate = () => {\n if (candidates.value.length > 0) {\n selectedCandidate.value =\n (selectedCandidate.value - 1 + candidates.value.length) % candidates.value.length;\n }\n };\n\n const selectCandidate = (num: number) => {\n if (num >= 1 && num <= candidates.value.length) {\n selectedCandidate.value = num - 1;\n commit();\n }\n };\n\n return {\n isActive,\n mode,\n isComposing,\n preedit,\n preeditCursor,\n candidates,\n selectedCandidate,\n modeDisplay,\n enable,\n disable,\n setMode,\n handleKey,\n commit,\n cancel,\n nextCandidate,\n prevCandidate,\n selectCandidate,\n };\n}\n","/**\n * useWindowSize - terminal dimensions.\n */\n\nimport { reactive } from \"@vue/runtime-core\";\nimport { useApp } from \"./useApp.js\";\n\nexport interface WindowSize {\n columns: number;\n rows: number;\n}\n\nexport function useWindowSize() {\n const { width, height } = useApp();\n\n return reactive({\n get columns() {\n return width.value;\n },\n get rows() {\n return height.value;\n },\n }) as WindowSize;\n}\n","/**\n * useAnimation - Ink-compatible shared animation state.\n */\n\nimport { computed, onMounted, onUnmounted, reactive, watch } from \"@vue/runtime-core\";\n\nexport interface UseAnimationOptions {\n /** Time between ticks in milliseconds */\n interval?: number;\n /** Whether the animation is running */\n isActive?: boolean;\n}\n\nexport interface AnimationResult {\n frame: number;\n time: number;\n delta: number;\n reset: () => void;\n}\n\nconst defaultAnimationInterval = 100;\nconst maximumTimerInterval = 2_147_483_647;\n\ntype AnimationCallback = (currentTime: number) => void;\n\ninterface AnimationSubscriber {\n callback: AnimationCallback;\n interval: number;\n startTime: number;\n nextDueTime: number;\n}\n\nconst animationSubscribers = new Map<AnimationCallback, AnimationSubscriber>();\nlet animationTimer: ReturnType<typeof setTimeout> | null = null;\n\nfunction currentTime(): number {\n return performance.now();\n}\n\nfunction normalizeAnimationInterval(interval: number): number {\n if (!Number.isFinite(interval)) {\n return defaultAnimationInterval;\n }\n\n return Math.min(maximumTimerInterval, Math.max(1, interval));\n}\n\nfunction clearAnimationTimer() {\n if (!animationTimer) return;\n clearTimeout(animationTimer);\n animationTimer = null;\n}\n\nfunction scheduleAnimationTick() {\n clearAnimationTimer();\n if (animationSubscribers.size === 0) return;\n\n let nextDueTime = Number.POSITIVE_INFINITY;\n for (const subscriber of animationSubscribers.values()) {\n nextDueTime = Math.min(nextDueTime, subscriber.nextDueTime);\n }\n\n animationTimer = setTimeout(\n () => {\n animationTimer = null;\n const now = currentTime();\n\n for (const subscriber of animationSubscribers.values()) {\n if (now < subscriber.nextDueTime) continue;\n\n subscriber.callback(now);\n\n const elapsedTime = now - subscriber.startTime;\n const elapsedFrames = Math.floor(elapsedTime / subscriber.interval) + 1;\n subscriber.nextDueTime = subscriber.startTime + elapsedFrames * subscriber.interval;\n }\n\n scheduleAnimationTick();\n },\n Math.max(0, nextDueTime - currentTime()),\n );\n}\n\nfunction subscribeToAnimation(callback: AnimationCallback, interval: number) {\n const startTime = currentTime();\n animationSubscribers.set(callback, {\n callback,\n interval,\n startTime,\n nextDueTime: startTime + interval,\n });\n scheduleAnimationTick();\n\n return {\n startTime,\n unsubscribe() {\n animationSubscribers.delete(callback);\n scheduleAnimationTick();\n },\n };\n}\n\nexport function useAnimation(options: UseAnimationOptions = {}): AnimationResult {\n const safeInterval = computed(() =>\n normalizeAnimationInterval(options.interval ?? defaultAnimationInterval),\n );\n const active = computed(() => options.isActive ?? true);\n let unsubscribe: (() => void) | null = null;\n let startedAt = currentTime();\n let previousTick = startedAt;\n\n const state = reactive<AnimationResult>({\n frame: 0,\n time: 0,\n delta: 0,\n reset: () => {\n if (active.value) {\n start();\n } else {\n resetState(currentTime());\n }\n },\n });\n\n const resetState = (now: number) => {\n startedAt = now;\n previousTick = now;\n state.frame = 0;\n state.time = 0;\n state.delta = 0;\n };\n\n const tick = (now: number) => {\n const elapsed = now - startedAt;\n state.frame = Math.floor(elapsed / safeInterval.value);\n state.time = elapsed;\n state.delta = now - previousTick;\n previousTick = now;\n };\n\n const stop = () => {\n unsubscribe?.();\n unsubscribe = null;\n };\n\n const start = () => {\n stop();\n resetState(currentTime());\n const subscription = subscribeToAnimation(tick, safeInterval.value);\n startedAt = subscription.startTime;\n previousTick = subscription.startTime;\n unsubscribe = () => subscription.unsubscribe();\n };\n\n onMounted(() => {\n if (active.value) {\n start();\n }\n });\n\n watch([active, safeInterval], ([isActive]) => {\n if (isActive) {\n start();\n } else {\n stop();\n }\n });\n\n onUnmounted(stop);\n\n return state;\n}\n","/**\n * useBoxMetrics - best-effort layout metrics for a rendered Fresco node.\n */\n\nimport { onMounted, onUnmounted, reactive, type Ref } from \"@vue/runtime-core\";\nimport { getLastRenderLayout, updateLastRenderLayouts, type DOMElement } from \"../layoutMetrics.js\";\n\nexport interface BoxMetrics {\n width: number;\n height: number;\n left: number;\n top: number;\n}\n\nexport interface UseBoxMetricsResult extends BoxMetrics {\n hasMeasured: boolean;\n}\n\nexport type MetricTarget = DOMElement;\n\nasync function loadNative() {\n return import(\"@vizejs/fresco-native\");\n}\n\nfunction targetId(target: MetricTarget | null | undefined): number | undefined {\n return target?.id ?? target?.$el?.id;\n}\n\nexport function useBoxMetrics(ref: Ref<MetricTarget | null>): UseBoxMetricsResult {\n const metrics = reactive<UseBoxMetricsResult>({\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n hasMeasured: false,\n });\n\n let timer: ReturnType<typeof setInterval> | null = null;\n\n const refresh = () => {\n const id = targetId(ref.value);\n if (id === undefined) {\n metrics.width = 0;\n metrics.height = 0;\n metrics.left = 0;\n metrics.top = 0;\n metrics.hasMeasured = false;\n return;\n }\n\n void loadNative()\n .then((native) => {\n const layouts = \"getLastRenderLayouts\" in native ? native.getLastRenderLayouts() : [];\n updateLastRenderLayouts(layouts);\n const layout = layouts.find((item: { id: number }) => item.id === id);\n if (!layout) return;\n\n metrics.width = layout.width;\n metrics.height = layout.height;\n metrics.left = layout.x;\n metrics.top = layout.y;\n metrics.hasMeasured = true;\n })\n .catch(() => {});\n };\n\n onMounted(() => {\n const layout = getLastRenderLayout(ref.value);\n if (layout) {\n metrics.width = layout.width;\n metrics.height = layout.height;\n metrics.left = layout.x;\n metrics.top = layout.y;\n metrics.hasMeasured = true;\n }\n\n refresh();\n timer = setInterval(refresh, 100);\n });\n\n onUnmounted(() => {\n if (timer) clearInterval(timer);\n });\n\n return metrics;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"composables-D9lN8Kdo.mjs","names":[],"sources":["../src/composables/useIme.ts","../src/composables/useWindowSize.ts","../src/composables/useAnimation.ts","../src/composables/useBoxMetrics.ts"],"sourcesContent":["/**\n * useIme - IME (Input Method Editor) composable\n */\n\nimport { ref, computed, type Ref } from \"@vue/runtime-core\";\n\nexport interface UseImeOptions {\n /** Initial IME mode */\n mode?: ImeMode;\n /** Called when IME mode changes */\n onModeChange?: (mode: ImeMode) => void;\n /** Called when composition updates */\n onCompositionUpdate?: (text: string, cursor: number) => void;\n /** Called when text is committed */\n onCommit?: (text: string) => void;\n}\n\nexport type ImeMode =\n | \"direct\"\n | \"hiragana\"\n | \"katakana\"\n | \"half-katakana\"\n | \"full-alpha\"\n | \"pinyin\"\n | \"hangul\";\n\nexport interface ImeManager {\n /** Whether IME is active */\n isActive: Ref<boolean>;\n /** Current input mode */\n mode: Ref<ImeMode>;\n /** Whether currently composing */\n isComposing: Ref<boolean>;\n /** Preedit text */\n preedit: Ref<string>;\n /** Cursor position in preedit */\n preeditCursor: Ref<number>;\n /** Candidate list */\n candidates: Ref<string[]>;\n /** Selected candidate index */\n selectedCandidate: Ref<number>;\n /** Mode display name */\n modeDisplay: Ref<string>;\n /** Enable IME */\n enable: () => void;\n /** Disable IME */\n disable: () => void;\n /** Set input mode */\n setMode: (mode: ImeMode) => void;\n /** Handle key event for IME */\n handleKey: (key: string, modifiers: { ctrl: boolean; alt: boolean }) => boolean;\n /** Commit current composition */\n commit: () => void;\n /** Cancel current composition */\n cancel: () => void;\n /** Select next candidate */\n nextCandidate: () => void;\n /** Select previous candidate */\n prevCandidate: () => void;\n /** Select candidate by number (1-9) */\n selectCandidate: (num: number) => void;\n}\n\nconst MODE_DISPLAY: Record<ImeMode, string> = {\n direct: \"A\",\n hiragana: \"あ\",\n katakana: \"ア\",\n \"half-katakana\": \"ア\",\n \"full-alpha\": \"A\",\n pinyin: \"拼\",\n hangul: \"한\",\n};\n\nexport function useIme(options: UseImeOptions = {}): ImeManager {\n const { mode: initialMode = \"direct\", onModeChange, onCompositionUpdate, onCommit } = options;\n\n const isActive = ref(false);\n const mode = ref<ImeMode>(initialMode);\n const isComposing = ref(false);\n const preedit = ref(\"\");\n const preeditCursor = ref(0);\n const candidates = ref<string[]>([]);\n const selectedCandidate = ref(0);\n\n const modeDisplay = computed(() => MODE_DISPLAY[mode.value] ?? \"A\");\n\n const enable = () => {\n isActive.value = true;\n };\n\n const disable = () => {\n isActive.value = false;\n cancel();\n };\n\n const setMode = (newMode: ImeMode) => {\n if (mode.value !== newMode) {\n cancel();\n mode.value = newMode;\n onModeChange?.(newMode);\n }\n };\n\n const handleKey = (key: string, modifiers: { ctrl: boolean; alt: boolean }): boolean => {\n if (!isActive.value || mode.value === \"direct\") {\n return false;\n }\n\n // IME mode toggle (usually Ctrl+Space or similar)\n // If we're here, mode is not 'direct' (filtered above), so toggle to 'direct'\n if (modifiers.ctrl && key === \" \") {\n setMode(\"direct\");\n return true;\n }\n\n // Handle composition\n if (isComposing.value) {\n switch (key) {\n case \"enter\":\n commit();\n return true;\n case \"escape\":\n cancel();\n return true;\n case \"backspace\":\n if (preedit.value.length > 0) {\n preedit.value = preedit.value.slice(0, -1);\n preeditCursor.value = Math.min(preeditCursor.value, preedit.value.length);\n onCompositionUpdate?.(preedit.value, preeditCursor.value);\n return true;\n }\n break;\n case \"space\":\n // Convert / select candidate\n if (candidates.value.length > 0) {\n nextCandidate();\n return true;\n }\n break;\n }\n\n // Number for candidate selection\n if (/^[1-9]$/.test(key)) {\n selectCandidate(parseInt(key, 10));\n return true;\n }\n }\n\n // Start/continue composition for printable characters\n if (key.length === 1 && !modifiers.ctrl && !modifiers.alt) {\n if (!isComposing.value) {\n isComposing.value = true;\n }\n preedit.value += key;\n preeditCursor.value = preedit.value.length;\n onCompositionUpdate?.(preedit.value, preeditCursor.value);\n return true;\n }\n\n return false;\n };\n\n const commit = () => {\n if (preedit.value) {\n const text = candidates.value[selectedCandidate.value] ?? preedit.value;\n onCommit?.(text);\n }\n preedit.value = \"\";\n preeditCursor.value = 0;\n candidates.value = [];\n selectedCandidate.value = 0;\n isComposing.value = false;\n };\n\n const cancel = () => {\n preedit.value = \"\";\n preeditCursor.value = 0;\n candidates.value = [];\n selectedCandidate.value = 0;\n isComposing.value = false;\n };\n\n const nextCandidate = () => {\n if (candidates.value.length > 0) {\n selectedCandidate.value = (selectedCandidate.value + 1) % candidates.value.length;\n }\n };\n\n const prevCandidate = () => {\n if (candidates.value.length > 0) {\n selectedCandidate.value =\n (selectedCandidate.value - 1 + candidates.value.length) % candidates.value.length;\n }\n };\n\n const selectCandidate = (num: number) => {\n if (num >= 1 && num <= candidates.value.length) {\n selectedCandidate.value = num - 1;\n commit();\n }\n };\n\n return {\n isActive,\n mode,\n isComposing,\n preedit,\n preeditCursor,\n candidates,\n selectedCandidate,\n modeDisplay,\n enable,\n disable,\n setMode,\n handleKey,\n commit,\n cancel,\n nextCandidate,\n prevCandidate,\n selectCandidate,\n };\n}\n","/**\n * useWindowSize - terminal dimensions.\n */\n\nimport { reactive } from \"@vue/runtime-core\";\nimport { useApp } from \"./useApp.js\";\n\nexport interface WindowSize {\n columns: number;\n rows: number;\n}\n\nexport function useWindowSize() {\n const { width, height } = useApp();\n\n return reactive({\n get columns() {\n return width.value;\n },\n get rows() {\n return height.value;\n },\n }) as WindowSize;\n}\n","/**\n * useAnimation - Ink-compatible shared animation state.\n */\n\nimport { computed, onMounted, onUnmounted, reactive, watch } from \"@vue/runtime-core\";\n\nexport interface UseAnimationOptions {\n /** Time between ticks in milliseconds */\n interval?: number;\n /** Whether the animation is running */\n isActive?: boolean;\n}\n\nexport interface AnimationResult {\n frame: number;\n time: number;\n delta: number;\n reset: () => void;\n}\n\nconst defaultAnimationInterval = 100;\nconst maximumTimerInterval = 2_147_483_647;\n\ntype AnimationCallback = (currentTime: number) => void;\n\ninterface AnimationSubscriber {\n callback: AnimationCallback;\n interval: number;\n startTime: number;\n nextDueTime: number;\n}\n\nconst animationSubscribers = new Map<AnimationCallback, AnimationSubscriber>();\nlet animationTimer: ReturnType<typeof setTimeout> | null = null;\n\nfunction currentTime(): number {\n return performance.now();\n}\n\nfunction normalizeAnimationInterval(interval: number): number {\n if (!Number.isFinite(interval)) {\n return defaultAnimationInterval;\n }\n\n return Math.min(maximumTimerInterval, Math.max(1, interval));\n}\n\nfunction clearAnimationTimer() {\n if (!animationTimer) return;\n clearTimeout(animationTimer);\n animationTimer = null;\n}\n\nfunction scheduleAnimationTick() {\n clearAnimationTimer();\n if (animationSubscribers.size === 0) return;\n\n let nextDueTime = Number.POSITIVE_INFINITY;\n for (const subscriber of animationSubscribers.values()) {\n nextDueTime = Math.min(nextDueTime, subscriber.nextDueTime);\n }\n\n animationTimer = setTimeout(\n () => {\n animationTimer = null;\n const now = currentTime();\n\n for (const subscriber of animationSubscribers.values()) {\n if (now < subscriber.nextDueTime) continue;\n\n subscriber.callback(now);\n\n const elapsedTime = now - subscriber.startTime;\n const elapsedFrames = Math.floor(elapsedTime / subscriber.interval) + 1;\n subscriber.nextDueTime = subscriber.startTime + elapsedFrames * subscriber.interval;\n }\n\n scheduleAnimationTick();\n },\n Math.max(0, nextDueTime - currentTime()),\n );\n}\n\nfunction subscribeToAnimation(callback: AnimationCallback, interval: number) {\n const startTime = currentTime();\n animationSubscribers.set(callback, {\n callback,\n interval,\n startTime,\n nextDueTime: startTime + interval,\n });\n scheduleAnimationTick();\n\n return {\n startTime,\n unsubscribe() {\n animationSubscribers.delete(callback);\n scheduleAnimationTick();\n },\n };\n}\n\nexport function useAnimation(options: UseAnimationOptions = {}): AnimationResult {\n const safeInterval = computed(() =>\n normalizeAnimationInterval(options.interval ?? defaultAnimationInterval),\n );\n const active = computed(() => options.isActive ?? true);\n let unsubscribe: (() => void) | null = null;\n let startedAt = currentTime();\n let previousTick = startedAt;\n\n const state = reactive<AnimationResult>({\n frame: 0,\n time: 0,\n delta: 0,\n reset: () => {\n if (active.value) {\n start();\n } else {\n resetState(currentTime());\n }\n },\n });\n\n const resetState = (now: number) => {\n startedAt = now;\n previousTick = now;\n state.frame = 0;\n state.time = 0;\n state.delta = 0;\n };\n\n const tick = (now: number) => {\n const elapsed = now - startedAt;\n state.frame = Math.floor(elapsed / safeInterval.value);\n state.time = elapsed;\n state.delta = now - previousTick;\n previousTick = now;\n };\n\n const stop = () => {\n unsubscribe?.();\n unsubscribe = null;\n };\n\n const start = () => {\n stop();\n resetState(currentTime());\n const subscription = subscribeToAnimation(tick, safeInterval.value);\n startedAt = subscription.startTime;\n previousTick = subscription.startTime;\n unsubscribe = () => subscription.unsubscribe();\n };\n\n onMounted(() => {\n if (active.value) {\n start();\n }\n });\n\n watch([active, safeInterval], ([isActive]) => {\n if (isActive) {\n start();\n } else {\n stop();\n }\n });\n\n onUnmounted(stop);\n\n return state;\n}\n","/**\n * useBoxMetrics - best-effort layout metrics for a rendered Fresco node.\n */\n\nimport { onMounted, onUnmounted, reactive, type Ref } from \"@vue/runtime-core\";\nimport { getLastRenderLayout, updateLastRenderLayouts, type DOMElement } from \"../layoutMetrics.js\";\n\nexport interface BoxMetrics {\n width: number;\n height: number;\n left: number;\n top: number;\n}\n\nexport interface UseBoxMetricsResult extends BoxMetrics {\n hasMeasured: boolean;\n}\n\nexport type MetricTarget = DOMElement;\n\nasync function loadNative() {\n return import(\"@vizejs/fresco-native\");\n}\n\nfunction targetId(target: MetricTarget | null | undefined): number | undefined {\n return target?.id ?? target?.$el?.id;\n}\n\nexport function useBoxMetrics(ref: Ref<MetricTarget | null>): UseBoxMetricsResult {\n const metrics = reactive<UseBoxMetricsResult>({\n width: 0,\n height: 0,\n left: 0,\n top: 0,\n hasMeasured: false,\n });\n\n let timer: ReturnType<typeof setInterval> | null = null;\n\n const refresh = () => {\n const id = targetId(ref.value);\n if (id === undefined) {\n metrics.width = 0;\n metrics.height = 0;\n metrics.left = 0;\n metrics.top = 0;\n metrics.hasMeasured = false;\n return;\n }\n\n void loadNative()\n .then((native) => {\n const layouts = \"getLastRenderLayouts\" in native ? native.getLastRenderLayouts() : [];\n updateLastRenderLayouts(layouts);\n const layout = layouts.find((item: { id: number }) => item.id === id);\n if (!layout) return;\n\n metrics.width = layout.width;\n metrics.height = layout.height;\n metrics.left = layout.x;\n metrics.top = layout.y;\n metrics.hasMeasured = true;\n })\n .catch(() => {});\n };\n\n onMounted(() => {\n const layout = getLastRenderLayout(ref.value);\n if (layout) {\n metrics.width = layout.width;\n metrics.height = layout.height;\n metrics.left = layout.x;\n metrics.top = layout.y;\n metrics.hasMeasured = true;\n }\n\n refresh();\n timer = setInterval(refresh, 100);\n });\n\n onUnmounted(() => {\n if (timer) clearInterval(timer);\n });\n\n return metrics;\n}\n"],"mappings":"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"}
@@ -215,10 +215,10 @@ declare const Box: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.Ext
215
215
  color: StringConstructor;
216
216
  bg: StringConstructor;
217
217
  backgroundColor: StringConstructor;
218
- "aria-label": StringConstructor;
219
- "aria-hidden": BooleanConstructor;
220
- "aria-role": PropType<BoxProps["aria-role"]>;
221
- "aria-state": PropType<BoxProps["aria-state"]>;
218
+ ariaLabel: StringConstructor;
219
+ ariaHidden: BooleanConstructor;
220
+ ariaRole: PropType<BoxProps["aria-role"]>;
221
+ ariaState: PropType<BoxProps["aria-state"]>;
222
222
  }>, () => _$_vue_runtime_core0.VNode<_$_vue_runtime_core0.RendererNode, _$_vue_runtime_core0.RendererElement, {
223
223
  [key: string]: any;
224
224
  }> | null, {}, {}, {}, _$_vue_runtime_core0.ComponentOptionsMixin, _$_vue_runtime_core0.ComponentOptionsMixin, {}, string, _$_vue_runtime_core0.PublicProps, Readonly<_$_vue_runtime_core0.ExtractPropTypes<{
@@ -289,10 +289,10 @@ declare const Box: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.Ext
289
289
  color: StringConstructor;
290
290
  bg: StringConstructor;
291
291
  backgroundColor: StringConstructor;
292
- "aria-label": StringConstructor;
293
- "aria-hidden": BooleanConstructor;
294
- "aria-role": PropType<BoxProps["aria-role"]>;
295
- "aria-state": PropType<BoxProps["aria-state"]>;
292
+ ariaLabel: StringConstructor;
293
+ ariaHidden: BooleanConstructor;
294
+ ariaRole: PropType<BoxProps["aria-role"]>;
295
+ ariaState: PropType<BoxProps["aria-state"]>;
296
296
  }>> & Readonly<{}>, {
297
297
  borderTop: boolean;
298
298
  borderRight: boolean;
@@ -303,7 +303,7 @@ declare const Box: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.Ext
303
303
  borderRightDimColor: boolean;
304
304
  borderBottomDimColor: boolean;
305
305
  borderLeftDimColor: boolean;
306
- "aria-hidden": boolean;
306
+ ariaHidden: boolean;
307
307
  }, {}, {}, {}, string, _$_vue_runtime_core0.ComponentProvideOptions, true, {}, any>;
308
308
  //#endregion
309
309
  //#region src/components/Spacer.d.ts
@@ -419,8 +419,8 @@ declare const Stack: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.E
419
419
  wrap: boolean;
420
420
  gap: number;
421
421
  direction: "horizontal" | "vertical";
422
- align: "center" | "stretch" | "end" | "start" | undefined;
423
- justify: "center" | "end" | "start" | "between" | "around" | "evenly" | undefined;
422
+ align: "center" | "stretch" | "start" | "end" | undefined;
423
+ justify: "center" | "start" | "end" | "between" | "around" | "evenly" | undefined;
424
424
  }, {}, {}, {}, string, _$_vue_runtime_core0.ComponentProvideOptions, true, {}, any>;
425
425
  declare const HStack: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.ExtractPropTypes<{
426
426
  gap: {
@@ -612,8 +612,8 @@ declare const Text: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.Ex
612
612
  underline: BooleanConstructor;
613
613
  strikethrough: BooleanConstructor;
614
614
  inverse: BooleanConstructor;
615
- "aria-label": StringConstructor;
616
- "aria-hidden": BooleanConstructor;
615
+ ariaLabel: StringConstructor;
616
+ ariaHidden: BooleanConstructor;
617
617
  }>, () => _$_vue_runtime_core0.VNode<_$_vue_runtime_core0.RendererNode, _$_vue_runtime_core0.RendererElement, {
618
618
  [key: string]: any;
619
619
  }> | null, {}, {}, {}, _$_vue_runtime_core0.ComponentOptionsMixin, _$_vue_runtime_core0.ComponentOptionsMixin, {}, string, _$_vue_runtime_core0.PublicProps, Readonly<_$_vue_runtime_core0.ExtractPropTypes<{
@@ -630,11 +630,11 @@ declare const Text: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.Ex
630
630
  underline: BooleanConstructor;
631
631
  strikethrough: BooleanConstructor;
632
632
  inverse: BooleanConstructor;
633
- "aria-label": StringConstructor;
634
- "aria-hidden": BooleanConstructor;
633
+ ariaLabel: StringConstructor;
634
+ ariaHidden: BooleanConstructor;
635
635
  }>> & Readonly<{}>, {
636
636
  bold: boolean;
637
- "aria-hidden": boolean;
637
+ ariaHidden: boolean;
638
638
  dim: boolean;
639
639
  dimColor: boolean;
640
640
  italic: boolean;
@@ -812,9 +812,9 @@ declare const Code: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.Ex
812
812
  border: "none" | "single" | "double" | "rounded" | undefined;
813
813
  fg: string;
814
814
  lineNumbers: boolean;
815
- lineNumberFg: string;
816
815
  startLine: number;
817
816
  highlightLines: number[];
817
+ lineNumberFg: string;
818
818
  highlightBg: string;
819
819
  }, {}, {}, {}, string, _$_vue_runtime_core0.ComponentProvideOptions, true, {}, any>;
820
820
  //#endregion
@@ -943,7 +943,7 @@ declare const TextInput: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_cor
943
943
  bg: StringConstructor;
944
944
  }>, () => _$_vue_runtime_core0.VNode<_$_vue_runtime_core0.RendererNode, _$_vue_runtime_core0.RendererElement, {
945
945
  [key: string]: any;
946
- }>, {}, {}, {}, _$_vue_runtime_core0.ComponentOptionsMixin, _$_vue_runtime_core0.ComponentOptionsMixin, ("cancel" | "compositionend" | "compositionstart" | "compositionupdate" | "submit" | "update:modelValue")[], "cancel" | "compositionend" | "compositionstart" | "compositionupdate" | "submit" | "update:modelValue", _$_vue_runtime_core0.PublicProps, Readonly<_$_vue_runtime_core0.ExtractPropTypes<{
946
+ }>, {}, {}, {}, _$_vue_runtime_core0.ComponentOptionsMixin, _$_vue_runtime_core0.ComponentOptionsMixin, ("cancel" | "update:modelValue" | "submit" | "compositionstart" | "compositionupdate" | "compositionend")[], "cancel" | "update:modelValue" | "submit" | "compositionstart" | "compositionupdate" | "compositionend", _$_vue_runtime_core0.PublicProps, Readonly<_$_vue_runtime_core0.ExtractPropTypes<{
947
947
  modelValue: {
948
948
  type: StringConstructor;
949
949
  default: string;
@@ -973,16 +973,16 @@ declare const TextInput: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_cor
973
973
  bg: StringConstructor;
974
974
  }>> & Readonly<{
975
975
  onCancel?: ((...args: any[]) => any) | undefined;
976
- onCompositionend?: ((...args: any[]) => any) | undefined;
976
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
977
+ onSubmit?: ((...args: any[]) => any) | undefined;
977
978
  onCompositionstart?: ((...args: any[]) => any) | undefined;
978
979
  onCompositionupdate?: ((...args: any[]) => any) | undefined;
979
- onSubmit?: ((...args: any[]) => any) | undefined;
980
- "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
980
+ onCompositionend?: ((...args: any[]) => any) | undefined;
981
981
  }>, {
982
- focus: boolean;
983
982
  modelValue: string;
984
983
  placeholder: string;
985
984
  focused: boolean;
985
+ focus: boolean;
986
986
  mask: boolean;
987
987
  maskChar: string;
988
988
  }, {}, {}, {}, string, _$_vue_runtime_core0.ComponentProvideOptions, true, {}, any>;
@@ -1108,11 +1108,11 @@ declare const TextArea: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core
1108
1108
  border: "none" | "single" | "double" | "rounded" | undefined;
1109
1109
  disabled: boolean;
1110
1110
  modelValue: string;
1111
- focused: boolean;
1112
- rows: number;
1113
1111
  lineNumbers: boolean;
1114
- placeholderFg: string;
1115
1112
  lineNumberFg: string;
1113
+ rows: number;
1114
+ focused: boolean;
1115
+ placeholderFg: string;
1116
1116
  cursorLine: number;
1117
1117
  cursorColumn: number;
1118
1118
  }, {}, {}, {}, string, _$_vue_runtime_core0.ComponentProvideOptions, true, {}, any>;
@@ -1209,11 +1209,11 @@ declare const Select: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.
1209
1209
  onSelect?: ((...args: any[]) => any) | undefined;
1210
1210
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
1211
1211
  }>, {
1212
+ selectedFg: string;
1212
1213
  placeholder: string;
1213
1214
  focused: boolean;
1214
1215
  indicator: string;
1215
1216
  indicatorEmpty: string;
1216
- selectedFg: string;
1217
1217
  }, {}, {}, {}, string, _$_vue_runtime_core0.ComponentProvideOptions, true, {}, any>;
1218
1218
  //#endregion
1219
1219
  //#region src/components/Checkbox.d.ts
@@ -1267,7 +1267,7 @@ declare const Checkbox: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core
1267
1267
  };
1268
1268
  }>, () => _$_vue_runtime_core0.VNode<_$_vue_runtime_core0.RendererNode, _$_vue_runtime_core0.RendererElement, {
1269
1269
  [key: string]: any;
1270
- }>, {}, {}, {}, _$_vue_runtime_core0.ComponentOptionsMixin, _$_vue_runtime_core0.ComponentOptionsMixin, ("change" | "update:modelValue")[], "change" | "update:modelValue", _$_vue_runtime_core0.PublicProps, Readonly<_$_vue_runtime_core0.ExtractPropTypes<{
1270
+ }>, {}, {}, {}, _$_vue_runtime_core0.ComponentOptionsMixin, _$_vue_runtime_core0.ComponentOptionsMixin, ("update:modelValue" | "change")[], "update:modelValue" | "change", _$_vue_runtime_core0.PublicProps, Readonly<_$_vue_runtime_core0.ExtractPropTypes<{
1271
1271
  modelValue: {
1272
1272
  type: BooleanConstructor;
1273
1273
  default: boolean;
@@ -1295,8 +1295,8 @@ declare const Checkbox: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core
1295
1295
  default: string;
1296
1296
  };
1297
1297
  }>> & Readonly<{
1298
- onChange?: ((...args: any[]) => any) | undefined;
1299
1298
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
1299
+ onChange?: ((...args: any[]) => any) | undefined;
1300
1300
  }>, {
1301
1301
  checked: string;
1302
1302
  disabled: boolean;
@@ -1356,7 +1356,7 @@ declare const RadioGroup: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_co
1356
1356
  };
1357
1357
  }>, () => _$_vue_runtime_core0.VNode<_$_vue_runtime_core0.RendererNode, _$_vue_runtime_core0.RendererElement, {
1358
1358
  [key: string]: any;
1359
- }>, {}, {}, {}, _$_vue_runtime_core0.ComponentOptionsMixin, _$_vue_runtime_core0.ComponentOptionsMixin, ("change" | "update:modelValue")[], "change" | "update:modelValue", _$_vue_runtime_core0.PublicProps, Readonly<_$_vue_runtime_core0.ExtractPropTypes<{
1359
+ }>, {}, {}, {}, _$_vue_runtime_core0.ComponentOptionsMixin, _$_vue_runtime_core0.ComponentOptionsMixin, ("update:modelValue" | "change")[], "update:modelValue" | "change", _$_vue_runtime_core0.PublicProps, Readonly<_$_vue_runtime_core0.ExtractPropTypes<{
1360
1360
  options: {
1361
1361
  type: PropType<RadioOption[]>;
1362
1362
  required: true;
@@ -1381,8 +1381,8 @@ declare const RadioGroup: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_co
1381
1381
  default: string;
1382
1382
  };
1383
1383
  }>> & Readonly<{
1384
- onChange?: ((...args: any[]) => any) | undefined;
1385
1384
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
1385
+ onChange?: ((...args: any[]) => any) | undefined;
1386
1386
  }>, {
1387
1387
  selected: string;
1388
1388
  direction: "horizontal" | "vertical";
@@ -1441,7 +1441,7 @@ declare const Confirm: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0
1441
1441
  };
1442
1442
  }>, () => _$_vue_runtime_core0.VNode<_$_vue_runtime_core0.RendererNode, _$_vue_runtime_core0.RendererElement, {
1443
1443
  [key: string]: any;
1444
- }>, {}, {}, {}, _$_vue_runtime_core0.ComponentOptionsMixin, _$_vue_runtime_core0.ComponentOptionsMixin, ("select" | "cancel" | "confirm")[], "select" | "cancel" | "confirm", _$_vue_runtime_core0.PublicProps, Readonly<_$_vue_runtime_core0.ExtractPropTypes<{
1444
+ }>, {}, {}, {}, _$_vue_runtime_core0.ComponentOptionsMixin, _$_vue_runtime_core0.ComponentOptionsMixin, ("confirm" | "cancel" | "select")[], "confirm" | "cancel" | "select", _$_vue_runtime_core0.PublicProps, Readonly<_$_vue_runtime_core0.ExtractPropTypes<{
1445
1445
  message: {
1446
1446
  type: StringConstructor;
1447
1447
  required: true;
@@ -1471,16 +1471,16 @@ declare const Confirm: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0
1471
1471
  default: string;
1472
1472
  };
1473
1473
  }>> & Readonly<{
1474
- onSelect?: ((...args: any[]) => any) | undefined;
1475
- onCancel?: ((...args: any[]) => any) | undefined;
1476
1474
  onConfirm?: ((...args: any[]) => any) | undefined;
1475
+ onCancel?: ((...args: any[]) => any) | undefined;
1476
+ onSelect?: ((...args: any[]) => any) | undefined;
1477
1477
  }>, {
1478
- selectedFg: string;
1479
1478
  confirmText: string;
1480
1479
  cancelText: string;
1481
1480
  defaultConfirm: boolean;
1482
1481
  confirmFg: string;
1483
1482
  cancelFg: string;
1483
+ selectedFg: string;
1484
1484
  }, {}, {}, {}, string, _$_vue_runtime_core0.ComponentProvideOptions, true, {}, any>;
1485
1485
  //#endregion
1486
1486
  //#region src/components/Form.d.ts
@@ -2120,10 +2120,10 @@ declare const List: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.Ex
2120
2120
  onSelect?: ((...args: any[]) => any) | undefined;
2121
2121
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
2122
2122
  }>, {
2123
+ selectedFg: string;
2123
2124
  focused: boolean;
2124
2125
  indicator: string;
2125
2126
  indicatorEmpty: string;
2126
- selectedFg: string;
2127
2127
  }, {}, {}, {}, string, _$_vue_runtime_core0.ComponentProvideOptions, true, {}, any>;
2128
2128
  //#endregion
2129
2129
  //#region src/components/Table.d.ts
@@ -2480,7 +2480,7 @@ declare const Tabs: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.Ex
2480
2480
  };
2481
2481
  }>, () => VNode<_$_vue_runtime_core0.RendererNode, _$_vue_runtime_core0.RendererElement, {
2482
2482
  [key: string]: any;
2483
- }>, {}, {}, {}, _$_vue_runtime_core0.ComponentOptionsMixin, _$_vue_runtime_core0.ComponentOptionsMixin, ("change" | "update:modelValue")[], "change" | "update:modelValue", _$_vue_runtime_core0.PublicProps, Readonly<_$_vue_runtime_core0.ExtractPropTypes<{
2483
+ }>, {}, {}, {}, _$_vue_runtime_core0.ComponentOptionsMixin, _$_vue_runtime_core0.ComponentOptionsMixin, ("update:modelValue" | "change")[], "update:modelValue" | "change", _$_vue_runtime_core0.PublicProps, Readonly<_$_vue_runtime_core0.ExtractPropTypes<{
2484
2484
  tabs: {
2485
2485
  type: PropType<Tab[]>;
2486
2486
  required: true;
@@ -2505,8 +2505,8 @@ declare const Tabs: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.Ex
2505
2505
  default: boolean;
2506
2506
  };
2507
2507
  }>> & Readonly<{
2508
- onChange?: ((...args: any[]) => any) | undefined;
2509
2508
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
2509
+ onChange?: ((...args: any[]) => any) | undefined;
2510
2510
  }>, {
2511
2511
  position: "top" | "bottom";
2512
2512
  underline: boolean;
@@ -2782,10 +2782,10 @@ declare const Modal: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.E
2782
2782
  }>> & Readonly<{
2783
2783
  onClose?: ((...args: any[]) => any) | undefined;
2784
2784
  }>, {
2785
- visible: boolean;
2786
- border: "single" | "double" | "rounded" | "heavy" | undefined;
2787
2785
  width: string | number;
2788
2786
  height: string | number;
2787
+ visible: boolean;
2788
+ border: "single" | "double" | "rounded" | "heavy" | undefined;
2789
2789
  titleFg: string;
2790
2790
  }, {}, {}, {}, string, _$_vue_runtime_core0.ComponentProvideOptions, true, {}, any>;
2791
2791
  //#endregion
@@ -3069,4 +3069,4 @@ declare const Avatar: _$_vue_runtime_core0.DefineComponent<_$_vue_runtime_core0.
3069
3069
  }, {}, {}, {}, string, _$_vue_runtime_core0.ComponentProvideOptions, true, {}, any>;
3070
3070
  //#endregion
3071
3071
  export { FormProps as $, TableColumn as A, HStack as At, TimerProps as B, Menu as C, NewlineProps as Ct, TreeNode as D, CardProps as Dt, Tree as E, Card as Et, Tooltip as F, DividerProps as Ft, AlertProps as G, BadgeProps as H, TooltipPosition as I, Spacer as It, ProgressBarProps as J, AlertType as K, TooltipProps as L, Box as Lt, List as M, StackProps as Mt, ListItem as N, VStack as Nt, TreeProps as O, Grid as Ot, ListProps as P, Divider as Pt, FormField as Q, Timer as R, BoxProps as Rt, TabsProps as S, Newline as St, MenuProps as T, TextProps as Tt, BadgeVariant as U, Badge as V, Alert as W, SpinnerProps as X, Spinner as Y, Form as Z, Breadcrumb as _, CodeProps as _t, KeyHintProps as a, Checkbox as at, Tab as b, Static as bt, StatusBar as c, SelectOption as ct, Modal as d, TextAreaProps as dt, Confirm as et, ModalProps as f, TextInput as ft, StepperProps as g, Code as gt, Stepper as h, LinkProps as ht, KeyHint as i, RadioOption as it, TableProps as j, Stack as jt, Table as k, GridProps as kt, StatusBarItem as l, SelectProps as lt, StepStatus as m, Link as mt, AvatarProps as n, RadioGroup as nt, Header as o, CheckboxProps as ot, Step as p, TextInputProps as pt, ProgressBar as q, KeyBinding as r, RadioGroupProps as rt, HeaderProps as s, Select as st, Avatar as t, ConfirmProps as tt, StatusBarProps as u, TextArea as ut, BreadcrumbItem as v, Transform as vt, MenuItem as w, Text as wt, Tabs as x, StaticProps as xt, BreadcrumbProps as y, TransformProps as yt, TimerMode as z, createRenderer$1 as zt };
3072
- //# sourceMappingURL=index-9j19nXeR.d.mts.map
3072
+ //# sourceMappingURL=index-IdOGN0UX.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-IdOGN0UX.d.mts","names":[],"sources":["../src/renderer.ts","../src/accessibility.ts","../src/components/Box.ts","../src/components/Spacer.ts","../src/components/Divider.ts","../src/components/Stack.ts","../src/components/Grid.ts","../src/components/Card.ts","../src/components/Text.ts","../src/components/Newline.ts","../src/components/Static.ts","../src/components/Transform.ts","../src/components/Code.ts","../src/components/Link.ts","../src/components/TextInput.ts","../src/components/TextArea.ts","../src/components/Select.ts","../src/components/Checkbox.ts","../src/components/RadioGroup.ts","../src/components/Confirm.ts","../src/components/Form.ts","../src/components/Spinner.ts","../src/components/ProgressBar.ts","../src/components/Alert.ts","../src/components/Badge.ts","../src/components/Timer.ts","../src/components/Tooltip.ts","../src/components/List.ts","../src/components/Table.ts","../src/components/Tree.ts","../src/components/Menu.ts","../src/components/Tabs.ts","../src/components/Breadcrumb.ts","../src/components/Stepper.ts","../src/components/Modal.ts","../src/components/StatusBar.ts","../src/components/Header.ts","../src/components/KeyHint.ts","../src/components/Avatar.ts"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { $ as FormProps, A as TableColumn, At as HStack, B as TimerProps, C as Menu, Ct as NewlineProps, D as TreeNode, Dt as CardProps, E as Tree, Et as Card, F as Tooltip, Ft as DividerProps, G as AlertProps, H as BadgeProps, I as TooltipPosition, It as Spacer, J as ProgressBarProps, K as AlertType, L as TooltipProps, Lt as Box, M as List, Mt as StackProps, N as ListItem, Nt as VStack, O as TreeProps, Ot as Grid, P as ListProps, Pt as Divider, Q as FormField, R as Timer, Rt as BoxProps, S as TabsProps, St as Newline, T as MenuProps, Tt as TextProps, U as BadgeVariant, V as Badge, W as Alert, X as SpinnerProps, Y as Spinner, Z as Form, _ as Breadcrumb, _t as CodeProps, a as KeyHintProps, at as Checkbox, b as Tab, bt as Static, c as StatusBar, ct as SelectOption, d as Modal, dt as TextAreaProps, et as Confirm, f as ModalProps, ft as TextInput, g as StepperProps, gt as Code, h as Stepper, ht as LinkProps, i as KeyHint, it as RadioOption, j as TableProps, jt as Stack, k as Table, kt as GridProps, l as StatusBarItem, lt as SelectProps, m as StepStatus, mt as Link, n as AvatarProps, nt as RadioGroup, o as Header, ot as CheckboxProps, p as Step, pt as TextInputProps, q as ProgressBar, r as KeyBinding, rt as RadioGroupProps, s as HeaderProps, st as Select, t as Avatar, tt as ConfirmProps, u as StatusBarProps, ut as TextArea, v as BreadcrumbItem, vt as Transform, w as MenuItem, wt as Text, x as Tabs, xt as StaticProps, y as BreadcrumbProps, yt as TransformProps, z as TimerMode, zt as createRenderer } from "./index-9j19nXeR.mjs";
1
+ import { $ as FormProps, A as TableColumn, At as HStack, B as TimerProps, C as Menu, Ct as NewlineProps, D as TreeNode, Dt as CardProps, E as Tree, Et as Card, F as Tooltip, Ft as DividerProps, G as AlertProps, H as BadgeProps, I as TooltipPosition, It as Spacer, J as ProgressBarProps, K as AlertType, L as TooltipProps, Lt as Box, M as List, Mt as StackProps, N as ListItem, Nt as VStack, O as TreeProps, Ot as Grid, P as ListProps, Pt as Divider, Q as FormField, R as Timer, Rt as BoxProps, S as TabsProps, St as Newline, T as MenuProps, Tt as TextProps, U as BadgeVariant, V as Badge, W as Alert, X as SpinnerProps, Y as Spinner, Z as Form, _ as Breadcrumb, _t as CodeProps, a as KeyHintProps, at as Checkbox, b as Tab, bt as Static, c as StatusBar, ct as SelectOption, d as Modal, dt as TextAreaProps, et as Confirm, f as ModalProps, ft as TextInput, g as StepperProps, gt as Code, h as Stepper, ht as LinkProps, i as KeyHint, it as RadioOption, j as TableProps, jt as Stack, k as Table, kt as GridProps, l as StatusBarItem, lt as SelectProps, m as StepStatus, mt as Link, n as AvatarProps, nt as RadioGroup, o as Header, ot as CheckboxProps, p as Step, pt as TextInputProps, q as ProgressBar, r as KeyBinding, rt as RadioGroupProps, s as HeaderProps, st as Select, t as Avatar, tt as ConfirmProps, u as StatusBarProps, ut as TextArea, v as BreadcrumbItem, vt as Transform, w as MenuItem, wt as Text, x as Tabs, xt as StaticProps, y as BreadcrumbProps, yt as TransformProps, z as TimerMode, zt as createRenderer } from "./index-IdOGN0UX.mjs";
2
2
  import { A as usePaste, C as UseAppReturn, D as useFocus, E as UseFocusOptions, F as UseInputReturn, I as useInput, L as useKeyPress, M as Key, N as KeyHandler, O as useFocusManager, P as UseInputOptions, S as useIme, T as FocusManager, _ as useStderr, a as DOMElement, b as ImeManager, c as UseAnimationOptions, d as useCursor, f as WindowSize, g as UseStdoutReturn, h as UseStdinReturn, i as useBoxMetrics, j as InputHandler, k as UsePasteOptions, l as useAnimation, m as UseStderrReturn, n as BoxMetrics, o as measureElement, p as useWindowSize, r as UseBoxMetricsResult, s as AnimationResult, t as useIsScreenReaderEnabled, u as CursorPosition, v as useStdin, w as useApp, x as UseImeOptions, y as useStdout } from "./index-43FxHkwF.mjs";
3
3
  import { Component, Ref, VNode } from "@vue/runtime-core";
4
4
  import { FlexStyleNapi, ImeStateNapi, InputEventNapi, LayoutResultNapi, ModifiersNapi, RenderNodeNapi, StyleNapi, TerminalInfoNapi, TerminalOptionsNapi } from "@vizejs/fresco-native";
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { C as useFocusManager, S as useFocus, a as createApp, b as useStdin, c as lastKeyEvent, d as lastResizeEvent, f as render, g as measureElement, i as useIsScreenReaderEnabled, l as lastMouseEvent, m as createRenderer, n as useKeyPress, o as lastCompositionEvent, p as renderToString, r as usePaste, s as lastFocusEvent, t as useInput, u as lastPasteEvent, v as useCursor, w as useApp, x as useStdout, y as useStderr } from "./useInput-DrlvpGkS.mjs";
2
- import { A as Newline, C as Select, D as Code, E as Link, F as Stack, I as VStack, L as Divider, M as Card, N as Grid, O as Transform, P as HStack, R as Spacer, S as Checkbox, T as TextInput, _ as ProgressBar, a as Modal, b as Confirm, c as Tabs, d as Table, f as List, g as Alert, h as Badge, i as StatusBar, j as Text, k as Static, l as Menu, m as Timer, n as KeyHint, o as Stepper, p as Tooltip, r as Header, s as Breadcrumb, t as Avatar, u as Tree, v as Spinner, w as TextArea, x as RadioGroup, y as Form, z as Box } from "./components-BFV7PBp6.mjs";
3
- import { i as useIme, n as useAnimation, r as useWindowSize, t as useBoxMetrics } from "./composables-BKj30tnc.mjs";
1
+ import { C as useFocusManager, S as useFocus, a as createApp, b as useStdin, c as lastKeyEvent, d as lastResizeEvent, f as render, g as measureElement, i as useIsScreenReaderEnabled, l as lastMouseEvent, m as createRenderer, n as useKeyPress, o as lastCompositionEvent, p as renderToString, r as usePaste, s as lastFocusEvent, t as useInput, u as lastPasteEvent, v as useCursor, w as useApp, x as useStdout, y as useStderr } from "./useInput-BopE5ia7.mjs";
2
+ import { A as Newline, C as Select, D as Code, E as Link, F as Stack, I as VStack, L as Divider, M as Card, N as Grid, O as Transform, P as HStack, R as Spacer, S as Checkbox, T as TextInput, _ as ProgressBar, a as Modal, b as Confirm, c as Tabs, d as Table, f as List, g as Alert, h as Badge, i as StatusBar, j as Text, k as Static, l as Menu, m as Timer, n as KeyHint, o as Stepper, p as Tooltip, r as Header, s as Breadcrumb, t as Avatar, u as Tree, v as Spinner, w as TextArea, x as RadioGroup, y as Form, z as Box } from "./components-JxATjNGp.mjs";
3
+ import { i as useIme, n as useAnimation, r as useWindowSize, t as useBoxMetrics } from "./composables-D9lN8Kdo.mjs";
4
4
  //#region src/kittyKeyboard.ts
5
5
  /**
6
6
  * Kitty keyboard protocol constants compatible with Ink.
@@ -455,6 +455,10 @@ const rendererOptions = {
455
455
  else el.props[key] = nextValue;
456
456
  },
457
457
  insert(child, parent, anchor) {
458
+ if (child.parent) {
459
+ const existing = child.parent.children.indexOf(child);
460
+ if (existing !== -1) child.parent.children.splice(existing, 1);
461
+ }
458
462
  child.parent = parent;
459
463
  if (anchor) {
460
464
  const index = parent.children.indexOf(anchor);
@@ -1460,4 +1464,4 @@ function useKeyPress(key, handler, options = {}) {
1460
1464
  //#endregion
1461
1465
  export { useFocusManager as C, useFocus as S, updateLastRenderLayouts as _, createApp as a, useStdin as b, lastKeyEvent as c, lastResizeEvent as d, render as f, measureElement as g, getLastRenderLayout as h, useIsScreenReaderEnabled as i, lastMouseEvent as l, createRenderer$1 as m, useKeyPress as n, lastCompositionEvent as o, renderToString as p, usePaste as r, lastFocusEvent as s, useInput as t, lastPasteEvent as u, useCursor as v, useApp as w, useStdout as x, useStderr as y };
1462
1466
 
1463
- //# sourceMappingURL=useInput-DrlvpGkS.mjs.map
1467
+ //# sourceMappingURL=useInput-BopE5ia7.mjs.map