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.
- package/README.md +102 -0
- package/dist/composite/Accordion.d.ts +13 -0
- package/dist/composite/Accordion.d.ts.map +1 -0
- package/dist/composite/Accordion.js +54 -0
- package/dist/composite/Accordion.js.map +1 -0
- package/dist/composite/Dialog.d.ts +18 -0
- package/dist/composite/Dialog.d.ts.map +1 -0
- package/dist/composite/Dialog.js +113 -0
- package/dist/composite/Dialog.js.map +1 -0
- package/dist/composite/Nav.d.ts +13 -0
- package/dist/composite/Nav.d.ts.map +1 -0
- package/dist/composite/Nav.js +142 -0
- package/dist/composite/Nav.js.map +1 -0
- package/dist/composite/Tabs.d.ts +24 -0
- package/dist/composite/Tabs.d.ts.map +1 -0
- package/dist/composite/Tabs.js +53 -0
- package/dist/composite/Tabs.js.map +1 -0
- package/dist/feedback/CopyButton.d.ts +6 -0
- package/dist/feedback/CopyButton.d.ts.map +1 -0
- package/dist/feedback/CopyButton.js +50 -0
- package/dist/feedback/CopyButton.js.map +1 -0
- package/dist/feedback/CountUp.d.ts +10 -0
- package/dist/feedback/CountUp.d.ts.map +1 -0
- package/dist/feedback/CountUp.js +35 -0
- package/dist/feedback/CountUp.js.map +1 -0
- package/dist/feedback/Toast.d.ts +14 -0
- package/dist/feedback/Toast.d.ts.map +1 -0
- package/dist/feedback/Toast.js +61 -0
- package/dist/feedback/Toast.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/index.js.map +1 -0
- package/dist/lab/Pinfield.d.ts +9 -0
- package/dist/lab/Pinfield.d.ts.map +1 -0
- package/dist/lab/Pinfield.js +100 -0
- package/dist/lab/Pinfield.js.map +1 -0
- package/dist/lab/RippleSurface.d.ts +6 -0
- package/dist/lab/RippleSurface.d.ts.map +1 -0
- package/dist/lab/RippleSurface.js +102 -0
- package/dist/lab/RippleSurface.js.map +1 -0
- package/dist/lab/Signal.d.ts +8 -0
- package/dist/lab/Signal.d.ts.map +1 -0
- package/dist/lab/Signal.js +101 -0
- package/dist/lab/Signal.js.map +1 -0
- package/dist/lab/useCanvas.d.ts +3 -0
- package/dist/lab/useCanvas.d.ts.map +1 -0
- package/dist/lab/useCanvas.js +63 -0
- package/dist/lab/useCanvas.js.map +1 -0
- package/dist/motion/Magnetic.d.ts +8 -0
- package/dist/motion/Magnetic.d.ts.map +1 -0
- package/dist/motion/Magnetic.js +22 -0
- package/dist/motion/Magnetic.js.map +1 -0
- package/dist/motion/Marquee.d.ts +11 -0
- package/dist/motion/Marquee.d.ts.map +1 -0
- package/dist/motion/Marquee.js +14 -0
- package/dist/motion/Marquee.js.map +1 -0
- package/dist/motion/MaskLine.d.ts +9 -0
- package/dist/motion/MaskLine.d.ts.map +1 -0
- package/dist/motion/MaskLine.js +8 -0
- package/dist/motion/MaskLine.js.map +1 -0
- package/dist/motion/PageWipe.d.ts +10 -0
- package/dist/motion/PageWipe.d.ts.map +1 -0
- package/dist/motion/PageWipe.js +60 -0
- package/dist/motion/PageWipe.js.map +1 -0
- package/dist/motion/Reveal.d.ts +12 -0
- package/dist/motion/Reveal.d.ts.map +1 -0
- package/dist/motion/Reveal.js +8 -0
- package/dist/motion/Reveal.js.map +1 -0
- package/dist/motion/easings.d.ts +4 -0
- package/dist/motion/easings.d.ts.map +1 -0
- package/dist/motion/easings.js +4 -0
- package/dist/motion/easings.js.map +1 -0
- package/dist/type/GhostWord.d.ts +7 -0
- package/dist/type/GhostWord.d.ts.map +1 -0
- package/dist/type/GhostWord.js +5 -0
- package/dist/type/GhostWord.js.map +1 -0
- package/dist/type/SoftType.d.ts +11 -0
- package/dist/type/SoftType.d.ts.map +1 -0
- package/dist/type/SoftType.js +27 -0
- package/dist/type/SoftType.js.map +1 -0
- package/dist/type/Specimen.d.ts +13 -0
- package/dist/type/Specimen.d.ts.map +1 -0
- package/dist/type/Specimen.js +82 -0
- package/dist/type/Specimen.js.map +1 -0
- package/dist/type/WaveText.d.ts +10 -0
- package/dist/type/WaveText.d.ts.map +1 -0
- package/dist/type/WaveText.js +37 -0
- package/dist/type/WaveText.js.map +1 -0
- package/dist/ui/Badge.d.ts +10 -0
- package/dist/ui/Badge.d.ts.map +1 -0
- package/dist/ui/Badge.js +26 -0
- package/dist/ui/Badge.js.map +1 -0
- package/dist/ui/Button.d.ts +19 -0
- package/dist/ui/Button.d.ts.map +1 -0
- package/dist/ui/Button.js +47 -0
- package/dist/ui/Button.js.map +1 -0
- package/dist/ui/Frame.d.ts +9 -0
- package/dist/ui/Frame.d.ts.map +1 -0
- package/dist/ui/Frame.js +37 -0
- package/dist/ui/Frame.js.map +1 -0
- package/dist/ui/Mark.d.ts +9 -0
- package/dist/ui/Mark.d.ts.map +1 -0
- package/dist/ui/Mark.js +19 -0
- package/dist/ui/Mark.js.map +1 -0
- package/dist/ui/Rule.d.ts +8 -0
- package/dist/ui/Rule.d.ts.map +1 -0
- package/dist/ui/Rule.js +22 -0
- package/dist/ui/Rule.js.map +1 -0
- package/dist/ui/SectionTag.d.ts +10 -0
- package/dist/ui/SectionTag.d.ts.map +1 -0
- package/dist/ui/SectionTag.js +17 -0
- package/dist/ui/SectionTag.js.map +1 -0
- package/dist/ui/Slider.d.ts +13 -0
- package/dist/ui/Slider.d.ts.map +1 -0
- package/dist/ui/Slider.js +18 -0
- package/dist/ui/Slider.js.map +1 -0
- package/dist/ui/Spinner.d.ts +8 -0
- package/dist/ui/Spinner.d.ts.map +1 -0
- package/dist/ui/Spinner.js +9 -0
- package/dist/ui/Spinner.js.map +1 -0
- package/dist/ui/Tooltip.d.ts +9 -0
- package/dist/ui/Tooltip.d.ts.map +1 -0
- package/dist/ui/Tooltip.js +5 -0
- package/dist/ui/Tooltip.js.map +1 -0
- package/package.json +44 -0
- 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"}
|
package/dist/ui/Badge.js
ADDED
|
@@ -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"}
|
package/dist/ui/Frame.js
ADDED
|
@@ -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"}
|
package/dist/ui/Mark.js
ADDED
|
@@ -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"}
|
package/dist/ui/Rule.js
ADDED
|
@@ -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
|
+
}
|