flexium
Version:
A lightweight, signals-based UI framework with cross-platform renderers
1 lines • 2.59 kB
Source Map (JSON)
{"version":3,"sources":["../src/index.ts"],"names":["state","initialValueOrFetcher","options","getter","setter","renderFn","For"],"mappings":"i4BAaA,SAASA,CAAAA,CACPC,CAAAA,CACAC,GAAAA,CACkC,CAClC,GAAM,CAACC,CAAAA,CAAQC,CAAM,CAAA,CAAIJ,EAAUC,CAAAA,CAAuBC,GAAO,CAAA,CAIjE,OAACC,EAAe,GAAA,CAAOE,CAAAA,GAEd,CACH,IAAA,CAAMC,IACN,KAAA,CAAO,CAAE,IAAA,CAAMH,CAAO,EACtB,QAAA,CAAU,CAACE,CAAQ,CAAA,CACnB,IAAK,IACT,CAAA,CAAA,CAGK,CAACF,CAAAA,CAAQC,CAAM,CACxB","file":"index.mjs","sourcesContent":["/**\n * Flexium - Next-generation UI/UX library\n *\n * Core exports for signal-based reactivity system\n */\n\n// Core reactivity primitives\nexport { effect, batch, untrack, root, onMount } from './core/signal'\nimport { state as coreState, clearGlobalState } from './core/state'\nimport { StateGetter, StateSetter } from './core/state'\nimport { For } from './core/flow'\n\n// Enhanced state function with .map helper\nfunction state<T>(\n initialValueOrFetcher: T | ((...args: any[]) => T | Promise<T>), \n options?: { key?: string }\n): [StateGetter<T>, StateSetter<T>] {\n const [getter, setter] = coreState(initialValueOrFetcher, options);\n \n // Inject .map for list rendering optimization\n // Usage: { list.map(item => <div>{item}</div>) }\n (getter as any).map = (renderFn: (item: T extends (infer U)[] ? U : any, index: () => number) => any) => {\n // Return a VNode for <For>\n return {\n type: For,\n props: { each: getter },\n children: [renderFn],\n key: null\n };\n };\n \n return [getter, setter];\n}\n\nexport { state, clearGlobalState }\nexport { For, Show, Switch, Match } from './core/flow'\nexport { Suspense } from './core/suspense'\nexport { Portal } from './renderers/dom/portal'\n// Export types\nexport type { StateGetter, StateSetter } from './core/state'\n\n// Context\nexport { createContext, useContext } from './core/context'\nexport type { Context } from './core/context'\n\n// Router\nexport * from './router'\nexport { Outlet } from './router/components' // Explicitly export Outlet if not covered by *\n\n// Store\nexport * from './store'\n\n// Cross-platform primitives\nexport {\n View,\n Text,\n Image,\n Pressable,\n ScrollView,\n Canvas,\n Rect,\n Circle,\n Path,\n CanvasText,\n Line,\n Arc,\n normalizeStyle,\n} from './primitives'\n\nexport type {\n ViewProps,\n TextProps,\n ImageProps,\n PressableProps,\n ScrollViewProps,\n CommonStyle,\n TextStyle,\n RectProps,\n CircleProps,\n PathProps,\n CanvasTextProps,\n LineProps,\n ArcProps,\n CanvasProps,\n} from './primitives'\n"]}