@uniweb/runtime 0.6.19 → 0.6.20
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/package.json +2 -2
- package/src/components/WebsiteRenderer.jsx +1 -1
- package/src/hooks/useRememberScroll.js +61 -17
- package/dist/app/_importmap/@uniweb-core.js +0 -2
- package/dist/app/_importmap/@uniweb-core.js.map +0 -1
- package/dist/app/_importmap/react-dom.js +0 -2
- package/dist/app/_importmap/react-dom.js.map +0 -1
- package/dist/app/_importmap/react-jsx-dev-runtime.js +0 -2
- package/dist/app/_importmap/react-jsx-dev-runtime.js.map +0 -1
- package/dist/app/_importmap/react-jsx-runtime.js +0 -2
- package/dist/app/_importmap/react-jsx-runtime.js.map +0 -1
- package/dist/app/_importmap/react.js +0 -2
- package/dist/app/_importmap/react.js.map +0 -1
- package/dist/app/assets/_commonjsHelpers-CqkleIqs.js +0 -2
- package/dist/app/assets/_commonjsHelpers-CqkleIqs.js.map +0 -1
- package/dist/app/assets/_importmap_react-dWoQamCw.js +0 -2
- package/dist/app/assets/_importmap_react-dWoQamCw.js.map +0 -1
- package/dist/app/assets/index-C0udIITE.js +0 -9
- package/dist/app/assets/index-C0udIITE.js.map +0 -1
- package/dist/app/assets/index-C6TPxGbh.js +0 -133
- package/dist/app/assets/index-C6TPxGbh.js.map +0 -1
- package/dist/app/assets/index-CsyMBO9p.js +0 -8
- package/dist/app/assets/index-CsyMBO9p.js.map +0 -1
- package/dist/app/assets/index-kA4PVysc.js +0 -2
- package/dist/app/assets/index-kA4PVysc.js.map +0 -1
- package/dist/app/assets/jsx-runtime-C3x2e0aW.js +0 -2
- package/dist/app/assets/jsx-runtime-C3x2e0aW.js.map +0 -1
- package/dist/app/index.html +0 -31
- package/dist/app/manifest.json +0 -19
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uniweb/runtime",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.20",
|
|
4
4
|
"description": "Minimal runtime for loading Uniweb foundations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@vitejs/plugin-react": "^4.5.2",
|
|
43
43
|
"vite": "^7.3.1",
|
|
44
|
-
"@uniweb/build": "0.8.
|
|
44
|
+
"@uniweb/build": "0.8.23"
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -15,7 +15,7 @@ import { useLinkInterceptor } from '../hooks/useLinkInterceptor.js'
|
|
|
15
15
|
* WebsiteRenderer component
|
|
16
16
|
*/
|
|
17
17
|
export default function WebsiteRenderer() {
|
|
18
|
-
const website = globalThis.uniweb
|
|
18
|
+
const website = globalThis.uniweb.activeWebsite
|
|
19
19
|
|
|
20
20
|
// Apply default appearance scheme (light/dark/system) on mount
|
|
21
21
|
useEffect(() => {
|
|
@@ -12,12 +12,22 @@
|
|
|
12
12
|
* - Skips when location.hash is present (defers to useLinkInterceptor)
|
|
13
13
|
* - Optionally resets block states on scroll restoration
|
|
14
14
|
*
|
|
15
|
+
* Scroll container:
|
|
16
|
+
* The scroll container is determined by the current page's layout metadata.
|
|
17
|
+
* Layouts declare a `scroll` property in meta.js:
|
|
18
|
+
* - Not set: runtime manages scroll on `window` (default)
|
|
19
|
+
* - 'self': layout manages its own scrolling; runtime disables
|
|
20
|
+
* - CSS selector (e.g. 'main'): runtime manages scroll on that element
|
|
21
|
+
* A foundation-level `scroll` in foundation.js serves as the default for
|
|
22
|
+
* all layouts that don't declare their own.
|
|
23
|
+
*
|
|
15
24
|
* Implementation note:
|
|
16
|
-
* Uniweb scrolls `window` (not a fixed-size container). When
|
|
17
|
-
* page content, the browser may clamp scrollY and fire scroll
|
|
18
|
-
* useEffect runs. To prevent those events from corrupting
|
|
19
|
-
* of the page we're leaving, useLayoutEffect captures
|
|
20
|
-
* updates the location key ref synchronously — before
|
|
25
|
+
* Uniweb scrolls `window` by default (not a fixed-size container). When
|
|
26
|
+
* React swaps page content, the browser may clamp scrollY and fire scroll
|
|
27
|
+
* events BEFORE useEffect runs. To prevent those events from corrupting
|
|
28
|
+
* the saved position of the page we're leaving, useLayoutEffect captures
|
|
29
|
+
* the target value and updates the location key ref synchronously — before
|
|
30
|
+
* any scroll events.
|
|
21
31
|
*/
|
|
22
32
|
|
|
23
33
|
import { useEffect, useLayoutEffect, useRef, useCallback } from 'react'
|
|
@@ -26,6 +36,30 @@ import { useLocation, useNavigationType } from 'react-router-dom'
|
|
|
26
36
|
/** In-memory scroll positions keyed by React Router's location.key. */
|
|
27
37
|
const scrollPositions = new Map()
|
|
28
38
|
|
|
39
|
+
/** Read scroll position from window or element. */
|
|
40
|
+
function getScrollY(container) {
|
|
41
|
+
return container === window ? window.scrollY : container.scrollTop
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Resolve the scroll container for the current page's layout.
|
|
46
|
+
*
|
|
47
|
+
* @returns {Element|Window|null} - scroll target, or null if layout manages its own
|
|
48
|
+
*/
|
|
49
|
+
function resolveScrollContainer() {
|
|
50
|
+
const website = globalThis.uniweb.activeWebsite
|
|
51
|
+
const layoutName = website.activePage.getLayoutName()
|
|
52
|
+
const layoutMeta = layoutName ? website.getLayoutMeta(layoutName) : null
|
|
53
|
+
|
|
54
|
+
const scroll = layoutMeta?.scroll
|
|
55
|
+
?? globalThis.uniweb.foundationConfig?.scroll
|
|
56
|
+
?? null
|
|
57
|
+
|
|
58
|
+
if (scroll === 'self') return null
|
|
59
|
+
if (scroll) return document.querySelector(scroll) || window
|
|
60
|
+
return window
|
|
61
|
+
}
|
|
62
|
+
|
|
29
63
|
/**
|
|
30
64
|
* useRememberScroll hook
|
|
31
65
|
*
|
|
@@ -40,21 +74,28 @@ export function useRememberScroll(options = {}) {
|
|
|
40
74
|
const navigationType = useNavigationType()
|
|
41
75
|
const locationKeyRef = useRef(location.key)
|
|
42
76
|
const savedScrollRef = useRef(null)
|
|
77
|
+
const containerRef = useRef(window)
|
|
43
78
|
|
|
44
79
|
// Continuously save scroll position for the current location
|
|
45
80
|
const handleScroll = useCallback(() => {
|
|
46
|
-
|
|
81
|
+
const container = containerRef.current
|
|
82
|
+
if (!container) return
|
|
83
|
+
scrollPositions.set(locationKeyRef.current, getScrollY(container))
|
|
47
84
|
}, [])
|
|
48
85
|
|
|
86
|
+
// Attach scroll listener to the current container.
|
|
87
|
+
// Re-attaches on navigation since the container may change per-layout.
|
|
49
88
|
useEffect(() => {
|
|
50
89
|
if (!enabled) return
|
|
90
|
+
const container = containerRef.current
|
|
91
|
+
if (!container) return
|
|
51
92
|
|
|
52
|
-
|
|
53
|
-
return () =>
|
|
54
|
-
}, [enabled, handleScroll])
|
|
93
|
+
container.addEventListener('scroll', handleScroll, { passive: true })
|
|
94
|
+
return () => container.removeEventListener('scroll', handleScroll)
|
|
95
|
+
}, [location.key, enabled, handleScroll])
|
|
55
96
|
|
|
56
|
-
// Synchronously capture saved scroll
|
|
57
|
-
// scroll events can fire
|
|
97
|
+
// Synchronously capture saved scroll, update key, and resolve container
|
|
98
|
+
// BEFORE browser scroll events can fire and corrupt the departing page's value.
|
|
58
99
|
useLayoutEffect(() => {
|
|
59
100
|
if (navigationType === 'POP') {
|
|
60
101
|
savedScrollRef.current = scrollPositions.get(location.key) ?? null
|
|
@@ -62,16 +103,19 @@ export function useRememberScroll(options = {}) {
|
|
|
62
103
|
savedScrollRef.current = null
|
|
63
104
|
}
|
|
64
105
|
locationKeyRef.current = location.key
|
|
65
|
-
|
|
106
|
+
containerRef.current = enabled ? resolveScrollContainer() : null
|
|
107
|
+
}, [location.key, navigationType, enabled])
|
|
66
108
|
|
|
67
109
|
// On navigation: restore on POP, scroll to top on PUSH/REPLACE
|
|
68
110
|
useEffect(() => {
|
|
69
111
|
if (!enabled) return
|
|
112
|
+
const container = containerRef.current
|
|
113
|
+
if (!container) return
|
|
70
114
|
|
|
71
115
|
// Reset block states if requested (for animations, etc.)
|
|
72
116
|
if (resetBlockStates) {
|
|
73
|
-
const page = globalThis.uniweb
|
|
74
|
-
if (
|
|
117
|
+
const page = globalThis.uniweb.activeWebsite.activePage
|
|
118
|
+
if (typeof page.resetBlockStates === 'function') {
|
|
75
119
|
page.resetBlockStates()
|
|
76
120
|
}
|
|
77
121
|
}
|
|
@@ -89,8 +133,8 @@ export function useRememberScroll(options = {}) {
|
|
|
89
133
|
let raf
|
|
90
134
|
let attempts = 0
|
|
91
135
|
const tryRestore = () => {
|
|
92
|
-
|
|
93
|
-
if (Math.abs(
|
|
136
|
+
container.scrollTo(0, saved)
|
|
137
|
+
if (Math.abs(getScrollY(container) - saved) > 5 && attempts < 30) {
|
|
94
138
|
attempts++
|
|
95
139
|
raf = requestAnimationFrame(tryRestore)
|
|
96
140
|
}
|
|
@@ -99,7 +143,7 @@ export function useRememberScroll(options = {}) {
|
|
|
99
143
|
|
|
100
144
|
return () => cancelAnimationFrame(raf)
|
|
101
145
|
} else {
|
|
102
|
-
|
|
146
|
+
container.scrollTo(0, 0)
|
|
103
147
|
}
|
|
104
148
|
}, [location.key, navigationType, enabled, resetBlockStates, location.hash])
|
|
105
149
|
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{B as h,P as g,U as p,W as _,c as f,g as d}from"../assets/index-C6TPxGbh.js";const a=[50,100,200,300,400,500,600,700,800,900,950],r=["light","medium","dark"],n={light:{bg:"var(--neutral-50)",text:"var(--neutral-950)",heading:"var(--neutral-900)",link:"var(--primary-600)"},medium:{bg:"var(--neutral-100)",text:"var(--neutral-950)",heading:"var(--neutral-900)",link:"var(--primary-600)"},dark:{bg:"var(--neutral-900)",text:"var(--neutral-50)",heading:"white",link:"var(--primary-400)"}};class i{constructor(t={}){this._data=t,this._palettes=t.palettes||t.colors||{},this._rawColors=t.colors||{},this._contexts=t.contexts||{},this._fonts=t.fonts||{},this._appearance=t.appearance||{default:"light"},this._foundationVars=t.foundationVars||{},this._css=t.css||null,Object.seal(this)}get css(){return this._css}get data(){return this._data}getColor(t,e=500){const s=this._palettes[t];return s&&s[e]||null}getPalette(t){return this._palettes[t]||null}getPaletteNames(){return Object.keys(this._palettes)}hasPalette(t){return t in this._palettes}getColorVar(t,e=500){return`var(--${t}-${e})`}getContextToken(t,e){const s=this._contexts[t];return s&&s[e]?s[e]:n[t]?.[e]||null}getContextTokens(t){const e=n[t]||{},s=this._contexts[t]||{};return{...e,...s}}getContextClass(t){return r.includes(t)?`context-${t}`:(console.warn(`Invalid context: ${t}. Using 'light'.`),"context-light")}isValidContext(t){return r.includes(t)}getValidContexts(){return[...r]}getAppearance(){return{default:this._appearance.default||"light",allowToggle:this._appearance.allowToggle||!1,respectSystemPreference:this._appearance.respectSystemPreference??!0,schemes:this._appearance.schemes||["light"]}}getDefaultScheme(){return this._appearance.default||"light"}supportsScheme(t){return(this._appearance.schemes||["light"]).includes(t)}hasSchemeToggle(){return this._appearance.allowToggle===!0}getSchemeClass(t){return`scheme-${t}`}getFonts(){return{...this._fonts}}getFont(t){return this._fonts[t]||null}getFontVar(t){return`var(--font-${t})`}getFoundationVar(t){const e=this._foundationVars[t];return e?typeof e=="object"?e.default:e:null}getFoundationVars(){const t={};for(const[e,s]of Object.entries(this._foundationVars))t[e]=typeof s=="object"?s.default:s;return t}getFoundationVarRef(t){return`var(--${t})`}getShadeLevels(){return[...a]}hasCustomization(){return Object.keys(this._palettes).length>0||Object.keys(this._contexts).length>0||Object.keys(this._fonts).length>0}toJSON(){return{palettes:this._palettes,colors:this._rawColors,contexts:this._contexts,fonts:this._fonts,appearance:this._appearance,foundationVars:this._foundationVars}}}export{h as Block,g as Page,i as Theme,p as Uniweb,_ as Website,f as createUniweb,d as getUniweb};
|
|
2
|
-
//# sourceMappingURL=@uniweb-core.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"@uniweb-core.js","sources":["../../../../core/src/theme.js"],"sourcesContent":["/**\n * Theme Class\n *\n * Runtime representation of a site's theme configuration.\n * Provides access to colors, semantic tokens, and appearance settings.\n *\n * @module @uniweb/core/theme\n */\n\n// Standard shade levels\nconst SHADE_LEVELS = [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950]\n\n// Valid color contexts\nconst VALID_CONTEXTS = ['light', 'medium', 'dark']\n\n// Default semantic tokens by context\nconst DEFAULT_CONTEXT_TOKENS = {\n light: {\n bg: 'var(--neutral-50)',\n text: 'var(--neutral-950)',\n heading: 'var(--neutral-900)',\n link: 'var(--primary-600)',\n },\n medium: {\n bg: 'var(--neutral-100)',\n text: 'var(--neutral-950)',\n heading: 'var(--neutral-900)',\n link: 'var(--primary-600)',\n },\n dark: {\n bg: 'var(--neutral-900)',\n text: 'var(--neutral-50)',\n heading: 'white',\n link: 'var(--primary-400)',\n },\n}\n\n/**\n * Theme class for runtime theme access\n */\nexport default class Theme {\n /**\n * Create a Theme instance\n *\n * @param {Object} themeData - Processed theme data from build\n * @param {Object} themeData.palettes - Generated color palettes (name → { shade → value })\n * @param {Object} themeData.colors - Raw colors (for reference)\n * @param {Object} themeData.contexts - Context token overrides\n * @param {Object} themeData.fonts - Font configuration\n * @param {Object} themeData.appearance - Appearance settings\n * @param {Object} themeData.foundationVars - Foundation variables\n * @param {string} themeData.css - Pre-generated CSS (optional)\n */\n constructor(themeData = {}) {\n this._data = themeData\n // Use palettes if available, fall back to colors for backwards compatibility\n this._palettes = themeData.palettes || themeData.colors || {}\n this._rawColors = themeData.colors || {}\n this._contexts = themeData.contexts || {}\n this._fonts = themeData.fonts || {}\n this._appearance = themeData.appearance || { default: 'light' }\n this._foundationVars = themeData.foundationVars || {}\n this._css = themeData.css || null\n\n Object.seal(this)\n }\n\n /**\n * Get the pre-generated CSS string\n * @returns {string|null}\n */\n get css() {\n return this._css\n }\n\n /**\n * Get the raw theme data\n * @returns {Object}\n */\n get data() {\n return this._data\n }\n\n // ============================================================\n // Color Access\n // ============================================================\n\n /**\n * Get a color value from a palette\n *\n * @param {string} name - Palette name (e.g., 'primary', 'neutral')\n * @param {number} shade - Shade level (50-950), defaults to 500\n * @returns {string|null} Color value (oklch string) or null if not found\n *\n * @example\n * theme.getColor('primary', 500) // → \"oklch(55.0% 0.2000 260.0)\"\n * theme.getColor('primary') // → same as above (500 is default)\n */\n getColor(name, shade = 500) {\n const palette = this._palettes[name]\n if (!palette) return null\n\n return palette[shade] || null\n }\n\n /**\n * Get all shades for a color palette\n *\n * @param {string} name - Palette name\n * @returns {Object|null} Object with shade levels as keys, or null\n *\n * @example\n * theme.getPalette('primary')\n * // → { 50: \"oklch(...)\", 100: \"oklch(...)\", ... }\n */\n getPalette(name) {\n return this._palettes[name] || null\n }\n\n /**\n * Get all available palette names\n *\n * @returns {string[]} Array of palette names\n */\n getPaletteNames() {\n return Object.keys(this._palettes)\n }\n\n /**\n * Check if a palette exists\n *\n * @param {string} name - Palette name\n * @returns {boolean}\n */\n hasPalette(name) {\n return name in this._palettes\n }\n\n /**\n * Get a CSS variable reference for a color\n *\n * @param {string} name - Palette name\n * @param {number} shade - Shade level\n * @returns {string} CSS var() reference\n *\n * @example\n * theme.getColorVar('primary', 600) // → \"var(--primary-600)\"\n */\n getColorVar(name, shade = 500) {\n return `var(--${name}-${shade})`\n }\n\n // ============================================================\n // Context Access\n // ============================================================\n\n /**\n * Get a semantic token value for a context\n *\n * @param {string} context - Context name ('light', 'medium', 'dark')\n * @param {string} token - Token name (e.g., 'bg', 'text', 'link')\n * @returns {string|null} Token value or null\n *\n * @example\n * theme.getContextToken('light', 'bg') // → \"var(--neutral-50)\"\n * theme.getContextToken('dark', 'text') // → \"var(--neutral-50)\"\n */\n getContextToken(context, token) {\n // Check custom context tokens first\n const customContext = this._contexts[context]\n if (customContext && customContext[token]) {\n return customContext[token]\n }\n\n // Fall back to defaults\n const defaults = DEFAULT_CONTEXT_TOKENS[context]\n return defaults?.[token] || null\n }\n\n /**\n * Get all tokens for a context\n *\n * @param {string} context - Context name\n * @returns {Object} Token name → value mapping\n */\n getContextTokens(context) {\n const defaults = DEFAULT_CONTEXT_TOKENS[context] || {}\n const custom = this._contexts[context] || {}\n return { ...defaults, ...custom }\n }\n\n /**\n * Get the CSS class name for a context\n *\n * @param {string} context - Context name\n * @returns {string} CSS class name\n *\n * @example\n * theme.getContextClass('dark') // → \"context-dark\"\n */\n getContextClass(context) {\n if (!VALID_CONTEXTS.includes(context)) {\n console.warn(`Invalid context: ${context}. Using 'light'.`)\n return 'context-light'\n }\n return `context-${context}`\n }\n\n /**\n * Check if a context is valid\n *\n * @param {string} context - Context name\n * @returns {boolean}\n */\n isValidContext(context) {\n return VALID_CONTEXTS.includes(context)\n }\n\n /**\n * Get all valid context names\n *\n * @returns {string[]}\n */\n getValidContexts() {\n return [...VALID_CONTEXTS]\n }\n\n // ============================================================\n // Appearance (Color Scheme)\n // ============================================================\n\n /**\n * Get appearance configuration\n *\n * @returns {Object} Appearance settings\n * @property {string} default - Default scheme ('light', 'dark', 'system')\n * @property {boolean} allowToggle - Whether scheme toggle is enabled\n * @property {boolean} respectSystemPreference - Honor prefers-color-scheme\n * @property {string[]} schemes - Available schemes\n */\n getAppearance() {\n return {\n default: this._appearance.default || 'light',\n allowToggle: this._appearance.allowToggle || false,\n respectSystemPreference: this._appearance.respectSystemPreference ?? true,\n schemes: this._appearance.schemes || ['light'],\n }\n }\n\n /**\n * Get the default color scheme\n *\n * @returns {string} 'light', 'dark', or 'system'\n */\n getDefaultScheme() {\n return this._appearance.default || 'light'\n }\n\n /**\n * Check if a color scheme is supported\n *\n * @param {string} scheme - Scheme name\n * @returns {boolean}\n */\n supportsScheme(scheme) {\n const schemes = this._appearance.schemes || ['light']\n return schemes.includes(scheme)\n }\n\n /**\n * Check if scheme toggle is enabled\n *\n * @returns {boolean}\n */\n hasSchemeToggle() {\n return this._appearance.allowToggle === true\n }\n\n /**\n * Get the CSS class for a scheme\n *\n * @param {string} scheme - Scheme name\n * @returns {string} CSS class name\n *\n * @example\n * theme.getSchemeClass('dark') // → \"scheme-dark\"\n */\n getSchemeClass(scheme) {\n return `scheme-${scheme}`\n }\n\n // ============================================================\n // Fonts\n // ============================================================\n\n /**\n * Get font configuration\n *\n * @returns {Object} Font settings\n */\n getFonts() {\n return { ...this._fonts }\n }\n\n /**\n * Get a specific font family\n *\n * @param {string} type - Font type ('body', 'heading', 'mono')\n * @returns {string|null} Font family string or null\n */\n getFont(type) {\n return this._fonts[type] || null\n }\n\n /**\n * Get CSS variable reference for a font\n *\n * @param {string} type - Font type\n * @returns {string} CSS var() reference\n */\n getFontVar(type) {\n return `var(--font-${type})`\n }\n\n // ============================================================\n // Foundation Variables\n // ============================================================\n\n /**\n * Get a foundation variable value\n *\n * @param {string} name - Variable name\n * @returns {string|null} Variable value or null\n */\n getFoundationVar(name) {\n const config = this._foundationVars[name]\n if (!config) return null\n return typeof config === 'object' ? config.default : config\n }\n\n /**\n * Get all foundation variables\n *\n * @returns {Object} Variable name → value mapping\n */\n getFoundationVars() {\n const vars = {}\n for (const [name, config] of Object.entries(this._foundationVars)) {\n vars[name] = typeof config === 'object' ? config.default : config\n }\n return vars\n }\n\n /**\n * Get CSS variable reference for a foundation variable\n *\n * @param {string} name - Variable name\n * @returns {string} CSS var() reference\n */\n getFoundationVarRef(name) {\n return `var(--${name})`\n }\n\n // ============================================================\n // Utility Methods\n // ============================================================\n\n /**\n * Get all shade levels\n *\n * @returns {number[]}\n */\n getShadeLevels() {\n return [...SHADE_LEVELS]\n }\n\n /**\n * Check if theme has any custom configuration\n *\n * @returns {boolean}\n */\n hasCustomization() {\n return (\n Object.keys(this._palettes).length > 0 ||\n Object.keys(this._contexts).length > 0 ||\n Object.keys(this._fonts).length > 0\n )\n }\n\n /**\n * Convert theme to a plain object (for serialization)\n *\n * @returns {Object}\n */\n toJSON() {\n return {\n palettes: this._palettes,\n colors: this._rawColors,\n contexts: this._contexts,\n fonts: this._fonts,\n appearance: this._appearance,\n foundationVars: this._foundationVars,\n }\n }\n}\n"],"names":["SHADE_LEVELS","VALID_CONTEXTS","DEFAULT_CONTEXT_TOKENS","Theme","themeData","name","shade","palette","context","token","customContext","defaults","custom","scheme","type","config","vars"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{g as e}from"../assets/_commonjsHelpers-CqkleIqs.js";import{r as o}from"../assets/index-C0udIITE.js";import"../assets/index-kA4PVysc.js";var t=o();const s=e(t),_=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,c=t.createPortal,d=t.createRoot,u=t.findDOMNode,E=t.flushSync,R=t.hydrate,m=t.hydrateRoot,i=t.render,l=t.unmountComponentAtNode,p=t.unstable_batchedUpdates,N=t.unstable_renderSubtreeIntoContainer,O=t.version;export{_ as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,c as createPortal,d as createRoot,s as default,u as findDOMNode,E as flushSync,R as hydrate,m as hydrateRoot,i as render,l as unmountComponentAtNode,p as unstable_batchedUpdates,N as unstable_renderSubtreeIntoContainer,O as version};
|
|
2
|
-
//# sourceMappingURL=react-dom.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react-dom.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{g as s}from"../assets/_commonjsHelpers-CqkleIqs.js";var r={exports:{}},e={};var n;function u(){if(n)return e;n=1;var o=Symbol.for("react.fragment");return e.Fragment=o,e.jsxDEV=void 0,e}var i;function a(){return i||(i=1,r.exports=u()),r.exports}var t=a();const x=s(t),v=t.Fragment,c=t.jsxDEV;export{v as Fragment,x as default,c as jsxDEV};
|
|
2
|
-
//# sourceMappingURL=react-jsx-dev-runtime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react-jsx-dev-runtime.js","sources":["../../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-dev-runtime.production.min.js","../../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-dev-runtime.js"],"sourcesContent":["/**\n * @license React\n * react-jsx-dev-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var a=Symbol.for(\"react.fragment\");exports.Fragment=a;exports.jsxDEV=void 0;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-dev-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-dev-runtime.development.js');\n}\n"],"names":["a","reactJsxDevRuntime_production_min","jsxDevRuntimeModule","require$$0"],"mappings":"wHASa,IAAIA,EAAE,OAAO,IAAI,gBAAgB,EAAE,OAAAC,WAAiBD,EAAEC,EAAA,OAAe,2CCNhFC,EAAA,QAAiBC,EAAA","x_google_ignoreList":[0,1]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{j as s}from"../assets/jsx-runtime-C3x2e0aW.js";import{a as n}from"../assets/jsx-runtime-C3x2e0aW.js";import"../assets/_commonjsHelpers-CqkleIqs.js";import"../assets/index-kA4PVysc.js";const m=s.Fragment,x=s.jsx,a=s.jsxs;export{m as Fragment,n as default,x as jsx,a as jsxs};
|
|
2
|
-
//# sourceMappingURL=react-jsx-runtime.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react-jsx-runtime.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"../assets/_importmap_react-dWoQamCw.js";import{R as H}from"../assets/_importmap_react-dWoQamCw.js";import"../assets/_commonjsHelpers-CqkleIqs.js";import"../assets/index-kA4PVysc.js";const o=e.Children,c=e.Component,r=e.Fragment,a=e.Profiler,u=e.PureComponent,l=e.StrictMode,f=e.Suspense,i=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,E=e.act,m=e.cloneElement,_=e.createContext,d=e.createElement,R=e.createFactory,S=e.createRef,p=e.forwardRef,C=e.isValidElement,I=e.lazy,T=e.memo,x=e.startTransition,y=e.unstable_act,D=e.useCallback,L=e.useContext,O=e.useDebugValue,b=e.useDeferredValue,F=e.useEffect,N=e.useId,V=e.useImperativeHandle,g=e.useInsertionEffect,v=e.useLayoutEffect,M=e.useMemo,P=e.useReducer,U=e.useRef,h=e.useState,k=e.useSyncExternalStore,w=e.useTransition,z=e.version;export{o as Children,c as Component,r as Fragment,a as Profiler,u as PureComponent,l as StrictMode,f as Suspense,i as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,E as act,m as cloneElement,_ as createContext,d as createElement,R as createFactory,S as createRef,H as default,p as forwardRef,C as isValidElement,I as lazy,T as memo,x as startTransition,y as unstable_act,D as useCallback,L as useContext,O as useDebugValue,b as useDeferredValue,F as useEffect,N as useId,V as useImperativeHandle,g as useInsertionEffect,v as useLayoutEffect,M as useMemo,P as useReducer,U as useRef,h as useState,k as useSyncExternalStore,w as useTransition,z as version};
|
|
2
|
-
//# sourceMappingURL=react.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"react.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_commonjsHelpers-CqkleIqs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_importmap_react-dWoQamCw.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|