tailwind-styled-v4 1.0.1 → 5.0.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/dist/animate.cjs +771 -0
- package/dist/animate.cjs.map +1 -0
- package/dist/animate.d.cts +73 -0
- package/dist/animate.d.ts +73 -0
- package/dist/animate.js +752 -0
- package/dist/animate.js.map +1 -0
- package/dist/chunk-VZEJV27B.js +11 -0
- package/dist/chunk-VZEJV27B.js.map +1 -0
- package/dist/chunk-Y5D3E72P.cjs +13 -0
- package/dist/chunk-Y5D3E72P.cjs.map +1 -0
- package/dist/css.cjs +121 -0
- package/dist/css.cjs.map +1 -0
- package/dist/css.d.cts +30 -0
- package/dist/css.d.ts +30 -0
- package/dist/css.js +112 -0
- package/dist/css.js.map +1 -0
- package/dist/devtools.cjs +1071 -0
- package/dist/devtools.cjs.map +1 -0
- package/dist/devtools.d.cts +22 -0
- package/dist/devtools.d.ts +22 -0
- package/dist/devtools.js +1064 -0
- package/dist/devtools.js.map +1 -0
- package/dist/index.cjs +1353 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +655 -0
- package/dist/index.d.ts +508 -968
- package/dist/index.js +1304 -3
- package/dist/index.js.map +1 -1
- package/dist/next.cjs +248 -0
- package/dist/next.cjs.map +1 -0
- package/dist/next.d.cts +54 -0
- package/dist/next.d.ts +54 -0
- package/dist/next.js +241 -0
- package/dist/next.js.map +1 -0
- package/dist/preset.cjs +423 -0
- package/dist/preset.cjs.map +1 -0
- package/dist/preset.d.cts +276 -0
- package/dist/preset.d.ts +276 -0
- package/dist/preset.js +416 -0
- package/dist/preset.js.map +1 -0
- package/dist/turbopackLoader.cjs +37 -0
- package/dist/turbopackLoader.cjs.map +1 -0
- package/dist/turbopackLoader.d.cts +12 -0
- package/dist/turbopackLoader.d.ts +12 -0
- package/dist/turbopackLoader.js +35 -0
- package/dist/turbopackLoader.js.map +1 -0
- package/dist/vite.cjs +138 -0
- package/dist/vite.cjs.map +1 -0
- package/dist/vite.d.cts +51 -0
- package/dist/vite.d.ts +51 -0
- package/dist/vite.js +128 -0
- package/dist/vite.js.map +1 -0
- package/dist/webpackLoader.cjs +51 -0
- package/dist/webpackLoader.cjs.map +1 -0
- package/dist/webpackLoader.d.cts +17 -0
- package/dist/webpackLoader.d.ts +17 -0
- package/dist/webpackLoader.js +49 -0
- package/dist/webpackLoader.js.map +1 -0
- package/package.json +65 -32
- package/CHANGELOG.md +0 -75
- package/LICENSE +0 -21
- package/README.md +0 -608
- package/dist/cli/init.js +0 -208
- package/dist/compiler/index.d.mts +0 -214
- package/dist/compiler/index.d.ts +0 -214
- package/dist/compiler/index.js +0 -546
- package/dist/compiler/index.js.map +0 -1
- package/dist/compiler/index.mjs +0 -504
- package/dist/compiler/index.mjs.map +0 -1
- package/dist/index.d.mts +0 -1115
- package/dist/index.mjs +0 -4
- package/dist/index.mjs.map +0 -1
- package/dist/turbopack-loader.js +0 -232
- package/dist/webpack-loader.js +0 -213
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../devtools/src/index.tsx"],"names":["React","useState","useEffect","useCallback","useRef"],"mappings":"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","file":"devtools.cjs","sourcesContent":["/**\n * tailwind-styled-v4 — DevTools v3\n *\n * Panels:\n * 🔍 Inspector — hover element, see classes + variants\n * ⚡ State — list all reactive state components + active states\n * 📦 Container — list container query components + active breakpoints\n * 🎨 Tokens — live token editor with instant preview\n * 📊 Analyzer — duplicate patterns + unused variants (runtime scan)\n *\n * Keyboard shortcuts:\n * Ctrl+Shift+D → toggle devtools\n * Escape → close\n * 1-5 → switch panels\n */\n\n\"use client\"\n\nimport React, { useCallback, useEffect, useRef, useState } from \"react\"\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Types\n// ─────────────────────────────────────────────────────────────────────────────\n\ninterface InspectedElement {\n componentName: string\n element: HTMLElement\n rect: DOMRect\n twClasses: string[]\n variantProps: Record<string, string>\n atomicMap: Record<string, string>\n rawClassName: string\n stateNames: string[]\n activeStates: Record<string, string>\n containerBps: string[]\n}\n\ntype Panel = \"inspector\" | \"state\" | \"container\" | \"tokens\" | \"analyzer\"\n\ninterface DevToolsState {\n open: boolean\n panel: Panel\n pinned: boolean\n inspected: InspectedElement | null\n position: { x: number; y: number }\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Helpers\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction parseDataTw(dataTw: string | null): { name: string; classes: string[] } {\n if (!dataTw) return { name: \"Unknown\", classes: [] }\n const colonIdx = dataTw.indexOf(\":\")\n if (colonIdx === -1) return { name: dataTw, classes: [] }\n const name = dataTw.slice(0, colonIdx)\n const classes = dataTw\n .slice(colonIdx + 1)\n .split(/\\s+/)\n .filter(Boolean)\n return { name, classes }\n}\n\nfunction parseVariantAttr(v: string | null): Record<string, string> {\n if (!v) return {}\n try {\n return JSON.parse(v)\n } catch {\n return {}\n }\n}\n\nfunction findNearestTwElement(el: HTMLElement): HTMLElement | null {\n let cur: HTMLElement | null = el\n while (cur) {\n if (cur.dataset?.tw) return cur\n cur = cur.parentElement\n }\n return null\n}\n\nfunction getAtomicMap(classes: string[]): Record<string, string> {\n const registry = (window as any).__TW_REGISTRY__ as Record<string, string> | undefined\n if (!registry) return {}\n const map: Record<string, string> = {}\n for (const cls of classes) {\n if (registry[cls]) map[cls] = registry[cls]\n }\n return map\n}\n\nfunction getActiveStates(el: HTMLElement): Record<string, string> {\n const states: Record<string, string> = {}\n for (const attr of el.attributes) {\n if (attr.name.startsWith(\"data-\")) {\n states[attr.name.replace(\"data-\", \"\")] = attr.value\n }\n }\n return states\n}\n\nfunction getStateNames(el: HTMLElement): string[] {\n const registry = (window as any).__TW_STATE_REGISTRY__ as Map<string, any> | undefined\n if (!registry) return []\n for (const [id, entry] of registry) {\n if (el.classList.contains(id)) return entry.states\n }\n return []\n}\n\nfunction getContainerBps(el: HTMLElement): string[] {\n const registry = (window as any).__TW_CONTAINER_REGISTRY__ as Map<string, any> | undefined\n if (!registry) return []\n for (const [id, entry] of registry) {\n if (el.classList.contains(id)) {\n return entry.breakpoints.map((bp: any) => bp.minWidth)\n }\n }\n return []\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Panel: Inspector\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction InspectorPanel({\n inspected,\n position: _position,\n pinned: _pinned,\n}: {\n inspected: InspectedElement | null\n position: { x: number; y: number }\n pinned: boolean\n}) {\n if (!inspected) {\n return React.createElement(\n \"div\",\n { style: S.emptyPanel },\n React.createElement(\"span\", { style: { opacity: 0.4 } }, \"Hover an element to inspect\")\n )\n }\n\n return React.createElement(\n \"div\",\n { style: S.scrollArea },\n // Variant props\n Object.keys(inspected.variantProps).length > 0 &&\n React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Variants\"),\n Object.entries(inspected.variantProps).map(([k, v]) =>\n React.createElement(\n \"div\",\n { key: k, style: S.row },\n React.createElement(\"span\", { style: S.varKey }, k),\n React.createElement(\"span\", { style: S.varValue }, `\"${v}\"`)\n )\n )\n ),\n\n // Active states\n Object.keys(inspected.activeStates).length > 0 &&\n React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Active Data Attrs\"),\n Object.entries(inspected.activeStates).map(([k, v]) =>\n React.createElement(\n \"div\",\n { key: k, style: S.row },\n React.createElement(\"code\", { style: { ...S.varKey, color: \"#f59e0b\" } }, `data-${k}`),\n React.createElement(\"span\", { style: { ...S.varValue, color: \"#34d399\" } }, `\"${v}\"`)\n )\n )\n ),\n\n // State names\n inspected.stateNames.length > 0 &&\n React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Reactive States\"),\n React.createElement(\n \"div\",\n { style: S.classGrid },\n inspected.stateNames.map((s) =>\n React.createElement(\n \"code\",\n {\n key: s,\n style: {\n ...S.classChip,\n background: inspected.activeStates[s] === \"true\" ? \"#065f46\" : \"#18181b\",\n borderColor: inspected.activeStates[s] === \"true\" ? \"#34d399\" : \"#27272a\",\n },\n },\n s\n )\n )\n )\n ),\n\n // Container breakpoints\n inspected.containerBps.length > 0 &&\n React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Container Breakpoints\"),\n React.createElement(\n \"div\",\n { style: S.classGrid },\n inspected.containerBps.map((bp) =>\n React.createElement(\n \"code\",\n { key: bp, style: { ...S.classChip, color: \"#818cf8\" } },\n bp\n )\n )\n )\n ),\n\n // Tailwind classes\n inspected.twClasses.length > 0 &&\n React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Classes\"),\n React.createElement(\n \"div\",\n { style: S.classGrid },\n inspected.twClasses.map((cls) =>\n React.createElement(\n \"code\",\n { key: cls, style: S.classChip, title: inspected.atomicMap[cls] },\n cls\n )\n )\n )\n ),\n\n // Copy\n React.createElement(\n \"button\",\n {\n style: S.copyBtn,\n onClick: () => {\n navigator.clipboard?.writeText(\n JSON.stringify(\n {\n component: inspected.componentName,\n variants: inspected.variantProps,\n states: inspected.activeStates,\n classes: inspected.twClasses,\n },\n null,\n 2\n )\n )\n },\n },\n \"Copy to clipboard\"\n )\n )\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Panel: State Registry\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction StatePanel() {\n const [entries, setEntries] = useState<any[]>([])\n\n useEffect(() => {\n const refresh = () => {\n const reg = (window as any).__TW_STATE_REGISTRY__ as Map<string, any> | undefined\n setEntries(reg ? Array.from(reg.values()) : [])\n }\n refresh()\n const interval = setInterval(refresh, 1000)\n return () => clearInterval(interval)\n }, [])\n\n if (entries.length === 0) {\n return React.createElement(\n \"div\",\n { style: S.emptyPanel },\n React.createElement(\n \"span\",\n { style: { opacity: 0.4 } },\n \"No state-enabled components found.\"\n ),\n React.createElement(\"br\", null),\n React.createElement(\n \"span\",\n { style: { opacity: 0.3, fontSize: \"11px\" } },\n 'Use tw.button({ state: { active: \"...\" } }) to register.'\n )\n )\n }\n\n return React.createElement(\n \"div\",\n { style: S.scrollArea },\n entries.map((entry) =>\n React.createElement(\n \"div\",\n { key: entry.id, style: S.section },\n React.createElement(\n \"div\",\n { style: S.sectionTitle },\n React.createElement(\"span\", { style: { color: \"#60a5fa\" } }, entry.tag.toUpperCase()),\n React.createElement(\n \"span\",\n { style: { marginLeft: \"8px\", color: \"#52525b\", fontSize: \"10px\" } },\n entry.id\n )\n ),\n React.createElement(\n \"div\",\n { style: S.classGrid },\n entry.states.map((s: string) =>\n React.createElement(\n \"code\",\n { key: s, style: { ...S.classChip, color: \"#f59e0b\" } },\n `data-${s}`\n )\n )\n ),\n React.createElement(\n \"div\",\n { style: { ...S.row, marginTop: \"4px\" } },\n React.createElement(\n \"span\",\n {\n style: {\n ...S.sectionTitle,\n marginBottom: 0,\n color: entry.cssInjected ? \"#34d399\" : \"#ef4444\",\n },\n },\n entry.cssInjected ? \"● CSS injected\" : \"○ CSS pending\"\n )\n )\n )\n )\n )\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Panel: Container Query Registry\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction ContainerPanel() {\n const [entries, setEntries] = useState<any[]>([])\n\n useEffect(() => {\n const refresh = () => {\n const reg = (window as any).__TW_CONTAINER_REGISTRY__ as Map<string, any> | undefined\n setEntries(reg ? Array.from(reg.values()) : [])\n }\n refresh()\n const interval = setInterval(refresh, 1000)\n return () => clearInterval(interval)\n }, [])\n\n if (entries.length === 0) {\n return React.createElement(\n \"div\",\n { style: S.emptyPanel },\n React.createElement(\n \"span\",\n { style: { opacity: 0.4 } },\n \"No container query components found.\"\n ),\n React.createElement(\"br\", null),\n React.createElement(\n \"span\",\n { style: { opacity: 0.3, fontSize: \"11px\" } },\n 'Use tw.div({ container: { md: \"flex-row\" } }) to register.'\n )\n )\n }\n\n return React.createElement(\n \"div\",\n { style: S.scrollArea },\n entries.map((entry) =>\n React.createElement(\n \"div\",\n { key: entry.id, style: S.section },\n React.createElement(\n \"div\",\n { style: S.sectionTitle },\n React.createElement(\"span\", { style: { color: \"#60a5fa\" } }, entry.tag.toUpperCase()),\n entry.containerName &&\n React.createElement(\n \"span\",\n { style: { marginLeft: \"6px\", color: \"#818cf8\" } },\n `[${entry.containerName}]`\n ),\n React.createElement(\n \"span\",\n { style: { marginLeft: \"8px\", color: \"#52525b\", fontSize: \"10px\" } },\n entry.id\n )\n ),\n React.createElement(\n \"div\",\n null,\n entry.breakpoints.map((bp: any, i: number) =>\n React.createElement(\n \"div\",\n { key: i, style: { ...S.row, marginBottom: \"2px\" } },\n React.createElement(\n \"code\",\n { style: { color: \"#818cf8\", fontSize: \"11px\" } },\n `≥ ${bp.minWidth}`\n ),\n React.createElement(\n \"span\",\n { style: { color: \"#6b7280\", fontSize: \"11px\" } },\n bp.classes\n )\n )\n )\n )\n )\n )\n )\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Panel: Live Token Editor\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction TokensPanel() {\n const [tokens, setTokens_] = useState<Record<string, string>>({})\n\n useEffect(() => {\n const engine = (window as any).__TW_TOKEN_ENGINE__\n if (!engine) return\n\n setTokens_(engine.getTokens())\n const unsub = engine.subscribe((t: Record<string, string>) => setTokens_({ ...t }))\n return unsub\n }, [])\n\n const entries = Object.entries(tokens)\n\n if (entries.length === 0) {\n return React.createElement(\n \"div\",\n { style: S.emptyPanel },\n React.createElement(\"span\", { style: { opacity: 0.4 } }, \"No live tokens registered.\"),\n React.createElement(\"br\", null),\n React.createElement(\n \"span\",\n { style: { opacity: 0.3, fontSize: \"11px\" } },\n 'Use liveToken({ primary: \"#3b82f6\" }) to register tokens.'\n )\n )\n }\n\n return React.createElement(\n \"div\",\n { style: S.scrollArea },\n React.createElement(\n \"div\",\n { style: { ...S.sectionTitle, padding: \"8px 12px 4px\", color: \"#52525b\" } },\n \"Click color to edit · Changes apply instantly\"\n ),\n entries.map(([name, value]) => {\n const isColor = value.startsWith(\"#\") || value.startsWith(\"rgb\") || value.startsWith(\"hsl\")\n return React.createElement(\n \"div\",\n { key: name, style: { ...S.row, padding: \"6px 12px\", borderBottom: \"1px solid #18181b\" } },\n React.createElement(\n \"div\",\n { style: { display: \"flex\", alignItems: \"center\", gap: \"8px\" } },\n isColor &&\n React.createElement(\"div\", {\n style: {\n width: \"16px\",\n height: \"16px\",\n borderRadius: \"3px\",\n background: value,\n border: \"1px solid #27272a\",\n flexShrink: 0,\n },\n }),\n React.createElement(\"span\", { style: { color: \"#a1a1aa\", fontSize: \"12px\" } }, name)\n ),\n isColor\n ? React.createElement(\"input\", {\n type: \"color\",\n defaultValue: value.startsWith(\"#\") ? value : \"#000000\",\n style: {\n width: \"52px\",\n height: \"22px\",\n border: \"none\",\n background: \"none\",\n cursor: \"pointer\",\n },\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => {\n const engine = (window as any).__TW_TOKEN_ENGINE__\n if (engine) engine.setToken(name, e.target.value)\n },\n })\n : React.createElement(\"input\", {\n type: \"text\",\n defaultValue: value,\n style: {\n background: \"#18181b\",\n border: \"1px solid #27272a\",\n borderRadius: \"3px\",\n color: \"#e4e4e7\",\n fontSize: \"11px\",\n padding: \"2px 6px\",\n width: \"100px\",\n fontFamily: \"monospace\",\n },\n onBlur: (e: React.FocusEvent<HTMLInputElement>) => {\n const engine = (window as any).__TW_TOKEN_ENGINE__\n if (engine) engine.setToken(name, e.target.value)\n },\n })\n )\n })\n )\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Panel: Runtime Analyzer\n// ─────────────────────────────────────────────────────────────────────────────\n\nfunction AnalyzerPanel() {\n const [scanning, setScanning] = useState(false)\n const [results, setResults] = useState<{\n duplicates: Array<{ pattern: string; count: number; names: string[] }>\n stateCount: number\n containerCount: number\n tokenCount: number\n } | null>(null)\n // Engine metrics — fetched dari dashboard server (http://localhost:3000/metrics)\n const [engineMetrics, setEngineMetrics] = useState<Record<string, unknown> | null>(null)\n const [metricsFetching, setMetricsFetching] = useState(false)\n const [metricsError, setMetricsError] = useState<string | null>(null)\n\n const loadEngineMetrics = useCallback(async () => {\n setMetricsFetching(true)\n setMetricsError(null)\n try {\n const res = await fetch(\"http://localhost:3000/metrics\", { signal: AbortSignal.timeout(2000) })\n if (!res.ok) throw new Error(`HTTP ${res.status}`)\n const data = await res.json()\n setEngineMetrics(data)\n } catch (e: unknown) {\n const msg = e instanceof Error ? e.message : String(e)\n setMetricsError(\n msg.includes(\"Failed to fetch\") || msg.includes(\"NetworkError\")\n ? \"Dashboard tidak berjalan. Jalankan: tw dashboard\"\n : msg\n )\n setEngineMetrics(null)\n } finally {\n setMetricsFetching(false)\n }\n }, [])\n\n const runScan = useCallback(() => {\n setScanning(true)\n\n setTimeout(() => {\n const twEls = document.querySelectorAll(\"[data-tw]\")\n const classMap = new Map<string, string[]>()\n\n for (const el of twEls) {\n const { name, classes } = (() => {\n const dTw = (el as HTMLElement).dataset.tw ?? null\n if (!dTw) return { name: \"?\", classes: [] }\n const ci = dTw.indexOf(\":\")\n return {\n name: ci >= 0 ? dTw.slice(0, ci) : dTw,\n classes:\n ci >= 0\n ? dTw\n .slice(ci + 1)\n .split(/\\s+/)\n .filter(Boolean)\n : [],\n }\n })()\n\n const key = classes.sort().join(\" \")\n if (!classMap.has(key)) classMap.set(key, [])\n classMap.get(key)!.push(name)\n }\n\n const duplicates = Array.from(classMap.entries())\n .filter(([, names]) => names.length > 1)\n .map(([pattern, names]) => ({ pattern, count: names.length, names }))\n .sort((a, b) => b.count - a.count)\n .slice(0, 10)\n\n const stateReg = (window as any).__TW_STATE_REGISTRY__ as Map<string, any> | undefined\n const containerReg = (window as any).__TW_CONTAINER_REGISTRY__ as Map<string, any> | undefined\n const tokenEngine = (window as any).__TW_TOKEN_ENGINE__\n\n setResults({\n duplicates,\n stateCount: stateReg?.size ?? 0,\n containerCount: containerReg?.size ?? 0,\n tokenCount: Object.keys(tokenEngine?.getTokens?.() ?? {}).length,\n })\n setScanning(false)\n }, 100)\n }, [])\n\n return React.createElement(\n \"div\",\n { style: S.scrollArea },\n React.createElement(\n \"div\",\n { style: { padding: \"10px 12px\" } },\n\n // ── DOM Scan ──────────────────────────────────────────────────────────\n React.createElement(\n \"button\",\n {\n style: { ...S.copyBtn, borderTop: \"none\", color: \"#60a5fa\", fontWeight: \"600\" },\n onClick: runScan,\n disabled: scanning,\n },\n scanning ? \"Scanning DOM...\" : \"▶ Run DOM Scan\"\n ),\n\n // ── Engine Metrics (dari dashboard) ───────────────────────────────────\n React.createElement(\n \"div\",\n { style: { ...S.section, marginTop: \"8px\" } },\n React.createElement(\n \"div\",\n { style: { ...S.sectionTitle, marginBottom: \"6px\" } },\n \"⚡ Engine Metrics\"\n ),\n engineMetrics\n ? React.createElement(\n \"div\",\n null,\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"Build\"),\n React.createElement(\n \"span\",\n { style: { ...S.varValue, color: \"#34d399\" } },\n engineMetrics.buildMs != null ? `${engineMetrics.buildMs}ms` : \"—\"\n )\n ),\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"Classes\"),\n React.createElement(\n \"span\",\n { style: { ...S.varValue, color: \"#34d399\" } },\n String(engineMetrics.classCount ?? \"—\")\n )\n ),\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"Files\"),\n React.createElement(\n \"span\",\n { style: { ...S.varValue, color: \"#34d399\" } },\n String(engineMetrics.fileCount ?? \"—\")\n )\n ),\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"Mode\"),\n React.createElement(\n \"span\",\n { style: { color: \"#a1a1aa\", fontSize: \"11px\" } },\n String(engineMetrics.mode ?? \"—\")\n )\n ),\n React.createElement(\n \"button\",\n {\n style: {\n ...S.copyBtn,\n borderTop: \"none\",\n color: \"#52525b\",\n fontSize: \"10px\",\n padding: \"4px 0\",\n },\n onClick: loadEngineMetrics,\n disabled: metricsFetching,\n },\n \"↻ Refresh\"\n )\n )\n : metricsError\n ? React.createElement(\n \"div\",\n null,\n React.createElement(\n \"div\",\n { style: { color: \"#f87171\", fontSize: \"11px\", marginBottom: \"6px\" } },\n metricsError\n ),\n React.createElement(\n \"button\",\n {\n style: { ...S.copyBtn, borderTop: \"none\", color: \"#34d399\", fontWeight: \"600\" },\n onClick: loadEngineMetrics,\n disabled: metricsFetching,\n },\n metricsFetching ? \"Connecting...\" : \"↻ Retry\"\n )\n )\n : React.createElement(\n \"div\",\n null,\n React.createElement(\n \"div\",\n {\n style: { color: \"#71717a\", fontSize: \"11px\", lineHeight: 1.6, marginBottom: \"6px\" },\n },\n \"Rust analyzer hanya tersedia via CLI atau dashboard.\",\n React.createElement(\"br\", null),\n React.createElement(\n \"code\",\n { style: { color: \"#52525b\", fontSize: \"10px\" } },\n \"tw analyze . | tw dashboard\"\n )\n ),\n React.createElement(\n \"button\",\n {\n style: { ...S.copyBtn, borderTop: \"none\", color: \"#34d399\", fontWeight: \"600\" },\n onClick: loadEngineMetrics,\n disabled: metricsFetching,\n },\n metricsFetching ? \"Connecting...\" : \"⚡ Load from Dashboard\"\n )\n )\n ),\n\n // ── DOM Scan Results ──────────────────────────────────────────────────\n results &&\n React.createElement(\n \"div\",\n null,\n React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Summary\"),\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"State components\"),\n React.createElement(\"span\", { style: S.varValue }, String(results.stateCount))\n ),\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"Container components\"),\n React.createElement(\"span\", { style: S.varValue }, String(results.containerCount))\n ),\n React.createElement(\n \"div\",\n { style: S.row },\n React.createElement(\"span\", { style: S.varKey }, \"Live tokens\"),\n React.createElement(\"span\", { style: S.varValue }, String(results.tokenCount))\n )\n ),\n\n results.duplicates.length > 0\n ? React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\"div\", { style: S.sectionTitle }, \"Duplicate Class Sets\"),\n results.duplicates.map((d, i) =>\n React.createElement(\n \"div\",\n { key: i, style: { marginBottom: \"8px\" } },\n React.createElement(\n \"div\",\n { style: { color: \"#f59e0b\", fontSize: \"11px\", marginBottom: \"2px\" } },\n d.names.join(\", \")\n ),\n React.createElement(\n \"code\",\n {\n style: {\n color: \"#52525b\",\n fontSize: \"10px\",\n wordBreak: \"break-all\" as const,\n },\n },\n d.pattern.split(\" \").slice(0, 8).join(\" \") +\n (d.pattern.split(\" \").length > 8 ? \"...\" : \"\")\n )\n )\n )\n )\n : React.createElement(\n \"div\",\n { style: S.section },\n React.createElement(\n \"span\",\n { style: { color: \"#34d399\", fontSize: \"12px\" } },\n \"✓ No duplicate class sets in current DOM\"\n )\n )\n )\n )\n )\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Main DevTools component\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function TwDevTools(): React.ReactElement | null {\n if (process.env.NODE_ENV === \"production\") return null\n\n const [state, setState] = useState<DevToolsState>({\n open: false,\n panel: \"inspector\",\n pinned: false,\n inspected: null,\n position: { x: 0, y: 0 },\n })\n\n const overlayRef = useRef<HTMLDivElement>(null)\n const isInspecting = state.open && state.panel === \"inspector\"\n\n // Keyboard shortcuts\n useEffect(() => {\n const onKey = (e: KeyboardEvent) => {\n if (e.ctrlKey && e.shiftKey && e.key === \"D\") {\n e.preventDefault()\n setState((s) => ({ ...s, open: !s.open, inspected: null }))\n }\n if (e.key === \"Escape\")\n setState((s) => ({ ...s, open: false, pinned: false, inspected: null }))\n if (e.key === \"1\") setState((s) => (s.open ? { ...s, panel: \"inspector\" } : s))\n if (e.key === \"2\") setState((s) => (s.open ? { ...s, panel: \"state\" } : s))\n if (e.key === \"3\") setState((s) => (s.open ? { ...s, panel: \"container\" } : s))\n if (e.key === \"4\") setState((s) => (s.open ? { ...s, panel: \"tokens\" } : s))\n if (e.key === \"5\") setState((s) => (s.open ? { ...s, panel: \"analyzer\" } : s))\n }\n window.addEventListener(\"keydown\", onKey)\n return () => window.removeEventListener(\"keydown\", onKey)\n }, [])\n\n // Mouse move — only active on inspector panel\n const onMouseMove = useCallback(\n (e: MouseEvent) => {\n if (!isInspecting || state.pinned) return\n const twEl = findNearestTwElement(e.target as HTMLElement)\n if (!twEl) {\n setState((s) => ({ ...s, inspected: null, position: { x: e.clientX, y: e.clientY } }))\n return\n }\n const { name, classes } = parseDataTw(twEl.dataset.tw ?? null)\n setState((s) => ({\n ...s,\n position: { x: e.clientX, y: e.clientY },\n inspected: {\n componentName: name,\n element: twEl,\n rect: twEl.getBoundingClientRect(),\n twClasses: classes,\n variantProps: parseVariantAttr(twEl.dataset.twVariants ?? null),\n atomicMap: getAtomicMap(classes),\n rawClassName: twEl.className,\n stateNames: getStateNames(twEl),\n activeStates: getActiveStates(twEl),\n containerBps: getContainerBps(twEl),\n },\n }))\n },\n [isInspecting, state.pinned]\n )\n\n const onClick = useCallback(\n (e: MouseEvent) => {\n if (!isInspecting) return\n if (overlayRef.current?.contains(e.target as HTMLElement)) return\n setState((s) => ({ ...s, pinned: !s.pinned && !!s.inspected }))\n },\n [isInspecting]\n )\n\n useEffect(() => {\n if (!isInspecting) return\n window.addEventListener(\"mousemove\", onMouseMove)\n window.addEventListener(\"click\", onClick)\n return () => {\n window.removeEventListener(\"mousemove\", onMouseMove)\n window.removeEventListener(\"click\", onClick)\n }\n }, [isInspecting, onMouseMove, onClick])\n\n // Toggle button\n if (!state.open) {\n return React.createElement(\n \"button\",\n {\n onClick: () => setState((s) => ({ ...s, open: true })),\n style: S.toggleBtn,\n title: \"tailwind-styled-v4 DevTools (Ctrl+Shift+D)\",\n },\n \"🎨\"\n )\n }\n\n const PANELS: Array<{ id: Panel; label: string; icon: string }> = [\n { id: \"inspector\", label: \"Inspector\", icon: \"🔍\" },\n { id: \"state\", label: \"State\", icon: \"⚡\" },\n { id: \"container\", label: \"Container\", icon: \"📦\" },\n { id: \"tokens\", label: \"Tokens\", icon: \"🎨\" },\n { id: \"analyzer\", label: \"Analyzer\", icon: \"📊\" },\n ]\n\n return React.createElement(\n \"div\",\n { style: S.root },\n\n // ── Element highlight (inspector only) ──────────────────────────────\n isInspecting &&\n state.inspected &&\n React.createElement(\"div\", {\n style: {\n ...S.highlight,\n top: state.inspected.rect.top + window.scrollY,\n left: state.inspected.rect.left + window.scrollX,\n width: state.inspected.rect.width,\n height: state.inspected.rect.height,\n },\n }),\n\n // ── Component name label ────────────────────────────────────────────\n isInspecting &&\n state.inspected &&\n React.createElement(\n \"div\",\n {\n style: {\n position: \"absolute\" as const,\n top: state.inspected.rect.top + window.scrollY - 22,\n left: state.inspected.rect.left + window.scrollX,\n background: \"#1e3a5f\",\n color: \"#93c5fd\",\n fontSize: \"11px\",\n padding: \"2px 6px\",\n borderRadius: \"3px 3px 0 0\",\n pointerEvents: \"none\" as const,\n zIndex: 2147483646,\n fontFamily: \"monospace\",\n },\n },\n state.inspected.componentName\n ),\n\n // ── Main DevTools panel ─────────────────────────────────────────────\n React.createElement(\n \"div\",\n {\n ref: overlayRef,\n style:\n state.panel === \"inspector\" && state.inspected\n ? {\n ...S.panel,\n top: Math.min(state.position.y + 16, window.innerHeight - 460),\n left: Math.min(state.position.x + 16, window.innerWidth - 320),\n }\n : {\n ...S.panel,\n top: \"auto\",\n bottom: \"40px\",\n right: \"12px\",\n left: \"auto\",\n },\n },\n\n // Header\n React.createElement(\n \"div\",\n { style: S.header },\n React.createElement(\n \"span\",\n { style: S.componentName },\n state.inspected && state.panel === \"inspector\"\n ? state.inspected.componentName\n : \"tailwind-styled-v4\"\n ),\n React.createElement(\n \"div\",\n { style: S.headerActions },\n state.pinned && React.createElement(\"span\", { style: S.pinBadge }, \"📌\"),\n React.createElement(\n \"button\",\n {\n style: S.closeBtn,\n onClick: () =>\n setState((s) => ({ ...s, open: false, pinned: false, inspected: null })),\n },\n \"✕\"\n )\n )\n ),\n\n // Tab bar\n React.createElement(\n \"div\",\n { style: S.tabBar },\n PANELS.map((p) =>\n React.createElement(\n \"button\",\n {\n key: p.id,\n style: {\n ...S.tab,\n background: state.panel === p.id ? \"#18181b\" : \"none\",\n color: state.panel === p.id ? \"#e4e4e7\" : \"#52525b\",\n borderBottom: state.panel === p.id ? \"2px solid #3b82f6\" : \"2px solid transparent\",\n },\n onClick: () => setState((s) => ({ ...s, panel: p.id })),\n title: `${p.label} (${PANELS.findIndex((x) => x.id === p.id) + 1})`,\n },\n `${p.icon} ${p.label}`\n )\n )\n ),\n\n // Panel content\n state.panel === \"inspector\" &&\n React.createElement(InspectorPanel, {\n inspected: state.inspected,\n position: state.position,\n pinned: state.pinned,\n }),\n state.panel === \"state\" && React.createElement(StatePanel, null),\n state.panel === \"container\" && React.createElement(ContainerPanel, null),\n state.panel === \"tokens\" && React.createElement(TokensPanel, null),\n state.panel === \"analyzer\" && React.createElement(AnalyzerPanel, null)\n ),\n\n // ── Status bar ──────────────────────────────────────────────────────\n React.createElement(\n \"div\",\n { style: S.statusBar },\n React.createElement(\"span\", null, \"🎨 tailwind-styled-v4 DevTools\"),\n React.createElement(\n \"span\",\n { style: { opacity: 0.6, fontSize: \"10px\" } },\n state.pinned\n ? \"Click to unpin\"\n : isInspecting\n ? \"Hover to inspect · Click to pin · 1-5 switch panel · Esc close\"\n : \"Ctrl+Shift+D close · 1-5 switch panel\"\n )\n )\n )\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Styles\n// ─────────────────────────────────────────────────────────────────────────────\n\nconst S = {\n root: {\n position: \"fixed\" as const,\n inset: 0,\n zIndex: 2147483647,\n pointerEvents: \"none\" as const,\n fontFamily: \"ui-monospace, 'JetBrains Mono', monospace\",\n fontSize: \"12px\",\n },\n highlight: {\n position: \"absolute\" as const,\n borderRadius: \"3px\",\n outline: \"2px solid #3b82f6\",\n outlineOffset: \"1px\",\n background: \"rgba(59,130,246,0.08)\",\n pointerEvents: \"none\" as const,\n transition: \"all 0.1s ease\",\n zIndex: 2147483646,\n },\n panel: {\n position: \"fixed\" as const,\n width: 320,\n maxHeight: 480,\n background: \"#0f0f0f\",\n border: \"1px solid #27272a\",\n borderRadius: \"10px\",\n boxShadow: \"0 8px 32px rgba(0,0,0,0.8)\",\n pointerEvents: \"all\" as const,\n zIndex: 2147483647,\n userSelect: \"text\" as const,\n display: \"flex\",\n flexDirection: \"column\" as const,\n },\n header: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"8px 12px 6px\",\n borderBottom: \"1px solid #1f1f1f\",\n flexShrink: 0,\n },\n tabBar: {\n display: \"flex\",\n borderBottom: \"1px solid #18181b\",\n flexShrink: 0,\n overflowX: \"auto\" as const,\n },\n tab: {\n background: \"none\",\n border: \"none\",\n cursor: \"pointer\",\n fontSize: \"10px\",\n padding: \"5px 8px\",\n whiteSpace: \"nowrap\" as const,\n fontFamily: \"inherit\",\n transition: \"color 0.1s\",\n pointerEvents: \"all\" as const,\n },\n scrollArea: {\n overflowY: \"auto\" as const,\n flex: 1,\n },\n emptyPanel: {\n padding: \"24px 12px\",\n color: \"#71717a\",\n fontSize: \"12px\",\n textAlign: \"center\" as const,\n lineHeight: 1.6,\n },\n componentName: {\n color: \"#60a5fa\",\n fontWeight: \"bold\" as const,\n fontSize: \"13px\",\n },\n headerActions: {\n display: \"flex\",\n alignItems: \"center\",\n gap: \"6px\",\n },\n pinBadge: { color: \"#fbbf24\", fontSize: \"10px\" },\n closeBtn: {\n background: \"none\",\n border: \"none\",\n color: \"#71717a\",\n cursor: \"pointer\",\n fontSize: \"14px\",\n lineHeight: 1,\n padding: \"2px 4px\",\n pointerEvents: \"all\" as const,\n },\n section: {\n padding: \"8px 12px\",\n borderBottom: \"1px solid #18181b\",\n },\n sectionTitle: {\n color: \"#52525b\",\n fontSize: \"10px\",\n textTransform: \"uppercase\" as const,\n letterSpacing: \"0.08em\",\n marginBottom: \"6px\",\n },\n row: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginBottom: \"3px\",\n },\n varKey: { color: \"#a1a1aa\" },\n varValue: { color: \"#34d399\", fontWeight: \"bold\" as const },\n classGrid: {\n display: \"flex\",\n flexWrap: \"wrap\" as const,\n gap: \"4px\",\n },\n classChip: {\n background: \"#18181b\",\n border: \"1px solid #27272a\",\n borderRadius: \"4px\",\n padding: \"2px 6px\",\n color: \"#e4e4e7\",\n cursor: \"default\",\n fontSize: \"11px\",\n },\n copyBtn: {\n display: \"block\",\n width: \"100%\",\n background: \"none\",\n border: \"none\",\n borderTop: \"1px solid #18181b\",\n color: \"#52525b\",\n cursor: \"pointer\",\n padding: \"8px 12px\",\n textAlign: \"left\" as const,\n fontSize: \"11px\",\n pointerEvents: \"all\" as const,\n fontFamily: \"inherit\",\n },\n statusBar: {\n position: \"fixed\" as const,\n bottom: 0,\n left: 0,\n right: 0,\n background: \"#1e3a5f\",\n color: \"#93c5fd\",\n fontSize: \"11px\",\n padding: \"4px 12px\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n pointerEvents: \"all\" as const,\n zIndex: 2147483647,\n },\n toggleBtn: {\n position: \"fixed\" as const,\n bottom: 12,\n right: 12,\n width: 36,\n height: 36,\n borderRadius: \"50%\",\n background: \"#1e3a5f\",\n border: \"1px solid #3b82f6\",\n color: \"white\",\n cursor: \"pointer\",\n fontSize: \"16px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n zIndex: 2147483647,\n boxShadow: \"0 2px 8px rgba(0,0,0,0.4)\",\n pointerEvents: \"all\" as const,\n },\n}\n\n// ─────────────────────────────────────────────────────────────────────────────\n// Provider\n// ─────────────────────────────────────────────────────────────────────────────\n\nexport function DevToolsProvider(): React.ReactElement | null {\n if (process.env.NODE_ENV === \"production\") return null\n return React.createElement(TwDevTools)\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* tailwind-styled-v4 — DevTools v3
|
|
5
|
+
*
|
|
6
|
+
* Panels:
|
|
7
|
+
* 🔍 Inspector — hover element, see classes + variants
|
|
8
|
+
* ⚡ State — list all reactive state components + active states
|
|
9
|
+
* 📦 Container — list container query components + active breakpoints
|
|
10
|
+
* 🎨 Tokens — live token editor with instant preview
|
|
11
|
+
* 📊 Analyzer — duplicate patterns + unused variants (runtime scan)
|
|
12
|
+
*
|
|
13
|
+
* Keyboard shortcuts:
|
|
14
|
+
* Ctrl+Shift+D → toggle devtools
|
|
15
|
+
* Escape → close
|
|
16
|
+
* 1-5 → switch panels
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
declare function TwDevTools(): React.ReactElement | null;
|
|
20
|
+
declare function DevToolsProvider(): React.ReactElement | null;
|
|
21
|
+
|
|
22
|
+
export { DevToolsProvider, TwDevTools };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* tailwind-styled-v4 — DevTools v3
|
|
5
|
+
*
|
|
6
|
+
* Panels:
|
|
7
|
+
* 🔍 Inspector — hover element, see classes + variants
|
|
8
|
+
* ⚡ State — list all reactive state components + active states
|
|
9
|
+
* 📦 Container — list container query components + active breakpoints
|
|
10
|
+
* 🎨 Tokens — live token editor with instant preview
|
|
11
|
+
* 📊 Analyzer — duplicate patterns + unused variants (runtime scan)
|
|
12
|
+
*
|
|
13
|
+
* Keyboard shortcuts:
|
|
14
|
+
* Ctrl+Shift+D → toggle devtools
|
|
15
|
+
* Escape → close
|
|
16
|
+
* 1-5 → switch panels
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
declare function TwDevTools(): React.ReactElement | null;
|
|
20
|
+
declare function DevToolsProvider(): React.ReactElement | null;
|
|
21
|
+
|
|
22
|
+
export { DevToolsProvider, TwDevTools };
|