@viraui/react 2026.7.1 → 2026.8.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 (209) hide show
  1. package/dist/catalog.json +9 -3
  2. package/dist/components/button/button.css +1 -1
  3. package/dist/components/direction-provider/index.d.ts +2 -0
  4. package/dist/components/direction-provider/index.js +2 -0
  5. package/dist/components/index.d.ts +1 -0
  6. package/dist/components/menu/menu-popup.d.ts +2 -2
  7. package/dist/components/menu/menu.css +1 -1
  8. package/dist/components/progressive-blur/progressive-blur.css +1 -1
  9. package/dist/components/prose/prose.d.ts +4 -1
  10. package/dist/components/select/select-group.js +1 -1
  11. package/dist/components/select/select.js +4 -1
  12. package/dist/components/spinner/spinner.d.ts +6 -1
  13. package/dist/components/spinner/variants/arc.css +1 -0
  14. package/dist/components/spinner/variants/arc.d.ts +2 -0
  15. package/dist/components/spinner/variants/arc.js +19 -0
  16. package/dist/components/spinner/variants/arc.module.js +8 -0
  17. package/dist/components/spinner/variants/atom.css +1 -0
  18. package/dist/components/spinner/variants/atom.d.ts +6 -0
  19. package/dist/components/spinner/variants/atom.js +40 -0
  20. package/dist/components/spinner/variants/atom.module.js +8 -0
  21. package/dist/components/spinner/variants/blocks.css +1 -0
  22. package/dist/components/spinner/variants/blocks.d.ts +2 -0
  23. package/dist/components/spinner/variants/blocks.js +25 -0
  24. package/dist/components/spinner/variants/blocks.module.js +8 -0
  25. package/dist/components/spinner/variants/bouncing-dots.css +1 -0
  26. package/dist/components/spinner/variants/bouncing-dots.d.ts +2 -0
  27. package/dist/components/spinner/variants/bouncing-dots.js +21 -0
  28. package/dist/components/spinner/variants/bouncing-dots.module.js +8 -0
  29. package/dist/components/spinner/variants/cascade.css +1 -0
  30. package/dist/components/spinner/variants/cascade.d.ts +2 -0
  31. package/dist/components/spinner/variants/cascade.js +34 -0
  32. package/dist/components/spinner/variants/cascade.module.js +8 -0
  33. package/dist/components/spinner/variants/circular-dots.css +1 -0
  34. package/dist/components/spinner/variants/circular-dots.d.ts +2 -0
  35. package/dist/components/spinner/variants/circular-dots.js +26 -0
  36. package/dist/components/spinner/variants/circular-dots.module.js +8 -0
  37. package/dist/components/spinner/variants/classic-v2.css +1 -0
  38. package/dist/components/spinner/variants/classic-v2.d.ts +2 -0
  39. package/dist/components/spinner/variants/classic-v2.js +24 -0
  40. package/dist/components/spinner/variants/classic-v2.module.js +8 -0
  41. package/dist/components/spinner/variants/classic.css +1 -0
  42. package/dist/components/spinner/variants/classic.d.ts +2 -0
  43. package/dist/components/spinner/variants/classic.js +22 -0
  44. package/dist/components/spinner/variants/classic.module.js +8 -0
  45. package/dist/components/spinner/variants/clock.css +1 -0
  46. package/dist/components/spinner/variants/clock.d.ts +2 -0
  47. package/dist/components/spinner/variants/clock.js +18 -0
  48. package/dist/components/spinner/variants/clock.module.js +8 -0
  49. package/dist/components/spinner/variants/comet.css +1 -0
  50. package/dist/components/spinner/variants/comet.d.ts +2 -0
  51. package/dist/components/spinner/variants/comet.js +33 -0
  52. package/dist/components/spinner/variants/comet.module.js +10 -0
  53. package/dist/components/spinner/variants/compass.css +1 -0
  54. package/dist/components/spinner/variants/compass.d.ts +2 -0
  55. package/dist/components/spinner/variants/compass.js +16 -0
  56. package/dist/components/spinner/variants/compass.module.js +8 -0
  57. package/dist/components/spinner/variants/dual.css +1 -0
  58. package/dist/components/spinner/variants/dual.d.ts +2 -0
  59. package/dist/components/spinner/variants/dual.js +25 -0
  60. package/dist/components/spinner/variants/dual.module.js +10 -0
  61. package/dist/components/spinner/variants/eclipse.css +1 -0
  62. package/dist/components/spinner/variants/eclipse.d.ts +6 -0
  63. package/dist/components/spinner/variants/eclipse.js +21 -0
  64. package/dist/components/spinner/variants/eclipse.module.js +9 -0
  65. package/dist/components/spinner/variants/flip.css +1 -0
  66. package/dist/components/spinner/variants/flip.d.ts +2 -0
  67. package/dist/components/spinner/variants/flip.js +17 -0
  68. package/dist/components/spinner/variants/flip.module.js +8 -0
  69. package/dist/components/spinner/variants/gather.css +1 -0
  70. package/dist/components/spinner/variants/gather.d.ts +2 -0
  71. package/dist/components/spinner/variants/gather.js +50 -0
  72. package/dist/components/spinner/variants/gather.module.js +11 -0
  73. package/dist/components/spinner/variants/index.d.ts +9 -1
  74. package/dist/components/spinner/variants/index.js +96 -10
  75. package/dist/components/spinner/variants/leap.css +1 -0
  76. package/dist/components/spinner/variants/leap.d.ts +6 -0
  77. package/dist/components/spinner/variants/leap.js +27 -0
  78. package/dist/components/spinner/variants/leap.module.js +8 -0
  79. package/dist/components/spinner/variants/linear-dots.css +1 -0
  80. package/dist/components/spinner/variants/linear-dots.d.ts +2 -0
  81. package/dist/components/spinner/variants/linear-dots.js +21 -0
  82. package/dist/components/spinner/variants/linear-dots.module.js +8 -0
  83. package/dist/components/spinner/variants/loading.css +1 -0
  84. package/dist/components/spinner/variants/loading.d.ts +2 -0
  85. package/dist/components/spinner/variants/loading.js +50 -0
  86. package/dist/components/spinner/variants/loading.module.js +8 -0
  87. package/dist/components/spinner/variants/morph.css +1 -0
  88. package/dist/components/spinner/variants/morph.d.ts +2 -0
  89. package/dist/components/spinner/variants/morph.js +17 -0
  90. package/dist/components/spinner/variants/morph.module.js +8 -0
  91. package/dist/components/spinner/variants/orbit.css +1 -0
  92. package/dist/components/spinner/variants/orbit.d.ts +2 -0
  93. package/dist/components/spinner/variants/orbit.js +24 -0
  94. package/dist/components/spinner/variants/orbit.module.js +8 -0
  95. package/dist/components/spinner/variants/pulse.css +1 -0
  96. package/dist/components/spinner/variants/pulse.d.ts +2 -0
  97. package/dist/components/spinner/variants/pulse.js +19 -0
  98. package/dist/components/spinner/variants/pulse.module.js +8 -0
  99. package/dist/components/spinner/variants/radar.css +1 -0
  100. package/dist/components/spinner/variants/radar.d.ts +2 -0
  101. package/dist/components/spinner/variants/radar.js +53 -0
  102. package/dist/components/spinner/variants/radar.module.js +8 -0
  103. package/dist/components/spinner/variants/ring.css +1 -0
  104. package/dist/components/spinner/variants/ring.d.ts +2 -0
  105. package/dist/components/spinner/variants/ring.js +24 -0
  106. package/dist/components/spinner/variants/ring.module.js +8 -0
  107. package/dist/components/spinner/variants/ripple.css +1 -0
  108. package/dist/components/spinner/variants/ripple.d.ts +2 -0
  109. package/dist/components/spinner/variants/ripple.js +23 -0
  110. package/dist/components/spinner/variants/ripple.module.js +8 -0
  111. package/dist/components/spinner/variants/slide.css +1 -0
  112. package/dist/components/spinner/variants/slide.d.ts +2 -0
  113. package/dist/components/spinner/variants/slide.js +24 -0
  114. package/dist/components/spinner/variants/slide.module.js +8 -0
  115. package/dist/components/spinner/variants/snake.css +1 -0
  116. package/dist/components/spinner/variants/snake.d.ts +2 -0
  117. package/dist/components/spinner/variants/snake.js +19 -0
  118. package/dist/components/spinner/variants/snake.module.js +11 -0
  119. package/dist/components/spinner/variants/swirl.css +1 -0
  120. package/dist/components/spinner/variants/swirl.d.ts +2 -0
  121. package/dist/components/spinner/variants/swirl.js +35 -0
  122. package/dist/components/spinner/variants/swirl.module.js +8 -0
  123. package/dist/components/spinner/variants/trace.css +1 -0
  124. package/dist/components/spinner/variants/trace.d.ts +2 -0
  125. package/dist/components/spinner/variants/trace.js +28 -0
  126. package/dist/components/spinner/variants/trace.module.js +8 -0
  127. package/dist/components/spinner/variants/wave.css +1 -0
  128. package/dist/components/spinner/variants/wave.d.ts +2 -0
  129. package/dist/components/spinner/variants/wave.js +25 -0
  130. package/dist/components/spinner/variants/wave.module.js +8 -0
  131. package/dist/components/text/text.css +1 -1
  132. package/dist/components/text/text.d.ts +10 -2
  133. package/dist/components/title/title.d.ts +7 -0
  134. package/dist/index.js +2 -1
  135. package/dist/specs/components/accordion/props.xml +2 -2
  136. package/dist/specs/components/accordion/usage.xml +2 -0
  137. package/dist/specs/components/autocomplete/patterns.xml +4 -4
  138. package/dist/specs/components/autocomplete/props.xml +2 -2
  139. package/dist/specs/components/autocomplete/usage.xml +1 -1
  140. package/dist/specs/components/button/patterns.xml +2 -2
  141. package/dist/specs/components/button/props.xml +4 -4
  142. package/dist/specs/components/button/usage.xml +2 -1
  143. package/dist/specs/components/chip/patterns.xml +2 -2
  144. package/dist/specs/components/chip/props.xml +2 -2
  145. package/dist/specs/components/chip/usage.xml +2 -0
  146. package/dist/specs/components/direction-provider/a11y.xml +6 -0
  147. package/dist/specs/components/direction-provider/meta.xml +20 -0
  148. package/dist/specs/components/direction-provider/patterns.xml +27 -0
  149. package/dist/specs/components/direction-provider/props.xml +18 -0
  150. package/dist/specs/components/direction-provider/usage.xml +10 -0
  151. package/dist/specs/components/disclosure/patterns.xml +2 -2
  152. package/dist/specs/components/disclosure/props.xml +2 -2
  153. package/dist/specs/components/disclosure/usage.xml +2 -0
  154. package/dist/specs/components/glow/patterns.xml +1 -1
  155. package/dist/specs/components/grid/patterns.xml +3 -3
  156. package/dist/specs/components/icon-button/props.xml +4 -4
  157. package/dist/specs/components/icon-button/usage.xml +3 -1
  158. package/dist/specs/components/menu/patterns.xml +18 -18
  159. package/dist/specs/components/menu/props.xml +5 -5
  160. package/dist/specs/components/menu/usage.xml +3 -1
  161. package/dist/specs/components/meter/patterns.xml +1 -1
  162. package/dist/specs/components/progressive-blur/usage.xml +2 -0
  163. package/dist/specs/components/prose/meta.xml +1 -1
  164. package/dist/specs/components/prose/patterns.xml +34 -10
  165. package/dist/specs/components/prose/props.xml +3 -1
  166. package/dist/specs/components/prose/usage.xml +4 -1
  167. package/dist/specs/components/select/patterns.xml +2 -2
  168. package/dist/specs/components/select/props.xml +2 -2
  169. package/dist/specs/components/select/usage.xml +1 -0
  170. package/dist/specs/components/slider/patterns.xml +1 -1
  171. package/dist/specs/components/spinner/props.xml +1 -1
  172. package/dist/specs/components/spinner/usage.xml +1 -1
  173. package/dist/specs/components/stack/patterns.xml +4 -4
  174. package/dist/specs/components/stack/props.xml +1 -0
  175. package/dist/specs/components/stack/usage.xml +1 -0
  176. package/dist/specs/components/surface/patterns.xml +3 -3
  177. package/dist/specs/components/tabs/patterns.xml +3 -3
  178. package/dist/specs/components/tabs/props.xml +1 -1
  179. package/dist/specs/components/tabs/usage.xml +2 -1
  180. package/dist/specs/components/text/meta.xml +2 -1
  181. package/dist/specs/components/text/patterns.xml +19 -16
  182. package/dist/specs/components/text/props.xml +8 -6
  183. package/dist/specs/components/text/usage.xml +9 -3
  184. package/dist/specs/components/textfield/patterns.xml +3 -3
  185. package/dist/specs/components/textfield/props.xml +2 -2
  186. package/dist/specs/components/textfield/usage.xml +2 -1
  187. package/dist/specs/components/title/meta.xml +2 -1
  188. package/dist/specs/components/title/patterns.xml +11 -10
  189. package/dist/specs/components/title/props.xml +5 -4
  190. package/dist/specs/components/title/usage.xml +8 -3
  191. package/dist/specs/components/toggle-button/patterns.xml +8 -8
  192. package/dist/specs/components/toggle-button/props.xml +3 -3
  193. package/dist/specs/components/toggle-button/usage.xml +2 -0
  194. package/dist/specs/components/toggle-group/patterns.xml +3 -3
  195. package/dist/specs/components/tooltip/patterns.xml +7 -7
  196. package/dist/specs/foundation/attributes.xml +22 -0
  197. package/dist/specs/foundation/bootstrap.xml +1 -1
  198. package/dist/specs/foundation/modules.xml +14 -5
  199. package/dist/specs/foundation/toggles.xml +1 -1
  200. package/dist/specs/index.xml +14 -4
  201. package/package.json +2 -2
  202. package/dist/components/spinner/variants/bars.d.ts +0 -2
  203. package/dist/components/spinner/variants/bars.js +0 -134
  204. package/dist/components/spinner/variants/dot-grid.css +0 -1
  205. package/dist/components/spinner/variants/dot-grid.d.ts +0 -2
  206. package/dist/components/spinner/variants/dot-grid.js +0 -57
  207. package/dist/components/spinner/variants/dot-grid.module.js +0 -16
  208. package/dist/components/spinner/variants/dots.d.ts +0 -2
  209. package/dist/components/spinner/variants/dots.js +0 -189
@@ -0,0 +1,10 @@
1
+ //#region src/components/spinner/variants/comet.module.css
2
+ var Spin = "viraui__comet-module__Spin_c3-Xl";
3
+ var Tail = "viraui__comet-module__Tail_z8BYu";
4
+ var comet_module_default = {
5
+ Spin,
6
+ "spinner-comet-spin": "viraui__comet-module__spinner-comet-spin_SPgQw",
7
+ Tail
8
+ };
9
+ //#endregion
10
+ export { Spin, Tail, comet_module_default as default };
@@ -0,0 +1 @@
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@keyframes viraui__compass-module__spinner-compass-turn_3aWjs{to{transform:rotate(90deg)}}.viraui__compass-module__Ticks_3YSLB{transform-origin:12px 12px;animation:viraui__compass-module__spinner-compass-turn_3aWjs .5s ease-in-out infinite;@media (prefers-reduced-motion:reduce){animation:none}}}
@@ -0,0 +1,2 @@
1
+ declare const CompassGlyph: React.FC;
2
+ export default CompassGlyph;
@@ -0,0 +1,16 @@
1
+ import './compass.css';
2
+ import compass_module_default from "./compass.module.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/components/spinner/variants/compass.tsx
5
+ var CompassGlyph = () => /* @__PURE__ */ jsxs("g", {
6
+ className: compass_module_default.Ticks,
7
+ fill: "currentColor",
8
+ children: [
9
+ /* @__PURE__ */ jsx("path", { d: "M11 1C11 0.447715 11.4477 0 12 0C12.5523 0 13 0.447715 13 1V5C13 5.55228 12.5523 6 12 6C11.4477 6 11 5.55228 11 5V1Z" }),
10
+ /* @__PURE__ */ jsx("path", { d: "M19 13C18.4477 13 18 12.5523 18 12C18 11.4477 18.4477 11 19 11H23C23.5523 11 24 11.4477 24 12C24 12.5523 23.5523 13 23 13H19Z" }),
11
+ /* @__PURE__ */ jsx("path", { d: "M11 19C11 18.4477 11.4477 18 12 18C12.5523 18 13 18.4477 13 19V23C13 23.5523 12.5523 24 12 24C11.4477 24 11 23.5523 11 23V19Z" }),
12
+ /* @__PURE__ */ jsx("path", { d: "M1 13C0.447715 13 0 12.5523 0 12C0 11.4477 0.447715 11 1 11H5C5.55228 11 6 11.4477 6 12C6 12.5523 5.55228 13 5 13H1Z" })
13
+ ]
14
+ });
15
+ //#endregion
16
+ export { CompassGlyph as default };
@@ -0,0 +1,8 @@
1
+ //#region src/components/spinner/variants/compass.module.css
2
+ var Ticks = "viraui__compass-module__Ticks_3YSLB";
3
+ var compass_module_default = {
4
+ Ticks,
5
+ "spinner-compass-turn": "viraui__compass-module__spinner-compass-turn_3aWjs"
6
+ };
7
+ //#endregion
8
+ export { Ticks, compass_module_default as default };
@@ -0,0 +1 @@
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@keyframes viraui__dual-module__spinner-dual-spin_do4HR{to{transform:rotate(1turn)}}.viraui__dual-module__Outer_s1xdV{transform-origin:12px 12px;animation:viraui__dual-module__spinner-dual-spin_do4HR 1s linear infinite;@media (prefers-reduced-motion:reduce){animation:none}}.viraui__dual-module__Inner_OMciE{transform-origin:12px 12px;animation:viraui__dual-module__spinner-dual-spin_do4HR 1s linear infinite reverse;@media (prefers-reduced-motion:reduce){animation:none;transform:rotate(180deg)}}}
@@ -0,0 +1,2 @@
1
+ declare const DualGlyph: React.FC;
2
+ export default DualGlyph;
@@ -0,0 +1,25 @@
1
+ import './dual.css';
2
+ import dual_module_default from "./dual.module.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/components/spinner/variants/dual.tsx
5
+ var DualGlyph = () => /* @__PURE__ */ jsxs("g", {
6
+ fill: "none",
7
+ stroke: "currentColor",
8
+ strokeWidth: "2.5",
9
+ strokeLinecap: "round",
10
+ children: [/* @__PURE__ */ jsx("circle", {
11
+ className: dual_module_default.Outer,
12
+ cx: "12",
13
+ cy: "12",
14
+ r: "10",
15
+ strokeDasharray: "18 44.8"
16
+ }), /* @__PURE__ */ jsx("circle", {
17
+ className: dual_module_default.Inner,
18
+ cx: "12",
19
+ cy: "12",
20
+ r: "5.5",
21
+ strokeDasharray: "10 24.6"
22
+ })]
23
+ });
24
+ //#endregion
25
+ export { DualGlyph as default };
@@ -0,0 +1,10 @@
1
+ //#region src/components/spinner/variants/dual.module.css
2
+ var Outer = "viraui__dual-module__Outer_s1xdV";
3
+ var Inner = "viraui__dual-module__Inner_OMciE";
4
+ var dual_module_default = {
5
+ Outer,
6
+ "spinner-dual-spin": "viraui__dual-module__spinner-dual-spin_do4HR",
7
+ Inner
8
+ };
9
+ //#endregion
10
+ export { Inner, Outer, dual_module_default as default };
@@ -0,0 +1 @@
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@keyframes viraui__eclipse-module__spinner-eclipse-slide_UT5Mk{0%,to{translate:75% 0}50%{translate:-75% 0}}@keyframes viraui__eclipse-module__spinner-eclipse-depth_SYERa{0%,50%,to{opacity:.75;scale:1}25%{opacity:1;scale:1.3}75%{opacity:.5;scale:.7}}.viraui__eclipse-module__Dot_huRa-{transform-box:fill-box;transform-origin:center;animation:viraui__eclipse-module__spinner-eclipse-slide_UT5Mk 1.2s ease-in-out infinite,viraui__eclipse-module__spinner-eclipse-depth_SYERa 1.2s ease-in-out infinite;animation-delay:calc(1.2s * (var(--__spinner-eclipse-step) - 2) / 2);@media (prefers-reduced-motion:reduce){animation:none;opacity:.75;translate:calc(var(--__spinner-eclipse-step) * 150% - 75%) 0}}}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Two dots at viewBox center (40% diameter), slide ±75% of own box + scale/opacity.
3
+ * Pure SVG — same motion as upstream HTML eclipse.
4
+ */
5
+ declare const EclipseGlyph: React.FC;
6
+ export default EclipseGlyph;
@@ -0,0 +1,21 @@
1
+ import './eclipse.css';
2
+ import eclipse_module_default from "./eclipse.module.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/spinner/variants/eclipse.tsx
5
+ var DOTS = [0, 1];
6
+ /**
7
+ * Two dots at viewBox center (40% diameter), slide ±75% of own box + scale/opacity.
8
+ * Pure SVG — same motion as upstream HTML eclipse.
9
+ */
10
+ var EclipseGlyph = () => /* @__PURE__ */ jsx("g", {
11
+ fill: "currentColor",
12
+ children: DOTS.map((index) => /* @__PURE__ */ jsx("circle", {
13
+ className: eclipse_module_default.Dot,
14
+ cx: "12",
15
+ cy: "12",
16
+ r: "4.8",
17
+ style: { "--__spinner-eclipse-step": index }
18
+ }, index))
19
+ });
20
+ //#endregion
21
+ export { EclipseGlyph as default };
@@ -0,0 +1,9 @@
1
+ //#region src/components/spinner/variants/eclipse.module.css
2
+ var Dot = "viraui__eclipse-module__Dot_huRa-";
3
+ var eclipse_module_default = {
4
+ Dot,
5
+ "spinner-eclipse-slide": "viraui__eclipse-module__spinner-eclipse-slide_UT5Mk",
6
+ "spinner-eclipse-depth": "viraui__eclipse-module__spinner-eclipse-depth_SYERa"
7
+ };
8
+ //#endregion
9
+ export { Dot, eclipse_module_default as default };
@@ -0,0 +1 @@
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@keyframes viraui__flip-module__spinner-flip-turn_2npnF{0%{transform:rotateX(0deg) rotateY(0deg)}50%{transform:rotateX(-180deg) rotateY(0deg)}to{transform:rotateX(-180deg) rotateY(-180deg)}}.viraui__flip-module__Face_sWidL{transform-box:fill-box;transform-origin:center;animation:viraui__flip-module__spinner-flip-turn_2npnF 1.2s ease-in-out infinite;@media (prefers-reduced-motion:reduce){animation:none}}}
@@ -0,0 +1,2 @@
1
+ declare const FlipGlyph: React.FC;
2
+ export default FlipGlyph;
@@ -0,0 +1,17 @@
1
+ import './flip.css';
2
+ import flip_module_default from "./flip.module.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/spinner/variants/flip.tsx
5
+ var FlipGlyph = () => /* @__PURE__ */ jsx("g", {
6
+ fill: "currentColor",
7
+ children: /* @__PURE__ */ jsx("rect", {
8
+ className: flip_module_default.Face,
9
+ x: "4.3",
10
+ y: "4.3",
11
+ width: "15.4",
12
+ height: "15.4",
13
+ rx: "1.4"
14
+ })
15
+ });
16
+ //#endregion
17
+ export { FlipGlyph as default };
@@ -0,0 +1,8 @@
1
+ //#region src/components/spinner/variants/flip.module.css
2
+ var Face = "viraui__flip-module__Face_sWidL";
3
+ var flip_module_default = {
4
+ Face,
5
+ "spinner-flip-turn": "viraui__flip-module__spinner-flip-turn_2npnF"
6
+ };
7
+ //#endregion
8
+ export { Face, flip_module_default as default };
@@ -0,0 +1 @@
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@keyframes viraui__gather-module__spinner-gather-turn_RgIC9{0%,30%{transform:rotate(0deg)}60%,to{transform:rotate(90deg)}}@keyframes viraui__gather-module__spinner-gather-pull_KCs6V{0%,to{transform:translate(0)}30%,60%{transform:translate(calc(var(--__spinner-gather-x) * var(--__spinner-gather-pull)),calc(var(--__spinner-gather-y) * var(--__spinner-gather-pull)))}}.viraui__gather-module__Group_kcfiS{transform-origin:12px 12px;animation:viraui__gather-module__spinner-gather-turn_RgIC9 1.6s ease-in-out infinite;@media (prefers-reduced-motion:reduce){animation:none}}.viraui__gather-module__Block_5DVf7{transform-box:fill-box;transform-origin:center;animation:viraui__gather-module__spinner-gather-pull_KCs6V 1.6s ease-in-out infinite;@media (prefers-reduced-motion:reduce){animation:none}}}
@@ -0,0 +1,2 @@
1
+ declare const GatherGlyph: React.FC;
2
+ export default GatherGlyph;
@@ -0,0 +1,50 @@
1
+ import './gather.css';
2
+ import gather_module_default from "./gather.module.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/spinner/variants/gather.tsx
5
+ /** Upstream: GAP 24%, GAP_IN 8%, block = (100 − GAP) / 2. */
6
+ var SIZE = 24;
7
+ var BLOCK = 18.240000000000002 / 2;
8
+ var PULL = 3.84 / 2;
9
+ var RADIUS = SIZE * .14;
10
+ var BLOCKS = [
11
+ {
12
+ x: 1,
13
+ y: 1
14
+ },
15
+ {
16
+ x: -1,
17
+ y: 1
18
+ },
19
+ {
20
+ x: 1,
21
+ y: -1
22
+ },
23
+ {
24
+ x: -1,
25
+ y: -1
26
+ }
27
+ ];
28
+ var GatherGlyph = () => /* @__PURE__ */ jsx("g", {
29
+ className: gather_module_default.Group,
30
+ fill: "currentColor",
31
+ children: BLOCKS.map(({ x, y }, index) => {
32
+ const col = index % 2;
33
+ const row = Math.floor(index / 2);
34
+ return /* @__PURE__ */ jsx("rect", {
35
+ className: gather_module_default.Block,
36
+ x: col * 14.88,
37
+ y: row * 14.88,
38
+ width: BLOCK,
39
+ height: BLOCK,
40
+ rx: RADIUS,
41
+ style: {
42
+ "--__spinner-gather-x": x,
43
+ "--__spinner-gather-y": y,
44
+ "--__spinner-gather-pull": `${PULL}px`
45
+ }
46
+ }, `${x}${y}`);
47
+ })
48
+ });
49
+ //#endregion
50
+ export { GatherGlyph as default };
@@ -0,0 +1,11 @@
1
+ //#region src/components/spinner/variants/gather.module.css
2
+ var Group = "viraui__gather-module__Group_kcfiS";
3
+ var Block = "viraui__gather-module__Block_5DVf7";
4
+ var gather_module_default = {
5
+ Group,
6
+ "spinner-gather-turn": "viraui__gather-module__spinner-gather-turn_RgIC9",
7
+ Block,
8
+ "spinner-gather-pull": "viraui__gather-module__spinner-gather-pull_KCs6V"
9
+ };
10
+ //#endregion
11
+ export { Block, Group, gather_module_default as default };
@@ -1,5 +1,13 @@
1
1
  import { ComponentType } from 'react';
2
- export type SpinnerVariant = 'bars' | 'dot-grid' | 'dots';
2
+ export type SpinnerCatalogVariant = 'arc' | 'atom' | 'blocks' | 'bouncing-dots' | 'cascade' | 'circular-dots' | 'classic' | 'classic-v2' | 'clock' | 'comet' | 'compass' | 'dual' | 'eclipse' | 'flip' | 'gather' | 'leap' | 'linear-dots' | 'loading' | 'morph' | 'orbit' | 'pulse' | 'radar' | 'ring' | 'ripple' | 'slide' | 'snake' | 'swirl' | 'trace' | 'wave';
3
+ export type SpinnerLegacyVariant = 'bars' | 'dot-grid' | 'dots';
4
+ export type SpinnerVariant = SpinnerCatalogVariant | SpinnerLegacyVariant;
5
+ /** Alias → canonical catalog name (docs / tests). */
6
+ export declare const SPINNER_CANONICAL: {
7
+ readonly bars: "wave";
8
+ readonly 'dot-grid': "blocks";
9
+ readonly dots: "eclipse";
10
+ };
3
11
  export declare const SPINNER_VIEW_BOXES: Record<SpinnerVariant, string>;
4
12
  export declare const SPINNER_GLYPHS: Record<SpinnerVariant, ComponentType>;
5
13
  export declare const isLazySpinnerVariant: (variant: SpinnerVariant) => boolean;
@@ -1,18 +1,104 @@
1
- import BarsGlyph from "./bars.js";
1
+ import WaveGlyph from "./wave.js";
2
2
  import { lazy } from "react";
3
3
  //#region src/components/spinner/variants/index.ts
4
+ var VIEW_BOX_24 = "0 0 24 24";
5
+ var BlocksGlyph = lazy(() => import("./blocks.js"));
6
+ var EclipseGlyph = lazy(() => import("./eclipse.js"));
7
+ var ArcGlyph = lazy(() => import("./arc.js"));
8
+ var AtomGlyph = lazy(() => import("./atom.js"));
9
+ var BouncingDotsGlyph = lazy(() => import("./bouncing-dots.js"));
10
+ var CascadeGlyph = lazy(() => import("./cascade.js"));
11
+ var CircularDotsGlyph = lazy(() => import("./circular-dots.js"));
12
+ var ClassicGlyph = lazy(() => import("./classic.js"));
13
+ var ClassicV2Glyph = lazy(() => import("./classic-v2.js"));
14
+ var ClockGlyph = lazy(() => import("./clock.js"));
15
+ var CometGlyph = lazy(() => import("./comet.js"));
16
+ var CompassGlyph = lazy(() => import("./compass.js"));
17
+ var DualGlyph = lazy(() => import("./dual.js"));
18
+ var FlipGlyph = lazy(() => import("./flip.js"));
19
+ var GatherGlyph = lazy(() => import("./gather.js"));
20
+ var LeapGlyph = lazy(() => import("./leap.js"));
21
+ var LinearDotsGlyph = lazy(() => import("./linear-dots.js"));
22
+ var LoadingGlyph = lazy(() => import("./loading.js"));
23
+ var MorphGlyph = lazy(() => import("./morph.js"));
24
+ var OrbitGlyph = lazy(() => import("./orbit.js"));
25
+ var PulseGlyph = lazy(() => import("./pulse.js"));
26
+ var RadarGlyph = lazy(() => import("./radar.js"));
27
+ var RingGlyph = lazy(() => import("./ring.js"));
28
+ var RippleGlyph = lazy(() => import("./ripple.js"));
29
+ var SlideGlyph = lazy(() => import("./slide.js"));
30
+ var SnakeGlyph = lazy(() => import("./snake.js"));
31
+ var SwirlGlyph = lazy(() => import("./swirl.js"));
32
+ var TraceGlyph = lazy(() => import("./trace.js"));
4
33
  var SPINNER_VIEW_BOXES = {
5
- bars: "0 0 24 24",
6
- "dot-grid": "-13 -13 45 45",
7
- dots: "0 0 24 24"
34
+ arc: VIEW_BOX_24,
35
+ atom: VIEW_BOX_24,
36
+ blocks: VIEW_BOX_24,
37
+ "bouncing-dots": VIEW_BOX_24,
38
+ cascade: VIEW_BOX_24,
39
+ "circular-dots": VIEW_BOX_24,
40
+ classic: VIEW_BOX_24,
41
+ "classic-v2": VIEW_BOX_24,
42
+ clock: VIEW_BOX_24,
43
+ comet: VIEW_BOX_24,
44
+ compass: VIEW_BOX_24,
45
+ dual: VIEW_BOX_24,
46
+ eclipse: VIEW_BOX_24,
47
+ flip: VIEW_BOX_24,
48
+ gather: VIEW_BOX_24,
49
+ leap: VIEW_BOX_24,
50
+ "linear-dots": VIEW_BOX_24,
51
+ loading: VIEW_BOX_24,
52
+ morph: VIEW_BOX_24,
53
+ orbit: VIEW_BOX_24,
54
+ pulse: VIEW_BOX_24,
55
+ radar: VIEW_BOX_24,
56
+ ring: VIEW_BOX_24,
57
+ ripple: VIEW_BOX_24,
58
+ slide: VIEW_BOX_24,
59
+ snake: VIEW_BOX_24,
60
+ swirl: VIEW_BOX_24,
61
+ trace: VIEW_BOX_24,
62
+ wave: VIEW_BOX_24,
63
+ bars: VIEW_BOX_24,
64
+ "dot-grid": VIEW_BOX_24,
65
+ dots: VIEW_BOX_24
8
66
  };
9
- var DotGridGlyph = lazy(() => import("./dot-grid.js"));
10
- var DotsGlyph = lazy(() => import("./dots.js"));
11
67
  var SPINNER_GLYPHS = {
12
- bars: BarsGlyph,
13
- "dot-grid": DotGridGlyph,
14
- dots: DotsGlyph
68
+ wave: WaveGlyph,
69
+ bars: WaveGlyph,
70
+ blocks: BlocksGlyph,
71
+ "dot-grid": BlocksGlyph,
72
+ eclipse: EclipseGlyph,
73
+ dots: EclipseGlyph,
74
+ arc: ArcGlyph,
75
+ atom: AtomGlyph,
76
+ "bouncing-dots": BouncingDotsGlyph,
77
+ cascade: CascadeGlyph,
78
+ "circular-dots": CircularDotsGlyph,
79
+ classic: ClassicGlyph,
80
+ "classic-v2": ClassicV2Glyph,
81
+ clock: ClockGlyph,
82
+ comet: CometGlyph,
83
+ compass: CompassGlyph,
84
+ dual: DualGlyph,
85
+ flip: FlipGlyph,
86
+ gather: GatherGlyph,
87
+ leap: LeapGlyph,
88
+ "linear-dots": LinearDotsGlyph,
89
+ loading: LoadingGlyph,
90
+ morph: MorphGlyph,
91
+ orbit: OrbitGlyph,
92
+ pulse: PulseGlyph,
93
+ radar: RadarGlyph,
94
+ ring: RingGlyph,
95
+ ripple: RippleGlyph,
96
+ slide: SlideGlyph,
97
+ snake: SnakeGlyph,
98
+ swirl: SwirlGlyph,
99
+ trace: TraceGlyph
15
100
  };
16
- var isLazySpinnerVariant = (variant) => variant === "dot-grid" || variant === "dots";
101
+ var EAGER_VARIANTS = /* @__PURE__ */ new Set(["wave", "bars"]);
102
+ var isLazySpinnerVariant = (variant) => !EAGER_VARIANTS.has(variant);
17
103
  //#endregion
18
104
  export { SPINNER_GLYPHS, SPINNER_VIEW_BOXES, isLazySpinnerVariant };
@@ -0,0 +1 @@
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@keyframes viraui__leap-module__spinner-leap-hop_k9ma5{0%{transform:translateX(0) rotate(0deg)}33.33%{transform:translateX(0) rotate(180deg)}66.66%{transform:translateX(-39%) rotate(180deg)}to{transform:translateX(-78%) rotate(180deg)}}.viraui__leap-module__Hop_xIPGy{transform-box:view-box;transform-origin:center;animation:viraui__leap-module__spinner-leap-hop_k9ma5 1.8s ease-in-out infinite;animation-delay:calc(1.8s * (var(--__spinner-leap-step) - 3) / 3);@media (prefers-reduced-motion:reduce){animation:none;transform:translateX(calc(var(--__spinner-leap-step) * 39%))}}}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Leap hop = rotate 180° about viewBox center (dot swings L→R), then slide left by gap.
3
+ * Pure SVG — `transform-box: view-box` so % tracks host like upstream HTML wrapper.
4
+ */
5
+ declare const LeapGlyph: React.FC;
6
+ export default LeapGlyph;
@@ -0,0 +1,27 @@
1
+ import './leap.css';
2
+ import leap_module_default from "./leap.module.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/spinner/variants/leap.tsx
5
+ var DOTS = [
6
+ 0,
7
+ 1,
8
+ 2
9
+ ];
10
+ /** Dot diameter = 22% of viewBox → r = 2.64; rests on leading (left) edge. */
11
+ var DOT_R = 2.64;
12
+ /**
13
+ * Leap hop = rotate 180° about viewBox center (dot swings L→R), then slide left by gap.
14
+ * Pure SVG — `transform-box: view-box` so % tracks host like upstream HTML wrapper.
15
+ */
16
+ var LeapGlyph = () => /* @__PURE__ */ jsx("g", {
17
+ fill: "currentColor",
18
+ children: DOTS.map((index) => /* @__PURE__ */ jsx("circle", {
19
+ className: leap_module_default.Hop,
20
+ cx: DOT_R,
21
+ cy: "12",
22
+ r: DOT_R,
23
+ style: { "--__spinner-leap-step": index }
24
+ }, index))
25
+ });
26
+ //#endregion
27
+ export { LeapGlyph as default };
@@ -0,0 +1,8 @@
1
+ //#region src/components/spinner/variants/leap.module.css
2
+ var Hop = "viraui__leap-module__Hop_xIPGy";
3
+ var leap_module_default = {
4
+ Hop,
5
+ "spinner-leap-hop": "viraui__leap-module__spinner-leap-hop_k9ma5"
6
+ };
7
+ //#endregion
8
+ export { Hop, leap_module_default as default };
@@ -0,0 +1 @@
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@keyframes viraui__linear-dots-module__spinner-linear-dots-fade_FBBP3{0%,to{opacity:1}66.67%{opacity:.5}}.viraui__linear-dots-module__Dot_FZUkL{animation:viraui__linear-dots-module__spinner-linear-dots-fade_FBBP3 .9s linear infinite;animation-delay:calc(.9s * (var(--__spinner-linear-dots-step) - 3) / 3);@media (prefers-reduced-motion:reduce){animation:none;opacity:.75}}}
@@ -0,0 +1,2 @@
1
+ declare const LinearDotsGlyph: React.FC;
2
+ export default LinearDotsGlyph;
@@ -0,0 +1,21 @@
1
+ import './linear-dots.css';
2
+ import linear_dots_module_default from "./linear-dots.module.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/spinner/variants/linear-dots.tsx
5
+ var DOTS = [
6
+ 0,
7
+ 1,
8
+ 2
9
+ ];
10
+ var LinearDotsGlyph = () => /* @__PURE__ */ jsx("g", {
11
+ fill: "currentColor",
12
+ children: DOTS.map((index) => /* @__PURE__ */ jsx("circle", {
13
+ className: linear_dots_module_default.Dot,
14
+ cx: 5.5 + index * 6.5,
15
+ cy: "12",
16
+ r: "2.25",
17
+ style: { "--__spinner-linear-dots-step": index }
18
+ }, index))
19
+ });
20
+ //#endregion
21
+ export { LinearDotsGlyph as default };
@@ -0,0 +1,8 @@
1
+ //#region src/components/spinner/variants/linear-dots.module.css
2
+ var Dot = "viraui__linear-dots-module__Dot_FZUkL";
3
+ var linear_dots_module_default = {
4
+ Dot,
5
+ "spinner-linear-dots-fade": "viraui__linear-dots-module__spinner-linear-dots-fade_FBBP3"
6
+ };
7
+ //#endregion
8
+ export { Dot, linear_dots_module_default as default };
@@ -0,0 +1 @@
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@keyframes viraui__loading-module__spinner-loading-fade_KoPNK{0%{opacity:1}to{opacity:.2}}.viraui__loading-module__Segment_qgv4H{animation:viraui__loading-module__spinner-loading-fade_KoPNK 1s linear infinite;animation-delay:calc(1s * (var(--__spinner-loading-step) - 8) / 8);@media (prefers-reduced-motion:reduce){animation:none;opacity:.6}}}
@@ -0,0 +1,2 @@
1
+ declare const LoadingGlyph: React.FC;
2
+ export default LoadingGlyph;
@@ -0,0 +1,50 @@
1
+ import './loading.css';
2
+ import loading_module_default from "./loading.module.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/spinner/variants/loading.tsx
5
+ var BLOCK = "M0 0h1.5v1.5H0zM3 0h1.5v1.5H3zM0 3h1.5v1.5H0zM3 3h1.5v1.5H3z";
6
+ var SEGMENTS = [
7
+ {
8
+ x: 18,
9
+ y: 9
10
+ },
11
+ {
12
+ x: 15,
13
+ y: 15
14
+ },
15
+ {
16
+ x: 9,
17
+ y: 18
18
+ },
19
+ {
20
+ x: 3,
21
+ y: 15
22
+ },
23
+ {
24
+ x: 0,
25
+ y: 9
26
+ },
27
+ {
28
+ x: 3,
29
+ y: 3
30
+ },
31
+ {
32
+ x: 9,
33
+ y: 0
34
+ },
35
+ {
36
+ x: 15,
37
+ y: 3
38
+ }
39
+ ];
40
+ var LoadingGlyph = () => /* @__PURE__ */ jsx("g", {
41
+ fill: "currentColor",
42
+ children: SEGMENTS.map(({ x, y }, index) => /* @__PURE__ */ jsx("path", {
43
+ className: loading_module_default.Segment,
44
+ d: BLOCK,
45
+ transform: `translate(${x} ${y})`,
46
+ style: { "--__spinner-loading-step": index }
47
+ }, `${x}-${y}`))
48
+ });
49
+ //#endregion
50
+ export { LoadingGlyph as default };
@@ -0,0 +1,8 @@
1
+ //#region src/components/spinner/variants/loading.module.css
2
+ var Segment = "viraui__loading-module__Segment_qgv4H";
3
+ var loading_module_default = {
4
+ Segment,
5
+ "spinner-loading-fade": "viraui__loading-module__spinner-loading-fade_KoPNK"
6
+ };
7
+ //#endregion
8
+ export { Segment, loading_module_default as default };
@@ -0,0 +1 @@
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@keyframes viraui__morph-module__spinner-morph-round_5GM8w{0%{rx:1.9px;ry:1.9px;transform:rotate(0deg)}50%{rx:7.7px;ry:7.7px;transform:rotate(45deg)}to{rx:1.9px;ry:1.9px;transform:rotate(90deg)}}.viraui__morph-module__Shape_vZzeb{transform-box:fill-box;transform-origin:center;animation:viraui__morph-module__spinner-morph-round_5GM8w 1.2s ease-in-out infinite;@media (prefers-reduced-motion:reduce){animation:none}}}
@@ -0,0 +1,2 @@
1
+ declare const MorphGlyph: React.FC;
2
+ export default MorphGlyph;
@@ -0,0 +1,17 @@
1
+ import './morph.css';
2
+ import morph_module_default from "./morph.module.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/spinner/variants/morph.tsx
5
+ var MorphGlyph = () => /* @__PURE__ */ jsx("g", {
6
+ fill: "currentColor",
7
+ children: /* @__PURE__ */ jsx("rect", {
8
+ className: morph_module_default.Shape,
9
+ x: "4.3",
10
+ y: "4.3",
11
+ width: "15.4",
12
+ height: "15.4",
13
+ rx: "1.9"
14
+ })
15
+ });
16
+ //#endregion
17
+ export { MorphGlyph as default };
@@ -0,0 +1,8 @@
1
+ //#region src/components/spinner/variants/morph.module.css
2
+ var Shape = "viraui__morph-module__Shape_vZzeb";
3
+ var morph_module_default = {
4
+ Shape,
5
+ "spinner-morph-round": "viraui__morph-module__spinner-morph-round_5GM8w"
6
+ };
7
+ //#endregion
8
+ export { Shape, morph_module_default as default };
@@ -0,0 +1 @@
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@keyframes viraui__orbit-module__spinner-orbit-spin_unNkn{to{transform:rotate(1turn)}}.viraui__orbit-module__Track_kisTF{transform-origin:12px 12px;animation:viraui__orbit-module__spinner-orbit-spin_unNkn .75s linear infinite;@media (prefers-reduced-motion:reduce){animation:none}}}
@@ -0,0 +1,2 @@
1
+ declare const OrbitGlyph: React.FC;
2
+ export default OrbitGlyph;
@@ -0,0 +1,24 @@
1
+ import './orbit.css';
2
+ import orbit_module_default from "./orbit.module.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/components/spinner/variants/orbit.tsx
5
+ var OrbitGlyph = () => /* @__PURE__ */ jsxs("g", { children: [/* @__PURE__ */ jsx("circle", {
6
+ cx: "12",
7
+ cy: "12",
8
+ r: "3",
9
+ fill: "currentColor"
10
+ }), /* @__PURE__ */ jsx("g", {
11
+ className: orbit_module_default.Track,
12
+ fill: "none",
13
+ stroke: "currentColor",
14
+ strokeWidth: "1.5",
15
+ strokeLinecap: "round",
16
+ children: /* @__PURE__ */ jsx("circle", {
17
+ cx: "12",
18
+ cy: "12",
19
+ r: "9",
20
+ strokeDasharray: "28 28.5"
21
+ })
22
+ })] });
23
+ //#endregion
24
+ export { OrbitGlyph as default };
@@ -0,0 +1,8 @@
1
+ //#region src/components/spinner/variants/orbit.module.css
2
+ var Track = "viraui__orbit-module__Track_kisTF";
3
+ var orbit_module_default = {
4
+ Track,
5
+ "spinner-orbit-spin": "viraui__orbit-module__spinner-orbit-spin_unNkn"
6
+ };
7
+ //#endregion
8
+ export { Track, orbit_module_default as default };
@@ -0,0 +1 @@
1
+ @layer viraui.preflight, viraui.components, viraui.overrides;@layer viraui.components{@keyframes viraui__pulse-module__spinner-pulse-ripple_uxhZW{0%{opacity:.4;transform:scale(.25)}to{opacity:0;transform:scale(1)}}.viraui__pulse-module__Ring_urT8a{transform-origin:12px 12px;animation:viraui__pulse-module__spinner-pulse-ripple_uxhZW 1.2s ease-out infinite;@media (prefers-reduced-motion:reduce){animation:none;opacity:.2}}}
@@ -0,0 +1,2 @@
1
+ declare const PulseGlyph: React.FC;
2
+ export default PulseGlyph;
@@ -0,0 +1,19 @@
1
+ import './pulse.css';
2
+ import pulse_module_default from "./pulse.module.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ //#region src/components/spinner/variants/pulse.tsx
5
+ var PulseGlyph = () => /* @__PURE__ */ jsxs("g", {
6
+ fill: "currentColor",
7
+ children: [/* @__PURE__ */ jsx("circle", {
8
+ className: pulse_module_default.Ring,
9
+ cx: "12",
10
+ cy: "12",
11
+ r: "12"
12
+ }), /* @__PURE__ */ jsx("circle", {
13
+ cx: "12",
14
+ cy: "12",
15
+ r: "3"
16
+ })]
17
+ });
18
+ //#endregion
19
+ export { PulseGlyph as default };