@tanstack/pacer-devtools 0.3.0 → 0.3.1

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":"PacerContextProvider.js","sources":["../../src/PacerContextProvider.tsx"],"sourcesContent":["import { createStore } from 'solid-js/store'\nimport { createContext, createEffect, onCleanup, useContext } from 'solid-js'\nimport { pacerEventClient } from '@tanstack/pacer/event-client'\nimport type {\n AsyncBatcher,\n AsyncDebouncer,\n AsyncQueuer,\n AsyncRateLimiter,\n AsyncThrottler,\n Batcher,\n Debouncer,\n Queuer,\n RateLimiter,\n Throttler,\n} from '@tanstack/pacer'\n\ninterface PacerDevtoolsContextType {\n asyncBatchers: Array<AsyncBatcher<any>>\n asyncDebouncers: Array<AsyncDebouncer<any>>\n asyncQueuers: Array<AsyncQueuer<any>>\n asyncRateLimiters: Array<AsyncRateLimiter<any>>\n asyncThrottlers: Array<AsyncThrottler<any>>\n batchers: Array<Batcher<any>>\n debouncers: Array<Debouncer<any>>\n queuers: Array<Queuer<any>>\n rateLimiters: Array<RateLimiter<any>>\n throttlers: Array<Throttler<any>>\n lastUpdatedByKey: Record<string, number>\n}\n\nconst initialPacerDevtoolsStore = {\n asyncBatchers: [],\n asyncDebouncers: [],\n asyncQueuers: [],\n asyncRateLimiters: [],\n asyncThrottlers: [],\n batchers: [],\n debouncers: [],\n queuers: [],\n rateLimiters: [],\n throttlers: [],\n lastUpdatedByKey: {},\n}\n\nconst PacerDevtoolsContext = createContext<\n [\n PacerDevtoolsContextType,\n (newState: Partial<PacerDevtoolsContextType>) => void,\n ]\n>([initialPacerDevtoolsStore, () => {}])\n\nconst updateOrAddToArray = <T extends { key: string }>(\n oldArray: Array<T>,\n newItem: T,\n) => {\n const index = oldArray.findIndex((item) => item.key === newItem.key)\n if (index !== -1) {\n // Update existing item\n return oldArray.map((item, i) => (i === index ? newItem : item))\n }\n // Add new item\n return [...oldArray, newItem]\n}\n\nexport function PacerContextProvider(props: { children: any }) {\n const [store, setStore] = createStore<PacerDevtoolsContextType>(\n initialPacerDevtoolsStore,\n )\n\n createEffect(() => {\n const cleanup = pacerEventClient.onAllPluginEvents((_e) => {\n const e = _e as unknown as { type: string; payload: any }\n switch (e.type) {\n case 'pacer:AsyncBatcher': {\n setStore({\n asyncBatchers: updateOrAddToArray(store.asyncBatchers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncDebouncer': {\n setStore({\n asyncDebouncers: updateOrAddToArray(\n store.asyncDebouncers,\n e.payload,\n ),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncQueuer': {\n setStore({\n asyncQueuers: updateOrAddToArray(store.asyncQueuers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncRateLimiter': {\n setStore({\n asyncRateLimiters: updateOrAddToArray(\n store.asyncRateLimiters,\n e.payload,\n ),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncThrottler': {\n setStore({\n asyncThrottlers: updateOrAddToArray(\n store.asyncThrottlers,\n e.payload,\n ),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Batcher': {\n setStore({\n batchers: updateOrAddToArray(store.batchers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Debouncer': {\n setStore({\n debouncers: updateOrAddToArray(store.debouncers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Queuer': {\n setStore({\n queuers: updateOrAddToArray(store.queuers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:RateLimiter': {\n setStore({\n rateLimiters: updateOrAddToArray(store.rateLimiters, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Throttler': {\n setStore({\n throttlers: updateOrAddToArray(store.throttlers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n }\n })\n onCleanup(cleanup)\n })\n return (\n <PacerDevtoolsContext.Provider value={[store, setStore]}>\n {props.children}\n </PacerDevtoolsContext.Provider>\n )\n}\n\nconst usePacerDevtoolsContext = () => {\n const context = useContext(PacerDevtoolsContext)\n\n return context\n}\n\nexport const usePacerDevtoolsState = () => {\n const [state] = usePacerDevtoolsContext()\n return state\n}\n"],"names":["initialPacerDevtoolsStore","asyncBatchers","asyncDebouncers","asyncQueuers","asyncRateLimiters","asyncThrottlers","batchers","debouncers","queuers","rateLimiters","throttlers","lastUpdatedByKey","PacerDevtoolsContext","createContext","updateOrAddToArray","oldArray","newItem","index","findIndex","item","key","map","i","PacerContextProvider","props","store","setStore","createStore","createEffect","cleanup","pacerEventClient","onAllPluginEvents","_e","e","type","payload","Date","now","onCleanup","_$createComponent","Provider","value","children","usePacerDevtoolsContext","context","useContext","usePacerDevtoolsState","state"],"mappings":"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"}
1
+ {"version":3,"file":"PacerContextProvider.js","sources":["../../src/PacerContextProvider.tsx"],"sourcesContent":["import { createStore } from 'solid-js/store'\nimport { createContext, createEffect, onCleanup, useContext } from 'solid-js'\nimport { pacerEventClient } from '@tanstack/pacer/event-client'\nimport type {\n AsyncBatcher,\n AsyncDebouncer,\n AsyncQueuer,\n AsyncRateLimiter,\n AsyncThrottler,\n Batcher,\n Debouncer,\n Queuer,\n RateLimiter,\n Throttler,\n} from '@tanstack/pacer'\n\ninterface PacerDevtoolsContextType {\n asyncBatchers: Array<AsyncBatcher<any>>\n asyncDebouncers: Array<AsyncDebouncer<any>>\n asyncQueuers: Array<AsyncQueuer<any>>\n asyncRateLimiters: Array<AsyncRateLimiter<any>>\n asyncThrottlers: Array<AsyncThrottler<any>>\n batchers: Array<Batcher<any>>\n debouncers: Array<Debouncer<any>>\n queuers: Array<Queuer<any>>\n rateLimiters: Array<RateLimiter<any>>\n throttlers: Array<Throttler<any>>\n lastUpdatedByKey: Record<string, number>\n}\n\nconst initialPacerDevtoolsStore = {\n asyncBatchers: [],\n asyncDebouncers: [],\n asyncQueuers: [],\n asyncRateLimiters: [],\n asyncThrottlers: [],\n batchers: [],\n debouncers: [],\n queuers: [],\n rateLimiters: [],\n throttlers: [],\n lastUpdatedByKey: {},\n}\n\nconst PacerDevtoolsContext = createContext<\n [\n PacerDevtoolsContextType,\n (newState: Partial<PacerDevtoolsContextType>) => void,\n ]\n>([initialPacerDevtoolsStore, () => {}])\n\nconst updateOrAddToArray = <T extends { key: string }>(\n oldArray: Array<T>,\n newItem: T,\n) => {\n const index = oldArray.findIndex((item) => item.key === newItem.key)\n if (index !== -1) {\n // Update existing item\n return oldArray.map((item, i) => (i === index ? newItem : item))\n }\n // Add new item\n return [...oldArray, newItem]\n}\n\nexport function PacerContextProvider(props: { children: any }) {\n const [store, setStore] = createStore<PacerDevtoolsContextType>(\n initialPacerDevtoolsStore,\n )\n\n createEffect(() => {\n const cleanup = pacerEventClient.onAllPluginEvents((_e) => {\n const e = _e as unknown as { type: string; payload: any }\n switch (e.type) {\n case 'pacer:AsyncBatcher': {\n setStore({\n asyncBatchers: updateOrAddToArray(store.asyncBatchers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncDebouncer': {\n setStore({\n asyncDebouncers: updateOrAddToArray(\n store.asyncDebouncers,\n e.payload,\n ),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncQueuer': {\n setStore({\n asyncQueuers: updateOrAddToArray(store.asyncQueuers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncRateLimiter': {\n setStore({\n asyncRateLimiters: updateOrAddToArray(\n store.asyncRateLimiters,\n e.payload,\n ),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:AsyncThrottler': {\n setStore({\n asyncThrottlers: updateOrAddToArray(\n store.asyncThrottlers,\n e.payload,\n ),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Batcher': {\n setStore({\n batchers: updateOrAddToArray(store.batchers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Debouncer': {\n setStore({\n debouncers: updateOrAddToArray(store.debouncers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Queuer': {\n setStore({\n queuers: updateOrAddToArray(store.queuers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:RateLimiter': {\n setStore({\n rateLimiters: updateOrAddToArray(store.rateLimiters, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n case 'pacer:Throttler': {\n setStore({\n throttlers: updateOrAddToArray(store.throttlers, e.payload),\n lastUpdatedByKey: {\n ...store.lastUpdatedByKey,\n [e.payload.key]: Date.now(),\n },\n })\n break\n }\n }\n })\n onCleanup(cleanup)\n })\n return (\n <PacerDevtoolsContext.Provider value={[store, setStore]}>\n {props.children}\n </PacerDevtoolsContext.Provider>\n )\n}\n\nconst usePacerDevtoolsContext = () => {\n const context = useContext(PacerDevtoolsContext)\n\n return context\n}\n\nexport const usePacerDevtoolsState = () => {\n const [state] = usePacerDevtoolsContext()\n return state\n}\n"],"names":["initialPacerDevtoolsStore","asyncBatchers","asyncDebouncers","asyncQueuers","asyncRateLimiters","asyncThrottlers","batchers","debouncers","queuers","rateLimiters","throttlers","lastUpdatedByKey","PacerDevtoolsContext","createContext","updateOrAddToArray","oldArray","newItem","index","findIndex","item","key","map","i","PacerContextProvider","props","store","setStore","createStore","createEffect","cleanup","pacerEventClient","onAllPluginEvents","_e","e","type","payload","Date","now","onCleanup","_$createComponent","Provider","value","children","usePacerDevtoolsContext","context","useContext","usePacerDevtoolsState","state"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionButtons.js","sources":["../../../src/components/ActionButtons.tsx"],"sourcesContent":["import { pacerEventClient } from '@tanstack/pacer'\nimport { useStyles } from '../styles/use-styles'\nimport type { PacerEventName } from '@tanstack/pacer'\n\ntype ActionButtonsProps = {\n instance: any\n utilName: string\n}\n\nexport function ActionButtons(props: ActionButtonsProps) {\n const styles = useStyles()\n const utilInstance = props.instance\n const utilState = utilInstance?.store?.state\n const hasPending = utilState && 'isPending' in utilState\n const hasEmpty = utilState && 'isEmpty' in utilState\n const isPending = hasPending ? !!utilState.isPending : false\n const isEmpty = hasEmpty ? utilState.isEmpty : undefined\n\n const hasFlush = typeof utilInstance.flush === 'function'\n const hasCancel = typeof utilInstance.cancel === 'function'\n const hasReset = typeof utilInstance.reset === 'function'\n const hasClear = typeof utilInstance.clear === 'function'\n const hasStart = typeof utilInstance.start === 'function'\n const hasStop = typeof utilInstance.stop === 'function'\n const hasStartStop = hasStart && hasStop\n\n const isRunning = utilState?.isRunning ?? true\n\n if (!hasPending && !hasFlush && !hasCancel && !hasReset && !hasClear) {\n return (\n <div class={styles().sectionEmpty}>\n No actions available for this util\n </div>\n )\n }\n\n const emitName = `d-${props.utilName}` as PacerEventName\n\n return (\n <div class={styles().actionsRow}>\n {hasPending && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n const next = !isPending\n utilInstance.store.setState((prev: any) => ({\n ...prev,\n isPending: next,\n }))\n pacerEventClient.emit(emitName, utilInstance)\n }}\n >\n <span class={styles().actionDotBlue} />\n {isPending ? 'Restore Pending' : 'Trigger Pending'}\n </button>\n )}\n {hasFlush && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n utilInstance.flush()\n pacerEventClient.emit(emitName, utilInstance)\n }}\n disabled={\n (props.utilName.toLowerCase().includes('debouncer') &&\n !isPending) ||\n (props.utilName.toLowerCase().includes('throttler') &&\n !isPending) ||\n (props.utilName.toLowerCase().includes('batcher') && isEmpty) ||\n (props.utilName.toLowerCase().includes('queuer') && isEmpty)\n }\n >\n <span class={styles().actionDotGreen} />\n Flush\n </button>\n )}\n {hasCancel && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n utilInstance.cancel()\n pacerEventClient.emit(emitName, utilInstance)\n }}\n disabled={\n (props.utilName.toLowerCase().includes('debouncer') &&\n !isPending) ||\n (props.utilName.toLowerCase().includes('throttler') &&\n !isPending) ||\n (props.utilName.toLowerCase().includes('batcher') && isEmpty) ||\n (props.utilName.toLowerCase().includes('queuer') && isEmpty)\n }\n >\n <span class={styles().actionDotRed} />\n Cancel\n </button>\n )}\n {hasReset && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n utilInstance.reset()\n pacerEventClient.emit(emitName, utilInstance)\n }}\n >\n <span class={styles().actionDotYellow} />\n Reset\n </button>\n )}\n {hasClear && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n utilInstance.clear()\n pacerEventClient.emit(emitName, utilInstance)\n }}\n disabled={\n (props.utilName.toLowerCase().includes('batcher') && isEmpty) ||\n (props.utilName.toLowerCase().includes('queuer') && isEmpty)\n }\n >\n <span class={styles().actionDotOrange} />\n Clear\n </button>\n )}\n {hasStartStop && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n if (isRunning) {\n utilInstance.stop()\n } else {\n utilInstance.start()\n }\n pacerEventClient.emit(emitName, utilInstance)\n }}\n >\n <span class={styles().actionDotPurple} />\n {isRunning ? 'Stop' : 'Start'}\n </button>\n )}\n </div>\n )\n}\n"],"names":["ActionButtons","props","styles","useStyles","utilInstance","instance","utilState","store","state","hasPending","hasEmpty","isPending","isEmpty","undefined","hasFlush","flush","hasCancel","cancel","hasReset","reset","hasClear","clear","hasStart","start","hasStop","stop","hasStartStop","isRunning","_el$","_tmpl$","_$effect","_$className","sectionEmpty","emitName","utilName","_el$2","_tmpl$2","_$insert","_el$3","_tmpl$3","_el$4","firstChild","$$mousedown","next","setState","prev","pacerEventClient","emit","_p$","_v$","actionButton","_v$2","actionDotBlue","e","t","_el$5","_tmpl$4","_el$6","_v$3","_v$4","toLowerCase","includes","_v$5","actionDotGreen","disabled","a","_el$7","_tmpl$5","_el$8","_v$6","_v$7","_v$8","actionDotRed","_el$9","_tmpl$6","_el$0","_v$9","_v$0","actionDotYellow","_el$1","_tmpl$7","_el$10","_v$1","_v$10","_v$11","actionDotOrange","_el$11","_el$12","_v$12","_v$13","actionDotPurple","actionsRow","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"ActionButtons.js","sources":["../../../src/components/ActionButtons.tsx"],"sourcesContent":["import { pacerEventClient } from '@tanstack/pacer'\nimport { useStyles } from '../styles/use-styles'\nimport type { PacerEventName } from '@tanstack/pacer'\n\ntype ActionButtonsProps = {\n instance: any\n utilName: string\n}\n\nexport function ActionButtons(props: ActionButtonsProps) {\n const styles = useStyles()\n const utilInstance = props.instance\n const utilState = utilInstance?.store?.state\n const hasPending = utilState && 'isPending' in utilState\n const hasEmpty = utilState && 'isEmpty' in utilState\n const isPending = hasPending ? !!utilState.isPending : false\n const isEmpty = hasEmpty ? utilState.isEmpty : undefined\n\n const hasFlush = typeof utilInstance.flush === 'function'\n const hasCancel = typeof utilInstance.cancel === 'function'\n const hasReset = typeof utilInstance.reset === 'function'\n const hasClear = typeof utilInstance.clear === 'function'\n const hasStart = typeof utilInstance.start === 'function'\n const hasStop = typeof utilInstance.stop === 'function'\n const hasStartStop = hasStart && hasStop\n\n const isRunning = utilState?.isRunning ?? true\n\n if (!hasPending && !hasFlush && !hasCancel && !hasReset && !hasClear) {\n return (\n <div class={styles().sectionEmpty}>\n No actions available for this util\n </div>\n )\n }\n\n const emitName = `d-${props.utilName}` as PacerEventName\n\n return (\n <div class={styles().actionsRow}>\n {hasPending && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n const next = !isPending\n utilInstance.store.setState((prev: any) => ({\n ...prev,\n isPending: next,\n }))\n pacerEventClient.emit(emitName, utilInstance)\n }}\n >\n <span class={styles().actionDotBlue} />\n {isPending ? 'Restore Pending' : 'Trigger Pending'}\n </button>\n )}\n {hasFlush && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n utilInstance.flush()\n pacerEventClient.emit(emitName, utilInstance)\n }}\n disabled={\n (props.utilName.toLowerCase().includes('debouncer') &&\n !isPending) ||\n (props.utilName.toLowerCase().includes('throttler') &&\n !isPending) ||\n (props.utilName.toLowerCase().includes('batcher') && isEmpty) ||\n (props.utilName.toLowerCase().includes('queuer') && isEmpty)\n }\n >\n <span class={styles().actionDotGreen} />\n Flush\n </button>\n )}\n {hasCancel && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n utilInstance.cancel()\n pacerEventClient.emit(emitName, utilInstance)\n }}\n disabled={\n (props.utilName.toLowerCase().includes('debouncer') &&\n !isPending) ||\n (props.utilName.toLowerCase().includes('throttler') &&\n !isPending) ||\n (props.utilName.toLowerCase().includes('batcher') && isEmpty) ||\n (props.utilName.toLowerCase().includes('queuer') && isEmpty)\n }\n >\n <span class={styles().actionDotRed} />\n Cancel\n </button>\n )}\n {hasReset && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n utilInstance.reset()\n pacerEventClient.emit(emitName, utilInstance)\n }}\n >\n <span class={styles().actionDotYellow} />\n Reset\n </button>\n )}\n {hasClear && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n utilInstance.clear()\n pacerEventClient.emit(emitName, utilInstance)\n }}\n disabled={\n (props.utilName.toLowerCase().includes('batcher') && isEmpty) ||\n (props.utilName.toLowerCase().includes('queuer') && isEmpty)\n }\n >\n <span class={styles().actionDotOrange} />\n Clear\n </button>\n )}\n {hasStartStop && (\n <button\n class={styles().actionButton}\n onMouseDown={() => {\n if (isRunning) {\n utilInstance.stop()\n } else {\n utilInstance.start()\n }\n pacerEventClient.emit(emitName, utilInstance)\n }}\n >\n <span class={styles().actionDotPurple} />\n {isRunning ? 'Stop' : 'Start'}\n </button>\n )}\n </div>\n )\n}\n"],"names":["ActionButtons","props","styles","useStyles","utilInstance","instance","utilState","store","state","hasPending","hasEmpty","isPending","isEmpty","undefined","hasFlush","flush","hasCancel","cancel","hasReset","reset","hasClear","clear","hasStart","start","hasStop","stop","hasStartStop","isRunning","_el$","_tmpl$","_$effect","_$className","sectionEmpty","emitName","utilName","_el$2","_tmpl$2","_$insert","_el$3","_tmpl$3","_el$4","firstChild","$$mousedown","next","setState","prev","pacerEventClient","emit","_p$","_v$","actionButton","_v$2","actionDotBlue","e","t","_el$5","_tmpl$4","_el$6","_v$3","_v$4","toLowerCase","includes","_v$5","actionDotGreen","disabled","a","_el$7","_tmpl$5","_el$8","_v$6","_v$7","_v$8","actionDotRed","_el$9","_tmpl$6","_el$0","_v$9","_v$0","actionDotYellow","_el$1","_tmpl$7","_el$10","_v$1","_v$10","_v$11","actionDotOrange","_el$11","_el$12","_v$12","_v$13","actionDotPurple","actionsRow","_$delegateEvents"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DetailsPanel.js","sources":["../../../src/components/DetailsPanel.tsx"],"sourcesContent":["import { JsonTree } from '@tanstack/devtools-ui'\nimport { useStyles } from '../styles/use-styles'\nimport { ActionButtons } from './ActionButtons'\nimport { StateHeader } from './StateHeader'\n\ntype DetailsPanelProps = {\n selectedInstance: () => { instance: any; type: string } | null\n utilState: () => { lastUpdatedByKey: Record<string, number> }\n}\n\nexport function DetailsPanel(props: DetailsPanelProps) {\n const styles = useStyles()\n\n return (\n <div class={styles().stateDetails}>\n {(() => {\n const entry = props.selectedInstance()\n if (!entry) {\n return (\n <div class={styles().noSelection}>\n Select a util from the left panel to view its state\n </div>\n )\n }\n\n return (\n <>\n <StateHeader\n selectedInstance={props.selectedInstance}\n utilState={props.utilState}\n />\n\n <div class={styles().detailsGrid}>\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Actions</div>\n <ActionButtons\n instance={entry.instance}\n utilName={entry.type}\n />\n </div>\n\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>State</div>\n <div class={styles().stateContent}>\n <JsonTree value={entry.instance.store?.state} />\n </div>\n </div>\n\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Options</div>\n <div class={styles().stateContent}>\n <JsonTree value={entry.instance.options} />\n </div>\n </div>\n </div>\n </>\n )\n })()}\n </div>\n )\n}\n"],"names":["DetailsPanel","props","styles","useStyles","_el$","_tmpl$","_$insert","entry","selectedInstance","_el$2","_tmpl$2","_$effect","_$className","noSelection","_$createComponent","StateHeader","utilState","_el$3","_tmpl$3","_el$4","firstChild","_el$5","_el$6","nextSibling","_el$7","_el$8","_el$9","_el$0","_el$1","ActionButtons","instance","utilName","type","JsonTree","value","store","state","options","_p$","_v$","detailsGrid","_v$2","detailSection","_v$3","detailSectionHeader","_v$4","_v$5","_v$6","stateContent","_v$7","_v$8","_v$9","e","t","a","o","i","n","s","h","r","undefined","stateDetails"],"mappings":"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"}
1
+ {"version":3,"file":"DetailsPanel.js","sources":["../../../src/components/DetailsPanel.tsx"],"sourcesContent":["import { JsonTree } from '@tanstack/devtools-ui'\nimport { useStyles } from '../styles/use-styles'\nimport { ActionButtons } from './ActionButtons'\nimport { StateHeader } from './StateHeader'\n\ntype DetailsPanelProps = {\n selectedInstance: () => { instance: any; type: string } | null\n utilState: () => { lastUpdatedByKey: Record<string, number> }\n}\n\nexport function DetailsPanel(props: DetailsPanelProps) {\n const styles = useStyles()\n\n return (\n <div class={styles().stateDetails}>\n {(() => {\n const entry = props.selectedInstance()\n if (!entry) {\n return (\n <div class={styles().noSelection}>\n Select a util from the left panel to view its state\n </div>\n )\n }\n\n return (\n <>\n <StateHeader\n selectedInstance={props.selectedInstance}\n utilState={props.utilState}\n />\n\n <div class={styles().detailsGrid}>\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Actions</div>\n <ActionButtons\n instance={entry.instance}\n utilName={entry.type}\n />\n </div>\n\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>State</div>\n <div class={styles().stateContent}>\n <JsonTree value={entry.instance.store?.state} />\n </div>\n </div>\n\n <div class={styles().detailSection}>\n <div class={styles().detailSectionHeader}>Options</div>\n <div class={styles().stateContent}>\n <JsonTree value={entry.instance.options} />\n </div>\n </div>\n </div>\n </>\n )\n })()}\n </div>\n )\n}\n"],"names":["DetailsPanel","props","styles","useStyles","_el$","_tmpl$","_$insert","entry","selectedInstance","_el$2","_tmpl$2","_$effect","_$className","noSelection","_$createComponent","StateHeader","utilState","_el$3","_tmpl$3","_el$4","firstChild","_el$5","_el$6","nextSibling","_el$7","_el$8","_el$9","_el$0","_el$1","ActionButtons","instance","utilName","type","JsonTree","value","store","state","options","_p$","_v$","detailsGrid","_v$2","detailSection","_v$3","detailSectionHeader","_v$4","_v$5","_v$6","stateContent","_v$7","_v$8","_v$9","e","t","a","o","i","n","s","h","r","undefined","stateDetails"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createComponent, template, insert, effect, className, delegateEvents } from "solid-js/web";
1
+ import { createComponent, template, insert, setStyleProperty, effect, className, delegateEvents } from "solid-js/web";
2
2
  import { createSignal, createMemo, onMount, onCleanup } from "solid-js";
3
3
  import { MainPanel, Header, HeaderLogo } from "@tanstack/devtools-ui";
4
4
  import { useStyles } from "../styles/use-styles.js";
@@ -6,7 +6,7 @@ import { usePacerDevtoolsState } from "../PacerContextProvider.js";
6
6
  import { UTIL_GROUPS } from "./util-groups.js";
7
7
  import { UtilList } from "./UtilList.js";
8
8
  import { DetailsPanel } from "./DetailsPanel.js";
9
- var _tmpl$ = /* @__PURE__ */ template(`<div><div></div><div></div><div><div>Details`);
9
+ var _tmpl$ = /* @__PURE__ */ template(`<div><div style=min-width:150px;max-width:800px></div><div></div><div><div>Details`);
10
10
  function Shell() {
11
11
  const styles = useStyles();
12
12
  const state = usePacerDevtoolsState();
@@ -71,15 +71,13 @@ function Shell() {
71
71
  }
72
72
  }), (() => {
73
73
  var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.nextSibling, _el$4 = _el$3.nextSibling, _el$5 = _el$4.firstChild;
74
- _el$2.style.setProperty("min-width", "150px");
75
- _el$2.style.setProperty("max-width", "800px");
76
74
  insert(_el$2, createComponent(UtilList, {
77
75
  selectedKey,
78
76
  setSelectedKey,
79
77
  utilState
80
78
  }));
81
79
  _el$3.$$mousedown = handleMouseDown;
82
- _el$4.style.setProperty("flex", "1");
80
+ setStyleProperty(_el$4, "flex", "1");
83
81
  insert(_el$4, createComponent(DetailsPanel, {
84
82
  selectedInstance,
85
83
  utilState
@@ -88,7 +86,7 @@ function Shell() {
88
86
  var _v$ = styles().mainContainer, _v$2 = styles().leftPanel, _v$3 = `${leftPanelWidth()}px`, _v$4 = `${styles().dragHandle} ${isDragging() ? "dragging" : ""}`, _v$5 = styles().rightPanel, _v$6 = styles().panelHeader;
89
87
  _v$ !== _p$.e && className(_el$, _p$.e = _v$);
90
88
  _v$2 !== _p$.t && className(_el$2, _p$.t = _v$2);
91
- _v$3 !== _p$.a && ((_p$.a = _v$3) != null ? _el$2.style.setProperty("width", _v$3) : _el$2.style.removeProperty("width"));
89
+ _v$3 !== _p$.a && setStyleProperty(_el$2, "width", _p$.a = _v$3);
92
90
  _v$4 !== _p$.o && className(_el$3, _p$.o = _v$4);
93
91
  _v$5 !== _p$.i && className(_el$4, _p$.i = _v$5);
94
92
  _v$6 !== _p$.n && className(_el$5, _p$.n = _v$6);
@@ -1 +1 @@
1
- {"version":3,"file":"Shell.js","sources":["../../../src/components/Shell.tsx"],"sourcesContent":["import { createMemo, createSignal, onCleanup, onMount } from 'solid-js'\nimport { Header, HeaderLogo, MainPanel } from '@tanstack/devtools-ui'\nimport { useStyles } from '../styles/use-styles'\nimport { usePacerDevtoolsState } from '../PacerContextProvider'\nimport { UTIL_GROUPS } from './util-groups'\nimport { UtilList } from './UtilList'\nimport { DetailsPanel } from './DetailsPanel'\nimport type { StateKey } from './util-groups'\n\nexport function Shell() {\n const styles = useStyles()\n const state = usePacerDevtoolsState()\n const utilState = () => state\n const [selectedKey, setSelectedKey] = createSignal<string | null>(null)\n const [leftPanelWidth, setLeftPanelWidth] = createSignal(300)\n const [isDragging, setIsDragging] = createSignal(false)\n\n const selectedInstance = createMemo(() => {\n const key = selectedKey()\n if (!key) return null\n for (const group of UTIL_GROUPS) {\n const instance = (utilState() as unknown as Record<StateKey, Array<any>>)[\n group.key\n ].find((inst) => inst.key === key)\n if (instance) return { instance, type: group.displayName }\n }\n return null\n })\n\n let dragStartX = 0\n let dragStartWidth = 0\n\n const handleMouseDown = (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDragging(true)\n document.body.style.cursor = 'col-resize'\n document.body.style.userSelect = 'none'\n dragStartX = e.clientX\n dragStartWidth = leftPanelWidth()\n }\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!isDragging()) return\n\n e.preventDefault()\n const deltaX = e.clientX - dragStartX\n const newWidth = Math.max(150, Math.min(800, dragStartWidth + deltaX))\n setLeftPanelWidth(newWidth)\n }\n\n const handleMouseUp = () => {\n setIsDragging(false)\n document.body.style.cursor = ''\n document.body.style.userSelect = ''\n }\n\n onMount(() => {\n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\n })\n\n onCleanup(() => {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n })\n\n return (\n <MainPanel>\n <Header>\n <HeaderLogo flavor={{ light: '#84cc16', dark: '#84cc16' }}>\n TanStack Pacer\n </HeaderLogo>\n </Header>\n\n <div class={styles().mainContainer}>\n <div\n class={styles().leftPanel}\n style={{\n width: `${leftPanelWidth()}px`,\n 'min-width': '150px',\n 'max-width': '800px',\n }}\n >\n <UtilList\n selectedKey={selectedKey}\n setSelectedKey={setSelectedKey}\n utilState={utilState}\n />\n </div>\n\n <div\n class={`${styles().dragHandle} ${isDragging() ? 'dragging' : ''}`}\n onMouseDown={handleMouseDown}\n />\n\n <div class={styles().rightPanel} style={{ flex: 1 }}>\n <div class={styles().panelHeader}>Details</div>\n <DetailsPanel\n selectedInstance={selectedInstance}\n utilState={utilState}\n />\n </div>\n </div>\n </MainPanel>\n )\n}\n"],"names":["Shell","styles","useStyles","state","usePacerDevtoolsState","utilState","selectedKey","setSelectedKey","createSignal","leftPanelWidth","setLeftPanelWidth","isDragging","setIsDragging","selectedInstance","createMemo","key","group","UTIL_GROUPS","instance","find","inst","type","displayName","dragStartX","dragStartWidth","handleMouseDown","e","preventDefault","stopPropagation","document","body","style","cursor","userSelect","clientX","handleMouseMove","deltaX","newWidth","Math","max","min","handleMouseUp","onMount","addEventListener","onCleanup","removeEventListener","_$createComponent","MainPanel","children","Header","HeaderLogo","flavor","light","dark","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_el$5","setProperty","_$insert","UtilList","$$mousedown","DetailsPanel","_$effect","_p$","_v$","mainContainer","_v$2","leftPanel","_v$3","_v$4","dragHandle","_v$5","rightPanel","_v$6","panelHeader","_$className","t","a","removeProperty","o","i","n","undefined","_$delegateEvents"],"mappings":"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"}
1
+ {"version":3,"file":"Shell.js","sources":["../../../src/components/Shell.tsx"],"sourcesContent":["import { createMemo, createSignal, onCleanup, onMount } from 'solid-js'\nimport { Header, HeaderLogo, MainPanel } from '@tanstack/devtools-ui'\nimport { useStyles } from '../styles/use-styles'\nimport { usePacerDevtoolsState } from '../PacerContextProvider'\nimport { UTIL_GROUPS } from './util-groups'\nimport { UtilList } from './UtilList'\nimport { DetailsPanel } from './DetailsPanel'\nimport type { StateKey } from './util-groups'\n\nexport function Shell() {\n const styles = useStyles()\n const state = usePacerDevtoolsState()\n const utilState = () => state\n const [selectedKey, setSelectedKey] = createSignal<string | null>(null)\n const [leftPanelWidth, setLeftPanelWidth] = createSignal(300)\n const [isDragging, setIsDragging] = createSignal(false)\n\n const selectedInstance = createMemo(() => {\n const key = selectedKey()\n if (!key) return null\n for (const group of UTIL_GROUPS) {\n const instance = (utilState() as unknown as Record<StateKey, Array<any>>)[\n group.key\n ].find((inst) => inst.key === key)\n if (instance) return { instance, type: group.displayName }\n }\n return null\n })\n\n let dragStartX = 0\n let dragStartWidth = 0\n\n const handleMouseDown = (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n setIsDragging(true)\n document.body.style.cursor = 'col-resize'\n document.body.style.userSelect = 'none'\n dragStartX = e.clientX\n dragStartWidth = leftPanelWidth()\n }\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!isDragging()) return\n\n e.preventDefault()\n const deltaX = e.clientX - dragStartX\n const newWidth = Math.max(150, Math.min(800, dragStartWidth + deltaX))\n setLeftPanelWidth(newWidth)\n }\n\n const handleMouseUp = () => {\n setIsDragging(false)\n document.body.style.cursor = ''\n document.body.style.userSelect = ''\n }\n\n onMount(() => {\n document.addEventListener('mousemove', handleMouseMove)\n document.addEventListener('mouseup', handleMouseUp)\n })\n\n onCleanup(() => {\n document.removeEventListener('mousemove', handleMouseMove)\n document.removeEventListener('mouseup', handleMouseUp)\n })\n\n return (\n <MainPanel>\n <Header>\n <HeaderLogo flavor={{ light: '#84cc16', dark: '#84cc16' }}>\n TanStack Pacer\n </HeaderLogo>\n </Header>\n\n <div class={styles().mainContainer}>\n <div\n class={styles().leftPanel}\n style={{\n width: `${leftPanelWidth()}px`,\n 'min-width': '150px',\n 'max-width': '800px',\n }}\n >\n <UtilList\n selectedKey={selectedKey}\n setSelectedKey={setSelectedKey}\n utilState={utilState}\n />\n </div>\n\n <div\n class={`${styles().dragHandle} ${isDragging() ? 'dragging' : ''}`}\n onMouseDown={handleMouseDown}\n />\n\n <div class={styles().rightPanel} style={{ flex: 1 }}>\n <div class={styles().panelHeader}>Details</div>\n <DetailsPanel\n selectedInstance={selectedInstance}\n utilState={utilState}\n />\n </div>\n </div>\n </MainPanel>\n )\n}\n"],"names":["Shell","styles","useStyles","state","usePacerDevtoolsState","utilState","selectedKey","setSelectedKey","createSignal","leftPanelWidth","setLeftPanelWidth","isDragging","setIsDragging","selectedInstance","createMemo","key","group","UTIL_GROUPS","instance","find","inst","type","displayName","dragStartX","dragStartWidth","handleMouseDown","e","preventDefault","stopPropagation","document","body","style","cursor","userSelect","clientX","handleMouseMove","deltaX","newWidth","Math","max","min","handleMouseUp","onMount","addEventListener","onCleanup","removeEventListener","_$createComponent","MainPanel","children","Header","HeaderLogo","flavor","light","dark","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_el$5","_$insert","UtilList","$$mousedown","_$setStyleProperty","DetailsPanel","_$effect","_p$","_v$","mainContainer","_v$2","leftPanel","_v$3","_v$4","dragHandle","_v$5","rightPanel","_v$6","panelHeader","_$className","t","a","o","i","n","undefined","_$delegateEvents"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import { template, insert, effect, className } from "solid-js/web";
1
+ import { template, insert, setStyleProperty, effect, className } from "solid-js/web";
2
2
  import dayjs from "dayjs";
3
3
  import relativeTime from "dayjs/plugin/relativeTime";
4
4
  import { createSignal, onMount, onCleanup } from "solid-js";
5
5
  import { useStyles } from "../styles/use-styles.js";
6
- var _tmpl$ = /* @__PURE__ */ template(`<div><div></div><div><div><div>Key</div><div></div><div>Last Updated</div><div> (<!>)</div></div><div>% reduction`);
6
+ var _tmpl$ = /* @__PURE__ */ template(`<div><div></div><div style=align-items:center><div><div>Key</div><div></div><div>Last Updated</div><div> (<!>)</div></div><div style=margin-left:auto;font-weight:bold>% reduction`);
7
7
  dayjs.extend(relativeTime);
8
8
  function StateHeader(props) {
9
9
  const styles = useStyles();
@@ -56,14 +56,11 @@ function StateHeader(props) {
56
56
  _el$1.nextSibling;
57
57
  var _el$10 = _el$4.nextSibling, _el$11 = _el$10.firstChild;
58
58
  insert(_el$2, () => entry.type);
59
- _el$3.style.setProperty("display", "flex");
60
- _el$3.style.setProperty("align-items", "center");
61
- _el$3.style.setProperty("gap", "16px");
59
+ setStyleProperty(_el$3, "display", "flex");
60
+ setStyleProperty(_el$3, "gap", "16px");
62
61
  insert(_el$6, key);
63
62
  insert(_el$8, () => new Date(updatedAt).toLocaleTimeString(), _el$9);
64
63
  insert(_el$8, getRelativeTime, _el$1);
65
- _el$10.style.setProperty("margin-left", "auto");
66
- _el$10.style.setProperty("font-weight", "bold");
67
64
  insert(_el$10, reductionPercentage, _el$11);
68
65
  effect((_p$) => {
69
66
  var _v$ = styles().stateHeader, _v$2 = styles().stateTitle, _v$3 = styles().infoGrid, _v$4 = styles().infoLabel, _v$5 = styles().infoValueMono, _v$6 = styles().infoLabel, _v$7 = styles().infoValueMono, _v$8 = styles().infoValueMono;
@@ -1 +1 @@
1
- {"version":3,"file":"StateHeader.js","sources":["../../../src/components/StateHeader.tsx"],"sourcesContent":["import dayjs from 'dayjs'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport { createSignal, onCleanup, onMount } from 'solid-js'\nimport { useStyles } from '../styles/use-styles'\n\ndayjs.extend(relativeTime)\n\ntype StateHeaderProps = {\n selectedInstance: () => { instance: any; type: string } | null\n utilState: () => { lastUpdatedByKey: Record<string, number> }\n}\n\nexport function StateHeader(props: StateHeaderProps) {\n const styles = useStyles()\n const [now, setNow] = createSignal(Date.now())\n\n onMount(() => {\n const interval = setInterval(() => {\n setNow(Date.now())\n }, 1000)\n\n onCleanup(() => {\n clearInterval(interval)\n })\n })\n\n const entry = props.selectedInstance()\n if (!entry) return null\n\n const key = entry.instance.key as string\n const updatedAt = props.utilState().lastUpdatedByKey[key] ?? Date.now()\n\n const getRelativeTime = () => {\n const diffMs = now() - updatedAt\n const diffSeconds = Math.floor(diffMs / 1000)\n\n if (diffSeconds < 60) {\n return `${diffSeconds} second${diffSeconds !== 1 ? 's' : ''} ago`\n }\n\n return dayjs(updatedAt).fromNow()\n }\n\n const getReductionPercentage = () => {\n const state = entry.instance.store?.state || entry.instance.state\n\n if (!state) return 0\n\n // Use settleCount for async utilities, executionCount for sync utilities\n const isAsync = entry.type.toLowerCase().includes('async')\n const completedExecutions = isAsync\n ? state.settleCount || 0\n : state.executionCount || 0\n\n // For batchers, calculate reduction based on items processed vs executions\n if (entry.type.toLowerCase().includes('batcher')) {\n const totalItemsProcessed = state.totalItemsProcessed || 0\n if (totalItemsProcessed === 0) return 0\n return Math.round(\n ((totalItemsProcessed - completedExecutions) / totalItemsProcessed) *\n 100,\n )\n }\n\n // For other utilities, calculate reduction based on request tracking\n let requestCount = 0\n\n if (state.maybeExecuteCount !== undefined) {\n requestCount = state.maybeExecuteCount\n } else if (state.addItemCount !== undefined) {\n requestCount = state.addItemCount\n } else {\n // For utilities that don't track requests, show 0%\n return 0\n }\n\n if (requestCount === 0) return 0\n\n const reduction = requestCount - completedExecutions\n return Math.round((reduction / requestCount) * 100)\n }\n\n const reductionPercentage = getReductionPercentage()\n\n return (\n <div class={styles().stateHeader}>\n <div class={styles().stateTitle}>{entry.type}</div>\n <div style={{ display: 'flex', 'align-items': 'center', gap: '16px' }}>\n <div class={styles().infoGrid}>\n <div class={styles().infoLabel}>Key</div>\n <div class={styles().infoValueMono}>{key}</div>\n <div class={styles().infoLabel}>Last Updated</div>\n <div class={styles().infoValueMono}>\n {new Date(updatedAt).toLocaleTimeString()} ({getRelativeTime()})\n </div>\n </div>\n <div\n class={styles().infoValueMono}\n style={{ 'margin-left': 'auto', 'font-weight': 'bold' }}\n >\n {reductionPercentage}% reduction\n </div>\n </div>\n </div>\n )\n}\n"],"names":["dayjs","extend","relativeTime","StateHeader","props","styles","useStyles","now","setNow","createSignal","Date","onMount","interval","setInterval","onCleanup","clearInterval","entry","selectedInstance","key","instance","updatedAt","utilState","lastUpdatedByKey","getRelativeTime","diffMs","diffSeconds","Math","floor","fromNow","getReductionPercentage","state","store","isAsync","type","toLowerCase","includes","completedExecutions","settleCount","executionCount","totalItemsProcessed","round","requestCount","maybeExecuteCount","undefined","addItemCount","reduction","reductionPercentage","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_el$5","_el$6","_el$7","_el$8","_el$9","_el$1","_el$10","_el$11","_$insert","style","setProperty","toLocaleTimeString","_$effect","_p$","_v$","stateHeader","_v$2","stateTitle","_v$3","infoGrid","_v$4","infoLabel","_v$5","infoValueMono","_v$6","_v$7","_v$8","e","_$className","t","a","o","i","n","s","h"],"mappings":"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"}
1
+ {"version":3,"file":"StateHeader.js","sources":["../../../src/components/StateHeader.tsx"],"sourcesContent":["import dayjs from 'dayjs'\nimport relativeTime from 'dayjs/plugin/relativeTime'\nimport { createSignal, onCleanup, onMount } from 'solid-js'\nimport { useStyles } from '../styles/use-styles'\n\ndayjs.extend(relativeTime)\n\ntype StateHeaderProps = {\n selectedInstance: () => { instance: any; type: string } | null\n utilState: () => { lastUpdatedByKey: Record<string, number> }\n}\n\nexport function StateHeader(props: StateHeaderProps) {\n const styles = useStyles()\n const [now, setNow] = createSignal(Date.now())\n\n onMount(() => {\n const interval = setInterval(() => {\n setNow(Date.now())\n }, 1000)\n\n onCleanup(() => {\n clearInterval(interval)\n })\n })\n\n const entry = props.selectedInstance()\n if (!entry) return null\n\n const key = entry.instance.key as string\n const updatedAt = props.utilState().lastUpdatedByKey[key] ?? Date.now()\n\n const getRelativeTime = () => {\n const diffMs = now() - updatedAt\n const diffSeconds = Math.floor(diffMs / 1000)\n\n if (diffSeconds < 60) {\n return `${diffSeconds} second${diffSeconds !== 1 ? 's' : ''} ago`\n }\n\n return dayjs(updatedAt).fromNow()\n }\n\n const getReductionPercentage = () => {\n const state = entry.instance.store?.state || entry.instance.state\n\n if (!state) return 0\n\n // Use settleCount for async utilities, executionCount for sync utilities\n const isAsync = entry.type.toLowerCase().includes('async')\n const completedExecutions = isAsync\n ? state.settleCount || 0\n : state.executionCount || 0\n\n // For batchers, calculate reduction based on items processed vs executions\n if (entry.type.toLowerCase().includes('batcher')) {\n const totalItemsProcessed = state.totalItemsProcessed || 0\n if (totalItemsProcessed === 0) return 0\n return Math.round(\n ((totalItemsProcessed - completedExecutions) / totalItemsProcessed) *\n 100,\n )\n }\n\n // For other utilities, calculate reduction based on request tracking\n let requestCount = 0\n\n if (state.maybeExecuteCount !== undefined) {\n requestCount = state.maybeExecuteCount\n } else if (state.addItemCount !== undefined) {\n requestCount = state.addItemCount\n } else {\n // For utilities that don't track requests, show 0%\n return 0\n }\n\n if (requestCount === 0) return 0\n\n const reduction = requestCount - completedExecutions\n return Math.round((reduction / requestCount) * 100)\n }\n\n const reductionPercentage = getReductionPercentage()\n\n return (\n <div class={styles().stateHeader}>\n <div class={styles().stateTitle}>{entry.type}</div>\n <div style={{ display: 'flex', 'align-items': 'center', gap: '16px' }}>\n <div class={styles().infoGrid}>\n <div class={styles().infoLabel}>Key</div>\n <div class={styles().infoValueMono}>{key}</div>\n <div class={styles().infoLabel}>Last Updated</div>\n <div class={styles().infoValueMono}>\n {new Date(updatedAt).toLocaleTimeString()} ({getRelativeTime()})\n </div>\n </div>\n <div\n class={styles().infoValueMono}\n style={{ 'margin-left': 'auto', 'font-weight': 'bold' }}\n >\n {reductionPercentage}% reduction\n </div>\n </div>\n </div>\n )\n}\n"],"names":["dayjs","extend","relativeTime","StateHeader","props","styles","useStyles","now","setNow","createSignal","Date","onMount","interval","setInterval","onCleanup","clearInterval","entry","selectedInstance","key","instance","updatedAt","utilState","lastUpdatedByKey","getRelativeTime","diffMs","diffSeconds","Math","floor","fromNow","getReductionPercentage","state","store","isAsync","type","toLowerCase","includes","completedExecutions","settleCount","executionCount","totalItemsProcessed","round","requestCount","maybeExecuteCount","undefined","addItemCount","reduction","reductionPercentage","_el$","_tmpl$","_el$2","firstChild","_el$3","nextSibling","_el$4","_el$5","_el$6","_el$7","_el$8","_el$9","_el$1","_el$10","_el$11","_$insert","_$setStyleProperty","toLocaleTimeString","_$effect","_p$","_v$","stateHeader","_v$2","stateTitle","_v$3","infoGrid","_v$4","infoLabel","_v$5","infoValueMono","_v$6","_v$7","_v$8","e","_$className","t","a","o","i","n","s","h"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"UtilList.js","sources":["../../../src/components/UtilList.tsx"],"sourcesContent":["import { For } from 'solid-js'\nimport { useStore } from '@tanstack/solid-store'\nimport clsx from 'clsx'\nimport { useStyles } from '../styles/use-styles'\nimport { UTIL_GROUPS } from './util-groups'\nimport type { StateKey } from './util-groups'\n\ntype UtilListProps = {\n selectedKey: () => string | null\n setSelectedKey: (key: string | null) => void\n utilState: () => Record<StateKey, Array<any>>\n}\n\nexport function UtilList(props: UtilListProps) {\n const styles = useStyles()\n\n return (\n <div class={styles().utilList}>\n <For each={UTIL_GROUPS}>\n {(group) => (\n <>\n {props.utilState()[group.key].length > 0 && (\n <div class={styles().utilGroup}>\n <div class={styles().utilGroupHeader}>{group.label}</div>\n <For each={props.utilState()[group.key]}>\n {(instance) => {\n const status = (() => {\n try {\n const statusAccessor = useStore(\n instance.store,\n (s: any) => s.status,\n )\n return () => statusAccessor() ?? 'unknown'\n } catch {\n return () => 'unknown'\n }\n })()\n return (\n <div\n class={clsx(\n styles().utilRow,\n props.selectedKey() === instance.key &&\n styles().utilRowSelected,\n )}\n onClick={() =>\n props.setSelectedKey(instance.key ?? null)\n }\n >\n <div class={styles().utilKey}>{instance.key}</div>\n <div class={styles().utilStatus}>{status()}</div>\n </div>\n )\n }}\n </For>\n </div>\n )}\n </>\n )}\n </For>\n </div>\n )\n}\n"],"names":["UtilList","props","styles","useStyles","_el$","_tmpl$","_$insert","_$createComponent","For","each","UTIL_GROUPS","children","group","_$memo","utilState","key","length","_el$2","_tmpl$2","_el$3","firstChild","label","instance","status","statusAccessor","useStore","store","s","_el$4","_tmpl$3","_el$5","_el$6","nextSibling","$$click","setSelectedKey","_$effect","_p$","_v$3","clsx","utilRow","selectedKey","utilRowSelected","_v$4","utilKey","_v$5","utilStatus","e","_$className","t","a","undefined","_v$","utilGroup","_v$2","utilGroupHeader","utilList","_$delegateEvents"],"mappings":";;;;;;;AAaO,SAASA,SAASC,OAAsB;AAC7C,QAAMC,SAASC,UAAAA;AAEf,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAA;AAAAC,WAAAF,MAAAG,gBAEKC,KAAG;AAAA,MAACC,MAAMC;AAAAA,MAAWC,UAClBC,CAAAA,UAAKC,WAEFA,KAAA,MAAAZ,MAAMa,UAAAA,EAAYF,MAAMG,GAAG,EAAEC,SAAS,CAAC,EAAA,MAAA,MAAA;AAAA,YAAAC,QAAAC,QAAAA,GAAAC,QAAAF,MAAAG;AAAAd,eAAAa,OAAA,MAEGP,MAAMS,KAAK;AAAAf,eAAAW,OAAAV,gBACjDC,KAAG;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAER,MAAMa,YAAYF,MAAMG,GAAG;AAAA,UAAA;AAAA,UAACJ,UACnCW,CAAAA,aAAa;AACb,kBAAMC,UAAU,MAAM;AACpB,kBAAI;AACF,sBAAMC,iBAAiBC,SACrBH,SAASI,OACT,CAACC,MAAWA,EAAEJ,MAChB;AACA,uBAAO,MAAMC,oBAAoB;AAAA,cAAA,QAC3B;AACN,uBAAO,MAAM;AAAA,cAAA;AAAA,YACf,GACF;AACA,oBAAA,MAAA;AAAA,kBAAAI,QAAAC,QAAAA,GAAAC,QAAAF,MAAAR,YAAAW,QAAAD,MAAAE;AAAAJ,oBAAAK,UAOa,MACPhC,MAAMiC,eAAeZ,SAASP,OAAO,IAAI;AAACT,qBAAAwB,OAAA,MAGbR,SAASP,GAAG;AAAAT,qBAAAyB,OACTR,MAAM;AAAAY,qBAAAC,CAAAA,QAAA;AAAA,oBAAAC,OAVjCC,KACLpC,OAAAA,EAASqC,SACTtC,MAAMuC,YAAAA,MAAkBlB,SAASP,OAC/Bb,SAASuC,eACb,GAACC,OAKWxC,OAAAA,EAASyC,SAAOC,OAChB1C,SAAS2C;AAAUR,yBAAAD,IAAAU,KAAAC,UAAAnB,OAAAQ,IAAAU,IAAAT,IAAA;AAAAK,yBAAAN,IAAAY,KAAAD,UAAAjB,OAAAM,IAAAY,IAAAN,IAAA;AAAAE,yBAAAR,IAAAa,KAAAF,UAAAhB,OAAAK,IAAAa,IAAAL,IAAA;AAAA,uBAAAR;AAAAA,cAAAA,GAAA;AAAA,gBAAAU,GAAAI;AAAAA,gBAAAF,GAAAE;AAAAA,gBAAAD,GAAAC;AAAAA,cAAAA,CAAA;AAAA,qBAAAtB;AAAAA,YAAAA,GAAA;AAAA,UAAA;AAAA,QAGrC,CAAC,GAAA,IAAA;AAAAO,eAAAC,CAAAA,QAAA;AAAA,cAAAe,MA9BOjD,OAAAA,EAASkD,WAASC,OAChBnD,SAASoD;AAAeH,kBAAAf,IAAAU,KAAAC,UAAA9B,OAAAmB,IAAAU,IAAAK,GAAA;AAAAE,mBAAAjB,IAAAY,KAAAD,UAAA5B,OAAAiB,IAAAY,IAAAK,IAAA;AAAA,iBAAAjB;AAAAA,QAAAA,GAAA;AAAA,UAAAU,GAAAI;AAAAA,UAAAF,GAAAE;AAAAA,QAAAA,CAAA;AAAA,eAAAjC;AAAAA,MAAAA,IAgCvC;AAAA,IAAA,CAEJ,CAAA;AAAAkB,WAAA,MAAAY,UAAA3C,MAxCOF,OAAAA,EAASqD,QAAQ,CAAA;AAAA,WAAAnD;AAAAA,EAAAA,GAAA;AA4CjC;AAACoD,eAAA,CAAA,OAAA,CAAA;"}
1
+ {"version":3,"file":"UtilList.js","sources":["../../../src/components/UtilList.tsx"],"sourcesContent":["import { For } from 'solid-js'\nimport { useStore } from '@tanstack/solid-store'\nimport clsx from 'clsx'\nimport { useStyles } from '../styles/use-styles'\nimport { UTIL_GROUPS } from './util-groups'\nimport type { StateKey } from './util-groups'\n\ntype UtilListProps = {\n selectedKey: () => string | null\n setSelectedKey: (key: string | null) => void\n utilState: () => Record<StateKey, Array<any>>\n}\n\nexport function UtilList(props: UtilListProps) {\n const styles = useStyles()\n\n return (\n <div class={styles().utilList}>\n <For each={UTIL_GROUPS}>\n {(group) => (\n <>\n {props.utilState()[group.key].length > 0 && (\n <div class={styles().utilGroup}>\n <div class={styles().utilGroupHeader}>{group.label}</div>\n <For each={props.utilState()[group.key]}>\n {(instance) => {\n const status = (() => {\n try {\n const statusAccessor = useStore(\n instance.store,\n (s: any) => s.status,\n )\n return () => statusAccessor() ?? 'unknown'\n } catch {\n return () => 'unknown'\n }\n })()\n return (\n <div\n class={clsx(\n styles().utilRow,\n props.selectedKey() === instance.key &&\n styles().utilRowSelected,\n )}\n onClick={() =>\n props.setSelectedKey(instance.key ?? null)\n }\n >\n <div class={styles().utilKey}>{instance.key}</div>\n <div class={styles().utilStatus}>{status()}</div>\n </div>\n )\n }}\n </For>\n </div>\n )}\n </>\n )}\n </For>\n </div>\n )\n}\n"],"names":["UtilList","props","styles","useStyles","_el$","_tmpl$","_$insert","_$createComponent","For","each","UTIL_GROUPS","children","group","_$memo","utilState","key","length","_el$2","_tmpl$2","_el$3","firstChild","label","instance","status","statusAccessor","useStore","store","s","_el$4","_tmpl$3","_el$5","_el$6","nextSibling","$$click","setSelectedKey","_$effect","_p$","_v$3","clsx","utilRow","selectedKey","utilRowSelected","_v$4","utilKey","_v$5","utilStatus","e","_$className","t","a","undefined","_v$","utilGroup","_v$2","utilGroupHeader","utilList","_$delegateEvents"],"mappings":";;;;;;;AAaO,SAASA,SAASC,OAAsB;AAC7C,QAAMC,SAASC,UAAAA;AAEf,UAAA,MAAA;AAAA,QAAAC,OAAAC,OAAAA;AAAAC,WAAAF,MAAAG,gBAEKC,KAAG;AAAA,MAACC,MAAMC;AAAAA,MAAWC,UAClBC,CAAAA,UAAKC,WAEFA,KAAA,MAAAZ,MAAMa,UAAAA,EAAYF,MAAMG,GAAG,EAAEC,SAAS,CAAC,EAAA,MAAA,MAAA;AAAA,YAAAC,QAAAC,QAAAA,GAAAC,QAAAF,MAAAG;AAAAd,eAAAa,OAAA,MAEGP,MAAMS,KAAK;AAAAf,eAAAW,OAAAV,gBACjDC,KAAG;AAAA,UAAA,IAACC,OAAI;AAAA,mBAAER,MAAMa,YAAYF,MAAMG,GAAG;AAAA,UAAC;AAAA,UAAAJ,UACnCW,CAAAA,aAAa;AACb,kBAAMC,UAAU,MAAM;AACpB,kBAAI;AACF,sBAAMC,iBAAiBC,SACrBH,SAASI,OACT,CAACC,MAAWA,EAAEJ,MAChB;AACA,uBAAO,MAAMC,oBAAoB;AAAA,cACnC,QAAQ;AACN,uBAAO,MAAM;AAAA,cACf;AAAA,YACF,GAAA;AACA,oBAAA,MAAA;AAAA,kBAAAI,QAAAC,QAAAA,GAAAC,QAAAF,MAAAR,YAAAW,QAAAD,MAAAE;AAAAJ,oBAAAK,UAOa,MACPhC,MAAMiC,eAAeZ,SAASP,OAAO,IAAI;AAACT,qBAAAwB,OAAA,MAGbR,SAASP,GAAG;AAAAT,qBAAAyB,OACTR,MAAM;AAAAY,qBAAAC,CAAAA,QAAA;AAAA,oBAAAC,OAVjCC,KACLpC,OAAAA,EAASqC,SACTtC,MAAMuC,YAAAA,MAAkBlB,SAASP,OAC/Bb,SAASuC,eACb,GAACC,OAKWxC,OAAAA,EAASyC,SAAOC,OAChB1C,SAAS2C;AAAUR,yBAAAD,IAAAU,KAAAC,UAAAnB,OAAAQ,IAAAU,IAAAT,IAAA;AAAAK,yBAAAN,IAAAY,KAAAD,UAAAjB,OAAAM,IAAAY,IAAAN,IAAA;AAAAE,yBAAAR,IAAAa,KAAAF,UAAAhB,OAAAK,IAAAa,IAAAL,IAAA;AAAA,uBAAAR;AAAAA,cAAA,GAAA;AAAA,gBAAAU,GAAAI;AAAAA,gBAAAF,GAAAE;AAAAA,gBAAAD,GAAAC;AAAAA,cAAAA,CAAA;AAAA,qBAAAtB;AAAAA,YAAA,GAAA;AAAA,UAGrC;AAAA,QAAA,CAAC,GAAA,IAAA;AAAAO,eAAAC,CAAAA,QAAA;AAAA,cAAAe,MA9BOjD,OAAAA,EAASkD,WAASC,OAChBnD,SAASoD;AAAeH,kBAAAf,IAAAU,KAAAC,UAAA9B,OAAAmB,IAAAU,IAAAK,GAAA;AAAAE,mBAAAjB,IAAAY,KAAAD,UAAA5B,OAAAiB,IAAAY,IAAAK,IAAA;AAAA,iBAAAjB;AAAAA,QAAA,GAAA;AAAA,UAAAU,GAAAI;AAAAA,UAAAF,GAAAE;AAAAA,QAAAA,CAAA;AAAA,eAAAjC;AAAAA,MAAA,IAgCvC;AAAA,IAAA,CAEJ,CAAA;AAAAkB,WAAA,MAAAY,UAAA3C,MAxCOF,OAAAA,EAASqD,QAAQ,CAAA;AAAA,WAAAnD;AAAAA,EAAA,GAAA;AA4CjC;AAACoD,eAAA,CAAA,OAAA,CAAA;"}
@@ -1,8 +1,18 @@
1
1
  export interface PacerDevtoolsInit {
2
2
  }
3
- export declare class PacerDevtoolsCore {
4
- #private;
5
- constructor(_init?: PacerDevtoolsInit | undefined);
6
- mount<T extends HTMLElement>(el: T, theme: 'light' | 'dark'): void;
3
+ declare const PacerDevtoolsCore: new () => {
4
+ #isMounted: boolean;
5
+ #dispose?: () => void;
6
+ #Component: any;
7
+ #ThemeProvider: any;
8
+ mount<T extends HTMLElement>(el: T, theme: "light" | "dark"): Promise<void>;
7
9
  unmount(): void;
8
- }
10
+ }, PacerDevtoolsCoreNoOp: new () => {
11
+ mount<T extends HTMLElement>(_el: T, _theme: "light" | "dark"): Promise<void>;
12
+ unmount(): void;
13
+ #isMounted: boolean;
14
+ #dispose?: () => void;
15
+ #Component: any;
16
+ #ThemeProvider: any;
17
+ };
18
+ export { PacerDevtoolsCore, PacerDevtoolsCoreNoOp };
package/dist/esm/core.js CHANGED
@@ -1,52 +1,9 @@
1
- import { render, createComponent, Portal, template, insert } from "solid-js/web";
1
+ import { constructCoreClass } from "@tanstack/devtools-utils/solid";
2
2
  import { lazy } from "solid-js";
3
- var _tmpl$ = /* @__PURE__ */ template(`<div>`);
4
- class PacerDevtoolsCore {
5
- #isMounted = false;
6
- #dispose;
7
- #Component;
8
- #ThemeProvider;
9
- constructor(_init) {
10
- }
11
- mount(el, theme) {
12
- if (this.#isMounted) {
13
- throw new Error("Devtools is already mounted");
14
- }
15
- const mountTo = el;
16
- const dispose = render(() => {
17
- this.#Component = lazy(() => import("./PacerDevtools.js"));
18
- const Devtools = this.#Component;
19
- this.#ThemeProvider = lazy(() => import("@tanstack/devtools-ui").then((mod) => ({
20
- default: mod.ThemeContextProvider
21
- })));
22
- const ThemeProvider = this.#ThemeProvider;
23
- return createComponent(Portal, {
24
- mount: mountTo,
25
- get children() {
26
- var _el$ = _tmpl$();
27
- _el$.style.setProperty("height", "100%");
28
- insert(_el$, createComponent(ThemeProvider, {
29
- theme,
30
- get children() {
31
- return createComponent(Devtools, {});
32
- }
33
- }));
34
- return _el$;
35
- }
36
- });
37
- }, mountTo);
38
- this.#isMounted = true;
39
- this.#dispose = dispose;
40
- }
41
- unmount() {
42
- if (!this.#isMounted) {
43
- throw new Error("Devtools is not mounted");
44
- }
45
- this.#dispose?.();
46
- this.#isMounted = false;
47
- }
48
- }
3
+ const Component = lazy(() => import("./PacerDevtools.js"));
4
+ const [PacerDevtoolsCore, PacerDevtoolsCoreNoOp] = constructCoreClass(Component);
49
5
  export {
50
- PacerDevtoolsCore
6
+ PacerDevtoolsCore,
7
+ PacerDevtoolsCoreNoOp
51
8
  };
52
9
  //# sourceMappingURL=core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sources":["../../src/core.tsx"],"sourcesContent":["import { lazy } from 'solid-js'\nimport { Portal, render } from 'solid-js/web'\n\nexport interface PacerDevtoolsInit {}\n\nexport class PacerDevtoolsCore {\n #isMounted = false\n #dispose?: () => void\n #Component: any\n #ThemeProvider: any\n\n constructor(_init?: PacerDevtoolsInit | undefined) {}\n\n mount<T extends HTMLElement>(el: T, theme: 'light' | 'dark') {\n if (this.#isMounted) {\n throw new Error('Devtools is already mounted')\n }\n const mountTo = el\n const dispose = render(() => {\n this.#Component = lazy(() => import('./PacerDevtools'))\n const Devtools = this.#Component\n this.#ThemeProvider = lazy(() =>\n import('@tanstack/devtools-ui').then((mod) => ({\n default: mod.ThemeContextProvider,\n })),\n )\n const ThemeProvider = this.#ThemeProvider\n\n return (\n <Portal mount={mountTo}>\n <div style={{ height: '100%' }}>\n <ThemeProvider theme={theme}>\n <Devtools />\n </ThemeProvider>\n </div>\n </Portal>\n )\n }, mountTo)\n this.#isMounted = true\n this.#dispose = dispose\n }\n\n unmount() {\n if (!this.#isMounted) {\n throw new Error('Devtools is not mounted')\n }\n this.#dispose?.()\n this.#isMounted = false\n }\n}\n"],"names":["PacerDevtoolsCore","constructor","_init","mount","el","theme","Error","mountTo","dispose","render","lazy","Devtools","then","mod","default","ThemeContextProvider","ThemeProvider","_$createComponent","Portal","children","_el$","_tmpl$","style","setProperty","_$insert","unmount"],"mappings":";;;AAKO,MAAMA,kBAAkB;AAAA,EAC7B,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EAEAC,YAAYC,OAAuC;AAAA,EAAA;AAAA,EAEnDC,MAA6BC,IAAOC,OAAyB;AAC3D,QAAI,KAAK,YAAY;AACnB,YAAM,IAAIC,MAAM,6BAA6B;AAAA,IAAA;AAE/C,UAAMC,UAAUH;AAChB,UAAMI,UAAUC,OAAO,MAAM;AAC3B,WAAK,aAAaC,KAAK,MAAM,OAAO,oBAAiB,CAAC;AACtD,YAAMC,WAAW,KAAK;AACtB,WAAK,iBAAiBD,KAAK,MACzB,OAAO,uBAAuB,EAAEE,KAAMC,CAAAA,SAAS;AAAA,QAC7CC,SAASD,IAAIE;AAAAA,MAAAA,EACb,CACJ;AACA,YAAMC,gBAAgB,KAAK;AAE3B,aAAAC,gBACGC,QAAM;AAAA,QAACf,OAAOI;AAAAA,QAAO,IAAAY,WAAA;AAAA,cAAAC,OAAAC,OAAAA;AAAAD,eAAAE,MAAAC,YAAA,UAAA,MAAA;AAAAC,iBAAAJ,MAAAH,gBAEjBD,eAAa;AAAA,YAACX;AAAAA,YAAY,IAAAc,WAAA;AAAA,qBAAAF,gBACxBN,UAAQ,EAAA;AAAA,YAAA;AAAA,UAAA,CAAA,CAAA;AAAA,iBAAAS;AAAAA,QAAAA;AAAAA,MAAA,CAAA;AAAA,IAAA,GAKhBb,OAAO;AACV,SAAK,aAAa;AAClB,SAAK,WAAWC;AAAAA,EAAAA;AAAAA,EAGlBiB,UAAU;AACR,QAAI,CAAC,KAAK,YAAY;AACpB,YAAM,IAAInB,MAAM,yBAAyB;AAAA,IAAA;AAE3C,SAAK,WAAA;AACL,SAAK,aAAa;AAAA,EAAA;AAEtB;"}
1
+ {"version":3,"file":"core.js","sources":["../../src/core.tsx"],"sourcesContent":["import { constructCoreClass } from '@tanstack/devtools-utils/solid'\nimport { lazy } from 'solid-js'\n\nconst Component = lazy(() => import('./PacerDevtools'))\n\nexport interface PacerDevtoolsInit {}\n\nconst [PacerDevtoolsCore, PacerDevtoolsCoreNoOp] = constructCoreClass(Component)\n\nexport { PacerDevtoolsCore, PacerDevtoolsCoreNoOp }\n"],"names":["Component","lazy","PacerDevtoolsCore","PacerDevtoolsCoreNoOp","constructCoreClass"],"mappings":";;AAGA,MAAMA,YAAYC,KAAK,MAAM,OAAO,oBAAiB,CAAC;AAItD,MAAM,CAACC,mBAAmBC,qBAAqB,IAAIC,mBAAmBJ,SAAS;"}
@@ -1,3 +1,9 @@
1
- import * as Devtools from './core.js';
2
- export declare const PacerDevtoolsCore: (typeof Devtools)['PacerDevtoolsCore'];
1
+ export declare const PacerDevtoolsCore: new () => {
2
+ #isMounted: boolean;
3
+ #dispose?: () => void;
4
+ #Component: any;
5
+ #ThemeProvider: any;
6
+ mount<T extends HTMLElement>(el: T, theme: "light" | "dark"): Promise<void>;
7
+ unmount(): void;
8
+ };
3
9
  export type { PacerDevtoolsInit } from './core.js';
package/dist/esm/index.js CHANGED
@@ -1,14 +1,6 @@
1
1
  "use client";
2
- import { PacerDevtoolsCore as PacerDevtoolsCore$1 } from "./core.js";
3
- class DummyPacerDevtoolsCore {
4
- constructor() {
5
- }
6
- mount() {
7
- }
8
- unmount() {
9
- }
10
- }
11
- const PacerDevtoolsCore = process.env.NODE_ENV !== "development" ? DummyPacerDevtoolsCore : PacerDevtoolsCore$1;
2
+ import { PacerDevtoolsCoreNoOp, PacerDevtoolsCore as PacerDevtoolsCore$1 } from "./core.js";
3
+ const PacerDevtoolsCore = process.env.NODE_ENV !== "development" ? PacerDevtoolsCoreNoOp : PacerDevtoolsCore$1;
12
4
  export {
13
5
  PacerDevtoolsCore
14
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["'use client'\n\nimport * as Devtools from './core'\n\n// Create a dummy class for production that does nothing\nclass DummyPacerDevtoolsCore {\n constructor() {}\n mount() {}\n unmount() {}\n}\n\nexport const PacerDevtoolsCore: (typeof Devtools)['PacerDevtoolsCore'] =\n process.env.NODE_ENV !== 'development'\n ? (DummyPacerDevtoolsCore as any)\n : Devtools.PacerDevtoolsCore\n\nexport type { PacerDevtoolsInit } from './core'\n"],"names":[],"mappings":";;AAKA;AAA6B;AACb;AAAA;AACN;AAAA;AACE;AACZ;AAEO;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/index.ts"],"sourcesContent":["'use client'\n\nimport * as Devtools from './core'\n\nexport const PacerDevtoolsCore =\n process.env.NODE_ENV !== 'development'\n ? Devtools.PacerDevtoolsCoreNoOp\n : Devtools.PacerDevtoolsCore\n\nexport type { PacerDevtoolsInit } from './core'\n"],"names":[],"mappings":";;AAIO;;;;"}
@@ -1,3 +1,2 @@
1
- import * as Devtools from './core.js';
2
- export declare const PacerDevtoolsCore: typeof Devtools.PacerDevtoolsCore;
1
+ export { PacerDevtoolsCore } from './core.js';
3
2
  export type { PacerDevtoolsInit } from './core.js';
@@ -1,6 +1,5 @@
1
1
  "use client";
2
- import { PacerDevtoolsCore as PacerDevtoolsCore$1 } from "./core.js";
3
- const PacerDevtoolsCore = PacerDevtoolsCore$1;
2
+ import { PacerDevtoolsCore } from "./core.js";
4
3
  export {
5
4
  PacerDevtoolsCore
6
5
  };
@@ -1 +1 @@
1
- {"version":3,"file":"production.js","sources":["../../src/production.ts"],"sourcesContent":["'use client'\n\nimport * as Devtools from './core'\n\nexport const PacerDevtoolsCore = Devtools.PacerDevtoolsCore\n\nexport type { PacerDevtoolsInit } from './core'\n"],"names":[],"mappings":";;AAIO;;;;"}
1
+ {"version":3,"file":"production.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-styles.js","sources":["../../../src/styles/use-styles.ts"],"sourcesContent":["import * as goober from 'goober'\nimport { createEffect, createSignal } from 'solid-js'\nimport { useTheme } from '@tanstack/devtools-ui'\nimport { tokens } from './tokens'\n\nconst stylesFactory = (theme: 'light' | 'dark') => {\n const { colors, font, size, alpha, border } = tokens\n const { fontFamily, size: fontSize } = font\n const css = goober.css\n const t = (light: string, dark: string) => (theme === 'light' ? light : dark)\n\n return {\n mainContainer: css`\n display: flex;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: ${size[2]};\n padding-top: 0;\n margin-top: ${size[2]};\n `,\n dragHandle: css`\n width: 8px;\n background: ${t(colors.gray[300], colors.darkGray[600])};\n cursor: col-resize;\n position: relative;\n transition: all 0.2s ease;\n user-select: none;\n pointer-events: all;\n margin: 0 ${size[1]};\n border-radius: 2px;\n\n &:hover {\n background: ${t(colors.blue[600], colors.blue[500])};\n margin: 0 ${size[1]};\n }\n\n &.dragging {\n background: ${t(colors.blue[700], colors.blue[600])};\n margin: 0 ${size[1]};\n }\n\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 2px;\n height: 20px;\n background: ${t(colors.gray[400], colors.darkGray[400])};\n border-radius: 1px;\n pointer-events: none;\n }\n\n &:hover::after,\n &.dragging::after {\n background: ${t(colors.blue[500], colors.blue[300])};\n }\n `,\n leftPanel: css`\n background: ${t(colors.gray[100], colors.darkGray[800])};\n border-radius: ${border.radius.lg};\n border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n flex-shrink: 0;\n `,\n rightPanel: css`\n background: ${t(colors.gray[100], colors.darkGray[800])};\n border-radius: ${border.radius.lg};\n border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n flex: 1;\n `,\n panelHeader: css`\n font-size: ${fontSize.md};\n font-weight: ${font.weight.bold};\n color: ${t(colors.blue[700], colors.blue[400])};\n padding: ${size[2]};\n border-bottom: 1px solid ${t(colors.gray[200], colors.darkGray[700])};\n background: ${t(colors.gray[100], colors.darkGray[800])};\n flex-shrink: 0;\n `,\n utilList: css`\n flex: 1;\n overflow-y: auto;\n padding: ${size[1]};\n min-height: 0;\n `,\n utilGroup: css`\n margin-bottom: ${size[2]};\n `,\n utilGroupHeader: css`\n font-size: ${fontSize.xs};\n font-weight: ${font.weight.semibold};\n color: ${t(colors.gray[600], colors.gray[400])};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: ${size[1]};\n padding: ${size[1]} ${size[2]};\n background: ${t(colors.gray[200], colors.darkGray[700])};\n border-radius: ${border.radius.md};\n `,\n utilRow: css`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: ${size[2]};\n margin-bottom: ${size[1]};\n background: ${t(colors.gray[200], colors.darkGray[700])};\n border-radius: ${border.radius.md};\n cursor: pointer;\n transition: all 0.2s ease;\n border: 1px solid transparent;\n\n &:hover {\n background: ${t(colors.gray[300], colors.darkGray[600])};\n border-color: ${t(colors.gray[400], colors.darkGray[500])};\n }\n `,\n utilRowSelected: css`\n background: ${t(colors.blue[100], colors.blue[900] + alpha[20])};\n border-color: ${t(colors.blue[600], colors.blue[500])};\n box-shadow: 0 0 0 1px\n ${t(colors.blue[600] + alpha[30], colors.blue[500] + alpha[30])};\n `,\n utilKey: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${t(colors.gray[900], colors.gray[100])};\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `,\n utilStatus: css`\n font-size: ${fontSize.xs};\n color: ${t(colors.gray[600], colors.gray[400])};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: ${size[1]} ${size[1]};\n background: ${t(colors.gray[300], colors.darkGray[600])};\n border-radius: ${border.radius.sm};\n margin-left: ${size[1]};\n `,\n stateDetails: css`\n flex: 1;\n overflow-y: auto;\n padding: ${size[2]};\n min-height: 0;\n `,\n stateHeader: css`\n margin-bottom: ${size[2]};\n padding-bottom: ${size[2]};\n border-bottom: 1px solid ${t(colors.gray[200], colors.darkGray[700])};\n `,\n stateTitle: css`\n font-size: ${fontSize.md};\n font-weight: ${font.weight.bold};\n color: ${t(colors.blue[700], colors.blue[400])};\n margin-bottom: ${size[1]};\n `,\n stateKey: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${t(colors.gray[600], colors.gray[400])};\n word-break: break-all;\n `,\n stateContent: css`\n background: ${t(colors.gray[100], colors.darkGray[700])};\n border-radius: ${border.radius.md};\n padding: ${size[2]};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};\n `,\n detailsGrid: css`\n display: grid;\n grid-template-columns: 1fr;\n gap: ${size[2]};\n align-items: start;\n `,\n detailSection: css`\n background: ${t(colors.white, colors.darkGray[700])};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};\n border-radius: ${border.radius.md};\n padding: ${size[2]};\n `,\n detailSectionHeader: css`\n font-size: ${fontSize.sm};\n font-weight: ${font.weight.bold};\n color: ${t(colors.gray[800], colors.gray[200])};\n margin-bottom: ${size[1]};\n text-transform: uppercase;\n letter-spacing: 0.04em;\n `,\n actionsRow: css`\n display: flex;\n flex-wrap: wrap;\n gap: ${size[2]};\n `,\n actionButton: css`\n display: inline-flex;\n align-items: center;\n gap: ${size[1]};\n padding: ${size[1]} ${size[2]};\n border-radius: ${border.radius.md};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[500])};\n background: ${t(colors.gray[200], colors.darkGray[600])};\n color: ${t(colors.gray[900], colors.gray[100])};\n font-size: ${fontSize.xs};\n cursor: pointer;\n user-select: none;\n transition:\n background 0.15s,\n border-color 0.15s;\n &:hover {\n background: ${t(colors.gray[300], colors.darkGray[500])};\n border-color: ${t(colors.gray[400], colors.darkGray[400])};\n }\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n &:hover {\n background: ${t(colors.gray[200], colors.darkGray[600])};\n border-color: ${t(colors.gray[300], colors.darkGray[500])};\n }\n }\n `,\n actionDotBlue: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.blue[400]};\n `,\n actionDotGreen: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.green[400]};\n `,\n actionDotRed: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.red[400]};\n `,\n actionDotYellow: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.yellow[400]};\n `,\n actionDotOrange: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.pink[400]};\n `,\n actionDotPurple: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.purple[400]};\n `,\n infoGrid: css`\n display: grid;\n grid-template-columns: auto 1fr;\n gap: ${size[1]};\n row-gap: ${size[1]};\n align-items: center;\n `,\n infoLabel: css`\n color: ${t(colors.gray[600], colors.gray[400])};\n font-size: ${fontSize.xs};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n `,\n infoValueMono: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${t(colors.gray[900], colors.gray[100])};\n word-break: break-all;\n `,\n noSelection: css`\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${t(colors.gray[500], colors.gray[500])};\n font-style: italic;\n text-align: center;\n padding: ${size[4]};\n `,\n // Keep existing styles for backward compatibility\n sectionContainer: css`\n display: flex;\n flex-wrap: wrap;\n gap: ${size[4]};\n `,\n section: css`\n background: ${t(colors.gray[100], colors.darkGray[800])};\n border-radius: ${border.radius.lg};\n box-shadow: ${tokens.shadow.md(\n t(colors.gray[400] + alpha[80], colors.black + alpha[80]),\n )};\n padding: ${size[4]};\n margin-bottom: ${size[4]};\n border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};\n min-width: 0;\n max-width: 33%;\n max-height: fit-content;\n `,\n sectionHeader: css`\n font-size: ${fontSize.lg};\n font-weight: ${font.weight.bold};\n margin-bottom: ${size[2]};\n color: ${t(colors.blue[600], colors.blue[400])};\n letter-spacing: 0.01em;\n display: flex;\n align-items: center;\n gap: ${size[2]};\n `,\n sectionEmpty: css`\n color: ${t(colors.gray[500], colors.gray[500])};\n font-size: ${fontSize.sm};\n font-style: italic;\n margin: ${size[2]} 0;\n `,\n instanceList: css`\n display: flex;\n flex-direction: column;\n gap: ${size[2]};\n background: ${t(colors.gray[200], colors.darkGray[700])};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};\n `,\n instanceCard: css`\n background: ${t(colors.gray[200], colors.darkGray[700])};\n border-radius: ${border.radius.md};\n padding: ${size[3]};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};\n font-size: ${fontSize.sm};\n color: ${t(colors.gray[900], colors.gray[100])};\n font-family: ${fontFamily.mono};\n overflow-x: auto;\n transition:\n box-shadow 0.3s,\n background 0.3s;\n `,\n }\n}\n\nexport function useStyles() {\n const { theme } = useTheme()\n const [styles, setStyles] = createSignal(stylesFactory(theme()))\n createEffect(() => {\n setStyles(stylesFactory(theme()))\n })\n return styles\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-styles.js","sources":["../../../src/styles/use-styles.ts"],"sourcesContent":["import * as goober from 'goober'\nimport { createEffect, createSignal } from 'solid-js'\nimport { useTheme } from '@tanstack/devtools-ui'\nimport { tokens } from './tokens'\n\nconst stylesFactory = (theme: 'light' | 'dark') => {\n const { colors, font, size, alpha, border } = tokens\n const { fontFamily, size: fontSize } = font\n const css = goober.css\n const t = (light: string, dark: string) => (theme === 'light' ? light : dark)\n\n return {\n mainContainer: css`\n display: flex;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n padding: ${size[2]};\n padding-top: 0;\n margin-top: ${size[2]};\n `,\n dragHandle: css`\n width: 8px;\n background: ${t(colors.gray[300], colors.darkGray[600])};\n cursor: col-resize;\n position: relative;\n transition: all 0.2s ease;\n user-select: none;\n pointer-events: all;\n margin: 0 ${size[1]};\n border-radius: 2px;\n\n &:hover {\n background: ${t(colors.blue[600], colors.blue[500])};\n margin: 0 ${size[1]};\n }\n\n &.dragging {\n background: ${t(colors.blue[700], colors.blue[600])};\n margin: 0 ${size[1]};\n }\n\n &::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 2px;\n height: 20px;\n background: ${t(colors.gray[400], colors.darkGray[400])};\n border-radius: 1px;\n pointer-events: none;\n }\n\n &:hover::after,\n &.dragging::after {\n background: ${t(colors.blue[500], colors.blue[300])};\n }\n `,\n leftPanel: css`\n background: ${t(colors.gray[100], colors.darkGray[800])};\n border-radius: ${border.radius.lg};\n border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n flex-shrink: 0;\n `,\n rightPanel: css`\n background: ${t(colors.gray[100], colors.darkGray[800])};\n border-radius: ${border.radius.lg};\n border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};\n display: flex;\n flex-direction: column;\n overflow: hidden;\n min-height: 0;\n flex: 1;\n `,\n panelHeader: css`\n font-size: ${fontSize.md};\n font-weight: ${font.weight.bold};\n color: ${t(colors.blue[700], colors.blue[400])};\n padding: ${size[2]};\n border-bottom: 1px solid ${t(colors.gray[200], colors.darkGray[700])};\n background: ${t(colors.gray[100], colors.darkGray[800])};\n flex-shrink: 0;\n `,\n utilList: css`\n flex: 1;\n overflow-y: auto;\n padding: ${size[1]};\n min-height: 0;\n `,\n utilGroup: css`\n margin-bottom: ${size[2]};\n `,\n utilGroupHeader: css`\n font-size: ${fontSize.xs};\n font-weight: ${font.weight.semibold};\n color: ${t(colors.gray[600], colors.gray[400])};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n margin-bottom: ${size[1]};\n padding: ${size[1]} ${size[2]};\n background: ${t(colors.gray[200], colors.darkGray[700])};\n border-radius: ${border.radius.md};\n `,\n utilRow: css`\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: ${size[2]};\n margin-bottom: ${size[1]};\n background: ${t(colors.gray[200], colors.darkGray[700])};\n border-radius: ${border.radius.md};\n cursor: pointer;\n transition: all 0.2s ease;\n border: 1px solid transparent;\n\n &:hover {\n background: ${t(colors.gray[300], colors.darkGray[600])};\n border-color: ${t(colors.gray[400], colors.darkGray[500])};\n }\n `,\n utilRowSelected: css`\n background: ${t(colors.blue[100], colors.blue[900] + alpha[20])};\n border-color: ${t(colors.blue[600], colors.blue[500])};\n box-shadow: 0 0 0 1px\n ${t(colors.blue[600] + alpha[30], colors.blue[500] + alpha[30])};\n `,\n utilKey: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${t(colors.gray[900], colors.gray[100])};\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n `,\n utilStatus: css`\n font-size: ${fontSize.xs};\n color: ${t(colors.gray[600], colors.gray[400])};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n padding: ${size[1]} ${size[1]};\n background: ${t(colors.gray[300], colors.darkGray[600])};\n border-radius: ${border.radius.sm};\n margin-left: ${size[1]};\n `,\n stateDetails: css`\n flex: 1;\n overflow-y: auto;\n padding: ${size[2]};\n min-height: 0;\n `,\n stateHeader: css`\n margin-bottom: ${size[2]};\n padding-bottom: ${size[2]};\n border-bottom: 1px solid ${t(colors.gray[200], colors.darkGray[700])};\n `,\n stateTitle: css`\n font-size: ${fontSize.md};\n font-weight: ${font.weight.bold};\n color: ${t(colors.blue[700], colors.blue[400])};\n margin-bottom: ${size[1]};\n `,\n stateKey: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${t(colors.gray[600], colors.gray[400])};\n word-break: break-all;\n `,\n stateContent: css`\n background: ${t(colors.gray[100], colors.darkGray[700])};\n border-radius: ${border.radius.md};\n padding: ${size[2]};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};\n `,\n detailsGrid: css`\n display: grid;\n grid-template-columns: 1fr;\n gap: ${size[2]};\n align-items: start;\n `,\n detailSection: css`\n background: ${t(colors.white, colors.darkGray[700])};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};\n border-radius: ${border.radius.md};\n padding: ${size[2]};\n `,\n detailSectionHeader: css`\n font-size: ${fontSize.sm};\n font-weight: ${font.weight.bold};\n color: ${t(colors.gray[800], colors.gray[200])};\n margin-bottom: ${size[1]};\n text-transform: uppercase;\n letter-spacing: 0.04em;\n `,\n actionsRow: css`\n display: flex;\n flex-wrap: wrap;\n gap: ${size[2]};\n `,\n actionButton: css`\n display: inline-flex;\n align-items: center;\n gap: ${size[1]};\n padding: ${size[1]} ${size[2]};\n border-radius: ${border.radius.md};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[500])};\n background: ${t(colors.gray[200], colors.darkGray[600])};\n color: ${t(colors.gray[900], colors.gray[100])};\n font-size: ${fontSize.xs};\n cursor: pointer;\n user-select: none;\n transition:\n background 0.15s,\n border-color 0.15s;\n &:hover {\n background: ${t(colors.gray[300], colors.darkGray[500])};\n border-color: ${t(colors.gray[400], colors.darkGray[400])};\n }\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n &:hover {\n background: ${t(colors.gray[200], colors.darkGray[600])};\n border-color: ${t(colors.gray[300], colors.darkGray[500])};\n }\n }\n `,\n actionDotBlue: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.blue[400]};\n `,\n actionDotGreen: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.green[400]};\n `,\n actionDotRed: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.red[400]};\n `,\n actionDotYellow: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.yellow[400]};\n `,\n actionDotOrange: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.pink[400]};\n `,\n actionDotPurple: css`\n width: 6px;\n height: 6px;\n border-radius: 9999px;\n background: ${colors.purple[400]};\n `,\n infoGrid: css`\n display: grid;\n grid-template-columns: auto 1fr;\n gap: ${size[1]};\n row-gap: ${size[1]};\n align-items: center;\n `,\n infoLabel: css`\n color: ${t(colors.gray[600], colors.gray[400])};\n font-size: ${fontSize.xs};\n text-transform: uppercase;\n letter-spacing: 0.05em;\n `,\n infoValueMono: css`\n font-family: ${fontFamily.mono};\n font-size: ${fontSize.xs};\n color: ${t(colors.gray[900], colors.gray[100])};\n word-break: break-all;\n `,\n noSelection: css`\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n color: ${t(colors.gray[500], colors.gray[500])};\n font-style: italic;\n text-align: center;\n padding: ${size[4]};\n `,\n // Keep existing styles for backward compatibility\n sectionContainer: css`\n display: flex;\n flex-wrap: wrap;\n gap: ${size[4]};\n `,\n section: css`\n background: ${t(colors.gray[100], colors.darkGray[800])};\n border-radius: ${border.radius.lg};\n box-shadow: ${tokens.shadow.md(\n t(colors.gray[400] + alpha[80], colors.black + alpha[80]),\n )};\n padding: ${size[4]};\n margin-bottom: ${size[4]};\n border: 1px solid ${t(colors.gray[200], colors.darkGray[700])};\n min-width: 0;\n max-width: 33%;\n max-height: fit-content;\n `,\n sectionHeader: css`\n font-size: ${fontSize.lg};\n font-weight: ${font.weight.bold};\n margin-bottom: ${size[2]};\n color: ${t(colors.blue[600], colors.blue[400])};\n letter-spacing: 0.01em;\n display: flex;\n align-items: center;\n gap: ${size[2]};\n `,\n sectionEmpty: css`\n color: ${t(colors.gray[500], colors.gray[500])};\n font-size: ${fontSize.sm};\n font-style: italic;\n margin: ${size[2]} 0;\n `,\n instanceList: css`\n display: flex;\n flex-direction: column;\n gap: ${size[2]};\n background: ${t(colors.gray[200], colors.darkGray[700])};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};\n `,\n instanceCard: css`\n background: ${t(colors.gray[200], colors.darkGray[700])};\n border-radius: ${border.radius.md};\n padding: ${size[3]};\n border: 1px solid ${t(colors.gray[300], colors.darkGray[600])};\n font-size: ${fontSize.sm};\n color: ${t(colors.gray[900], colors.gray[100])};\n font-family: ${fontFamily.mono};\n overflow-x: auto;\n transition:\n box-shadow 0.3s,\n background 0.3s;\n `,\n }\n}\n\nexport function useStyles() {\n const { theme } = useTheme()\n const [styles, setStyles] = createSignal(stylesFactory(theme()))\n createEffect(() => {\n setStyles(stylesFactory(theme()))\n })\n return styles\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/pacer-devtools",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Devtools for Pacer.",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -52,10 +52,11 @@
52
52
  "@tanstack/pacer": ">=0.15.0"
53
53
  },
54
54
  "dependencies": {
55
- "@tanstack/devtools-ui": "^0.3.4",
56
- "@tanstack/solid-store": "^0.7.3",
55
+ "@tanstack/devtools-ui": "^0.3.5",
56
+ "@tanstack/devtools-utils": "^0.0.3",
57
+ "@tanstack/solid-store": "^0.7.7",
57
58
  "clsx": "^2.1.1",
58
- "dayjs": "^1.11.13",
59
+ "dayjs": "^1.11.18",
59
60
  "goober": "^2.1.16",
60
61
  "solid-js": "^1.9.9"
61
62
  },
package/src/core.tsx CHANGED
@@ -1,50 +1,10 @@
1
+ import { constructCoreClass } from '@tanstack/devtools-utils/solid'
1
2
  import { lazy } from 'solid-js'
2
- import { Portal, render } from 'solid-js/web'
3
3
 
4
- export interface PacerDevtoolsInit {}
5
-
6
- export class PacerDevtoolsCore {
7
- #isMounted = false
8
- #dispose?: () => void
9
- #Component: any
10
- #ThemeProvider: any
4
+ const Component = lazy(() => import('./PacerDevtools'))
11
5
 
12
- constructor(_init?: PacerDevtoolsInit | undefined) {}
13
-
14
- mount<T extends HTMLElement>(el: T, theme: 'light' | 'dark') {
15
- if (this.#isMounted) {
16
- throw new Error('Devtools is already mounted')
17
- }
18
- const mountTo = el
19
- const dispose = render(() => {
20
- this.#Component = lazy(() => import('./PacerDevtools'))
21
- const Devtools = this.#Component
22
- this.#ThemeProvider = lazy(() =>
23
- import('@tanstack/devtools-ui').then((mod) => ({
24
- default: mod.ThemeContextProvider,
25
- })),
26
- )
27
- const ThemeProvider = this.#ThemeProvider
6
+ export interface PacerDevtoolsInit {}
28
7
 
29
- return (
30
- <Portal mount={mountTo}>
31
- <div style={{ height: '100%' }}>
32
- <ThemeProvider theme={theme}>
33
- <Devtools />
34
- </ThemeProvider>
35
- </div>
36
- </Portal>
37
- )
38
- }, mountTo)
39
- this.#isMounted = true
40
- this.#dispose = dispose
41
- }
8
+ const [PacerDevtoolsCore, PacerDevtoolsCoreNoOp] = constructCoreClass(Component)
42
9
 
43
- unmount() {
44
- if (!this.#isMounted) {
45
- throw new Error('Devtools is not mounted')
46
- }
47
- this.#dispose?.()
48
- this.#isMounted = false
49
- }
50
- }
10
+ export { PacerDevtoolsCore, PacerDevtoolsCoreNoOp }
package/src/index.ts CHANGED
@@ -2,16 +2,9 @@
2
2
 
3
3
  import * as Devtools from './core'
4
4
 
5
- // Create a dummy class for production that does nothing
6
- class DummyPacerDevtoolsCore {
7
- constructor() {}
8
- mount() {}
9
- unmount() {}
10
- }
11
-
12
- export const PacerDevtoolsCore: (typeof Devtools)['PacerDevtoolsCore'] =
5
+ export const PacerDevtoolsCore =
13
6
  process.env.NODE_ENV !== 'development'
14
- ? (DummyPacerDevtoolsCore as any)
7
+ ? Devtools.PacerDevtoolsCoreNoOp
15
8
  : Devtools.PacerDevtoolsCore
16
9
 
17
10
  export type { PacerDevtoolsInit } from './core'
package/src/production.ts CHANGED
@@ -1,7 +1,5 @@
1
1
  'use client'
2
2
 
3
- import * as Devtools from './core'
4
-
5
- export const PacerDevtoolsCore = Devtools.PacerDevtoolsCore
3
+ export { PacerDevtoolsCore } from './core'
6
4
 
7
5
  export type { PacerDevtoolsInit } from './core'