nocturna-ui 0.0.1 → 0.0.3
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 +70 -64
- package/dist/components/Accordion.d.ts +12 -0
- package/dist/components/Badge.d.ts +9 -0
- package/dist/components/Button.d.ts +4 -3
- package/dist/components/Card.d.ts +3 -4
- package/dist/components/Checkbox.d.ts +7 -0
- package/dist/components/Input.d.ts +10 -0
- package/dist/components/Modal.d.ts +11 -0
- package/dist/components/Select.d.ts +16 -0
- package/dist/components/Separator.d.ts +7 -0
- package/dist/components/Tabs.d.ts +12 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.es.js +3429 -24
- package/dist/index.umd.js +1 -1
- package/dist/style.css +1 -1
- package/dist/utils/cn.d.ts +7 -0
- package/package.json +16 -14
package/README.md
CHANGED
|
@@ -1,64 +1,70 @@
|
|
|
1
|
-
# 🦇 Nocturna UI
|
|
2
|
-
|
|
3
|
-
> **Primitivos góticos e brutalistas para a web que não teme a escuridão.**
|
|
4
|
-
|
|
5
|
-
A **Nocturna UI** é uma biblioteca de componentes React focada em interfaces de alto contraste, tipografia serifada e estética minimalista/gótica.
|
|
6
|
-
|
|
7
|
-
[Showcase (DEMO)](https://gothd.github.io/nocturna-ui/) | [NPM](https://www.npmjs.com/) | [UNPKG](https://unpkg.com/nocturna-ui/)
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
<script src="
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
1
|
+
# 🦇 Nocturna UI
|
|
2
|
+
|
|
3
|
+
> **Primitivos góticos e brutalistas forjados para a web que não teme a escuridão.**
|
|
4
|
+
|
|
5
|
+
A **Nocturna UI** é uma biblioteca de componentes React focada em interfaces de alto contraste, tipografia serifada e estética minimalista/gótica. Na v0.0.2, expandimos nosso arsenal com componentes complexos e foco total em acessibilidade.
|
|
6
|
+
|
|
7
|
+
[Showcase (DEMO)](https://gothd.github.io/nocturna-ui/) | [NPM](https://www.npmjs.com/package/nocturna-ui) | [UNPKG](https://unpkg.com/nocturna-ui/)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 🕸️ Componentes Disponíveis
|
|
12
|
+
|
|
13
|
+
| Primitivo | Descrição |
|
|
14
|
+
| :-------------------- | :------------------------------------------------------------ |
|
|
15
|
+
| **VoidButton** | Botão brutalista com suporte a tamanhos sm/md/lg. |
|
|
16
|
+
| **CryptModal** | Modal com portal e trava de foco para acessibilidade. |
|
|
17
|
+
| **RitualSelect** | Select customizado com suporte total a navegação via teclado. |
|
|
18
|
+
| **GrimoireAccordion** | Acordeão com animação de altura dinâmica via Framer Motion. |
|
|
19
|
+
| **SoulTabs** | Sistema de abas para organização de conteúdos densos. |
|
|
20
|
+
| **VeinInput** | Input de texto com estados de erro e animação de pulso. |
|
|
21
|
+
| **HexCheckbox** | Checkbox temático com animação de escala. |
|
|
22
|
+
| **AbyssSeparator** | Divisor de seção com suporte a labels e sigilos. |
|
|
23
|
+
| **SigilBadge** | Emblemas para status e tags em versões Solid ou Outline. |
|
|
24
|
+
| **NocturnaCard** | Container clássico com sombras rígidas (hard shadows). |
|
|
25
|
+
|
|
26
|
+
## 🌑 Requisitos de Instalação (Peer Dependencies)
|
|
27
|
+
|
|
28
|
+
Para evitar conflitos de instâncias do React (como o erro de `useState` nulo), a **Nocturna UI** utiliza `peerDependencies`. Certifique-se de que seu projeto possua:
|
|
29
|
+
|
|
30
|
+
- **React** (^18.0.0)
|
|
31
|
+
- **React-DOM** (^18.0.0)
|
|
32
|
+
- **Framer Motion** (^11.0.0)
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
npm install react react-dom framer-motion
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 📜 Uso via CDN (UMD)
|
|
39
|
+
|
|
40
|
+
Para utilizar a biblioteca diretamente no navegador, a ordem dos scripts é fundamental para que as globais sejam injetadas corretamente:
|
|
41
|
+
|
|
42
|
+
```html
|
|
43
|
+
<script src="https://unpkg.com/react@18/umd/react.production.min.js"></script>
|
|
44
|
+
<script src="https://unpkg.com/react-dom@18/umd/react-dom.production.min.js"></script>
|
|
45
|
+
|
|
46
|
+
<script src="https://unpkg.com/framer-motion@11/dist/framer-motion.js"></script>
|
|
47
|
+
|
|
48
|
+
<script src="https://unpkg.com/nocturna-ui@0.0.3/dist/index.umd.js"></script>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 🩸 Instalação e Uso
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npm install nocturna-ui
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
import "nocturna-ui/dist/style.css";
|
|
59
|
+
import { VoidButton, CryptModal } from "nocturna-ui";
|
|
60
|
+
|
|
61
|
+
export const Ritual = () => (
|
|
62
|
+
<VoidButton variant="blood" size="lg">
|
|
63
|
+
Iniciar Invocação
|
|
64
|
+
</VoidButton>
|
|
65
|
+
);
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
Desenvolvido com 🖤 por **gothd**. ☕️
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface GrimoireAccordionItem {
|
|
3
|
+
id: string;
|
|
4
|
+
title: string;
|
|
5
|
+
content: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
interface GrimoireAccordionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
8
|
+
items: GrimoireAccordionItem[];
|
|
9
|
+
variant?: "void" | "blood";
|
|
10
|
+
}
|
|
11
|
+
export declare const GrimoireAccordion: ({ items, variant, className, ...props }: GrimoireAccordionProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface SigilBadgeProps extends React.HTMLAttributes<HTMLSpanElement> {
|
|
3
|
+
children: React.ReactNode;
|
|
4
|
+
variant?: "void" | "blood";
|
|
5
|
+
size?: "sm" | "md";
|
|
6
|
+
styleType?: "outline" | "solid";
|
|
7
|
+
}
|
|
8
|
+
export declare const SigilBadge: ({ children, variant, size, styleType, className, ...props }: SigilBadgeProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
interface
|
|
3
|
-
variant?: "
|
|
2
|
+
interface VoidButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
3
|
+
variant?: "void" | "blood";
|
|
4
|
+
size?: "sm" | "md" | "lg";
|
|
4
5
|
}
|
|
5
|
-
export declare const VoidButton: ({ variant,
|
|
6
|
+
export declare const VoidButton: ({ variant, size, className, ...props }: VoidButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
7
|
export {};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
interface
|
|
2
|
+
interface NocturnaCardProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
variant?: "void" | "blood";
|
|
3
4
|
title: string;
|
|
4
5
|
description?: string;
|
|
5
|
-
children?: React.ReactNode;
|
|
6
|
-
variant?: "void" | "blood";
|
|
7
6
|
}
|
|
8
|
-
export declare const NocturnaCard: ({ title, description,
|
|
7
|
+
export declare const NocturnaCard: ({ title, description, variant, className, children, ...props }: NocturnaCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
8
|
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface HexCheckboxProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> {
|
|
3
|
+
label?: string;
|
|
4
|
+
variant?: "void" | "blood";
|
|
5
|
+
}
|
|
6
|
+
export declare const HexCheckbox: ({ label, variant, checked, className, ...props }: HexCheckboxProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface VeinInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size"> {
|
|
3
|
+
variant?: "void" | "blood";
|
|
4
|
+
size?: "sm" | "md";
|
|
5
|
+
label?: string;
|
|
6
|
+
error?: string;
|
|
7
|
+
inputSize?: React.InputHTMLAttributes<HTMLInputElement>["size"];
|
|
8
|
+
}
|
|
9
|
+
export declare const VeinInput: ({ variant, size, label, error, className, inputSize, ...props }: VeinInputProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface CryptModalProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
onClose: () => void;
|
|
5
|
+
title: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
variant?: "void" | "blood";
|
|
9
|
+
}
|
|
10
|
+
export declare const CryptModal: ({ isOpen, onClose, title, description, children, variant, className, ...props }: CryptModalProps) => React.ReactPortal | null;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface RitualSelectOption {
|
|
3
|
+
value: string;
|
|
4
|
+
label: string;
|
|
5
|
+
}
|
|
6
|
+
interface RitualSelectProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onChange"> {
|
|
7
|
+
options: RitualSelectOption[];
|
|
8
|
+
value?: string;
|
|
9
|
+
onChange?: (value: string) => void;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
label?: string;
|
|
12
|
+
variant?: "void" | "blood";
|
|
13
|
+
size?: "sm" | "md" | "lg";
|
|
14
|
+
}
|
|
15
|
+
export declare const RitualSelect: ({ options, value, onChange, placeholder, label, variant, size, className, }: RitualSelectProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface AbyssSeparatorProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
variant?: "void" | "blood";
|
|
4
|
+
label?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const AbyssSeparator: ({ variant, label, className, ...props }: AbyssSeparatorProps) => import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
interface Tab {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
content: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
interface SoulTabsProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
8
|
+
tabs: Tab[];
|
|
9
|
+
variant?: "void" | "blood";
|
|
10
|
+
}
|
|
11
|
+
export declare const SoulTabs: ({ tabs, variant, className, ...props }: SoulTabsProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export {};
|
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),d=({variant:o="ghost",children:t,...a})=>{const r=o==="ghost"?"border-2 border-white text-white hover:bg-white hover:text-black":"border-2 border-red-900 text-red-600 hover:bg-red-900 hover:text-white";return e.createElement("button",{className:`px-6 py-2 transition-all duration-300 font-serif uppercase tracking-widest ${r}`,...a},t)},i=({title:o,description:t,children:a,variant:r="void"})=>{const s=r==="void"?"border-white":"border-red-900",n=r==="void"?"hover:shadow-[8px_8px_0px_0px_rgba(255,255,255,0.1)]":"hover:shadow-[8px_8px_0px_0px_rgba(136,8,8,0.3)]";return e.createElement("div",{className:`bg-nocturna-void border-2 ${s} p-6 transition-all duration-300 ${n} max-w-sm`},e.createElement("h3",{className:"font-serif text-2xl uppercase tracking-tighter text-white mb-2"},o),t&&e.createElement("p",{className:"text-zinc-500 text-sm mb-4 font-sans leading-relaxed"},t),e.createElement("div",{className:"mt-4"},a))};exports.NocturnaCard=i;exports.VoidButton=d;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react"),je=require("framer-motion"),Oe=require("react-dom");const $e=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ve=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,r,o)=>o?o.toUpperCase():r.toLowerCase()),ge=e=>{const t=Ve(e);return t.charAt(0).toUpperCase()+t.slice(1)},ve=(...e)=>e.filter((t,r,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===r).join(" ").trim(),De=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var Fe={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const We=i.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:r=2,absoluteStrokeWidth:o,className:n="",children:a,iconNode:s,...m},d)=>i.createElement("svg",{ref:d,...Fe,width:t,height:t,stroke:e,strokeWidth:o?Number(r)*24/Number(t):r,className:ve("lucide",n),...!a&&!De(m)&&{"aria-hidden":"true"},...m},[...s.map(([f,x])=>i.createElement(f,x)),...Array.isArray(a)?a:[a]]));const ae=(e,t)=>{const r=i.forwardRef(({className:o,...n},a)=>i.createElement(We,{ref:a,iconNode:t,className:ve(`lucide-${$e(ge(e))}`,`lucide-${e}`,o),...n}));return r.displayName=ge(e),r};const Be=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Ue=ae("check",Be);const qe=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Ee=ae("chevron-down",qe);const He=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Ke=ae("x",He);function _e(e){var t,r,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(t=0;t<n;t++)e[t]&&(r=_e(e[t]))&&(o&&(o+=" "),o+=r)}else for(r in e)e[r]&&(o&&(o+=" "),o+=r);return o}function Ye(){for(var e,t,r=0,o="",n=arguments.length;r<n;r++)(e=arguments[r])&&(t=_e(e))&&(o&&(o+=" "),o+=t);return o}const Xe=(e,t)=>{const r=new Array(e.length+t.length);for(let o=0;o<e.length;o++)r[o]=e[o];for(let o=0;o<t.length;o++)r[e.length+o]=t[o];return r},Ze=(e,t)=>({classGroupId:e,validator:t}),Ce=(e=new Map,t=null,r)=>({nextPart:e,validators:t,classGroupId:r}),Q="-",he=[],Je="arbitrary..",Qe=e=>{const t=tt(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:s=>{if(s.startsWith("[")&&s.endsWith("]"))return et(s);const m=s.split(Q),d=m[0]===""&&m.length>1?1:0;return ze(m,d,t)},getConflictingClassGroupIds:(s,m)=>{if(m){const d=o[s],f=r[s];return d?f?Xe(f,d):d:f||he}return r[s]||he}}},ze=(e,t,r)=>{if(e.length-t===0)return r.classGroupId;const n=e[t],a=r.nextPart.get(n);if(a){const f=ze(e,t+1,a);if(f)return f}const s=r.validators;if(s===null)return;const m=t===0?e.join(Q):e.slice(t).join(Q),d=s.length;for(let f=0;f<d;f++){const x=s[f];if(x.validator(m))return x.classGroupId}},et=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),r=t.indexOf(":"),o=t.slice(0,r);return o?Je+o:void 0})(),tt=e=>{const{theme:t,classGroups:r}=e;return rt(r,t)},rt=(e,t)=>{const r=Ce();for(const o in e){const n=e[o];ie(n,r,o,t)}return r},ie=(e,t,r,o)=>{const n=e.length;for(let a=0;a<n;a++){const s=e[a];ot(s,t,r,o)}},ot=(e,t,r,o)=>{if(typeof e=="string"){st(e,t,r);return}if(typeof e=="function"){nt(e,t,r,o);return}at(e,t,r,o)},st=(e,t,r)=>{const o=e===""?t:Ne(t,e);o.classGroupId=r},nt=(e,t,r,o)=>{if(it(e)){ie(e(o),t,r,o);return}t.validators===null&&(t.validators=[]),t.validators.push(Ze(r,e))},at=(e,t,r,o)=>{const n=Object.entries(e),a=n.length;for(let s=0;s<a;s++){const[m,d]=n[s];ie(d,Ne(t,m),r,o)}},Ne=(e,t)=>{let r=e;const o=t.split(Q),n=o.length;for(let a=0;a<n;a++){const s=o[a];let m=r.nextPart.get(s);m||(m=Ce(),r.nextPart.set(s,m)),r=m}return r},it=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,lt=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=Object.create(null),o=Object.create(null);const n=(a,s)=>{r[a]=s,t++,t>e&&(t=0,o=r,r=Object.create(null))};return{get(a){let s=r[a];if(s!==void 0)return s;if((s=o[a])!==void 0)return n(a,s),s},set(a,s){a in r?r[a]=s:n(a,s)}}},ne="!",xe=":",ct=[],we=(e,t,r,o,n)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:o,isExternal:n}),dt=e=>{const{prefix:t,experimentalParseClassName:r}=e;let o=n=>{const a=[];let s=0,m=0,d=0,f;const x=n.length;for(let p=0;p<x;p++){const h=n[p];if(s===0&&m===0){if(h===xe){a.push(n.slice(d,p)),d=p+1;continue}if(h==="/"){f=p;continue}}h==="["?s++:h==="]"?s--:h==="("?m++:h===")"&&m--}const w=a.length===0?n:n.slice(d);let E=w,_=!1;w.endsWith(ne)?(E=w.slice(0,-1),_=!0):w.startsWith(ne)&&(E=w.slice(1),_=!0);const z=f&&f>d?f-d:void 0;return we(a,_,E,z)};if(t){const n=t+xe,a=o;o=s=>s.startsWith(n)?a(s.slice(n.length)):we(ct,!1,s,void 0,!0)}if(r){const n=o;o=a=>r({className:a,parseClassName:n})}return o},mt=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((r,o)=>{t.set(r,1e6+o)}),r=>{const o=[];let n=[];for(let a=0;a<r.length;a++){const s=r[a],m=s[0]==="[",d=t.has(s);m||d?(n.length>0&&(n.sort(),o.push(...n),n=[]),o.push(s)):n.push(s)}return n.length>0&&(n.sort(),o.push(...n)),o}},ut=e=>({cache:lt(e.cacheSize),parseClassName:dt(e),sortModifiers:mt(e),...Qe(e)}),pt=/\s+/,ft=(e,t)=>{const{parseClassName:r,getClassGroupId:o,getConflictingClassGroupIds:n,sortModifiers:a}=t,s=[],m=e.trim().split(pt);let d="";for(let f=m.length-1;f>=0;f-=1){const x=m[f],{isExternal:w,modifiers:E,hasImportantModifier:_,baseClassName:z,maybePostfixModifierPosition:p}=r(x);if(w){d=x+(d.length>0?" "+d:d);continue}let h=!!p,A=o(h?z.substring(0,p):z);if(!A){if(!h){d=x+(d.length>0?" "+d:d);continue}if(A=o(z),!A){d=x+(d.length>0?" "+d:d);continue}h=!1}const T=E.length===0?"":E.length===1?E[0]:a(E).join(":"),W=_?T+ne:T,j=W+A;if(s.indexOf(j)>-1)continue;s.push(j);const O=n(A,h);for(let P=0;P<O.length;++P){const B=O[P];s.push(W+B)}d=x+(d.length>0?" "+d:d)}return d},bt=(...e)=>{let t=0,r,o,n="";for(;t<e.length;)(r=e[t++])&&(o=Ae(r))&&(n&&(n+=" "),n+=o);return n},Ae=e=>{if(typeof e=="string")return e;let t,r="";for(let o=0;o<e.length;o++)e[o]&&(t=Ae(e[o]))&&(r&&(r+=" "),r+=t);return r},gt=(e,...t)=>{let r,o,n,a;const s=d=>{const f=t.reduce((x,w)=>w(x),e());return r=ut(f),o=r.cache.get,n=r.cache.set,a=m,m(d)},m=d=>{const f=o(d);if(f)return f;const x=ft(d,r);return n(d,x),x};return a=s,(...d)=>a(bt(...d))},ht=[],y=e=>{const t=r=>r[e]||ht;return t.isThemeGetter=!0,t},Se=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Re=/^\((?:(\w[\w-]*):)?(.+)\)$/i,xt=/^\d+\/\d+$/,wt=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,kt=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,yt=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,vt=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Et=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,V=e=>xt.test(e),g=e=>!!e&&!Number.isNaN(Number(e)),M=e=>!!e&&Number.isInteger(Number(e)),oe=e=>e.endsWith("%")&&g(e.slice(0,-1)),I=e=>wt.test(e),_t=()=>!0,Ct=e=>kt.test(e)&&!yt.test(e),Ie=()=>!1,zt=e=>vt.test(e),Nt=e=>Et.test(e),At=e=>!l(e)&&!c(e),St=e=>D(e,Pe,Ie),l=e=>Se.test(e),G=e=>D(e,Le,Ct),se=e=>D(e,Pt,g),ke=e=>D(e,Me,Ie),Rt=e=>D(e,Te,Nt),Z=e=>D(e,Ge,zt),c=e=>Re.test(e),U=e=>F(e,Le),It=e=>F(e,Lt),ye=e=>F(e,Me),Mt=e=>F(e,Pe),Tt=e=>F(e,Te),J=e=>F(e,Ge,!0),D=(e,t,r)=>{const o=Se.exec(e);return o?o[1]?t(o[1]):r(o[2]):!1},F=(e,t,r=!1)=>{const o=Re.exec(e);return o?o[1]?t(o[1]):r:!1},Me=e=>e==="position"||e==="percentage",Te=e=>e==="image"||e==="url",Pe=e=>e==="length"||e==="size"||e==="bg-size",Le=e=>e==="length",Pt=e=>e==="number",Lt=e=>e==="family-name",Ge=e=>e==="shadow",Gt=()=>{const e=y("color"),t=y("font"),r=y("text"),o=y("font-weight"),n=y("tracking"),a=y("leading"),s=y("breakpoint"),m=y("container"),d=y("spacing"),f=y("radius"),x=y("shadow"),w=y("inset-shadow"),E=y("text-shadow"),_=y("drop-shadow"),z=y("blur"),p=y("perspective"),h=y("aspect"),A=y("ease"),T=y("animate"),W=()=>["auto","avoid","all","avoid-page","page","left","right","column"],j=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],O=()=>[...j(),c,l],P=()=>["auto","hidden","clip","visible","scroll"],B=()=>["auto","contain","none"],b=()=>[c,l,d],S=()=>[V,"full","auto",...b()],le=()=>[M,"none","subgrid",c,l],ce=()=>["auto",{span:["full",M,c,l]},M,c,l],q=()=>[M,"auto",c,l],de=()=>["auto","min","max","fr",c,l],ee=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],$=()=>["start","end","center","stretch","center-safe","end-safe"],R=()=>["auto",...b()],L=()=>[V,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...b()],u=()=>[e,c,l],me=()=>[...j(),ye,ke,{position:[c,l]}],ue=()=>["no-repeat",{repeat:["","x","y","space","round"]}],pe=()=>["auto","cover","contain",Mt,St,{size:[c,l]}],te=()=>[oe,U,G],C=()=>["","none","full",f,c,l],N=()=>["",g,U,G],H=()=>["solid","dashed","dotted","double"],fe=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],v=()=>[g,oe,ye,ke],be=()=>["","none",z,c,l],K=()=>["none",g,c,l],Y=()=>["none",g,c,l],re=()=>[g,c,l],X=()=>[V,"full",...b()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[I],breakpoint:[I],color:[_t],container:[I],"drop-shadow":[I],ease:["in","out","in-out"],font:[At],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[I],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[I],shadow:[I],spacing:["px",g],text:[I],"text-shadow":[I],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",V,l,c,h]}],container:["container"],columns:[{columns:[g,l,c,m]}],"break-after":[{"break-after":W()}],"break-before":[{"break-before":W()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:O()}],overflow:[{overflow:P()}],"overflow-x":[{"overflow-x":P()}],"overflow-y":[{"overflow-y":P()}],overscroll:[{overscroll:B()}],"overscroll-x":[{"overscroll-x":B()}],"overscroll-y":[{"overscroll-y":B()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:S()}],"inset-x":[{"inset-x":S()}],"inset-y":[{"inset-y":S()}],start:[{start:S()}],end:[{end:S()}],top:[{top:S()}],right:[{right:S()}],bottom:[{bottom:S()}],left:[{left:S()}],visibility:["visible","invisible","collapse"],z:[{z:[M,"auto",c,l]}],basis:[{basis:[V,"full","auto",m,...b()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[g,V,"auto","initial","none",l]}],grow:[{grow:["",g,c,l]}],shrink:[{shrink:["",g,c,l]}],order:[{order:[M,"first","last","none",c,l]}],"grid-cols":[{"grid-cols":le()}],"col-start-end":[{col:ce()}],"col-start":[{"col-start":q()}],"col-end":[{"col-end":q()}],"grid-rows":[{"grid-rows":le()}],"row-start-end":[{row:ce()}],"row-start":[{"row-start":q()}],"row-end":[{"row-end":q()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":de()}],"auto-rows":[{"auto-rows":de()}],gap:[{gap:b()}],"gap-x":[{"gap-x":b()}],"gap-y":[{"gap-y":b()}],"justify-content":[{justify:[...ee(),"normal"]}],"justify-items":[{"justify-items":[...$(),"normal"]}],"justify-self":[{"justify-self":["auto",...$()]}],"align-content":[{content:["normal",...ee()]}],"align-items":[{items:[...$(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...$(),{baseline:["","last"]}]}],"place-content":[{"place-content":ee()}],"place-items":[{"place-items":[...$(),"baseline"]}],"place-self":[{"place-self":["auto",...$()]}],p:[{p:b()}],px:[{px:b()}],py:[{py:b()}],ps:[{ps:b()}],pe:[{pe:b()}],pt:[{pt:b()}],pr:[{pr:b()}],pb:[{pb:b()}],pl:[{pl:b()}],m:[{m:R()}],mx:[{mx:R()}],my:[{my:R()}],ms:[{ms:R()}],me:[{me:R()}],mt:[{mt:R()}],mr:[{mr:R()}],mb:[{mb:R()}],ml:[{ml:R()}],"space-x":[{"space-x":b()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":b()}],"space-y-reverse":["space-y-reverse"],size:[{size:L()}],w:[{w:[m,"screen",...L()]}],"min-w":[{"min-w":[m,"screen","none",...L()]}],"max-w":[{"max-w":[m,"screen","none","prose",{screen:[s]},...L()]}],h:[{h:["screen","lh",...L()]}],"min-h":[{"min-h":["screen","lh","none",...L()]}],"max-h":[{"max-h":["screen","lh",...L()]}],"font-size":[{text:["base",r,U,G]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,c,se]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",oe,l]}],"font-family":[{font:[It,l,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,c,l]}],"line-clamp":[{"line-clamp":[g,"none",c,se]}],leading:[{leading:[a,...b()]}],"list-image":[{"list-image":["none",c,l]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",c,l]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:u()}],"text-color":[{text:u()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...H(),"wavy"]}],"text-decoration-thickness":[{decoration:[g,"from-font","auto",c,G]}],"text-decoration-color":[{decoration:u()}],"underline-offset":[{"underline-offset":[g,"auto",c,l]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:b()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",c,l]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",c,l]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:me()}],"bg-repeat":[{bg:ue()}],"bg-size":[{bg:pe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},M,c,l],radial:["",c,l],conic:[M,c,l]},Tt,Rt]}],"bg-color":[{bg:u()}],"gradient-from-pos":[{from:te()}],"gradient-via-pos":[{via:te()}],"gradient-to-pos":[{to:te()}],"gradient-from":[{from:u()}],"gradient-via":[{via:u()}],"gradient-to":[{to:u()}],rounded:[{rounded:C()}],"rounded-s":[{"rounded-s":C()}],"rounded-e":[{"rounded-e":C()}],"rounded-t":[{"rounded-t":C()}],"rounded-r":[{"rounded-r":C()}],"rounded-b":[{"rounded-b":C()}],"rounded-l":[{"rounded-l":C()}],"rounded-ss":[{"rounded-ss":C()}],"rounded-se":[{"rounded-se":C()}],"rounded-ee":[{"rounded-ee":C()}],"rounded-es":[{"rounded-es":C()}],"rounded-tl":[{"rounded-tl":C()}],"rounded-tr":[{"rounded-tr":C()}],"rounded-br":[{"rounded-br":C()}],"rounded-bl":[{"rounded-bl":C()}],"border-w":[{border:N()}],"border-w-x":[{"border-x":N()}],"border-w-y":[{"border-y":N()}],"border-w-s":[{"border-s":N()}],"border-w-e":[{"border-e":N()}],"border-w-t":[{"border-t":N()}],"border-w-r":[{"border-r":N()}],"border-w-b":[{"border-b":N()}],"border-w-l":[{"border-l":N()}],"divide-x":[{"divide-x":N()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":N()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...H(),"hidden","none"]}],"divide-style":[{divide:[...H(),"hidden","none"]}],"border-color":[{border:u()}],"border-color-x":[{"border-x":u()}],"border-color-y":[{"border-y":u()}],"border-color-s":[{"border-s":u()}],"border-color-e":[{"border-e":u()}],"border-color-t":[{"border-t":u()}],"border-color-r":[{"border-r":u()}],"border-color-b":[{"border-b":u()}],"border-color-l":[{"border-l":u()}],"divide-color":[{divide:u()}],"outline-style":[{outline:[...H(),"none","hidden"]}],"outline-offset":[{"outline-offset":[g,c,l]}],"outline-w":[{outline:["",g,U,G]}],"outline-color":[{outline:u()}],shadow:[{shadow:["","none",x,J,Z]}],"shadow-color":[{shadow:u()}],"inset-shadow":[{"inset-shadow":["none",w,J,Z]}],"inset-shadow-color":[{"inset-shadow":u()}],"ring-w":[{ring:N()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:u()}],"ring-offset-w":[{"ring-offset":[g,G]}],"ring-offset-color":[{"ring-offset":u()}],"inset-ring-w":[{"inset-ring":N()}],"inset-ring-color":[{"inset-ring":u()}],"text-shadow":[{"text-shadow":["none",E,J,Z]}],"text-shadow-color":[{"text-shadow":u()}],opacity:[{opacity:[g,c,l]}],"mix-blend":[{"mix-blend":[...fe(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":fe()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[g]}],"mask-image-linear-from-pos":[{"mask-linear-from":v()}],"mask-image-linear-to-pos":[{"mask-linear-to":v()}],"mask-image-linear-from-color":[{"mask-linear-from":u()}],"mask-image-linear-to-color":[{"mask-linear-to":u()}],"mask-image-t-from-pos":[{"mask-t-from":v()}],"mask-image-t-to-pos":[{"mask-t-to":v()}],"mask-image-t-from-color":[{"mask-t-from":u()}],"mask-image-t-to-color":[{"mask-t-to":u()}],"mask-image-r-from-pos":[{"mask-r-from":v()}],"mask-image-r-to-pos":[{"mask-r-to":v()}],"mask-image-r-from-color":[{"mask-r-from":u()}],"mask-image-r-to-color":[{"mask-r-to":u()}],"mask-image-b-from-pos":[{"mask-b-from":v()}],"mask-image-b-to-pos":[{"mask-b-to":v()}],"mask-image-b-from-color":[{"mask-b-from":u()}],"mask-image-b-to-color":[{"mask-b-to":u()}],"mask-image-l-from-pos":[{"mask-l-from":v()}],"mask-image-l-to-pos":[{"mask-l-to":v()}],"mask-image-l-from-color":[{"mask-l-from":u()}],"mask-image-l-to-color":[{"mask-l-to":u()}],"mask-image-x-from-pos":[{"mask-x-from":v()}],"mask-image-x-to-pos":[{"mask-x-to":v()}],"mask-image-x-from-color":[{"mask-x-from":u()}],"mask-image-x-to-color":[{"mask-x-to":u()}],"mask-image-y-from-pos":[{"mask-y-from":v()}],"mask-image-y-to-pos":[{"mask-y-to":v()}],"mask-image-y-from-color":[{"mask-y-from":u()}],"mask-image-y-to-color":[{"mask-y-to":u()}],"mask-image-radial":[{"mask-radial":[c,l]}],"mask-image-radial-from-pos":[{"mask-radial-from":v()}],"mask-image-radial-to-pos":[{"mask-radial-to":v()}],"mask-image-radial-from-color":[{"mask-radial-from":u()}],"mask-image-radial-to-color":[{"mask-radial-to":u()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":j()}],"mask-image-conic-pos":[{"mask-conic":[g]}],"mask-image-conic-from-pos":[{"mask-conic-from":v()}],"mask-image-conic-to-pos":[{"mask-conic-to":v()}],"mask-image-conic-from-color":[{"mask-conic-from":u()}],"mask-image-conic-to-color":[{"mask-conic-to":u()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:me()}],"mask-repeat":[{mask:ue()}],"mask-size":[{mask:pe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",c,l]}],filter:[{filter:["","none",c,l]}],blur:[{blur:be()}],brightness:[{brightness:[g,c,l]}],contrast:[{contrast:[g,c,l]}],"drop-shadow":[{"drop-shadow":["","none",_,J,Z]}],"drop-shadow-color":[{"drop-shadow":u()}],grayscale:[{grayscale:["",g,c,l]}],"hue-rotate":[{"hue-rotate":[g,c,l]}],invert:[{invert:["",g,c,l]}],saturate:[{saturate:[g,c,l]}],sepia:[{sepia:["",g,c,l]}],"backdrop-filter":[{"backdrop-filter":["","none",c,l]}],"backdrop-blur":[{"backdrop-blur":be()}],"backdrop-brightness":[{"backdrop-brightness":[g,c,l]}],"backdrop-contrast":[{"backdrop-contrast":[g,c,l]}],"backdrop-grayscale":[{"backdrop-grayscale":["",g,c,l]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[g,c,l]}],"backdrop-invert":[{"backdrop-invert":["",g,c,l]}],"backdrop-opacity":[{"backdrop-opacity":[g,c,l]}],"backdrop-saturate":[{"backdrop-saturate":[g,c,l]}],"backdrop-sepia":[{"backdrop-sepia":["",g,c,l]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":b()}],"border-spacing-x":[{"border-spacing-x":b()}],"border-spacing-y":[{"border-spacing-y":b()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",c,l]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[g,"initial",c,l]}],ease:[{ease:["linear","initial",A,c,l]}],delay:[{delay:[g,c,l]}],animate:[{animate:["none",T,c,l]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[p,c,l]}],"perspective-origin":[{"perspective-origin":O()}],rotate:[{rotate:K()}],"rotate-x":[{"rotate-x":K()}],"rotate-y":[{"rotate-y":K()}],"rotate-z":[{"rotate-z":K()}],scale:[{scale:Y()}],"scale-x":[{"scale-x":Y()}],"scale-y":[{"scale-y":Y()}],"scale-z":[{"scale-z":Y()}],"scale-3d":["scale-3d"],skew:[{skew:re()}],"skew-x":[{"skew-x":re()}],"skew-y":[{"skew-y":re()}],transform:[{transform:[c,l,"","none","gpu","cpu"]}],"transform-origin":[{origin:O()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:X()}],"translate-x":[{"translate-x":X()}],"translate-y":[{"translate-y":X()}],"translate-z":[{"translate-z":X()}],"translate-none":["translate-none"],accent:[{accent:u()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:u()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",c,l]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":b()}],"scroll-mx":[{"scroll-mx":b()}],"scroll-my":[{"scroll-my":b()}],"scroll-ms":[{"scroll-ms":b()}],"scroll-me":[{"scroll-me":b()}],"scroll-mt":[{"scroll-mt":b()}],"scroll-mr":[{"scroll-mr":b()}],"scroll-mb":[{"scroll-mb":b()}],"scroll-ml":[{"scroll-ml":b()}],"scroll-p":[{"scroll-p":b()}],"scroll-px":[{"scroll-px":b()}],"scroll-py":[{"scroll-py":b()}],"scroll-ps":[{"scroll-ps":b()}],"scroll-pe":[{"scroll-pe":b()}],"scroll-pt":[{"scroll-pt":b()}],"scroll-pr":[{"scroll-pr":b()}],"scroll-pb":[{"scroll-pb":b()}],"scroll-pl":[{"scroll-pl":b()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",c,l]}],fill:[{fill:["none",...u()]}],"stroke-w":[{stroke:[g,U,G,se]}],stroke:[{stroke:["none",...u()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},jt=gt(Gt);function k(...e){return jt(Ye(e))}const Ot=({items:e,variant:t="void",className:r,...o})=>{const[n,a]=i.useState(null),s=m=>{a(n===m?null:m)};return i.createElement("div",{className:"flex flex-col"},e.map((m,d)=>{const f=`accordion-content-${m.id}`,x=`accordion-title-${m.id}`,w=n===m.id,E=d===0,_=i.useRef(null),[z,p]=i.useState(0);return i.useLayoutEffect(()=>{_.current&&p(_.current.scrollHeight)},[w]),i.createElement("div",{key:m.id,className:k("bg-black border-2",t==="void"?"border-white":"border-red-900",!E&&"-mt-0.5","hover:shadow-[8px_8px_0px_0px_rgba(255,255,255,0.1)]",r),...o},i.createElement("button",{"aria-expanded":w,"aria-controls":f,onClick:()=>s(m.id),className:"w-full flex items-center justify-between p-4 text-left"},i.createElement("span",{id:x,className:"font-serif text-lg uppercase tracking-tighter text-white"},m.title),i.createElement(Ee,{size:20,strokeWidth:1.5,className:k(t==="void"?"text-white":"text-red-600","transition-transform duration-300",w&&"rotate-180")})),i.createElement(je.motion.div,{key:`motion-content-${m.id}`,role:"region",id:f,"aria-labelledby":x,className:"overflow-hidden w-full",initial:{maxHeight:0},animate:{maxHeight:w?z:0},transition:{duration:.3,ease:"easeInOut"}},i.createElement("div",{ref:_,className:"px-4 pb-4 text-zinc-500 text-sm font-sans leading-relaxed"},m.content)))}))},$t=({children:e,variant:t="void",size:r="md",styleType:o="outline",className:n,...a})=>i.createElement("span",{className:k("inline-block border-2 font-serif uppercase tracking-widest transition-all duration-300",r==="sm"?"px-2 py-0.5 text-xs":"px-3 py-1 text-sm",o==="solid"?t==="void"?"bg-white text-black":"bg-red-900 text-white":`bg-black ${t==="void"?"border-white":"border-red-900"} ${t==="void"?"text-white":"text-red-600"}`,"hover:shadow-[4px_4px_0px_0px_rgba(255,255,255,0.1)]",n),...a},e),Vt=({variant:e="void",size:t="md",className:r,...o})=>i.createElement("button",{className:k("border-2 font-serif uppercase tracking-widest transition-all duration-300",t==="sm"&&"px-3 py-1 text-xs",t==="md"&&"px-6 py-2 text-sm",t==="lg"&&"px-10 py-4 text-base",e==="void"?"border-white text-white hover:bg-white hover:text-black":"border-red-900 text-red-600 hover:bg-red-900 hover:text-white",r),...o}),Dt=({title:e,description:t,variant:r="void",className:o,children:n,...a})=>i.createElement("div",{className:k("bg-black border-2",r==="void"?"border-white":"border-red-900","p-6 transition-all duration-300",r==="void"?"hover:shadow-[8px_8px_0px_0px_rgba(255,255,255,0.1)]":"hover:shadow-[8px_8px_0px_0px_rgba(136,8,8,0.3)]",o),...a},i.createElement("h3",{className:"font-serif text-2xl uppercase tracking-tighter text-white mb-2"},e),t&&i.createElement("p",{className:"text-zinc-500 text-sm mb-4 font-sans leading-relaxed"},t),i.createElement("div",{className:"mt-4"},n)),Ft=({label:e,variant:t="void",checked:r,className:o,...n})=>i.createElement("label",{className:"inline-flex items-center gap-3 cursor-pointer group"},i.createElement("div",{className:"relative"},i.createElement("input",{type:"checkbox",className:"sr-only peer",checked:r,...n}),i.createElement("div",{className:k("w-5 h-5 border-2",t==="void"?"border-white":"border-red-900","bg-black transition-all duration-300",t==="void"?"peer-checked:bg-white":"peer-checked:bg-red-900","group-hover:shadow-[4px_4px_0px_0px_rgba(255,255,255,0.1)] flex items-center justify-center",r&&t==="void"?"bg-white":"bg-red-900",o)},r&&i.createElement(Ue,{size:14,strokeWidth:1.5,className:k(t==="void"?"text-black":"text-white","transform scale-0 opacity-0 transition-all duration-300 ease-out",r&&"scale-100 opacity-100")}))),e&&i.createElement("span",{className:k("font-sans text-sm",t==="void"?"text-white":"text-red-600","uppercase tracking-wider")},e)),Wt=({variant:e="void",size:t="md",label:r,error:o,className:n,inputSize:a,...s})=>i.createElement("div",{className:"flex flex-col gap-2"},r&&i.createElement("label",{className:k("font-serif",t==="sm"?"text-xs":"text-sm","uppercase tracking-widest",e==="void"?"text-white":"text-red-600")},r),i.createElement("input",{className:k("bg-black border-2",o?"border-red-600 animate-pulse":e==="void"?"border-white":"border-red-900",t==="sm"?"px-2 py-1.5 text-xs":"px-4 py-3 text-sm",e==="void"?"text-white":"text-red-600","placeholder:text-zinc-600 font-sans text-sm transition-all duration-300",e==="void"?"focus:shadow-[8px_8px_0px_0px_rgba(255,255,255,0.1)]":"focus:shadow-[8px_8px_0px_0px_rgba(136,8,8,0.3)]","focus:outline-none",n),size:a,...s}),o&&i.createElement("span",{className:"text-red-600 font-sans text-xs mt-1"},o)),Bt=({isOpen:e,onClose:t,title:r,description:o,children:n,variant:a="void",className:s="",...m})=>{const d=i.useRef(null),f=i.useRef(null);return i.useEffect(()=>{e&&(f.current=document.activeElement)},[e]),i.useEffect(()=>{if(!e||!d.current)return;const x=d.current,w=()=>{const p=x.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');return Array.from(p).filter(h=>!h.hasAttribute("disabled"))};(()=>{if(x){x.focus();return}w()[0]?.focus()})();const _=p=>{if(p.key==="Escape"){p.preventDefault(),t();return}if(p.key!=="Tab")return;const h=w();if(h.length===0){p.preventDefault(),x.focus();return}const A=h[0],T=h[h.length-1];p.shiftKey?(document.activeElement===A||document.activeElement===x)&&(p.preventDefault(),T.focus()):document.activeElement===T&&(p.preventDefault(),A.focus())},z=p=>{if(!d.current)return;const h=d.current;p.relatedTarget&&!h.contains(p.relatedTarget)&&(w()[0]||h).focus()};return document.addEventListener("keydown",_),x.addEventListener("focusout",z),()=>{document.removeEventListener("keydown",_),x.removeEventListener("focusout",z)}},[e,t]),i.useEffect(()=>{!e&&f.current instanceof HTMLElement&&f.current.focus()},[e]),i.useEffect(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="unset",()=>{document.body.style.overflow="unset"}),[e]),e?Oe.createPortal(i.createElement("div",{className:"fixed inset-0 z-[100] flex items-center justify-center",role:"dialog","aria-modal":"true","aria-labelledby":"crypt-modal-title","aria-describedby":"crypt-modal-description"},i.createElement("div",{className:"absolute inset-0 bg-black/95 backdrop-blur-none",onClick:t}),i.createElement("div",{className:k("relative bg-black border-2",a==="void"?"border-white":"border-red-900","p-8 transition-all duration-300",a==="void"?"shadow-[8px_8px_0px_0px_rgba(255,255,255,0.1)]":"shadow-[8px_8px_0px_0px_rgba(136,8,8,0.3)]","max-w-lg w-full mx-4",s),...m},i.createElement("button",{onClick:t,"aria-label":"Fechar modal",className:k("absolute top-4 right-4",a==="void"?"text-white":"text-red-600","hover:opacity-70 transition-opacity duration-300")},i.createElement(Ke,{size:24,strokeWidth:1.5})),i.createElement("h2",{id:"crypt-modal-title",className:"font-serif text-2xl uppercase tracking-tighter text-white mb-2"},r),o&&i.createElement("p",{id:"crypt-modal-description",className:"text-zinc-500 text-sm mb-6 font-sans leading-relaxed"},o),i.createElement("div",{className:"mt-4"},n))),document.body):null},Ut=({options:e,value:t,onChange:r,placeholder:o="Select...",label:n,variant:a="void",size:s="md",className:m=""})=>{const[d,f]=i.useState(!1),[x,w]=i.useState(-1),E=i.useRef(null),_=e.find(p=>p.value===t);i.useEffect(()=>{const p=h=>{E.current&&!E.current.contains(h.target)&&(f(!1),w(-1))};return document.addEventListener("mousedown",p),()=>document.removeEventListener("mousedown",p)},[]);const z=p=>{if(!d){(p.key==="Enter"||p.key==="ArrowDown")&&(f(!0),w(0));return}switch(p.key){case"Escape":f(!1),w(-1);break;case"ArrowDown":p.preventDefault(),w(h=>h<e.length-1?h+1:0);break;case"ArrowUp":p.preventDefault(),w(h=>h>0?h-1:e.length-1);break;case"Enter":if(p.preventDefault(),x>=0){const h=e[x];r?.(h.value),f(!1),w(-1)}break}};return i.createElement("div",{className:"flex flex-col gap-2",ref:E,onKeyDown:z},n&&i.createElement("label",{id:"ritual-select-label",className:k("font-serif text-sm uppercase tracking-widest",a==="void"?"text-white":"text-red-600")},n),i.createElement("div",{className:"relative"},i.createElement("button",{type:"button","aria-haspopup":"listbox","aria-expanded":d,"aria-labelledby":n?"ritual-select-label":void 0,onClick:()=>f(!d),className:k("w-full bg-black border-2",a==="void"?"border-white":"border-red-900",s==="sm"&&"px-2 py-1.5",s==="md"&&"px-4 py-3",s==="lg"&&"px-7 py-6","flex items-center justify-between transition-all duration-300",d?a==="void"?"shadow-[8px_8px_0px_0px_rgba(255,255,255,0.1)]":"shadow-[8px_8px_0px_0px_rgba(136,8,8,0.3)]":a==="void"?"hover:shadow-[8px_8px_0px_0px_rgba(255,255,255,0.1)]":"hover:shadow-[8px_8px_0px_0px_rgba(136,8,8,0.3)]",m)},i.createElement("span",{className:k("font-sans text-sm",_?a==="void"?"text-white":"text-red-600":"text-zinc-600")},_?.label||o),i.createElement(Ee,{size:18,strokeWidth:1.5,className:k(a==="void"?"text-white":"text-red-600","transition-transform duration-300",d&&"rotate-180")})),d&&i.createElement("div",{className:k("absolute z-50 w-full mt-1 bg-black border-2",a==="void"?"border-white":"border-red-900",a==="void"?"shadow-[8px_8px_0px_0px_rgba(255,255,255,0.1)]":"shadow-[8px_8px_0px_0px_rgba(136,8,8,0.3)]"),role:"listbox",tabIndex:-1},e.map((p,h)=>i.createElement("button",{key:p.value,type:"button",role:"option","aria-selected":p.value===t,onClick:()=>{r?.(p.value),f(!1),w(-1)},className:k("w-full px-4 py-3 text-left font-sans text-sm",a==="void"?"text-white":"text-red-600","transition-colors duration-300",p.value===t&&"bg-zinc-900",x===h?"bg-zinc-800":"hover:bg-zinc-900")},p.label)))))},qt=({variant:e="void",label:t,className:r="",...o})=>i.createElement("div",{className:"relative flex items-center py-8 w-full",role:"separator"},i.createElement("div",{className:k("flex-grow border-t-2",e==="void"?"border-white":"border-red-900")}),i.createElement("div",{className:k("flex-none px-4 font-serif text-xl uppercase tracking-tighter",e==="void"?"text-white":"text-red-600",r),...o},t||"✦"),i.createElement("div",{className:k("flex-grow border-t-2",e==="void"?"border-white":"border-red-900")})),Ht=({tabs:e,variant:t="void",className:r="",...o})=>{const[n,a]=i.useState(e[0].id);return i.createElement("div",{className:"w-full"},i.createElement("div",{className:"flex border-b-2 border-zinc-900",role:"tablist","aria-label":"Soul Tabs"},e.map(s=>i.createElement("button",{key:s.id,role:"tab","aria-selected":n===s.id,"aria-controls":`panel-${s.id}`,id:`tab-${s.id}`,onClick:()=>a(s.id),className:k("px-6 py-2 font-serif uppercase tracking-widest border-2 border-b-0",t==="void"?"border-white":"border-red-900","transition-all duration-300",n===s.id?t==="void"?"bg-white text-black":"bg-red-900 text-white":"bg-black text-zinc-500 hover:text-white","-mr-0.5",r),...o},s.label))),i.createElement("div",{className:"py-6"},e.map(s=>i.createElement("div",{key:s.id,id:`panel-${s.id}`,role:"tabpanel","aria-labelledby":`tab-${s.id}`,hidden:n!==s.id,className:"text-zinc-500 font-sans leading-relaxed animate-in fade-in duration-500"},s.content))))};exports.AbyssSeparator=qt;exports.CryptModal=Bt;exports.GrimoireAccordion=Ot;exports.HexCheckbox=Ft;exports.NocturnaCard=Dt;exports.RitualSelect=Ut;exports.SigilBadge=$t;exports.SoulTabs=Ht;exports.VeinInput=Wt;exports.VoidButton=Vt;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
+
export { GrimoireAccordion } from './components/Accordion';
|
|
2
|
+
export { SigilBadge } from './components/Badge';
|
|
1
3
|
export { VoidButton } from './components/Button';
|
|
2
4
|
export { NocturnaCard } from './components/Card';
|
|
5
|
+
export { HexCheckbox } from './components/Checkbox';
|
|
6
|
+
export { VeinInput } from './components/Input';
|
|
7
|
+
export { CryptModal } from './components/Modal';
|
|
8
|
+
export { RitualSelect } from './components/Select';
|
|
9
|
+
export { AbyssSeparator } from './components/Separator';
|
|
10
|
+
export { SoulTabs } from './components/Tabs';
|