@luna_ui/luna 0.11.0 → 0.20.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 (86) hide show
  1. package/dist/api-DAWeanTX.js +1 -0
  2. package/dist/api-qXll116-.d.ts +80 -0
  3. package/dist/cli.mjs +27 -22
  4. package/dist/css/index.js +1 -0
  5. package/dist/event-utils.d.ts +1 -1
  6. package/dist/event-utils.js +1 -1
  7. package/dist/{index-BZoM-af5.d.ts → index-VY8G32hr.d.ts} +16 -76
  8. package/dist/index.d.ts +4 -3
  9. package/dist/index.js +1 -1
  10. package/dist/jsx-dev-runtime.js +1 -1
  11. package/dist/jsx-runtime.d.ts +1 -1
  12. package/dist/jsx-runtime.js +1 -1
  13. package/dist/raw.d.ts +2 -0
  14. package/dist/raw.js +1 -0
  15. package/dist/resource.d.ts +41 -0
  16. package/dist/resource.js +1 -0
  17. package/dist/router-lite.d.ts +44 -0
  18. package/dist/router-lite.js +1 -0
  19. package/dist/signals-shared.d.ts +12 -0
  20. package/dist/signals-shared.js +1 -0
  21. package/dist/signals.d.ts +2 -3
  22. package/dist/signals.js +1 -1
  23. package/dist/vite-plugin.d.ts +7708 -2
  24. package/dist/vite-plugin.js +7 -6
  25. package/package.json +30 -11
  26. package/dist/event-utils-9cHYnvun.js +0 -1
  27. package/dist/src-BFWjzzPo.js +0 -1
  28. package/src/css/extract.ts +0 -798
  29. package/src/css/index.ts +0 -10
  30. package/src/css/inject.ts +0 -205
  31. package/src/css/inline.ts +0 -182
  32. package/src/css/minify.ts +0 -70
  33. package/src/css/optimizer.ts +0 -6
  34. package/src/css/runtime.ts +0 -344
  35. package/src/css-optimizer/README.md +0 -353
  36. package/src/css-optimizer/cooccurrence.ts +0 -100
  37. package/src/css-optimizer/core.ts +0 -263
  38. package/src/css-optimizer/extractors.ts +0 -243
  39. package/src/css-optimizer/hash.ts +0 -54
  40. package/src/css-optimizer/index.ts +0 -129
  41. package/src/css-optimizer/merge.ts +0 -109
  42. package/src/css-optimizer/moonbit-analyzer.ts +0 -210
  43. package/src/css-optimizer/parser.ts +0 -120
  44. package/src/css-optimizer/pattern.ts +0 -171
  45. package/src/css-optimizer/transformers.ts +0 -301
  46. package/src/css-optimizer/types.ts +0 -128
  47. package/src/event-utils.ts +0 -227
  48. package/src/hydration/createHydrator.ts +0 -62
  49. package/src/hydration/delegate.ts +0 -62
  50. package/src/hydration/drag.ts +0 -214
  51. package/src/hydration/index.ts +0 -12
  52. package/src/hydration/keyboard.ts +0 -64
  53. package/src/hydration/toggle.ts +0 -101
  54. package/src/index.ts +0 -908
  55. package/src/jsx-dev-runtime.ts +0 -2
  56. package/src/jsx-runtime.ts +0 -398
  57. package/src/signals.ts +0 -113
  58. package/src/vite-plugin.ts +0 -718
  59. package/tests/__screenshots__/apg.test.ts/APG-Components---Accessibility-Tests-Button-Pattern-disabled-button-has-aria-disabled-1.png +0 -0
  60. package/tests/__screenshots__/resource.test.ts/Resource-API--SolidJS-style--createResource-error-is-undefined-when-pending-1.png +0 -0
  61. package/tests/__screenshots__/resource.test.ts/Resource-API--SolidJS-style--createResource-transitions-to-success-on-resolve-1.png +0 -0
  62. package/tests/apg.test.ts +0 -466
  63. package/tests/context.test.ts +0 -118
  64. package/tests/css-optimizer-extractors.test.ts +0 -264
  65. package/tests/css-optimizer-integration.test.ts +0 -566
  66. package/tests/css-optimizer-transformers.test.ts +0 -301
  67. package/tests/css-optimizer.test.ts +0 -646
  68. package/tests/css-runtime.bench.ts +0 -442
  69. package/tests/css-runtime.test.ts +0 -342
  70. package/tests/debounced.test.ts +0 -165
  71. package/tests/dom.test.ts +0 -873
  72. package/tests/integration.test.ts +0 -405
  73. package/tests/issue-11-show-null-to-truthy.test.ts +0 -176
  74. package/tests/issue-5-for-infinite-loop.test.ts +0 -516
  75. package/tests/jsx-runtime.test.tsx +0 -393
  76. package/tests/lifecycle.test.ts +0 -833
  77. package/tests/move-before.bench.ts +0 -304
  78. package/tests/preact-signals-comparison.test.ts +0 -1608
  79. package/tests/resource.test.ts +0 -170
  80. package/tests/router.test.ts +0 -117
  81. package/tests/show-initial-mount-leak.test.tsx +0 -182
  82. package/tests/solidjs-api.test.ts +0 -660
  83. package/tests/static-perf.bench.ts +0 -64
  84. package/tests/store.test.ts +0 -263
  85. package/tests/tsx-syntax.test.tsx +0 -404
  86. /package/dist/{event-utils-BkTM7rk5.d.ts → event-utils-BvAf0NwN.d.ts} +0 -0
@@ -1,101 +0,0 @@
1
- /**
2
- * toggle - Binary state toggle helper
3
- *
4
- * Toggles between two states on click, using data-* or aria-* attributes.
5
- * CSS handles visual changes via attribute selectors.
6
- */
7
-
8
- export interface ToggleOptions {
9
- /**
10
- * Selector for the element to toggle state on.
11
- * If not provided, the trigger element itself is used.
12
- * Use closest() to find ancestor.
13
- */
14
- target?: string;
15
-
16
- /**
17
- * The two states to toggle between.
18
- * @default ['open', 'closed'] for data-state
19
- * @default ['true', 'false'] for aria-checked
20
- */
21
- states?: [string, string];
22
-
23
- /**
24
- * Attribute to update.
25
- * @default 'data-state'
26
- */
27
- attribute?: string;
28
-
29
- /**
30
- * Callback when state changes.
31
- */
32
- onChange?: (state: string, element: Element) => void;
33
- }
34
-
35
- /**
36
- * Set up click-to-toggle behavior on matching elements
37
- *
38
- * @example
39
- * ```ts
40
- * // Toggle data-state on parent [data-accordion-item]
41
- * toggle(el, '[data-accordion-trigger]', {
42
- * target: '[data-accordion-item]',
43
- * states: ['open', 'closed']
44
- * });
45
- *
46
- * // Toggle aria-checked on the button itself
47
- * toggle(el, '[data-switch-toggle]', {
48
- * attribute: 'aria-checked',
49
- * states: ['true', 'false']
50
- * });
51
- * ```
52
- */
53
- export function toggle(
54
- root: Element,
55
- selector: string,
56
- options: ToggleOptions = {}
57
- ): () => void {
58
- const {
59
- target,
60
- attribute = 'data-state',
61
- states = attribute === 'aria-checked' ? ['true', 'false'] : ['open', 'closed'],
62
- onChange,
63
- } = options;
64
-
65
- const [stateA, stateB] = states;
66
- const handlers: Array<{ el: Element; handler: EventListener }> = [];
67
-
68
- root.querySelectorAll(selector).forEach((trigger) => {
69
- const handler = () => {
70
- // Find target element
71
- const targetEl = target
72
- ? trigger.closest(target)
73
- : trigger;
74
-
75
- if (!targetEl) return;
76
-
77
- // Get current state and toggle
78
- const current = targetEl.getAttribute(attribute);
79
- const next = current === stateA ? stateB : stateA;
80
-
81
- targetEl.setAttribute(attribute, next);
82
-
83
- // Also update aria-checked if toggling data-state on a button
84
- if (attribute === 'data-state' && targetEl.tagName === 'BUTTON') {
85
- targetEl.setAttribute('aria-checked', next === stateA ? 'true' : 'false');
86
- }
87
-
88
- onChange?.(next, targetEl);
89
- };
90
-
91
- trigger.addEventListener('click', handler);
92
- handlers.push({ el: trigger, handler });
93
- });
94
-
95
- // Return cleanup function
96
- return () => {
97
- handlers.forEach(({ el, handler }) => {
98
- el.removeEventListener('click', handler);
99
- });
100
- };
101
- }