@luna_ui/luna 0.3.4 → 0.4.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 (182) hide show
  1. package/dist/cli.mjs +1264 -27
  2. package/dist/css/index.d.ts +194 -0
  3. package/dist/css/index.js +721 -0
  4. package/dist/css/runtime.d.ts +92 -0
  5. package/dist/css/runtime.js +179 -0
  6. package/dist/{index-CyEkcO3_.d.ts → index-CDWzWF-h.d.ts} +2 -2
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.js +1 -1
  9. package/dist/jsx-dev-runtime.js +1 -1
  10. package/dist/jsx-runtime.d.ts +1 -1
  11. package/dist/jsx-runtime.js +1 -1
  12. package/dist/src-DEjrAhrg.js +1 -0
  13. package/dist/vite-plugin.d.ts +122 -0
  14. package/dist/vite-plugin.js +1518 -0
  15. package/package.json +16 -2
  16. package/src/css/extract.ts +798 -0
  17. package/src/css/index.ts +10 -0
  18. package/src/css/inject.ts +205 -0
  19. package/src/css/inline.ts +182 -0
  20. package/src/css/minify.ts +70 -0
  21. package/src/css/optimizer.ts +6 -0
  22. package/src/css/runtime.ts +344 -0
  23. package/src/css-optimizer/README.md +353 -0
  24. package/src/css-optimizer/cooccurrence.ts +100 -0
  25. package/src/css-optimizer/core.ts +263 -0
  26. package/src/css-optimizer/extractors.ts +243 -0
  27. package/src/css-optimizer/hash.ts +54 -0
  28. package/src/css-optimizer/index.ts +129 -0
  29. package/src/css-optimizer/merge.ts +109 -0
  30. package/src/css-optimizer/moonbit-analyzer.ts +210 -0
  31. package/src/css-optimizer/parser.ts +120 -0
  32. package/src/css-optimizer/pattern.ts +171 -0
  33. package/src/css-optimizer/transformers.ts +301 -0
  34. package/src/css-optimizer/types.ts +128 -0
  35. package/src/event-utils.ts +227 -0
  36. package/src/hydration/createHydrator.ts +62 -0
  37. package/src/hydration/delegate.ts +62 -0
  38. package/src/hydration/drag.ts +214 -0
  39. package/src/hydration/index.ts +12 -0
  40. package/src/hydration/keyboard.ts +64 -0
  41. package/src/hydration/toggle.ts +101 -0
  42. package/src/index.ts +890 -0
  43. package/src/jsx-dev-runtime.ts +2 -0
  44. package/src/jsx-runtime.ts +398 -0
  45. package/src/vite-plugin.ts +718 -0
  46. package/tests/__screenshots__/context.test.ts/Context-API-context-with-reactive-effects-context-value-accessible-in-effect-1.png +0 -0
  47. package/tests/__screenshots__/dom.test.ts/DOM-API-For-component--SolidJS-style--For-updates-when-signal-changes-1.png +0 -0
  48. package/tests/__screenshots__/dom.test.ts/DOM-API-Show-component--SolidJS-style--Show-accepts-children-as-function-1.png +0 -0
  49. package/tests/__screenshots__/dom.test.ts/DOM-API-Show-component--SolidJS-style--Show-toggles-visibility-1.png +0 -0
  50. package/tests/__screenshots__/dom.test.ts/DOM-API-createElement-createElement-with-dynamic-attribute-1.png +0 -0
  51. package/tests/__screenshots__/dom.test.ts/DOM-API-createElement-createElement-with-dynamic-style-1.png +0 -0
  52. package/tests/__screenshots__/dom.test.ts/DOM-API-createElementNs--SVG-support--createElementNs-with-dynamic-attribute-1.png +0 -0
  53. package/tests/__screenshots__/dom.test.ts/DOM-API-effect-with-DOM-effect-tracks-signal-changes-1.png +0 -0
  54. package/tests/__screenshots__/dom.test.ts/DOM-API-forEach--list-rendering--forEach-handles-clear-to-empty-1.png +0 -0
  55. package/tests/__screenshots__/dom.test.ts/DOM-API-forEach--list-rendering--forEach-handles-empty-array-1.png +0 -0
  56. package/tests/__screenshots__/dom.test.ts/DOM-API-forEach--list-rendering--forEach-removes-items-1.png +0 -0
  57. package/tests/__screenshots__/dom.test.ts/DOM-API-forEach--list-rendering--forEach-renders-initial-list-1.png +0 -0
  58. package/tests/__screenshots__/dom.test.ts/DOM-API-forEach--list-rendering--forEach-updates-when-items-change-1.png +0 -0
  59. package/tests/__screenshots__/dom.test.ts/DOM-API-forEach-with-SVG-elements-forEach-handles-empty-to-non-empty-transition-in-SVG-1.png +0 -0
  60. package/tests/__screenshots__/dom.test.ts/DOM-API-forEach-with-SVG-elements-forEach-handles-reordering-in-SVG-1.png +0 -0
  61. package/tests/__screenshots__/dom.test.ts/DOM-API-forEach-with-SVG-elements-forEach-updates-SVG-elements-when-signal-changes-1.png +0 -0
  62. package/tests/__screenshots__/dom.test.ts/DOM-API-forEach-with-SVG-elements-forEach-with-nested-SVG-groups-1.png +0 -0
  63. package/tests/__screenshots__/dom.test.ts/DOM-API-ref-callback--JSX-style--ref-callback-with-nested-elements-1.png +0 -0
  64. package/tests/__screenshots__/dom.test.ts/DOM-API-show--conditional-rendering--show-creates-a-node-1.png +0 -0
  65. package/tests/__screenshots__/dom.test.ts/DOM-API-show--conditional-rendering--show-with-false-condition-creates-placeholder-1.png +0 -0
  66. package/tests/__screenshots__/dom.test.ts/DOM-API-text-nodes-textDyn-creates-reactive-text-node-1.png +0 -0
  67. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-Complex-nested-scenario-forEach-renders-correctly-without-show--initial-items--1.png +0 -0
  68. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-Complex-nested-scenario-forEach-with-context-renders-correctly-without-show-1.png +0 -0
  69. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-Complex-nested-scenario-nested-components-with-context--forEach--and-show-1.png +0 -0
  70. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-Complex-nested-scenario-show-and-forEach-inherit-context-from-Owner--fixed--1.png +0 -0
  71. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-Complex-nested-scenario-show-and-forEach-work-together--context-uses-default--1.png +0 -0
  72. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-Context---ForEach-integration-forEach-items-can-access-context-1.png +0 -0
  73. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-ForEach-with-reactive-updates-forEach-renders-initial-list-1.png +0 -0
  74. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-ForEach-with-reactive-updates-forEach-updates-when-signal-changes-1.png +0 -0
  75. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-ForEach-with-reactive-updates-forEach-with-object-items-1.png +0 -0
  76. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-Show--conditional-rendering--show-hides-when-condition-is-false-1.png +0 -0
  77. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-Show--conditional-rendering--show-renders-when-condition-is-true-1.png +0 -0
  78. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-Show--conditional-rendering--show-toggles-from-false-to-true-1.png +0 -0
  79. package/tests/__screenshots__/integration.test.ts/Integration--Nested-Components-with-Context-Show--conditional-rendering--show-toggles-reactively-1.png +0 -0
  80. package/tests/__screenshots__/lifecycle.test.ts/onCleanup-in-Component-Body--Solid-js-style--event-listener-pattern--Solid-js-docs-example--1.png +0 -0
  81. package/tests/__screenshots__/lifecycle.test.ts/onCleanup-in-Component-Body--Solid-js-style--multiple-cleanups-in-component-body--LIFO-order--1.png +0 -0
  82. package/tests/__screenshots__/lifecycle.test.ts/onCleanup-in-Component-Body--Solid-js-style--onCleanup-in-component-body-runs-on-unmount-1.png +0 -0
  83. package/tests/__screenshots__/lifecycle.test.ts/onCleanup-in-Component-Body--Solid-js-style--onCleanup-works-with-For-loop-items--component-body-style--1.png +0 -0
  84. package/tests/__screenshots__/lifecycle.test.ts/onCleanup-in-Component-Body--Solid-js-style--timer-cleanup-pattern--Solid-js-style--1.png +0 -0
  85. package/tests/__screenshots__/lifecycle.test.ts/onCleanup-in-Effects-effect-cleanup-runs-before-re-run-1.png +0 -0
  86. package/tests/__screenshots__/preact-signals-comparison.test.ts/Bulk-Updates-large-list-update-1.png +0 -0
  87. package/tests/__screenshots__/preact-signals-comparison.test.ts/Bulk-Updates-nested-batch-operations-1.png +0 -0
  88. package/tests/__screenshots__/preact-signals-comparison.test.ts/Bulk-Updates-rapid-sequential-updates-1.png +0 -0
  89. package/tests/__screenshots__/preact-signals-comparison.test.ts/DOM-Rendering-Comparison---Conditional-Show-component---visible-1.png +0 -0
  90. package/tests/__screenshots__/preact-signals-comparison.test.ts/DOM-Rendering-Comparison---Conditional-show-hide-element---visible-1.png +0 -0
  91. package/tests/__screenshots__/preact-signals-comparison.test.ts/DOM-Rendering-Comparison---Fragments-fragment-with-list-1.png +0 -0
  92. package/tests/__screenshots__/preact-signals-comparison.test.ts/DOM-Rendering-Comparison---Fragments-nested-fragments-1.png +0 -0
  93. package/tests/__screenshots__/preact-signals-comparison.test.ts/DOM-Rendering-Comparison---Fragments-simple-fragment-1.png +0 -0
  94. package/tests/__screenshots__/preact-signals-comparison.test.ts/DOM-Rendering-Comparison---Reactive-Updates-conditional-toggle-updates-1.png +0 -0
  95. package/tests/__screenshots__/preact-signals-comparison.test.ts/DOM-Rendering-Comparison---Reactive-Updates-list-addition-updates-match-1.png +0 -0
  96. package/tests/__screenshots__/preact-signals-comparison.test.ts/DOM-Rendering-Comparison---Reactive-Updates-list-removal-updates-match-1.png +0 -0
  97. package/tests/__screenshots__/preact-signals-comparison.test.ts/DOM-Rendering-Comparison---Reactive-Updates-text-updates-match-1.png +0 -0
  98. package/tests/__screenshots__/preact-signals-comparison.test.ts/Dynamic-Attributes-Comparison-dynamic-className-updates-1.png +0 -0
  99. package/tests/__screenshots__/preact-signals-comparison.test.ts/Dynamic-Attributes-Comparison-dynamic-style-updates-1.png +0 -0
  100. package/tests/__screenshots__/preact-signals-comparison.test.ts/Dynamic-Attributes-Comparison-multiple-dynamic-attributes-1.png +0 -0
  101. package/tests/__screenshots__/preact-signals-comparison.test.ts/Edge-Cases-deeply-nested-conditionals-1.png +0 -0
  102. package/tests/__screenshots__/preact-signals-comparison.test.ts/Edge-Cases-list-transitions-from-empty-to-populated-1.png +0 -0
  103. package/tests/__screenshots__/preact-signals-comparison.test.ts/Edge-Cases-list-transitions-from-populated-to-empty-1.png +0 -0
  104. package/tests/__screenshots__/preact-signals-comparison.test.ts/Effect-Cleanup-Comparison-nested-effects-cleanup-order-1.png +0 -0
  105. package/tests/__screenshots__/preact-signals-comparison.test.ts/Effect-Cleanup-Comparison-nested-effects-with-inner-signal-change-1.png +0 -0
  106. package/tests/__screenshots__/preact-signals-comparison.test.ts/Effect-Cleanup-Comparison-onCleanup-is-called-when-effect-re-runs-1.png +0 -0
  107. package/tests/__screenshots__/preact-signals-comparison.test.ts/Effect-Cleanup-Comparison-onCleanup-with-resource-simulation-1.png +0 -0
  108. package/tests/__screenshots__/preact-signals-comparison.test.ts/Fragment-Comparison-with-Preact-Fragment-with-multiple-children--no-wrapper--1.png +0 -0
  109. package/tests/__screenshots__/preact-signals-comparison.test.ts/Fragment-Comparison-with-Preact-Fragment-with-no-children-1.png +0 -0
  110. package/tests/__screenshots__/preact-signals-comparison.test.ts/Fragment-Comparison-with-Preact-fragment-with-list-1.png +0 -0
  111. package/tests/__screenshots__/preact-signals-comparison.test.ts/Fragment-Comparison-with-Preact-nested-Fragments-work-correctly-1.png +0 -0
  112. package/tests/__screenshots__/preact-signals-comparison.test.ts/List-Reordering-complex-reordering-with-additions-and-removals-1.png +0 -0
  113. package/tests/__screenshots__/preact-signals-comparison.test.ts/List-Reordering-insert-in-middle-1.png +0 -0
  114. package/tests/__screenshots__/preact-signals-comparison.test.ts/List-Reordering-remove-from-middle-1.png +0 -0
  115. package/tests/__screenshots__/preact-signals-comparison.test.ts/List-Reordering-reverse-list-order-1.png +0 -0
  116. package/tests/__screenshots__/preact-signals-comparison.test.ts/List-Reordering-shuffle-list-1.png +0 -0
  117. package/tests/__screenshots__/preact-signals-comparison.test.ts/Luna-Conditional-Rendering-Show-component-renders-when-condition-is-true-1.png +0 -0
  118. package/tests/__screenshots__/preact-signals-comparison.test.ts/Luna-Conditional-Rendering-show-renders-content-when-initially-true-1.png +0 -0
  119. package/tests/__screenshots__/preact-signals-comparison.test.ts/Luna-Conditional-Rendering-show-toggles-visibility-dynamically-1.png +0 -0
  120. package/tests/__screenshots__/preact-signals-comparison.test.ts/Memo-Dependency-Chain-conditional-memo-dependencies-1.png +0 -0
  121. package/tests/__screenshots__/preact-signals-comparison.test.ts/Signal-Behavior-Comparison-basic-signal-get-set-produces-same-values-1.png +0 -0
  122. package/tests/__screenshots__/preact-signals-comparison.test.ts/Signal-Behavior-Comparison-batch-updates-produce-same-final-values-1.png +0 -0
  123. package/tests/__screenshots__/preact-signals-comparison.test.ts/Untrack-and-Peek-Behavior-peek-reads-value-without-tracking-1.png +0 -0
  124. package/tests/__screenshots__/preact-signals-comparison.test.ts/Untrack-and-Peek-Behavior-selective-tracking-with-untrack-1.png +0 -0
  125. package/tests/__screenshots__/preact-signals-comparison.test.ts/Untrack-and-Peek-Behavior-untrack-prevents-dependency-tracking-1.png +0 -0
  126. package/tests/__screenshots__/resource.test.ts/Resource-API--SolidJS-style--reactivity-accessor-is-reactive-1.png +0 -0
  127. package/tests/__screenshots__/resource.test.ts/Resource-API-AsyncState-helpers-stateError-returns-empty-string-for-non-failure-1.png +0 -0
  128. package/tests/__screenshots__/resource.test.ts/Resource-API-AsyncState-helpers-stateError-returns-undefined-for-non-failure-1.png +0 -0
  129. package/tests/__screenshots__/resource.test.ts/Resource-API-AsyncState-helpers-stateIsFailure-and-stateError-1.png +0 -0
  130. package/tests/__screenshots__/resource.test.ts/Resource-API-AsyncState-helpers-stateIsPending-1.png +0 -0
  131. package/tests/__screenshots__/resource.test.ts/Resource-API-AsyncState-helpers-stateIsSuccess-and-stateValue-1.png +0 -0
  132. package/tests/__screenshots__/resource.test.ts/Resource-API-AsyncState-helpers-stateValue-returns-undefined-for-non-success-1.png +0 -0
  133. package/tests/__screenshots__/resource.test.ts/Resource-API-createDeferred-reject-transitions-to-failure-1.png +0 -0
  134. package/tests/__screenshots__/resource.test.ts/Resource-API-createDeferred-resolve-transitions-to-success-1.png +0 -0
  135. package/tests/__screenshots__/resource.test.ts/Resource-API-createDeferred-returns-resource--resolve--and-reject-functions-1.png +0 -0
  136. package/tests/__screenshots__/resource.test.ts/Resource-API-createDeferred-starts-in-pending-state-1.png +0 -0
  137. package/tests/__screenshots__/resource.test.ts/Resource-API-createResource-async-resolve-works-1.png +0 -0
  138. package/tests/__screenshots__/resource.test.ts/Resource-API-createResource-starts-in-pending-state-1.png +0 -0
  139. package/tests/__screenshots__/resource.test.ts/Resource-API-createResource-transitions-to-failure-on-reject-1.png +0 -0
  140. package/tests/__screenshots__/resource.test.ts/Resource-API-createResource-transitions-to-success-on-resolve-1.png +0 -0
  141. package/tests/__screenshots__/resource.test.ts/Resource-API-integration-with-Promise-can-wrap-fetch-like-async-operations-1.png +0 -0
  142. package/tests/__screenshots__/resource.test.ts/Resource-API-integration-with-Promise-works-with-setTimeout-simulation-1.png +0 -0
  143. package/tests/__screenshots__/resource.test.ts/Resource-API-resourceGet-vs-resourcePeek-resourceGet-tracks-dependencies-1.png +0 -0
  144. package/tests/__screenshots__/resource.test.ts/Resource-API-resourceGet-vs-resourcePeek-resourcePeek-does-not-track-dependencies-1.png +0 -0
  145. package/tests/__screenshots__/resource.test.ts/Resource-API-resourceRefetch-refetch-resets-to-pending-and-re-runs-fetcher-1.png +0 -0
  146. package/tests/__screenshots__/solidjs-api.test.ts/Portal-component-Portal-renders-children-to-body-by-default-1.png +0 -0
  147. package/tests/__screenshots__/solidjs-api.test.ts/Portal-component-Portal-renders-to-selector-mount-target-1.png +0 -0
  148. package/tests/__screenshots__/solidjs-api.test.ts/SolidJS-API-compatibility-createEffect-tracks-dependencies-automatically-1.png +0 -0
  149. package/tests/__screenshots__/solidjs-api.test.ts/Switch-Match-component-Switch-with-accessor-condition-in-Match-1.png +0 -0
  150. package/tests/__screenshots__/solidjs-api.test.ts/Switch-Match-component-Switch-with-multiple-Match-components-1.png +0 -0
  151. package/tests/__screenshots__/solidjs-api.test.ts/Switch-Match-component-Switch-with-single-Match-and-fallback-1.png +0 -0
  152. package/tests/__screenshots__/solidjs-api.test.ts/Switch-Match-components-Switch-updates-DOM-when-signal-changes-1.png +0 -0
  153. package/tests/__screenshots__/solidjs-api.test.ts/on---utility-on-tracks-multiple-dependencies-1.png +0 -0
  154. package/tests/__screenshots__/solidjs-api.test.ts/on---utility-on-tracks-single-dependency-1.png +0 -0
  155. package/tests/__screenshots__/solidjs-api.test.ts/on---utility-on-with-defer-option-skips-initial-run-1.png +0 -0
  156. package/tests/__screenshots__/store.test.ts/createStore-Arrays-array-updates-work-1.png +0 -0
  157. package/tests/__screenshots__/store.test.ts/createStore-Reactivity-only-triggers-when-accessed-property-changes-1.png +0 -0
  158. package/tests/__screenshots__/store.test.ts/createStore-Reactivity-parent-path-change-notifies-child-accessors-1.png +0 -0
  159. package/tests/__screenshots__/store.test.ts/createStore-Reactivity-tracks-nested-property-access-1.png +0 -0
  160. package/tests/__screenshots__/store.test.ts/createStore-Reactivity-tracks-property-access-in-effects-1.png +0 -0
  161. package/tests/context.test.ts +118 -0
  162. package/tests/css-optimizer-extractors.test.ts +264 -0
  163. package/tests/css-optimizer-integration.test.ts +566 -0
  164. package/tests/css-optimizer-transformers.test.ts +301 -0
  165. package/tests/css-optimizer.test.ts +646 -0
  166. package/tests/css-runtime.bench.ts +442 -0
  167. package/tests/css-runtime.test.ts +342 -0
  168. package/tests/dom.test.ts +872 -0
  169. package/tests/integration.test.ts +405 -0
  170. package/tests/issue-5-for-infinite-loop.test.ts +516 -0
  171. package/tests/jsx-runtime.test.tsx +393 -0
  172. package/tests/lifecycle.test.ts +833 -0
  173. package/tests/move-before.bench.ts +304 -0
  174. package/tests/preact-signals-comparison.test.ts +1608 -0
  175. package/tests/resource.test.ts +160 -0
  176. package/tests/router.test.ts +117 -0
  177. package/tests/show-initial-mount-leak.test.tsx +182 -0
  178. package/tests/solidjs-api.test.ts +659 -0
  179. package/tests/static-perf.bench.ts +64 -0
  180. package/tests/store.test.ts +263 -0
  181. package/tests/tsx-syntax.test.tsx +404 -0
  182. package/dist/src-BDdxGwvq.js +0 -1
@@ -0,0 +1,92 @@
1
+ //#region src/css/runtime.d.ts
2
+ /**
3
+ * Development Mode CSS Runtime
4
+ *
5
+ * Provides runtime CSS injection for development mode.
6
+ * In production, this module should NOT be included.
7
+ *
8
+ * Features:
9
+ * - Dynamic CSS injection when rules are missing
10
+ * - Warning mechanism for missing CSS rules
11
+ * - Can be used as a fallback for hot-reload scenarios
12
+ */
13
+ interface CssRuntimeOptions {
14
+ /** Warn in console when generating CSS at runtime (default: true) */
15
+ warnOnGenerate?: boolean;
16
+ /** Style element ID (default: "luna-dev-css") */
17
+ styleId?: string;
18
+ /** Whether to log each rule generation (default: false) */
19
+ verbose?: boolean;
20
+ }
21
+ interface CssRuntimeState {
22
+ /** Generated CSS rules */
23
+ rules: Map<string, string>;
24
+ /** Style element for injection */
25
+ styleEl: HTMLStyleElement | null;
26
+ /** Whether initialized */
27
+ initialized: boolean;
28
+ }
29
+ /**
30
+ * Initialize the CSS runtime
31
+ */
32
+ declare function initCssRuntime(opts?: CssRuntimeOptions): void;
33
+ /**
34
+ * Check if a CSS class exists in stylesheets
35
+ */
36
+ declare function hasClass(className: string): boolean;
37
+ /**
38
+ * Generate CSS for a property:value declaration
39
+ * Returns the class name
40
+ */
41
+ declare function css(property: string, value: string): string;
42
+ /**
43
+ * Generate CSS for multiple property:value pairs
44
+ * Returns space-separated class names
45
+ */
46
+ declare function styles(pairs: [string, string][]): string;
47
+ /**
48
+ * Generate CSS for pseudo-class
49
+ */
50
+ declare function on(pseudo: string, property: string, value: string): string;
51
+ /**
52
+ * Hover shorthand
53
+ */
54
+ declare function hover(property: string, value: string): string;
55
+ /**
56
+ * Focus shorthand
57
+ */
58
+ declare function focus(property: string, value: string): string;
59
+ /**
60
+ * Active shorthand
61
+ */
62
+ declare function active(property: string, value: string): string;
63
+ /**
64
+ * Media query CSS generation
65
+ */
66
+ declare function media(condition: string, property: string, value: string): string;
67
+ /**
68
+ * Responsive breakpoint shortcuts
69
+ */
70
+ declare const at_sm: (p: string, v: string) => string;
71
+ declare const at_md: (p: string, v: string) => string;
72
+ declare const at_lg: (p: string, v: string) => string;
73
+ declare const at_xl: (p: string, v: string) => string;
74
+ declare const dark: (p: string, v: string) => string;
75
+ /**
76
+ * Get all generated CSS as a string
77
+ */
78
+ declare function getGeneratedCss(): string;
79
+ /**
80
+ * Get count of generated rules
81
+ */
82
+ declare function getGeneratedCount(): number;
83
+ /**
84
+ * Reset the runtime state (for testing)
85
+ */
86
+ declare function resetRuntime(): void;
87
+ /**
88
+ * Combine multiple class names
89
+ */
90
+ declare function combine(classes: string[]): string;
91
+ //#endregion
92
+ export { CssRuntimeOptions, CssRuntimeState, active, at_lg, at_md, at_sm, at_xl, combine, css, dark, focus, getGeneratedCount, getGeneratedCss, hasClass, hover, initCssRuntime, media, on, resetRuntime, styles };
@@ -0,0 +1,179 @@
1
+ //#region src/css/runtime.ts
2
+ function djb2Hash(s) {
3
+ let hash = 5381;
4
+ for (let i = 0; i < s.length; i++) {
5
+ const c = s.charCodeAt(i);
6
+ hash = (hash << 5) + hash + c >>> 0;
7
+ }
8
+ return hash;
9
+ }
10
+ function toBase36(n) {
11
+ const chars = "0123456789abcdefghijklmnopqrstuvwxyz";
12
+ n = n & 16777215;
13
+ if (n === 0) return "0";
14
+ let result = "";
15
+ while (n > 0) {
16
+ result = chars[n % 36] + result;
17
+ n = Math.floor(n / 36);
18
+ }
19
+ return result;
20
+ }
21
+ function hashClassName(decl) {
22
+ return "_" + toBase36(djb2Hash(decl));
23
+ }
24
+ const state = {
25
+ rules: /* @__PURE__ */ new Map(),
26
+ styleEl: null,
27
+ initialized: false
28
+ };
29
+ let options = {
30
+ warnOnGenerate: true,
31
+ styleId: "luna-dev-css",
32
+ verbose: false
33
+ };
34
+ /**
35
+ * Initialize the CSS runtime
36
+ */
37
+ function initCssRuntime(opts = {}) {
38
+ options = {
39
+ ...options,
40
+ ...opts
41
+ };
42
+ if (typeof document === "undefined") return;
43
+ if (state.initialized) return;
44
+ state.styleEl = document.getElementById(options.styleId);
45
+ if (!state.styleEl) {
46
+ state.styleEl = document.createElement("style");
47
+ state.styleEl.id = options.styleId;
48
+ state.styleEl.setAttribute("data-luna-dev", "true");
49
+ document.head.appendChild(state.styleEl);
50
+ }
51
+ state.initialized = true;
52
+ if (options.verbose) console.log("[luna-css] Runtime initialized");
53
+ }
54
+ /**
55
+ * Check if a CSS class exists in stylesheets
56
+ */
57
+ function hasClass(className) {
58
+ if (typeof document === "undefined") return true;
59
+ if (state.rules.has(className)) return true;
60
+ for (const sheet of document.styleSheets) try {
61
+ const rules = sheet.cssRules;
62
+ for (const rule of rules) if (rule instanceof CSSStyleRule) {
63
+ if (rule.selectorText === `.${className}`) return true;
64
+ }
65
+ } catch {}
66
+ return false;
67
+ }
68
+ /**
69
+ * Generate CSS for a property:value declaration
70
+ * Returns the class name
71
+ */
72
+ function css(property, value) {
73
+ const decl = `${property}:${value}`;
74
+ const className = hashClassName(decl);
75
+ if (!hasClass(className)) injectRule(className, decl);
76
+ return className;
77
+ }
78
+ /**
79
+ * Generate CSS for multiple property:value pairs
80
+ * Returns space-separated class names
81
+ */
82
+ function styles(pairs) {
83
+ return pairs.map(([p, v]) => css(p, v)).join(" ");
84
+ }
85
+ /**
86
+ * Generate CSS for pseudo-class
87
+ */
88
+ function on(pseudo, property, value) {
89
+ const className = hashClassName(`${pseudo}:${property}:${value}`);
90
+ if (!hasClass(className)) injectPseudoRule(className, pseudo, property, value);
91
+ return className;
92
+ }
93
+ /**
94
+ * Hover shorthand
95
+ */
96
+ function hover(property, value) {
97
+ return on(":hover", property, value);
98
+ }
99
+ /**
100
+ * Focus shorthand
101
+ */
102
+ function focus(property, value) {
103
+ return on(":focus", property, value);
104
+ }
105
+ /**
106
+ * Active shorthand
107
+ */
108
+ function active(property, value) {
109
+ return on(":active", property, value);
110
+ }
111
+ /**
112
+ * Media query CSS generation
113
+ */
114
+ function media(condition, property, value) {
115
+ const className = hashClassName(`@media(${condition}):${property}:${value}`);
116
+ if (!hasClass(className)) injectMediaRule(className, condition, property, value);
117
+ return className;
118
+ }
119
+ /**
120
+ * Responsive breakpoint shortcuts
121
+ */
122
+ const at_sm = (p, v) => media("min-width:640px", p, v);
123
+ const at_md = (p, v) => media("min-width:768px", p, v);
124
+ const at_lg = (p, v) => media("min-width:1024px", p, v);
125
+ const at_xl = (p, v) => media("min-width:1280px", p, v);
126
+ const dark = (p, v) => media("prefers-color-scheme:dark", p, v);
127
+ function injectRule(className, decl) {
128
+ if (!state.initialized) initCssRuntime();
129
+ const rule = `.${className}{${decl}}`;
130
+ state.rules.set(className, rule);
131
+ if (state.styleEl) state.styleEl.textContent += rule;
132
+ if (options.warnOnGenerate) console.warn(`[luna-css] Generated at runtime: .${className} { ${decl} }`, "\n → Consider running 'luna css extract' to pre-generate CSS");
133
+ else if (options.verbose) console.log(`[luna-css] ${rule}`);
134
+ }
135
+ function injectPseudoRule(className, pseudo, property, value) {
136
+ if (!state.initialized) initCssRuntime();
137
+ const rule = `.${className}${pseudo}{${property}:${value}}`;
138
+ state.rules.set(className, rule);
139
+ if (state.styleEl) state.styleEl.textContent += rule;
140
+ if (options.warnOnGenerate) console.warn(`[luna-css] Generated at runtime: .${className}${pseudo} { ${property}: ${value} }`, "\n → Consider running 'luna css extract' to pre-generate CSS");
141
+ else if (options.verbose) console.log(`[luna-css] ${rule}`);
142
+ }
143
+ function injectMediaRule(className, condition, property, value) {
144
+ if (!state.initialized) initCssRuntime();
145
+ const rule = `@media(${condition}){.${className}{${property}:${value}}}`;
146
+ state.rules.set(className, rule);
147
+ if (state.styleEl) state.styleEl.textContent += rule;
148
+ if (options.warnOnGenerate) console.warn(`[luna-css] Generated at runtime: @media(${condition}) { .${className} { ${property}: ${value} } }`, "\n → Consider running 'luna css extract' to pre-generate CSS");
149
+ else if (options.verbose) console.log(`[luna-css] ${rule}`);
150
+ }
151
+ /**
152
+ * Get all generated CSS as a string
153
+ */
154
+ function getGeneratedCss() {
155
+ return Array.from(state.rules.values()).join("");
156
+ }
157
+ /**
158
+ * Get count of generated rules
159
+ */
160
+ function getGeneratedCount() {
161
+ return state.rules.size;
162
+ }
163
+ /**
164
+ * Reset the runtime state (for testing)
165
+ */
166
+ function resetRuntime() {
167
+ state.rules.clear();
168
+ if (state.styleEl) state.styleEl.textContent = "";
169
+ state.initialized = false;
170
+ }
171
+ /**
172
+ * Combine multiple class names
173
+ */
174
+ function combine(classes) {
175
+ return classes.filter(Boolean).join(" ");
176
+ }
177
+
178
+ //#endregion
179
+ export { active, at_lg, at_md, at_sm, at_xl, combine, css, dark, focus, getGeneratedCount, getGeneratedCss, hasClass, hover, initCssRuntime, media, on, resetRuntime, styles };
@@ -1,4 +1,4 @@
1
- //#region ../../target/js/release/build/platform/js/api/moonbit.d.ts
1
+ //#region ../../target/js/release/build/luna/js/api/moonbit.d.ts
2
2
 
3
3
  type Unit = undefined;
4
4
  type Bool = boolean;
@@ -9,7 +9,7 @@ type Int = number;
9
9
  type String = string;
10
10
  type UnboxedOption<T> = /* Some */T | /* None */undefined;
11
11
  //#endregion
12
- //#region ../../target/js/release/build/platform/js/api/api.d.ts
12
+ //#region ../../target/js/release/build/luna/js/api/api.d.ts
13
13
  declare function portalToElementWithShadow(mount: any, children: any): any;
14
14
  declare function portalWithShadow(children: any): any;
15
15
  declare function portalToSelector(selector: String, children: any): any;
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import { C as isSecondaryButton, D as stopPropagation, E as stopEvent, S as isPrimaryButton, T as preventDefault, _ as hasCmdOrCtrl, a as getDataId, b as isEnterKey, c as getKey, d as getPagePos, f as getSelectedIndex, g as getWheelDelta, h as getTextData, i as getDataAttr, l as getMovement, m as getTargetValue, n as getClientPos, o as getDataset, p as getTargetChecked, r as getClosest, s as getDroppedFiles, t as getButton, u as getOffsetPos, v as hasModifier, w as matchesSelector, x as isEscapeKey, y as isComposing } from "./event-utils-Cd5f3Njd.js";
2
- import { $ as jsxs, A as debounced, At as runWithOwner, B as combine, Bt as text, C as createDeferred, Ct as routePageTitled, D as createResource, Dt as routerNavigate, E as createRenderEffect, Et as routerGetPath, F as splitProps, Ft as stateIsPending, G as createRouter, H as createElement, Ht as update, I as Fragment$1, It as stateIsSuccess, J as forEach, K as effect, L as batch, Lt as stateValue, M as on, Mt as show, N as produce, Nt as stateError, O as createSignal, Ot as routerReplace, P as reconcile, Pt as stateIsFailure, Q as jsx, R as batchEnd, Rt as subscribe, S as SwitchProps, St as routePageFull, T as createMemo, Tt as routerGetMatch, U as createElementNs, Ut as useContext, V as createContext, Vt as textDyn, W as createRoot, X as getOwner, Y as get, Z as hasOwner, _ as Setter, _t as resourceIsSuccess, a as Fragment, at as peek, b as Signal, bt as resourceValue, c as LunaNode, ct as portalToSelector, d as Portal, dt as render, et as map, f as PortalProps, ft as renderEffect, g as SetStoreFunction, gt as resourceIsPending, h as ResourceAccessor, ht as resourceIsFailure, i as ForProps, it as onMount, j as mergeProps, jt as set, k as createStore, kt as runUntracked, l as Match, lt as portalWithShadow, m as ProviderProps, mt as resourceGet, n as Context, nt as mount, o as Index, ot as portalToBody, p as Provider, pt as resourceError, q as events, r as For, rt as onCleanup, s as IndexProps, st as portalToElementWithShadow, t as Accessor, tt as mathmlNs, u as MatchProps, ut as provide, v as Show, vt as resourcePeek, w as createEffect, wt as routerGetBase, x as Switch, xt as routePage, y as ShowProps, yt as resourceRefetch, z as batchStart, zt as svgNs } from "./index-CyEkcO3_.js";
2
+ import { $ as jsxs, A as debounced, At as runWithOwner, B as combine, Bt as text, C as createDeferred, Ct as routePageTitled, D as createResource, Dt as routerNavigate, E as createRenderEffect, Et as routerGetPath, F as splitProps, Ft as stateIsPending, G as createRouter, H as createElement, Ht as update, I as Fragment$1, It as stateIsSuccess, J as forEach, K as effect, L as batch, Lt as stateValue, M as on, Mt as show, N as produce, Nt as stateError, O as createSignal, Ot as routerReplace, P as reconcile, Pt as stateIsFailure, Q as jsx, R as batchEnd, Rt as subscribe, S as SwitchProps, St as routePageFull, T as createMemo, Tt as routerGetMatch, U as createElementNs, Ut as useContext, V as createContext, Vt as textDyn, W as createRoot, X as getOwner, Y as get, Z as hasOwner, _ as Setter, _t as resourceIsSuccess, a as Fragment, at as peek, b as Signal, bt as resourceValue, c as LunaNode, ct as portalToSelector, d as Portal, dt as render, et as map, f as PortalProps, ft as renderEffect, g as SetStoreFunction, gt as resourceIsPending, h as ResourceAccessor, ht as resourceIsFailure, i as ForProps, it as onMount, j as mergeProps, jt as set, k as createStore, kt as runUntracked, l as Match, lt as portalWithShadow, m as ProviderProps, mt as resourceGet, n as Context, nt as mount, o as Index, ot as portalToBody, p as Provider, pt as resourceError, q as events, r as For, rt as onCleanup, s as IndexProps, st as portalToElementWithShadow, t as Accessor, tt as mathmlNs, u as MatchProps, ut as provide, v as Show, vt as resourcePeek, w as createEffect, wt as routerGetBase, x as Switch, xt as routePage, y as ShowProps, yt as resourceRefetch, z as batchStart, zt as svgNs } from "./index-CDWzWF-h.js";
3
3
  export { Accessor, Context, For, ForProps, Fragment, Index, IndexProps, LunaNode, Match, MatchProps, Portal, PortalProps, Provider, ProviderProps, ResourceAccessor, SetStoreFunction, Setter, Show, ShowProps, Signal, Switch, SwitchProps, batch, batchEnd, batchStart, combine, createContext, createDeferred, createEffect, createElement, createElementNs, createMemo, createRenderEffect, createResource, createRoot, createRouter, createSignal, createStore, debounced, effect, events, forEach, Fragment$1 as fragment, get, getButton, getClientPos, getClosest, getDataAttr, getDataId, getDataset, getDroppedFiles, getKey, getMovement, getOffsetPos, getOwner, getPagePos, getSelectedIndex, getTargetChecked, getTargetValue, getTextData, getWheelDelta, hasCmdOrCtrl, hasModifier, hasOwner, isComposing, isEnterKey, isEscapeKey, isPrimaryButton, isSecondaryButton, jsx, jsxs, map, matchesSelector, mathmlNs, mergeProps, mount, on, onCleanup, onMount, peek, portalToBody, portalToElementWithShadow, portalToSelector, portalWithShadow, preventDefault, produce, provide, reconcile, render, renderEffect, resourceError, resourceGet, resourceIsFailure, resourceIsPending, resourceIsSuccess, resourcePeek, resourceRefetch, resourceValue, routePage, routePageFull, routePageTitled, routerGetBase, routerGetMatch, routerGetPath, routerNavigate, routerReplace, runUntracked, runUntracked as untrack, runWithOwner, set, show, splitProps, stateError, stateIsFailure, stateIsPending, stateIsSuccess, stateValue, stopEvent, stopPropagation, subscribe, svgNs, text, textDyn, update, useContext };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{$ as ee,A as te,B as e,C as t,Ct as n,D as r,Dt as i,E as a,Et as o,F as s,G as c,H as l,I as u,J as d,K as f,L as p,M as m,N as h,O as g,Ot as _,P as v,Q as y,R as b,S as x,St as S,T as C,Tt as w,U as T,V as E,W as D,X as O,Y as k,Z as A,_ as j,_t as M,a as N,at as P,b as F,bt as I,c as L,ct as R,d as z,dt as B,et as V,f as H,ft as U,g as W,gt as G,h as K,ht as q,i as J,it as Y,j as X,k as Z,kt as Q,l as ne,lt as $,m as re,mt as ie,n as ae,nt as oe,o as se,ot as ce,p as le,pt as ue,q as de,r as fe,rt as pe,s as me,st as he,t as ge,tt as _e,u as ve,ut as ye,v as be,vt as xe,w as Se,wt as Ce,x as we,xt as Te,y as Ee,yt as De,z as Oe}from"./src-BDdxGwvq.js";import{C as ke,D as Ae,E as je,S as Me,T as Ne,_ as Pe,a as Fe,b as Ie,c as Le,d as Re,f as ze,g as Be,h as Ve,i as He,l as Ue,m as We,n as Ge,o as Ke,p as qe,r as Je,s as Ye,t as Xe,u as Ze,v as Qe,w as $e,x as et,y as tt}from"./event-utils-C_M2XBNj.js";export{ge as For,ae as Fragment,fe as Index,J as Match,N as Portal,se as Provider,me as Show,L as Switch,x as batch,t as batchEnd,Se as batchStart,C as combine,a as createContext,ne as createDeferred,ve as createEffect,r as createElement,g as createElementNs,z as createMemo,H as createRenderEffect,le as createResource,Z as createRoot,te as createRouter,re as createSignal,K as createStore,W as debounced,X as effect,m as events,h as forEach,v as fragment,s as get,Xe as getButton,Ge as getClientPos,Je as getClosest,He as getDataAttr,Fe as getDataId,Ke as getDataset,Ye as getDroppedFiles,Le as getKey,Ue as getMovement,Ze as getOffsetPos,u as getOwner,Re as getPagePos,ze as getSelectedIndex,qe as getTargetChecked,We as getTargetValue,Ve as getTextData,Be as getWheelDelta,Pe as hasCmdOrCtrl,Qe as hasModifier,p as hasOwner,tt as isComposing,Ie as isEnterKey,et as isEscapeKey,Me as isPrimaryButton,ke as isSecondaryButton,b as jsx,Oe as jsxs,e as map,$e as matchesSelector,E as mathmlNs,j as mergeProps,l as mount,be as on,T as onCleanup,D as onMount,c as peek,f as portalToBody,de as portalToElementWithShadow,d as portalToSelector,k as portalWithShadow,Ne as preventDefault,Ee as produce,O as provide,F as reconcile,y as render,A as renderEffect,ee as resourceError,V as resourceGet,_e as resourceIsFailure,oe as resourceIsPending,pe as resourceIsSuccess,Y as resourcePeek,P as resourceRefetch,ce as resourceValue,he as routePage,R as routePageFull,$ as routePageTitled,ye as routerGetBase,B as routerGetMatch,U as routerGetPath,ue as routerNavigate,ie as routerReplace,q as runUntracked,q as untrack,G as runWithOwner,M as set,xe as show,we as splitProps,De as stateError,I as stateIsFailure,Te as stateIsPending,S as stateIsSuccess,n as stateValue,je as stopEvent,Ae as stopPropagation,Ce as subscribe,w as svgNs,o as text,i as textDyn,_ as update,Q as useContext};
1
+ import{$ as ee,A as te,B as e,C as t,Ct as n,D as r,Dt as i,E as a,Et as o,F as s,G as c,H as l,I as u,J as d,K as f,L as p,M as m,N as h,O as g,Ot as _,P as v,Q as y,R as b,S as x,St as S,T as C,Tt as w,U as T,V as E,W as D,X as O,Y as k,Z as A,_ as j,_t as M,a as N,at as P,b as F,bt as I,c as L,ct as R,d as z,dt as B,et as V,f as H,ft as U,g as W,gt as G,h as K,ht as q,i as J,it as Y,j as X,k as Z,kt as Q,l as ne,lt as $,m as re,mt as ie,n as ae,nt as oe,o as se,ot as ce,p as le,pt as ue,q as de,r as fe,rt as pe,s as me,st as he,t as ge,tt as _e,u as ve,ut as ye,v as be,vt as xe,w as Se,wt as Ce,x as we,xt as Te,y as Ee,yt as De,z as Oe}from"./src-DEjrAhrg.js";import{C as ke,D as Ae,E as je,S as Me,T as Ne,_ as Pe,a as Fe,b as Ie,c as Le,d as Re,f as ze,g as Be,h as Ve,i as He,l as Ue,m as We,n as Ge,o as Ke,p as qe,r as Je,s as Ye,t as Xe,u as Ze,v as Qe,w as $e,x as et,y as tt}from"./event-utils-C_M2XBNj.js";export{ge as For,ae as Fragment,fe as Index,J as Match,N as Portal,se as Provider,me as Show,L as Switch,x as batch,t as batchEnd,Se as batchStart,C as combine,a as createContext,ne as createDeferred,ve as createEffect,r as createElement,g as createElementNs,z as createMemo,H as createRenderEffect,le as createResource,Z as createRoot,te as createRouter,re as createSignal,K as createStore,W as debounced,X as effect,m as events,h as forEach,v as fragment,s as get,Xe as getButton,Ge as getClientPos,Je as getClosest,He as getDataAttr,Fe as getDataId,Ke as getDataset,Ye as getDroppedFiles,Le as getKey,Ue as getMovement,Ze as getOffsetPos,u as getOwner,Re as getPagePos,ze as getSelectedIndex,qe as getTargetChecked,We as getTargetValue,Ve as getTextData,Be as getWheelDelta,Pe as hasCmdOrCtrl,Qe as hasModifier,p as hasOwner,tt as isComposing,Ie as isEnterKey,et as isEscapeKey,Me as isPrimaryButton,ke as isSecondaryButton,b as jsx,Oe as jsxs,e as map,$e as matchesSelector,E as mathmlNs,j as mergeProps,l as mount,be as on,T as onCleanup,D as onMount,c as peek,f as portalToBody,de as portalToElementWithShadow,d as portalToSelector,k as portalWithShadow,Ne as preventDefault,Ee as produce,O as provide,F as reconcile,y as render,A as renderEffect,ee as resourceError,V as resourceGet,_e as resourceIsFailure,oe as resourceIsPending,pe as resourceIsSuccess,Y as resourcePeek,P as resourceRefetch,ce as resourceValue,he as routePage,R as routePageFull,$ as routePageTitled,ye as routerGetBase,B as routerGetMatch,U as routerGetPath,ue as routerNavigate,ie as routerReplace,q as runUntracked,q as untrack,G as runWithOwner,M as set,xe as show,we as splitProps,De as stateError,I as stateIsFailure,Te as stateIsPending,S as stateIsSuccess,n as stateValue,je as stopEvent,Ae as stopPropagation,Ce as subscribe,w as svgNs,o as text,i as textDyn,_ as update,Q as useContext};
@@ -1 +1 @@
1
- import"./src-BDdxGwvq.js";import{Fragment as e,jsx as t,jsxDEV as n,jsxs as r}from"./jsx-runtime.js";export{e as Fragment,t as jsx,n as jsxDEV,r as jsxs};
1
+ import"./src-DEjrAhrg.js";import{Fragment as e,jsx as t,jsxDEV as n,jsxs as r}from"./jsx-runtime.js";export{e as Fragment,t as jsx,n as jsxDEV,r as jsxs};
@@ -1,4 +1,4 @@
1
- import { c as LunaNode } from "./index-CyEkcO3_.js";
1
+ import { c as LunaNode } from "./index-CDWzWF-h.js";
2
2
 
3
3
  //#region src/jsx-runtime.d.ts
4
4
  type MaybeAccessor<T> = T | (() => T);
@@ -1 +1 @@
1
- import{D as e,Dt as t,Et as n,n as r}from"./src-BDdxGwvq.js";function i(e){return typeof e==`string`?e:typeof e!=`object`||!e?``:Object.entries(e).map(([e,t])=>`${e.replace(/([A-Z])/g,`-$1`).toLowerCase()}: ${t}`).join(`; `)}function a(e){if(!e)return[];let t=[];for(let[n,r]of Object.entries(e)){if(n===`children`)continue;let e=n,a;if(n===`className`&&(e=`class`),n===`dangerouslySetInnerHTML`){if(typeof r==`function`){let e=r;a={$tag:1,_0:()=>e().__html}}else if(r&&typeof r==`object`&&`__html`in r)a={$tag:0,_0:r.__html};else continue;t.push({_0:`__innerHTML`,_1:a});continue}if(n===`style`){if(typeof r==`function`){let e=r;a={$tag:1,_0:()=>i(e())}}else a={$tag:0,_0:i(r)};t.push({_0:e,_1:a});continue}if(n===`ref`&&typeof r==`function`){e=`__ref`,a={$tag:2,_0:r},t.push({_0:e,_1:a});continue}if(n.startsWith(`on`)&&typeof r==`function`){e=n.slice(2).toLowerCase(),a={$tag:2,_0:r},t.push({_0:e,_1:a});continue}a=typeof r==`function`?{$tag:1,_0:r}:{$tag:0,_0:String(r)},t.push({_0:e,_1:a})}return t}function o(e){if(!e)return[];let r;return r=Array.isArray(e)?e:[e],r.flat().map(e=>typeof e==`string`?n(e):typeof e==`number`?n(String(e)):typeof e==`function`&&e.length===0?t(()=>String(e())):e).filter(Boolean)}function s(t,n){let{children:r,...i}=n||{},s=a(i),c=o(r);if(typeof t==`string`)return e(t,s,c);if(typeof t==`function`)return t({...i,children:r});throw Error(`Invalid JSX type: ${t}`)}const c=s;function l({children:e}){return r(o(e))}const u=s;export{l as Fragment,s as jsx,u as jsxDEV,c as jsxs};
1
+ import{D as e,Dt as t,Et as n,n as r}from"./src-DEjrAhrg.js";function i(e){return typeof e==`string`?e:typeof e!=`object`||!e?``:Object.entries(e).map(([e,t])=>`${e.replace(/([A-Z])/g,`-$1`).toLowerCase()}: ${t}`).join(`; `)}function a(e){if(!e)return[];let t=[];for(let[n,r]of Object.entries(e)){if(n===`children`)continue;let e=n,a;if(n===`className`&&(e=`class`),n===`dangerouslySetInnerHTML`){if(typeof r==`function`){let e=r;a={$tag:1,_0:()=>e().__html}}else if(r&&typeof r==`object`&&`__html`in r)a={$tag:0,_0:r.__html};else continue;t.push({_0:`__innerHTML`,_1:a});continue}if(n===`style`){if(typeof r==`function`){let e=r;a={$tag:1,_0:()=>i(e())}}else a={$tag:0,_0:i(r)};t.push({_0:e,_1:a});continue}if(n===`ref`&&typeof r==`function`){e=`__ref`,a={$tag:2,_0:r},t.push({_0:e,_1:a});continue}if(n.startsWith(`on`)&&typeof r==`function`){e=n.slice(2).toLowerCase(),a={$tag:2,_0:r},t.push({_0:e,_1:a});continue}a=typeof r==`function`?{$tag:1,_0:r}:{$tag:0,_0:String(r)},t.push({_0:e,_1:a})}return t}function o(e){if(!e)return[];let r;return r=Array.isArray(e)?e:[e],r.flat().map(e=>typeof e==`string`?n(e):typeof e==`number`?n(String(e)):typeof e==`function`&&e.length===0?t(()=>String(e())):e).filter(Boolean)}function s(t,n){let{children:r,...i}=n||{};if(typeof t==`function`)return t({...i,children:r});if(typeof t==`string`)return e(t,a(i),o(r));throw Error(`Invalid JSX type: ${t}`)}const c=s;function l({children:e}){return r(o(e))}const u=s;export{l as Fragment,s as jsx,u as jsxDEV,c as jsxs};
@@ -0,0 +1 @@
1
+ const e={$tag:0};function t(e){this._0=e}t.prototype.$tag=1;var n=class extends Error{};function r(){throw new n}function i(e,t){if(t<0||t>=e.length)throw Error(`Index out of bounds`)}function a(e,t){let n=Array(e);return n.fill(t),n}function o(e){this._0=e}o.prototype.$tag=0;function s(e){this._0=e}s.prototype.$tag=1;const c={$tag:1},l={$tag:0},u=(e,t)=>e.toString(t),d=(e,t)=>{e.push(t)},f={$tag:0};function ee(e){this._0=e}ee.prototype.$tag=1;function te(e){this._0=e}te.prototype.$tag=2;function ne(e){this._0=e}ne.prototype.$tag=3;function re(e){this._0=e}re.prototype.$tag=4;const ie=e=>e.slice(0),p=(e,t)=>{e.length=t},ae=e=>e.pop(),oe=(e,t,n)=>e.splice(t,n),m=(e,t)=>e[t],h=(e,t,n)=>e[t](...n),se=e=>e==null,ce=()=>({}),g=(e,t,n)=>{e[t]=n},le=()=>null,ue=e=>Object.fromEntries(e.map(e=>[e._0,e._1])),de={$tag:0};function _(e){this._0=e}_.prototype.$tag=1;const fe={$tag:0};function pe(e){this._0=e}pe.prototype.$tag=1;const me={$tag:0};function he(e){this._0=e}he.prototype.$tag=1;const ge=(e,t)=>setTimeout(e,t),_e=e=>clearTimeout(e),v=()=>document,ve=(e,t)=>e.createElement(t),ye=(e,t,n)=>e.createElementNS(t,n),be=(e,t)=>e.createTextNode(t),xe=e=>queueMicrotask(e),Se={$tag:0};function y(e){this._0=e}y.prototype.$tag=1;const b={$tag:0};function Ce(e){this._0=e}Ce.prototype.$tag=1;function we(e){this._0=e}we.prototype.$tag=2;const x={$tag:0};function Te(e){this._0=e}Te.prototype.$tag=1;const Ee=()=>window.location.pathname,De=()=>window.location.search,Oe=e=>window.history.pushState(null,``,e),ke=e=>window.history.replaceState(null,``,e),Ae=e=>window.addEventListener(`popstate`,()=>e());function je(e){this._0=e}je.prototype.$tag=0;function Me(e){this._0=e}Me.prototype.$tag=1;function S(e){this._0=e}S.prototype.$tag=2;function Ne(e){this._0=e}Ne.prototype.$tag=3;const Pe=(e,t)=>document.createElementNS(e,t),Fe=(e,t,n)=>e.addEventListener(t,n),Ie=(e,t)=>e===t,Le=(e,t,n)=>{if(typeof e.moveBefore==`function`)try{return e.moveBefore(t,n),t}catch{return e.insertBefore(t,n)}else return e.insertBefore(t,n)},Re=(e,t)=>{if(typeof e.moveBefore==`function`)try{return e.moveBefore(t,null),t}catch{return e.insertBefore(t,null)}else return e.insertBefore(t,null)},ze=(e,t)=>e.nextSibling===t,Be=(e,t)=>{try{t.parentNode===e?e.removeChild(t):t.parentNode&&t.parentNode.removeChild(t)}catch{}},Ve={$tag:0};function He(e){this._0=e}He.prototype.$tag=1;function Ue(e){this._0=e}Ue.prototype.$tag=0;function We(e){this._0=e}We.prototype.$tag=1;function Ge(e){this._0=e}Ge.prototype.$tag=2;const Ke=e=>queueMicrotask(e);function qe(e,t,n,r){this._0=e,this._1=t,this._2=n,this._3=r}qe.prototype.$tag=0;function Je(e,t,n){this._0=e,this._1=t,this._2=n}Je.prototype.$tag=1;function Ye(e,t){this._0=e,this._1=t}Ye.prototype.$tag=2;function Xe(e,t){this._0=e,this._1=t}Xe.prototype.$tag=3;const Ze=()=>void 0,Qe={method_0:jt,method_1:Mt,method_2:Ht,method_3:mt},$e={val:0},C={current_subscriber:void 0,current_owner:void 0,current_cleanups:e,batch_depth:0,pending_effects:[],pending_ids:[]},et={val:0};function tt(e){return r()}function nt(e){return r()}function rt(e){return r()}function it(e){return r()}function at(e){r()}function ot(e){return r()}function st(e,t){return e===0?t===0:t===1}function ct(e,t){return tt(`${e}\n at ${j(t)}\n`)}function lt(e,t){return nt(`${e}\n at ${j(t)}\n`)}function ut(e,t){return rt(`${e}\n at ${j(t)}\n`)}function dt(e,t){return it(`${e}\n at ${j(t)}\n`)}function ft(e,t){at(`${e}\n at ${j(t)}\n`)}function pt(e,t){return ot(`${e}\n at ${j(t)}\n`)}function w(e){return{val:``}}function mt(e,t){let n=e;n.val=`${n.val}${String.fromCodePoint(t)}`}function ht(e,t){return(((Math.imul(e-55296|0,1024)|0)+t|0)-56320|0)+65536|0}function gt(e,t){return!st(e,t)}function _t(e,t){let n=e.length;return t>=0&&t<n?(i(e,t),e[t]):r()}function vt(e,t){let n=e.length;return t>=0&&t<n?(i(e,t),e[t]):r()}function yt(e,t){let n=e.length;return t>=0&&t<n?(i(e,t),e[t]):r()}function bt(e,t){let n=e.length;return t>=0&&t<n?(i(e,t),e[t]):r()}function xt(e,t){let n=e.length;return t>=0&&t<n?(i(e,t),e[t]):r()}function St(e,t){let n=e.length;return t>=0&&t<n?(i(e,t),e[t]):r()}function Ct(e,t){let n=e.length;return t>=0&&t<n?(i(e,t),e[t]):r()}function T(e,t){let n=e.length;return t>=0&&t<n?(i(e,t),e[t]):r()}function wt(e,t){let n=e.length;return t>=0&&t<n?(i(e,t),e[t]):r()}function Tt(e,t){let n=e.end-e.start|0,r=t.end-t.start|0;if(r>0)if(n>=r){let o=a(256,r),s=r-1|0,c=0;for(;;){let e=c;if(e<s){let n=t.str,a=t.start+e|0,s=n.charCodeAt(a)&255;i(o,s),o[s]=(r-1|0)-e|0,c=e+1|0;continue}else break}let l=0;for(;;){let a=l;if(a<=(n-r|0)){let n=r-1|0,s=0;for(;;){let r=s;if(r<=n){let n=a+r|0,i=e.str,o=e.start+n|0,c=i.charCodeAt(o),l=t.str,u=t.start+r|0;if(c!==l.charCodeAt(u))break;s=r+1|0;continue}else return a}let c=(a+r|0)-1|0,u=e.str,d=e.start+c|0,f=u.charCodeAt(d)&255;i(o,f),l=a+o[f]|0;continue}else break}return}else return;else return 0}function Et(e,t){let n=e.end-e.start|0,r=t.end-t.start|0;if(r>0)if(n>=r){let i=t.str,a=t.start+0|0,o=i.charCodeAt(a),s=n-r|0,c=0;for(;c<=s;){for(;;){let t;if(c<=s){let n=c,r=e.str,i=e.start+n|0;t=r.charCodeAt(i)!==o}else t=!1;if(t){c=c+1|0;continue}else break}if(c<=s){let n=1;for(;;){let i=n;if(i<r){let r=c+i|0,a=e.str,o=e.start+r|0,s=a.charCodeAt(o),l=t.str,u=t.start+i|0;if(s!==l.charCodeAt(u))break;n=i+1|0;continue}else return c}c=c+1|0}}return}else return;else return 0}function E(e,t){return(t.end-t.start|0)<=4?Et(e,t):Tt(e,t)}function Dt(e,t){let n=e.end-e.start|0,r=t.end-t.start|0;if(r>0)if(n>=r){let o=a(256,r),s=r-1|0;for(;;){let e=s;if(e>0){let n=t.str,r=t.start+e|0,a=n.charCodeAt(r)&255;i(o,a),o[a]=e,s=e-1|0;continue}else break}let c=n-r|0;for(;;){let n=c;if(n>=0){let a=0;for(;;){let i=a;if(i<r){let r=n+i|0,o=e.str,s=e.start+r|0,c=o.charCodeAt(s),l=t.str,u=t.start+i|0;if(c!==l.charCodeAt(u))break;a=i+1|0;continue}else return n}let s=e.str,l=e.start+n|0,u=s.charCodeAt(l)&255;i(o,u),c=n-o[u]|0;continue}else break}return}else return;else return n}function Ot(e,t){let n=e.end-e.start|0,r=t.end-t.start|0;if(r>0)if(n>=r){let i=t.str,a=t.start+0|0,o=i.charCodeAt(a),s=n-r|0;for(;s>=0;){for(;;){let t;if(s>=0){let n=s,r=e.str,i=e.start+n|0;t=r.charCodeAt(i)!==o}else t=!1;if(t){s=s-1|0;continue}else break}if(s>=0){let n=1;for(;;){let i=n;if(i<r){let r=s+i|0,a=e.str,o=e.start+r|0,c=a.charCodeAt(o),l=t.str,u=t.start+i|0;if(c!==l.charCodeAt(u))break;n=i+1|0;continue}else return s}s=s-1|0}}return}else return;else return n}function D(e,t){return(t.end-t.start|0)<=4?Ot(e,t):Dt(e,t)}function O(e,t,n){let r;return r=n===void 0?e.end-e.start|0:n,t>=0&&t<=r&&r<=(e.end-e.start|0)?{str:e.str,start:e.start+t|0,end:e.start+r|0}:dt(`Invalid index for View`,`@moonbitlang/core/builtin:stringview.mbt:111:5-111:36`)}function kt(e){let t=E(e,{str:`:`,start:0,end:1});if(t!==void 0){let n=t;return n>0&&(n+1|0)<(e.end-e.start|0)?{_0:O(e,0,n),_1:O(e,n+1|0,void 0)}:void 0}}function At(e){_L:if(Rt(e,1,0,e.length))if(e.charCodeAt(0)===64){let t=Vt(e,1,0,e.length),n;n=t===void 0?e.length:t;let i={str:e,start:n,end:e.length},a=E(i,{str:`:`,start:0,end:1});if(a===void 0)return r();{let e=a,t=O(i,0,e),n=D(i,{str:`-`,start:0,end:1});if(n===void 0)return r();{let a=n;if((a+1|0)<(i.end-i.start|0)){let n=kt(O(i,a+1|0,void 0));if(n===void 0)return r();{let o=n,s=o._0,c=o._1,l=O(i,0,a);_L$2:{let n=D(l,{str:`:`,start:0,end:1});if(n===void 0)break _L$2;{let i=D(O(l,0,n),{str:`:`,start:0,end:1});if(i===void 0)break _L$2;{let n=i;if((n+1|0)<(l.end-l.start|0)){let i=kt(O(l,n+1|0,void 0));if(i===void 0)return r();{let a=i,o=a._0,u=a._1;return n>(e+1|0)?{pkg:t,filename:O(l,e+1|0,n),start_line:o,start_column:u,end_line:s,end_column:c}:r()}}else return r()}}}return r()}}else return r()}}}else break _L;else break _L;return r()}function jt(e,t){let n=e;n.val=`${n.val}${t}`}function k(e,t,n){let r=e.length,i;if(n===void 0)i=r;else{let e=n;i=e<0?r+e|0:e}let a=t<0?r+t|0:t;if(a>=0&&a<=i&&i<=r){let t;if(a<r){let n=e.charCodeAt(a);t=56320<=n&&n<=57343}else t=!1;if(t)return new o(l);let n;if(i<r){let t=e.charCodeAt(i);n=56320<=t&&t<=57343}else n=!1;return n?new o(l):new s({str:e,start:a,end:i})}else return new o(c)}function Mt(e,t,n,i){let a;_L:{_L$2:{let e=k(t,n,n+i|0);if(e.$tag===1)a=e._0;else{e._0;break _L$2}break _L}a=r()}Ht(e,a)}function A(e){let t=w(0);return on(e,{self:t,method_table:Qe}),t.val}function j(e){let t=w(0);return pn(e,{self:t,method_table:Qe}),t.val}function Nt(e,t){return u(e,t)}function M(e){return e.str.substring(e.start,e.end)}function Pt(e){return e()}function Ft(e){return e()}function It(e){return t=>{for(;;){let n=Pt(e);if(n===void 0)return 1;if(t(n)!==1)return 0}}}function Lt(e){return t=>{for(;;){let n=Ft(e);if(n===-1)return 1;if(t(n)!==1)return 0}}}function N(e){let t=w(Math.imul(e.end-e.start|0,4)|0),n=e.end-e.start|0,r=0;for(;;){let i=r;if(i<n){let n=e.buf[e.start+i|0];mt(t,n),r=i+1|0;continue}else break}return t.val}function Rt(e,t,n,r){let i;i=r===void 0?e.length:r;let a=n,o=0;for(;;){let n=a,r=o;if(n<i&&r<t){let t=e.charCodeAt(n);if(55296<=t&&t<=56319&&(n+1|0)<i){let t=n+1|0,i=e.charCodeAt(t);if(56320<=i&&i<=57343){a=n+2|0,o=r+1|0;continue}else ft(`invalid surrogate pair`,`@moonbitlang/core/builtin:string.mbt:491:9-491:40`)}a=n+1|0,o=r+1|0;continue}else return r>=t}}function zt(e,t,n,r){let i=0,a=r;for(;(a-1|0)>=n&&i<t;){let t=a-1|0,n=e.charCodeAt(t);a=56320<=n&&n<=57343?a-2|0:a-1|0,i=i+1|0}return i<t||a<n?void 0:a}function Bt(e,t,n,r){if(n>=0&&n<=r){let i=n,a=0;for(;i<r&&a<t;){let t=i,n=e.charCodeAt(t);i=55296<=n&&n<=56319?i+2|0:i+1|0,a=a+1|0}return a<t||i>=r?void 0:i}else return pt(`Invalid start index`,`@moonbitlang/core/builtin:string.mbt:366:5-366:33`)}function Vt(e,t,n,r){let i;return i=r===void 0?e.length:r,t>=0?Bt(e,t,n,i):zt(e,-t|0,n,i)}function Ht(e,t){let n=e;n.val=`${n.val}${M(t)}`}function Ut(e,t){let n=D(e,t);return n===void 0?!1:n===((e.end-e.start|0)-(t.end-t.start|0)|0)}function Wt(e,t){return Ut({str:e,start:0,end:e.length},t)}function Gt(e,t){let n=E(e,t);return n===void 0?!1:n===0}function P(e,t){return Gt({str:e,start:0,end:e.length},t)}function Kt(e){return[]}function F(e,t){d(e,t)}function I(e,t){d(e,t)}function qt(e,t){d(e,t)}function Jt(e,t){d(e,t)}function Yt(e,t){d(e,t)}function Xt(e,t){d(e,t)}function Zt(e,t){d(e,t)}function Qt(e,t){d(e,t)}function $t(e,t){d(e,t)}function L(e,t){d(e,t)}function R(e,t){d(e,t)}function z(e,t){d(e,t)}function en(e){let t=e.length,n={val:0};return()=>{if(n.val<t){let r=n.val,i=e.charCodeAt(r);if(55296<=i&&i<=56319&&(n.val+1|0)<t){let t=n.val+1|0,r=e.charCodeAt(t);if(56320<=r&&r<=57343){let e=ht(i,r);return n.val=n.val+2|0,e}}return n.val=n.val+1|0,i}else return-1}}function tn(e){return Lt(en(e))}function nn(e,t){return e(t)}function rn(e){return String.fromCodePoint(e)}function an(e){let t=tn(e),n={val:Kt(e.length)},i={val:f};t(e=>{let t=n.val;return z(t,e),n.val=t,1});let a=i.val;switch(a.$tag){case 0:break;case 1:a._0;break;case 2:return a._0;case 3:r();break;default:r()}return n.val}function on(e,t){t.method_table.method_0(t.self,Nt(e,10))}function sn(e){let t={val:0};return()=>{if(t.val<(e.end-e.start|0)){let n=e.buf[e.start+t.val|0];return t.val=t.val+1|0,n}else return}}function cn(e){return sn({buf:e,start:0,end:e.length})}function B(e){return It(cn(e))}function V(e,t){return gt(nn(e,e=>t(e)?0:1),1)}function ln(e,t){let n=Array(e),r=0;for(;;){let i=r;if(i<e){n[i]=t,r=i+1|0;continue}else break}return n}function un(e,t,n){let a=e.length;if(t>=0&&t<a){i(e,t),e[t]=n;return}else{r();return}}function dn(e,t,n){let a=e.length;if(t>=0&&t<a){i(e,t),e[t]=n;return}else{r();return}}function fn(e,t){let n=e.pkg,r=E(n,{str:`/`,start:0,end:1}),i;if(r===void 0)i={_0:n,_1:void 0};else{let e=r,t=E(O(n,e+1|0,void 0),{str:`/`,start:0,end:1});if(t===void 0)i={_0:n,_1:void 0};else{let r=t,a=(e+1|0)+r|0;i={_0:O(n,0,a),_1:O(n,a+1|0,void 0)}}}let a=i._0,o=i._1;if(o!==void 0){let e=o;t.method_table.method_2(t.self,e),t.method_table.method_3(t.self,47)}t.method_table.method_2(t.self,e.filename),t.method_table.method_3(t.self,58),t.method_table.method_2(t.self,e.start_line),t.method_table.method_3(t.self,58),t.method_table.method_2(t.self,e.start_column),t.method_table.method_3(t.self,45),t.method_table.method_2(t.self,e.end_line),t.method_table.method_3(t.self,58),t.method_table.method_2(t.self,e.end_column),t.method_table.method_3(t.self,64),t.method_table.method_2(t.self,a)}function pn(e,t){fn(At(e),t)}function mn(e,t,n){let r=e.length,i;if(n===void 0)i=r;else{let e=n;i=e<0?r+e|0:e}let a=t<0?r+t|0:t;return a>=0&&a<=i&&i<=r?{buf:e,start:a,end:i}:ut(`View index out of bounds`,`@moonbitlang/core/builtin:arrayview.mbt:200:5-200:38`)}function hn(e,t){p(e,t)}function gn(e,t){p(e,t)}function _n(e,t){p(e,t)}function vn(e,t){p(e,t)}function yn(e,t){p(e,t)}function bn(e){return ae(e)}function xn(e){return e.length===0?-1:bn(e)}function Sn(e,t){if(t>=0&&t<e.length){i(e,t);let n=e[t];return oe(e,t,1),n}else return ct(`index out of bounds: the len is from 0 to ${A(e.length)} but the index is ${A(t)}`,`@moonbitlang/core/builtin:arraycore_js.mbt:241:5-243:6`)}function Cn(e,t){if(t>=0&&t<e.length){i(e,t);let n=e[t];return oe(e,t,1),n}else return lt(`index out of bounds: the len is from 0 to ${A(e.length)} but the index is ${A(t)}`,`@moonbitlang/core/builtin:arraycore_js.mbt:241:5-243:6`)}function wn(e){return ie(e)}function Tn(e){gn(e,0)}function En(e){_n(e,0)}function Dn(e){yn(e,0)}function On(e){return se(e)?de:new _(e)}function kn(e){return se(e)?fe:new pe(e)}function An(e){return se(e)?me:new he(e)}function jn(e,t,n){return{mode:e,delegatesFocus:t,slotAssignment:n}}function Mn(e,t){return h(e,`attachShadow`,[ue([{_0:`mode`,_1:t.mode},{_0:`delegatesFocus`,_1:t.delegatesFocus},{_0:`slotAssignment`,_1:t.slotAssignment}])])}function Nn(e){return m(e,`nodeType`)}function H(e){return On(m(e,`parentNode`))}function Pn(e){return On(m(e,`firstChild`))}function U(e,t){return h(e,`appendChild`,[t])}function W(e,t){return h(e,`removeChild`,[t])}function Fn(e,t,n){if(n.$tag===1){let r=n._0;return h(e,`insertBefore`,[t,r])}else return h(e,`insertBefore`,[t,le()])}function In(e,t){g(e,`textContent`,t)}function Ln(e,t){g(e,`className`,t)}function Rn(e,t,n){h(e,`setAttribute`,[t,n])}function zn(e,t){h(e,`removeAttribute`,[t])}function Bn(e,t){return kn(h(e,`querySelector`,[t]))}function Vn(e){return An(m(e,`body`))}function Hn(e){return h(e,`createDocumentFragment`,[])}function Un(e,t){return h(e,`createComment`,[t])}function G(){let e=$e.val;return $e.val=e+1|0,e}function Wn(e){let t=e.length-1|0;for(;;){let n=t;if(n>=0){yt(e,n)(),t=n-1|0;continue}else break}En(e)}function Gn(e){let t=C.current_cleanups;return C.current_cleanups=e,t}function Kn(e,n){let r=Gn(new t(e));n(),C.current_cleanups=r}function qn(e,t){let n=C.current_subscriber;C.current_subscriber=e;let r=t();return C.current_subscriber=n,r}function Jn(e,t){let n=C.current_subscriber;C.current_subscriber=e,t(),C.current_subscriber=n}function Yn(e,t){let n=G(),r={val:void 0},i={id:n,run:()=>{if(!t.active)return;Wn(t.cleanups);let n=r.val;n!==void 0&&Jn(n,()=>{Kn(t.cleanups,e)})}};return r.val=i,{_0:i,_1:()=>{t.active=!1,Wn(t.cleanups)}}}function Xn(e){let t=C.current_owner;t!==void 0&&F(t.disposers,e)}function K(e){let t=Yn(e,{active:!0,cleanups:[]}),n=t._0,r=t._1,i=n.run;return i(),Xn(r),r}function q(e){let t=C.current_subscriber;if(t!==void 0){let n=t;V(B(e.subscribers),e=>e.id===n.id)||I(e.subscribers,n)}return e.value}function Zn(e){let t=C.current_subscriber;if(t!==void 0){let n=t;V(B(e.subscribers),e=>e.id===n.id)||I(e.subscribers,n)}return e.value}function Qn(e){let t=C.current_subscriber;if(t!==void 0){let n=t;V(B(e.subscribers),e=>e.id===n.id)||I(e.subscribers,n)}return e.value}function $n(e){let t=C.current_subscriber;if(t!==void 0){let n=t;V(B(e.subscribers),e=>e.id===n.id)||I(e.subscribers,n)}return e.value}function er(e){return{value:e,subscribers:[]}}function tr(e){return{value:e,subscribers:[]}}function nr(e){return{value:e,subscribers:[]}}function rr(e){return{value:e,subscribers:[]}}function ir(e){return er(e)}function ar(e){return tr(e)}function or(e){return nr(e)}function sr(e){return rr(e)}function cr(e){let t=C.pending_ids,n=t.length,r=0;for(;;){let i=r;if(i<n){if(t[i]===e)return!0;r=i+1|0;continue}else break}return!1}function J(e){if(C.batch_depth>0){if(cr(e.id))return;Yt(C.pending_ids,e.id),I(C.pending_effects,e);return}else{let t=e.run;t();return}}function lr(e){let t=e.subscribers,n=t.length,r=0;for(;;){let e=r;if(e<n){let n=t[e];J(n),r=e+1|0;continue}else return}}function ur(e){let t=e.subscribers,n=t.length,r=0;for(;;){let e=r;if(e<n){let n=t[e];J(n),r=e+1|0;continue}else return}}function dr(e){let t=e.subscribers,n=t.length,r=0;for(;;){let e=r;if(e<n){let n=t[e];J(n),r=e+1|0;continue}else return}}function fr(e){let t=e.subscribers,n=t.length,r=0;for(;;){let e=r;if(e<n){let n=t[e];J(n),r=e+1|0;continue}else return}}function pr(e,t){e.value=t,lr(e)}function Y(e,t){e.value=t,ur(e)}function mr(e,t){e.value=t,dr(e)}function hr(e,t){e.value=t,fr(e)}function gr(e){let t={active:!0,cleanups:[]},n=Yn(e,t),r=n._0,i=n._1;return xe(()=>{if(t.active){let e=r.run;e();return}else return}),Xn(i),i}function _r(e,t){e.value=t(e.value),lr(e)}function vr(e){let t=G(),n={value:Se,dirty:!0,subscribers:[]},r={val:void 0};return r.val={id:t,run:()=>{if(!n.dirty){n.dirty=!0;let e=n.subscribers,t=e.length,r=0;for(;;){let n=r;if(n<t){let t=e[n];J(t),r=n+1|0;continue}else return}}}},()=>{let t=C.current_subscriber;if(t!==void 0){let e=t;V(B(n.subscribers),t=>t.id===e.id)||I(n.subscribers,e)}if(n.dirty){let t=r.val;t===void 0||(n.value=new y(qn(t,e)),n.dirty=!1)}let i=n.value;if(i.$tag===1)return i._0;{let t=e();return n.value=new y(t),t}}}function yr(e,t){let n=e.subscribers,r=n.length,i=0,a=0;for(;;){let e=i,o=a;if(e<r){let r=n[e];if(r.id!==t){n[o]=r,i=e+1|0,a=o+1|0;continue}i=e+1|0;continue}else{hn(n,o);return}}}function br(e,t){let n=G(),r={val:!0},i={id:n,run:()=>{if(r.val){t(e.value);return}else return}};return I(e.subscribers,i),()=>{r.val=!1,yr(e,n)}}function xr(e){return e.$tag===0}function Sr(e){return e.$tag===1}function Cr(e){return e.$tag===2}function wr(e){if(e.$tag===1){let t=e._0;return new y(t)}else return Se}function Tr(e){if(e.$tag===2)return e._0}function Er(e){return $n(e.state)}function Dr(e){return e.state.value}function Or(e){let t=e.state;return xr(t.value)}function kr(e){let t=e.state;return Sr(t.value)}function Ar(e){let t=e.state;return Cr(t.value)}function jr(e){let t=e.state;return wr(t.value)}function Mr(e){let t=e.state;return Tr(t.value)}function Nr(e){let t=e.refetch_;t()}function Pr(e){let t=ar(b),n=e=>{Y(t,new Ce(e))},r=e=>{Y(t,new we(e))},i=()=>{Y(t,b),e(n,r)};return i(),{state:t,refetch_:i}}function Fr(){let e=ar(b);return{_0:{state:e,refetch_:()=>{Y(e,b)}},_1:t=>{Y(e,new Ce(t))},_2:t=>{Y(e,new we(t))}}}function Ir(e){let t=et.val;return et.val=t+1|0,{id:t,default_value:()=>e,providers:[]}}function Lr(e,t){let n=t;for(;;){let t=n;if(t===void 0)return!1;{let r=t;if(r.id===e)return!r.disposed;n=r.parent;continue}}}function Rr(e,t){let n=e.providers.length-1|0;for(;;){let r=n;if(r>=0){let i=bt(e.providers,r),a=i._0,o=i._1;if(Lr(a,t))return o;n=r-1|0;continue}else break}}function zr(e,t){let n=C.current_owner;C.current_owner=e;let r=t();return C.current_owner=n,r}function Br(e,t){let n=C.current_owner;C.current_owner=e,t(),C.current_owner=n}function Vr(e,t){let n=C.current_owner;C.current_owner=e;let r=t();return C.current_owner=n,r}function Hr(e,t){let n=C.current_owner;C.current_owner=e;let r=t();return C.current_owner=n,r}function Ur(e,t){let n=C.current_owner;C.current_owner=e;let r=t();return C.current_owner=n,r}function Wr(e){if(e.disposed)return;e.disposed=!0;let t=e.children.length-1|0;for(;;){let n=t;if(n>=0){Wr(vt(e.children,n)),t=n-1|0;continue}else break}let n=e.disposers.length-1|0;for(;;){let t=n;if(t>=0){yt(e.disposers,t)(),n=t-1|0;continue}else break}let r=e.cleanups.length-1|0;for(;;){let t=r;if(t>=0){yt(e.cleanups,t)(),r=t-1|0;continue}else break}Tn(e.children),En(e.disposers),En(e.cleanups);let i=e.parent;if(i!==void 0){let t=i.children,n=t.length,r=0,a=0;for(;;){let i=r,o=a;if(i<n){let n=t[i];if(n.id!==e.id){t[o]=n,r=i+1|0,a=o+1|0;continue}r=i+1|0;continue}else{gn(t,o);return}}}}function Gr(e){let t={id:G(),parent:e,children:[],cleanups:[],disposers:[],disposed:!1};return e===void 0||Xt(e.children,t),t}function Kr(e){let t=Gr(C.current_owner),n=()=>{Wr(t)};return zr(t,()=>e(n))}function qr(e,t,n){let r=C.current_owner,i=Gr(r),a=i.id;return Zt(e.providers,{_0:a,_1:()=>t}),F(i.cleanups,()=>{let t=e.providers,n=t.length,r=0,i=0;for(;;){let e=r,o=i;if(e<n){let n=t[e];if(n._0!==a){t[o]=n,r=e+1|0,i=o+1|0;continue}r=e+1|0;continue}else{vn(t,o);return}}}),zr(i,n)}function Jr(e,t,n){return C.current_owner===void 0?Kr(r=>qr(e,t,n)):qr(e,t,n)}function Yr(e){let t=C.current_owner,n=Rr(e,t);if(n===void 0){let t=e.default_value;return t()}else return n()}function Xr(e){let t=C.current_subscriber;C.current_subscriber=void 0;let n=e();return C.current_subscriber=t,n}function Zr(e){let t=C.current_subscriber;C.current_subscriber=void 0,e(),C.current_subscriber=t}function Qr(e){let t=C.current_subscriber;C.current_subscriber=void 0;let n=e();return C.current_subscriber=t,n}function $r(e){let t=C.current_subscriber;C.current_subscriber=void 0;let n=e();return C.current_subscriber=t,n}function ei(e){let t=C.current_subscriber;C.current_subscriber=void 0;let n=e();return C.current_subscriber=t,n}function ti(e){let t=C.current_subscriber;C.current_subscriber=void 0;let n=e();return C.current_subscriber=t,n}function ni(){C.batch_depth=C.batch_depth+1|0}function ri(){for(;;)if(C.pending_effects.length>0){let e=Sn(C.pending_effects,0);Cn(C.pending_ids,0);let t=e.run;t();continue}else return}function ii(){if(C.batch_depth=C.batch_depth-1|0,C.batch_depth===0){ri();return}else return}function ai(e){ni();let t=e();return ii(),t}function oi(e){let t=C.current_cleanups;if(t.$tag===1){let n=t._0;F(n,e);return}else{let t=C.current_owner;if(t===void 0)return;F(t.cleanups,e);return}}function si(e){let t=Gr(C.current_owner);return{_0:Hr(t,e),_1:()=>{Wr(t)}}}function ci(e,t){return e===void 0?t():Vr(e,t)}function li(e,t){return e===void 0?t():Ur(e,t)}function ui(e,t){return vr(()=>t(q(e)))}function di(e,t,n){return vr(()=>n(q(e),q(t)))}function X(e,t){let n=[],r=an(e),i=[],a=r.length,o=0;for(;;){let e=o;if(e<a){let a=r[e];a===t?(L(n,N({buf:i,start:0,end:i.length})),Dn(i)):z(i,a),o=e+1|0;continue}else break}return L(n,N({buf:i,start:0,end:i.length})),n}function fi(e){if(e!==``){let t=[],n=X(e,38),r=n.length,i=0;for(;;){let e=i;if(e<r){let r=n[e],a=X(r,61);if(a.length===2)R(t,{_0:T(a,0),_1:T(a,1)});else{let e;e=a.length===1?T(a,0)!==``:!1,e&&R(t,{_0:T(a,0),_1:``})}i=e+1|0;continue}else break}return t}else return[]}function pi(e){let t=an(e),n=-1,r=t.length,i=0;for(;;){let e=i;if(e<r){if(t[e]===63){n=e;break}i=e+1|0;continue}else break}return n===-1?{_0:e,_1:[]}:{_0:N(mn(t,0,n)),_1:fi(N(mn(t,n+1|0,void 0)))}}function mi(e){return P(e,{str:`[`,start:0,end:1})&&Wt(e,{str:`]`,start:0,end:1})&&!P(e,{str:`[...`,start:0,end:4})&&!P(e,{str:`[[...`,start:0,end:5})}function hi(e){if(e.length===0)return``;let t=w(0),n=e.length,r=0;for(;;){let i=r;if(i<n){let n=e[i];i>0&&jt(t,`/`),jt(t,n),r=i+1|0;continue}else break}return t.val}function gi(e){let t=X(e,47),n=[],r=t.length,i=0;for(;;){let e=i;if(e<r){let r=t[e];r!==``&&L(n,r),i=e+1|0;continue}else break}return n}function _i(e,t){let n=rn(t);return P(e,{str:n,start:0,end:n.length})}function vi(e,t){let n=gi(t.pattern),r=gi(e),i=t.catch_all;if(i===void 0){if(n.length!==r.length)return x;let e=[],i=0,a=n.length,o=0;for(;;){let s=o;if(s<a){let a=n[s],c=T(r,s);if(_i(a,58)||mi(a))if(i<t.param_names.length)R(e,{_0:T(t.param_names,i),_1:c}),i=i+1|0;else return x;else if(a!==c)return x;o=s+1|0;continue}else break}return new Te(e)}else{let e=i,a=n.length-1|0,o=r.length;if(e.optional){if(o<a)return x}else if(o<=a)return x;let s=[],c=0,l=0;for(;;){let e=l;if(e<a){let i=T(n,e),a=T(r,e);if(_i(i,58)||mi(i))if(c<t.param_names.length)R(s,{_0:T(t.param_names,c),_1:a}),c=c+1|0;else return x;else if(i!==a)return x;l=e+1|0;continue}else break}let u=[],d=a;for(;;){let e=d;if(e<o){L(u,T(r,e)),d=e+1|0;continue}else break}let f=hi(u);return R(s,{_0:e.name,_1:f}),new Te(s)}}function yi(e,t){let n=pi(e),r=n._0,i=n._1,a=t.length,o=0;for(;;){let e=o;if(e<a){let n=t[e],a=vi(r,n);if(a.$tag===1)return{route:n,params:a._0,query:i,path:r};o=e+1|0;continue}else break}}function bi(e){if(e===``||e===`/`)return`/`;let t=an(e),n=[],r=!1,i=t.length,a=0;for(;;){let e=a;if(e<i){let i=t[e];i===47?(r||z(n,i),r=!0):(z(n,i),r=!1),a=e+1|0;continue}else break}let o=n.length;return o>1&&wt(n,o-1|0)===47&&xn(n),N({buf:n,start:0,end:n.length})}function xi(e){let t=[],n=X(e,47),r=n.length,i=0;for(;;){let e=i;if(e<r){_L:{let r=n[e];if(P(r,{str:`:`,start:0,end:1})&&r.length>1){let e;_L$2:{_L$3:{let t=k(r,1,void 0),n;if(t.$tag===1)n=t._0;else{t._0;break _L$3}e=M(n);break _L$2}break _L}L(t,e)}else if(P(r,{str:`[`,start:0,end:1})&&!P(r,{str:`[...`,start:0,end:4})&&!P(r,{str:`[[...`,start:0,end:5})&&Wt(r,{str:`]`,start:0,end:1})&&r.length>2){let e;_L$2:{_L$3:{let t=k(r,1,r.length-1|0),n;if(t.$tag===1)n=t._0;else{t._0;break _L$3}e=M(n);break _L$2}break _L}L(t,e)}break _L}i=e+1|0;continue}else break}return t}function Si(e){let t=X(e,47);if(t.length===0)return;let n=T(t,t.length-1|0);if(P(n,{str:`[[...`,start:0,end:5})&&Wt(n,{str:`]]`,start:0,end:2})&&n.length>7){let e;_L:{_L$2:{let t=k(n,5,n.length-2|0),r;if(t.$tag===1)r=t._0;else{t._0;break _L$2}e=M(r);break _L}return}return{name:e,optional:!0}}if(P(n,{str:`[...`,start:0,end:4})&&Wt(n,{str:`]`,start:0,end:1})&&n.length>5){let e;_L:{_L$2:{let t=k(n,4,n.length-1|0),r;if(t.$tag===1)r=t._0;else{t._0;break _L$2}e=M(r);break _L}return}return{name:e,optional:!1}}}function Ci(e,t,n,r){let i=e.length,a=0;for(;;){let o=a;if(o<i){let i=e[o];switch(i.$tag){case 0:{let e=i,a=e._0,o=e._1,s=e._2,c=e._3,l=bi(`${t}${a}`),u=xi(l),d=Si(l);$t(r,{pattern:l,param_names:u,component:o,layouts:wn(n),kind:0,title:s,meta:c,catch_all:d});break}case 2:{let e=i,n=e._0,a=e._1,o=bi(`${t}${n}`);$t(r,{pattern:o,param_names:xi(o),component:a,layouts:[],kind:1,title:``,meta:[],catch_all:Si(o)});break}case 3:{let e=i,n=e._0,a=e._1,o=bi(`${t}${n}`);$t(r,{pattern:o,param_names:xi(o),component:a,layouts:[],kind:2,title:``,meta:[],catch_all:Si(o)});break}default:{let e=i,a=e._0,o=e._1,s=e._2,c=bi(`${t}${a}`),l=wn(n);L(l,s),Ci(o,c,l,r)}}a=o+1|0;continue}else return}}function wi(e,t){let n=[];return Ci(e,t,[],n),n}function Ti(){let e=Ee(),t=De();return t===``?e:`${e}${t}`}function Ei(e){let t=Ti();mr(e.current_path,t),hr(e.current_match,yi(t,e.routes))}function Di(e,t){let n=wi(e,t),r=Ti(),i=yi(r,n),a={routes:n,base:t,current_path:or(r),current_match:sr(i)};return Ae(()=>{Ei(a)}),a}function Oi(e,t){mr(e.current_path,t),hr(e.current_match,yi(t,e.routes))}function ki(e,t){Oe(t),Oi(e,t)}function Ai(e,t){ke(t),Oi(e,t)}function ji(e){return Zn(e.current_path)}function Mi(e){return Qn(e.current_match)}function Ni(e){let t=be(v(),e());return K(()=>{In(t,e())}),new Me(t)}function Pi(e,t,n){if(t===`className`||t===`class`){Ln(e,n);return}else if(t===`__innerHTML`){g(e,`innerHTML`,n);return}else if(t===`value`){g(e,`value`,n);return}else if(t===`checked`){g(e,`checked`,n===`true`);return}else if(t===`disabled`)if(n===`true`){Rn(e,`disabled`,``);return}else{zn(e,`disabled`);return}else{Rn(e,t,n);return}}function Fi(e,t){Rn(e,`style`,t)}function Ii(e,t,n){switch(n.$tag){case 0:{let r=n._0;if(t===`style`){Fi(e,r);return}else{Pi(e,t,r);return}}case 1:{let r=n._0;K(()=>{let n=r();if(t===`style`){Fi(e,n);return}else{Pi(e,t,n);return}});return}default:{let r=n._0;if(t===`__ref`){r(e);return}else{Fe(e,t,r);return}}}}function Li(e){return{inner:e}}function Z(e){switch(e.$tag){case 0:return e._0.inner;case 1:return e._0;case 2:return e._0;default:return e._0}}function Ri(e,t,n,r){let i=Pe(e,t),a=n.length,o=0;for(;;){let e=o;if(e<a){let t=n[e],r=t._0,a=t._1;Ii(i,r,a),o=e+1|0;continue}else break}let s=r.length,c=0;for(;;){let e=c;if(e<s){let t=r[e];U(i,Z(t)),c=e+1|0;continue}else break}return new je(Li(i))}function zi(e,t,n){let r=ve(v(),e),i=t.length,a=0;for(;;){let e=a;if(e<i){let n=t[e],i=n._0,o=n._1;Ii(r,i,o),a=e+1|0;continue}else break}let o=n.length,s=0;for(;;){let e=s;if(e<o){let t=n[e];U(r,Z(t)),s=e+1|0;continue}else break}return new je(Li(r))}function Bi(e,t){U(e,Z(t))}function Vi(e){In(e,``)}function Hi(e,t){Vi(e),Bi(e,t)}function Ui(e){if(Nn(e)===11){let t=[];for(;;){let n=Pn(e);if(n.$tag===1){let r=n._0;Qt(t,r),W(e,r);continue}else break}return t}else return[e]}function Wi(e){switch(e.length){case 0:return new S(Hn(v()));case 1:return _t(e,0);default:{let t=Hn(v()),n=e.length,r=0;for(;;){let i=r;if(i<n){let n=e[i];U(t,Z(n)),r=i+1|0;continue}else break}return new S(t)}}}function Gi(e){let t=e._2,n=e._1,r=e._0;return li(r,()=>{let e=si(()=>t()),r=e._0;return n.val=e._1,Ui(Z(r))})}function Ki(e,t){let n=Un(v(),`show`),r=C.current_owner,i={val:void 0},a={_0:r,_1:i,_2:t},o=ei(()=>e())?ti(()=>Gi(a)):[],s={val:o},c={val:!0};if(K(()=>{let t=e(),r=s.val.length>0;if(c.val){c.val=!1;return}if(t===!0)if(r===!1){let e=H(n);if(e.$tag===1){let t=e._0,r=ti(()=>Gi(a)),i=r.length,o=0;for(;;){let e=o;if(e<i){let i=r[e];Fn(t,i,new _(n)),o=e+1|0;continue}else break}s.val=r;return}else return}else return;else if(r===!0){let e=i.val;e===void 0||(e(),i.val=void 0);let t=s.val,n=t.length,r=0;for(;;){let e=r;if(e<n){let n=t[e],i=H(n);if(i.$tag===1){let e=i._0;W(e,n)}r=e+1|0;continue}else break}s.val=[];return}else return}),o.length>0){let e=[],t=o.length,r=0;for(;;){let n=r;if(n<t){let t=o[n];Jt(e,new S(t)),r=n+1|0;continue}else break}return Jt(e,new S(n)),Wi(e)}else return new S(n)}function qi(e,t){return Ie(e,t)}function Ji(e,t){let n=e.length,r=0;for(;;){let i=r;if(i<n){let n=e[i];if(qi(n.item,t))return i;r=i+1|0;continue}else break}return-1}function Yi(e,t,n){if(n.$tag===1){let r=n._0;return Le(e,t,r)}else return Re(e,t)}function Xi(e,t,n,r,i){let a=n.length;if(a===0){let n=t.length,r=0;for(;;){let i=r;if(i<n){let n=t[i],a=n.dispose;a(),Be(e,n.dom),r=i+1|0;continue}else break}return[]}let o=[],s=0;for(;;){let e=s;if(e<a){qt(o,{item:xt(n,0),dom:i,dispose:()=>{}}),s=e+1|0;continue}else break}let c=ln(t.length,!1),l=i,u=a-1|0;for(;;){let i=u;if(i>=0){let a=xt(n,i),s=Ji(t,a);if(s>=0){let n=St(t,s);un(c,s,!0),ze(n.dom,l)||Yi(e,n.dom,new _(l)),l=n.dom,dn(o,i,n)}else{let t=r(a,i),n=t._0,s=t._1;Fn(e,n,new _(l)),l=n,dn(o,i,{item:a,dom:n,dispose:s})}u=i-1|0;continue}else break}let d=t.length,f=0;for(;;){let n=f;if(n<d){let r=t[n];if(!Ct(c,n)){let t=r.dispose;t(),Be(e,r.dom)}f=n+1|0;continue}else break}return o}function Zi(e,t,n,r){let i=H(t);if(i.$tag===1){let a=i._0;e.val=Xi(a,e.val,n,r,t);return}else return}function Qi(e,t,n){return{item:e,dom:t,dispose:n}}function $i(e,t){let n=v(),r=Un(n,`for`),i={val:[]},a={val:!0},o=C.current_owner,s=(e,n)=>ci(o,()=>{let r=si(()=>t(e,n)),i=r._0,a=r._1;return{_0:Z(i),_1:a}}),c=Hn(n),l=Qr(()=>e()),u=l.length,d=0;for(;;){let e=d;if(e<u){let t=l[e],n=$r(()=>s(t,e)),r=n._0,a=n._1;qt(i.val,Qi(t,r,a)),U(c,r),d=e+1|0;continue}else break}return U(c,r),K(()=>{let t=e();if(a.val){a.val=!1;return}Zr(()=>{Zi(i,r,t,s)})}),new S(c)}function ea(e){return new Me(be(v(),e))}function ta(e){return new S(e)}function na(){return ce()}function ra(e){return ea(e)}function ia(e){return Ni(e)}function aa(e,t,n){return zi(e,t,n)}function oa(e,t,n){return zi(e,t,n)}function sa(e,t){let n=er(e.value),r={val:Ve};return br(e,e=>{let i=r.val;if(i.$tag===1){let e=i._0;_e(e)}r.val=new He(ge(()=>{pr(n,e)},t))}),n}function ca(e){switch(e.$tag){case 0:return e._0;case 1:return e._0;default:return e._0}}function la(){return{mount:fe,use_shadow:!1,is_svg:!1}}function ua(e){return{mount:new pe(e),use_shadow:!1,is_svg:!1}}function da(){return{mount:fe,use_shadow:!0,is_svg:!1}}function fa(e,t){let n=v(),r=e.mount,i;if(r.$tag===1)i=r._0;else{let e=Vn(n);i=e.$tag===1?e._0:ve(n,`div`)}let a=e.is_svg?ye(n,`http://www.w3.org/2000/svg`,`g`):ve(n,`div`),o;e.use_shadow?(U(Mn(i,jn(`open`,!1,`named`)),a),o=a):(U(i,a),o=a);let s=[],c=t.length,l=0;for(;;){let e=l;if(e<c){let n=t[e],r=ca(n);U(o,r),Qt(s,r),l=e+1|0;continue}else break}return oi(()=>{let e=s.length,t=0;for(;;){let n=t;if(n<e){let e=s[n],r=H(e);if(r.$tag===1){let t=r._0;W(t,e)}t=n+1|0;continue}else break}let n=H(a);if(n.$tag===1){let e=n._0;W(e,a);return}else return}),new Ge(Un(n,`portal`))}function pa(e){return fa(la(),e)}function ma(e,t){let n=Bn(v(),e),r;if(n.$tag===1){let e=n._0;r=ua(e)}else r=la();return fa(r,t)}function ha(e){return fa(da(),e)}function ga(e,t){return fa({mount:new pe(e),use_shadow:!0,is_svg:!1},t)}function _a(e){return ir(e)}function va(e){return q(e)}function Q(e,t){pr(e,t)}function ya(e,t){_r(e,t)}function ba(e){return e.value}function xa(e,t){return br(e,t)}function Sa(e,t){return ui(e,t)}function Ca(e){return vr(e)}function wa(e,t,n){return di(e,t,n)}function Ta(e){return gr(e)}function Ea(e){return K(e)}function Da(){ni()}function Oa(){ii()}function ka(e){return Xr(e)}function Aa(e){return ai(e)}function ja(e){oi(e)}function Ma(e){return Kr(e)}function Na(){let e=C.current_owner;if(e!==void 0)return e}function Pa(e,t){return zr(e,t)}function Fa(){return C.current_owner!==void 0}function Ia(e){let t=C.current_owner;Ke(()=>{if(t===void 0){Zr(e);return}else{let n=t;Br(n,()=>{Zr(()=>{let t=[];Kn(t,e);let r=t.length,i=0;for(;;){let e=i;if(e<r){let r=t[e];F(n.cleanups,r),i=e+1|0;continue}else return}})});return}})}function La(e,t){return $i(e,t)}function Ra(e){return ra(e)}function za(e){return ia(e)}function Ba(e,t){Hi(e,t)}function Va(e,t){Bi(e,t)}function Ha(e,t){return Ki(e,t)}function Ua(e,t,n){return aa(e,t,n)}function Wa(e,t,n){return oa(e,t,n)}function $(e){return Wi(e)}function Ga(e,t,n){return zi(e,t,n)}function Ka(e,t,n,r){return Ri(e,t,n,r)}function qa(){return`http://www.w3.org/2000/svg`}function Ja(){return`http://www.w3.org/1998/Math/MathML`}function Ya(){return na()}function Xa(e,t){return sa(e,t)}function Za(e,t){return new qe(e,t,``,[])}function Qa(e,t,n){return new qe(e,t,n,[])}function $a(e,t,n,r){return new qe(e,t,n,r)}function eo(e,t){return Di(e,t)}function to(e,t){let n;return n=t===void 0?``:t,eo(e,n)}function no(e,t){ki(e,t)}function ro(e,t){Ai(e,t)}function io(e){return ji(e)}function ao(e){return Mi(e)}function oo(e){return e.base}function so(e){return Ir(e)}function co(e,t,n){return Jr(e,t,n)}function lo(e){return Yr(e)}function uo(e){return Pr(e)}function fo(){let e=Fr();return{_0:e._0,_1:e._1,_2:e._2}}function po(e){return Er(e)}function mo(e){return Dr(e)}function ho(e){Nr(e)}function go(e){return Or(e)}function _o(e){return kr(e)}function vo(e){return Ar(e)}function yo(e){let t=jr(e);return t.$tag===1?t._0:Ze()}function bo(e){let t=Mr(e);return t===void 0?``:t}function xo(e){return xr(e)}function So(e){return Sr(e)}function Co(e){return Cr(e)}function wo(e){let t=wr(e);return t.$tag===1?t._0:Ze()}function To(e){let t=Tr(e);return t===void 0?``:t}function Eo(e){return new Ge(Z(e))}function Do(e){return ta(ca(e))}function Oo(e){let t=Array(e.length),n=e.length,r=0;for(;;){let i=r;if(i<n){let n=e[i];t[i]=Eo(n),r=i+1|0;continue}else break}return Do(pa(t))}function ko(e,t){let n=Array(t.length),r=t.length,i=0;for(;;){let e=i;if(e<r){let r=t[e];n[e]=Eo(r),i=e+1|0;continue}else break}return Do(ma(e,n))}function Ao(e){let t=Array(e.length),n=e.length,r=0;for(;;){let i=r;if(i<n){let n=e[i];t[i]=Eo(n),r=i+1|0;continue}else break}return Do(ha(t))}function jo(e,t){let n=Array(t.length),r=t.length,i=0;for(;;){let e=i;if(e<r){let r=t[e];n[e]=Eo(r),i=e+1|0;continue}else break}return Do(ga(e,n))}function Mo(e){let t=_a(e);return[()=>va(t),e=>{typeof e==`function`?ya(t,e):Q(t,e)}]}function No(e){return Ta(e)}function Po(e){return Ea(e)}function Fo(e){return Ca(e)}function Io(e,t,n={}){let{defer:r=!1}=n,i=Array.isArray(e),a,o,s=!0;return n=>{let c=i?e.map(e=>e()):e();if(r&&s){s=!1,a=c;return}let l=t(c,a,n??o);return a=c,o=l,s=!1,l}}function Lo(...e){let t={};for(let n of e)if(n)for(let e of Object.keys(n)){let r=n[e];if(e.startsWith(`on`)&&typeof r==`function`){let n=t[e];typeof n==`function`?t[e]=(...e)=>{n(...e),r(...e)}:t[e]=r}else if(e===`ref`&&typeof r==`function`){let n=t[e];typeof n==`function`?t[e]=e=>{n(e),r(e)}:t[e]=r}else if(e===`class`||e===`className`){let n=t[e];n?t[e]=`${n} ${r}`:t[e]=r}else e===`style`&&typeof r==`object`&&typeof t[e]==`object`?t[e]={...t[e],...r}:t[e]=r}return t}function Ro(e,...t){let n=[],r={...e};for(let e of t){let t={};for(let n of e)n in r&&(t[n]=r[n],delete r[n]);n.push(t)}return n.push(r),n}function zo(e){let t=uo(e),n=()=>wo(po(t));return Object.defineProperties(n,{loading:{get:()=>go(t)},error:{get:()=>bo(t)},state:{get:()=>go(t)?`pending`:_o(t)?`ready`:vo(t)?`errored`:`unresolved`},latest:{get:()=>mo(t)}}),[n,{refetch:()=>ho(t)}]}function Bo(){let e=fo(),t=e._0,n=e._1,r=e._2,i=()=>wo(po(t));return Object.defineProperties(i,{loading:{get:()=>go(t)},error:{get:()=>bo(t)}}),[i,n,r]}function Vo(e,t){let[n]=e,r=_a(n()),i=Xa(r,t);return[()=>va(i),e=>Q(r,e)]}function Ho(e,...t){if(typeof e==`function`){let n=e(...t);return Array.isArray(n)?$(n):n}return Array.isArray(e)?$(e):e}function Uo(e){if(Array.isArray(e))return $(e);let{children:t}=e||{};return $(t?Array.isArray(t)?t:[t]:[])}function Wo(e){let{each:t,fallback:n,children:r}=e;return t?La(typeof t==`function`?t:()=>t,(e,t)=>r(e,()=>t)):n??null}function Go(e){let{when:t,children:n}=e,r=typeof t==`function`?t:()=>t;return Ha(()=>!!r(),()=>Ho(n,r()))}function Ko(e){let{each:t,fallback:n,children:r}=e;if(!t)return n??null;let i=typeof t==`function`?t:()=>t;return i().length===0&&n?n:La(i,(e,t)=>r(()=>i()[t],t))}function qo(e){let{context:t,value:n,children:r}=e;return co(t,n,r)}function Jo(e){let{fallback:t,children:n}=e,r;r=n?Array.isArray(n)?n.flat():[n]:[];let i=r.filter(e=>e&&e.__isMatch);if(i.length===0)return t??null;let a=Fo(()=>{for(let e=0;e<i.length;e++)if(i[e].when())return e;return-1}),o=[];for(let e=0;e<i.length;e++){let t=i[e],n=e;o.push(Ha(()=>a()===n,t.children))}return t&&o.push(Ha(()=>a()===-1,()=>Ho(t))),$(o)}function Yo(e){let{when:t,children:n}=e,r=typeof t==`function`?t:()=>t;return{__isMatch:!0,when:()=>!!r(),condition:r,children:()=>Ho(n,r())}}function Xo(e){let{mount:t,useShadow:n=!1,children:r}=e,i=[r()];if(n){if(typeof t==`string`){let e=document.querySelector(t);if(e)return jo(e,i)}else if(t)return jo(t,i);return Ao(i)}return typeof t==`string`?ko(t,i):Oo(i)}function Zo(e){let t=new Map,n=structuredClone(e);function r(e){let r=e.join(`.`);if(!t.has(r)){let a=i(n,e);t.set(r,_a(a))}return t.get(r)}function i(e,t){let n=e;for(let e of t){if(n==null)return;n=n[e]}return n}function a(e,t,n){if(t.length===0)return;let r=e;for(let e=0;e<t.length-1;e++){let n=t[e];if(r[n]==null){let i=t[e+1];r[n]=typeof i==`number`||/^\d+$/.test(i)?[]:{}}r=r[n]}r[t[t.length-1]]=n}function o(e){let r=e.join(`.`);Da();try{for(let[e,a]of t.entries())(e===r||e.startsWith(r+`.`))&&Q(a,i(n,e.split(`.`)))}finally{Oa()}}function s(e,t=[]){return typeof e!=`object`||!e?e:new Proxy(e,{get(e,n){if(typeof n==`symbol`)return e[n];let i=[...t,n];va(r(i));let a=e[n];return typeof a==`object`&&a?s(a,i):a},set(e,n,r){let i=[...t,n];return e[n]=r,o(i),!0}})}function c(...e){if(e.length===0)return;let r=[],s=0;for(;s<e.length-1&&typeof e[s]==`string`;)r.push(e[s]),s++;let c=e[s];if(r.length===0&&typeof c==`object`&&c){Object.assign(n,c);for(let[e,r]of t.entries())Q(r,i(n,e.split(`.`)));return}let l=i(n,r),u;u=typeof c==`function`?c(l):Array.isArray(c)?c:typeof c==`object`&&c&&typeof l==`object`&&l&&!Array.isArray(l)?{...l,...c}:c,a(n,r,u),o(r)}return[s(n),c]}function Qo(e){return t=>{let n=structuredClone(t);return e(n),n}}function $o(e){return()=>e}export{bo as $,to as A,Sa as B,Oa as C,wo as Ct,Ga as D,za as Dt,so as E,Ra as Et,va as F,ba as G,Va as H,Na as I,ko as J,Oo as K,Fa as L,Ya as M,La as N,Ka as O,ya as Ot,$ as P,Ba as Q,Ua as R,Aa as S,So as St,wa as T,qa as Tt,ja as U,Ja as V,Ia as W,co as X,Ao as Y,Ea as Z,Lo as _,Q as _t,Xo as a,ho as at,$o as b,Co as bt,Jo as c,$a as ct,Fo as d,ao as dt,po as et,Po as f,io as ft,Vo as g,Pa as gt,Zo as h,ka as ht,Yo as i,mo as it,Ta as j,Ma as k,lo as kt,Bo as l,Qa as lt,Mo as m,ro as mt,Uo as n,go as nt,qo as o,yo as ot,zo as p,no as pt,jo as q,Ko as r,_o as rt,Go as s,Za as st,Wo as t,vo as tt,No as u,oo as ut,Io as v,Ha as vt,Da as w,xa as wt,Ro as x,xo as xt,Qo as y,To as yt,Wa as z};
@@ -0,0 +1,122 @@
1
+ import { Plugin } from "vite";
2
+
3
+ //#region src/vite-plugin.d.ts
4
+
5
+ type OutputMode = "inline" | "external" | "auto";
6
+ interface LunaCssPluginOptions {
7
+ /**
8
+ * Source directories to extract CSS from
9
+ * @default ["src"]
10
+ */
11
+ src?: string | string[];
12
+ /**
13
+ * Output mode: "inline" embeds in HTML, "external" creates .css file, "auto" chooses by size
14
+ * @default "auto"
15
+ */
16
+ mode?: OutputMode;
17
+ /**
18
+ * Size threshold in bytes for "auto" mode
19
+ * @default 4096
20
+ */
21
+ threshold?: number;
22
+ /**
23
+ * CSS filename for external mode (without hash, Vite will add hash in build)
24
+ * @default "luna.css"
25
+ */
26
+ cssFileName?: string;
27
+ /**
28
+ * Enable verbose logging
29
+ * @default false
30
+ */
31
+ verbose?: boolean;
32
+ /**
33
+ * Enable CSS splitting by directory
34
+ * When enabled, generates per-directory CSS chunks + shared CSS
35
+ * @default false
36
+ */
37
+ split?: boolean;
38
+ /**
39
+ * Minimum usage count for a declaration to be considered "shared"
40
+ * Only used when split is enabled
41
+ * @default 3
42
+ */
43
+ sharedThreshold?: number;
44
+ /**
45
+ * Include runtime CSS fallback in dev mode
46
+ * Generates CSS dynamically for missing rules with console warnings
47
+ * The runtime uses import.meta.env.DEV for tree-shaking in production
48
+ * @default true in dev, false in build
49
+ */
50
+ devRuntime?: boolean;
51
+ /**
52
+ * Inject dev runtime script into HTML automatically
53
+ * When false, users must manually import "virtual:luna-css-runtime"
54
+ * @default true
55
+ */
56
+ injectRuntime?: boolean;
57
+ /**
58
+ * Experimental features
59
+ */
60
+ experimental?: {
61
+ /**
62
+ * Enable CSS co-occurrence optimization
63
+ * Merges frequently co-occurring classes into single combined classes
64
+ * @default false
65
+ */
66
+ optimize?: boolean;
67
+ /**
68
+ * Minimum frequency for a pattern to be merged
69
+ * @default 2
70
+ */
71
+ optimizeMinFrequency?: number;
72
+ /**
73
+ * Maximum pattern size to consider for merging
74
+ * @default 5
75
+ */
76
+ optimizeMaxPatternSize?: number;
77
+ };
78
+ }
79
+ /**
80
+ * Luna CSS Vite Plugin
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * // vite.config.ts
85
+ * import { lunaCss } from "@luna_ui/luna/vite-plugin";
86
+ *
87
+ * export default defineConfig({
88
+ * plugins: [
89
+ * lunaCss({
90
+ * src: ["src/examples/todomvc"],
91
+ * mode: "auto",
92
+ * threshold: 4096,
93
+ * }),
94
+ * ],
95
+ * });
96
+ * ```
97
+ *
98
+ * @example
99
+ * ```ts
100
+ * // main.ts - Import virtual CSS like Tailwind
101
+ * import "virtual:luna.css";
102
+ * ```
103
+ *
104
+ * @example
105
+ * ```ts
106
+ * // Split mode with per-directory chunks
107
+ * lunaCss({
108
+ * src: ["src"],
109
+ * split: true,
110
+ * sharedThreshold: 3,
111
+ * })
112
+ *
113
+ * // In your entry:
114
+ * import "virtual:luna.css"; // All CSS
115
+ * // Or for fine-grained control:
116
+ * import "virtual:luna-shared.css"; // Shared CSS only
117
+ * import "virtual:luna-chunk/todomvc.css"; // Per-directory chunk
118
+ * ```
119
+ */
120
+ declare function lunaCss(options?: LunaCssPluginOptions): Plugin;
121
+ //#endregion
122
+ export { LunaCssPluginOptions, OutputMode, lunaCss as default, lunaCss };