@yo-yo.art/ui 0.1.1 → 0.2.1
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/dist/components/Button/button-classes.cjs +1 -1
- package/dist/components/Button/button-classes.cjs.map +1 -1
- package/dist/components/Button/button-classes.mjs +1 -1
- package/dist/components/Button/button-classes.mjs.map +1 -1
- package/dist/components/IconButton/icon-button-classes.cjs +1 -1
- package/dist/components/IconButton/icon-button-classes.cjs.map +1 -1
- package/dist/components/IconButton/icon-button-classes.mjs +1 -1
- package/dist/components/IconButton/icon-button-classes.mjs.map +1 -1
- package/dist/components/Link/link-classes.cjs +1 -1
- package/dist/components/Link/link-classes.cjs.map +1 -1
- package/dist/components/Link/link-classes.mjs +1 -1
- package/dist/components/Link/link-classes.mjs.map +1 -1
- package/dist/components/Logo3D/Logo3D.cjs +64 -0
- package/dist/components/Logo3D/Logo3D.cjs.map +1 -0
- package/dist/components/Logo3D/Logo3D.d.cts +13 -0
- package/dist/components/Logo3D/Logo3D.d.mts +13 -0
- package/dist/components/Logo3D/Logo3D.mjs +64 -0
- package/dist/components/Logo3D/Logo3D.mjs.map +1 -0
- package/dist/components/Logo3D/index.cjs +2 -0
- package/dist/components/Logo3D/index.mjs +1 -0
- package/dist/components/Reveal/Reveal.cjs +34 -0
- package/dist/components/Reveal/Reveal.cjs.map +1 -0
- package/dist/components/Reveal/Reveal.d.cts +10 -0
- package/dist/components/Reveal/Reveal.d.mts +10 -0
- package/dist/components/Reveal/Reveal.mjs +34 -0
- package/dist/components/Reveal/Reveal.mjs.map +1 -0
- package/dist/components/Reveal/index.cjs +2 -0
- package/dist/components/Reveal/index.d.cts +2 -0
- package/dist/components/Reveal/index.d.mts +2 -0
- package/dist/components/Reveal/index.mjs +1 -0
- package/dist/gallery/HomeButton/HomeButton.cjs +1 -1
- package/dist/gallery/HomeButton/HomeButton.cjs.map +1 -1
- package/dist/gallery/HomeButton/HomeButton.mjs +1 -1
- package/dist/gallery/HomeButton/HomeButton.mjs.map +1 -1
- package/dist/index.cjs +6 -0
- package/dist/index.d.cts +4 -1
- package/dist/index.d.mts +4 -1
- package/dist/index.mjs +5 -1
- package/dist/scenography.css +79 -0
- package/dist/styles.css +92 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_cn = require("../../lib/cn.cjs");
|
|
2
2
|
// src/components/Button/button-classes.ts
|
|
3
|
-
const base = "inline-flex items-center justify-center gap-2 font-medium transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50";
|
|
3
|
+
const base = "inline-flex cursor-pointer items-center justify-center gap-2 font-medium transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50";
|
|
4
4
|
const variants = {
|
|
5
5
|
primary: "bg-primary text-primary-content hover:bg-accent hover:text-accent-content",
|
|
6
6
|
ghost: "border border-base-content/12 bg-transparent text-base-content hover:bg-base-content/5",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-classes.cjs","names":["cn"],"sources":["../../../src/components/Button/button-classes.ts"],"sourcesContent":["import { cn } from \"../../lib/cn\";\n\nexport type ButtonVariant = \"primary\" | \"ghost\" | \"link\";\nexport type ButtonSize = \"sm\" | \"md\";\n\nconst base =\n \"inline-flex items-center justify-center gap-2 font-medium transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50\";\n\nconst variants: Record<ButtonVariant, string> = {\n primary: \"bg-primary text-primary-content hover:bg-accent hover:text-accent-content\",\n ghost: \"border border-base-content/12 bg-transparent text-base-content hover:bg-base-content/5\",\n link: \"text-base-content underline-offset-4 hover:underline\",\n};\n\nconst sizes: Record<ButtonSize, string> = {\n sm: \"px-4 py-2 text-sm\",\n md: \"px-6 py-3.5 text-sm\",\n};\n\nexport const buttonClasses = ({\n variant = \"primary\",\n size = \"md\",\n className,\n}: {\n variant?: ButtonVariant;\n size?: ButtonSize;\n className?: string;\n} = {}): string => cn(base, variants[variant], sizes[size], className);\n"],"mappings":";;AAKA,MAAM,OACJ;AAEF,MAAM,WAA0C;CAC9C,SAAS;CACT,OAAO;CACP,MAAM;AACR;AAEA,MAAM,QAAoC;CACxC,IAAI;CACJ,IAAI;AACN;AAEA,MAAa,iBAAiB,EAC5B,UAAU,WACV,OAAO,MACP,cAKE,CAAC,MAAcA,WAAAA,GAAG,MAAM,SAAS,UAAU,MAAM,OAAO,SAAS"}
|
|
1
|
+
{"version":3,"file":"button-classes.cjs","names":["cn"],"sources":["../../../src/components/Button/button-classes.ts"],"sourcesContent":["import { cn } from \"../../lib/cn\";\n\nexport type ButtonVariant = \"primary\" | \"ghost\" | \"link\";\nexport type ButtonSize = \"sm\" | \"md\";\n\nconst base =\n \"inline-flex cursor-pointer items-center justify-center gap-2 font-medium transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50\";\n\nconst variants: Record<ButtonVariant, string> = {\n primary: \"bg-primary text-primary-content hover:bg-accent hover:text-accent-content\",\n ghost: \"border border-base-content/12 bg-transparent text-base-content hover:bg-base-content/5\",\n link: \"text-base-content underline-offset-4 hover:underline\",\n};\n\nconst sizes: Record<ButtonSize, string> = {\n sm: \"px-4 py-2 text-sm\",\n md: \"px-6 py-3.5 text-sm\",\n};\n\nexport const buttonClasses = ({\n variant = \"primary\",\n size = \"md\",\n className,\n}: {\n variant?: ButtonVariant;\n size?: ButtonSize;\n className?: string;\n} = {}): string => cn(base, variants[variant], sizes[size], className);\n"],"mappings":";;AAKA,MAAM,OACJ;AAEF,MAAM,WAA0C;CAC9C,SAAS;CACT,OAAO;CACP,MAAM;AACR;AAEA,MAAM,QAAoC;CACxC,IAAI;CACJ,IAAI;AACN;AAEA,MAAa,iBAAiB,EAC5B,UAAU,WACV,OAAO,MACP,cAKE,CAAC,MAAcA,WAAAA,GAAG,MAAM,SAAS,UAAU,MAAM,OAAO,SAAS"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cn } from "../../lib/cn.mjs";
|
|
2
2
|
// src/components/Button/button-classes.ts
|
|
3
|
-
const base = "inline-flex items-center justify-center gap-2 font-medium transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50";
|
|
3
|
+
const base = "inline-flex cursor-pointer items-center justify-center gap-2 font-medium transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50";
|
|
4
4
|
const variants = {
|
|
5
5
|
primary: "bg-primary text-primary-content hover:bg-accent hover:text-accent-content",
|
|
6
6
|
ghost: "border border-base-content/12 bg-transparent text-base-content hover:bg-base-content/5",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-classes.mjs","names":[],"sources":["../../../src/components/Button/button-classes.ts"],"sourcesContent":["import { cn } from \"../../lib/cn\";\n\nexport type ButtonVariant = \"primary\" | \"ghost\" | \"link\";\nexport type ButtonSize = \"sm\" | \"md\";\n\nconst base =\n \"inline-flex items-center justify-center gap-2 font-medium transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50\";\n\nconst variants: Record<ButtonVariant, string> = {\n primary: \"bg-primary text-primary-content hover:bg-accent hover:text-accent-content\",\n ghost: \"border border-base-content/12 bg-transparent text-base-content hover:bg-base-content/5\",\n link: \"text-base-content underline-offset-4 hover:underline\",\n};\n\nconst sizes: Record<ButtonSize, string> = {\n sm: \"px-4 py-2 text-sm\",\n md: \"px-6 py-3.5 text-sm\",\n};\n\nexport const buttonClasses = ({\n variant = \"primary\",\n size = \"md\",\n className,\n}: {\n variant?: ButtonVariant;\n size?: ButtonSize;\n className?: string;\n} = {}): string => cn(base, variants[variant], sizes[size], className);\n"],"mappings":";;AAKA,MAAM,OACJ;AAEF,MAAM,WAA0C;CAC9C,SAAS;CACT,OAAO;CACP,MAAM;AACR;AAEA,MAAM,QAAoC;CACxC,IAAI;CACJ,IAAI;AACN;AAEA,MAAa,iBAAiB,EAC5B,UAAU,WACV,OAAO,MACP,cAKE,CAAC,MAAc,GAAG,MAAM,SAAS,UAAU,MAAM,OAAO,SAAS"}
|
|
1
|
+
{"version":3,"file":"button-classes.mjs","names":[],"sources":["../../../src/components/Button/button-classes.ts"],"sourcesContent":["import { cn } from \"../../lib/cn\";\n\nexport type ButtonVariant = \"primary\" | \"ghost\" | \"link\";\nexport type ButtonSize = \"sm\" | \"md\";\n\nconst base =\n \"inline-flex cursor-pointer items-center justify-center gap-2 font-medium transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50\";\n\nconst variants: Record<ButtonVariant, string> = {\n primary: \"bg-primary text-primary-content hover:bg-accent hover:text-accent-content\",\n ghost: \"border border-base-content/12 bg-transparent text-base-content hover:bg-base-content/5\",\n link: \"text-base-content underline-offset-4 hover:underline\",\n};\n\nconst sizes: Record<ButtonSize, string> = {\n sm: \"px-4 py-2 text-sm\",\n md: \"px-6 py-3.5 text-sm\",\n};\n\nexport const buttonClasses = ({\n variant = \"primary\",\n size = \"md\",\n className,\n}: {\n variant?: ButtonVariant;\n size?: ButtonSize;\n className?: string;\n} = {}): string => cn(base, variants[variant], sizes[size], className);\n"],"mappings":";;AAKA,MAAM,OACJ;AAEF,MAAM,WAA0C;CAC9C,SAAS;CACT,OAAO;CACP,MAAM;AACR;AAEA,MAAM,QAAoC;CACxC,IAAI;CACJ,IAAI;AACN;AAEA,MAAa,iBAAiB,EAC5B,UAAU,WACV,OAAO,MACP,cAKE,CAAC,MAAc,GAAG,MAAM,SAAS,UAAU,MAAM,OAAO,SAAS"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_cn = require("../../lib/cn.cjs");
|
|
2
2
|
// src/components/IconButton/icon-button-classes.ts
|
|
3
|
-
const base = "inline-flex items-center justify-center border transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50";
|
|
3
|
+
const base = "inline-flex cursor-pointer items-center justify-center border transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50";
|
|
4
4
|
const variants = {
|
|
5
5
|
outline: "border-base-content/12 bg-base-100/85 text-base-content/60 backdrop-blur-md hover:text-base-content",
|
|
6
6
|
ghost: "border-transparent bg-transparent text-base-content/60 hover:bg-base-content/5 hover:text-base-content"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-button-classes.cjs","names":["cn"],"sources":["../../../src/components/IconButton/icon-button-classes.ts"],"sourcesContent":["import { cn } from \"../../lib/cn\";\n\nexport type IconButtonVariant = \"outline\" | \"ghost\";\nexport type IconButtonSize = \"xs\" | \"sm\" | \"md\";\n\nconst base =\n \"inline-flex items-center justify-center border transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50\";\n\nconst variants: Record<IconButtonVariant, string> = {\n outline:\n \"border-base-content/12 bg-base-100/85 text-base-content/60 backdrop-blur-md hover:text-base-content\",\n ghost:\n \"border-transparent bg-transparent text-base-content/60 hover:bg-base-content/5 hover:text-base-content\",\n};\n\nconst sizes: Record<IconButtonSize, string> = {\n xs: \"size-6\",\n sm: \"size-8\",\n md: \"size-10\",\n};\n\nexport const iconButtonClasses = ({\n variant = \"outline\",\n size = \"sm\",\n className,\n}: {\n variant?: IconButtonVariant;\n size?: IconButtonSize;\n className?: string;\n} = {}): string => cn(base, variants[variant], sizes[size], className);\n"],"mappings":";;AAKA,MAAM,OACJ;AAEF,MAAM,WAA8C;CAClD,SACE;CACF,OACE;AACJ;AAEA,MAAM,QAAwC;CAC5C,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,MAAa,qBAAqB,EAChC,UAAU,WACV,OAAO,MACP,cAKE,CAAC,MAAcA,WAAAA,GAAG,MAAM,SAAS,UAAU,MAAM,OAAO,SAAS"}
|
|
1
|
+
{"version":3,"file":"icon-button-classes.cjs","names":["cn"],"sources":["../../../src/components/IconButton/icon-button-classes.ts"],"sourcesContent":["import { cn } from \"../../lib/cn\";\n\nexport type IconButtonVariant = \"outline\" | \"ghost\";\nexport type IconButtonSize = \"xs\" | \"sm\" | \"md\";\n\nconst base =\n \"inline-flex cursor-pointer items-center justify-center border transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50\";\n\nconst variants: Record<IconButtonVariant, string> = {\n outline:\n \"border-base-content/12 bg-base-100/85 text-base-content/60 backdrop-blur-md hover:text-base-content\",\n ghost:\n \"border-transparent bg-transparent text-base-content/60 hover:bg-base-content/5 hover:text-base-content\",\n};\n\nconst sizes: Record<IconButtonSize, string> = {\n xs: \"size-6\",\n sm: \"size-8\",\n md: \"size-10\",\n};\n\nexport const iconButtonClasses = ({\n variant = \"outline\",\n size = \"sm\",\n className,\n}: {\n variant?: IconButtonVariant;\n size?: IconButtonSize;\n className?: string;\n} = {}): string => cn(base, variants[variant], sizes[size], className);\n"],"mappings":";;AAKA,MAAM,OACJ;AAEF,MAAM,WAA8C;CAClD,SACE;CACF,OACE;AACJ;AAEA,MAAM,QAAwC;CAC5C,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,MAAa,qBAAqB,EAChC,UAAU,WACV,OAAO,MACP,cAKE,CAAC,MAAcA,WAAAA,GAAG,MAAM,SAAS,UAAU,MAAM,OAAO,SAAS"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cn } from "../../lib/cn.mjs";
|
|
2
2
|
// src/components/IconButton/icon-button-classes.ts
|
|
3
|
-
const base = "inline-flex items-center justify-center border transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50";
|
|
3
|
+
const base = "inline-flex cursor-pointer items-center justify-center border transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50";
|
|
4
4
|
const variants = {
|
|
5
5
|
outline: "border-base-content/12 bg-base-100/85 text-base-content/60 backdrop-blur-md hover:text-base-content",
|
|
6
6
|
ghost: "border-transparent bg-transparent text-base-content/60 hover:bg-base-content/5 hover:text-base-content"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-button-classes.mjs","names":[],"sources":["../../../src/components/IconButton/icon-button-classes.ts"],"sourcesContent":["import { cn } from \"../../lib/cn\";\n\nexport type IconButtonVariant = \"outline\" | \"ghost\";\nexport type IconButtonSize = \"xs\" | \"sm\" | \"md\";\n\nconst base =\n \"inline-flex items-center justify-center border transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50\";\n\nconst variants: Record<IconButtonVariant, string> = {\n outline:\n \"border-base-content/12 bg-base-100/85 text-base-content/60 backdrop-blur-md hover:text-base-content\",\n ghost:\n \"border-transparent bg-transparent text-base-content/60 hover:bg-base-content/5 hover:text-base-content\",\n};\n\nconst sizes: Record<IconButtonSize, string> = {\n xs: \"size-6\",\n sm: \"size-8\",\n md: \"size-10\",\n};\n\nexport const iconButtonClasses = ({\n variant = \"outline\",\n size = \"sm\",\n className,\n}: {\n variant?: IconButtonVariant;\n size?: IconButtonSize;\n className?: string;\n} = {}): string => cn(base, variants[variant], sizes[size], className);\n"],"mappings":";;AAKA,MAAM,OACJ;AAEF,MAAM,WAA8C;CAClD,SACE;CACF,OACE;AACJ;AAEA,MAAM,QAAwC;CAC5C,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,MAAa,qBAAqB,EAChC,UAAU,WACV,OAAO,MACP,cAKE,CAAC,MAAc,GAAG,MAAM,SAAS,UAAU,MAAM,OAAO,SAAS"}
|
|
1
|
+
{"version":3,"file":"icon-button-classes.mjs","names":[],"sources":["../../../src/components/IconButton/icon-button-classes.ts"],"sourcesContent":["import { cn } from \"../../lib/cn\";\n\nexport type IconButtonVariant = \"outline\" | \"ghost\";\nexport type IconButtonSize = \"xs\" | \"sm\" | \"md\";\n\nconst base =\n \"inline-flex cursor-pointer items-center justify-center border transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent disabled:pointer-events-none disabled:opacity-50\";\n\nconst variants: Record<IconButtonVariant, string> = {\n outline:\n \"border-base-content/12 bg-base-100/85 text-base-content/60 backdrop-blur-md hover:text-base-content\",\n ghost:\n \"border-transparent bg-transparent text-base-content/60 hover:bg-base-content/5 hover:text-base-content\",\n};\n\nconst sizes: Record<IconButtonSize, string> = {\n xs: \"size-6\",\n sm: \"size-8\",\n md: \"size-10\",\n};\n\nexport const iconButtonClasses = ({\n variant = \"outline\",\n size = \"sm\",\n className,\n}: {\n variant?: IconButtonVariant;\n size?: IconButtonSize;\n className?: string;\n} = {}): string => cn(base, variants[variant], sizes[size], className);\n"],"mappings":";;AAKA,MAAM,OACJ;AAEF,MAAM,WAA8C;CAClD,SACE;CACF,OACE;AACJ;AAEA,MAAM,QAAwC;CAC5C,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,MAAa,qBAAqB,EAChC,UAAU,WACV,OAAO,MACP,cAKE,CAAC,MAAc,GAAG,MAAM,SAAS,UAAU,MAAM,OAAO,SAAS"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
const require_cn = require("../../lib/cn.cjs");
|
|
2
2
|
// src/components/Link/link-classes.ts
|
|
3
|
-
const base = "inline-flex items-center gap-2 text-sm font-medium underline-offset-4 transition-colors hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent";
|
|
3
|
+
const base = "inline-flex cursor-pointer items-center gap-2 text-sm font-medium underline-offset-4 transition-colors hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent";
|
|
4
4
|
const tones = {
|
|
5
5
|
default: "text-base-content",
|
|
6
6
|
muted: "text-base-content/60 hover:text-base-content"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-classes.cjs","names":["cn"],"sources":["../../../src/components/Link/link-classes.ts"],"sourcesContent":["import { cn } from \"../../lib/cn\";\n\nexport type LinkTone = \"default\" | \"muted\";\n\nconst base =\n \"inline-flex items-center gap-2 text-sm font-medium underline-offset-4 transition-colors hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent\";\n\nconst tones: Record<LinkTone, string> = {\n default: \"text-base-content\",\n muted: \"text-base-content/60 hover:text-base-content\",\n};\n\nexport const linkClasses = ({\n tone = \"default\",\n className,\n}: {\n tone?: LinkTone;\n className?: string;\n} = {}): string => cn(base, tones[tone], className);\n"],"mappings":";;AAIA,MAAM,OACJ;AAEF,MAAM,QAAkC;CACtC,SAAS;CACT,OAAO;AACT;AAEA,MAAa,eAAe,EAC1B,OAAO,WACP,cAIE,CAAC,MAAcA,WAAAA,GAAG,MAAM,MAAM,OAAO,SAAS"}
|
|
1
|
+
{"version":3,"file":"link-classes.cjs","names":["cn"],"sources":["../../../src/components/Link/link-classes.ts"],"sourcesContent":["import { cn } from \"../../lib/cn\";\n\nexport type LinkTone = \"default\" | \"muted\";\n\nconst base =\n \"inline-flex cursor-pointer items-center gap-2 text-sm font-medium underline-offset-4 transition-colors hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent\";\n\nconst tones: Record<LinkTone, string> = {\n default: \"text-base-content\",\n muted: \"text-base-content/60 hover:text-base-content\",\n};\n\nexport const linkClasses = ({\n tone = \"default\",\n className,\n}: {\n tone?: LinkTone;\n className?: string;\n} = {}): string => cn(base, tones[tone], className);\n"],"mappings":";;AAIA,MAAM,OACJ;AAEF,MAAM,QAAkC;CACtC,SAAS;CACT,OAAO;AACT;AAEA,MAAa,eAAe,EAC1B,OAAO,WACP,cAIE,CAAC,MAAcA,WAAAA,GAAG,MAAM,MAAM,OAAO,SAAS"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cn } from "../../lib/cn.mjs";
|
|
2
2
|
// src/components/Link/link-classes.ts
|
|
3
|
-
const base = "inline-flex items-center gap-2 text-sm font-medium underline-offset-4 transition-colors hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent";
|
|
3
|
+
const base = "inline-flex cursor-pointer items-center gap-2 text-sm font-medium underline-offset-4 transition-colors hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent";
|
|
4
4
|
const tones = {
|
|
5
5
|
default: "text-base-content",
|
|
6
6
|
muted: "text-base-content/60 hover:text-base-content"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-classes.mjs","names":[],"sources":["../../../src/components/Link/link-classes.ts"],"sourcesContent":["import { cn } from \"../../lib/cn\";\n\nexport type LinkTone = \"default\" | \"muted\";\n\nconst base =\n \"inline-flex items-center gap-2 text-sm font-medium underline-offset-4 transition-colors hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent\";\n\nconst tones: Record<LinkTone, string> = {\n default: \"text-base-content\",\n muted: \"text-base-content/60 hover:text-base-content\",\n};\n\nexport const linkClasses = ({\n tone = \"default\",\n className,\n}: {\n tone?: LinkTone;\n className?: string;\n} = {}): string => cn(base, tones[tone], className);\n"],"mappings":";;AAIA,MAAM,OACJ;AAEF,MAAM,QAAkC;CACtC,SAAS;CACT,OAAO;AACT;AAEA,MAAa,eAAe,EAC1B,OAAO,WACP,cAIE,CAAC,MAAc,GAAG,MAAM,MAAM,OAAO,SAAS"}
|
|
1
|
+
{"version":3,"file":"link-classes.mjs","names":[],"sources":["../../../src/components/Link/link-classes.ts"],"sourcesContent":["import { cn } from \"../../lib/cn\";\n\nexport type LinkTone = \"default\" | \"muted\";\n\nconst base =\n \"inline-flex cursor-pointer items-center gap-2 text-sm font-medium underline-offset-4 transition-colors hover:underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent\";\n\nconst tones: Record<LinkTone, string> = {\n default: \"text-base-content\",\n muted: \"text-base-content/60 hover:text-base-content\",\n};\n\nexport const linkClasses = ({\n tone = \"default\",\n className,\n}: {\n tone?: LinkTone;\n className?: string;\n} = {}): string => cn(base, tones[tone], className);\n"],"mappings":";;AAIA,MAAM,OACJ;AAEF,MAAM,QAAkC;CACtC,SAAS;CACT,OAAO;AACT;AAEA,MAAa,eAAe,EAC1B,OAAO,WACP,cAIE,CAAC,MAAc,GAAG,MAAM,MAAM,OAAO,SAAS"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
2
|
+
let react = require("react");
|
|
3
|
+
// src/components/Logo3D/Logo3D.tsx
|
|
4
|
+
const LAYERS = 18;
|
|
5
|
+
const DEPTH = 2.25;
|
|
6
|
+
const MAX_TILT = 16;
|
|
7
|
+
/**
|
|
8
|
+
* The mark built in CSS 3D: the same silhouette stacked on the Z axis, with
|
|
9
|
+
* the front face in ink and the extruded side in the accent green. The whole
|
|
10
|
+
* block tilts towards the pointer.
|
|
11
|
+
*/
|
|
12
|
+
const Logo3D = ({ src = "/logo.svg", className = "" }) => {
|
|
13
|
+
const ref = (0, react.useRef)(null);
|
|
14
|
+
(0, react.useEffect)(() => {
|
|
15
|
+
const element = ref.current;
|
|
16
|
+
if (!element) return;
|
|
17
|
+
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
|
|
18
|
+
let frame = 0;
|
|
19
|
+
const onMove = (event) => {
|
|
20
|
+
if (frame) return;
|
|
21
|
+
const clientX = event.clientX;
|
|
22
|
+
const clientY = event.clientY;
|
|
23
|
+
frame = window.requestAnimationFrame(() => {
|
|
24
|
+
frame = 0;
|
|
25
|
+
const rect = element.getBoundingClientRect();
|
|
26
|
+
const x = clientX - (rect.left + rect.width / 2);
|
|
27
|
+
const y = clientY - (rect.top + rect.height / 2);
|
|
28
|
+
const nx = Math.max(-1, Math.min(1, x / 320));
|
|
29
|
+
const ny = Math.max(-1, Math.min(1, y / 320));
|
|
30
|
+
element.style.setProperty("--logo-rx", `${(-ny * MAX_TILT).toFixed(2)}deg`);
|
|
31
|
+
element.style.setProperty("--logo-ry", `${(nx * MAX_TILT).toFixed(2)}deg`);
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const reset = () => {
|
|
35
|
+
if (frame) window.cancelAnimationFrame(frame);
|
|
36
|
+
frame = 0;
|
|
37
|
+
element.style.removeProperty("--logo-rx");
|
|
38
|
+
element.style.removeProperty("--logo-ry");
|
|
39
|
+
};
|
|
40
|
+
window.addEventListener("pointermove", onMove, { passive: true });
|
|
41
|
+
window.addEventListener("pointerleave", reset);
|
|
42
|
+
return () => {
|
|
43
|
+
if (frame) window.cancelAnimationFrame(frame);
|
|
44
|
+
window.removeEventListener("pointermove", onMove);
|
|
45
|
+
window.removeEventListener("pointerleave", reset);
|
|
46
|
+
};
|
|
47
|
+
}, []);
|
|
48
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
49
|
+
ref,
|
|
50
|
+
className: `logo3d ${className}`,
|
|
51
|
+
"aria-hidden": true,
|
|
52
|
+
style: { "--logo-src": `url("${src}")` },
|
|
53
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
54
|
+
className: "logo3d-inner",
|
|
55
|
+
children: Array.from({ length: LAYERS }, (_, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
56
|
+
className: `logo3d-layer ${index === 0 ? "logo3d-front" : "logo3d-depth"}`,
|
|
57
|
+
style: { transform: `translateZ(${-index * DEPTH}px)` }
|
|
58
|
+
}, index))
|
|
59
|
+
})
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
exports.Logo3D = Logo3D;
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=Logo3D.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logo3D.cjs","names":["useRef"],"sources":["../../../src/components/Logo3D/Logo3D.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport type { CSSProperties } from \"react\";\n\nconst LAYERS = 18;\nconst DEPTH = 2.25;\nconst MAX_TILT = 16;\n\nexport type Logo3DProps = {\n /** Mark URL used as the mask for every layer. */\n src?: string;\n className?: string;\n};\n\n/**\n * The mark built in CSS 3D: the same silhouette stacked on the Z axis, with\n * the front face in ink and the extruded side in the accent green. The whole\n * block tilts towards the pointer.\n */\nexport const Logo3D = ({ src = \"/logo.svg\", className = \"\" }: Logo3DProps) => {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const element = ref.current;\n if (!element) return;\n if (window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches) return;\n\n let frame = 0;\n\n const onMove = (event: PointerEvent) => {\n if (frame) return;\n const clientX = event.clientX;\n const clientY = event.clientY;\n\n frame = window.requestAnimationFrame(() => {\n frame = 0;\n const rect = element.getBoundingClientRect();\n const x = clientX - (rect.left + rect.width / 2);\n const y = clientY - (rect.top + rect.height / 2);\n const nx = Math.max(-1, Math.min(1, x / 320));\n const ny = Math.max(-1, Math.min(1, y / 320));\n\n element.style.setProperty(\n \"--logo-rx\",\n `${(-ny * MAX_TILT).toFixed(2)}deg`,\n );\n element.style.setProperty(\n \"--logo-ry\",\n `${(nx * MAX_TILT).toFixed(2)}deg`,\n );\n });\n };\n\n const reset = () => {\n if (frame) window.cancelAnimationFrame(frame);\n frame = 0;\n element.style.removeProperty(\"--logo-rx\");\n element.style.removeProperty(\"--logo-ry\");\n };\n\n window.addEventListener(\"pointermove\", onMove, { passive: true });\n window.addEventListener(\"pointerleave\", reset);\n return () => {\n if (frame) window.cancelAnimationFrame(frame);\n window.removeEventListener(\"pointermove\", onMove);\n window.removeEventListener(\"pointerleave\", reset);\n };\n }, []);\n\n return (\n <div\n ref={ref}\n className={`logo3d ${className}`}\n aria-hidden\n style={{ \"--logo-src\": `url(\"${src}\")` } as CSSProperties}\n >\n <div className=\"logo3d-inner\">\n {Array.from({ length: LAYERS }, (_, index) => (\n <div\n key={index}\n className={`logo3d-layer ${index === 0 ? \"logo3d-front\" : \"logo3d-depth\"}`}\n style={{ transform: `translateZ(${-index * DEPTH}px)` }}\n />\n ))}\n </div>\n </div>\n );\n};\n"],"mappings":";;;AAGA,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,WAAW;;;;;;AAajB,MAAa,UAAU,EAAE,MAAM,aAAa,YAAY,SAAsB;CAC5E,MAAM,OAAA,GAAMA,MAAAA,OAAAA,CAAuB,IAAI;CAEvC,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,MAAM,UAAU,IAAI;EACpB,IAAI,CAAC,SAAS;EACd,IAAI,OAAO,WAAW,kCAAkC,CAAC,CAAC,SAAS;EAEnE,IAAI,QAAQ;EAEZ,MAAM,UAAU,UAAwB;GACtC,IAAI,OAAO;GACX,MAAM,UAAU,MAAM;GACtB,MAAM,UAAU,MAAM;GAEtB,QAAQ,OAAO,4BAA4B;IACzC,QAAQ;IACR,MAAM,OAAO,QAAQ,sBAAsB;IAC3C,MAAM,IAAI,WAAW,KAAK,OAAO,KAAK,QAAQ;IAC9C,MAAM,IAAI,WAAW,KAAK,MAAM,KAAK,SAAS;IAC9C,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC;IAC5C,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC;IAE5C,QAAQ,MAAM,YACZ,aACA,IAAI,CAAC,KAAK,SAAA,CAAU,QAAQ,CAAC,EAAE,IACjC;IACA,QAAQ,MAAM,YACZ,aACA,IAAI,KAAK,SAAA,CAAU,QAAQ,CAAC,EAAE,IAChC;GACF,CAAC;EACH;EAEA,MAAM,cAAc;GAClB,IAAI,OAAO,OAAO,qBAAqB,KAAK;GAC5C,QAAQ;GACR,QAAQ,MAAM,eAAe,WAAW;GACxC,QAAQ,MAAM,eAAe,WAAW;EAC1C;EAEA,OAAO,iBAAiB,eAAe,QAAQ,EAAE,SAAS,KAAK,CAAC;EAChE,OAAO,iBAAiB,gBAAgB,KAAK;EAC7C,aAAa;GACX,IAAI,OAAO,OAAO,qBAAqB,KAAK;GAC5C,OAAO,oBAAoB,eAAe,MAAM;GAChD,OAAO,oBAAoB,gBAAgB,KAAK;EAClD;CACF,GAAG,CAAC,CAAC;CAEL,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACO;EACL,WAAW,UAAU;EACrB,eAAA;EACA,OAAO,EAAE,cAAc,QAAQ,IAAI,IAAI;EAEvC,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;GAAK,WAAU;GACZ,UAAA,MAAM,KAAK,EAAE,QAAQ,OAAO,IAAI,GAAG,UAClC,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAEE,WAAW,gBAAgB,UAAU,IAAI,iBAAiB;IAC1D,OAAO,EAAE,WAAW,cAAc,CAAC,QAAQ,MAAM,KAAK;GACvD,GAHM,KAGN,CACF;EACE,CAAA;CACF,CAAA;AAET"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type Logo3DProps = {
|
|
2
|
+
/** Mark URL used as the mask for every layer. */
|
|
3
|
+
src?: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* The mark built in CSS 3D: the same silhouette stacked on the Z axis, with
|
|
8
|
+
* the front face in ink and the extruded side in the accent green. The whole
|
|
9
|
+
* block tilts towards the pointer.
|
|
10
|
+
*/
|
|
11
|
+
declare const Logo3D: ({ src, className }: Logo3DProps) => import("react").JSX.Element;
|
|
12
|
+
export { Logo3D, Logo3DProps };
|
|
13
|
+
//# sourceMappingURL=Logo3D.d.cts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type Logo3DProps = {
|
|
2
|
+
/** Mark URL used as the mask for every layer. */
|
|
3
|
+
src?: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* The mark built in CSS 3D: the same silhouette stacked on the Z axis, with
|
|
8
|
+
* the front face in ink and the extruded side in the accent green. The whole
|
|
9
|
+
* block tilts towards the pointer.
|
|
10
|
+
*/
|
|
11
|
+
declare const Logo3D: ({ src, className }: Logo3DProps) => import("react").JSX.Element;
|
|
12
|
+
export { Logo3D, Logo3DProps };
|
|
13
|
+
//# sourceMappingURL=Logo3D.d.mts.map
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
// src/components/Logo3D/Logo3D.tsx
|
|
4
|
+
const LAYERS = 18;
|
|
5
|
+
const DEPTH = 2.25;
|
|
6
|
+
const MAX_TILT = 16;
|
|
7
|
+
/**
|
|
8
|
+
* The mark built in CSS 3D: the same silhouette stacked on the Z axis, with
|
|
9
|
+
* the front face in ink and the extruded side in the accent green. The whole
|
|
10
|
+
* block tilts towards the pointer.
|
|
11
|
+
*/
|
|
12
|
+
const Logo3D = ({ src = "/logo.svg", className = "" }) => {
|
|
13
|
+
const ref = useRef(null);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
const element = ref.current;
|
|
16
|
+
if (!element) return;
|
|
17
|
+
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) return;
|
|
18
|
+
let frame = 0;
|
|
19
|
+
const onMove = (event) => {
|
|
20
|
+
if (frame) return;
|
|
21
|
+
const clientX = event.clientX;
|
|
22
|
+
const clientY = event.clientY;
|
|
23
|
+
frame = window.requestAnimationFrame(() => {
|
|
24
|
+
frame = 0;
|
|
25
|
+
const rect = element.getBoundingClientRect();
|
|
26
|
+
const x = clientX - (rect.left + rect.width / 2);
|
|
27
|
+
const y = clientY - (rect.top + rect.height / 2);
|
|
28
|
+
const nx = Math.max(-1, Math.min(1, x / 320));
|
|
29
|
+
const ny = Math.max(-1, Math.min(1, y / 320));
|
|
30
|
+
element.style.setProperty("--logo-rx", `${(-ny * MAX_TILT).toFixed(2)}deg`);
|
|
31
|
+
element.style.setProperty("--logo-ry", `${(nx * MAX_TILT).toFixed(2)}deg`);
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const reset = () => {
|
|
35
|
+
if (frame) window.cancelAnimationFrame(frame);
|
|
36
|
+
frame = 0;
|
|
37
|
+
element.style.removeProperty("--logo-rx");
|
|
38
|
+
element.style.removeProperty("--logo-ry");
|
|
39
|
+
};
|
|
40
|
+
window.addEventListener("pointermove", onMove, { passive: true });
|
|
41
|
+
window.addEventListener("pointerleave", reset);
|
|
42
|
+
return () => {
|
|
43
|
+
if (frame) window.cancelAnimationFrame(frame);
|
|
44
|
+
window.removeEventListener("pointermove", onMove);
|
|
45
|
+
window.removeEventListener("pointerleave", reset);
|
|
46
|
+
};
|
|
47
|
+
}, []);
|
|
48
|
+
return /* @__PURE__ */ jsx("div", {
|
|
49
|
+
ref,
|
|
50
|
+
className: `logo3d ${className}`,
|
|
51
|
+
"aria-hidden": true,
|
|
52
|
+
style: { "--logo-src": `url("${src}")` },
|
|
53
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
54
|
+
className: "logo3d-inner",
|
|
55
|
+
children: Array.from({ length: LAYERS }, (_, index) => /* @__PURE__ */ jsx("div", {
|
|
56
|
+
className: `logo3d-layer ${index === 0 ? "logo3d-front" : "logo3d-depth"}`,
|
|
57
|
+
style: { transform: `translateZ(${-index * DEPTH}px)` }
|
|
58
|
+
}, index))
|
|
59
|
+
})
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
export { Logo3D };
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=Logo3D.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logo3D.mjs","names":[],"sources":["../../../src/components/Logo3D/Logo3D.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport type { CSSProperties } from \"react\";\n\nconst LAYERS = 18;\nconst DEPTH = 2.25;\nconst MAX_TILT = 16;\n\nexport type Logo3DProps = {\n /** Mark URL used as the mask for every layer. */\n src?: string;\n className?: string;\n};\n\n/**\n * The mark built in CSS 3D: the same silhouette stacked on the Z axis, with\n * the front face in ink and the extruded side in the accent green. The whole\n * block tilts towards the pointer.\n */\nexport const Logo3D = ({ src = \"/logo.svg\", className = \"\" }: Logo3DProps) => {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const element = ref.current;\n if (!element) return;\n if (window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches) return;\n\n let frame = 0;\n\n const onMove = (event: PointerEvent) => {\n if (frame) return;\n const clientX = event.clientX;\n const clientY = event.clientY;\n\n frame = window.requestAnimationFrame(() => {\n frame = 0;\n const rect = element.getBoundingClientRect();\n const x = clientX - (rect.left + rect.width / 2);\n const y = clientY - (rect.top + rect.height / 2);\n const nx = Math.max(-1, Math.min(1, x / 320));\n const ny = Math.max(-1, Math.min(1, y / 320));\n\n element.style.setProperty(\n \"--logo-rx\",\n `${(-ny * MAX_TILT).toFixed(2)}deg`,\n );\n element.style.setProperty(\n \"--logo-ry\",\n `${(nx * MAX_TILT).toFixed(2)}deg`,\n );\n });\n };\n\n const reset = () => {\n if (frame) window.cancelAnimationFrame(frame);\n frame = 0;\n element.style.removeProperty(\"--logo-rx\");\n element.style.removeProperty(\"--logo-ry\");\n };\n\n window.addEventListener(\"pointermove\", onMove, { passive: true });\n window.addEventListener(\"pointerleave\", reset);\n return () => {\n if (frame) window.cancelAnimationFrame(frame);\n window.removeEventListener(\"pointermove\", onMove);\n window.removeEventListener(\"pointerleave\", reset);\n };\n }, []);\n\n return (\n <div\n ref={ref}\n className={`logo3d ${className}`}\n aria-hidden\n style={{ \"--logo-src\": `url(\"${src}\")` } as CSSProperties}\n >\n <div className=\"logo3d-inner\">\n {Array.from({ length: LAYERS }, (_, index) => (\n <div\n key={index}\n className={`logo3d-layer ${index === 0 ? \"logo3d-front\" : \"logo3d-depth\"}`}\n style={{ transform: `translateZ(${-index * DEPTH}px)` }}\n />\n ))}\n </div>\n </div>\n );\n};\n"],"mappings":";;;AAGA,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,WAAW;;;;;;AAajB,MAAa,UAAU,EAAE,MAAM,aAAa,YAAY,SAAsB;CAC5E,MAAM,MAAM,OAAuB,IAAI;CAEvC,gBAAgB;EACd,MAAM,UAAU,IAAI;EACpB,IAAI,CAAC,SAAS;EACd,IAAI,OAAO,WAAW,kCAAkC,CAAC,CAAC,SAAS;EAEnE,IAAI,QAAQ;EAEZ,MAAM,UAAU,UAAwB;GACtC,IAAI,OAAO;GACX,MAAM,UAAU,MAAM;GACtB,MAAM,UAAU,MAAM;GAEtB,QAAQ,OAAO,4BAA4B;IACzC,QAAQ;IACR,MAAM,OAAO,QAAQ,sBAAsB;IAC3C,MAAM,IAAI,WAAW,KAAK,OAAO,KAAK,QAAQ;IAC9C,MAAM,IAAI,WAAW,KAAK,MAAM,KAAK,SAAS;IAC9C,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC;IAC5C,MAAM,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC;IAE5C,QAAQ,MAAM,YACZ,aACA,IAAI,CAAC,KAAK,SAAA,CAAU,QAAQ,CAAC,EAAE,IACjC;IACA,QAAQ,MAAM,YACZ,aACA,IAAI,KAAK,SAAA,CAAU,QAAQ,CAAC,EAAE,IAChC;GACF,CAAC;EACH;EAEA,MAAM,cAAc;GAClB,IAAI,OAAO,OAAO,qBAAqB,KAAK;GAC5C,QAAQ;GACR,QAAQ,MAAM,eAAe,WAAW;GACxC,QAAQ,MAAM,eAAe,WAAW;EAC1C;EAEA,OAAO,iBAAiB,eAAe,QAAQ,EAAE,SAAS,KAAK,CAAC;EAChE,OAAO,iBAAiB,gBAAgB,KAAK;EAC7C,aAAa;GACX,IAAI,OAAO,OAAO,qBAAqB,KAAK;GAC5C,OAAO,oBAAoB,eAAe,MAAM;GAChD,OAAO,oBAAoB,gBAAgB,KAAK;EAClD;CACF,GAAG,CAAC,CAAC;CAEL,OACE,oBAAC,OAAD;EACO;EACL,WAAW,UAAU;EACrB,eAAA;EACA,OAAO,EAAE,cAAc,QAAQ,IAAI,IAAI;EAEvC,UAAA,oBAAC,OAAD;GAAK,WAAU;GACZ,UAAA,MAAM,KAAK,EAAE,QAAQ,OAAO,IAAI,GAAG,UAClC,oBAAC,OAAD;IAEE,WAAW,gBAAgB,UAAU,IAAI,iBAAiB;IAC1D,OAAO,EAAE,WAAW,cAAc,CAAC,QAAQ,MAAM,KAAK;GACvD,GAHM,KAGN,CACF;EACE,CAAA;CACF,CAAA;AAET"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Logo3D } from "./Logo3D.mjs";
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
2
|
+
let react = require("react");
|
|
3
|
+
// src/components/Reveal/Reveal.tsx
|
|
4
|
+
/** Fades its content up into place the first time it enters the viewport. */
|
|
5
|
+
const Reveal = ({ children, className, delay = 0 }) => {
|
|
6
|
+
const ref = (0, react.useRef)(null);
|
|
7
|
+
(0, react.useEffect)(() => {
|
|
8
|
+
const node = ref.current;
|
|
9
|
+
if (!node) return;
|
|
10
|
+
if (typeof IntersectionObserver === "undefined" || window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
|
|
11
|
+
node.dataset.shown = "";
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const observer = new IntersectionObserver(([entry]) => {
|
|
15
|
+
if (!entry?.isIntersecting) return;
|
|
16
|
+
node.dataset.shown = "";
|
|
17
|
+
observer.disconnect();
|
|
18
|
+
}, {
|
|
19
|
+
threshold: .1,
|
|
20
|
+
rootMargin: "0px 0px -10% 0px"
|
|
21
|
+
});
|
|
22
|
+
observer.observe(node);
|
|
23
|
+
return () => observer.disconnect();
|
|
24
|
+
}, []);
|
|
25
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
26
|
+
ref,
|
|
27
|
+
className: className ? `reveal ${className}` : "reveal",
|
|
28
|
+
style: { "--reveal-delay": `${delay}ms` },
|
|
29
|
+
children
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
exports.Reveal = Reveal;
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=Reveal.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Reveal.cjs","names":["useRef"],"sources":["../../../src/components/Reveal/Reveal.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport type { CSSProperties, ReactNode } from \"react\";\n\nexport type RevealProps = {\n children: ReactNode;\n className?: string;\n delay?: number;\n};\n\n/** Fades its content up into place the first time it enters the viewport. */\nexport const Reveal = ({ children, className, delay = 0 }: RevealProps) => {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const node = ref.current;\n if (!node) return;\n\n if (\n typeof IntersectionObserver === \"undefined\" ||\n window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches\n ) {\n node.dataset.shown = \"\";\n return;\n }\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry?.isIntersecting) return;\n node.dataset.shown = \"\";\n observer.disconnect();\n },\n { threshold: 0.1, rootMargin: \"0px 0px -10% 0px\" },\n );\n\n observer.observe(node);\n return () => observer.disconnect();\n }, []);\n\n return (\n <div\n ref={ref}\n className={className ? `reveal ${className}` : \"reveal\"}\n style={{ \"--reveal-delay\": `${delay}ms` } as CSSProperties}\n >\n {children}\n </div>\n );\n};\n"],"mappings":";;;;AAUA,MAAa,UAAU,EAAE,UAAU,WAAW,QAAQ,QAAqB;CACzE,MAAM,OAAA,GAAMA,MAAAA,OAAAA,CAAuB,IAAI;CAEvC,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,MAAM,OAAO,IAAI;EACjB,IAAI,CAAC,MAAM;EAEX,IACE,OAAO,yBAAyB,eAChC,OAAO,WAAW,kCAAkC,CAAC,CAAC,SACtD;GACA,KAAK,QAAQ,QAAQ;GACrB;EACF;EAEA,MAAM,WAAW,IAAI,sBAClB,CAAC,WAAW;GACX,IAAI,CAAC,OAAO,gBAAgB;GAC5B,KAAK,QAAQ,QAAQ;GACrB,SAAS,WAAW;EACtB,GACA;GAAE,WAAW;GAAK,YAAY;EAAmB,CACnD;EAEA,SAAS,QAAQ,IAAI;EACrB,aAAa,SAAS,WAAW;CACnC,GAAG,CAAC,CAAC;CAEL,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACO;EACL,WAAW,YAAY,UAAU,cAAc;EAC/C,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI;EAEvC;CACE,CAAA;AAET"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
type RevealProps = {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
delay?: number;
|
|
6
|
+
};
|
|
7
|
+
/** Fades its content up into place the first time it enters the viewport. */
|
|
8
|
+
declare const Reveal: ({ children, className, delay }: RevealProps) => import("react").JSX.Element;
|
|
9
|
+
export { Reveal, RevealProps };
|
|
10
|
+
//# sourceMappingURL=Reveal.d.cts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
type RevealProps = {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
delay?: number;
|
|
6
|
+
};
|
|
7
|
+
/** Fades its content up into place the first time it enters the viewport. */
|
|
8
|
+
declare const Reveal: ({ children, className, delay }: RevealProps) => import("react").JSX.Element;
|
|
9
|
+
export { Reveal, RevealProps };
|
|
10
|
+
//# sourceMappingURL=Reveal.d.mts.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
|
+
// src/components/Reveal/Reveal.tsx
|
|
4
|
+
/** Fades its content up into place the first time it enters the viewport. */
|
|
5
|
+
const Reveal = ({ children, className, delay = 0 }) => {
|
|
6
|
+
const ref = useRef(null);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
const node = ref.current;
|
|
9
|
+
if (!node) return;
|
|
10
|
+
if (typeof IntersectionObserver === "undefined" || window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
|
|
11
|
+
node.dataset.shown = "";
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const observer = new IntersectionObserver(([entry]) => {
|
|
15
|
+
if (!entry?.isIntersecting) return;
|
|
16
|
+
node.dataset.shown = "";
|
|
17
|
+
observer.disconnect();
|
|
18
|
+
}, {
|
|
19
|
+
threshold: .1,
|
|
20
|
+
rootMargin: "0px 0px -10% 0px"
|
|
21
|
+
});
|
|
22
|
+
observer.observe(node);
|
|
23
|
+
return () => observer.disconnect();
|
|
24
|
+
}, []);
|
|
25
|
+
return /* @__PURE__ */ jsx("div", {
|
|
26
|
+
ref,
|
|
27
|
+
className: className ? `reveal ${className}` : "reveal",
|
|
28
|
+
style: { "--reveal-delay": `${delay}ms` },
|
|
29
|
+
children
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
export { Reveal };
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=Reveal.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Reveal.mjs","names":[],"sources":["../../../src/components/Reveal/Reveal.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport type { CSSProperties, ReactNode } from \"react\";\n\nexport type RevealProps = {\n children: ReactNode;\n className?: string;\n delay?: number;\n};\n\n/** Fades its content up into place the first time it enters the viewport. */\nexport const Reveal = ({ children, className, delay = 0 }: RevealProps) => {\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const node = ref.current;\n if (!node) return;\n\n if (\n typeof IntersectionObserver === \"undefined\" ||\n window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches\n ) {\n node.dataset.shown = \"\";\n return;\n }\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry?.isIntersecting) return;\n node.dataset.shown = \"\";\n observer.disconnect();\n },\n { threshold: 0.1, rootMargin: \"0px 0px -10% 0px\" },\n );\n\n observer.observe(node);\n return () => observer.disconnect();\n }, []);\n\n return (\n <div\n ref={ref}\n className={className ? `reveal ${className}` : \"reveal\"}\n style={{ \"--reveal-delay\": `${delay}ms` } as CSSProperties}\n >\n {children}\n </div>\n );\n};\n"],"mappings":";;;;AAUA,MAAa,UAAU,EAAE,UAAU,WAAW,QAAQ,QAAqB;CACzE,MAAM,MAAM,OAAuB,IAAI;CAEvC,gBAAgB;EACd,MAAM,OAAO,IAAI;EACjB,IAAI,CAAC,MAAM;EAEX,IACE,OAAO,yBAAyB,eAChC,OAAO,WAAW,kCAAkC,CAAC,CAAC,SACtD;GACA,KAAK,QAAQ,QAAQ;GACrB;EACF;EAEA,MAAM,WAAW,IAAI,sBAClB,CAAC,WAAW;GACX,IAAI,CAAC,OAAO,gBAAgB;GAC5B,KAAK,QAAQ,QAAQ;GACrB,SAAS,WAAW;EACtB,GACA;GAAE,WAAW;GAAK,YAAY;EAAmB,CACnD;EAEA,SAAS,QAAQ,IAAI;EACrB,aAAa,SAAS,WAAW;CACnC,GAAG,CAAC,CAAC;CAEL,OACE,oBAAC,OAAD;EACO;EACL,WAAW,YAAY,UAAU,cAAc;EAC/C,OAAO,EAAE,kBAAkB,GAAG,MAAM,IAAI;EAEvC;CACE,CAAA;AAET"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Reveal } from "./Reveal.mjs";
|
|
@@ -8,7 +8,7 @@ const HomeButton = ({ href, label = "Grupo Yo-Yo" }) => {
|
|
|
8
8
|
onPointerDown: stop,
|
|
9
9
|
onTouchStart: stop,
|
|
10
10
|
"aria-label": `Volver a ${label}`,
|
|
11
|
-
className: "fixed left-4 top-4 z-[9999] flex items-center gap-2 border border-base-content/12 bg-base-100/85 px-3 py-2 font-mono text-[0.65rem] uppercase tracking-[0.18em] text-base-content/60 backdrop-blur-md transition-colors [touch-action:manipulation] hover:text-base-content",
|
|
11
|
+
className: "fixed left-4 top-4 z-[9999] flex cursor-pointer items-center gap-2 border border-base-content/12 bg-base-100/85 px-3 py-2 font-mono text-[0.65rem] uppercase tracking-[0.18em] text-base-content/60 backdrop-blur-md transition-colors [touch-action:manipulation] hover:text-base-content",
|
|
12
12
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ArrowLeft, { className: "size-3.5" }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
13
13
|
className: "hidden sm:inline",
|
|
14
14
|
children: label
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HomeButton.cjs","names":["ArrowLeft"],"sources":["../../../src/gallery/HomeButton/HomeButton.tsx"],"sourcesContent":["import type { SyntheticEvent } from \"react\";\nimport { ArrowLeft } from \"lucide-react\";\n\nexport type HomeButtonProps = {\n href: string;\n /** Group name shown next to the arrow. */\n label?: string;\n};\n\nexport const HomeButton = ({ href, label = \"Grupo Yo-Yo\" }: HomeButtonProps) => {\n const stop = (event: SyntheticEvent) => event.stopPropagation();\n\n return (\n <a\n href={href}\n onPointerDown={stop}\n onTouchStart={stop}\n aria-label={`Volver a ${label}`}\n className=\"fixed left-4 top-4 z-[9999] flex items-center gap-2 border border-base-content/12 bg-base-100/85 px-3 py-2 font-mono text-[0.65rem] uppercase tracking-[0.18em] text-base-content/60 backdrop-blur-md transition-colors [touch-action:manipulation] hover:text-base-content\"\n >\n <ArrowLeft className=\"size-3.5\" />\n <span className=\"hidden sm:inline\">{label}</span>\n </a>\n );\n};\n"],"mappings":";;;AASA,MAAa,cAAc,EAAE,MAAM,QAAQ,oBAAqC;CAC9E,MAAM,QAAQ,UAA0B,MAAM,gBAAgB;CAE9D,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,KAAD;EACQ;EACN,eAAe;EACf,cAAc;EACd,cAAY,YAAY;EACxB,WAAU;EALZ,UAAA,CAOE,iBAAA,GAAA,kBAAA,IAAA,CAACA,aAAAA,WAAD,EAAW,WAAU,WAAY,CAAA,GACjC,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GAAM,WAAU;GAAoB,UAAA;EAAY,CAAA,CAC/C;;AAEP"}
|
|
1
|
+
{"version":3,"file":"HomeButton.cjs","names":["ArrowLeft"],"sources":["../../../src/gallery/HomeButton/HomeButton.tsx"],"sourcesContent":["import type { SyntheticEvent } from \"react\";\nimport { ArrowLeft } from \"lucide-react\";\n\nexport type HomeButtonProps = {\n href: string;\n /** Group name shown next to the arrow. */\n label?: string;\n};\n\nexport const HomeButton = ({ href, label = \"Grupo Yo-Yo\" }: HomeButtonProps) => {\n const stop = (event: SyntheticEvent) => event.stopPropagation();\n\n return (\n <a\n href={href}\n onPointerDown={stop}\n onTouchStart={stop}\n aria-label={`Volver a ${label}`}\n className=\"fixed left-4 top-4 z-[9999] flex cursor-pointer items-center gap-2 border border-base-content/12 bg-base-100/85 px-3 py-2 font-mono text-[0.65rem] uppercase tracking-[0.18em] text-base-content/60 backdrop-blur-md transition-colors [touch-action:manipulation] hover:text-base-content\"\n >\n <ArrowLeft className=\"size-3.5\" />\n <span className=\"hidden sm:inline\">{label}</span>\n </a>\n );\n};\n"],"mappings":";;;AASA,MAAa,cAAc,EAAE,MAAM,QAAQ,oBAAqC;CAC9E,MAAM,QAAQ,UAA0B,MAAM,gBAAgB;CAE9D,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,KAAD;EACQ;EACN,eAAe;EACf,cAAc;EACd,cAAY,YAAY;EACxB,WAAU;EALZ,UAAA,CAOE,iBAAA,GAAA,kBAAA,IAAA,CAACA,aAAAA,WAAD,EAAW,WAAU,WAAY,CAAA,GACjC,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GAAM,WAAU;GAAoB,UAAA;EAAY,CAAA,CAC/C;;AAEP"}
|
|
@@ -8,7 +8,7 @@ const HomeButton = ({ href, label = "Grupo Yo-Yo" }) => {
|
|
|
8
8
|
onPointerDown: stop,
|
|
9
9
|
onTouchStart: stop,
|
|
10
10
|
"aria-label": `Volver a ${label}`,
|
|
11
|
-
className: "fixed left-4 top-4 z-[9999] flex items-center gap-2 border border-base-content/12 bg-base-100/85 px-3 py-2 font-mono text-[0.65rem] uppercase tracking-[0.18em] text-base-content/60 backdrop-blur-md transition-colors [touch-action:manipulation] hover:text-base-content",
|
|
11
|
+
className: "fixed left-4 top-4 z-[9999] flex cursor-pointer items-center gap-2 border border-base-content/12 bg-base-100/85 px-3 py-2 font-mono text-[0.65rem] uppercase tracking-[0.18em] text-base-content/60 backdrop-blur-md transition-colors [touch-action:manipulation] hover:text-base-content",
|
|
12
12
|
children: [/* @__PURE__ */ jsx(ArrowLeft, { className: "size-3.5" }), /* @__PURE__ */ jsx("span", {
|
|
13
13
|
className: "hidden sm:inline",
|
|
14
14
|
children: label
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HomeButton.mjs","names":[],"sources":["../../../src/gallery/HomeButton/HomeButton.tsx"],"sourcesContent":["import type { SyntheticEvent } from \"react\";\nimport { ArrowLeft } from \"lucide-react\";\n\nexport type HomeButtonProps = {\n href: string;\n /** Group name shown next to the arrow. */\n label?: string;\n};\n\nexport const HomeButton = ({ href, label = \"Grupo Yo-Yo\" }: HomeButtonProps) => {\n const stop = (event: SyntheticEvent) => event.stopPropagation();\n\n return (\n <a\n href={href}\n onPointerDown={stop}\n onTouchStart={stop}\n aria-label={`Volver a ${label}`}\n className=\"fixed left-4 top-4 z-[9999] flex items-center gap-2 border border-base-content/12 bg-base-100/85 px-3 py-2 font-mono text-[0.65rem] uppercase tracking-[0.18em] text-base-content/60 backdrop-blur-md transition-colors [touch-action:manipulation] hover:text-base-content\"\n >\n <ArrowLeft className=\"size-3.5\" />\n <span className=\"hidden sm:inline\">{label}</span>\n </a>\n );\n};\n"],"mappings":";;;AASA,MAAa,cAAc,EAAE,MAAM,QAAQ,oBAAqC;CAC9E,MAAM,QAAQ,UAA0B,MAAM,gBAAgB;CAE9D,OACE,qBAAC,KAAD;EACQ;EACN,eAAe;EACf,cAAc;EACd,cAAY,YAAY;EACxB,WAAU;EALZ,UAAA,CAOE,oBAAC,WAAD,EAAW,WAAU,WAAY,CAAA,GACjC,oBAAC,QAAD;GAAM,WAAU;GAAoB,UAAA;EAAY,CAAA,CAC/C;;AAEP"}
|
|
1
|
+
{"version":3,"file":"HomeButton.mjs","names":[],"sources":["../../../src/gallery/HomeButton/HomeButton.tsx"],"sourcesContent":["import type { SyntheticEvent } from \"react\";\nimport { ArrowLeft } from \"lucide-react\";\n\nexport type HomeButtonProps = {\n href: string;\n /** Group name shown next to the arrow. */\n label?: string;\n};\n\nexport const HomeButton = ({ href, label = \"Grupo Yo-Yo\" }: HomeButtonProps) => {\n const stop = (event: SyntheticEvent) => event.stopPropagation();\n\n return (\n <a\n href={href}\n onPointerDown={stop}\n onTouchStart={stop}\n aria-label={`Volver a ${label}`}\n className=\"fixed left-4 top-4 z-[9999] flex cursor-pointer items-center gap-2 border border-base-content/12 bg-base-100/85 px-3 py-2 font-mono text-[0.65rem] uppercase tracking-[0.18em] text-base-content/60 backdrop-blur-md transition-colors [touch-action:manipulation] hover:text-base-content\"\n >\n <ArrowLeft className=\"size-3.5\" />\n <span className=\"hidden sm:inline\">{label}</span>\n </a>\n );\n};\n"],"mappings":";;;AASA,MAAa,cAAc,EAAE,MAAM,QAAQ,oBAAqC;CAC9E,MAAM,QAAQ,UAA0B,MAAM,gBAAgB;CAE9D,OACE,qBAAC,KAAD;EACQ;EACN,eAAe;EACf,cAAc;EACd,cAAY,YAAY;EACxB,WAAU;EALZ,UAAA,CAOE,oBAAC,WAAD,EAAW,WAAU,WAAY,CAAA,GACjC,oBAAC,QAAD;GAAM,WAAU;GAAoB,UAAA;EAAY,CAAA,CAC/C;;AAEP"}
|
package/dist/index.cjs
CHANGED
|
@@ -16,9 +16,13 @@ const require_Link = require("./components/Link/Link.cjs");
|
|
|
16
16
|
require("./components/Link/index.cjs");
|
|
17
17
|
const require_Logo = require("./components/Logo/Logo.cjs");
|
|
18
18
|
require("./components/Logo/index.cjs");
|
|
19
|
+
const require_Logo3D = require("./components/Logo3D/Logo3D.cjs");
|
|
20
|
+
require("./components/Logo3D/index.cjs");
|
|
19
21
|
const require_panel_classes = require("./components/Panel/panel-classes.cjs");
|
|
20
22
|
const require_Panel = require("./components/Panel/Panel.cjs");
|
|
21
23
|
require("./components/Panel/index.cjs");
|
|
24
|
+
const require_Reveal = require("./components/Reveal/Reveal.cjs");
|
|
25
|
+
require("./components/Reveal/index.cjs");
|
|
22
26
|
const require_ThemeToggle = require("./components/ThemeToggle/ThemeToggle.cjs");
|
|
23
27
|
require("./components/ThemeToggle/index.cjs");
|
|
24
28
|
exports.Badge = require_Badge.Badge;
|
|
@@ -28,7 +32,9 @@ exports.Eyebrow = require_Eyebrow.Eyebrow;
|
|
|
28
32
|
exports.IconButton = require_IconButton.IconButton;
|
|
29
33
|
exports.Link = require_Link.Link;
|
|
30
34
|
exports.Logo = require_Logo.Logo;
|
|
35
|
+
exports.Logo3D = require_Logo3D.Logo3D;
|
|
31
36
|
exports.Panel = require_Panel.Panel;
|
|
37
|
+
exports.Reveal = require_Reveal.Reveal;
|
|
32
38
|
exports.ThemeToggle = require_ThemeToggle.ThemeToggle;
|
|
33
39
|
exports.badgeClasses = require_badge_classes.badgeClasses;
|
|
34
40
|
exports.buttonClasses = require_button_classes.buttonClasses;
|
package/dist/index.d.cts
CHANGED
|
@@ -14,8 +14,11 @@ import { LinkTone, linkClasses } from "./components/Link/link-classes.cjs";
|
|
|
14
14
|
import { Link, LinkComponentProps, LinkProps } from "./components/Link/Link.cjs";
|
|
15
15
|
import "./components/Link/index.cjs";
|
|
16
16
|
import { Logo, LogoProps } from "./components/Logo/Logo.cjs";
|
|
17
|
+
import { Logo3D, Logo3DProps } from "./components/Logo3D/Logo3D.cjs";
|
|
17
18
|
import { PanelPadding, PanelTone, panelClasses } from "./components/Panel/panel-classes.cjs";
|
|
18
19
|
import { Panel, PanelProps } from "./components/Panel/Panel.cjs";
|
|
19
20
|
import "./components/Panel/index.cjs";
|
|
21
|
+
import { Reveal, RevealProps } from "./components/Reveal/Reveal.cjs";
|
|
22
|
+
import "./components/Reveal/index.cjs";
|
|
20
23
|
import { ThemeToggle, ThemeToggleProps } from "./components/ThemeToggle/ThemeToggle.cjs";
|
|
21
|
-
export { Badge, type BadgeProps, type BadgeTone, Button, ButtonLink, type ButtonLinkProps, type ButtonProps, type ButtonSize, type ButtonVariant, Eyebrow, type EyebrowProps, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, Link, type LinkComponentProps, type LinkProps, type LinkTone, Logo, type LogoProps, Panel, type PanelPadding, type PanelProps, type PanelTone, ThemeToggle, type ThemeToggleProps, badgeClasses, buttonClasses, iconButtonClasses, linkClasses, panelClasses };
|
|
24
|
+
export { Badge, type BadgeProps, type BadgeTone, Button, ButtonLink, type ButtonLinkProps, type ButtonProps, type ButtonSize, type ButtonVariant, Eyebrow, type EyebrowProps, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, Link, type LinkComponentProps, type LinkProps, type LinkTone, Logo, Logo3D, type Logo3DProps, type LogoProps, Panel, type PanelPadding, type PanelProps, type PanelTone, Reveal, type RevealProps, ThemeToggle, type ThemeToggleProps, badgeClasses, buttonClasses, iconButtonClasses, linkClasses, panelClasses };
|
package/dist/index.d.mts
CHANGED
|
@@ -14,8 +14,11 @@ import { LinkTone, linkClasses } from "./components/Link/link-classes.mjs";
|
|
|
14
14
|
import { Link, LinkComponentProps, LinkProps } from "./components/Link/Link.mjs";
|
|
15
15
|
import "./components/Link/index.mjs";
|
|
16
16
|
import { Logo, LogoProps } from "./components/Logo/Logo.mjs";
|
|
17
|
+
import { Logo3D, Logo3DProps } from "./components/Logo3D/Logo3D.mjs";
|
|
17
18
|
import { PanelPadding, PanelTone, panelClasses } from "./components/Panel/panel-classes.mjs";
|
|
18
19
|
import { Panel, PanelProps } from "./components/Panel/Panel.mjs";
|
|
19
20
|
import "./components/Panel/index.mjs";
|
|
21
|
+
import { Reveal, RevealProps } from "./components/Reveal/Reveal.mjs";
|
|
22
|
+
import "./components/Reveal/index.mjs";
|
|
20
23
|
import { ThemeToggle, ThemeToggleProps } from "./components/ThemeToggle/ThemeToggle.mjs";
|
|
21
|
-
export { Badge, type BadgeProps, type BadgeTone, Button, ButtonLink, type ButtonLinkProps, type ButtonProps, type ButtonSize, type ButtonVariant, Eyebrow, type EyebrowProps, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, Link, type LinkComponentProps, type LinkProps, type LinkTone, Logo, type LogoProps, Panel, type PanelPadding, type PanelProps, type PanelTone, ThemeToggle, type ThemeToggleProps, badgeClasses, buttonClasses, iconButtonClasses, linkClasses, panelClasses };
|
|
24
|
+
export { Badge, type BadgeProps, type BadgeTone, Button, ButtonLink, type ButtonLinkProps, type ButtonProps, type ButtonSize, type ButtonVariant, Eyebrow, type EyebrowProps, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, Link, type LinkComponentProps, type LinkProps, type LinkTone, Logo, Logo3D, type Logo3DProps, type LogoProps, Panel, type PanelPadding, type PanelProps, type PanelTone, Reveal, type RevealProps, ThemeToggle, type ThemeToggleProps, badgeClasses, buttonClasses, iconButtonClasses, linkClasses, panelClasses };
|
package/dist/index.mjs
CHANGED
|
@@ -15,9 +15,13 @@ import { Link } from "./components/Link/Link.mjs";
|
|
|
15
15
|
import "./components/Link/index.mjs";
|
|
16
16
|
import { Logo } from "./components/Logo/Logo.mjs";
|
|
17
17
|
import "./components/Logo/index.mjs";
|
|
18
|
+
import { Logo3D } from "./components/Logo3D/Logo3D.mjs";
|
|
19
|
+
import "./components/Logo3D/index.mjs";
|
|
18
20
|
import { panelClasses } from "./components/Panel/panel-classes.mjs";
|
|
19
21
|
import { Panel } from "./components/Panel/Panel.mjs";
|
|
20
22
|
import "./components/Panel/index.mjs";
|
|
23
|
+
import { Reveal } from "./components/Reveal/Reveal.mjs";
|
|
24
|
+
import "./components/Reveal/index.mjs";
|
|
21
25
|
import { ThemeToggle } from "./components/ThemeToggle/ThemeToggle.mjs";
|
|
22
26
|
import "./components/ThemeToggle/index.mjs";
|
|
23
|
-
export { Badge, Button, ButtonLink, Eyebrow, IconButton, Link, Logo, Panel, ThemeToggle, badgeClasses, buttonClasses, iconButtonClasses, linkClasses, panelClasses };
|
|
27
|
+
export { Badge, Button, ButtonLink, Eyebrow, IconButton, Link, Logo, Logo3D, Panel, Reveal, ThemeToggle, badgeClasses, buttonClasses, iconButtonClasses, linkClasses, panelClasses };
|
package/dist/scenography.css
CHANGED
|
@@ -215,6 +215,7 @@
|
|
|
215
215
|
|
|
216
216
|
.select {
|
|
217
217
|
width: 100%;
|
|
218
|
+
cursor: pointer;
|
|
218
219
|
padding: 0.375rem 0.625rem;
|
|
219
220
|
border: 1px solid color-mix(in oklab, var(--color-base-content) 15%, transparent);
|
|
220
221
|
background-color: var(--color-base-100);
|
|
@@ -319,6 +320,7 @@
|
|
|
319
320
|
}
|
|
320
321
|
|
|
321
322
|
.link {
|
|
323
|
+
cursor: pointer;
|
|
322
324
|
text-decoration-line: underline;
|
|
323
325
|
}
|
|
324
326
|
|
|
@@ -329,4 +331,81 @@
|
|
|
329
331
|
.link-hover:hover {
|
|
330
332
|
text-decoration-line: underline;
|
|
331
333
|
}
|
|
334
|
+
|
|
335
|
+
/*
|
|
336
|
+
* The artwork panel ships its own white-on-black controls. Restyle its
|
|
337
|
+
* navigation and close buttons with the design system's square chips.
|
|
338
|
+
*/
|
|
339
|
+
.sg-artwork-panel .sg-artwork-panel__navbtn {
|
|
340
|
+
flex: 1;
|
|
341
|
+
display: inline-flex;
|
|
342
|
+
align-items: center;
|
|
343
|
+
justify-content: center;
|
|
344
|
+
gap: 0.375rem;
|
|
345
|
+
padding: 0.5rem 0.75rem;
|
|
346
|
+
border: 1px solid
|
|
347
|
+
color-mix(in oklab, var(--color-base-content) 12%, transparent);
|
|
348
|
+
border-radius: 0;
|
|
349
|
+
background-color: color-mix(
|
|
350
|
+
in oklab,
|
|
351
|
+
var(--color-base-100) 80%,
|
|
352
|
+
transparent
|
|
353
|
+
);
|
|
354
|
+
color: var(--color-base-content);
|
|
355
|
+
font-family: var(--font-sans);
|
|
356
|
+
font-size: 0.875rem;
|
|
357
|
+
font-weight: 500;
|
|
358
|
+
cursor: pointer;
|
|
359
|
+
backdrop-filter: blur(8px);
|
|
360
|
+
transition:
|
|
361
|
+
background-color 150ms ease,
|
|
362
|
+
color 150ms ease,
|
|
363
|
+
border-color 150ms ease;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.sg-artwork-panel .sg-artwork-panel__navbtn:hover {
|
|
367
|
+
background-color: var(--color-base-200);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
.sg-artwork-panel .sg-artwork-panel__navbtn:focus-visible {
|
|
371
|
+
outline: 2px solid var(--color-accent);
|
|
372
|
+
outline-offset: 2px;
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
.sg-artwork-panel .sg-artwork-panel__close {
|
|
376
|
+
display: inline-flex;
|
|
377
|
+
align-items: center;
|
|
378
|
+
justify-content: center;
|
|
379
|
+
width: 2rem;
|
|
380
|
+
height: 2rem;
|
|
381
|
+
padding: 0;
|
|
382
|
+
border: 1px solid
|
|
383
|
+
color-mix(in oklab, var(--color-base-content) 12%, transparent);
|
|
384
|
+
border-radius: 0;
|
|
385
|
+
background-color: color-mix(
|
|
386
|
+
in oklab,
|
|
387
|
+
var(--color-base-100) 80%,
|
|
388
|
+
transparent
|
|
389
|
+
);
|
|
390
|
+
color: var(--color-base-content);
|
|
391
|
+
font-family: var(--font-sans);
|
|
392
|
+
font-size: 1rem;
|
|
393
|
+
line-height: 1;
|
|
394
|
+
opacity: 1;
|
|
395
|
+
cursor: pointer;
|
|
396
|
+
backdrop-filter: blur(8px);
|
|
397
|
+
transition:
|
|
398
|
+
background-color 150ms ease,
|
|
399
|
+
color 150ms ease,
|
|
400
|
+
border-color 150ms ease;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
.sg-artwork-panel .sg-artwork-panel__close:hover {
|
|
404
|
+
background-color: var(--color-base-200);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
.sg-artwork-panel .sg-artwork-panel__close:focus-visible {
|
|
408
|
+
outline: 2px solid var(--color-accent);
|
|
409
|
+
outline-offset: 2px;
|
|
410
|
+
}
|
|
332
411
|
}
|
package/dist/styles.css
CHANGED
|
@@ -52,6 +52,26 @@
|
|
|
52
52
|
color: var(--color-accent-content);
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
/* Every interactive control gets the same pointer, even when an app uses a
|
|
56
|
+
plain anchor or a native input instead of a package component. */
|
|
57
|
+
a,
|
|
58
|
+
button,
|
|
59
|
+
[role="button"],
|
|
60
|
+
summary,
|
|
61
|
+
label[for],
|
|
62
|
+
select,
|
|
63
|
+
input[type="checkbox"],
|
|
64
|
+
input[type="radio"],
|
|
65
|
+
input[type="range"] {
|
|
66
|
+
cursor: pointer;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
button:disabled,
|
|
70
|
+
input:disabled,
|
|
71
|
+
[aria-disabled="true"] {
|
|
72
|
+
cursor: not-allowed;
|
|
73
|
+
}
|
|
74
|
+
|
|
55
75
|
/* The acid green reads on black but disappears on paper, so the letter form
|
|
56
76
|
uses a deeper green in light mode and the pure accent in dark mode. */
|
|
57
77
|
.text-accent-ink {
|
|
@@ -74,3 +94,75 @@
|
|
|
74
94
|
[data-theme="yo-yo-dark"] .logo-inverse {
|
|
75
95
|
display: block;
|
|
76
96
|
}
|
|
97
|
+
|
|
98
|
+
/* CSS-only 3D mark: the SVG is stacked on Z to give it thickness, and the
|
|
99
|
+
whole stack tilts towards the pointer. */
|
|
100
|
+
.logo3d {
|
|
101
|
+
perspective: 900px;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.logo3d-inner {
|
|
105
|
+
position: relative;
|
|
106
|
+
width: 100%;
|
|
107
|
+
height: 100%;
|
|
108
|
+
transform-style: preserve-3d;
|
|
109
|
+
transform: rotateX(var(--logo-rx, -5deg)) rotateY(var(--logo-ry, 7deg));
|
|
110
|
+
transition: transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
|
|
111
|
+
will-change: transform;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.logo3d-layer {
|
|
115
|
+
position: absolute;
|
|
116
|
+
inset: 0;
|
|
117
|
+
-webkit-mask-image: var(--logo-src, url("/logo.svg"));
|
|
118
|
+
mask-image: var(--logo-src, url("/logo.svg"));
|
|
119
|
+
-webkit-mask-position: center;
|
|
120
|
+
mask-position: center;
|
|
121
|
+
-webkit-mask-size: contain;
|
|
122
|
+
mask-size: contain;
|
|
123
|
+
-webkit-mask-repeat: no-repeat;
|
|
124
|
+
mask-repeat: no-repeat;
|
|
125
|
+
mask-mode: alpha;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.logo3d-front {
|
|
129
|
+
background: #111111;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
[data-theme="yo-yo-dark"] .logo3d-front {
|
|
133
|
+
background: #f2f0ea;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.logo3d-depth {
|
|
137
|
+
background: var(--color-accent);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
@media (prefers-reduced-motion: reduce) {
|
|
141
|
+
.logo3d-inner {
|
|
142
|
+
transition: none;
|
|
143
|
+
will-change: auto;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* Content rises into place as it enters the viewport. The root attribute is
|
|
148
|
+
set before paint so nothing flashes; without JS the content stays visible. */
|
|
149
|
+
html[data-reveal="on"] .reveal {
|
|
150
|
+
opacity: 0;
|
|
151
|
+
transform: translateY(1.25rem);
|
|
152
|
+
transition:
|
|
153
|
+
opacity 700ms cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay, 0ms),
|
|
154
|
+
transform 700ms cubic-bezier(0.22, 1, 0.36, 1) var(--reveal-delay, 0ms);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
html[data-reveal="on"] .reveal[data-shown] {
|
|
158
|
+
opacity: 1;
|
|
159
|
+
transform: translateY(0);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
@media (prefers-reduced-motion: reduce) {
|
|
163
|
+
html[data-reveal="on"] .reveal {
|
|
164
|
+
opacity: 1;
|
|
165
|
+
transform: none;
|
|
166
|
+
transition: none;
|
|
167
|
+
}
|
|
168
|
+
}
|