@variiant-ui/react-vite 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.js +626 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime-api-CpNtY-8z.d.ts +61 -0
- package/dist/runtime.d.ts +13 -0
- package/dist/runtime.js +488 -0
- package/dist/runtime.js.map +1 -0
- package/package.json +53 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/runtime.tsx","../src/runtime-dom.ts","../src/runtime-core.ts","../src/runtime-singleton.ts","../src/runtime-api.ts"],"sourcesContent":["import React, {\n useEffect,\n useMemo,\n useSyncExternalStore,\n type ComponentType,\n type ReactNode,\n} from \"react\";\n\nexport { getVariantRuntimeState, installVariantOverlay, setVariantShortcuts } from \"./runtime-api\";\nimport { getVariantRuntimeController } from \"./runtime-singleton\";\nimport type { ProxyDefinition } from \"./runtime-react-types\";\n\nexport {\n createVariantRuntimeController,\n defaultShortcuts,\n type RuntimeComponentRecord,\n type RuntimeState,\n type Shortcut,\n type VariantDefinition,\n type VariantRuntimeController,\n type VariantRuntimeSnapshot,\n type VariantRuntimeStorage,\n type VariantShortcutConfig,\n} from \"./runtime-core\";\nexport type { ProxyDefinition } from \"./runtime-react-types\";\n\nexport function createVariantProxy<Props extends object>({\n sourceId,\n displayName,\n selected,\n variants,\n}: ProxyDefinition<Props>): ComponentType<Props> {\n const controller = getVariantRuntimeController();\n const variantNames = Object.keys(variants);\n const initialSelected = variantNames.includes(selected) ? selected : \"source\";\n\n controller.define({\n sourceId,\n displayName,\n selected: initialSelected,\n variantNames,\n });\n\n function VariantProxy(props: Props): ReactNode {\n const currentVariant = useSyncExternalStore(\n controller.subscribe,\n () => controller.getSelectedVariant(sourceId, initialSelected),\n () => initialSelected,\n );\n\n useEffect(() => controller.mount(sourceId), []);\n\n const Component = useMemo(\n () => variants[currentVariant] ?? variants[initialSelected] ?? variants.source,\n [currentVariant],\n );\n\n return <Component {...props} />;\n }\n\n VariantProxy.displayName = `${displayName.replace(/\\s+/g, \"\")}VariantProxy`;\n return VariantProxy;\n}\n","import type {\n Shortcut,\n VariantRuntimeController,\n VariantRuntimeSnapshot,\n} from \"./runtime-core\";\n\nconst installedKeyboardControllers = new WeakSet<VariantRuntimeController>();\nconst installedOverlayControllers = new WeakSet<VariantRuntimeController>();\n\nfunction normalizeKey(key: string): string {\n const normalized = key.toLowerCase();\n if (normalized === \"esc\") {\n return \"escape\";\n }\n\n return normalized;\n}\n\nfunction parseShortcut(shortcut: string): {\n key: string;\n alt: boolean;\n ctrl: boolean;\n meta: boolean;\n shift: boolean;\n} {\n const tokens = shortcut.split(\"+\").map((token) => token.trim().toLowerCase()).filter(Boolean);\n const key = tokens[tokens.length - 1] ?? \"\";\n const modifiers = new Set(tokens.slice(0, -1));\n\n return {\n key: normalizeKey(key),\n alt: modifiers.has(\"alt\") || modifiers.has(\"option\"),\n ctrl: modifiers.has(\"ctrl\") || modifiers.has(\"control\"),\n meta: modifiers.has(\"meta\") || modifiers.has(\"cmd\") || modifiers.has(\"command\"),\n shift: modifiers.has(\"shift\"),\n };\n}\n\nfunction matchesShortcut(event: KeyboardEvent, shortcut: Shortcut): boolean {\n const shortcuts = Array.isArray(shortcut) ? shortcut : [shortcut];\n return shortcuts.some((candidate) => {\n const parsed = parseShortcut(candidate);\n return (\n normalizeKey(event.key) === parsed.key &&\n event.altKey === parsed.alt &&\n event.ctrlKey === parsed.ctrl &&\n event.metaKey === parsed.meta &&\n event.shiftKey === parsed.shift\n );\n });\n}\n\nfunction isEditableTarget(target: EventTarget | null): boolean {\n if (!(target instanceof HTMLElement)) {\n return false;\n }\n\n const tagName = target.tagName.toLowerCase();\n return (\n target.isContentEditable ||\n tagName === \"input\" ||\n tagName === \"textarea\" ||\n tagName === \"select\"\n );\n}\n\nexport function installVariantKeyboardBindings(controller: VariantRuntimeController): void {\n if (installedKeyboardControllers.has(controller) || typeof window === \"undefined\") {\n return;\n }\n\n const onKeyDown = (event: KeyboardEvent): void => {\n if (isEditableTarget(event.target)) {\n return;\n }\n\n const { shortcutConfig, overlayOpen } = controller.getSnapshot();\n if (matchesShortcut(event, shortcutConfig.toggleOverlay)) {\n event.preventDefault();\n controller.actions.toggleOverlay();\n return;\n }\n\n if (matchesShortcut(event, shortcutConfig.closeOverlay)) {\n if (overlayOpen) {\n event.preventDefault();\n controller.actions.closeOverlay();\n }\n return;\n }\n\n if (matchesShortcut(event, shortcutConfig.nextComponent)) {\n event.preventDefault();\n controller.actions.nextComponent();\n return;\n }\n\n if (matchesShortcut(event, shortcutConfig.previousComponent)) {\n event.preventDefault();\n controller.actions.previousComponent();\n return;\n }\n\n if (matchesShortcut(event, shortcutConfig.nextVariant)) {\n event.preventDefault();\n controller.actions.nextVariant();\n return;\n }\n\n if (matchesShortcut(event, shortcutConfig.previousVariant)) {\n event.preventDefault();\n controller.actions.previousVariant();\n }\n };\n\n window.addEventListener(\"keydown\", onKeyDown);\n installedKeyboardControllers.add(controller);\n}\n\nexport function installVariantOverlayUi(controller: VariantRuntimeController): void {\n if (installedOverlayControllers.has(controller) || typeof document === \"undefined\") {\n return;\n }\n\n const container = document.createElement(\"div\");\n container.setAttribute(\"data-variant-overlay-root\", \"true\");\n document.body.appendChild(container);\n\n const render = (): void => {\n renderOverlay(container, controller.getSnapshot(), controller);\n };\n\n controller.subscribe(render);\n installedOverlayControllers.add(controller);\n render();\n}\n\nfunction renderOverlay(\n container: HTMLDivElement,\n snapshot: VariantRuntimeSnapshot,\n controller: VariantRuntimeController,\n): void {\n if (!snapshot.overlayOpen) {\n container.innerHTML = \"\";\n return;\n }\n\n const mounted = snapshot.components.filter((component) => component.mountedCount > 0);\n const active =\n mounted.find((component) => component.sourceId === snapshot.activeSourceId) ?? mounted[0] ?? null;\n const activeSelection = active ? snapshot.selections[active.sourceId] ?? active.selected : null;\n\n const componentOptions = mounted\n .map((component) => {\n const selected = component.sourceId === active?.sourceId;\n return `<option value=\"${escapeHtml(component.sourceId)}\"${selected ? \" selected\" : \"\"}>${escapeHtml(\n component.displayName,\n )}</option>`;\n })\n .join(\"\");\n\n const variantOptions = active\n ? active.variantNames\n .map((variantName) => {\n const selected = activeSelection === variantName;\n return `<option value=\"${escapeHtml(variantName)}\"${selected ? \" selected\" : \"\"}>${escapeHtml(\n variantName,\n )}</option>`;\n })\n .join(\"\")\n : \"\";\n\n container.innerHTML = `\n<div style=\"${hudShellStyle()}\">\n <div style=\"${panelStyle()}\">\n <select data-variant-active-source=\"true\" style=\"${selectStyle()}\" ${mounted.length === 0 ? \"disabled\" : \"\"}>\n ${componentOptions || `<option value=\"\">No mounted components</option>`}\n </select>\n <select data-variant-active-choice=\"true\" style=\"${selectStyle()}\" ${!active ? \"disabled\" : \"\"}>\n ${variantOptions || `<option value=\"\">No variants</option>`}\n </select>\n </div>\n</div>`;\n\n container\n .querySelector<HTMLSelectElement>('[data-variant-active-source=\"true\"]')\n ?.addEventListener(\"change\", (event) => {\n const target = event.currentTarget as HTMLSelectElement;\n controller.actions.selectComponent(target.value || null);\n });\n\n container\n .querySelector<HTMLSelectElement>('[data-variant-active-choice=\"true\"]')\n ?.addEventListener(\"change\", (event) => {\n const target = event.currentTarget as HTMLSelectElement;\n if (!active || !target.value) {\n return;\n }\n\n controller.actions.selectVariant(active.sourceId, target.value);\n });\n}\n\nfunction escapeHtml(value: string): string {\n return value\n .replaceAll(\"&\", \"&\")\n .replaceAll(\"<\", \"<\")\n .replaceAll(\">\", \">\")\n .replaceAll('\"', \""\");\n}\n\nfunction hudShellStyle(): string {\n return [\n \"position:fixed\",\n \"top:16px\",\n \"right:16px\",\n \"z-index:9999\",\n \"pointer-events:none\",\n \"max-width:500px\",\n ].join(\";\");\n}\n\nfunction panelStyle(): string {\n return [\n \"display:flex\",\n \"align-items:center\",\n \"gap:8px\",\n \"height:48px\",\n \"width:100%\",\n \"background:rgba(255,255,255,0.98)\",\n \"backdrop-filter:blur(12px)\",\n \"box-shadow:0 18px 40px rgba(15,23,42,0.16)\",\n \"border:1px solid rgba(148,163,184,0.35)\",\n \"border-radius:14px\",\n \"padding:8px\",\n \"pointer-events:auto\",\n \"overflow:hidden\",\n 'font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif',\n \"color:#0f172a\",\n ].join(\";\");\n}\n\nfunction selectStyle(): string {\n return [\n \"flex:1\",\n \"min-width:0\",\n \"max-width:100%\",\n \"border:1px solid #cbd5e1\",\n \"height:32px\",\n \"border-radius:10px\",\n \"background:#fff\",\n \"color:#0f172a\",\n \"padding:0 10px\",\n \"font-size:13px\",\n \"outline:none\",\n ].join(\";\");\n}\n","type Direction = 1 | -1;\n\nexport type Shortcut = string | string[];\n\nexport type VariantShortcutConfig = {\n toggleOverlay: Shortcut;\n nextComponent: Shortcut;\n previousComponent: Shortcut;\n nextVariant: Shortcut;\n previousVariant: Shortcut;\n closeOverlay: Shortcut;\n};\n\nexport const defaultShortcuts: VariantShortcutConfig = {\n toggleOverlay: [\"meta+shift+.\", \"ctrl+shift+.\"],\n nextComponent: [\"meta+alt+arrowdown\", \"ctrl+alt+arrowdown\"],\n previousComponent: [\"meta+alt+arrowup\", \"ctrl+alt+arrowup\"],\n nextVariant: [\"meta+shift+arrowright\", \"ctrl+shift+arrowright\"],\n previousVariant: [\"meta+shift+arrowleft\", \"ctrl+shift+arrowleft\"],\n closeOverlay: \"escape\",\n};\n\nexport type VariantDefinition = {\n sourceId: string;\n displayName: string;\n selected: string;\n variantNames: string[];\n};\n\nexport type RuntimeComponentRecord = VariantDefinition & {\n mountedCount: number;\n};\n\nexport type RuntimeState = {\n overlayOpen: boolean;\n activeSourceId: string | null;\n components: RuntimeComponentRecord[];\n};\n\nexport type VariantRuntimeSnapshot = RuntimeState & {\n selections: Record<string, string>;\n shortcutConfig: VariantShortcutConfig;\n};\n\nexport type VariantRuntimeStorage = {\n readSelections: () => Record<string, string>;\n writeSelections: (selections: Record<string, string>) => void;\n readShortcutOverrides: () => Partial<VariantShortcutConfig>;\n writeShortcutOverrides: (shortcutConfig: VariantShortcutConfig) => void;\n};\n\nexport type VariantRuntimeController = {\n define: (definition: VariantDefinition) => void;\n mount: (sourceId: string) => () => void;\n getSelectedVariant: (sourceId: string, fallback: string) => string;\n getSnapshot: () => VariantRuntimeSnapshot;\n subscribe: (listener: () => void) => () => void;\n actions: {\n toggleOverlay: () => void;\n closeOverlay: () => void;\n nextComponent: () => void;\n previousComponent: () => void;\n nextVariant: () => void;\n previousVariant: () => void;\n selectComponent: (sourceId: string | null) => void;\n selectVariant: (sourceId: string, variantName: string) => void;\n configureShortcuts: (overrides?: Partial<VariantShortcutConfig>) => void;\n };\n};\n\ntype ControllerState = RuntimeState & {\n selections: Record<string, string>;\n shortcutConfig: VariantShortcutConfig;\n};\n\nfunction rotate<T>(items: T[], currentIndex: number, direction: Direction): T | null {\n if (items.length === 0) {\n return null;\n }\n\n const nextIndex = (currentIndex + direction + items.length) % items.length;\n return items[nextIndex] ?? null;\n}\n\nfunction getMountedComponents(state: ControllerState): RuntimeComponentRecord[] {\n return state.components.filter((component) => component.mountedCount > 0);\n}\n\nfunction getActiveMountedComponent(state: ControllerState): RuntimeComponentRecord | null {\n const mounted = getMountedComponents(state);\n return mounted.find((component) => component.sourceId === state.activeSourceId) ?? mounted[0] ?? null;\n}\n\nexport function createVariantRuntimeController(options: {\n storage?: VariantRuntimeStorage;\n} = {}): VariantRuntimeController {\n const storage = options.storage;\n const listeners = new Set<() => void>();\n const definitions = new Map<string, VariantDefinition>();\n const mountedCounts = new Map<string, number>();\n const state: ControllerState = {\n overlayOpen: false,\n activeSourceId: null,\n components: [],\n selections: storage?.readSelections() ?? {},\n shortcutConfig: {\n ...defaultShortcuts,\n ...(storage?.readShortcutOverrides() ?? {}),\n },\n };\n\n const emit = (): void => {\n state.components = Array.from(definitions.values())\n .map((definition) => ({\n ...definition,\n selected: state.selections[definition.sourceId] ?? definition.selected,\n mountedCount: mountedCounts.get(definition.sourceId) ?? 0,\n }))\n .sort((left, right) => left.displayName.localeCompare(right.displayName));\n\n const mounted = getMountedComponents(state);\n if (!mounted.some((component) => component.sourceId === state.activeSourceId)) {\n state.activeSourceId = mounted[0]?.sourceId ?? null;\n }\n\n for (const listener of listeners) {\n listener();\n }\n };\n\n const persistSelections = (): void => {\n storage?.writeSelections(state.selections);\n };\n\n const persistShortcuts = (): void => {\n storage?.writeShortcutOverrides(state.shortcutConfig);\n };\n\n const moveActiveComponent = (direction: Direction): void => {\n const mounted = getMountedComponents(state);\n if (mounted.length === 0) {\n return;\n }\n\n const currentIndex = mounted.findIndex((component) => component.sourceId === state.activeSourceId);\n const current = currentIndex >= 0 ? currentIndex : 0;\n const next = rotate(mounted, current, direction);\n if (!next) {\n return;\n }\n\n state.activeSourceId = next.sourceId;\n emit();\n };\n\n const moveVariant = (direction: Direction): void => {\n const active = getActiveMountedComponent(state);\n if (!active) {\n return;\n }\n\n const currentIndex = active.variantNames.findIndex(\n (variantName) => variantName === (state.selections[active.sourceId] ?? active.selected),\n );\n const current = currentIndex >= 0 ? currentIndex : 0;\n const next = rotate(active.variantNames, current, direction);\n if (!next) {\n return;\n }\n\n state.selections[active.sourceId] = next;\n persistSelections();\n emit();\n };\n\n return {\n define(definition) {\n const existing = definitions.get(definition.sourceId);\n definitions.set(definition.sourceId, {\n ...definition,\n displayName: definition.displayName || existing?.displayName || definition.sourceId,\n variantNames: Array.from(\n new Set([...(existing?.variantNames ?? []), ...definition.variantNames]),\n ),\n });\n\n if (!(definition.sourceId in state.selections)) {\n state.selections[definition.sourceId] = definition.selected;\n persistSelections();\n }\n\n emit();\n },\n mount(sourceId) {\n mountedCounts.set(sourceId, (mountedCounts.get(sourceId) ?? 0) + 1);\n emit();\n return () => {\n mountedCounts.set(sourceId, Math.max((mountedCounts.get(sourceId) ?? 1) - 1, 0));\n emit();\n };\n },\n getSelectedVariant(sourceId, fallback) {\n return state.selections[sourceId] ?? fallback;\n },\n getSnapshot() {\n return {\n overlayOpen: state.overlayOpen,\n activeSourceId: state.activeSourceId,\n components: state.components,\n selections: state.selections,\n shortcutConfig: state.shortcutConfig,\n };\n },\n subscribe(listener) {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n },\n actions: {\n toggleOverlay() {\n state.overlayOpen = !state.overlayOpen;\n emit();\n },\n closeOverlay() {\n if (!state.overlayOpen) {\n return;\n }\n\n state.overlayOpen = false;\n emit();\n },\n nextComponent() {\n moveActiveComponent(1);\n },\n previousComponent() {\n moveActiveComponent(-1);\n },\n nextVariant() {\n moveVariant(1);\n },\n previousVariant() {\n moveVariant(-1);\n },\n selectComponent(sourceId) {\n state.activeSourceId = sourceId;\n emit();\n },\n selectVariant(sourceId, variantName) {\n const component = state.components.find((candidate) => candidate.sourceId === sourceId);\n if (!component || !component.variantNames.includes(variantName)) {\n return;\n }\n\n state.selections[sourceId] = variantName;\n persistSelections();\n emit();\n },\n configureShortcuts(overrides) {\n if (!overrides) {\n return;\n }\n\n state.shortcutConfig = {\n ...state.shortcutConfig,\n ...overrides,\n };\n persistShortcuts();\n emit();\n },\n },\n };\n}\n","import {\n createVariantRuntimeController,\n type VariantRuntimeController,\n type VariantRuntimeStorage,\n} from \"./runtime-core\";\n\nconst storageKey = \"variant:component-selections\";\nconst shortcutStorageKey = \"variant:shortcut-config\";\nconst globalControllerKey = \"__variant_runtime_controller__\";\n\nfunction createBrowserStorage(): VariantRuntimeStorage {\n return {\n readSelections() {\n if (typeof window === \"undefined\") {\n return {};\n }\n\n try {\n const raw = window.localStorage.getItem(storageKey);\n return raw ? (JSON.parse(raw) as Record<string, string>) : {};\n } catch {\n return {};\n }\n },\n writeSelections(selections) {\n if (typeof window === \"undefined\") {\n return;\n }\n\n window.localStorage.setItem(storageKey, JSON.stringify(selections));\n },\n readShortcutOverrides() {\n if (typeof window === \"undefined\") {\n return {};\n }\n\n try {\n const raw = window.localStorage.getItem(shortcutStorageKey);\n return raw ? JSON.parse(raw) : {};\n } catch {\n return {};\n }\n },\n writeShortcutOverrides(shortcutConfig) {\n if (typeof window === \"undefined\") {\n return;\n }\n\n window.localStorage.setItem(shortcutStorageKey, JSON.stringify(shortcutConfig));\n },\n };\n}\n\nexport function getVariantRuntimeController(): VariantRuntimeController {\n const target = globalThis as typeof globalThis & {\n [globalControllerKey]?: VariantRuntimeController;\n };\n\n if (!target[globalControllerKey]) {\n target[globalControllerKey] = createVariantRuntimeController({\n storage: createBrowserStorage(),\n });\n }\n\n return target[globalControllerKey]!;\n}\n","import type { RuntimeState, VariantShortcutConfig } from \"./runtime-core\";\nimport { installVariantKeyboardBindings, installVariantOverlayUi } from \"./runtime-dom\";\nimport { getVariantRuntimeController } from \"./runtime-singleton\";\n\nexport function installVariantOverlay(shortcuts?: Partial<VariantShortcutConfig>): void {\n const controller = getVariantRuntimeController();\n controller.actions.configureShortcuts(shortcuts);\n installVariantKeyboardBindings(controller);\n installVariantOverlayUi(controller);\n}\n\nexport function setVariantShortcuts(shortcuts: Partial<VariantShortcutConfig>): void {\n getVariantRuntimeController().actions.configureShortcuts(shortcuts);\n}\n\nexport function getVariantRuntimeState(): RuntimeState {\n const state = getVariantRuntimeController().getSnapshot();\n return {\n overlayOpen: state.overlayOpen,\n activeSourceId: state.activeSourceId,\n components: state.components,\n };\n}\n"],"mappings":"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","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@variiant-ui/react-vite",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "React + Vite component variant tooling with a development overlay and production-safe selection.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"module": "./dist/index.js",
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/variiant-ui/react-vite.git"
|
|
13
|
+
},
|
|
14
|
+
"homepage": "https://github.com/variiant-ui/react-vite#readme",
|
|
15
|
+
"bugs": {
|
|
16
|
+
"url": "https://github.com/variiant-ui/react-vite/issues"
|
|
17
|
+
},
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"react",
|
|
23
|
+
"vite",
|
|
24
|
+
"components",
|
|
25
|
+
"variants",
|
|
26
|
+
"design-systems",
|
|
27
|
+
"design-iteration",
|
|
28
|
+
"ui"
|
|
29
|
+
],
|
|
30
|
+
"exports": {
|
|
31
|
+
".": {
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"import": "./dist/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./runtime": {
|
|
36
|
+
"types": "./dist/runtime.d.ts",
|
|
37
|
+
"import": "./dist/runtime.js"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"dist"
|
|
42
|
+
],
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build": "tsup",
|
|
45
|
+
"dev": "tsup --watch",
|
|
46
|
+
"test": "vitest run"
|
|
47
|
+
},
|
|
48
|
+
"peerDependencies": {
|
|
49
|
+
"react": ">=18",
|
|
50
|
+
"react-dom": ">=18",
|
|
51
|
+
"vite": ">=5"
|
|
52
|
+
}
|
|
53
|
+
}
|