mizu-ui 0.1.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 (127) hide show
  1. package/README.md +102 -0
  2. package/dist/composite/Accordion.d.ts +13 -0
  3. package/dist/composite/Accordion.d.ts.map +1 -0
  4. package/dist/composite/Accordion.js +54 -0
  5. package/dist/composite/Accordion.js.map +1 -0
  6. package/dist/composite/Dialog.d.ts +18 -0
  7. package/dist/composite/Dialog.d.ts.map +1 -0
  8. package/dist/composite/Dialog.js +113 -0
  9. package/dist/composite/Dialog.js.map +1 -0
  10. package/dist/composite/Nav.d.ts +13 -0
  11. package/dist/composite/Nav.d.ts.map +1 -0
  12. package/dist/composite/Nav.js +142 -0
  13. package/dist/composite/Nav.js.map +1 -0
  14. package/dist/composite/Tabs.d.ts +24 -0
  15. package/dist/composite/Tabs.d.ts.map +1 -0
  16. package/dist/composite/Tabs.js +53 -0
  17. package/dist/composite/Tabs.js.map +1 -0
  18. package/dist/feedback/CopyButton.d.ts +6 -0
  19. package/dist/feedback/CopyButton.d.ts.map +1 -0
  20. package/dist/feedback/CopyButton.js +50 -0
  21. package/dist/feedback/CopyButton.js.map +1 -0
  22. package/dist/feedback/CountUp.d.ts +10 -0
  23. package/dist/feedback/CountUp.d.ts.map +1 -0
  24. package/dist/feedback/CountUp.js +35 -0
  25. package/dist/feedback/CountUp.js.map +1 -0
  26. package/dist/feedback/Toast.d.ts +14 -0
  27. package/dist/feedback/Toast.d.ts.map +1 -0
  28. package/dist/feedback/Toast.js +61 -0
  29. package/dist/feedback/Toast.js.map +1 -0
  30. package/dist/index.d.ts +31 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +31 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/lab/Pinfield.d.ts +9 -0
  35. package/dist/lab/Pinfield.d.ts.map +1 -0
  36. package/dist/lab/Pinfield.js +100 -0
  37. package/dist/lab/Pinfield.js.map +1 -0
  38. package/dist/lab/RippleSurface.d.ts +6 -0
  39. package/dist/lab/RippleSurface.d.ts.map +1 -0
  40. package/dist/lab/RippleSurface.js +102 -0
  41. package/dist/lab/RippleSurface.js.map +1 -0
  42. package/dist/lab/Signal.d.ts +8 -0
  43. package/dist/lab/Signal.d.ts.map +1 -0
  44. package/dist/lab/Signal.js +101 -0
  45. package/dist/lab/Signal.js.map +1 -0
  46. package/dist/lab/useCanvas.d.ts +3 -0
  47. package/dist/lab/useCanvas.d.ts.map +1 -0
  48. package/dist/lab/useCanvas.js +63 -0
  49. package/dist/lab/useCanvas.js.map +1 -0
  50. package/dist/motion/Magnetic.d.ts +8 -0
  51. package/dist/motion/Magnetic.d.ts.map +1 -0
  52. package/dist/motion/Magnetic.js +22 -0
  53. package/dist/motion/Magnetic.js.map +1 -0
  54. package/dist/motion/Marquee.d.ts +11 -0
  55. package/dist/motion/Marquee.d.ts.map +1 -0
  56. package/dist/motion/Marquee.js +14 -0
  57. package/dist/motion/Marquee.js.map +1 -0
  58. package/dist/motion/MaskLine.d.ts +9 -0
  59. package/dist/motion/MaskLine.d.ts.map +1 -0
  60. package/dist/motion/MaskLine.js +8 -0
  61. package/dist/motion/MaskLine.js.map +1 -0
  62. package/dist/motion/PageWipe.d.ts +10 -0
  63. package/dist/motion/PageWipe.d.ts.map +1 -0
  64. package/dist/motion/PageWipe.js +60 -0
  65. package/dist/motion/PageWipe.js.map +1 -0
  66. package/dist/motion/Reveal.d.ts +12 -0
  67. package/dist/motion/Reveal.d.ts.map +1 -0
  68. package/dist/motion/Reveal.js +8 -0
  69. package/dist/motion/Reveal.js.map +1 -0
  70. package/dist/motion/easings.d.ts +4 -0
  71. package/dist/motion/easings.d.ts.map +1 -0
  72. package/dist/motion/easings.js +4 -0
  73. package/dist/motion/easings.js.map +1 -0
  74. package/dist/type/GhostWord.d.ts +7 -0
  75. package/dist/type/GhostWord.d.ts.map +1 -0
  76. package/dist/type/GhostWord.js +5 -0
  77. package/dist/type/GhostWord.js.map +1 -0
  78. package/dist/type/SoftType.d.ts +11 -0
  79. package/dist/type/SoftType.d.ts.map +1 -0
  80. package/dist/type/SoftType.js +27 -0
  81. package/dist/type/SoftType.js.map +1 -0
  82. package/dist/type/Specimen.d.ts +13 -0
  83. package/dist/type/Specimen.d.ts.map +1 -0
  84. package/dist/type/Specimen.js +82 -0
  85. package/dist/type/Specimen.js.map +1 -0
  86. package/dist/type/WaveText.d.ts +10 -0
  87. package/dist/type/WaveText.d.ts.map +1 -0
  88. package/dist/type/WaveText.js +37 -0
  89. package/dist/type/WaveText.js.map +1 -0
  90. package/dist/ui/Badge.d.ts +10 -0
  91. package/dist/ui/Badge.d.ts.map +1 -0
  92. package/dist/ui/Badge.js +26 -0
  93. package/dist/ui/Badge.js.map +1 -0
  94. package/dist/ui/Button.d.ts +19 -0
  95. package/dist/ui/Button.d.ts.map +1 -0
  96. package/dist/ui/Button.js +47 -0
  97. package/dist/ui/Button.js.map +1 -0
  98. package/dist/ui/Frame.d.ts +9 -0
  99. package/dist/ui/Frame.d.ts.map +1 -0
  100. package/dist/ui/Frame.js +37 -0
  101. package/dist/ui/Frame.js.map +1 -0
  102. package/dist/ui/Mark.d.ts +9 -0
  103. package/dist/ui/Mark.d.ts.map +1 -0
  104. package/dist/ui/Mark.js +19 -0
  105. package/dist/ui/Mark.js.map +1 -0
  106. package/dist/ui/Rule.d.ts +8 -0
  107. package/dist/ui/Rule.d.ts.map +1 -0
  108. package/dist/ui/Rule.js +22 -0
  109. package/dist/ui/Rule.js.map +1 -0
  110. package/dist/ui/SectionTag.d.ts +10 -0
  111. package/dist/ui/SectionTag.d.ts.map +1 -0
  112. package/dist/ui/SectionTag.js +17 -0
  113. package/dist/ui/SectionTag.js.map +1 -0
  114. package/dist/ui/Slider.d.ts +13 -0
  115. package/dist/ui/Slider.d.ts.map +1 -0
  116. package/dist/ui/Slider.js +18 -0
  117. package/dist/ui/Slider.js.map +1 -0
  118. package/dist/ui/Spinner.d.ts +8 -0
  119. package/dist/ui/Spinner.d.ts.map +1 -0
  120. package/dist/ui/Spinner.js +9 -0
  121. package/dist/ui/Spinner.js.map +1 -0
  122. package/dist/ui/Tooltip.d.ts +9 -0
  123. package/dist/ui/Tooltip.d.ts.map +1 -0
  124. package/dist/ui/Tooltip.js +5 -0
  125. package/dist/ui/Tooltip.js.map +1 -0
  126. package/package.json +44 -0
  127. package/styles.css +280 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Specimen.js","sourceRoot":"","sources":["../../src/type/Specimen.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare function WaveText({ text, radius, colorFrom, colorTo, className, style, as: Tag, }: {
2
+ text: string;
3
+ radius?: number;
4
+ colorFrom?: string;
5
+ colorTo?: string;
6
+ className?: string;
7
+ style?: React.CSSProperties;
8
+ as?: "span" | "h1" | "h2" | "p" | "div";
9
+ }): import("react").JSX.Element;
10
+ //# sourceMappingURL=WaveText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaveText.d.ts","sourceRoot":"","sources":["../../src/type/WaveText.tsx"],"names":[],"mappings":"AA8BA,wBAAgB,QAAQ,CAAC,EACvB,IAAI,EACJ,MAAY,EACZ,SAAqB,EACrB,OAAmB,EACnB,SAAc,EACd,KAAK,EACL,EAAE,EAAE,GAAY,GACjB,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;CACzC,+BA4CA"}
@@ -0,0 +1,37 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useMemo, useRef } from "react";
4
+ import { motion, motionValue, useReducedMotion, useTransform } from "motion/react";
5
+ function Letter({ mv, char, colorFrom, colorTo, }) {
6
+ const y = useTransform(mv, (v) => v * -10);
7
+ const scale = useTransform(mv, (v) => 1 + v * 0.08);
8
+ const color = useTransform(mv, [0, 1], [colorFrom, colorTo]);
9
+ return (_jsx(motion.span, { "aria-hidden": true, style: { y, scale, color, display: "inline-block", willChange: "transform" }, children: char === " " ? "\u00A0" : char }));
10
+ }
11
+ export function WaveText({ text, radius = 120, colorFrom = "#f4f0e8", colorTo = "#ff4d1c", className = "", style, as: Tag = "span", }) {
12
+ const reduce = useReducedMotion();
13
+ const chars = useMemo(() => Array.from(text), [text]);
14
+ const refs = useRef([]);
15
+ const values = useMemo(() => chars.map(() => motionValue(0)), [chars]);
16
+ const onMove = (e) => {
17
+ if (reduce)
18
+ return;
19
+ for (let i = 0; i < chars.length; i++) {
20
+ const el = refs.current[i];
21
+ if (!el)
22
+ continue;
23
+ const r = el.getBoundingClientRect();
24
+ const d = Math.hypot(e.clientX - (r.left + r.width / 2), e.clientY - (r.top + r.height / 2));
25
+ const f = Math.max(0, 1 - d / radius);
26
+ values[i]?.set(f * f * (3 - 2 * f));
27
+ }
28
+ };
29
+ const onLeave = () => {
30
+ for (const v of values)
31
+ v.set(0);
32
+ };
33
+ return (_jsx(Tag, { className: className, "aria-label": text, role: "text", style: { display: "inline-flex", flexWrap: "wrap", ...style }, onPointerMove: onMove, onPointerLeave: onLeave, children: chars.map((c, i) => (_jsx("span", { ref: (el) => {
34
+ refs.current[i] = el;
35
+ }, style: { display: "inline-flex" }, children: _jsx(Letter, { mv: values[i] ?? motionValue(0), char: c, colorFrom: colorFrom, colorTo: colorTo }) }, i))) }));
36
+ }
37
+ //# sourceMappingURL=WaveText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaveText.js","sourceRoot":"","sources":["../../src/type/WaveText.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from "react";
2
+ export type BadgeTone = "paper" | "muted" | "accent" | "line";
3
+ export declare function Badge({ children, tone, diamond, className, style, }: {
4
+ children: ReactNode;
5
+ tone?: BadgeTone;
6
+ diamond?: boolean;
7
+ className?: string;
8
+ style?: React.CSSProperties;
9
+ }): import("react").JSX.Element;
10
+ //# sourceMappingURL=Badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/ui/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAS9D,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,IAAc,EACd,OAAc,EACd,SAAc,EACd,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,+BAwBA"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Mark } from "./Mark";
3
+ const TONES = {
4
+ paper: { color: "var(--mizu-paper)", border: "var(--mizu-line-bright)" },
5
+ muted: { color: "var(--mizu-muted)", border: "var(--mizu-line)" },
6
+ accent: { color: "var(--mizu-accent)", border: "var(--mizu-accent)" },
7
+ line: { color: "var(--mizu-faint)", border: "var(--mizu-line)" },
8
+ };
9
+ export function Badge({ children, tone = "muted", diamond = true, className = "", style, }) {
10
+ const t = TONES[tone];
11
+ return (_jsxs("span", { className: className, style: {
12
+ ...style,
13
+ display: "inline-flex",
14
+ alignItems: "center",
15
+ gap: 8,
16
+ padding: "5px 10px",
17
+ border: `1px solid ${t.border}`,
18
+ fontFamily: "var(--mizu-font-mono)",
19
+ fontSize: 10,
20
+ letterSpacing: "0.2em",
21
+ textTransform: "uppercase",
22
+ color: t.color,
23
+ whiteSpace: "nowrap",
24
+ }, children: [diamond && _jsx(Mark, { size: 4, tone: tone === "accent" ? "accent" : "line" }), children] }));
25
+ }
26
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../src/ui/Badge.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,MAAM,KAAK,GAAyD;IAClE,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,yBAAyB,EAAE;IACxE,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,kBAAkB,EAAE;IACjE,MAAM,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,oBAAoB,EAAE;IACrE,IAAI,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,kBAAkB,EAAE;CACjE,CAAC;AAEF,MAAM,UAAU,KAAK,CAAC,EACpB,QAAQ,EACR,IAAI,GAAG,OAAO,EACd,OAAO,GAAG,IAAI,EACd,SAAS,GAAG,EAAE,EACd,KAAK,GAON;IACC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,CACL,gBACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,GAAG,KAAK;YACR,OAAO,EAAE,aAAa;YACtB,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,CAAC;YACN,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,aAAa,CAAC,CAAC,MAAM,EAAE;YAC/B,UAAU,EAAE,uBAAuB;YACnC,QAAQ,EAAE,EAAE;YACZ,aAAa,EAAE,OAAO;YACtB,aAAa,EAAE,WAAW;YAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,UAAU,EAAE,QAAQ;SACrB,aAEA,OAAO,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAI,EACzE,QAAQ,IACJ,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { type AnchorHTMLAttributes, type ButtonHTMLAttributes, type ReactNode } from "react";
2
+ export type ButtonVariant = "solid" | "ghost" | "inverse";
3
+ export type ButtonSize = "md" | "sm";
4
+ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
5
+ variant?: ButtonVariant;
6
+ size?: ButtonSize;
7
+ loading?: boolean;
8
+ arrow?: boolean;
9
+ }
10
+ export declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
11
+ export interface ButtonLinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
12
+ variant?: ButtonVariant;
13
+ size?: ButtonSize;
14
+ arrow?: boolean;
15
+ label?: string;
16
+ children: ReactNode;
17
+ }
18
+ export declare function ButtonLink({ variant, size, arrow, label, className, children, ...props }: ButtonLinkProps): import("react").JSX.Element;
19
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/ui/Button.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzG,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAC1D,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC;AA6BrC,MAAM,WAAW,WAAY,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC1E,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,MAAM,2GAgCjB,CAAC;AAEH,MAAM,WAAW,eAAgB,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC9E,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,EACzB,OAAiB,EACjB,IAAW,EACX,KAAY,EACZ,KAAK,EACL,SAAc,EACd,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,eAAe,+BAwBjB"}
@@ -0,0 +1,47 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { forwardRef } from "react";
4
+ import { Spinner } from "./Spinner";
5
+ const SIZES = {
6
+ md: { padding: "26px 28px", fontSize: 11 },
7
+ sm: { padding: "12px 18px", fontSize: 10 },
8
+ };
9
+ const VARIANTS = {
10
+ solid: { background: "var(--mizu-accent-fill)", color: "var(--mizu-paper)" },
11
+ ghost: { background: "transparent", color: "var(--mizu-paper)", border: "1px solid var(--mizu-line-bright)" },
12
+ inverse: { background: "var(--mizu-paper)", color: "var(--mizu-ink)" },
13
+ };
14
+ function Arrow() {
15
+ return (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", "aria-hidden": true, className: "mizu-btn-arrow", style: { flexShrink: 0 }, children: _jsx("path", { d: "M1.5 10.5L10.5 1.5M10.5 1.5H4M10.5 1.5V8", stroke: "currentColor", strokeWidth: "1.5" }) }));
16
+ }
17
+ export const Button = forwardRef(function Button({ variant = "solid", size = "md", loading = false, arrow = true, className = "", children, disabled, ...props }, ref) {
18
+ return (_jsx("button", { ref: ref, disabled: disabled || loading, className: `mizu-btn mizu-btn--${variant} ${className}`, style: {
19
+ display: "inline-flex",
20
+ alignItems: "center",
21
+ gap: 12,
22
+ fontFamily: "var(--mizu-font-mono)",
23
+ letterSpacing: "0.22em",
24
+ textTransform: "uppercase",
25
+ cursor: loading || disabled ? "default" : "pointer",
26
+ transition: "background 300ms ease, color 300ms ease, border-color 300ms ease, opacity 300ms ease",
27
+ ...SIZES[size],
28
+ ...VARIANTS[variant],
29
+ opacity: disabled ? 0.4 : 1,
30
+ }, ...props, children: loading ? _jsx(Spinner, { size: 10 }) : (_jsxs(_Fragment, { children: [children, arrow && _jsx(Arrow, {})] })) }));
31
+ });
32
+ export function ButtonLink({ variant = "solid", size = "md", arrow = true, label, className = "", children, ...props }) {
33
+ return (_jsxs("a", { "aria-label": label, className: `mizu-btn mizu-btn--${variant} ${className}`, style: {
34
+ display: "inline-flex",
35
+ alignItems: "center",
36
+ gap: 12,
37
+ fontFamily: "var(--mizu-font-mono)",
38
+ letterSpacing: "0.22em",
39
+ textTransform: "uppercase",
40
+ textDecoration: "none",
41
+ cursor: "pointer",
42
+ transition: "background 300ms ease, color 300ms ease, border-color 300ms ease",
43
+ ...SIZES[size],
44
+ ...VARIANTS[variant],
45
+ }, ...props, children: [children, arrow && _jsx(Arrow, {})] }));
46
+ }
47
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","sourceRoot":"","sources":["../../src/ui/Button.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from "react";
2
+ export declare function Frame({ label, children, className, style, tone, }: {
3
+ label?: string;
4
+ children: ReactNode;
5
+ className?: string;
6
+ style?: React.CSSProperties;
7
+ tone?: "line" | "line-bright";
8
+ }): import("react").JSX.Element;
9
+ //# sourceMappingURL=Frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Frame.d.ts","sourceRoot":"","sources":["../../src/ui/Frame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAkBvC,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,QAAQ,EACR,SAAc,EACd,KAAK,EACL,IAAa,GACd,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,CAAC;CAC/B,+BAsCA"}
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ function Corner({ pos }) {
3
+ const base = {
4
+ position: "absolute",
5
+ width: 9,
6
+ height: 9,
7
+ borderColor: "var(--mizu-accent)",
8
+ };
9
+ const posStyle = {
10
+ tl: { top: -1, left: -1, borderTop: "1px solid", borderLeft: "1px solid" },
11
+ tr: { top: -1, right: -1, borderTop: "1px solid", borderRight: "1px solid" },
12
+ bl: { bottom: -1, left: -1, borderBottom: "1px solid", borderLeft: "1px solid" },
13
+ br: { bottom: -1, right: -1, borderBottom: "1px solid", borderRight: "1px solid" },
14
+ };
15
+ return _jsx("span", { "aria-hidden": true, style: { ...base, ...posStyle[pos] } });
16
+ }
17
+ export function Frame({ label, children, className = "", style, tone = "line", }) {
18
+ return (_jsxs("figure", { className: className, style: {
19
+ ...style,
20
+ position: "relative",
21
+ margin: 0,
22
+ border: `1px solid ${tone === "line-bright" ? "var(--mizu-line-bright)" : "var(--mizu-line)"}`,
23
+ }, children: [_jsx(Corner, { pos: "tl" }), _jsx(Corner, { pos: "tr" }), _jsx(Corner, { pos: "bl" }), _jsx(Corner, { pos: "br" }), children, label && (_jsx("figcaption", { "aria-hidden": true, style: {
24
+ position: "absolute",
25
+ top: -7,
26
+ left: 14,
27
+ padding: "0 6px",
28
+ background: "var(--mizu-ink)",
29
+ fontFamily: "var(--mizu-font-mono)",
30
+ fontSize: 9,
31
+ letterSpacing: "0.28em",
32
+ textTransform: "uppercase",
33
+ color: "var(--mizu-faint)",
34
+ whiteSpace: "nowrap",
35
+ }, children: label }))] }));
36
+ }
37
+ //# sourceMappingURL=Frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Frame.js","sourceRoot":"","sources":["../../src/ui/Frame.tsx"],"names":[],"mappings":";AAEA,SAAS,MAAM,CAAC,EAAE,GAAG,EAAsC;IACzD,MAAM,IAAI,GAAwB;QAChC,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,oBAAoB;KAClC,CAAC;IACF,MAAM,QAAQ,GAAwC;QACpD,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;QAC1E,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;QAC5E,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;QAChF,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE;KACnF,CAAC;IACF,OAAO,oCAAkB,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAI,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EACpB,KAAK,EACL,QAAQ,EACR,SAAS,GAAG,EAAE,EACd,KAAK,EACL,IAAI,GAAG,MAAM,GAOd;IACC,OAAO,CACL,kBACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,GAAG,KAAK;YACR,QAAQ,EAAE,UAAU;YACpB,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,aAAa,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,kBAAkB,EAAE;SAC/F,aAED,KAAC,MAAM,IAAC,GAAG,EAAC,IAAI,GAAG,EACnB,KAAC,MAAM,IAAC,GAAG,EAAC,IAAI,GAAG,EACnB,KAAC,MAAM,IAAC,GAAG,EAAC,IAAI,GAAG,EACnB,KAAC,MAAM,IAAC,GAAG,EAAC,IAAI,GAAG,EAClB,QAAQ,EACR,KAAK,IAAI,CACR,0CAEE,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,CAAC,CAAC;oBACP,IAAI,EAAE,EAAE;oBACR,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,iBAAiB;oBAC7B,UAAU,EAAE,uBAAuB;oBACnC,QAAQ,EAAE,CAAC;oBACX,aAAa,EAAE,QAAQ;oBACvB,aAAa,EAAE,WAAW;oBAC1B,KAAK,EAAE,mBAAmB;oBAC1B,UAAU,EAAE,QAAQ;iBACrB,YAEA,KAAK,GACK,CACd,IACM,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CSSProperties } from "react";
2
+ export type MarkTone = "accent" | "paper" | "muted" | "line";
3
+ export declare function Mark({ size, tone, className, style, }: {
4
+ size?: number;
5
+ tone?: MarkTone;
6
+ className?: string;
7
+ style?: CSSProperties;
8
+ }): import("react").JSX.Element;
9
+ //# sourceMappingURL=Mark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mark.d.ts","sourceRoot":"","sources":["../../src/ui/Mark.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAS7D,wBAAgB,IAAI,CAAC,EACnB,IAAQ,EACR,IAAe,EACf,SAAc,EACd,KAAK,GACN,EAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,+BAgBA"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ const TONES = {
3
+ accent: "var(--mizu-accent)",
4
+ paper: "var(--mizu-paper)",
5
+ muted: "var(--mizu-muted)",
6
+ line: "var(--mizu-line-bright)",
7
+ };
8
+ export function Mark({ size = 6, tone = "accent", className = "", style, }) {
9
+ return (_jsx("span", { "aria-hidden": true, className: className, style: {
10
+ display: "inline-block",
11
+ width: size,
12
+ height: size,
13
+ flexShrink: 0,
14
+ background: TONES[tone],
15
+ transform: "rotate(45deg)",
16
+ ...style,
17
+ } }));
18
+ }
19
+ //# sourceMappingURL=Mark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mark.js","sourceRoot":"","sources":["../../src/ui/Mark.tsx"],"names":[],"mappings":";AAIA,MAAM,KAAK,GAA6B;IACtC,MAAM,EAAE,oBAAoB;IAC5B,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,mBAAmB;IAC1B,IAAI,EAAE,yBAAyB;CAChC,CAAC;AAEF,MAAM,UAAU,IAAI,CAAC,EACnB,IAAI,GAAG,CAAC,EACR,IAAI,GAAG,QAAQ,EACf,SAAS,GAAG,EAAE,EACd,KAAK,GAMN;IACC,OAAO,CACL,oCAEE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,OAAO,EAAE,cAAc;YACvB,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC;YACvB,SAAS,EAAE,eAAe;YAC1B,GAAG,KAAK;SACT,GACD,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function Rule({ label, node, tone, className, style, }: {
2
+ label?: string;
3
+ node?: boolean;
4
+ tone?: "line" | "line-bright" | "accent";
5
+ className?: string;
6
+ style?: React.CSSProperties;
7
+ }): import("react").JSX.Element;
8
+ //# sourceMappingURL=Rule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rule.d.ts","sourceRoot":"","sources":["../../src/ui/Rule.tsx"],"names":[],"mappings":"AAEA,wBAAgB,IAAI,CAAC,EACnB,KAAK,EACL,IAAW,EACX,IAAa,EACb,SAAc,EACd,KAAK,GACN,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,+BA2CA"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Mark } from "./Mark";
3
+ export function Rule({ label, node = true, tone = "line", className = "", style, }) {
4
+ const line = (_jsx("span", { "aria-hidden": true, style: {
5
+ flex: 1,
6
+ height: 1,
7
+ background: tone === "accent"
8
+ ? "var(--mizu-accent)"
9
+ : tone === "line-bright"
10
+ ? "var(--mizu-line-bright)"
11
+ : "var(--mizu-line)",
12
+ } }));
13
+ return (_jsxs("div", { role: "separator", "aria-orientation": "horizontal", className: className, style: { ...style, display: "flex", alignItems: "center", gap: 12, width: "100%" }, children: [line, node && _jsx(Mark, { size: 5, tone: tone === "accent" ? "accent" : "line" }), label && (_jsx("span", { style: {
14
+ fontFamily: "var(--mizu-font-mono)",
15
+ fontSize: 10,
16
+ letterSpacing: "0.28em",
17
+ textTransform: "uppercase",
18
+ color: "var(--mizu-faint)",
19
+ whiteSpace: "nowrap",
20
+ }, children: label })), label && line] }));
21
+ }
22
+ //# sourceMappingURL=Rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rule.js","sourceRoot":"","sources":["../../src/ui/Rule.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,MAAM,UAAU,IAAI,CAAC,EACnB,KAAK,EACL,IAAI,GAAG,IAAI,EACX,IAAI,GAAG,MAAM,EACb,SAAS,GAAG,EAAE,EACd,KAAK,GAON;IACC,MAAM,IAAI,GAAG,CACX,oCAEE,KAAK,EAAE;YACL,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,UAAU,EACR,IAAI,KAAK,QAAQ;gBACf,CAAC,CAAC,oBAAoB;gBACtB,CAAC,CAAC,IAAI,KAAK,aAAa;oBACtB,CAAC,CAAC,yBAAyB;oBAC3B,CAAC,CAAC,kBAAkB;SAC3B,GACD,CACH,CAAC;IAEF,OAAO,CACL,eACE,IAAI,EAAC,WAAW,sBACC,YAAY,EAC7B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,aAEjF,IAAI,EACJ,IAAI,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAI,EACtE,KAAK,IAAI,CACR,eACE,KAAK,EAAE;oBACL,UAAU,EAAE,uBAAuB;oBACnC,QAAQ,EAAE,EAAE;oBACZ,aAAa,EAAE,QAAQ;oBACvB,aAAa,EAAE,WAAW;oBAC1B,KAAK,EAAE,mBAAmB;oBAC1B,UAAU,EAAE,QAAQ;iBACrB,YAEA,KAAK,GACD,CACR,EACA,KAAK,IAAI,IAAI,IACV,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from "react";
2
+ export type SectionTagTone = "muted" | "faint" | "paper" | "accent";
3
+ export declare function SectionTag({ children, tone, diamond, className, style, }: {
4
+ children: ReactNode;
5
+ tone?: SectionTagTone;
6
+ diamond?: boolean;
7
+ className?: string;
8
+ style?: React.CSSProperties;
9
+ }): import("react").JSX.Element;
10
+ //# sourceMappingURL=SectionTag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionTag.d.ts","sourceRoot":"","sources":["../../src/ui/SectionTag.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEpE,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,IAAc,EACd,OAAc,EACd,SAAc,EACd,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,+BAqBA"}
@@ -0,0 +1,17 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Mark } from "./Mark";
3
+ export function SectionTag({ children, tone = "muted", diamond = true, className = "", style, }) {
4
+ return (_jsxs("p", { className: className, style: {
5
+ ...style,
6
+ display: "flex",
7
+ alignItems: "center",
8
+ gap: 10,
9
+ margin: 0,
10
+ fontFamily: "var(--mizu-font-mono)",
11
+ fontSize: 11,
12
+ letterSpacing: "0.28em",
13
+ textTransform: "uppercase",
14
+ color: `var(--mizu-${tone})`,
15
+ }, children: [diamond && _jsx(Mark, { size: 5, tone: tone === "accent" ? "accent" : "line" }), children] }));
16
+ }
17
+ //# sourceMappingURL=SectionTag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SectionTag.js","sourceRoot":"","sources":["../../src/ui/SectionTag.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,MAAM,UAAU,UAAU,CAAC,EACzB,QAAQ,EACR,IAAI,GAAG,OAAO,EACd,OAAO,GAAG,IAAI,EACd,SAAS,GAAG,EAAE,EACd,KAAK,GAON;IACC,OAAO,CACL,aACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,GAAG,KAAK;YACR,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,EAAE;YACP,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,uBAAuB;YACnC,QAAQ,EAAE,EAAE;YACZ,aAAa,EAAE,QAAQ;YACvB,aAAa,EAAE,WAAW;YAC1B,KAAK,EAAE,cAAc,IAAI,GAAG;SAC7B,aAEA,OAAO,IAAI,KAAC,IAAI,IAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAI,EACzE,QAAQ,IACP,CACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare function Slider({ label, value, min, max, step, onChange, disabled, format, className, style, }: {
2
+ label: string;
3
+ value: number;
4
+ min: number;
5
+ max: number;
6
+ step?: number;
7
+ onChange: (value: number) => void;
8
+ disabled?: boolean;
9
+ format?: (value: number) => string;
10
+ className?: string;
11
+ style?: React.CSSProperties;
12
+ }): import("react").JSX.Element;
13
+ //# sourceMappingURL=Slider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.d.ts","sourceRoot":"","sources":["../../src/ui/Slider.tsx"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,KAAK,EACL,GAAG,EACH,GAAG,EACH,IAAQ,EACR,QAAQ,EACR,QAAgB,EAChB,MAAM,EACN,SAAc,EACd,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,+BAqCA"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function Slider({ label, value, min, max, step = 1, onChange, disabled = false, format, className = "", style, }) {
3
+ return (_jsxs("label", { className: className, style: {
4
+ ...style,
5
+ display: "grid",
6
+ gridTemplateColumns: "104px 1fr 52px",
7
+ alignItems: "center",
8
+ gap: 16,
9
+ fontFamily: "var(--mizu-font-mono)",
10
+ fontSize: 10,
11
+ letterSpacing: "0.2em",
12
+ textTransform: "uppercase",
13
+ color: disabled ? "var(--mizu-faint)" : "var(--mizu-faint)",
14
+ opacity: disabled ? 0.45 : 1,
15
+ cursor: disabled ? "not-allowed" : "pointer",
16
+ }, children: [_jsx("span", { children: label }), _jsx("input", { type: "range", min: min, max: max, step: step, value: value, disabled: disabled, onChange: (e) => onChange(Number(e.target.value)), "aria-label": label, style: { width: "100%", margin: 0 }, className: "mizu-slider-input" }), _jsx("span", { style: { textAlign: "right", fontVariantNumeric: "tabular-nums", color: "var(--mizu-muted)" }, children: format ? format(value) : value })] }));
17
+ }
18
+ //# sourceMappingURL=Slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slider.js","sourceRoot":"","sources":["../../src/ui/Slider.tsx"],"names":[],"mappings":";AAAA,MAAM,UAAU,MAAM,CAAC,EACrB,KAAK,EACL,KAAK,EACL,GAAG,EACH,GAAG,EACH,IAAI,GAAG,CAAC,EACR,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,MAAM,EACN,SAAS,GAAG,EAAE,EACd,KAAK,GAYN;IACC,OAAO,CACL,iBACE,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;YACL,GAAG,KAAK;YACR,OAAO,EAAE,MAAM;YACf,mBAAmB,EAAE,gBAAgB;YACrC,UAAU,EAAE,QAAQ;YACpB,GAAG,EAAE,EAAE;YACP,UAAU,EAAE,uBAAuB;YACnC,QAAQ,EAAE,EAAE;YACZ,aAAa,EAAE,OAAO;YACtB,aAAa,EAAE,WAAW;YAC1B,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB;YAC3D,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;SAC7C,aAED,yBAAO,KAAK,GAAQ,EACpB,gBACE,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,gBACrC,KAAK,EACjB,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EACnC,SAAS,EAAC,mBAAmB,GAC7B,EACF,eAAM,KAAK,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,KAAK,EAAE,mBAAmB,EAAE,YAChG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAC1B,IACD,CACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function Spinner({ size, tone, label, className, style, }: {
2
+ size?: number;
3
+ tone?: "accent" | "paper" | "muted";
4
+ label?: string;
5
+ className?: string;
6
+ style?: React.CSSProperties;
7
+ }): import("react").JSX.Element;
8
+ //# sourceMappingURL=Spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../src/ui/Spinner.tsx"],"names":[],"mappings":"AAIA,wBAAgB,OAAO,CAAC,EACtB,IAAS,EACT,IAAe,EACf,KAAiB,EACjB,SAAc,EACd,KAAK,GACN,EAAE;IACD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,+BAeA"}
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { motion, useReducedMotion } from "motion/react";
4
+ export function Spinner({ size = 14, tone = "accent", label = "Loading", className = "", style, }) {
5
+ const reduce = useReducedMotion();
6
+ const color = tone === "accent" ? "var(--mizu-accent)" : tone === "paper" ? "var(--mizu-paper)" : "var(--mizu-muted)";
7
+ return (_jsx("span", { role: "status", "aria-label": label, className: className, style: { ...style, display: "inline-flex" }, children: _jsx(motion.span, { "aria-hidden": true, style: { width: size, height: size, background: color, transform: "rotate(45deg)" }, animate: reduce ? { rotate: 45 } : { rotate: 405 }, transition: reduce ? { duration: 0 } : { duration: 0.9, repeat: Infinity, ease: "linear" } }) }));
8
+ }
9
+ //# sourceMappingURL=Spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.js","sourceRoot":"","sources":["../../src/ui/Spinner.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAExD,MAAM,UAAU,OAAO,CAAC,EACtB,IAAI,GAAG,EAAE,EACT,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,SAAS,EACjB,SAAS,GAAG,EAAE,EACd,KAAK,GAON;IACC,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,KAAK,GACT,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAE1G,OAAO,CACL,eAAM,IAAI,EAAC,QAAQ,gBAAa,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,YACtG,KAAC,MAAM,CAAC,IAAI,yBAEV,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,EACnF,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAClD,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAC1F,GACG,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { CSSProperties, ReactNode } from "react";
2
+ export declare function Tooltip({ label, children, side, className, style, }: {
3
+ label: string;
4
+ children: ReactNode;
5
+ side?: "top" | "bottom";
6
+ className?: string;
7
+ style?: CSSProperties;
8
+ }): import("react").JSX.Element;
9
+ //# sourceMappingURL=Tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../src/ui/Tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,QAAQ,EACR,IAAY,EACZ,SAAc,EACd,KAAK,GACN,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,+BASA"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function Tooltip({ label, children, side = "top", className = "", style, }) {
3
+ return (_jsxs("span", { className: `mizu-tooltip mizu-tooltip--${side} ${className}`, style: style, children: [children, _jsx("span", { role: "tooltip", className: "mizu-tooltip-bubble", children: label })] }));
4
+ }
5
+ //# sourceMappingURL=Tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/ui/Tooltip.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,OAAO,CAAC,EACtB,KAAK,EACL,QAAQ,EACR,IAAI,GAAG,KAAK,EACZ,SAAS,GAAG,EAAE,EACd,KAAK,GAON;IACC,OAAO,CACL,gBAAM,SAAS,EAAE,8BAA8B,IAAI,IAAI,SAAS,EAAE,EAAE,KAAK,EAAE,KAAK,aAC7E,QAAQ,EACT,eAAM,IAAI,EAAC,SAAS,EAAC,SAAS,EAAC,qBAAqB,YACjD,KAAK,GACD,IACF,CACR,CAAC;AACJ,CAAC"}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "mizu-ui",
3
+ "version": "0.1.0",
4
+ "description": "The first generation of the Mizu interface language — surfaces, motion and systems for React.",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "keywords": ["mizu", "react", "components", "design-system", "motion", "ui"],
8
+ "sideEffects": [
9
+ "styles.css"
10
+ ],
11
+ "files": [
12
+ "dist",
13
+ "styles.css"
14
+ ],
15
+ "main": "./dist/index.js",
16
+ "module": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js"
22
+ },
23
+ "./styles.css": "./styles.css",
24
+ "./package.json": "./package.json"
25
+ },
26
+ "scripts": {
27
+ "build": "tsc -p tsconfig.build.json",
28
+ "prepare": "npm run build",
29
+ "prepublishOnly": "npm run build"
30
+ },
31
+ "peerDependencies": {
32
+ "motion": ">=11",
33
+ "react": ">=18",
34
+ "react-dom": ">=18"
35
+ },
36
+ "dependencies": {
37
+ "@fontsource-variable/archivo": "^5.x",
38
+ "@fontsource/instrument-serif": "^5.x",
39
+ "@fontsource/jetbrains-mono": "^5.x"
40
+ },
41
+ "devDependencies": {
42
+ "typescript": "^5"
43
+ }
44
+ }