@nsaa/core 0.1.0-alpha.1 → 0.1.0-alpha.2

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 (236) hide show
  1. package/dist/accordion/accordion.d.ts +7 -0
  2. package/dist/accordion/accordion.js +54 -0
  3. package/dist/accordion/index.d.ts +3 -0
  4. package/dist/alert/alert.d.ts +18 -0
  5. package/dist/alert/alert.js +53 -0
  6. package/dist/alert/index.d.ts +3 -0
  7. package/dist/alert-dialog/alert-dialog.d.ts +19 -0
  8. package/dist/alert-dialog/alert-dialog.js +100 -0
  9. package/dist/alert-dialog/index.d.ts +3 -0
  10. package/dist/avatar/avatar.d.ts +12 -0
  11. package/dist/avatar/avatar.js +50 -0
  12. package/dist/avatar/index.d.ts +3 -0
  13. package/dist/badge/badge.d.ts +8 -0
  14. package/dist/badge/badge.js +29 -0
  15. package/dist/badge/index.d.ts +3 -0
  16. package/dist/button/button.d.ts +25 -0
  17. package/dist/button/button.js +136 -0
  18. package/dist/button/index.d.ts +3 -0
  19. package/dist/calendar/calendar.d.ts +11 -0
  20. package/dist/calendar/calendar.js +131 -0
  21. package/dist/calendar/index.d.ts +3 -0
  22. package/dist/card/card.d.ts +12 -0
  23. package/dist/card/card.js +55 -0
  24. package/dist/card/index.d.ts +3 -0
  25. package/dist/checkbox/checkbox.d.ts +4 -0
  26. package/dist/checkbox/checkbox.js +35 -0
  27. package/dist/checkbox/index.d.ts +3 -0
  28. package/dist/collapsible/collapsible.d.ts +6 -0
  29. package/dist/collapsible/collapsible.js +24 -0
  30. package/dist/collapsible/index.d.ts +3 -0
  31. package/dist/combobox/combobox.d.ts +27 -0
  32. package/dist/combobox/combobox.js +226 -0
  33. package/dist/combobox/index.d.ts +3 -0
  34. package/dist/command/command.d.ts +20 -0
  35. package/dist/command/command.js +116 -0
  36. package/dist/command/index.d.ts +3 -0
  37. package/dist/context-menu/context-menu.d.ts +30 -0
  38. package/dist/context-menu/context-menu.js +173 -0
  39. package/dist/context-menu/index.d.ts +3 -0
  40. package/dist/dialog/dialog.d.ts +18 -0
  41. package/dist/dialog/dialog.js +106 -0
  42. package/dist/dialog/index.d.ts +3 -0
  43. package/dist/direction.d.ts +3 -0
  44. package/dist/direction.js +2 -0
  45. package/dist/drawer/drawer.d.ts +17 -0
  46. package/dist/drawer/drawer.js +136 -0
  47. package/dist/drawer/index.d.ts +3 -0
  48. package/dist/dropdown-menu/dropdown-menu.d.ts +30 -0
  49. package/dist/dropdown-menu/dropdown-menu.js +177 -0
  50. package/dist/dropdown-menu/index.d.ts +3 -0
  51. package/dist/empty/empty.d.ts +35 -0
  52. package/dist/empty/empty.js +93 -0
  53. package/dist/empty/index.d.ts +3 -0
  54. package/dist/field/field.d.ts +26 -0
  55. package/dist/field/field.js +109 -0
  56. package/dist/field/index.d.ts +3 -0
  57. package/dist/index.d.ts +89 -674
  58. package/dist/index.js +48 -3876
  59. package/dist/input/index.d.ts +3 -0
  60. package/dist/input/input.d.ts +4 -0
  61. package/dist/input/input.js +14 -0
  62. package/dist/input-group/index.d.ts +3 -0
  63. package/dist/input-group/input-group.d.ts +19 -0
  64. package/dist/input-group/input-group.js +78 -0
  65. package/dist/input-otp/index.d.ts +3 -0
  66. package/dist/input-otp/input-otp.d.ts +12 -0
  67. package/dist/input-otp/input-otp.js +73 -0
  68. package/dist/kbd/index.d.ts +3 -0
  69. package/dist/kbd/kbd.d.ts +5 -0
  70. package/dist/kbd/kbd.js +19 -0
  71. package/dist/label/index.d.ts +3 -0
  72. package/dist/label/label.d.ts +4 -0
  73. package/dist/label/label.js +13 -0
  74. package/dist/legacy/icon-button/icon-swap.js +58 -0
  75. package/dist/lib/cn.d.ts +3 -0
  76. package/dist/{cn-DxFBFdwT.js → lib/cn.js} +1 -1
  77. package/dist/lib/control-defaults.js +8 -0
  78. package/dist/lib/icon-swap.d.ts +15 -0
  79. package/dist/lib/icon-swap.js +26 -0
  80. package/dist/lib/input-modality.js +39 -0
  81. package/dist/lib/merge-refs.js +21 -0
  82. package/dist/lib/shortcut.js +50 -0
  83. package/dist/lib/track-input-modality.d.ts +2 -0
  84. package/dist/lib/track-input-modality.js +4 -0
  85. package/dist/lib/tv.js +7 -0
  86. package/dist/lib/use-press.js +48 -0
  87. package/dist/lib/user-action.js +13 -0
  88. package/dist/loaders/arc.d.ts +6 -0
  89. package/dist/loaders/arc.js +31 -0
  90. package/dist/loaders/atom.d.ts +5 -0
  91. package/dist/loaders/atom.js +70 -0
  92. package/dist/loaders/blocks.d.ts +8 -0
  93. package/dist/loaders/blocks.js +74 -0
  94. package/dist/loaders/bouncing-dots.d.ts +3 -0
  95. package/dist/loaders/bouncing-dots.js +45 -0
  96. package/dist/loaders/cap.d.ts +6 -0
  97. package/dist/loaders/cap.js +7 -0
  98. package/dist/loaders/cascade.d.ts +5 -0
  99. package/dist/loaders/cascade.js +50 -0
  100. package/dist/loaders/circular-dots.d.ts +3 -0
  101. package/dist/loaders/circular-dots.js +40 -0
  102. package/dist/loaders/classic-v2.d.ts +3 -0
  103. package/dist/loaders/classic-v2.js +41 -0
  104. package/dist/loaders/classic.d.ts +3 -0
  105. package/dist/loaders/classic.js +48 -0
  106. package/dist/loaders/clock.d.ts +5 -0
  107. package/dist/loaders/clock.js +31 -0
  108. package/dist/loaders/comet.d.ts +5 -0
  109. package/dist/loaders/comet.js +52 -0
  110. package/dist/loaders/compass.d.ts +3 -0
  111. package/dist/loaders/compass.js +39 -0
  112. package/dist/loaders/dual.d.ts +6 -0
  113. package/dist/loaders/dual.js +47 -0
  114. package/dist/loaders/easing.d.ts +6 -0
  115. package/dist/loaders/easing.js +34 -0
  116. package/dist/loaders/eclipse.d.ts +3 -0
  117. package/dist/loaders/eclipse.js +69 -0
  118. package/dist/loaders/fade.js +28 -0
  119. package/dist/loaders/flip.d.ts +3 -0
  120. package/dist/loaders/flip.js +41 -0
  121. package/dist/{frame-CK9IBOZB.js → loaders/frame.js} +2 -50
  122. package/dist/loaders/gather.d.ts +3 -0
  123. package/dist/loaders/gather.js +85 -0
  124. package/dist/loaders/leap.d.ts +3 -0
  125. package/dist/loaders/leap.js +67 -0
  126. package/dist/loaders/linear-dots.d.ts +3 -0
  127. package/dist/loaders/linear-dots.js +54 -0
  128. package/dist/loaders/loading.d.ts +3 -0
  129. package/dist/loaders/loading.js +64 -0
  130. package/dist/loaders/morph.d.ts +3 -0
  131. package/dist/loaders/morph.js +40 -0
  132. package/dist/loaders/motion.d.ts +35 -0
  133. package/dist/loaders/motion.js +51 -0
  134. package/dist/loaders/orbit.d.ts +5 -0
  135. package/dist/loaders/orbit.js +44 -0
  136. package/dist/loaders/pulse.d.ts +3 -0
  137. package/dist/loaders/pulse.js +52 -0
  138. package/dist/loaders/radar.d.ts +5 -0
  139. package/dist/loaders/radar.js +64 -0
  140. package/dist/loaders/ring.d.ts +6 -0
  141. package/dist/loaders/ring.js +38 -0
  142. package/dist/loaders/ripple.d.ts +8 -0
  143. package/dist/loaders/ripple.js +57 -0
  144. package/dist/loaders/slide.d.ts +3 -0
  145. package/dist/loaders/slide.js +74 -0
  146. package/dist/loaders/snake.d.ts +6 -0
  147. package/dist/loaders/snake.js +59 -0
  148. package/dist/loaders/spinners.d.ts +61 -0
  149. package/dist/loaders/spinners.js +63 -0
  150. package/dist/loaders/swirl.d.ts +3 -0
  151. package/dist/loaders/swirl.js +50 -0
  152. package/dist/loaders/text/shared.js +25 -0
  153. package/dist/loaders/text/text-loaders.d.ts +48 -0
  154. package/dist/loaders/text/text-loaders.js +723 -0
  155. package/dist/loaders/trace.d.ts +6 -0
  156. package/dist/loaders/trace.js +46 -0
  157. package/dist/loaders/types.d.ts +10 -0
  158. package/dist/loaders/wave.d.ts +8 -0
  159. package/dist/loaders/wave.js +59 -0
  160. package/dist/loaders-text.d.ts +2 -47
  161. package/dist/loaders-text.js +1 -743
  162. package/dist/loaders.d.ts +36 -132
  163. package/dist/loaders.js +35 -1096
  164. package/dist/native-select/index.d.ts +3 -0
  165. package/dist/native-select/native-select.d.ts +9 -0
  166. package/dist/native-select/native-select.js +44 -0
  167. package/dist/pagination/index.d.ts +3 -0
  168. package/dist/pagination/pagination.d.ts +18 -0
  169. package/dist/pagination/pagination.js +134 -0
  170. package/dist/popover/index.d.ts +3 -0
  171. package/dist/popover/popover.d.ts +10 -0
  172. package/dist/popover/popover.js +54 -0
  173. package/dist/radio-group/index.d.ts +3 -0
  174. package/dist/radio-group/radio-group.d.ts +6 -0
  175. package/dist/radio-group/radio-group.js +33 -0
  176. package/dist/select/index.d.ts +3 -0
  177. package/dist/select/select.d.ts +16 -0
  178. package/dist/select/select.js +148 -0
  179. package/dist/separator/index.d.ts +3 -0
  180. package/dist/separator/separator.d.ts +4 -0
  181. package/dist/separator/separator.js +15 -0
  182. package/dist/skeleton/index.d.ts +3 -0
  183. package/dist/skeleton/skeleton.d.ts +10 -0
  184. package/dist/skeleton/skeleton.js +24 -0
  185. package/dist/slider/index.d.ts +3 -0
  186. package/dist/slider/slider.d.ts +4 -0
  187. package/dist/slider/slider.js +39 -0
  188. package/dist/sound/sound-map.d.ts +70 -0
  189. package/dist/sound/sound-map.js +72 -0
  190. package/dist/sound/sound.d.ts +38 -0
  191. package/dist/sound/sound.js +136 -0
  192. package/dist/sound/uisfx.d.ts +37 -0
  193. package/dist/sound/uisfx.js +59 -0
  194. package/dist/sound-uisfx.d.ts +2 -37
  195. package/dist/sound-uisfx.js +1 -58
  196. package/dist/spinner/index.d.ts +5 -0
  197. package/dist/spinner/loader-provider.d.ts +16 -0
  198. package/dist/spinner/loader-provider.js +28 -0
  199. package/dist/spinner/registry.d.ts +9 -0
  200. package/dist/spinner/registry.js +15 -0
  201. package/dist/spinner/spinner.d.ts +26 -0
  202. package/dist/spinner/spinner.js +143 -0
  203. package/dist/switch/index.d.ts +3 -0
  204. package/dist/switch/switch.d.ts +6 -0
  205. package/dist/switch/switch.js +25 -0
  206. package/dist/table/index.d.ts +3 -0
  207. package/dist/table/table.d.ts +17 -0
  208. package/dist/table/table.js +66 -0
  209. package/dist/tabs/index.d.ts +3 -0
  210. package/dist/tabs/tabs.d.ts +11 -0
  211. package/dist/tabs/tabs.js +46 -0
  212. package/dist/textarea/index.d.ts +3 -0
  213. package/dist/textarea/textarea.d.ts +4 -0
  214. package/dist/textarea/textarea.js +12 -0
  215. package/dist/toast/index.d.ts +3 -0
  216. package/dist/toast/toast.d.ts +17 -0
  217. package/dist/toast/toast.js +211 -0
  218. package/dist/toggle-group/index.d.ts +3 -0
  219. package/dist/toggle-group/toggle-group.d.ts +64 -0
  220. package/dist/toggle-group/toggle-group.js +95 -0
  221. package/dist/tokens/dist/motion.d.ts +24 -0
  222. package/dist/{motion-NQq2BA78.js → tokens/dist/motion.js} +1 -1
  223. package/dist/toolbar/index.d.ts +3 -0
  224. package/dist/toolbar/overflow.d.ts +4 -0
  225. package/dist/toolbar/overflow.js +242 -0
  226. package/dist/toolbar/toolbar-item.d.ts +29 -0
  227. package/dist/toolbar/toolbar-item.js +71 -0
  228. package/dist/toolbar/toolbar.d.ts +73 -0
  229. package/dist/toolbar/toolbar.js +250 -0
  230. package/dist/tooltip/index.d.ts +3 -0
  231. package/dist/tooltip/tooltip.d.ts +7 -0
  232. package/dist/tooltip/tooltip.js +41 -0
  233. package/package.json +4 -3
  234. package/dist/registry-2PyPW9Xw.js +0 -390
  235. package/dist/registry-DjfWNw3R.d.ts +0 -18
  236. package/dist/sound-DiYNAnR_.d.ts +0 -61
@@ -0,0 +1,46 @@
1
+ "use client";
2
+ import { linecap } from "./cap.js";
3
+ import { rotationCss, spinClass } from "./easing.js";
4
+ import { SpinnerStyle, spinnerRoot } from "./frame.js";
5
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
+ // src/loaders/trace.tsx
7
+ const VIEW = 20;
8
+ const SIDE = 17.5;
9
+ const RADIUS = 4;
10
+ const PERIMETER = 38 + 2 * Math.PI * RADIUS;
11
+ const DASH = 16;
12
+ const RECT = {
13
+ height: SIDE,
14
+ rx: RADIUS,
15
+ width: SIDE,
16
+ x: 2.5 / 2,
17
+ y: 2.5 / 2
18
+ };
19
+ const css = `
20
+ ${rotationCss("trace", `to {
21
+ stroke-dashoffset: ${-PERIMETER};
22
+ }`)}
23
+ `;
24
+ function Trace({ cap, easing, ...rest }) {
25
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(SpinnerStyle, {
26
+ name: "trace",
27
+ children: css
28
+ }), /* @__PURE__ */ jsxs("svg", {
29
+ ...spinnerRoot("trace", rest),
30
+ fill: "none",
31
+ role: "presentation",
32
+ stroke: "currentColor",
33
+ strokeWidth: "2.5",
34
+ viewBox: `0 0 ${VIEW} ${VIEW}`,
35
+ children: [/* @__PURE__ */ jsx("rect", {
36
+ ...RECT,
37
+ opacity: "0.2"
38
+ }), /* @__PURE__ */ jsx("rect", {
39
+ ...RECT,
40
+ className: spinClass("trace", easing),
41
+ strokeDasharray: `${DASH} ${PERIMETER - DASH}`,
42
+ strokeLinecap: linecap(cap)
43
+ })]
44
+ })] });
45
+ }
46
+ export { Trace };
@@ -0,0 +1,10 @@
1
+
2
+ export interface SpinnerProps {
3
+ className?: string;
4
+ color?: string;
5
+ duration?: number;
6
+ playState?: "paused" | "running";
7
+ /** A token size (xs 12, sm 14, md 16, lg 20, xl 24) or pixels. Unset: inherited, else md. */
8
+ size?: LoaderSize | number;
9
+ }
10
+ export type LoaderSize = "xs" | "sm" | "md" | "lg" | "xl";
@@ -0,0 +1,8 @@
1
+
2
+ import { SpinnerProps } from "./types.js";
3
+ export type WaveOrigin = "bottom" | "center";
4
+ export declare const DEFAULT_WAVE_ORIGIN: WaveOrigin;
5
+ export interface WaveProps extends SpinnerProps {
6
+ origin?: WaveOrigin;
7
+ }
8
+ export declare function Wave({ origin, ...rest }: WaveProps): import("react").JSX.Element;
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ import { SIZE, STEP_VAR, animation, stagger } from "./motion.js";
3
+ import { SpinnerStyle, reducedMotion, spinnerRoot, step } from "./frame.js";
4
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
5
+ // src/loaders/wave.tsx
6
+ const DEFAULT_WAVE_ORIGIN = "center";
7
+ const BARS = Array.from({ length: 5 }, (_, index) => index);
8
+ const css = `
9
+ .nsaa-loader-wave {
10
+ display: flex;
11
+ align-items: center;
12
+ justify-content: space-between;
13
+ }
14
+
15
+ .nsaa-loader-wave-bar {
16
+ width: calc(${SIZE} * 0.12);
17
+ height: 100%;
18
+ background: currentColor;
19
+ border-radius: 9999px;
20
+ transform-origin: center;
21
+ ${animation("wave", "nsaa-loader-wave-rise", "ease-in-out")}
22
+ animation-delay: ${stagger("wave", BARS.length)};
23
+ }
24
+
25
+ .nsaa-loader-wave-bar-bottom {
26
+ align-self: flex-end;
27
+ transform-origin: bottom;
28
+ }
29
+
30
+ /* Nsaa (#113): scaleY instead of upstream's height, so the bars don't re-lay out every frame. */
31
+ @keyframes nsaa-loader-wave-rise {
32
+ 0%,
33
+ 100% {
34
+ transform: scaleY(0.3);
35
+ }
36
+ 50% {
37
+ transform: scaleY(1);
38
+ }
39
+ }
40
+
41
+ ${reducedMotion(`
42
+ .nsaa-loader-wave-bar {
43
+ transform: scaleY(calc(0.4 + var(${STEP_VAR}) * 0.15));
44
+ }
45
+ `)}
46
+ `;
47
+ function Wave({ origin = DEFAULT_WAVE_ORIGIN, ...rest }) {
48
+ return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(SpinnerStyle, {
49
+ name: "wave",
50
+ children: css
51
+ }), /* @__PURE__ */ jsx("div", {
52
+ ...spinnerRoot("wave", rest),
53
+ children: BARS.map((index) => /* @__PURE__ */ jsx("div", {
54
+ className: `nsaa-loader-wave-bar nsaa-loader-wave-bar-${origin}`,
55
+ style: step(index)
56
+ }, index))
57
+ })] });
58
+ }
59
+ export { DEFAULT_WAVE_ORIGIN, Wave };
@@ -1,48 +1,3 @@
1
1
 
2
- import * as React from "react";
3
- interface TextLoaderBase extends Omit<React.ComponentProps<"span">, "children"> {
4
- /** One cycle, ms. Default: the loader's token (an ancestor's speed cascades). */
5
- duration?: number | undefined;
6
- }
7
- interface ShimmerTextProps extends TextLoaderBase {
8
- children: string;
9
- /** Announced instead of the text, if different. */
10
- label?: string | undefined;
11
- }
12
- /** "Thinking…", "Processing payment…": a light band sweeps across the words. Static text under reduced motion. */
13
- export declare function ShimmerText({ children, label, duration, className, style, ...props }: ShimmerTextProps): React.JSX.Element;
14
- interface ShimmerWaveProps extends TextLoaderBase {
15
- children: string;
16
- label?: string | undefined;
17
- }
18
- /** Longer AI status lines: each letter lifts and brightens in turn. Static text under reduced motion. */
19
- export declare function ShimmerWave({ children, label, duration, className, style, ...props }: ShimmerWaveProps): React.JSX.Element;
20
- interface TextDotsProps extends TextLoaderBase {
21
- children: React.ReactNode;
22
- dots?: number | undefined;
23
- }
24
- /** "Loading…" with dots that step in. A static "…" under reduced motion. */
25
- export declare function TextDots({ children, dots, duration, className, style, ...props }: TextDotsProps): React.JSX.Element;
26
- interface TypingProps extends TextLoaderBase {
27
- dots?: number | undefined;
28
- /** Announced, e.g. "Ama is typing". Default "Typing". */
29
- label?: string | undefined;
30
- }
31
- /** A chat "is typing" bubble: three dots bob in turn. Three static dots under reduced motion. */
32
- export declare function Typing({ dots, label, duration, className, style, ...props }: TypingProps): React.JSX.Element;
33
- interface AnalyzingImageProps extends TextLoaderBase {
34
- /** Default "Analyzing image". */
35
- label?: string | undefined;
36
- }
37
- /** An image upload or scan: the picture dissolves into pixels behind a scan line. A static picture under reduced motion. */
38
- export declare function AnalyzingImage({ label, duration, className, style, ...props }: AnalyzingImageProps): React.JSX.Element;
39
- interface TerminalProps extends TextLoaderBase {
40
- prompt?: string | undefined;
41
- /** The last line of output, shown after the prompt. */
42
- children?: React.ReactNode;
43
- /** Announced. Default "Loading". */
44
- label?: string | undefined;
45
- }
46
- /** CLI or log-style progress: a prompt, the last line and a blinking cursor. Static under reduced motion. */
47
- export declare function Terminal({ prompt, children, label, duration, className, style, ...props }: TerminalProps): React.JSX.Element;
48
- export type { AnalyzingImageProps, ShimmerTextProps, ShimmerWaveProps, TerminalProps, TextDotsProps, TypingProps };
2
+ import { AnalyzingImage, AnalyzingImageProps, ShimmerText, ShimmerTextProps, ShimmerWave, ShimmerWaveProps, Terminal, TerminalProps, TextDots, TextDotsProps, Typing, TypingProps } from "./loaders/text/text-loaders.js";
3
+ export { AnalyzingImage, type AnalyzingImageProps, ShimmerText, type ShimmerTextProps, ShimmerWave, type ShimmerWaveProps, Terminal, type TerminalProps, TextDots, type TextDotsProps, Typing, type TypingProps };