@epoch32/visage 0.0.0-stage → 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.
Files changed (135) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +110 -2
  3. package/dist/src/api/index.js +4002 -0
  4. package/dist/src/charts/index.js +2717 -0
  5. package/dist/src/devtools/index.js +4677 -0
  6. package/dist/src/dom/index.js +1550 -0
  7. package/dist/src/form/index.js +1415 -0
  8. package/dist/src/index.js +11826 -0
  9. package/dist/src/jsx-runtime/index.js +1630 -0
  10. package/dist/src/query/index.js +2422 -0
  11. package/dist/src/router/index.js +1856 -0
  12. package/dist/src/rpc/index.js +3484 -0
  13. package/dist/src/server/index.js +1173 -0
  14. package/dist/src/signals/index.js +1077 -0
  15. package/dist/src/style/index.js +2340 -0
  16. package/dist/src/template/index.js +1149 -0
  17. package/dist/src/ui/index.js +4155 -0
  18. package/dist/src/virtual/index.js +1955 -0
  19. package/dist/src/vite/index.js +984 -0
  20. package/package.json +140 -4
  21. package/src/api/client.ts +371 -0
  22. package/src/api/file-router.ts +183 -0
  23. package/src/api/handler.ts +326 -0
  24. package/src/api/index.ts +71 -0
  25. package/src/api/middleware.ts +54 -0
  26. package/src/api/pragma.ts +155 -0
  27. package/src/api/procedure.ts +172 -0
  28. package/src/api/types.ts +249 -0
  29. package/src/charts/Area.tsx +111 -0
  30. package/src/charts/Axis.tsx +126 -0
  31. package/src/charts/Bar.tsx +86 -0
  32. package/src/charts/CartesianGrid.tsx +72 -0
  33. package/src/charts/Chart.tsx +269 -0
  34. package/src/charts/Cursor.tsx +42 -0
  35. package/src/charts/Legend.tsx +56 -0
  36. package/src/charts/Line.tsx +106 -0
  37. package/src/charts/Pie.tsx +88 -0
  38. package/src/charts/Tooltip.tsx +127 -0
  39. package/src/charts/context.ts +30 -0
  40. package/src/charts/index.ts +14 -0
  41. package/src/charts/path.ts +155 -0
  42. package/src/charts/scale.ts +133 -0
  43. package/src/charts/types.ts +50 -0
  44. package/src/devtools/DomTab.tsx +134 -0
  45. package/src/devtools/GraphInspector.tsx +196 -0
  46. package/src/devtools/GraphTab.tsx +315 -0
  47. package/src/devtools/QueryTab.tsx +200 -0
  48. package/src/devtools/RpcTab.tsx +190 -0
  49. package/src/devtools/SignalsTab.tsx +129 -0
  50. package/src/devtools/component.tsx +243 -0
  51. package/src/devtools/highlighter.ts +134 -0
  52. package/src/devtools/hub.ts +175 -0
  53. package/src/devtools/index.ts +20 -0
  54. package/src/devtools/styles.ts +313 -0
  55. package/src/devtools/types.ts +45 -0
  56. package/src/dom/async.ts +232 -0
  57. package/src/dom/control-flow.ts +353 -0
  58. package/src/dom/index.ts +32 -0
  59. package/src/dom/lazy.ts +82 -0
  60. package/src/dom/render.ts +286 -0
  61. package/src/dom/resource.ts +120 -0
  62. package/src/form/form.ts +218 -0
  63. package/src/form/index.ts +17 -0
  64. package/src/form/schema.ts +299 -0
  65. package/src/index.ts +413 -0
  66. package/src/jsx-dev-runtime/index.ts +1 -0
  67. package/src/jsx-runtime/index.ts +112 -0
  68. package/src/jsx-runtime/jsx.d.ts +278 -0
  69. package/src/query/create-mutation.ts +64 -0
  70. package/src/query/create-query.ts +426 -0
  71. package/src/query/focus-manager.ts +68 -0
  72. package/src/query/index.ts +63 -0
  73. package/src/query/mutation-cache.ts +138 -0
  74. package/src/query/online-manager.ts +67 -0
  75. package/src/query/query-cache.ts +369 -0
  76. package/src/query/query-client.ts +248 -0
  77. package/src/query/types.ts +221 -0
  78. package/src/query/utils.ts +132 -0
  79. package/src/router/index.ts +19 -0
  80. package/src/router/router.tsx +352 -0
  81. package/src/rpc/client.ts +317 -0
  82. package/src/rpc/error.ts +70 -0
  83. package/src/rpc/index.ts +52 -0
  84. package/src/rpc/procedure.ts +88 -0
  85. package/src/rpc/router.ts +105 -0
  86. package/src/rpc/server.ts +511 -0
  87. package/src/rpc/types.ts +328 -0
  88. package/src/server/hydrate.ts +21 -0
  89. package/src/server/index.ts +10 -0
  90. package/src/server/render-to-stream.ts +31 -0
  91. package/src/server/render-to-string.ts +125 -0
  92. package/src/signals/computed.ts +217 -0
  93. package/src/signals/context.ts +89 -0
  94. package/src/signals/effect.ts +161 -0
  95. package/src/signals/index.ts +57 -0
  96. package/src/signals/scope.ts +132 -0
  97. package/src/signals/signal.ts +203 -0
  98. package/src/signals/store.ts +163 -0
  99. package/src/signals/system.ts +124 -0
  100. package/src/signals/types.ts +64 -0
  101. package/src/style/component.tsx +122 -0
  102. package/src/style/create-style.ts +229 -0
  103. package/src/style/cx.ts +75 -0
  104. package/src/style/hash.ts +19 -0
  105. package/src/style/index.ts +8 -0
  106. package/src/style/layout.tsx +406 -0
  107. package/src/style/manager.ts +87 -0
  108. package/src/style/parser.ts +257 -0
  109. package/src/style/scale.ts +237 -0
  110. package/src/template/index.ts +4 -0
  111. package/src/template/template.ts +126 -0
  112. package/src/ui/accordion.tsx +286 -0
  113. package/src/ui/command-dialog.tsx +49 -0
  114. package/src/ui/command.tsx +400 -0
  115. package/src/ui/data-table.tsx +322 -0
  116. package/src/ui/dialog.tsx +362 -0
  117. package/src/ui/dropdown-menu.tsx +381 -0
  118. package/src/ui/icon.tsx +69 -0
  119. package/src/ui/index.ts +138 -0
  120. package/src/ui/layout.tsx +13 -0
  121. package/src/ui/popover.tsx +249 -0
  122. package/src/ui/switch.tsx +114 -0
  123. package/src/ui/tabs.tsx +297 -0
  124. package/src/ui/toast.tsx +280 -0
  125. package/src/ui/tooltip.tsx +262 -0
  126. package/src/ui/utils.ts +110 -0
  127. package/src/virtual/index.ts +12 -0
  128. package/src/virtual/virtual-list.tsx +185 -0
  129. package/src/virtual/virtualizer.ts +274 -0
  130. package/src/vite/hmr.ts +38 -0
  131. package/src/vite/index.ts +3 -0
  132. package/src/vite/lucide.ts +124 -0
  133. package/src/vite/plugin.ts +102 -0
  134. package/src/vite/rpc-middleware.ts +82 -0
  135. package/src/vite/types.ts +65 -0
@@ -0,0 +1,299 @@
1
+ /**
2
+ * Built-in lightweight schema validator & Standard Schema v1 (ArkType, Zod, Valibot) support
3
+ */
4
+
5
+ export interface ValidationIssue {
6
+ path: string;
7
+ message: string;
8
+ }
9
+
10
+ export interface ValidationResult<T> {
11
+ success: boolean;
12
+ data?: T;
13
+ issues?: ValidationIssue[];
14
+ }
15
+
16
+ export interface StandardSchemaV1<T = any> {
17
+ "~standard": {
18
+ version: 1;
19
+ vendor: string;
20
+ validate: (value: unknown) =>
21
+ | { value: T }
22
+ | {
23
+ issues: ReadonlyArray<{
24
+ path?: ReadonlyArray<string | number>;
25
+ message: string;
26
+ }>;
27
+ };
28
+ };
29
+ }
30
+
31
+ export type SchemaLike<T = any> =
32
+ | Schema<T>
33
+ | StandardSchemaV1<T>
34
+ | ((value: unknown) => ValidationResult<T> | boolean | string | null | undefined);
35
+
36
+ export abstract class Schema<T = any> {
37
+ declare readonly _type: T;
38
+ abstract validate(value: unknown, path?: string): ValidationResult<T>;
39
+
40
+ // Standard Schema v1 specification compatibility
41
+ "~standard" = {
42
+ version: 1 as const,
43
+ vendor: "visage",
44
+ validate: (val: unknown) => {
45
+ const res = this.validate(val);
46
+ if (res.success) {
47
+ return { value: res.data as T };
48
+ }
49
+ return {
50
+ issues: (res.issues || []).map((i) => ({
51
+ path: [i.path],
52
+ message: i.message
53
+ }))
54
+ };
55
+ }
56
+ };
57
+ }
58
+
59
+ class StringSchema extends Schema<string> {
60
+ private _min?: { val: number; msg?: string };
61
+ private _max?: { val: number; msg?: string };
62
+ private _emailMsg?: string;
63
+ private _regex?: { pattern: RegExp; msg?: string };
64
+ private _isOptional = false;
65
+
66
+ min(length: number, message?: string): this {
67
+ this._min = { val: length, msg: message };
68
+ return this;
69
+ }
70
+
71
+ max(length: number, message?: string): this {
72
+ this._max = { val: length, msg: message };
73
+ return this;
74
+ }
75
+
76
+ email(message?: string): this {
77
+ this._emailMsg = message ?? "Invalid email address";
78
+ return this;
79
+ }
80
+
81
+ regex(pattern: RegExp, message?: string): this {
82
+ this._regex = { pattern, msg: message };
83
+ return this;
84
+ }
85
+
86
+ optional(): Schema<string | undefined> {
87
+ this._isOptional = true;
88
+ return this as any;
89
+ }
90
+
91
+ validate(value: unknown, path = ""): ValidationResult<string> {
92
+ if (value === undefined || value === null || value === "") {
93
+ if (this._isOptional) return { success: true, data: undefined };
94
+ return { success: false, issues: [{ path, message: "This field is required" }] };
95
+ }
96
+
97
+ if (typeof value !== "string") {
98
+ return { success: false, issues: [{ path, message: "Must be a string" }] };
99
+ }
100
+
101
+ if (this._min && value.length < this._min.val) {
102
+ return {
103
+ success: false,
104
+ issues: [{ path, message: this._min.msg ?? `Must be at least ${this._min.val} characters` }]
105
+ };
106
+ }
107
+
108
+ if (this._max && value.length > this._max.val) {
109
+ return {
110
+ success: false,
111
+ issues: [{ path, message: this._max.msg ?? `Must be at most ${this._max.val} characters` }]
112
+ };
113
+ }
114
+
115
+ if (this._emailMsg) {
116
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
117
+ if (!emailRegex.test(value)) {
118
+ return { success: false, issues: [{ path, message: this._emailMsg }] };
119
+ }
120
+ }
121
+
122
+ if (this._regex && !this._regex.pattern.test(value)) {
123
+ return {
124
+ success: false,
125
+ issues: [{ path, message: this._regex.msg ?? "Invalid format" }]
126
+ };
127
+ }
128
+
129
+ return { success: true, data: value };
130
+ }
131
+ }
132
+
133
+ class NumberSchema extends Schema<number> {
134
+ private _min?: { val: number; msg?: string };
135
+ private _max?: { val: number; msg?: string };
136
+ private _integer?: { msg?: string };
137
+ private _isOptional = false;
138
+
139
+ min(value: number, message?: string): this {
140
+ this._min = { val: value, msg: message };
141
+ return this;
142
+ }
143
+
144
+ max(value: number, message?: string): this {
145
+ this._max = { val: value, msg: message };
146
+ return this;
147
+ }
148
+
149
+ integer(message?: string): this {
150
+ this._integer = { msg: message };
151
+ return this;
152
+ }
153
+
154
+ optional(): Schema<number | undefined> {
155
+ this._isOptional = true;
156
+ return this as any;
157
+ }
158
+
159
+ validate(value: unknown, path = ""): ValidationResult<number> {
160
+ if (value === undefined || value === null || value === "") {
161
+ if (this._isOptional) return { success: true, data: undefined };
162
+ return { success: false, issues: [{ path, message: "This field is required" }] };
163
+ }
164
+
165
+ const num = Number(value);
166
+ if (Number.isNaN(num) || typeof value === "boolean") {
167
+ return { success: false, issues: [{ path, message: "Must be a valid number" }] };
168
+ }
169
+
170
+ if (this._integer && !Number.isInteger(num)) {
171
+ return {
172
+ success: false,
173
+ issues: [{ path, message: this._integer.msg ?? "Must be an integer" }]
174
+ };
175
+ }
176
+
177
+ if (this._min && num < this._min.val) {
178
+ return {
179
+ success: false,
180
+ issues: [{ path, message: this._min.msg ?? `Must be at least ${this._min.val}` }]
181
+ };
182
+ }
183
+
184
+ if (this._max && num > this._max.val) {
185
+ return {
186
+ success: false,
187
+ issues: [{ path, message: this._max.msg ?? `Must be at most ${this._max.val}` }]
188
+ };
189
+ }
190
+
191
+ return { success: true, data: num };
192
+ }
193
+ }
194
+
195
+ class BooleanSchema extends Schema<boolean> {
196
+ validate(value: unknown, _path = ""): ValidationResult<boolean> {
197
+ return { success: true, data: Boolean(value) };
198
+ }
199
+ }
200
+
201
+ export type InferSchemaType<S> =
202
+ S extends Schema<infer T>
203
+ ? T
204
+ : S extends StandardSchemaV1<infer T>
205
+ ? T
206
+ : S extends (val: any) => ValidationResult<infer T>
207
+ ? T
208
+ : any;
209
+
210
+ export type InferObjectShape<S extends Record<string, SchemaLike<any>>> = {
211
+ [K in keyof S]: InferSchemaType<S[K]>;
212
+ };
213
+
214
+ export class ObjectSchema<T extends Record<string, any>> extends Schema<T> {
215
+ constructor(public shape: { [K in keyof T]: SchemaLike<T[K]> }) {
216
+ super();
217
+ }
218
+
219
+ validate(value: unknown, basePath = ""): ValidationResult<T> {
220
+ if (typeof value !== "object" || value === null) {
221
+ return { success: false, issues: [{ path: basePath, message: "Must be an object" }] };
222
+ }
223
+
224
+ const issues: ValidationIssue[] = [];
225
+ const data: Record<string, any> = {};
226
+
227
+ for (const key in this.shape) {
228
+ const fieldSchema = this.shape[key]!;
229
+ const fieldVal = (value as any)[key];
230
+ const fieldPath = basePath ? `${basePath}.${key}` : key;
231
+
232
+ const res = validateWithSchema(fieldSchema, fieldVal, fieldPath);
233
+ if (res.success) {
234
+ data[key] = res.data;
235
+ } else if (res.issues) {
236
+ issues.push(...res.issues);
237
+ }
238
+ }
239
+
240
+ if (issues.length > 0) {
241
+ return { success: false, issues };
242
+ }
243
+
244
+ return { success: true, data: data as T };
245
+ }
246
+ }
247
+
248
+ export function validateWithSchema<T>(
249
+ schema: SchemaLike<T>,
250
+ value: unknown,
251
+ path = ""
252
+ ): ValidationResult<T> {
253
+ if (!schema) return { success: true, data: value as T };
254
+
255
+ if (schema instanceof Schema) {
256
+ return schema.validate(value, path);
257
+ }
258
+
259
+ if (typeof schema === "object" && "~standard" in schema) {
260
+ const res = schema["~standard"].validate(value);
261
+ if ("value" in res) {
262
+ return { success: true, data: res.value };
263
+ }
264
+ return {
265
+ success: false,
266
+ issues: res.issues.map((i) => ({
267
+ path: i.path ? i.path.join(".") : path,
268
+ message: i.message
269
+ }))
270
+ };
271
+ }
272
+
273
+ if (typeof schema === "function") {
274
+ const res = schema(value);
275
+ if (res === true || res === null || res === undefined) {
276
+ return { success: true, data: value as T };
277
+ }
278
+ if (typeof res === "string") {
279
+ return { success: false, issues: [{ path, message: res }] };
280
+ }
281
+ if (typeof res === "object") {
282
+ return res as ValidationResult<T>;
283
+ }
284
+ }
285
+
286
+ return { success: true, data: value as T };
287
+ }
288
+
289
+ /**
290
+ * Built-in schema definition library
291
+ */
292
+ export const v = {
293
+ string: () => new StringSchema(),
294
+ number: () => new NumberSchema(),
295
+ boolean: () => new BooleanSchema(),
296
+ object: <S extends Record<string, SchemaLike<any>>>(
297
+ shape: S
298
+ ): ObjectSchema<{ [K in keyof S]: InferSchemaType<S[K]> }> => new ObjectSchema(shape as any)
299
+ };
package/src/index.ts ADDED
@@ -0,0 +1,413 @@
1
+ // Reactive Primitives
2
+
3
+ // File-Based API & Opinionated RPC
4
+ export {
5
+ type ApiClient,
6
+ type ApiClientOptions,
7
+ buildFileRouter,
8
+ createApi,
9
+ createApiClient,
10
+ createApiHandler,
11
+ defineMiddleware,
12
+ type FileRouteModule,
13
+ ProcedureBuilder,
14
+ procedure
15
+ } from "./api";
16
+ // Composable Fine-Grained Reactive Charts
17
+ export {
18
+ type AnyScale,
19
+ Area,
20
+ type AreaProps,
21
+ type BandScale,
22
+ Bar,
23
+ type BarProps,
24
+ CartesianGrid,
25
+ type CartesianGridProps,
26
+ Chart,
27
+ ChartContext,
28
+ type ChartContextValue,
29
+ ChartCursor,
30
+ type ChartCursorProps,
31
+ ChartLegend,
32
+ type ChartProps,
33
+ ChartTooltip,
34
+ type CurveType,
35
+ createBandScale,
36
+ createLinearScale,
37
+ generateNiceTicks,
38
+ type HoverState,
39
+ Legend,
40
+ type LegendProps,
41
+ Line,
42
+ type LinearScale,
43
+ type LineProps,
44
+ type Margin,
45
+ Pie,
46
+ type PieProps,
47
+ type Point,
48
+ pathArc,
49
+ pathArea,
50
+ pathLine,
51
+ type SeriesMeta,
52
+ useChartContext,
53
+ XAxis,
54
+ type XAxisProps,
55
+ YAxis,
56
+ type YAxisProps
57
+ } from "./charts";
58
+ // In-Browser DevTools & Visual Inspector
59
+ export {
60
+ connectDevTools,
61
+ DevToolsHub,
62
+ type DevToolsOptions,
63
+ type DevToolsTab,
64
+ devtoolsHub,
65
+ highlightElement,
66
+ type QueryRecord,
67
+ type RpcRecord,
68
+ type SignalRecord,
69
+ VisageDevTools
70
+ } from "./devtools";
71
+ // DOM & Mount Primitives
72
+ export {
73
+ type Child,
74
+ type Component,
75
+ createResource,
76
+ ErrorBoundary,
77
+ type ErrorBoundaryProps,
78
+ For,
79
+ type ForProps,
80
+ insertChild,
81
+ isReactive,
82
+ type LazyComponent,
83
+ lazy,
84
+ Portal,
85
+ type PortalProps,
86
+ type ReactiveValue,
87
+ type Resource,
88
+ type ResourceActions,
89
+ render,
90
+ resolveValue,
91
+ Show,
92
+ type ShowProps,
93
+ Suspense,
94
+ type SuspenseProps,
95
+ setAttribute
96
+ } from "./dom";
97
+ // Reactive Forms & Schema Validation
98
+ export {
99
+ createForm,
100
+ type FieldState,
101
+ type Form,
102
+ type FormFields,
103
+ type FormOptions,
104
+ Schema,
105
+ type SchemaLike,
106
+ type StandardSchemaV1,
107
+ type ValidationIssue,
108
+ type ValidationResult,
109
+ v,
110
+ validateWithSchema
111
+ } from "./form";
112
+ // JSX Typings
113
+ export type {
114
+ AnchorAttributes,
115
+ ButtonAttributes,
116
+ HTMLAttributes,
117
+ InputAttributes,
118
+ JSX,
119
+ ReactiveProp
120
+ } from "./jsx-runtime/jsx";
121
+ // Query & Server State Cache
122
+ export {
123
+ type CreateQueryOptions,
124
+ createInfiniteQuery,
125
+ createMutation,
126
+ createQuery,
127
+ type DefaultOptions,
128
+ type FetchStatus,
129
+ FocusManager,
130
+ focusManager,
131
+ hashKey,
132
+ type InfiniteData,
133
+ type InfiniteQueryOptions,
134
+ type InfiniteQueryResult,
135
+ type MutateOptions,
136
+ Mutation,
137
+ MutationCache,
138
+ type MutationFunction,
139
+ type MutationOptions,
140
+ type MutationResult,
141
+ type MutationStatus,
142
+ OnlineManager,
143
+ onlineManager,
144
+ Query,
145
+ QueryCache,
146
+ QueryClient,
147
+ type QueryClientConfig,
148
+ QueryClientContext,
149
+ QueryClientProvider,
150
+ type QueryFilters,
151
+ type QueryFunction,
152
+ type QueryFunctionContext,
153
+ type QueryKey,
154
+ type QueryObserver,
155
+ type QueryOptions,
156
+ type QueryResult,
157
+ type QueryState,
158
+ type QueryStatus,
159
+ type RefetchOptions,
160
+ type RetryDelayValue
161
+ } from "./query";
162
+ // Router Primitives
163
+ export {
164
+ Link,
165
+ type LinkProps,
166
+ type LocationState,
167
+ type MatchedRoute,
168
+ Route,
169
+ type RouteDefinition,
170
+ type RouteProps,
171
+ Router,
172
+ type RouterContextValue,
173
+ type RouterProps,
174
+ Routes,
175
+ type RoutesProps,
176
+ useLocation,
177
+ useNavigate,
178
+ useParams,
179
+ useSearchParams
180
+ } from "./router";
181
+ // Type-Safe Wire RPC & APIs
182
+ export {
183
+ type ClientOptions,
184
+ type ClientRouter,
185
+ type CORSOptions,
186
+ createClient,
187
+ createFetchHandler,
188
+ createProcedure,
189
+ createRouter,
190
+ ERROR_CODE_TO_STATUS,
191
+ executeProcedure,
192
+ type FetchHandlerOptions,
193
+ type MiddlewareFn,
194
+ mutation,
195
+ type Procedure,
196
+ type ProcedureOptions,
197
+ type ProcedureRecord,
198
+ type ProcedureType,
199
+ query,
200
+ type Router as RPCRouter,
201
+ RouterImpl,
202
+ RPCError,
203
+ type RPCErrorCode,
204
+ type RPCResponse,
205
+ STATUS_TO_ERROR_CODE,
206
+ type SubscriptionCallbacks,
207
+ type SubscriptionHandle,
208
+ subscription
209
+ } from "./rpc";
210
+ // Server-Side Rendering & Hydration
211
+ export {
212
+ hydrate,
213
+ renderChildToString,
214
+ renderToStream,
215
+ renderToString,
216
+ type StreamOptions
217
+ } from "./server";
218
+ export {
219
+ batch,
220
+ type CleanupFn,
221
+ Computed,
222
+ type Context,
223
+ computed,
224
+ createContext,
225
+ createEffect,
226
+ createMemo,
227
+ createRoot,
228
+ createSignal,
229
+ createStore,
230
+ type Dependency,
231
+ Effect,
232
+ effect,
233
+ getActiveScope,
234
+ isSignal,
235
+ mutateStore,
236
+ onCleanup,
237
+ type ReadonlySignal,
238
+ runInScope,
239
+ Scope,
240
+ Signal,
241
+ type Store,
242
+ type Subscriber,
243
+ signal,
244
+ untrack,
245
+ unwrapStore,
246
+ useContext,
247
+ type WritableSignal
248
+ } from "./signals";
249
+ // Scoped Styles & CSS Engine
250
+ // Spatial Engine & Semantic Layout Primitives
251
+ export {
252
+ type BaseLayoutProps,
253
+ Center,
254
+ type CenterProps,
255
+ type ClassValue,
256
+ createStyle,
257
+ css,
258
+ cx,
259
+ DIMENSION_KEYWORDS,
260
+ em,
261
+ extractStyleTags,
262
+ fluid,
263
+ formatStyleProp,
264
+ type GlassOptions,
265
+ Grid,
266
+ type GridProps,
267
+ getScopeId,
268
+ glass,
269
+ hashString,
270
+ hasReactiveClass,
271
+ normalizeClass,
272
+ px,
273
+ type RadiusVariant,
274
+ Row,
275
+ type RowProps,
276
+ radius,
277
+ rem,
278
+ type ScopeOptions,
279
+ type ShadowVariant,
280
+ Spacer,
281
+ type SpacerProps,
282
+ Stack,
283
+ type StackProps,
284
+ Style,
285
+ type StyleClasses,
286
+ StyleManager,
287
+ type StyleProps,
288
+ scopeCSS,
289
+ scopeSelector,
290
+ shadow,
291
+ space,
292
+ styleManager,
293
+ UNITLESS_PROPERTIES,
294
+ useStyle
295
+ } from "./style";
296
+ // Template HTML Cloning & Tagged Template
297
+ export {
298
+ html,
299
+ template
300
+ } from "./template";
301
+ // Headless Accessible UI Component Primitives
302
+ export {
303
+ Accordion,
304
+ AccordionContent,
305
+ AccordionItem,
306
+ type AccordionItemProps,
307
+ type AccordionMultipleProps,
308
+ type AccordionProps,
309
+ type AccordionSingleProps,
310
+ AccordionTrigger,
311
+ type ColumnDef,
312
+ Command,
313
+ CommandDialog,
314
+ type CommandDialogProps,
315
+ CommandEmpty,
316
+ CommandGroup,
317
+ type CommandGroupData,
318
+ CommandInput,
319
+ type CommandInputProps,
320
+ CommandItem,
321
+ type CommandItemData,
322
+ type CommandItemProps,
323
+ CommandList,
324
+ type CommandProps,
325
+ createControllableSignal,
326
+ createIcon,
327
+ createId,
328
+ createToastManager,
329
+ DataTable,
330
+ type DataTableProps,
331
+ Dialog,
332
+ DialogClose,
333
+ DialogContent,
334
+ type DialogContentProps,
335
+ DialogDescription,
336
+ DialogOverlay,
337
+ DialogPortal,
338
+ type DialogProps,
339
+ DialogTitle,
340
+ DialogTrigger,
341
+ DropdownMenu,
342
+ DropdownMenuContent,
343
+ DropdownMenuItem,
344
+ type DropdownMenuItemProps,
345
+ DropdownMenuPortal,
346
+ type DropdownMenuProps,
347
+ DropdownMenuSeparator,
348
+ DropdownMenuTrigger,
349
+ defaultToastManager,
350
+ type IconNode,
351
+ type IconProps,
352
+ onClickOutside,
353
+ Popover,
354
+ PopoverClose,
355
+ PopoverContent,
356
+ type PopoverContentProps,
357
+ PopoverPortal,
358
+ type PopoverProps,
359
+ PopoverTrigger,
360
+ type SortDirection,
361
+ type SortState,
362
+ Switch,
363
+ type SwitchProps,
364
+ SwitchThumb,
365
+ type SwitchThumbProps,
366
+ Tabs,
367
+ TabsContent,
368
+ type TabsContentProps,
369
+ TabsList,
370
+ type TabsProps,
371
+ TabsTrigger,
372
+ Toast,
373
+ ToastClose,
374
+ type ToastData,
375
+ ToastDescription,
376
+ type ToastManager,
377
+ type ToastOptions,
378
+ type ToastProps,
379
+ ToastProvider,
380
+ type ToastProviderProps,
381
+ ToastTitle,
382
+ type ToastVariant,
383
+ ToastViewport,
384
+ type ToastViewportProps,
385
+ Tooltip,
386
+ TooltipContent,
387
+ type TooltipContentProps,
388
+ TooltipPortal,
389
+ type TooltipProps,
390
+ TooltipTrigger,
391
+ toast,
392
+ trapFocus,
393
+ useAccordionContext,
394
+ useAccordionItemContext,
395
+ useCommandContext,
396
+ useDialogContext,
397
+ useDropdownMenuContext,
398
+ usePopoverContext,
399
+ useTabsContext,
400
+ useToast,
401
+ useTooltipContext
402
+ } from "./ui";
403
+ // Virtual List & Grid Virtualization
404
+ export {
405
+ createVirtualizer,
406
+ VirtualGrid,
407
+ type VirtualGridProps,
408
+ type VirtualItem,
409
+ type Virtualizer,
410
+ type VirtualizerOptions,
411
+ VirtualList,
412
+ type VirtualListProps
413
+ } from "./virtual";
@@ -0,0 +1 @@
1
+ export { Fragment, type JSX, jsx, jsxDEV, jsxs } from "../jsx-runtime";