@clusterenvision/ui-framework 1.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/LICENSE +21 -0
- package/README.md +295 -0
- package/dist/ai-assistant-Db002XYC.d.ts +92 -0
- package/dist/ai-assistant-EobSUV70.d.cts +92 -0
- package/dist/browser-DnHpnWwE.d.cts +354 -0
- package/dist/browser-Dx4oKf5e.d.ts +354 -0
- package/dist/browser-signals-07qodpYT.d.cts +66 -0
- package/dist/browser-signals-07qodpYT.d.ts +66 -0
- package/dist/browser-signals.cjs +32 -0
- package/dist/browser-signals.cjs.map +1 -0
- package/dist/browser-signals.d.cts +1 -0
- package/dist/browser-signals.d.ts +1 -0
- package/dist/browser-signals.js +3 -0
- package/dist/browser-signals.js.map +1 -0
- package/dist/browser.cjs +197 -0
- package/dist/browser.cjs.map +1 -0
- package/dist/browser.d.cts +13 -0
- package/dist/browser.d.ts +13 -0
- package/dist/browser.js +12 -0
- package/dist/browser.js.map +1 -0
- package/dist/chunk-22HQL2Y4.js +568 -0
- package/dist/chunk-22HQL2Y4.js.map +1 -0
- package/dist/chunk-3ZBRNFEE.js +1525 -0
- package/dist/chunk-3ZBRNFEE.js.map +1 -0
- package/dist/chunk-4HRORR2Q.js +1953 -0
- package/dist/chunk-4HRORR2Q.js.map +1 -0
- package/dist/chunk-4L3UXVL5.cjs +68 -0
- package/dist/chunk-4L3UXVL5.cjs.map +1 -0
- package/dist/chunk-6BYWFGQY.cjs +226 -0
- package/dist/chunk-6BYWFGQY.cjs.map +1 -0
- package/dist/chunk-7SCIB5HP.js +57 -0
- package/dist/chunk-7SCIB5HP.js.map +1 -0
- package/dist/chunk-BBAUALNU.js +888 -0
- package/dist/chunk-BBAUALNU.js.map +1 -0
- package/dist/chunk-CHLDE4JQ.js +715 -0
- package/dist/chunk-CHLDE4JQ.js.map +1 -0
- package/dist/chunk-CXTAUXLG.cjs +71 -0
- package/dist/chunk-CXTAUXLG.cjs.map +1 -0
- package/dist/chunk-D2USIT6V.js +121 -0
- package/dist/chunk-D2USIT6V.js.map +1 -0
- package/dist/chunk-D3H5CGVD.js +36 -0
- package/dist/chunk-D3H5CGVD.js.map +1 -0
- package/dist/chunk-DQBX75NJ.js +92 -0
- package/dist/chunk-DQBX75NJ.js.map +1 -0
- package/dist/chunk-DRPG2DFX.js +208 -0
- package/dist/chunk-DRPG2DFX.js.map +1 -0
- package/dist/chunk-EFOOXCY7.cjs +41 -0
- package/dist/chunk-EFOOXCY7.cjs.map +1 -0
- package/dist/chunk-FFCZSYC7.cjs +906 -0
- package/dist/chunk-FFCZSYC7.cjs.map +1 -0
- package/dist/chunk-FNXIYAET.cjs +1593 -0
- package/dist/chunk-FNXIYAET.cjs.map +1 -0
- package/dist/chunk-I6GNUM3P.cjs +63 -0
- package/dist/chunk-I6GNUM3P.cjs.map +1 -0
- package/dist/chunk-IHAMVLRY.js +129 -0
- package/dist/chunk-IHAMVLRY.js.map +1 -0
- package/dist/chunk-IRBUKIRF.cjs +133 -0
- package/dist/chunk-IRBUKIRF.cjs.map +1 -0
- package/dist/chunk-KPG5HAHK.cjs +97 -0
- package/dist/chunk-KPG5HAHK.cjs.map +1 -0
- package/dist/chunk-N7Q2ESLG.cjs +130 -0
- package/dist/chunk-N7Q2ESLG.cjs.map +1 -0
- package/dist/chunk-PFBEIFVS.js +180 -0
- package/dist/chunk-PFBEIFVS.js.map +1 -0
- package/dist/chunk-PVZVFICK.cjs +318 -0
- package/dist/chunk-PVZVFICK.cjs.map +1 -0
- package/dist/chunk-Q3KH6HMU.js +305 -0
- package/dist/chunk-Q3KH6HMU.js.map +1 -0
- package/dist/chunk-QPAAV32J.cjs +1985 -0
- package/dist/chunk-QPAAV32J.cjs.map +1 -0
- package/dist/chunk-R6XQUMWT.cjs +61 -0
- package/dist/chunk-R6XQUMWT.cjs.map +1 -0
- package/dist/chunk-SA5UD5B6.js +92 -0
- package/dist/chunk-SA5UD5B6.js.map +1 -0
- package/dist/chunk-SM35JOYD.cjs +211 -0
- package/dist/chunk-SM35JOYD.cjs.map +1 -0
- package/dist/chunk-SZQNIMYI.cjs +592 -0
- package/dist/chunk-SZQNIMYI.cjs.map +1 -0
- package/dist/chunk-T6T7QE4J.js +224 -0
- package/dist/chunk-T6T7QE4J.js.map +1 -0
- package/dist/chunk-TIF372DZ.js +65 -0
- package/dist/chunk-TIF372DZ.js.map +1 -0
- package/dist/chunk-V6JCOBGY.js +69 -0
- package/dist/chunk-V6JCOBGY.js.map +1 -0
- package/dist/chunk-VHUXNDW2.cjs +189 -0
- package/dist/chunk-VHUXNDW2.cjs.map +1 -0
- package/dist/chunk-W3LNNY3U.cjs +729 -0
- package/dist/chunk-W3LNNY3U.cjs.map +1 -0
- package/dist/chunk-ZUWSU4OA.js +61 -0
- package/dist/chunk-ZUWSU4OA.js.map +1 -0
- package/dist/chunk-ZWUA2LPB.cjs +103 -0
- package/dist/chunk-ZWUA2LPB.cjs.map +1 -0
- package/dist/cli/index.cjs +566 -0
- package/dist/cli/index.cjs.map +1 -0
- package/dist/cli/index.d.cts +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +558 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/compiler/index.cjs +80 -0
- package/dist/compiler/index.cjs.map +1 -0
- package/dist/compiler/index.d.cts +130 -0
- package/dist/compiler/index.d.ts +130 -0
- package/dist/compiler/index.js +3 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/component-BVzvepw9.d.cts +90 -0
- package/dist/component-wTxZ2BPD.d.ts +90 -0
- package/dist/index-CpxDa60m.d.cts +644 -0
- package/dist/index-CpxDa60m.d.ts +644 -0
- package/dist/index.cjs +1356 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +165 -0
- package/dist/index.d.ts +165 -0
- package/dist/index.js +772 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/dom.cjs +102 -0
- package/dist/lib/dom.cjs.map +1 -0
- package/dist/lib/dom.d.cts +373 -0
- package/dist/lib/dom.d.ts +373 -0
- package/dist/lib/dom.js +3 -0
- package/dist/lib/dom.js.map +1 -0
- package/dist/lib/icons.cjs +20 -0
- package/dist/lib/icons.cjs.map +1 -0
- package/dist/lib/icons.d.cts +64 -0
- package/dist/lib/icons.d.ts +64 -0
- package/dist/lib/icons.js +3 -0
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/index.cjs +247 -0
- package/dist/lib/index.cjs.map +1 -0
- package/dist/lib/index.d.cts +30 -0
- package/dist/lib/index.d.ts +30 -0
- package/dist/lib/index.js +92 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/theme.cjs +56 -0
- package/dist/lib/theme.cjs.map +1 -0
- package/dist/lib/theme.d.cts +27 -0
- package/dist/lib/theme.d.ts +27 -0
- package/dist/lib/theme.js +3 -0
- package/dist/lib/theme.js.map +1 -0
- package/dist/router-B9kms5XQ.d.ts +124 -0
- package/dist/router-YnpW_sIK.d.cts +124 -0
- package/dist/runtime/adapters/angular.cjs +48 -0
- package/dist/runtime/adapters/angular.cjs.map +1 -0
- package/dist/runtime/adapters/angular.d.cts +38 -0
- package/dist/runtime/adapters/angular.d.ts +38 -0
- package/dist/runtime/adapters/angular.js +46 -0
- package/dist/runtime/adapters/angular.js.map +1 -0
- package/dist/runtime/adapters/react.cjs +41 -0
- package/dist/runtime/adapters/react.cjs.map +1 -0
- package/dist/runtime/adapters/react.d.cts +26 -0
- package/dist/runtime/adapters/react.d.ts +26 -0
- package/dist/runtime/adapters/react.js +39 -0
- package/dist/runtime/adapters/react.js.map +1 -0
- package/dist/runtime/adapters/vue.cjs +44 -0
- package/dist/runtime/adapters/vue.cjs.map +1 -0
- package/dist/runtime/adapters/vue.d.cts +37 -0
- package/dist/runtime/adapters/vue.d.ts +37 -0
- package/dist/runtime/adapters/vue.js +42 -0
- package/dist/runtime/adapters/vue.js.map +1 -0
- package/dist/runtime/components/ai-assistant.cjs +18 -0
- package/dist/runtime/components/ai-assistant.cjs.map +1 -0
- package/dist/runtime/components/ai-assistant.d.cts +8 -0
- package/dist/runtime/components/ai-assistant.d.ts +8 -0
- package/dist/runtime/components/ai-assistant.js +9 -0
- package/dist/runtime/components/ai-assistant.js.map +1 -0
- package/dist/runtime/components/ai-summary-card.cjs +18 -0
- package/dist/runtime/components/ai-summary-card.cjs.map +1 -0
- package/dist/runtime/components/ai-summary-card.d.cts +19 -0
- package/dist/runtime/components/ai-summary-card.d.ts +19 -0
- package/dist/runtime/components/ai-summary-card.js +9 -0
- package/dist/runtime/components/ai-summary-card.js.map +1 -0
- package/dist/runtime/router.cjs +429 -0
- package/dist/runtime/router.cjs.map +1 -0
- package/dist/runtime/router.d.cts +2 -0
- package/dist/runtime/router.d.ts +2 -0
- package/dist/runtime/router.js +421 -0
- package/dist/runtime/router.js.map +1 -0
- package/dist/runtime/server.cjs +125 -0
- package/dist/runtime/server.cjs.map +1 -0
- package/dist/runtime/server.d.cts +27 -0
- package/dist/runtime/server.d.ts +27 -0
- package/dist/runtime/server.js +117 -0
- package/dist/runtime/server.js.map +1 -0
- package/dist/runtime/workflow/index.cjs +282 -0
- package/dist/runtime/workflow/index.cjs.map +1 -0
- package/dist/runtime/workflow/index.d.cts +1 -0
- package/dist/runtime/workflow/index.d.ts +1 -0
- package/dist/runtime/workflow/index.js +5 -0
- package/dist/runtime/workflow/index.js.map +1 -0
- package/dist/tracing-DGdvMCEl.d.cts +109 -0
- package/dist/tracing-DGdvMCEl.d.ts +109 -0
- package/dist/types-C4RXXKfk.d.cts +76 -0
- package/dist/types-C4RXXKfk.d.ts +76 -0
- package/package.json +166 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/runtime/forms.js","../src/runtime/resource.js","../src/runtime/ai.ts","../src/runtime/devtools/diagnostics.js","../src/runtime/devtools/hydration-dashboard.js","../src/runtime/devtools/hydration-replay.js","../src/runtime/devtools/hydration-replay-panel.js","../src/runtime/devtools/router-inspector-panel.js","../src/runtime/devtools/signals-inspector.js","../src/runtime/devtools/signals-inspector-panel.js","../src/runtime/devtools/devtools-dashboard.js","../src/runtime/devtools/router-inspector.js","../src/runtime/adapters/angular.js","../src/runtime/adapters/react.js","../src/runtime/adapters/vue.js"],"names":["signal","computed","next","addRuntimeErrorReporter","getRuntimeErrorReporters","registerRuntimeErrorReporters","getRouteDataStore","getSignalsInspectorSnapshot","clearSignalsInspectorRegistry","normalizePath"],"mappings":"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","file":"chunk-QPAAV32J.cjs","sourcesContent":["import { computed, signal } from './signals.js';\nconst PATH_SEGMENT_REGEX = /[^.[\\]]+|\\[(\\d+)\\]/g;\nexport function createFormController() {\n const fields = new Map();\n const pathCache = new Map();\n const controller = {\n register(name, options) {\n if (fields.has(name)) {\n return fields.get(name);\n }\n const control = createFieldControl(name, options);\n fields.set(name, control);\n return control;\n },\n registerArray(name, options) {\n if (fields.has(name)) {\n return fields.get(name);\n }\n const base = createFieldControl(name, options);\n const control = {\n ...base,\n append(value) {\n updateArray(base, items => {\n items.push(value);\n });\n },\n insert(index, value) {\n updateArray(base, items => {\n const nextIndex = clampIndex(index, items.length);\n items.splice(nextIndex, 0, value);\n });\n },\n remove(index) {\n updateArray(base, items => {\n if (index < 0 || index >= items.length) {\n return;\n }\n items.splice(index, 1);\n });\n },\n swap(indexA, indexB) {\n updateArray(base, items => {\n if (indexA < 0 || indexA >= items.length || indexB < 0 || indexB >= items.length || indexA === indexB) {\n return;\n }\n const temp = items[indexA];\n items[indexA] = items[indexB];\n items[indexB] = temp;\n });\n },\n move(fromIndex, toIndex) {\n updateArray(base, items => {\n if (fromIndex < 0 || fromIndex >= items.length) {\n return;\n }\n const targetIndex = clampIndex(toIndex, items.length - 1);\n const [item] = items.splice(fromIndex, 1);\n const insertIndex = clampIndex(targetIndex, items.length);\n items.splice(insertIndex, 0, item);\n });\n },\n };\n fields.set(name, control);\n return control;\n },\n values() {\n return buildNestedState(field => field.value());\n },\n errors() {\n return buildNestedErrors();\n },\n async validate() {\n const entries = orderedEntries();\n const fieldStates = {};\n for (const [name, field] of entries) {\n fieldStates[name] = await field.validateWithState();\n }\n return buildValidationResult(fieldStates, entries);\n },\n async validateFields(names) {\n if (names.length === 0) {\n return {\n valid: true,\n errors: {},\n fields: {},\n };\n }\n const entries = orderedEntries().filter(([name]) => names.includes(name));\n const fieldStates = {};\n for (const [name, field] of entries) {\n fieldStates[name] = await field.validateWithState();\n }\n return buildValidationResult(fieldStates, entries);\n },\n handleSubmit(handler) {\n return async (event) => {\n event?.preventDefault();\n const result = await controller.validate();\n if (!result.valid) {\n return;\n }\n await handler(controller.values(), event);\n };\n },\n };\n function createFieldControl(name, options) {\n const value = signal(options.initialValue);\n const errors = signal([]);\n const touched = signal(false);\n const runValidators = async () => {\n const context = {\n name,\n value: value(),\n values: controller.values(),\n touched: touched(),\n };\n const results = await Promise.all((options.validators ?? []).map(validator => Promise.resolve(validator(context.value, context))));\n const filtered = results.filter((message) => Boolean(message));\n errors.set(filtered);\n return {\n name,\n valid: filtered.length === 0,\n errors: filtered,\n };\n };\n return {\n name,\n value,\n errors,\n touched,\n setValue(nextValue) {\n value.set(nextValue);\n },\n markTouched() {\n touched.set(true);\n },\n async validate() {\n const state = await runValidators();\n return state.valid;\n },\n async validateWithState() {\n return runValidators();\n },\n };\n }\n function updateArray(control, update) {\n const current = Array.isArray(control.value()) ? [...control.value()] : [];\n update(current);\n control.setValue(current);\n }\n function orderedEntries() {\n return Array.from(fields.entries()).sort((a, b) => getPath(a[0]).length - getPath(b[0]).length);\n }\n function buildNestedState(readValue) {\n const result = {};\n orderedEntries().forEach(([name, field]) => {\n const path = getPath(name);\n if (path.length === 0) {\n return;\n }\n setPathValue(result, path, readValue(field));\n });\n return result;\n }\n function buildNestedErrors() {\n return buildNestedErrorsForEntries(orderedEntries());\n }\n function buildNestedErrorsForEntries(entries) {\n const result = {};\n entries.forEach(([name, field]) => {\n const fieldErrors = field.errors();\n if (!fieldErrors.length) {\n return;\n }\n const path = getPath(name);\n if (path.length === 0) {\n return;\n }\n setPathValue(result, path, fieldErrors);\n });\n return result;\n }\n function buildValidationResult(fieldStates, entries) {\n const errors = buildNestedErrorsForEntries(entries);\n const valid = Object.values(fieldStates).every(state => state.valid);\n return {\n valid,\n errors,\n fields: fieldStates,\n };\n }\n function getPath(name) {\n const cached = pathCache.get(name);\n if (cached) {\n return cached;\n }\n const segments = [];\n let match;\n while ((match = PATH_SEGMENT_REGEX.exec(name)) !== null) {\n if (match[1] !== undefined) {\n segments.push(Number(match[1]));\n }\n else if (match[0]) {\n segments.push(match[0]);\n }\n }\n const resolved = segments.length > 0 ? segments : [name];\n pathCache.set(name, resolved);\n return resolved;\n }\n return controller;\n}\nexport function createFormWizard(form, steps, initialStep = 0) {\n if (steps.length === 0) {\n throw new Error('Form wizard requires at least one step.');\n }\n const stepIndex = signal(resolveStepIndex(steps, initialStep));\n const currentStep = computed(() => steps[stepIndex()]);\n const isFirst = computed(() => stepIndex() === 0);\n const isLast = computed(() => stepIndex() >= steps.length - 1);\n const controller = {\n steps,\n currentIndex: stepIndex,\n currentStep,\n isFirst,\n isLast,\n goTo(step) {\n stepIndex.set(resolveStepIndex(steps, step));\n },\n async next() {\n if (await controller.validateCurrent()) {\n if (!isLast()) {\n stepIndex.set(stepIndex() + 1);\n }\n return true;\n }\n return false;\n },\n previous() {\n if (!isFirst()) {\n stepIndex.set(stepIndex() - 1);\n }\n },\n async validateCurrent() {\n const step = currentStep();\n if (step.validate) {\n return Boolean(await step.validate(form));\n }\n if (step.fields && step.fields.length > 0) {\n const result = await form.validateFields(step.fields);\n return result.valid;\n }\n return true;\n },\n reset(step = 0) {\n stepIndex.set(resolveStepIndex(steps, step));\n },\n };\n return controller;\n}\nfunction resolveStepIndex(steps, step) {\n if (typeof step === 'number') {\n return clampIndex(step, steps.length - 1);\n }\n const index = steps.findIndex(item => item.id === step);\n return index >= 0 ? index : 0;\n}\nfunction setPathValue(target, path, value) {\n let cursor = target;\n for (let index = 0; index < path.length; index += 1) {\n const segment = path[index];\n const isLast = index === path.length - 1;\n if (isLast) {\n if (Array.isArray(cursor) && typeof segment === 'number') {\n cursor[segment] = value;\n }\n else {\n cursor[segment] = value;\n }\n return;\n }\n const nextSegment = path[index + 1];\n const shouldBeArray = typeof nextSegment === 'number';\n if (Array.isArray(cursor) && typeof segment === 'number') {\n if (!cursor[segment] || typeof cursor[segment] !== 'object') {\n cursor[segment] = shouldBeArray ? [] : {};\n }\n cursor = cursor[segment];\n continue;\n }\n const currentValue = cursor[segment];\n if (!currentValue || typeof currentValue !== 'object') {\n cursor[segment] = shouldBeArray ? [] : {};\n }\n else if (shouldBeArray && !Array.isArray(currentValue)) {\n cursor[segment] = [];\n }\n else if (!shouldBeArray && Array.isArray(currentValue)) {\n cursor[segment] = {};\n }\n cursor = cursor[segment];\n }\n}\nfunction clampIndex(index, length) {\n if (Number.isNaN(index)) {\n return length;\n }\n return Math.min(Math.max(index, 0), length);\n}\n","import { signal } from './signals.js';\n\nconst defaultCache = createResourceCache();\n\nexport function createResourceCache() {\n const store = signal(new Map());\n return {\n read(key) {\n return store().get(key);\n },\n write(key, state) {\n store.update(current => {\n const next = new Map(current);\n next.set(key, state);\n return next;\n });\n },\n delete(key) {\n store.update(current => {\n const next = new Map(current);\n next.delete(key);\n return next;\n });\n },\n clear() {\n store.set(new Map());\n },\n keys() {\n return Array.from(store().keys());\n },\n };\n}\n\nexport function getResourceCache() {\n return defaultCache;\n}\n\nexport function normalizeResourceKey(key) {\n return encodeResourceKey(key);\n}\n\nexport function invalidateResource(key, cache = defaultCache) {\n cache.delete(normalizeResourceKey(key));\n}\n\nexport function createResource(key, fetcher, options = {}) {\n const cache = options.cache ?? defaultCache;\n const keySignal = signal(normalizeResourceKey(key));\n const cached = resolveCachedState(cache, keySignal(), options.cacheTimeMs);\n const hasCached = Boolean(cached);\n const initialState = cached\n ? cached\n : options.initialData !== undefined\n ? {\n status: 'success',\n data: options.initialData,\n updatedAt: Date.now(),\n }\n : { status: 'idle' };\n\n const state = signal(initialState);\n\n const setState = next => {\n state.set(next);\n cache.write(keySignal(), next);\n };\n\n const load = async (context = {}) => {\n const current = state();\n if (!context.force && current.status === 'success' && !isResourceStale(current, options.staleTimeMs)) {\n return current;\n }\n if (current.status === 'loading') {\n return current;\n }\n setState({\n ...current,\n status: 'loading',\n });\n\n const maxRetries = options.maxRetries ?? (typeof options.retry === 'number' ? options.retry : 3);\n let lastError;\n\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n try {\n if (attempt > 0) {\n const delay = typeof options.retryDelayMs === 'function'\n ? options.retryDelayMs(attempt - 1)\n : calculateRetryDelay(attempt - 1, options.retryDelayMs);\n await new Promise(resolve => setTimeout(resolve, delay));\n }\n\n const data = await Promise.resolve(fetcher(context));\n const next = {\n status: 'success',\n data,\n error: undefined,\n updatedAt: Date.now(),\n };\n setState(next);\n options.onSuccess?.(data);\n options.onSettled?.(data, undefined);\n return next;\n } catch (error) {\n lastError = classifyError(error);\n const shouldRetry = attempt < maxRetries && determineRetry(options.retry, attempt, lastError);\n if (!shouldRetry) {\n break;\n }\n }\n }\n\n const finalError = lastError ?? classifyError(new Error('Unknown error'));\n const next = {\n status: 'error',\n data: state().data,\n error: finalError,\n updatedAt: Date.now(),\n };\n setState(next);\n options.onError?.(finalError);\n options.onSettled?.(undefined, finalError);\n return next;\n };\n\n const resource = {\n key: keySignal,\n state,\n isStale() {\n return isResourceStale(state(), options.staleTimeMs);\n },\n load,\n refresh(context) {\n return load({ ...context, force: true });\n },\n async mutate(mutator, mutateOptions) {\n const current = state();\n const previousData = current.data;\n\n if (mutateOptions?.optimisticData !== undefined) {\n setState({\n status: 'success',\n data: mutateOptions.optimisticData,\n error: undefined,\n updatedAt: Date.now(),\n });\n }\n\n try {\n const nextData = await Promise.resolve(mutator(previousData));\n const next = {\n status: 'success',\n data: nextData,\n error: undefined,\n updatedAt: Date.now(),\n };\n setState(next);\n options.onSuccess?.(nextData);\n options.onSettled?.(nextData, undefined);\n return next;\n } catch (error) {\n const normalized = error instanceof Error ? error : new Error(String(error));\n\n const shouldRollback = mutateOptions?.rollbackOnError !== false && previousData !== undefined;\n\n if (shouldRollback) {\n setState({\n status: 'success',\n data: previousData,\n error: undefined,\n updatedAt: current.updatedAt ?? Date.now(),\n });\n mutateOptions?.onRollback?.(previousData);\n\n options.onError?.(normalized);\n options.onSettled?.(undefined, normalized);\n\n return {\n status: 'success',\n data: previousData,\n error: undefined,\n updatedAt: current.updatedAt ?? Date.now(),\n };\n } else {\n setState({\n status: 'error',\n data: previousData,\n error: normalized,\n updatedAt: Date.now(),\n });\n }\n\n options.onError?.(normalized);\n options.onSettled?.(undefined, normalized);\n\n return {\n status: 'error',\n data: previousData,\n error: normalized,\n updatedAt: Date.now(),\n };\n }\n },\n setData(data) {\n setState({\n status: 'success',\n data,\n error: undefined,\n updatedAt: Date.now(),\n });\n },\n setError(error) {\n setState({\n status: 'error',\n data: state().data,\n error,\n updatedAt: Date.now(),\n });\n },\n clear() {\n setState({ status: 'idle' });\n cache.delete(keySignal());\n },\n };\n\n if (options.enabled) {\n void load();\n }\n if (options.refetchOnStale && hasCached && resource.isStale()) {\n void load();\n }\n\n return resource;\n}\n\nfunction encodeResourceKey(value) {\n if (value === undefined) {\n return 'u:';\n }\n if (value === null) {\n return 'null:';\n }\n if (typeof value === 'string') {\n return `s:${value}`;\n }\n if (typeof value === 'number') {\n return `n:${String(value)}`;\n }\n if (typeof value === 'boolean') {\n return `b:${value ? '1' : '0'}`;\n }\n if (Array.isArray(value)) {\n return `a:[${value.map(encodeResourceKey).join('|')}]`;\n }\n const keys = Object.keys(value).sort();\n const serialized = keys.map(key => `${key}:${encodeResourceKey(value[key])}`).join('|');\n return `o:{${serialized}}`;\n}\n\nfunction determineRetry(retry, attempt, error) {\n if (retry === false || retry === undefined) {\n return false;\n }\n if (!error.retryable) {\n return false;\n }\n if (retry === true) {\n return true;\n }\n if (typeof retry === 'number') {\n return attempt < retry;\n }\n return retry(attempt, error);\n}\n\nfunction resolveCachedState(cache, key, cacheTimeMs) {\n const cached = cache.read(key);\n if (!cached) {\n return undefined;\n }\n if (isResourceExpired(cached, cacheTimeMs)) {\n cache.delete(key);\n return undefined;\n }\n return cached;\n}\n\nexport function isResourceStale(state, staleTimeMs) {\n if (staleTimeMs === undefined) {\n return false;\n }\n if (!state.updatedAt) {\n return true;\n }\n return Date.now() - state.updatedAt >= staleTimeMs;\n}\n\nexport function isResourceExpired(state, cacheTimeMs) {\n if (cacheTimeMs === undefined) {\n return false;\n }\n if (!state.updatedAt) {\n return true;\n }\n return Date.now() - state.updatedAt >= cacheTimeMs;\n}\n\nexport function classifyError(error) {\n const base = error instanceof Error ? error : new Error(String(error));\n\n if (base.name === 'AbortError' || (error && error.code === 'ABORT_ERR')) {\n return Object.assign(base, {\n type: 'abort',\n retryable: false,\n });\n }\n\n if (base.name === 'TimeoutError' || base.message.toLowerCase().includes('timeout')) {\n return Object.assign(base, {\n type: 'timeout',\n retryable: true,\n });\n }\n\n const lower = base.message.toLowerCase();\n if (base.name === 'TypeError' && (lower.includes('fetch') || lower.includes('network'))) {\n return Object.assign(base, {\n type: 'network',\n retryable: true,\n });\n }\n\n const statusCode = error && error.statusCode;\n if (statusCode !== undefined) {\n if (statusCode >= 500) {\n return Object.assign(base, {\n type: 'server',\n retryable: true,\n statusCode,\n });\n }\n if (statusCode >= 400) {\n return Object.assign(base, {\n type: 'client',\n retryable: false,\n statusCode,\n });\n }\n }\n\n return Object.assign(base, {\n type: 'unknown',\n retryable: false,\n });\n}\n\nexport function calculateRetryDelay(attempt, baseDelayMs = 1000) {\n const exponentialDelay = Math.min(baseDelayMs * Math.pow(2, attempt), 30000);\n const jitter = exponentialDelay * 0.25 * (Math.random() * 2 - 1);\n return Math.max(0, Math.floor(exponentialDelay + jitter));\n}\n","import { signal, type SignalAccessor } from './signals.js';\n\nexport type AiRole = 'system' | 'user' | 'assistant' | 'tool';\n\nexport interface AiMessage {\n id: string;\n role: AiRole;\n content: string;\n createdAt: number;\n metadata?: Record<string, unknown>;\n}\n\nexport interface AiCompletionRequest {\n messages: AiMessage[];\n prompt: string;\n locale?: string;\n context?: Record<string, unknown>;\n}\n\nexport interface AiCompletionResponse {\n message: Partial<Omit<AiMessage, 'content'>> & Pick<AiMessage, 'content'>;\n suggestions?: string[];\n usage?: {\n inputTokens?: number;\n outputTokens?: number;\n totalTokens?: number;\n };\n}\n\nexport type AiCompletionProvider = (request: AiCompletionRequest) => Promise<AiCompletionResponse>;\n\nexport type AiSessionStatus = 'idle' | 'processing' | 'error';\n\nexport interface AiSessionOptions {\n provider: AiCompletionProvider;\n initialMessages?: AiMessage[];\n initialSuggestions?: string[];\n locale?: string;\n context?: Record<string, unknown>;\n historyLimit?: number;\n}\n\nexport interface AiSessionSendOptions {\n context?: Record<string, unknown>;\n locale?: string;\n systemPrompt?: string;\n}\n\nexport interface AiSession {\n messages: SignalAccessor<AiMessage[]>;\n suggestions: SignalAccessor<string[]>;\n status: SignalAccessor<AiSessionStatus>;\n error: SignalAccessor<string | null>;\n send(prompt: string, options?: AiSessionSendOptions): Promise<void>;\n reset(): void;\n}\n\nexport function createAiSession(options: AiSessionOptions): AiSession {\n const historyLimit = Math.max(2, options.historyLimit ?? 20);\n const initialMessages = trimHistory(options.initialMessages ?? [], historyLimit);\n const messagesSignal = signal<AiMessage[]>(initialMessages);\n const suggestionsSignal = signal<string[]>([...(options.initialSuggestions ?? [])]);\n const statusSignal = signal<AiSessionStatus>('idle');\n const errorSignal = signal<string | null>(null);\n\n const send = async (prompt: string, metadata?: AiSessionSendOptions) => {\n const content = prompt.trim();\n if (!content) {\n return;\n }\n\n const priorMessages = messagesSignal();\n const userMessage = createMessage('user', content, metadata?.context);\n const nextHistory = trimHistory([...priorMessages, userMessage], historyLimit);\n messagesSignal.set(nextHistory);\n statusSignal.set('processing');\n errorSignal.set(null);\n\n const requestHistory = metadata?.systemPrompt\n ? trimHistory([...priorMessages, createMessage('system', metadata.systemPrompt), userMessage], historyLimit)\n : nextHistory;\n\n try {\n const response = await options.provider({\n messages: requestHistory,\n prompt: content,\n locale: metadata?.locale ?? options.locale,\n context: { ...(options.context ?? {}), ...(metadata?.context ?? {}) },\n });\n const assistantMessage = normalizeAssistantMessage(response.message);\n messagesSignal.set(trimHistory([...messagesSignal(), assistantMessage], historyLimit));\n if (response.suggestions) {\n suggestionsSignal.set(response.suggestions);\n }\n statusSignal.set('idle');\n } catch (error) {\n statusSignal.set('error');\n errorSignal.set(error instanceof Error ? error.message : 'Failed to fetch AI response');\n }\n };\n\n const reset = () => {\n messagesSignal.set([...initialMessages]);\n suggestionsSignal.set([...(options.initialSuggestions ?? [])]);\n statusSignal.set('idle');\n errorSignal.set(null);\n };\n\n return {\n messages: messagesSignal,\n suggestions: suggestionsSignal,\n status: statusSignal,\n error: errorSignal,\n send,\n reset,\n } satisfies AiSession;\n}\n\nexport interface HttpAiProviderOptions {\n endpoint: string;\n headers?: Record<string, string>;\n fetch?: FetchLike;\n mapResponse?: (payload: unknown) => AiCompletionResponse;\n}\n\nexport type FetchLike = (url: string, init?: FetchLikeRequestInit) => Promise<FetchLikeResponse>;\n\nexport interface FetchLikeRequestInit {\n method?: string;\n headers?: Record<string, string>;\n body?: string;\n}\n\nexport interface FetchLikeResponse {\n ok: boolean;\n status: number;\n json(): Promise<unknown>;\n text(): Promise<string>;\n}\n\nexport function createHttpAiProvider(options: HttpAiProviderOptions): AiCompletionProvider {\n const fetcher = options.fetch ?? (globalThis as { fetch?: FetchLike }).fetch;\n if (!fetcher) {\n throw new Error('No fetch implementation available for AI provider.');\n }\n return async request => {\n const response = await fetcher(options.endpoint, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n ...(options.headers ?? {}),\n },\n body: JSON.stringify(request),\n });\n if (!response.ok) {\n const errorText = await response.text();\n throw new Error(`AI endpoint responded with ${String(response.status)}: ${errorText}`);\n }\n const json = await response.json();\n return options.mapResponse ? options.mapResponse(json) : (json as AiCompletionResponse);\n };\n}\n\nexport interface MockAiProviderOptions {\n suggestions?: string[];\n delayMs?: number;\n signature?: string;\n}\n\nexport function createMockAiProvider(options: MockAiProviderOptions = {}): AiCompletionProvider {\n const suggestions = options.suggestions ?? [\n 'Summarize the key risks',\n 'Outline a rollout plan',\n 'Draft stakeholder notes',\n ];\n return async request => {\n const delay = Math.max(0, options.delayMs ?? 120);\n if (delay) {\n await new Promise(resolve => setTimeout(resolve, delay));\n }\n const suffix = options.signature ? `\\n\\n— ${options.signature}` : '';\n return {\n message: {\n content: `AI mock response:\\n${request.prompt}${suffix}`,\n },\n suggestions,\n } satisfies AiCompletionResponse;\n };\n}\n\nfunction trimHistory(messages: AiMessage[], limit: number): AiMessage[] {\n if (messages.length <= limit) {\n return [...messages];\n }\n return messages.slice(messages.length - limit);\n}\n\nfunction createMessage(role: AiRole, content: string, metadata?: Record<string, unknown>): AiMessage {\n return {\n id: createMessageId(),\n role,\n content,\n metadata,\n createdAt: Date.now(),\n } satisfies AiMessage;\n}\n\nfunction normalizeAssistantMessage(payload: AiCompletionResponse['message']): AiMessage {\n return {\n id: payload.id ?? createMessageId(),\n role: payload.role ?? 'assistant',\n content: payload.content,\n metadata: payload.metadata,\n createdAt: payload.createdAt ?? Date.now(),\n } satisfies AiMessage;\n}\n\nfunction createMessageId(): string {\n const maybeCrypto = (globalThis as { crypto?: { randomUUID?: () => string } }).crypto;\n if (maybeCrypto?.randomUUID) {\n return maybeCrypto.randomUUID();\n }\n return `ai_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n}\n","import { signal } from '../signals.js';\nimport { addRuntimeErrorReporter, getRuntimeErrorReporters, registerRuntimeErrorReporters } from '../error-bus.js';\nimport { getRouteDataStore } from '../route-data-registry.js';\nimport { getResourceCache } from '../resource.js';\nexport function createRuntimeDiagnosticsStore(options = {}) {\n const reports = signal([]);\n const reporterName = options.reporterName ?? `ceui-devtools-${Date.now()}`;\n const maxReports = options.maxReports ?? 100;\n let attached = false;\n const reporter = {\n name: reporterName,\n report(report) {\n reports.update(current => {\n const next = [...current, report];\n if (next.length > maxReports) {\n return next.slice(next.length - maxReports);\n }\n return next;\n });\n },\n };\n const store = {\n reports,\n attach() {\n if (attached) {\n return;\n }\n addRuntimeErrorReporter(reporter);\n attached = true;\n },\n detach() {\n if (!attached) {\n return;\n }\n const next = getRuntimeErrorReporters().filter(entry => entry.name !== reporterName);\n registerRuntimeErrorReporters(next);\n attached = false;\n },\n clearReports() {\n reports.set([]);\n },\n getSnapshot() {\n return {\n reports: reports(),\n routeData: store.getRouteDataSnapshot(),\n resources: store.getResourceSnapshot(),\n };\n },\n getRouteDataSnapshot() {\n const data = getRouteDataStore()();\n return Object.fromEntries(data.entries());\n },\n getResourceSnapshot() {\n const cache = getResourceCache();\n const entries = cache.keys().map(key => [key, cache.read(key)]).filter(([, value]) => Boolean(value));\n return Object.fromEntries(entries);\n },\n };\n return store;\n}\n","export function getHydrationReports(reports) {\n return reports.filter(report => report.info.phase === 'hydration');\n}\n\nexport function buildHydrationSummary(reports) {\n const hydrationReports = getHydrationReports(reports);\n const summary = {\n total: hydrationReports.length,\n byTemplateId: {},\n byComponentName: {},\n byReason: {},\n };\n hydrationReports.forEach(report => {\n const templateId = report.info.templateId ?? 'unknown';\n summary.byTemplateId[templateId] = (summary.byTemplateId[templateId] ?? 0) + 1;\n const componentName = report.info.componentName ?? 'unknown';\n summary.byComponentName[componentName] = (summary.byComponentName[componentName] ?? 0) + 1;\n const reason = extractHydrationReason(report.error);\n summary.byReason[reason] = (summary.byReason[reason] ?? 0) + 1;\n });\n return summary;\n}\n\nfunction extractHydrationReason(error) {\n const message = error?.message ?? 'unknown';\n const prefix = '[hydration] ';\n return message.startsWith(prefix) ? message.slice(prefix.length) : message;\n}\n","export function getHydrationDomPayload(report) {\n const attributes = report.info.attributes;\n if (!attributes || typeof attributes !== 'object') {\n return {};\n }\n const record = attributes;\n return {\n expectedDom: typeof record.expectedDom === 'string' ? record.expectedDom : undefined,\n receivedDom: typeof record.receivedDom === 'string' ? record.receivedDom : undefined,\n };\n}\n\nexport function buildHydrationDomDiff(expectedDom, receivedDom, contextRadius = 40) {\n const expected = expectedDom ?? '';\n const received = receivedDom ?? '';\n const minLength = Math.min(expected.length, received.length);\n let mismatchIndex = -1;\n for (let i = 0; i < minLength; i += 1) {\n if (expected[i] !== received[i]) {\n mismatchIndex = i;\n break;\n }\n }\n if (mismatchIndex === -1 && expected.length !== received.length) {\n mismatchIndex = minLength;\n }\n const hasMismatch = mismatchIndex !== -1;\n const expectedContext = hasMismatch\n ? expected.slice(Math.max(0, mismatchIndex - contextRadius), mismatchIndex + contextRadius)\n : '';\n const receivedContext = hasMismatch\n ? received.slice(Math.max(0, mismatchIndex - contextRadius), mismatchIndex + contextRadius)\n : '';\n return {\n hasMismatch,\n firstMismatchIndex: mismatchIndex,\n expectedLength: expected.length,\n receivedLength: received.length,\n expectedContext,\n receivedContext,\n };\n}\n\nexport function createHydrationReplaySession(report, options = {}) {\n const payload = getHydrationDomPayload(report);\n const diff =\n payload.expectedDom || payload.receivedDom\n ? buildHydrationDomDiff(payload.expectedDom, payload.receivedDom, options.contextRadius)\n : null;\n return {\n payload,\n diff,\n applyExpected(target) {\n applyDomPayload(target, payload.expectedDom);\n },\n applyReceived(target) {\n applyDomPayload(target, payload.receivedDom);\n },\n clear(target) {\n clearNode(target);\n },\n };\n}\n\nfunction applyDomPayload(target, html) {\n clearNode(target);\n if (!html) {\n return;\n }\n if (typeof document === 'undefined') {\n return;\n }\n if (target instanceof Element) {\n target.innerHTML = html;\n return;\n }\n if (target instanceof DocumentFragment) {\n const template = document.createElement('template');\n template.innerHTML = html;\n target.appendChild(template.content.cloneNode(true));\n return;\n }\n target.textContent = html;\n}\n\nfunction clearNode(target) {\n while (target.firstChild) {\n target.removeChild(target.firstChild);\n }\n}\n","import { buildHydrationDomDiff, createHydrationReplaySession } from './hydration-replay.js';\nexport function createHydrationReplayPanel(report, options = {}) {\n if (typeof document === 'undefined') {\n throw new Error('[ce-ui] Hydration replay panel requires a DOM.');\n }\n const contextRadius = options.contextRadius ?? 40;\n const session = createHydrationReplaySession(report, { contextRadius });\n const diff =\n session.diff ?? buildHydrationDomDiff(session.payload.expectedDom, session.payload.receivedDom, contextRadius);\n const container = document.createElement('section');\n container.className = ['ceui-hydration-panel', options.className].filter(Boolean).join(' ');\n const style = document.createElement('style');\n style.textContent = `\n .ceui-hydration-panel {\n font-family: \"Space Grotesk\", \"IBM Plex Sans\", \"Segoe UI\", sans-serif;\n border: 1px solid var(--ceui-border, #d7dbe6);\n border-radius: 16px;\n padding: 16px;\n background: var(--ceui-surface, #ffffff);\n box-shadow: 0 10px 24px rgba(25, 36, 60, 0.08);\n }\n .ceui-hydration-panel__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }\n .ceui-hydration-panel__meta { font-size: 12px; color: var(--ceui-muted, #6a7280); }\n .ceui-hydration-panel__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }\n .ceui-hydration-panel__card {\n border: 1px solid rgba(36, 86, 255, 0.12);\n border-radius: 14px;\n padding: 12px;\n background: var(--ceui-surface-alt, #f6f4ff);\n }\n .ceui-hydration-panel__preview { border: 1px dashed #c9ccd4; border-radius: 10px; padding: 8px; min-height: 64px; background: #ffffff; }\n .ceui-hydration-panel__code { margin-top: 8px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; background: #f1f3f8; padding: 8px; border-radius: 8px; overflow: auto; }\n .ceui-hydration-panel__highlight { background: #ffd54f; color: #1c1e22; padding: 0 2px; border-radius: 3px; }\n .ceui-hydration-panel__label { font-weight: 600; margin-bottom: 6px; color: var(--ceui-ink, #1f2430); }\n `;\n const header = document.createElement('div');\n header.className = 'ceui-hydration-panel__header';\n const title = document.createElement('div');\n title.textContent = `Hydration Replay · ${report.info.templateId ?? 'template'}`;\n const meta = document.createElement('div');\n meta.className = 'ceui-hydration-panel__meta';\n meta.textContent = `Component: ${report.info.componentName ?? 'unknown'} · Mismatch index: ${diff.firstMismatchIndex}`;\n header.append(title, meta);\n const grid = document.createElement('div');\n grid.className = 'ceui-hydration-panel__grid';\n grid.appendChild(buildPane('Expected (SSR)', session.payload.expectedDom, diff.firstMismatchIndex, contextRadius));\n grid.appendChild(buildPane('Received (CSR)', session.payload.receivedDom, diff.firstMismatchIndex, contextRadius));\n container.append(style, header, grid);\n return container;\n}\nfunction buildPane(label, html, mismatchIndex, contextRadius) {\n const card = document.createElement('div');\n card.className = 'ceui-hydration-panel__card';\n const labelNode = document.createElement('div');\n labelNode.className = 'ceui-hydration-panel__label';\n labelNode.textContent = label;\n const preview = document.createElement('div');\n preview.className = 'ceui-hydration-panel__preview';\n if (html) {\n preview.innerHTML = html;\n }\n const code = document.createElement('pre');\n code.className = 'ceui-hydration-panel__code';\n code.innerHTML = highlightSnippet(html ?? '', mismatchIndex, contextRadius);\n card.append(labelNode, preview, code);\n return card;\n}\nfunction highlightSnippet(value, mismatchIndex, contextRadius) {\n if (!value) {\n return escapeHtml('(empty)');\n }\n if (mismatchIndex < 0) {\n return escapeHtml(truncate(value, contextRadius * 2));\n }\n const start = Math.max(0, mismatchIndex - contextRadius);\n const end = Math.min(value.length, mismatchIndex + contextRadius);\n const before = escapeHtml(value.slice(start, mismatchIndex));\n const current = value[mismatchIndex] ?? '';\n const after = escapeHtml(value.slice(mismatchIndex + 1, end));\n const highlight = current ? escapeHtml(current) : ' ';\n return `${before}<mark class=\"ceui-hydration-panel__highlight\">${highlight}</mark>${after}`;\n}\nfunction truncate(value, maxLength) {\n if (value.length <= maxLength) {\n return value;\n }\n return `${value.slice(0, maxLength)}…`;\n}\nfunction escapeHtml(value) {\n return value\n .replace(/&/g, '&')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n","export function createRouterInspectorPanel(inspector, options = {}) {\n if (typeof document === 'undefined') {\n throw new Error('[ce-ui] Router inspector panel requires a DOM.');\n }\n const snapshot = inspector.getSnapshot();\n const container = document.createElement('section');\n container.className = ['ceui-router-panel', options.className].filter(Boolean).join(' ');\n const style = document.createElement('style');\n style.textContent = `\n .ceui-router-panel {\n font-family: \"Space Grotesk\", \"IBM Plex Sans\", \"Segoe UI\", sans-serif;\n border: 1px solid var(--ceui-border, #d7dbe6);\n border-radius: 16px;\n padding: 16px;\n background: var(--ceui-surface, #ffffff);\n box-shadow: 0 10px 24px rgba(25, 36, 60, 0.08);\n }\n .ceui-router-panel__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }\n .ceui-router-panel__meta { font-size: 12px; color: var(--ceui-muted, #6a7280); }\n .ceui-router-panel__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }\n .ceui-router-panel__card {\n border: 1px solid rgba(36, 86, 255, 0.12);\n border-radius: 14px;\n padding: 12px;\n background: var(--ceui-surface-alt, #f6f4ff);\n }\n .ceui-router-panel__list { margin: 0; padding: 0; list-style: none; }\n .ceui-router-panel__item { padding: 4px 0; font-size: 13px; }\n .ceui-router-panel__item--active { font-weight: 600; color: var(--ceui-ink, #1f2430); }\n .ceui-router-panel__code {\n margin-top: 8px;\n font-family: ui-monospace, SFMono-Regular, Menlo, monospace;\n font-size: 12px;\n background: #f1f3f8;\n padding: 8px;\n border-radius: 8px;\n overflow: auto;\n }\n .ceui-router-panel__label { font-weight: 600; margin-bottom: 6px; color: var(--ceui-ink, #1f2430); }\n `;\n const header = document.createElement('div');\n header.className = 'ceui-router-panel__header';\n const title = document.createElement('div');\n title.textContent = 'Router Inspector';\n const meta = document.createElement('div');\n meta.className = 'ceui-router-panel__meta';\n meta.textContent = `Path: ${snapshot.currentPath || '/'}`;\n header.append(title, meta);\n const grid = document.createElement('div');\n grid.className = 'ceui-router-panel__grid';\n const treeCard = document.createElement('div');\n treeCard.className = 'ceui-router-panel__card';\n const treeLabel = document.createElement('div');\n treeLabel.className = 'ceui-router-panel__label';\n treeLabel.textContent = 'Route Tree';\n const list = document.createElement('ul');\n list.className = 'ceui-router-panel__list';\n buildRouteList(snapshot.tree, list, 0);\n treeCard.append(treeLabel, list);\n grid.appendChild(treeCard);\n if (options.showRouteData !== false) {\n const dataCard = document.createElement('div');\n dataCard.className = 'ceui-router-panel__card';\n const dataLabel = document.createElement('div');\n dataLabel.className = 'ceui-router-panel__label';\n dataLabel.textContent = 'Route Data Cache';\n const cacheList = document.createElement('ul');\n cacheList.className = 'ceui-router-panel__list';\n const dataEntries = Object.entries(snapshot.routeData);\n if (dataEntries.length === 0) {\n const empty = document.createElement('li');\n empty.className = 'ceui-router-panel__item';\n empty.textContent = 'No cached loader/action data.';\n cacheList.appendChild(empty);\n } else {\n dataEntries.forEach(([key, entry]) => {\n cacheList.appendChild(buildRouteDataItem(key, entry));\n });\n }\n dataCard.append(dataLabel, cacheList);\n grid.appendChild(dataCard);\n }\n container.append(style, header, grid);\n return container;\n}\nfunction buildRouteList(nodes, list, depth) {\n nodes.forEach(node => {\n const item = document.createElement('li');\n item.className = `ceui-router-panel__item${node.isActive ? ' ceui-router-panel__item--active' : ''}`;\n item.textContent = `${' '.repeat(depth * 2)}${node.fullPath}`;\n list.appendChild(item);\n if (node.children.length) {\n buildRouteList(node.children, list, depth + 1);\n }\n });\n}\nfunction buildRouteDataItem(key, entry) {\n const item = document.createElement('li');\n item.className = 'ceui-router-panel__item';\n const label = document.createElement('div');\n label.textContent = key;\n const status = document.createElement('div');\n status.className = 'ceui-router-panel__meta';\n const phase = entry.info?.phase ?? 'unknown';\n const outcome = entry.error ? 'error' : 'ok';\n const handled = entry.handled ? 'handled' : 'unhandled';\n status.textContent = `Phase: ${phase} · Status: ${outcome} · ${handled}`;\n if (entry.error) {\n status.textContent += ` · ${entry.error.message}`;\n }\n if (typeof entry.durationMs === 'number') {\n status.textContent += ` · Duration: ${entry.durationMs}ms`;\n }\n const code = document.createElement('pre');\n code.className = 'ceui-router-panel__code';\n code.textContent = JSON.stringify(\n {\n handled: entry.handled,\n hasError: Boolean(entry.error),\n info: entry.info ?? null,\n data: entry.data ?? null,\n },\n null,\n 2,\n );\n item.append(label, status, code);\n return item;\n}\n","import { signal, getSignalsInspectorSnapshot, clearSignalsInspectorRegistry } from '../signals.js';\nexport function createSignalsInspector() {\n const snapshot = signal(getSignalsInspectorSnapshot());\n return {\n snapshot,\n refresh() {\n const next = getSignalsInspectorSnapshot();\n snapshot.set(next);\n return next;\n },\n clear() {\n clearSignalsInspectorRegistry();\n snapshot.set(getSignalsInspectorSnapshot());\n },\n };\n}\n\nexport function buildSignalsGraph(snapshot) {\n const nodes = [\n ...snapshot.signals.map(signal => ({\n id: signal.id,\n type: 'signal',\n label: signal.id,\n })),\n ...snapshot.effects.map(effect => ({\n id: effect.id,\n type: 'effect',\n label: effect.name,\n })),\n ];\n const edges = [];\n snapshot.effects.forEach(effect => {\n effect.trackedSignalIds.forEach(signalId => {\n edges.push({ from: effect.id, to: signalId, type: 'tracks' });\n });\n });\n return { nodes, edges };\n}\n","import { buildSignalsGraph, createSignalsInspector } from './signals-inspector.js';\nexport function createSignalsInspectorPanel(options = {}) {\n if (typeof document === 'undefined') {\n throw new Error('[ce-ui] Signals inspector panel requires a DOM.');\n }\n const snapshot = options.snapshot ?? createSignalsInspector().refresh();\n const graph = buildSignalsGraph(snapshot);\n const container = document.createElement('section');\n container.className = ['ceui-signals-panel', options.className].filter(Boolean).join(' ');\n const style = document.createElement('style');\n style.textContent = `\n .ceui-signals-panel {\n font-family: \"Space Grotesk\", \"IBM Plex Sans\", \"Segoe UI\", sans-serif;\n border: 1px solid var(--ceui-border, #d7dbe6);\n border-radius: 16px;\n padding: 16px;\n background: var(--ceui-surface, #ffffff);\n box-shadow: 0 10px 24px rgba(25, 36, 60, 0.08);\n }\n .ceui-signals-panel__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }\n .ceui-signals-panel__meta { font-size: 12px; color: var(--ceui-muted, #6a7280); }\n .ceui-signals-panel__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }\n .ceui-signals-panel__card {\n border: 1px solid rgba(36, 86, 255, 0.12);\n border-radius: 14px;\n padding: 12px;\n background: var(--ceui-surface-alt, #f6f4ff);\n }\n .ceui-signals-panel__list { margin: 0; padding: 0; list-style: none; }\n .ceui-signals-panel__item { padding: 4px 0; font-size: 13px; }\n .ceui-signals-panel__label { font-weight: 600; margin-bottom: 6px; color: var(--ceui-ink, #1f2430); }\n `;\n const header = document.createElement('div');\n header.className = 'ceui-signals-panel__header';\n const title = document.createElement('div');\n title.textContent = 'Signals Inspector';\n const meta = document.createElement('div');\n meta.className = 'ceui-signals-panel__meta';\n meta.textContent = `Signals: ${snapshot.signals.length} · Effects: ${snapshot.effects.length}`;\n header.append(title, meta);\n const grid = document.createElement('div');\n grid.className = 'ceui-signals-panel__grid';\n grid.appendChild(buildSignalList(snapshot));\n grid.appendChild(buildEffectList(snapshot));\n grid.appendChild(buildEdgesList(graph));\n container.append(style, header, grid);\n return container;\n}\nfunction buildSignalList(snapshot) {\n const card = document.createElement('div');\n card.className = 'ceui-signals-panel__card';\n const label = document.createElement('div');\n label.className = 'ceui-signals-panel__label';\n label.textContent = 'Signals';\n const list = document.createElement('ul');\n list.className = 'ceui-signals-panel__list';\n if (snapshot.signals.length === 0) {\n list.appendChild(buildEmptyItem('No signals recorded.'));\n } else {\n snapshot.signals.forEach(signal => {\n const item = document.createElement('li');\n item.className = 'ceui-signals-panel__item';\n item.textContent = `${signal.id} · Subscribers: ${signal.subscribers}`;\n list.appendChild(item);\n });\n }\n card.append(label, list);\n return card;\n}\nfunction buildEffectList(snapshot) {\n const card = document.createElement('div');\n card.className = 'ceui-signals-panel__card';\n const label = document.createElement('div');\n label.className = 'ceui-signals-panel__label';\n label.textContent = 'Effects';\n const list = document.createElement('ul');\n list.className = 'ceui-signals-panel__list';\n if (snapshot.effects.length === 0) {\n list.appendChild(buildEmptyItem('No effects recorded.'));\n } else {\n snapshot.effects.forEach(effect => {\n const item = document.createElement('li');\n item.className = 'ceui-signals-panel__item';\n item.textContent = `${effect.name} (${effect.id}) · Tracks: ${effect.trackedSignals}`;\n list.appendChild(item);\n });\n }\n card.append(label, list);\n return card;\n}\nfunction buildEdgesList(graph) {\n const card = document.createElement('div');\n card.className = 'ceui-signals-panel__card';\n const label = document.createElement('div');\n label.className = 'ceui-signals-panel__label';\n label.textContent = 'Edges';\n const list = document.createElement('ul');\n list.className = 'ceui-signals-panel__list';\n if (graph.edges.length === 0) {\n list.appendChild(buildEmptyItem('No tracked edges yet.'));\n } else {\n graph.edges.forEach(edge => {\n const item = document.createElement('li');\n item.className = 'ceui-signals-panel__item';\n item.textContent = `${edge.from} → ${edge.to}`;\n list.appendChild(item);\n });\n }\n card.append(label, list);\n return card;\n}\nfunction buildEmptyItem(message) {\n const item = document.createElement('li');\n item.className = 'ceui-signals-panel__item';\n item.textContent = message;\n return item;\n}\n","import { getHydrationReports } from './hydration-dashboard.js';\nimport { createHydrationReplayPanel } from './hydration-replay-panel.js';\nimport { createRouterInspectorPanel } from './router-inspector-panel.js';\nimport { createSignalsInspector } from './signals-inspector.js';\nimport { createSignalsInspectorPanel } from './signals-inspector-panel.js';\nexport function createDevtoolsDashboard(options = {}) {\n if (typeof document === 'undefined') {\n throw new Error('[ce-ui] Devtools dashboard requires a DOM.');\n }\n const container = document.createElement('section');\n container.className = ['ceui-devtools-dashboard', options.className].filter(Boolean).join(' ');\n const style = document.createElement('style');\n style.textContent = `\n .ceui-devtools-dashboard {\n --ceui-surface: #ffffff;\n --ceui-surface-alt: #f6f4ff;\n --ceui-border: #d7dbe6;\n --ceui-ink: #1f2430;\n --ceui-muted: #6a7280;\n --ceui-accent: #2456ff;\n --ceui-shadow: 0 18px 40px rgba(25, 36, 60, 0.12);\n font-family: \"Space Grotesk\", \"IBM Plex Sans\", \"Segoe UI\", sans-serif;\n display: grid;\n gap: 18px;\n padding: 20px;\n border-radius: 20px;\n background:\n radial-gradient(120% 140% at 10% 0%, rgba(36, 86, 255, 0.12), transparent 55%),\n radial-gradient(140% 120% at 90% 10%, rgba(34, 197, 94, 0.12), transparent 60%),\n linear-gradient(135deg, #fefeff 0%, #f5f6fb 55%, #ffffff 100%);\n border: 1px solid var(--ceui-border);\n box-shadow: var(--ceui-shadow);\n color: var(--ceui-ink);\n animation: ceui-dashboard-fade 420ms ease;\n }\n .ceui-devtools-dashboard--compact {\n gap: 12px;\n padding: 14px;\n border-radius: 16px;\n }\n .ceui-devtools-dashboard--soft {\n --ceui-surface: #fafbfc;\n --ceui-surface-alt: #f8f9fc;\n --ceui-border: #e3e6ed;\n --ceui-ink: #414958;\n --ceui-muted: #7d8594;\n --ceui-accent: #5577ff;\n --ceui-shadow: 0 12px 32px rgba(25, 36, 60, 0.08);\n background:\n radial-gradient(120% 140% at 10% 0%, rgba(85, 119, 255, 0.08), transparent 55%),\n radial-gradient(140% 120% at 90% 10%, rgba(52, 211, 153, 0.08), transparent 60%),\n linear-gradient(135deg, #fafbfc 0%, #f8f9fc 55%, #fafbfc 100%);\n }\n @keyframes ceui-dashboard-fade {\n from { opacity: 0; transform: translateY(8px); }\n to { opacity: 1; transform: translateY(0); }\n }\n .ceui-devtools-dashboard__empty {\n border: 1px dashed var(--ceui-border);\n border-radius: 14px;\n padding: 16px;\n color: var(--ceui-muted);\n background: rgba(255, 255, 255, 0.7);\n }\n .ceui-devtools-dashboard__header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 16px;\n }\n .ceui-devtools-dashboard__title {\n font-weight: 600;\n font-size: 20px;\n letter-spacing: -0.02em;\n }\n .ceui-devtools-dashboard__subtitle {\n font-size: 12px;\n color: var(--ceui-muted);\n }\n .ceui-devtools-dashboard__refresh,\n .ceui-devtools-dashboard__toggle,\n .ceui-devtools-dashboard__copy,\n .ceui-devtools-dashboard__clear,\n .ceui-devtools-dashboard__export {\n border: 1px solid var(--ceui-border);\n background: var(--ceui-surface);\n border-radius: 999px;\n padding: 6px 12px;\n cursor: pointer;\n font-size: 12px;\n transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease;\n }\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__refresh,\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__toggle,\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__copy,\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__clear,\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__export {\n padding: 5px 10px;\n font-size: 11px;\n border-radius: 12px;\n }\n .ceui-devtools-dashboard__refresh:hover,\n .ceui-devtools-dashboard__toggle:hover,\n .ceui-devtools-dashboard__copy:hover,\n .ceui-devtools-dashboard__clear:hover,\n .ceui-devtools-dashboard__export:hover {\n border-color: var(--ceui-accent);\n box-shadow: 0 6px 14px rgba(36, 86, 255, 0.16);\n transform: translateY(-1px);\n }\n .ceui-devtools-dashboard__panels { display: grid; gap: 16px; }\n .ceui-devtools-dashboard__panels > * {\n animation: ceui-panel-rise 360ms ease;\n animation-fill-mode: both;\n }\n .ceui-devtools-dashboard__panels > *:nth-child(1) { animation-delay: 40ms; }\n .ceui-devtools-dashboard__panels > *:nth-child(2) { animation-delay: 100ms; }\n .ceui-devtools-dashboard__panels > *:nth-child(3) { animation-delay: 160ms; }\n @keyframes ceui-panel-rise {\n from { opacity: 0; transform: translateY(10px); }\n to { opacity: 1; transform: translateY(0); }\n }\n .ceui-devtools-dashboard__summary {\n display: flex;\n flex-wrap: wrap;\n gap: 10px;\n color: var(--ceui-muted);\n font-size: 12px;\n }\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__summary {\n gap: 8px;\n font-size: 11px;\n }\n .ceui-devtools-dashboard__pill {\n background: var(--ceui-surface-alt);\n border-radius: 999px;\n padding: 4px 12px;\n max-width: 320px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n border: 1px solid rgba(36, 86, 255, 0.12);\n }\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__pill { padding: 3px 10px; }\n .ceui-devtools-dashboard__meta {\n font-size: 12px;\n color: var(--ceui-muted);\n margin-left: auto;\n margin-right: 12px;\n }\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__meta {\n font-size: 11px;\n margin-right: 8px;\n }\n .ceui-devtools-dashboard__controls { display: flex; flex-wrap: wrap; gap: 8px; }\n .ceui-devtools-dashboard__panels--hidden { display: none; }\n .ceui-devtools-dashboard__footer {\n font-size: 12px;\n color: var(--ceui-muted);\n padding-top: 4px;\n }\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__footer {\n font-size: 11px;\n padding-top: 2px;\n }\n .ceui-devtools-dashboard__phase {\n font-size: 12px;\n color: var(--ceui-muted);\n background: var(--ceui-surface);\n border: 1px solid var(--ceui-border);\n border-radius: 14px;\n padding: 12px;\n box-shadow: 0 10px 24px rgba(25, 36, 60, 0.08);\n }\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__phase {\n font-size: 11px;\n padding: 10px;\n border-radius: 12px;\n }\n .ceui-devtools-dashboard__phase-title { font-weight: 600; margin-bottom: 6px; color: var(--ceui-ink); }\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__title { font-size: 17px; }\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__subtitle { font-size: 11px; }\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__panels { gap: 12px; }\n .ceui-devtools-dashboard--compact .ceui-router-panel,\n .ceui-devtools-dashboard--compact .ceui-signals-panel,\n .ceui-devtools-dashboard--compact .ceui-hydration-panel,\n .ceui-devtools-dashboard--compact .ceui-hydration-replay-panel {\n border-radius: 12px;\n padding: 12px;\n box-shadow: 0 8px 18px rgba(25, 36, 60, 0.06);\n }\n .ceui-devtools-dashboard--compact .ceui-router-panel__card,\n .ceui-devtools-dashboard--compact .ceui-signals-panel__card {\n padding: 10px;\n border-radius: 12px;\n }\n .ceui-devtools-dashboard--compact .ceui-router-panel__item,\n .ceui-devtools-dashboard--compact .ceui-signals-panel__item,\n .ceui-devtools-dashboard--compact .ceui-devtools-dashboard__pill {\n font-size: 12px;\n }\n `;\n container.appendChild(style);\n const header = document.createElement('div');\n header.className = 'ceui-devtools-dashboard__header';\n const title = document.createElement('div');\n title.className = 'ceui-devtools-dashboard__title';\n title.textContent = 'CE UI Devtools';\n const subtitle = document.createElement('div');\n subtitle.className = 'ceui-devtools-dashboard__subtitle';\n subtitle.textContent = 'Runtime diagnostics and live state';\n const headerText = document.createElement('div');\n headerText.append(title, subtitle);\n header.appendChild(headerText);\n const refreshedAt = document.createElement('div');\n refreshedAt.className = 'ceui-devtools-dashboard__meta';\n const controls = document.createElement('div');\n controls.className = 'ceui-devtools-dashboard__controls';\n let panelsToggleButton = null;\n let compactMode = Boolean(options.compact);\n let currentTheme = options.theme ?? 'default';\n container.classList.toggle('ceui-devtools-dashboard--compact', compactMode);\n container.classList.toggle('ceui-devtools-dashboard--soft', currentTheme === 'soft');\n if (options.showRefresh !== false) {\n const refreshButton = document.createElement('button');\n refreshButton.type = 'button';\n refreshButton.className = 'ceui-devtools-dashboard__refresh';\n refreshButton.textContent = 'Refresh';\n refreshButton.addEventListener('click', () => {\n renderPanels();\n });\n controls.appendChild(refreshButton);\n }\n if (options.enableSummaryToggle) {\n const toggleButton = document.createElement('button');\n toggleButton.type = 'button';\n toggleButton.className = 'ceui-devtools-dashboard__toggle';\n toggleButton.textContent = 'Hide summary';\n toggleButton.addEventListener('click', () => {\n summaryHidden = !summaryHidden;\n toggleButton.textContent = summaryHidden ? 'Show summary' : 'Hide summary';\n renderPanels();\n });\n controls.appendChild(toggleButton);\n }\n if (options.enablePanelsToggle) {\n const panelsButton = document.createElement('button');\n panelsButton.type = 'button';\n panelsButton.className = 'ceui-devtools-dashboard__toggle';\n panelsButton.textContent = 'Collapse panels';\n panelsButton.addEventListener('click', () => {\n panelsHidden = !panelsHidden;\n panelsButton.textContent = panelsHidden ? 'Expand panels' : 'Collapse panels';\n renderPanels();\n });\n controls.appendChild(panelsButton);\n panelsToggleButton = panelsButton;\n }\n if (options.enableCompactToggle !== false) {\n const compactButton = document.createElement('button');\n compactButton.type = 'button';\n compactButton.className = 'ceui-devtools-dashboard__toggle';\n compactButton.textContent = compactMode ? 'Compact: on' : 'Compact: off';\n compactButton.addEventListener('click', () => {\n compactMode = !compactMode;\n container.classList.toggle('ceui-devtools-dashboard--compact', compactMode);\n compactButton.textContent = compactMode ? 'Compact: on' : 'Compact: off';\n });\n controls.appendChild(compactButton);\n }\n if (options.enableThemeToggle !== false) {\n const themeButton = document.createElement('button');\n themeButton.type = 'button';\n themeButton.className = 'ceui-devtools-dashboard__toggle';\n themeButton.textContent = currentTheme === 'soft' ? 'Theme: soft' : 'Theme: default';\n themeButton.addEventListener('click', () => {\n currentTheme = currentTheme === 'soft' ? 'default' : 'soft';\n container.classList.toggle('ceui-devtools-dashboard--soft', currentTheme === 'soft');\n themeButton.textContent = currentTheme === 'soft' ? 'Theme: soft' : 'Theme: default';\n });\n controls.appendChild(themeButton);\n }\n if (options.enableCopyDiagnostics) {\n const copyButton = document.createElement('button');\n copyButton.type = 'button';\n copyButton.className = 'ceui-devtools-dashboard__copy';\n copyButton.textContent = 'Copy diagnostics';\n copyButton.addEventListener('click', async () => {\n if (!options.diagnosticsStore || typeof navigator === 'undefined' || !navigator.clipboard) {\n return;\n }\n try {\n await navigator.clipboard.writeText(JSON.stringify(options.diagnosticsStore.getSnapshot(), null, 2));\n copyButton.textContent = 'Copied';\n setTimeout(() => {\n copyButton.textContent = 'Copy diagnostics';\n }, 1500);\n }\n catch {\n copyButton.textContent = 'Copy failed';\n setTimeout(() => {\n copyButton.textContent = 'Copy diagnostics';\n }, 1500);\n }\n });\n controls.appendChild(copyButton);\n }\n if (options.enableClearDiagnostics) {\n const clearButton = document.createElement('button');\n clearButton.type = 'button';\n clearButton.className = 'ceui-devtools-dashboard__clear';\n clearButton.textContent = 'Clear diagnostics';\n clearButton.addEventListener('click', () => {\n options.diagnosticsStore?.clearReports();\n renderPanels();\n });\n controls.appendChild(clearButton);\n }\n if (options.enableExportDiagnostics) {\n const exportButton = document.createElement('button');\n exportButton.type = 'button';\n exportButton.className = 'ceui-devtools-dashboard__export';\n exportButton.textContent = 'Export diagnostics';\n exportButton.addEventListener('click', () => {\n if (!options.diagnosticsStore || typeof document === 'undefined') {\n return;\n }\n const snapshot = options.diagnosticsStore.getSnapshot();\n const json = JSON.stringify(snapshot, null, 2);\n const blob = new Blob([json], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const anchor = document.createElement('a');\n anchor.href = url;\n anchor.download = `ce-ui-diagnostics-${Date.now()}.json`;\n anchor.click();\n URL.revokeObjectURL(url);\n });\n controls.appendChild(exportButton);\n }\n if (options.enableResetPanels) {\n const resetButton = document.createElement('button');\n resetButton.type = 'button';\n resetButton.className = 'ceui-devtools-dashboard__toggle';\n resetButton.textContent = 'Reset panels';\n resetButton.addEventListener('click', () => {\n panelsHidden = false;\n if (panelsToggleButton) {\n panelsToggleButton.textContent = 'Collapse panels';\n }\n renderPanels();\n });\n controls.appendChild(resetButton);\n }\n header.append(refreshedAt, controls);\n const summary = document.createElement('div');\n summary.className = 'ceui-devtools-dashboard__summary';\n const panels = document.createElement('div');\n panels.className = 'ceui-devtools-dashboard__panels';\n const footer = document.createElement('div');\n footer.className = 'ceui-devtools-dashboard__footer';\n const phasePanel = document.createElement('div');\n phasePanel.className = 'ceui-devtools-dashboard__phase';\n let summaryHidden = false;\n let panelsHidden = false;\n const renderPanels = () => {\n while (panels.firstChild) {\n panels.removeChild(panels.firstChild);\n }\n while (summary.firstChild) {\n summary.removeChild(summary.firstChild);\n }\n refreshedAt.textContent = `Refreshed: ${new Date().toLocaleTimeString()}`;\n if (!summaryHidden && options.showSummary !== false) {\n buildSummary(options, summary);\n }\n panels.classList.toggle('ceui-devtools-dashboard__panels--hidden', panelsHidden);\n footer.textContent = `Runtime reports: ${options.diagnosticsStore ? options.diagnosticsStore.reports().length : 0}`;\n renderPhasePanel(options, phasePanel);\n if (panelsHidden) {\n return;\n }\n if (options.routerInspector) {\n panels.appendChild(createRouterInspectorPanel(options.routerInspector));\n }\n const signalsPanel = createSignalsInspectorPanel({ snapshot: options.signalsSnapshot });\n panels.appendChild(signalsPanel);\n const hydrationReport = resolveHydrationReport(options);\n if (hydrationReport) {\n panels.appendChild(createHydrationReplayPanel(hydrationReport));\n } else {\n const empty = document.createElement('div');\n empty.className = 'ceui-devtools-dashboard__empty';\n empty.textContent = 'No hydration mismatch reports available.';\n panels.appendChild(empty);\n }\n };\n renderPanels();\n container.append(header, summary, panels, phasePanel, footer);\n return container;\n}\nfunction resolveHydrationReport(options) {\n if (options.hydrationReport) {\n return options.hydrationReport;\n }\n if (options.diagnosticsStore) {\n const reports = getHydrationReports(options.diagnosticsStore.reports());\n return reports[0];\n }\n return undefined;\n}\nfunction buildSummary(options, summary) {\n const signalsSnapshot = options.signalsSnapshot ?? createSignalsInspector().refresh();\n const signalsCount = signalsSnapshot.signals.length;\n const effectsCount = signalsSnapshot.effects.length;\n const hydrationReports = options.diagnosticsStore ? getHydrationReports(options.diagnosticsStore.reports()) : [];\n const hydrationCount = hydrationReports.length;\n const lastHydration = hydrationReports\n .slice()\n .sort((a, b) => resolveHydrationTimestampValue(b) - resolveHydrationTimestampValue(a))[0];\n const reportsByPhase = options.diagnosticsStore ? countReportsByPhase(options.diagnosticsStore) : new Map();\n const routeSummary = options.routerInspector?.getSnapshot();\n if (routeSummary && options.showRouterSummary !== false) {\n summary.appendChild(\n buildSummaryPill(`Route: ${routeSummary.currentPath || '/'} (${routeSummary.currentMatch?.route.id ?? 'unknown'})`),\n );\n }\n summary.appendChild(buildSummaryPill(`Signals: ${signalsCount}`));\n summary.appendChild(buildSummaryPill(`Effects: ${effectsCount}`));\n summary.appendChild(buildSummaryPill(`Signals refreshed: ${new Date().toLocaleTimeString()}`));\n summary.appendChild(buildSummaryPill(`Hydration: ${hydrationCount}`));\n if (reportsByPhase.size) {\n const formatted = formatPhaseCounts(reportsByPhase);\n const pill = buildSummaryPill(`Reports: ${formatted}`);\n pill.title = formatted;\n summary.appendChild(pill);\n }\n if (lastHydration) {\n const timestampLabel = resolveHydrationTimestamp(lastHydration);\n summary.appendChild(buildSummaryPill(`Last hydration: ${timestampLabel}`));\n if (options.showHydrationTemplate !== false) {\n summary.appendChild(buildSummaryPill(`Hydration template: ${lastHydration.info.templateId ?? 'unknown'}`));\n }\n }\n}\nfunction buildSummaryPill(text) {\n const pill = document.createElement('div');\n pill.className = 'ceui-devtools-dashboard__pill';\n pill.textContent = text;\n return pill;\n}\nfunction resolveHydrationTimestamp(report) {\n const timestamp = resolveHydrationTimestampValue(report);\n return timestamp ? new Date(timestamp).toLocaleTimeString() : 'unknown';\n}\nfunction resolveHydrationTimestampValue(report) {\n const timestamp = report.info.attributes?.timestamp;\n return typeof timestamp === 'number' ? timestamp : 0;\n}\nfunction countReportsByPhase(store) {\n const counts = new Map();\n store.reports().forEach(report => {\n const phase = report.info.phase ?? 'unknown';\n counts.set(phase, (counts.get(phase) ?? 0) + 1);\n });\n return counts;\n}\nfunction formatPhaseCounts(counts) {\n return Array.from(counts.entries())\n .sort((a, b) => a[0].localeCompare(b[0]))\n .map(([phase, count]) => `${phase}:${count}`)\n .join(' · ');\n}\nfunction renderPhasePanel(options, panel) {\n panel.replaceChildren();\n const title = document.createElement('div');\n title.className = 'ceui-devtools-dashboard__phase-title';\n title.textContent = 'Reports by phase';\n panel.appendChild(title);\n const counts = options.diagnosticsStore ? countReportsByPhase(options.diagnosticsStore) : new Map();\n if (!counts.size) {\n const empty = document.createElement('div');\n empty.textContent = 'No reports captured.';\n panel.appendChild(empty);\n return;\n }\n const list = document.createElement('div');\n list.textContent = formatPhaseCounts(counts);\n panel.appendChild(list);\n}\n","import { computed } from '../signals.js';\nimport { getRouteDataStore } from '../route-data-registry.js';\nimport { normalizePath } from '../router-utils.js';\nexport function buildRouteTree(routes, parentPath = '') {\n return routes.map(route => {\n const fullPath = normalizePath(parentPath, route.path);\n return {\n id: route.id ?? route.path,\n path: route.path,\n fullPath,\n hasLoader: Boolean(route.loader),\n hasAction: Boolean(route.action),\n hasGuards: Boolean(route.guards?.length),\n children: buildRouteTree(route.children ?? [], fullPath),\n isActive: false,\n };\n });\n}\nexport function createRouterInspector(router, routes) {\n const baseTree = buildRouteTree(routes);\n const tree = computed(() => {\n const activePath = router.currentMatch()?.fullPath ?? router.currentPath();\n return markActiveRoutes(baseTree, activePath);\n });\n const inspector = {\n tree,\n currentPath: router.currentPath,\n currentMatch: router.currentMatch,\n getSnapshot() {\n return {\n currentPath: router.currentPath(),\n currentMatch: router.currentMatch(),\n tree: tree(),\n routeData: inspector.getRouteDataSnapshot(),\n };\n },\n getRouteDataSnapshot() {\n const store = getRouteDataStore()();\n return Object.fromEntries(store.entries());\n },\n };\n return inspector;\n}\nfunction markActiveRoutes(nodes, activePath) {\n return nodes.map(node => ({\n ...node,\n isActive: isPathActive(node.fullPath, activePath),\n children: markActiveRoutes(node.children, activePath),\n }));\n}\nfunction isPathActive(routePath, activePath) {\n if (routePath === '/') {\n return true;\n }\n if (activePath === routePath) {\n return true;\n }\n return activePath.startsWith(`${routePath}/`);\n}\n","export function createAngularAdapter(factory, options = {}) {\n var _a;\n return _a = class CeAngularBridge {\n constructor(host) {\n this.host = host;\n this.props = {};\n }\n setInput(key, value) {\n this.props = { ...this.props, [key]: value };\n const patch = { [key]: value };\n this.instance?.updateProps(patch);\n }\n ngOnInit() {\n this.instance = factory.mount({\n target: this.host.nativeElement,\n props: this.props,\n });\n }\n ngOnChanges(changes) {\n if (!this.instance) {\n return;\n }\n const next = {};\n Object.keys(changes).forEach(key => {\n const change = changes[key];\n if (change) {\n next[key] = change.currentValue;\n }\n });\n if (Object.keys(next).length) {\n this.instance.updateProps(next);\n }\n }\n ngOnDestroy() {\n this.instance?.destroy();\n }\n },\n _a.selector = options.selector,\n _a.inputs = options.inputs ?? [],\n _a;\n}\n","export function createReactAdapter(factory, react, options = {}) {\n const hostTag = options.hostElement ?? 'div';\n const Adapter = props => {\n const hostRef = react.useRef(null);\n const instanceRef = react.useRef(null);\n react.useEffect(() => {\n if (!hostRef.current) {\n return undefined;\n }\n instanceRef.current = factory.mount({\n target: hostRef.current,\n props: props,\n });\n return () => {\n instanceRef.current?.destroy();\n instanceRef.current = null;\n };\n }, []);\n react.useEffect(() => {\n if (instanceRef.current) {\n instanceRef.current.updateProps(props);\n }\n return undefined;\n }, [props]);\n const refCallback = (node) => {\n hostRef.current = node;\n };\n return react.createElement(hostTag, { ref: refCallback }, props.children ?? null);\n };\n if (options.displayName) {\n Adapter.displayName = options.displayName;\n }\n return Adapter;\n}\n","export function createVueAdapter(factory, vue, options = {}) {\n const hostTag = options.hostElement ?? 'div';\n const component = {\n name: options.displayName,\n setup(props, ctx) {\n const hostRef = vue.ref(null);\n let instance = null;\n vue.onMounted(() => {\n if (!hostRef.value) {\n return;\n }\n instance = factory.mount({\n target: hostRef.value,\n props: props,\n });\n });\n vue.watch(() => props, next => {\n if (instance) {\n instance.updateProps(next);\n }\n }, { deep: true });\n vue.onBeforeUnmount(() => {\n instance?.destroy();\n instance = null;\n });\n return () => vue.h(hostTag, { ref: hostRef }, ctx?.slots?.default ? ctx.slots.default() : null);\n },\n };\n return component;\n}\n"]}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/lib/icons.ts
|
|
4
|
+
function icon(name, options = {}) {
|
|
5
|
+
const el = document.createElement("ce-icon");
|
|
6
|
+
el.setAttribute("name", name);
|
|
7
|
+
if (options.size) {
|
|
8
|
+
el.setAttribute("size", options.size);
|
|
9
|
+
}
|
|
10
|
+
if (options.title) {
|
|
11
|
+
el.setAttribute("title", options.title);
|
|
12
|
+
}
|
|
13
|
+
if (options.className) {
|
|
14
|
+
el.className = options.className;
|
|
15
|
+
}
|
|
16
|
+
return el;
|
|
17
|
+
}
|
|
18
|
+
function iconHtml(name, options = {}) {
|
|
19
|
+
const attrs = [`name="${name}"`];
|
|
20
|
+
if (options.size) {
|
|
21
|
+
attrs.push(`size="${options.size}"`);
|
|
22
|
+
}
|
|
23
|
+
if (options.title) {
|
|
24
|
+
attrs.push(`title="${options.title}"`);
|
|
25
|
+
}
|
|
26
|
+
if (options.className) {
|
|
27
|
+
attrs.push(`class="${options.className}"`);
|
|
28
|
+
}
|
|
29
|
+
return `<ce-icon ${attrs.join(" ")}></ce-icon>`;
|
|
30
|
+
}
|
|
31
|
+
var ICONS = {
|
|
32
|
+
// Navigation
|
|
33
|
+
menu: "menu-3",
|
|
34
|
+
close: "xmark",
|
|
35
|
+
// E-commerce
|
|
36
|
+
cart: "cart-2",
|
|
37
|
+
star: "star",
|
|
38
|
+
heart: "heart",
|
|
39
|
+
// User
|
|
40
|
+
user: "user",
|
|
41
|
+
settings: "settings",
|
|
42
|
+
logout: "logout",
|
|
43
|
+
// Actions
|
|
44
|
+
search: "search",
|
|
45
|
+
filter: "filter",
|
|
46
|
+
sort: "sort",
|
|
47
|
+
edit: "edit",
|
|
48
|
+
delete: "trash",
|
|
49
|
+
add: "plus",
|
|
50
|
+
// Status
|
|
51
|
+
check: "check",
|
|
52
|
+
warning: "triangle-warning",
|
|
53
|
+
error: "xmark",
|
|
54
|
+
info: "info-circle"
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
exports.ICONS = ICONS;
|
|
58
|
+
exports.icon = icon;
|
|
59
|
+
exports.iconHtml = iconHtml;
|
|
60
|
+
//# sourceMappingURL=chunk-R6XQUMWT.cjs.map
|
|
61
|
+
//# sourceMappingURL=chunk-R6XQUMWT.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/icons.ts"],"names":[],"mappings":";;;AAgCO,SAAS,IAAA,CAAK,IAAA,EAAc,OAAA,GAAuB,EAAC,EAAgB;AACzE,EAAA,MAAM,EAAA,GAAK,QAAA,CAAS,aAAA,CAAc,SAAS,CAAA;AAC3C,EAAA,EAAA,CAAG,YAAA,CAAa,QAAQ,IAAI,CAAA;AAE5B,EAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,IAAA,EAAA,CAAG,YAAA,CAAa,MAAA,EAAQ,OAAA,CAAQ,IAAI,CAAA;AAAA,EACtC;AAEA,EAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,IAAA,EAAA,CAAG,YAAA,CAAa,OAAA,EAAS,OAAA,CAAQ,KAAK,CAAA;AAAA,EACxC;AAEA,EAAA,IAAI,QAAQ,SAAA,EAAW;AACrB,IAAA,EAAA,CAAG,YAAY,OAAA,CAAQ,SAAA;AAAA,EACzB;AAEA,EAAA,OAAO,EAAA;AACT;AASO,SAAS,QAAA,CAAS,IAAA,EAAc,OAAA,GAAuB,EAAC,EAAW;AACxE,EAAA,MAAM,KAAA,GAAkB,CAAC,CAAA,MAAA,EAAS,IAAI,CAAA,CAAA,CAAG,CAAA;AAEzC,EAAA,IAAI,QAAQ,IAAA,EAAM;AAChB,IAAA,KAAA,CAAM,IAAA,CAAK,CAAA,MAAA,EAAS,OAAA,CAAQ,IAAI,CAAA,CAAA,CAAG,CAAA;AAAA,EACrC;AAEA,EAAA,IAAI,QAAQ,KAAA,EAAO;AACjB,IAAA,KAAA,CAAM,IAAA,CAAK,CAAA,OAAA,EAAU,OAAA,CAAQ,KAAK,CAAA,CAAA,CAAG,CAAA;AAAA,EACvC;AAEA,EAAA,IAAI,QAAQ,SAAA,EAAW;AACrB,IAAA,KAAA,CAAM,IAAA,CAAK,CAAA,OAAA,EAAU,OAAA,CAAQ,SAAS,CAAA,CAAA,CAAG,CAAA;AAAA,EAC3C;AAEA,EAAA,OAAO,CAAA,SAAA,EAAY,KAAA,CAAM,IAAA,CAAK,GAAG,CAAC,CAAA,WAAA,CAAA;AACpC;AAKO,IAAM,KAAA,GAAQ;AAAA;AAAA,EAEnB,IAAA,EAAM,QAAA;AAAA,EACN,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,IAAA,EAAM,QAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,KAAA,EAAO,OAAA;AAAA;AAAA,EAGP,IAAA,EAAM,MAAA;AAAA,EACN,QAAA,EAAU,UAAA;AAAA,EACV,MAAA,EAAQ,QAAA;AAAA;AAAA,EAGR,MAAA,EAAQ,QAAA;AAAA,EACR,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,MAAA;AAAA,EACN,IAAA,EAAM,MAAA;AAAA,EACN,MAAA,EAAQ,OAAA;AAAA,EACR,GAAA,EAAK,MAAA;AAAA;AAAA,EAGL,KAAA,EAAO,OAAA;AAAA,EACP,OAAA,EAAS,kBAAA;AAAA,EACT,KAAA,EAAO,OAAA;AAAA,EACP,IAAA,EAAM;AACR","file":"chunk-R6XQUMWT.cjs","sourcesContent":["/**\n * Icon utilities for the CE E-Commerce application\n *\n * This module provides helper functions for working with icons using the <ce-icon> web component.\n *\n * @example\n * ```typescript\n * // Create an icon element\n * const cartIcon = icon('cart-2', { size: '24px', title: 'Shopping cart' });\n * element.appendChild(cartIcon);\n *\n * // Get icon HTML string for innerHTML\n * const menuHtml = iconHtml('menu-3', { size: '20px', title: 'Menu' });\n * ```\n */\n\nexport interface IconOptions {\n /** Size of the icon (CSS length: px, rem, em, %) */\n size?: string;\n /** Accessible label for the icon */\n title?: string;\n /** CSS class names to add to the icon element */\n className?: string;\n}\n\n/**\n * Create a <ce-icon> element programmatically\n *\n * @param name - Icon name from Nucleo set (e.g., 'cart-2', 'menu-3', 'user')\n * @param options - Icon configuration options\n * @returns HTMLElement - The ce-icon custom element\n */\nexport function icon(name: string, options: IconOptions = {}): HTMLElement {\n const el = document.createElement('ce-icon');\n el.setAttribute('name', name);\n\n if (options.size) {\n el.setAttribute('size', options.size);\n }\n\n if (options.title) {\n el.setAttribute('title', options.title);\n }\n\n if (options.className) {\n el.className = options.className;\n }\n\n return el;\n}\n\n/**\n * Get icon HTML string for use with innerHTML\n *\n * @param name - Icon name from Nucleo set\n * @param options - Icon configuration options\n * @returns string - HTML string of the ce-icon element\n */\nexport function iconHtml(name: string, options: IconOptions = {}): string {\n const attrs: string[] = [`name=\"${name}\"`];\n\n if (options.size) {\n attrs.push(`size=\"${options.size}\"`);\n }\n\n if (options.title) {\n attrs.push(`title=\"${options.title}\"`);\n }\n\n if (options.className) {\n attrs.push(`class=\"${options.className}\"`);\n }\n\n return `<ce-icon ${attrs.join(' ')}></ce-icon>`;\n}\n\n/**\n * Common icon names used in the application\n */\nexport const ICONS = {\n // Navigation\n menu: 'menu-3',\n close: 'xmark',\n\n // E-commerce\n cart: 'cart-2',\n star: 'star',\n heart: 'heart',\n\n // User\n user: 'user',\n settings: 'settings',\n logout: 'logout',\n\n // Actions\n search: 'search',\n filter: 'filter',\n sort: 'sort',\n edit: 'edit',\n delete: 'trash',\n add: 'plus',\n\n // Status\n check: 'check',\n warning: 'triangle-warning',\n error: 'xmark',\n info: 'info-circle',\n} as const;\n"]}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// src/runtime/error-bus.js
|
|
2
|
+
var reporters = [];
|
|
3
|
+
function registerRuntimeErrorReporters(next) {
|
|
4
|
+
reporters = [...next];
|
|
5
|
+
}
|
|
6
|
+
function addRuntimeErrorReporter(reporter) {
|
|
7
|
+
reporters = [...reporters, reporter];
|
|
8
|
+
}
|
|
9
|
+
function clearRuntimeErrorReporters() {
|
|
10
|
+
reporters = [];
|
|
11
|
+
}
|
|
12
|
+
function getRuntimeErrorReporters() {
|
|
13
|
+
return reporters;
|
|
14
|
+
}
|
|
15
|
+
function emitRuntimeErrorReport(report) {
|
|
16
|
+
reporters.forEach((reporter) => {
|
|
17
|
+
try {
|
|
18
|
+
void reporter.report(report);
|
|
19
|
+
} catch (error) {
|
|
20
|
+
if (typeof console !== "undefined") {
|
|
21
|
+
console.warn(`[ce-ui] Error reporter "${reporter.name}" failed`, error);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// src/runtime/router-utils.js
|
|
28
|
+
var MATCH_PARAM_REGEX = /:[^/]+/g;
|
|
29
|
+
function flattenRoutes(routes, parentPath = "", branch = []) {
|
|
30
|
+
const acc = [];
|
|
31
|
+
routes.forEach((route) => {
|
|
32
|
+
const fullPath = normalizePath(parentPath, route.path);
|
|
33
|
+
const nextBranch = [...branch, route];
|
|
34
|
+
acc.push({ route, branch: nextBranch, fullPath });
|
|
35
|
+
if (route.children?.length) {
|
|
36
|
+
acc.push(...flattenRoutes(route.children, fullPath, nextBranch));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return acc;
|
|
40
|
+
}
|
|
41
|
+
function normalizePath(parentPath, childPath) {
|
|
42
|
+
if (!childPath) {
|
|
43
|
+
return parentPath || "/";
|
|
44
|
+
}
|
|
45
|
+
if (childPath.startsWith("/")) {
|
|
46
|
+
return childPath;
|
|
47
|
+
}
|
|
48
|
+
const base = parentPath.endsWith("/") ? parentPath.slice(0, -1) : parentPath;
|
|
49
|
+
return `${base || ""}/${childPath}`.replace(/\/+/g, "/");
|
|
50
|
+
}
|
|
51
|
+
function matchRoute(path, pattern) {
|
|
52
|
+
const normalizedPattern = normalizePattern(pattern);
|
|
53
|
+
if (normalizedPattern === "*" || normalizedPattern === "/*") {
|
|
54
|
+
return {};
|
|
55
|
+
}
|
|
56
|
+
const normalizedPath = normalizePathname(path);
|
|
57
|
+
const paramNames = normalizedPattern.match(MATCH_PARAM_REGEX) ?? [];
|
|
58
|
+
const regex = new RegExp(`^${normalizedPattern.replace(MATCH_PARAM_REGEX, "([^/]+)")}$`);
|
|
59
|
+
const match = regex.exec(normalizedPath);
|
|
60
|
+
if (!match) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const params = {};
|
|
64
|
+
paramNames.forEach((name, index) => {
|
|
65
|
+
params[name.slice(1)] = match[index + 1];
|
|
66
|
+
});
|
|
67
|
+
return params;
|
|
68
|
+
}
|
|
69
|
+
function normalizePathname(path) {
|
|
70
|
+
const raw = path.split(/[?#]/)[0] || "/";
|
|
71
|
+
const withSlash = raw.startsWith("/") ? raw : `/${raw}`;
|
|
72
|
+
if (withSlash.length > 1 && withSlash.endsWith("/")) {
|
|
73
|
+
return withSlash.slice(0, -1);
|
|
74
|
+
}
|
|
75
|
+
return withSlash;
|
|
76
|
+
}
|
|
77
|
+
function normalizePattern(pattern) {
|
|
78
|
+
if (pattern === "*" || pattern === "/*") {
|
|
79
|
+
return pattern;
|
|
80
|
+
}
|
|
81
|
+
if (pattern.length > 1 && pattern.endsWith("/")) {
|
|
82
|
+
return pattern.slice(0, -1);
|
|
83
|
+
}
|
|
84
|
+
return pattern;
|
|
85
|
+
}
|
|
86
|
+
function getRouteId(route) {
|
|
87
|
+
return route.id ?? route.path;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export { addRuntimeErrorReporter, clearRuntimeErrorReporters, emitRuntimeErrorReport, flattenRoutes, getRouteId, getRuntimeErrorReporters, matchRoute, normalizePath, normalizePathname, registerRuntimeErrorReporters };
|
|
91
|
+
//# sourceMappingURL=chunk-SA5UD5B6.js.map
|
|
92
|
+
//# sourceMappingURL=chunk-SA5UD5B6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/runtime/error-bus.js","../src/runtime/router-utils.js"],"names":[],"mappings":"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","file":"chunk-SA5UD5B6.js","sourcesContent":["let reporters = [];\n\nexport function registerRuntimeErrorReporters(next) {\n reporters = [...next];\n}\n\nexport function addRuntimeErrorReporter(reporter) {\n reporters = [...reporters, reporter];\n}\n\nexport function clearRuntimeErrorReporters() {\n reporters = [];\n}\n\nexport function getRuntimeErrorReporters() {\n return reporters;\n}\n\nexport function emitRuntimeErrorReport(report) {\n reporters.forEach(reporter => {\n try {\n void reporter.report(report);\n } catch (error) {\n if (typeof console !== 'undefined') {\n console.warn(`[ce-ui] Error reporter \"${reporter.name}\" failed`, error);\n }\n }\n });\n}\n","const MATCH_PARAM_REGEX = /:[^/]+/g;\n\nexport function flattenRoutes(routes, parentPath = '', branch = []) {\n const acc = [];\n routes.forEach(route => {\n const fullPath = normalizePath(parentPath, route.path);\n const nextBranch = [...branch, route];\n acc.push({ route, branch: nextBranch, fullPath });\n if (route.children?.length) {\n acc.push(...flattenRoutes(route.children, fullPath, nextBranch));\n }\n });\n return acc;\n}\n\nexport function normalizePath(parentPath, childPath) {\n if (!childPath) {\n return parentPath || '/';\n }\n if (childPath.startsWith('/')) {\n return childPath;\n }\n const base = parentPath.endsWith('/') ? parentPath.slice(0, -1) : parentPath;\n return `${base || ''}/${childPath}`.replace(/\\/+/g, '/');\n}\n\nexport function matchRoute(path, pattern) {\n const normalizedPattern = normalizePattern(pattern);\n if (normalizedPattern === '*' || normalizedPattern === '/*') {\n return {};\n }\n const normalizedPath = normalizePathname(path);\n const paramNames = normalizedPattern.match(MATCH_PARAM_REGEX) ?? [];\n const regex = new RegExp(`^${normalizedPattern.replace(MATCH_PARAM_REGEX, '([^/]+)')}$`);\n const match = regex.exec(normalizedPath);\n if (!match) {\n return null;\n }\n const params = {};\n paramNames.forEach((name, index) => {\n params[name.slice(1)] = match[index + 1];\n });\n return params;\n}\n\nexport function normalizePathname(path) {\n const raw = path.split(/[?#]/)[0] || '/';\n const withSlash = raw.startsWith('/') ? raw : `/${raw}`;\n if (withSlash.length > 1 && withSlash.endsWith('/')) {\n return withSlash.slice(0, -1);\n }\n return withSlash;\n}\n\nexport function normalizePattern(pattern) {\n if (pattern === '*' || pattern === '/*') {\n return pattern;\n }\n if (pattern.length > 1 && pattern.endsWith('/')) {\n return pattern.slice(0, -1);\n }\n return pattern;\n}\n\nexport function getRouteId(route) {\n return route.id ?? route.path;\n}\n"]}
|