@akira-io/ui 1.3.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/blocks.d.ts +100 -10
- package/dist/blocks.js +547 -270
- package/dist/blocks.js.map +1 -1
- package/dist/chunk-2V6HUWST.js +18 -5
- package/dist/chunk-2V6HUWST.js.map +1 -1
- package/dist/chunk-3Z2VGVPI.js +16 -6
- package/dist/chunk-3Z2VGVPI.js.map +1 -1
- package/dist/chunk-B3L6PRLX.js +207 -99
- package/dist/chunk-B3L6PRLX.js.map +1 -1
- package/dist/chunk-DE2AJ54R.js +458 -0
- package/dist/chunk-DE2AJ54R.js.map +1 -0
- package/dist/{chunk-QNF4LJVT.js → chunk-E26KKMGS.js} +8 -6
- package/dist/chunk-E26KKMGS.js.map +1 -0
- package/dist/{chunk-N2KIFFI7.js → chunk-EYPM6IMS.js} +30 -34
- package/dist/chunk-EYPM6IMS.js.map +1 -0
- package/dist/chunk-IQMRJXEO.js +5 -4
- package/dist/chunk-IQMRJXEO.js.map +1 -1
- package/dist/chunk-KHOA4TEI.js +53 -24
- package/dist/chunk-KHOA4TEI.js.map +1 -1
- package/dist/chunk-L2H5GIF7.js +5 -4
- package/dist/chunk-L2H5GIF7.js.map +1 -1
- package/dist/chunk-SZUXATOF.js +169 -75
- package/dist/chunk-SZUXATOF.js.map +1 -1
- package/dist/chunk-TM5MN3MI.js +29 -0
- package/dist/chunk-TM5MN3MI.js.map +1 -0
- package/dist/{chunk-I6VVCFZ2.js → chunk-UCJTM3UM.js} +254 -243
- package/dist/chunk-UCJTM3UM.js.map +1 -0
- package/dist/{chunk-IDNOI4OK.js → chunk-UXVI326F.js} +15 -8
- package/dist/chunk-UXVI326F.js.map +1 -0
- package/dist/chunk-VA6A4HZ2.js +394 -0
- package/dist/chunk-VA6A4HZ2.js.map +1 -0
- package/dist/chunk-YBXRJSR3.js +14 -6
- package/dist/chunk-YBXRJSR3.js.map +1 -1
- package/dist/code.d.ts +2 -2
- package/dist/code.js +96 -52
- package/dist/code.js.map +1 -1
- package/dist/{context-OwSoVEri.d.ts → context-Soro3B1I.d.ts} +5 -4
- package/dist/editor.d.ts +1 -1
- package/dist/editor.js +135 -52
- package/dist/editor.js.map +1 -1
- package/dist/{field-DWm5NXeV.d.ts → field-C1TdmC2t.d.ts} +1 -1
- package/dist/index.d.ts +14 -11
- package/dist/index.js +1105 -633
- package/dist/index.js.map +1 -1
- package/dist/inertia.d.ts +11 -3
- package/dist/inertia.js +66 -12
- package/dist/inertia.js.map +1 -1
- package/dist/{input-Dxnsxi-f.d.ts → input-B4uEClxB.d.ts} +1 -1
- package/dist/{json-viewer-BARA2RCW.d.ts → json-viewer-Bssv9mTD.d.ts} +1 -1
- package/dist/locales/pt.d.ts +9 -8
- package/dist/locales/pt.js +40 -3
- package/dist/locales/pt.js.map +1 -1
- package/dist/shells.d.ts +46 -5
- package/dist/shells.js +211 -71
- package/dist/shells.js.map +1 -1
- package/dist/{sidebar-Bp6Q46j-.d.ts → sidebar-BLL2tgTt.d.ts} +2 -2
- package/dist/types-1LUmNJf_.d.ts +41 -0
- package/dist/{types-cmBL8zOc.d.ts → types-CMZRvMV5.d.ts} +1 -1
- package/dist/{types-B-eGPoFD.d.ts → types-CfAUvz--.d.ts} +1 -1
- package/package.json +4 -2
- package/dist/chunk-I6VVCFZ2.js.map +0 -1
- package/dist/chunk-IDNOI4OK.js.map +0 -1
- package/dist/chunk-N2KIFFI7.js.map +0 -1
- package/dist/chunk-NGMG2UWX.js +0 -172
- package/dist/chunk-NGMG2UWX.js.map +0 -1
- package/dist/chunk-QNF4LJVT.js.map +0 -1
- package/dist/types-u1qfmJQi.d.ts +0 -28
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/dialog.tsx"],"sourcesContent":["import { XIcon } from 'lucide-react';\nimport { Dialog as DialogPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { modalSurface } from '@/lib/language';\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nfunction Dialog({\n slotName = 'dialog',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root> & SlotNameProps) {\n return <DialogPrimitive.Root {...props} data-slot={slotName} />;\n}\n\nfunction DialogTrigger({\n slotName = 'dialog-trigger',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger> & SlotNameProps) {\n return <DialogPrimitive.Trigger {...props} data-slot={slotName} />;\n}\n\nfunction DialogPortal({\n slotName = 'dialog-portal',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal> & SlotNameProps) {\n return <DialogPrimitive.Portal {...props} data-slot={slotName} />;\n}\n\nfunction DialogClose({\n slotName = 'dialog-close',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close> & SlotNameProps) {\n return <DialogPrimitive.Close {...props} data-slot={slotName} />;\n}\n\nfunction DialogOverlay({\n className,\n slotName = 'dialog-overlay',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay> & SlotNameProps) {\n return (\n <DialogPrimitive.Overlay\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 inset-0 bg-black/60 backdrop-blur-sm fixed z-50',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\ninterface DialogContentProps extends React.ComponentProps<\n typeof DialogPrimitive.Content\n> {\n hideCloseButton?: boolean;\n}\n\nfunction DialogContent({\n className,\n children,\n hideCloseButton = false,\n slotName = 'dialog-content',\n ...props\n}: DialogContentProps & SlotNameProps) {\n return (\n <DialogPortal slotName=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n className={cn(\n `${modalSurface} data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 gap-6 p-6 sm:w-full sm:max-w-lg fixed top-[50%] left-[50%] z-50 grid w-[calc(100%-2rem)] max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] overflow-hidden duration-200`,\n className,\n )}\n {...props}\n data-slot={slotName}\n >\n {children}\n {!hideCloseButton && (\n <DialogPrimitive.Close className=\"top-6 right-6 h-10 w-10 shadow-xs absolute z-50 flex items-center justify-center rounded-full border border-border bg-muted text-muted-foreground transition-colors hover:bg-accent hover:text-foreground\">\n <XIcon className=\"h-5 w-5\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({\n className,\n slotName = 'dialog-header',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn(\n 'gap-2 p-6 md:p-8 flex flex-col text-center',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction DialogFooter({\n className,\n slotName = 'dialog-footer',\n ...props\n}: React.ComponentProps<'div'> & SlotNameProps) {\n return (\n <div\n className={cn(\n 'gap-3 p-6 md:p-8 sm:flex-row sm:justify-end flex flex-col-reverse border-t border-border',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction DialogTitle({\n className,\n slotName = 'dialog-title',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title> & SlotNameProps) {\n return (\n <DialogPrimitive.Title\n className={cn(\n 'text-2xl font-bold tracking-tight md:text-3xl text-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n slotName = 'dialog-description',\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description> & SlotNameProps) {\n return (\n <DialogPrimitive.Description\n className={cn(\n 'text-base font-medium leading-relaxed text-muted-foreground',\n className,\n )}\n {...props}\n data-slot={slotName}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n"],"mappings":";;;;;;AAAA,SAAS,aAAa;AACtB,SAAS,UAAU,uBAAuB;AAW/B,cAmES,YAnET;AAJX,SAAS,OAAO;AAAA,EACZ,WAAW;AAAA,EACX,GAAG;AACP,GAAsE;AAClE,SAAO,oBAAC,gBAAgB,MAAhB,EAAsB,GAAG,OAAO,aAAW,UAAU;AACjE;AAEA,SAAS,cAAc;AAAA,EACnB,WAAW;AAAA,EACX,GAAG;AACP,GAAyE;AACrE,SAAO,oBAAC,gBAAgB,SAAhB,EAAyB,GAAG,OAAO,aAAW,UAAU;AACpE;AAEA,SAAS,aAAa;AAAA,EAClB,WAAW;AAAA,EACX,GAAG;AACP,GAAwE;AACpE,SAAO,oBAAC,gBAAgB,QAAhB,EAAwB,GAAG,OAAO,aAAW,UAAU;AACnE;AAEA,SAAS,YAAY;AAAA,EACjB,WAAW;AAAA,EACX,GAAG;AACP,GAAuE;AACnE,SAAO,oBAAC,gBAAgB,OAAhB,EAAuB,GAAG,OAAO,aAAW,UAAU;AAClE;AAEA,SAAS,cAAc;AAAA,EACnB;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACP,GAAyE;AACrE,SACI;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACG,WAAW;AAAA,QACP;AAAA,QACA;AAAA,MACJ;AAAA,MACC,GAAG;AAAA,MACJ,aAAW;AAAA;AAAA,EACf;AAER;AAQA,SAAS,cAAc;AAAA,EACnB;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,GAAG;AACP,GAAuC;AACnC,SACI,qBAAC,gBAAa,UAAS,iBACnB;AAAA,wBAAC,iBAAc;AAAA,IACf;AAAA,MAAC,gBAAgB;AAAA,MAAhB;AAAA,QACG,WAAW;AAAA,UACP,GAAG,YAAY;AAAA,UACf;AAAA,QACJ;AAAA,QACC,GAAG;AAAA,QACJ,aAAW;AAAA,QAEV;AAAA;AAAA,UACA,CAAC,mBACE,qBAAC,gBAAgB,OAAhB,EAAsB,WAAU,6MAC7B;AAAA,gCAAC,SAAM,WAAU,WAAU;AAAA,YAC3B,oBAAC,UAAK,WAAU,WAAU,mBAAK;AAAA,aACnC;AAAA;AAAA;AAAA,IAER;AAAA,KACJ;AAER;AAEA,SAAS,aAAa;AAAA,EAClB;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACP,GAAgD;AAC5C,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAW;AAAA,QACP;AAAA,QACA;AAAA,MACJ;AAAA,MACC,GAAG;AAAA,MACJ,aAAW;AAAA;AAAA,EACf;AAER;AAEA,SAAS,aAAa;AAAA,EAClB;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACP,GAAgD;AAC5C,SACI;AAAA,IAAC;AAAA;AAAA,MACG,WAAW;AAAA,QACP;AAAA,QACA;AAAA,MACJ;AAAA,MACC,GAAG;AAAA,MACJ,aAAW;AAAA;AAAA,EACf;AAER;AAEA,SAAS,YAAY;AAAA,EACjB;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACP,GAAuE;AACnE,SACI;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACG,WAAW;AAAA,QACP;AAAA,QACA;AAAA,MACJ;AAAA,MACC,GAAG;AAAA,MACJ,aAAW;AAAA;AAAA,EACf;AAER;AAEA,SAAS,kBAAkB;AAAA,EACvB;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACP,GAA6E;AACzE,SACI;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACG,WAAW;AAAA,QACP;AAAA,QACA;AAAA,MACJ;AAAA,MACC,GAAG;AAAA,MACJ,aAAW;AAAA;AAAA,EACf;AAER;","names":[]}
|
package/dist/chunk-IQMRJXEO.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { useState, useCallback, useEffect } from 'react';
|
|
2
|
-
|
|
3
1
|
// src/hooks/use-appearance.tsx
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
4
3
|
var prefersDark = () => {
|
|
5
4
|
if (typeof window === "undefined") {
|
|
6
5
|
return false;
|
|
@@ -54,6 +53,8 @@ function useAppearance() {
|
|
|
54
53
|
return { appearance, updateAppearance };
|
|
55
54
|
}
|
|
56
55
|
|
|
57
|
-
export {
|
|
58
|
-
|
|
56
|
+
export {
|
|
57
|
+
initializeTheme,
|
|
58
|
+
useAppearance
|
|
59
|
+
};
|
|
59
60
|
//# sourceMappingURL=chunk-IQMRJXEO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/use-appearance.tsx"],"
|
|
1
|
+
{"version":3,"sources":["../src/hooks/use-appearance.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nexport type Appearance = 'light' | 'dark' | 'system';\n\nconst prefersDark = () => {\n if (typeof window === 'undefined') {\n return false;\n }\n\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\n};\n\nconst setCookie = (name: string, value: string, days = 365) => {\n if (typeof document === 'undefined') {\n return;\n }\n\n const maxAge = days * 24 * 60 * 60;\n document.cookie = `${name}=${value};path=/;max-age=${maxAge};SameSite=Lax`;\n};\n\nconst applyTheme = (appearance: Appearance) => {\n const isDark =\n appearance === 'dark' || (appearance === 'system' && prefersDark());\n\n document.documentElement.classList.toggle('dark', isDark);\n document.documentElement.style.colorScheme = isDark ? 'dark' : 'light';\n};\n\nconst mediaQuery = () => {\n if (typeof window === 'undefined') {\n return null;\n }\n\n return window.matchMedia('(prefers-color-scheme: dark)');\n};\n\nconst handleSystemThemeChange = () => {\n const currentAppearance = localStorage.getItem('appearance') as Appearance;\n applyTheme(currentAppearance || 'system');\n};\n\nexport function initializeTheme() {\n const savedAppearance =\n (localStorage.getItem('appearance') as Appearance) || 'system';\n\n applyTheme(savedAppearance);\n\n mediaQuery()?.addEventListener('change', handleSystemThemeChange);\n}\n\nexport function useAppearance() {\n const [appearance, setAppearance] = useState<Appearance>('system');\n\n const updateAppearance = useCallback((mode: Appearance) => {\n setAppearance(mode);\n\n localStorage.setItem('appearance', mode);\n setCookie('appearance', mode);\n applyTheme(mode);\n }, []);\n\n useEffect(() => {\n const savedAppearance = localStorage.getItem(\n 'appearance',\n ) as Appearance | null;\n updateAppearance(savedAppearance || 'system');\n\n const query = mediaQuery();\n\n query?.addEventListener('change', handleSystemThemeChange);\n\n return () =>\n query?.removeEventListener('change', handleSystemThemeChange);\n }, [updateAppearance]);\n\n return { appearance, updateAppearance } as const;\n}\n"],"mappings":";AAAA,SAAS,aAAa,WAAW,gBAAgB;AAIjD,IAAM,cAAc,MAAM;AACtB,MAAI,OAAO,WAAW,aAAa;AAC/B,WAAO;AAAA,EACX;AAEA,SAAO,OAAO,WAAW,8BAA8B,EAAE;AAC7D;AAEA,IAAM,YAAY,CAAC,MAAc,OAAe,OAAO,QAAQ;AAC3D,MAAI,OAAO,aAAa,aAAa;AACjC;AAAA,EACJ;AAEA,QAAM,SAAS,OAAO,KAAK,KAAK;AAChC,WAAS,SAAS,GAAG,IAAI,IAAI,KAAK,mBAAmB,MAAM;AAC/D;AAEA,IAAM,aAAa,CAAC,eAA2B;AAC3C,QAAM,SACF,eAAe,UAAW,eAAe,YAAY,YAAY;AAErE,WAAS,gBAAgB,UAAU,OAAO,QAAQ,MAAM;AACxD,WAAS,gBAAgB,MAAM,cAAc,SAAS,SAAS;AACnE;AAEA,IAAM,aAAa,MAAM;AACrB,MAAI,OAAO,WAAW,aAAa;AAC/B,WAAO;AAAA,EACX;AAEA,SAAO,OAAO,WAAW,8BAA8B;AAC3D;AAEA,IAAM,0BAA0B,MAAM;AAClC,QAAM,oBAAoB,aAAa,QAAQ,YAAY;AAC3D,aAAW,qBAAqB,QAAQ;AAC5C;AAEO,SAAS,kBAAkB;AAC9B,QAAM,kBACD,aAAa,QAAQ,YAAY,KAAoB;AAE1D,aAAW,eAAe;AAE1B,aAAW,GAAG,iBAAiB,UAAU,uBAAuB;AACpE;AAEO,SAAS,gBAAgB;AAC5B,QAAM,CAAC,YAAY,aAAa,IAAI,SAAqB,QAAQ;AAEjE,QAAM,mBAAmB,YAAY,CAAC,SAAqB;AACvD,kBAAc,IAAI;AAElB,iBAAa,QAAQ,cAAc,IAAI;AACvC,cAAU,cAAc,IAAI;AAC5B,eAAW,IAAI;AAAA,EACnB,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACZ,UAAM,kBAAkB,aAAa;AAAA,MACjC;AAAA,IACJ;AACA,qBAAiB,mBAAmB,QAAQ;AAE5C,UAAM,QAAQ,WAAW;AAEzB,WAAO,iBAAiB,UAAU,uBAAuB;AAEzD,WAAO,MACH,OAAO,oBAAoB,UAAU,uBAAuB;AAAA,EACpE,GAAG,CAAC,gBAAgB,CAAC;AAErB,SAAO,EAAE,YAAY,iBAAiB;AAC1C;","names":[]}
|
package/dist/chunk-KHOA4TEI.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import { clsx } from 'clsx';
|
|
2
|
-
import { twMerge } from 'tailwind-merge';
|
|
3
|
-
import { cva } from 'class-variance-authority';
|
|
4
|
-
import { LoaderCircle } from 'lucide-react';
|
|
5
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
-
import { Slot } from '@radix-ui/react-slot';
|
|
7
|
-
import * as React from 'react';
|
|
8
|
-
|
|
9
1
|
// src/lib/utils.ts
|
|
2
|
+
import { clsx } from "clsx";
|
|
3
|
+
import { twMerge } from "tailwind-merge";
|
|
10
4
|
function cn(...inputs) {
|
|
11
5
|
return twMerge(clsx(inputs));
|
|
12
6
|
}
|
|
@@ -36,6 +30,11 @@ var menuHighlight = "outline-hidden focus:bg-accent focus:text-accent-foreground
|
|
|
36
30
|
function surface(inset) {
|
|
37
31
|
return inset ? `${elevatedSurface} ${recessedSurface}` : elevatedSurface;
|
|
38
32
|
}
|
|
33
|
+
|
|
34
|
+
// src/components/ui/spinner.tsx
|
|
35
|
+
import { cva } from "class-variance-authority";
|
|
36
|
+
import { LoaderCircle } from "lucide-react";
|
|
37
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
39
38
|
var spinnerVariants = cva("inline-flex shrink-0", {
|
|
40
39
|
variants: {
|
|
41
40
|
size: {
|
|
@@ -76,7 +75,13 @@ function Spinner({
|
|
|
76
75
|
}
|
|
77
76
|
);
|
|
78
77
|
}
|
|
79
|
-
|
|
78
|
+
|
|
79
|
+
// src/components/ui/button.tsx
|
|
80
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
81
|
+
import { cva as cva2 } from "class-variance-authority";
|
|
82
|
+
import * as React from "react";
|
|
83
|
+
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
84
|
+
var buttonVariants = cva2(
|
|
80
85
|
`inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-2xl text-sm font-semibold transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 aria-invalid:ring-destructive/20 aria-invalid:border-destructive ${focusRing}`,
|
|
81
86
|
{
|
|
82
87
|
variants: {
|
|
@@ -180,13 +185,13 @@ function Button({
|
|
|
180
185
|
event.stopPropagation();
|
|
181
186
|
}
|
|
182
187
|
} : void 0,
|
|
183
|
-
/* @__PURE__ */
|
|
188
|
+
/* @__PURE__ */ jsxs2(
|
|
184
189
|
"span",
|
|
185
190
|
{
|
|
186
191
|
"data-slot": "button-content",
|
|
187
192
|
className: "inline-flex items-center gap-[inherit]",
|
|
188
193
|
children: [
|
|
189
|
-
/* @__PURE__ */
|
|
194
|
+
/* @__PURE__ */ jsx2(
|
|
190
195
|
"span",
|
|
191
196
|
{
|
|
192
197
|
"data-slot": "button-leading",
|
|
@@ -194,7 +199,7 @@ function Button({
|
|
|
194
199
|
"inline-grid shrink-0 place-items-center",
|
|
195
200
|
spinnerVariants({ size: mappedSpinnerSize2 })
|
|
196
201
|
),
|
|
197
|
-
children: isLoading ? /* @__PURE__ */
|
|
202
|
+
children: isLoading ? /* @__PURE__ */ jsx2(
|
|
198
203
|
Spinner,
|
|
199
204
|
{
|
|
200
205
|
size: mappedSpinnerSize2,
|
|
@@ -204,8 +209,8 @@ function Button({
|
|
|
204
209
|
) : leadingVisual2
|
|
205
210
|
}
|
|
206
211
|
),
|
|
207
|
-
/* @__PURE__ */
|
|
208
|
-
!hasLeadingVisual2 && !iconOnly2 && /* @__PURE__ */
|
|
212
|
+
/* @__PURE__ */ jsx2("span", { "data-slot": "button-label", children: label2 }),
|
|
213
|
+
!hasLeadingVisual2 && !iconOnly2 && /* @__PURE__ */ jsx2(
|
|
209
214
|
"span",
|
|
210
215
|
{
|
|
211
216
|
"aria-hidden": "true",
|
|
@@ -219,7 +224,7 @@ function Button({
|
|
|
219
224
|
}
|
|
220
225
|
)
|
|
221
226
|
) : children;
|
|
222
|
-
return /* @__PURE__ */
|
|
227
|
+
return /* @__PURE__ */ jsx2(
|
|
223
228
|
Comp,
|
|
224
229
|
{
|
|
225
230
|
...props,
|
|
@@ -237,7 +242,7 @@ function Button({
|
|
|
237
242
|
);
|
|
238
243
|
}
|
|
239
244
|
if (loading === void 0) {
|
|
240
|
-
return /* @__PURE__ */
|
|
245
|
+
return /* @__PURE__ */ jsx2(
|
|
241
246
|
"button",
|
|
242
247
|
{
|
|
243
248
|
...props,
|
|
@@ -258,7 +263,7 @@ function Button({
|
|
|
258
263
|
const leadingVisual = hasLeadingVisual ? first : void 0;
|
|
259
264
|
const label = hasLeadingVisual ? items.slice(1) : items;
|
|
260
265
|
const mappedSpinnerSize = spinnerSize(resolvedSize);
|
|
261
|
-
return /* @__PURE__ */
|
|
266
|
+
return /* @__PURE__ */ jsx2(
|
|
262
267
|
"button",
|
|
263
268
|
{
|
|
264
269
|
...props,
|
|
@@ -270,13 +275,13 @@ function Button({
|
|
|
270
275
|
disabled: disabled || isLoading,
|
|
271
276
|
"aria-busy": isLoading ? true : props["aria-busy"],
|
|
272
277
|
onClick,
|
|
273
|
-
children: /* @__PURE__ */
|
|
278
|
+
children: /* @__PURE__ */ jsxs2(
|
|
274
279
|
"span",
|
|
275
280
|
{
|
|
276
281
|
"data-slot": "button-content",
|
|
277
282
|
className: "inline-flex items-center gap-[inherit]",
|
|
278
283
|
children: [
|
|
279
|
-
/* @__PURE__ */
|
|
284
|
+
/* @__PURE__ */ jsx2(
|
|
280
285
|
"span",
|
|
281
286
|
{
|
|
282
287
|
"data-slot": "button-leading",
|
|
@@ -284,7 +289,7 @@ function Button({
|
|
|
284
289
|
"inline-grid shrink-0 place-items-center",
|
|
285
290
|
spinnerVariants({ size: mappedSpinnerSize })
|
|
286
291
|
),
|
|
287
|
-
children: isLoading ? /* @__PURE__ */
|
|
292
|
+
children: isLoading ? /* @__PURE__ */ jsx2(
|
|
288
293
|
Spinner,
|
|
289
294
|
{
|
|
290
295
|
size: mappedSpinnerSize,
|
|
@@ -294,8 +299,8 @@ function Button({
|
|
|
294
299
|
) : leadingVisual
|
|
295
300
|
}
|
|
296
301
|
),
|
|
297
|
-
/* @__PURE__ */
|
|
298
|
-
!hasLeadingVisual && !iconOnly && /* @__PURE__ */
|
|
302
|
+
/* @__PURE__ */ jsx2("span", { "data-slot": "button-label", children: label }),
|
|
303
|
+
!hasLeadingVisual && !iconOnly && /* @__PURE__ */ jsx2(
|
|
299
304
|
"span",
|
|
300
305
|
{
|
|
301
306
|
"aria-hidden": "true",
|
|
@@ -312,6 +317,30 @@ function Button({
|
|
|
312
317
|
);
|
|
313
318
|
}
|
|
314
319
|
|
|
315
|
-
export {
|
|
316
|
-
|
|
320
|
+
export {
|
|
321
|
+
cn,
|
|
322
|
+
controlRadius,
|
|
323
|
+
compactRadius,
|
|
324
|
+
elevatedSurface,
|
|
325
|
+
floatingSurface,
|
|
326
|
+
modalSurface,
|
|
327
|
+
panelSurface,
|
|
328
|
+
menuSurface,
|
|
329
|
+
flatSurface,
|
|
330
|
+
recessedSurface,
|
|
331
|
+
nestedRadius,
|
|
332
|
+
nestedSurfaceReset,
|
|
333
|
+
nestedEdgeToEdge,
|
|
334
|
+
glassControl,
|
|
335
|
+
controlFill,
|
|
336
|
+
fieldSurface,
|
|
337
|
+
focusRing,
|
|
338
|
+
fieldFocus,
|
|
339
|
+
menuHighlight,
|
|
340
|
+
surface,
|
|
341
|
+
spinnerVariants,
|
|
342
|
+
Spinner,
|
|
343
|
+
buttonVariants,
|
|
344
|
+
Button
|
|
345
|
+
};
|
|
317
346
|
//# sourceMappingURL=chunk-KHOA4TEI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/lib/language.ts","../src/components/ui/spinner.tsx","../src/components/ui/button.tsx"],"names":["cva","mappedSpinnerSize","items","first","iconOnly","hasLeadingVisual","leadingVisual","label","jsxs","jsx"],"mappings":"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","file":"chunk-KHOA4TEI.js","sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","export const surfaceRadius = 'rounded-3xl';\n\nexport const controlRadius = 'rounded-2xl';\n\nexport const compactRadius = 'rounded-xl';\n\nexport const glassEdge =\n 'ring-1 ring-surface-ring backdrop-blur-2xl backdrop-saturate-150';\n\nexport const elevatedSurface = `${glassEdge} ${surfaceRadius} border-0 shadow-(--glass-elevation)`;\n\nexport const floatingSurface = `${glassEdge} border-0 bg-popover/85 text-popover-foreground shadow-(--glass-elevation)`;\n\nexport const modalSurface = `${floatingSurface} ${surfaceRadius}`;\n\nexport const panelSurface = `${floatingSurface} ${controlRadius}`;\n\nexport const menuSurface = `${panelSurface} bg-popover/80`;\n\nexport const flatSurface = 'shadow-none ring-0';\n\nexport const recessedSurface = `${controlRadius} border-0 bg-surface-recessed/30 text-foreground shadow-none ring-0 backdrop-blur-none`;\n\nexport const nestedRadius = controlRadius;\n\nexport const nestedSurfaceReset =\n 'nested-surface:border-0 nested-surface:ring-0 nested-surface:bg-transparent nested-surface:shadow-none nested-surface:backdrop-blur-none';\n\nexport const nestedEdgeToEdge = 'nested-surface:rounded-none';\n\nexport const glassControl =\n 'ring-1 ring-surface-ring border-0 shadow-(--glass-shadow) backdrop-blur-md backdrop-saturate-150';\n\nexport const controlFill = 'bg-surface-control';\n\nexport const fieldText = 'text-base sm:text-sm';\n\nexport const fieldSurface = `${glassControl} ${controlFill} ${controlRadius} ${fieldText} text-foreground`;\n\nexport const focusRing =\n 'focus-visible:outline-solid focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring';\n\nexport const fieldFocus = `${focusRing} focus-visible:shadow-(--glass-elevation)`;\n\nexport const menuHighlight =\n 'outline-hidden focus:bg-accent focus:text-accent-foreground';\n\nexport interface SurfaceProps {\n inset?: boolean;\n}\n\nexport interface FlatSurfaceProps extends SurfaceProps {\n flat?: boolean;\n}\n\nexport function surface(inset?: boolean | null): string {\n return inset ? `${elevatedSurface} ${recessedSurface}` : elevatedSurface;\n}\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport { LoaderCircle } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst spinnerVariants = cva('inline-flex shrink-0', {\n variants: {\n size: {\n sm: 'size-3.5',\n default: 'size-4',\n lg: 'size-5',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\ninterface SpinnerProps\n extends React.ComponentProps<'span'>, VariantProps<typeof spinnerVariants> {\n label?: string;\n}\n\nfunction Spinner({\n className,\n label = 'Loading',\n size = 'default',\n slotName = 'spinner',\n ...props\n}: SpinnerProps & SlotNameProps) {\n return (\n <span\n {...props}\n data-size={size}\n role=\"status\"\n className={cn(spinnerVariants({ size }), className)}\n data-slot={slotName}\n >\n <LoaderCircle\n aria-hidden=\"true\"\n className=\"animate-spin size-full text-current motion-reduce:animate-none\"\n />\n <span className=\"sr-only\">{label}</span>\n </span>\n );\n}\n\nexport { Spinner, spinnerVariants, type SpinnerProps };\n","import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport {\n Spinner,\n spinnerVariants,\n type SpinnerProps,\n} from '@/components/ui/spinner';\nimport { controlFill, focusRing, glassControl } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nconst buttonVariants = cva(\n `inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-2xl text-sm font-semibold transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 aria-invalid:ring-destructive/20 aria-invalid:border-destructive ${focusRing}`,\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground shadow-xl hover:bg-primary/90 hover:scale-[1.02] active:scale-[0.98]',\n destructive:\n 'bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90 focus-visible:outline-destructive',\n outline: `${glassControl} ${controlFill} hover:bg-accent hover:text-accent-foreground`,\n secondary: `${glassControl} bg-secondary/80 text-secondary-foreground hover:bg-secondary`,\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-11 px-4 has-[>svg]:gap-3',\n sm: 'h-9 rounded-xl px-3 has-[>svg]:gap-2.5',\n lg: 'h-12 px-6 has-[>svg]:gap-4 text-base',\n icon: 'size-11',\n 'icon-sm': 'size-9 rounded-xl',\n 'icon-lg': 'size-12',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\ntype ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;\n\ninterface ButtonProps\n extends\n React.ComponentProps<'button'>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n loading?: boolean;\n loadingLabel?: string;\n slotName?: string;\n}\n\nfunction spinnerSize(size: ButtonSize): SpinnerProps['size'] {\n if (size === 'sm' || size === 'icon-sm') return 'sm';\n if (size === 'lg' || size === 'icon-lg') return 'lg';\n return 'default';\n}\n\nconst ICON_PADDING: Record<ButtonSize, { leading: string; trailing: string }> =\n {\n default: { leading: 'pl-3', trailing: 'pr-2' },\n sm: { leading: 'pl-2.5', trailing: 'pr-1.5' },\n lg: { leading: 'pl-4', trailing: 'pr-3' },\n icon: { leading: '', trailing: '' },\n 'icon-sm': { leading: '', trailing: '' },\n 'icon-lg': { leading: '', trailing: '' },\n };\n\nfunction iconPadding(size: ButtonSize, children: React.ReactNode): string {\n const parts = React.Children.toArray(children).filter(\n (part) => typeof part !== 'string' || part.trim() !== '',\n );\n\n if (parts.length < 2) {\n return '';\n }\n\n const edges = ICON_PADDING[size];\n\n return cn(\n React.isValidElement(parts[0]) && edges.leading,\n React.isValidElement(parts[parts.length - 1]) && edges.trailing,\n );\n}\n\nfunction loadingPadding(size: ButtonSize): string | undefined {\n if (size === 'sm') return 'px-2.5';\n if (size === 'lg') return 'px-5';\n if (size === 'default') return 'px-3';\n return undefined;\n}\n\nfunction Button({\n className,\n variant = 'default',\n size = 'default',\n asChild = false,\n loading,\n loadingLabel = 'Loading',\n slotName = 'button',\n disabled,\n children,\n onClick,\n ...props\n}: ButtonProps) {\n const isLoading = loading === true;\n const hasLoadingState = loading !== undefined;\n const resolvedSize: ButtonSize = size ?? 'default';\n const baseClasses = buttonVariants({ variant, size: resolvedSize });\n const classes = cn(\n baseClasses,\n iconPadding(resolvedSize, children),\n className,\n );\n const loadingClasses = cn(\n baseClasses,\n loadingPadding(resolvedSize),\n className,\n );\n\n if (asChild) {\n const Comp = asChild ? Slot : 'button';\n const mappedSpinnerSize = spinnerSize(resolvedSize);\n const slottedChild = React.isValidElement<\n React.HTMLAttributes<HTMLElement>\n >(children)\n ? children\n : undefined;\n const items = React.Children.toArray(slottedChild?.props.children);\n const first = items[0];\n const iconOnly = resolvedSize.startsWith('icon');\n const hasLeadingVisual =\n React.isValidElement(first) && (items.length > 1 || iconOnly);\n const leadingVisual = hasLeadingVisual ? first : undefined;\n const label = hasLeadingVisual ? items.slice(1) : items;\n const slottedChildren =\n hasLoadingState && slottedChild\n ? React.cloneElement(\n slottedChild,\n isLoading\n ? {\n onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n },\n }\n : undefined,\n <span\n data-slot=\"button-content\"\n className=\"inline-flex items-center gap-[inherit]\"\n >\n <span\n data-slot=\"button-leading\"\n className={cn(\n 'inline-grid shrink-0 place-items-center',\n spinnerVariants({ size: mappedSpinnerSize }),\n )}\n >\n {isLoading ? (\n <Spinner\n size={mappedSpinnerSize}\n label={loadingLabel}\n className=\"size-full\"\n />\n ) : (\n leadingVisual\n )}\n </span>\n <span data-slot=\"button-label\">{label}</span>\n {!hasLeadingVisual && !iconOnly && (\n <span\n aria-hidden=\"true\"\n data-slot=\"button-balance\"\n className={spinnerVariants({\n size: mappedSpinnerSize,\n })}\n />\n )}\n </span>,\n )\n : children;\n\n return (\n <Comp\n {...props}\n data-slot={slotName}\n data-variant={variant}\n data-size={resolvedSize}\n data-loading={isLoading || undefined}\n className={hasLoadingState ? loadingClasses : classes}\n disabled={disabled || isLoading}\n aria-busy={isLoading ? true : props['aria-busy']}\n aria-disabled={isLoading ? true : props['aria-disabled']}\n onClick={isLoading ? undefined : onClick}\n >\n {slottedChildren}\n </Comp>\n );\n }\n\n if (loading === undefined) {\n return (\n <button\n {...props}\n data-slot={slotName}\n data-variant={variant}\n data-size={resolvedSize}\n className={classes}\n disabled={disabled}\n onClick={onClick}\n >\n {children}\n </button>\n );\n }\n\n const items = React.Children.toArray(children);\n const first = items[0];\n const iconOnly = resolvedSize.startsWith('icon');\n const hasLeadingVisual =\n React.isValidElement(first) && (items.length > 1 || iconOnly);\n const leadingVisual = hasLeadingVisual ? first : undefined;\n const label = hasLeadingVisual ? items.slice(1) : items;\n const mappedSpinnerSize = spinnerSize(resolvedSize);\n\n return (\n <button\n {...props}\n data-slot={slotName}\n data-variant={variant}\n data-size={resolvedSize}\n data-loading={isLoading || undefined}\n className={loadingClasses}\n disabled={disabled || isLoading}\n aria-busy={isLoading ? true : props['aria-busy']}\n onClick={onClick}\n >\n <span\n data-slot=\"button-content\"\n className=\"inline-flex items-center gap-[inherit]\"\n >\n <span\n data-slot=\"button-leading\"\n className={cn(\n 'inline-grid shrink-0 place-items-center',\n spinnerVariants({ size: mappedSpinnerSize }),\n )}\n >\n {isLoading ? (\n <Spinner\n size={mappedSpinnerSize}\n label={loadingLabel}\n className=\"size-full\"\n />\n ) : (\n leadingVisual\n )}\n </span>\n <span data-slot=\"button-label\">{label}</span>\n {!hasLeadingVisual && !iconOnly && (\n <span\n aria-hidden=\"true\"\n data-slot=\"button-balance\"\n className={spinnerVariants({\n size: mappedSpinnerSize,\n })}\n />\n )}\n </span>\n </button>\n );\n}\n\nexport { Button, buttonVariants, type ButtonProps };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/lib/language.ts","../src/components/ui/spinner.tsx","../src/components/ui/button.tsx"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","export const surfaceRadius = 'rounded-3xl';\n\nexport const controlRadius = 'rounded-2xl';\n\nexport const compactRadius = 'rounded-xl';\n\nexport const glassEdge =\n 'ring-1 ring-surface-ring backdrop-blur-2xl backdrop-saturate-150';\n\nexport const elevatedSurface = `${glassEdge} ${surfaceRadius} border-0 shadow-(--glass-elevation)`;\n\nexport const floatingSurface = `${glassEdge} border-0 bg-popover/85 text-popover-foreground shadow-(--glass-elevation)`;\n\nexport const modalSurface = `${floatingSurface} ${surfaceRadius}`;\n\nexport const panelSurface = `${floatingSurface} ${controlRadius}`;\n\nexport const menuSurface = `${panelSurface} bg-popover/80`;\n\nexport const flatSurface = 'shadow-none ring-0';\n\nexport const recessedSurface = `${controlRadius} border-0 bg-surface-recessed/30 text-foreground shadow-none ring-0 backdrop-blur-none`;\n\nexport const nestedRadius = controlRadius;\n\nexport const nestedSurfaceReset =\n 'nested-surface:border-0 nested-surface:ring-0 nested-surface:bg-transparent nested-surface:shadow-none nested-surface:backdrop-blur-none';\n\nexport const nestedEdgeToEdge = 'nested-surface:rounded-none';\n\nexport const glassControl =\n 'ring-1 ring-surface-ring border-0 shadow-(--glass-shadow) backdrop-blur-md backdrop-saturate-150';\n\nexport const controlFill = 'bg-surface-control';\n\nexport const fieldText = 'text-base sm:text-sm';\n\nexport const fieldSurface = `${glassControl} ${controlFill} ${controlRadius} ${fieldText} text-foreground`;\n\nexport const focusRing =\n 'focus-visible:outline-solid focus-visible:outline-1 focus-visible:outline-offset-0 focus-visible:outline-ring';\n\nexport const fieldFocus = `${focusRing} focus-visible:shadow-(--glass-elevation)`;\n\nexport const menuHighlight =\n 'outline-hidden focus:bg-accent focus:text-accent-foreground';\n\nexport interface SurfaceProps {\n inset?: boolean;\n}\n\nexport interface FlatSurfaceProps extends SurfaceProps {\n flat?: boolean;\n}\n\nexport function surface(inset?: boolean | null): string {\n return inset ? `${elevatedSurface} ${recessedSurface}` : elevatedSurface;\n}\n","import { cva, type VariantProps } from 'class-variance-authority';\nimport { LoaderCircle } from 'lucide-react';\nimport * as React from 'react';\n\nimport { cn } from '@/lib/utils';\nimport type { SlotNameProps } from '@/types';\n\nconst spinnerVariants = cva('inline-flex shrink-0', {\n variants: {\n size: {\n sm: 'size-3.5',\n default: 'size-4',\n lg: 'size-5',\n },\n },\n defaultVariants: {\n size: 'default',\n },\n});\n\ninterface SpinnerProps\n extends React.ComponentProps<'span'>, VariantProps<typeof spinnerVariants> {\n label?: string;\n}\n\nfunction Spinner({\n className,\n label = 'Loading',\n size = 'default',\n slotName = 'spinner',\n ...props\n}: SpinnerProps & SlotNameProps) {\n return (\n <span\n {...props}\n data-size={size}\n role=\"status\"\n className={cn(spinnerVariants({ size }), className)}\n data-slot={slotName}\n >\n <LoaderCircle\n aria-hidden=\"true\"\n className=\"animate-spin size-full text-current motion-reduce:animate-none\"\n />\n <span className=\"sr-only\">{label}</span>\n </span>\n );\n}\n\nexport { Spinner, spinnerVariants, type SpinnerProps };\n","import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport * as React from 'react';\n\nimport {\n Spinner,\n spinnerVariants,\n type SpinnerProps,\n} from '@/components/ui/spinner';\nimport { controlFill, focusRing, glassControl } from '@/lib/language';\nimport { cn } from '@/lib/utils';\n\nconst buttonVariants = cva(\n `inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-2xl text-sm font-semibold transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 aria-invalid:ring-destructive/20 aria-invalid:border-destructive ${focusRing}`,\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground shadow-xl hover:bg-primary/90 hover:scale-[1.02] active:scale-[0.98]',\n destructive:\n 'bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90 focus-visible:outline-destructive',\n outline: `${glassControl} ${controlFill} hover:bg-accent hover:text-accent-foreground`,\n secondary: `${glassControl} bg-secondary/80 text-secondary-foreground hover:bg-secondary`,\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-11 px-4 has-[>svg]:gap-3',\n sm: 'h-9 rounded-xl px-3 has-[>svg]:gap-2.5',\n lg: 'h-12 px-6 has-[>svg]:gap-4 text-base',\n icon: 'size-11',\n 'icon-sm': 'size-9 rounded-xl',\n 'icon-lg': 'size-12',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\ntype ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;\n\ninterface ButtonProps\n extends\n React.ComponentProps<'button'>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n loading?: boolean;\n loadingLabel?: string;\n slotName?: string;\n}\n\nfunction spinnerSize(size: ButtonSize): SpinnerProps['size'] {\n if (size === 'sm' || size === 'icon-sm') return 'sm';\n if (size === 'lg' || size === 'icon-lg') return 'lg';\n return 'default';\n}\n\nconst ICON_PADDING: Record<ButtonSize, { leading: string; trailing: string }> =\n {\n default: { leading: 'pl-3', trailing: 'pr-2' },\n sm: { leading: 'pl-2.5', trailing: 'pr-1.5' },\n lg: { leading: 'pl-4', trailing: 'pr-3' },\n icon: { leading: '', trailing: '' },\n 'icon-sm': { leading: '', trailing: '' },\n 'icon-lg': { leading: '', trailing: '' },\n };\n\nfunction iconPadding(size: ButtonSize, children: React.ReactNode): string {\n const parts = React.Children.toArray(children).filter(\n (part) => typeof part !== 'string' || part.trim() !== '',\n );\n\n if (parts.length < 2) {\n return '';\n }\n\n const edges = ICON_PADDING[size];\n\n return cn(\n React.isValidElement(parts[0]) && edges.leading,\n React.isValidElement(parts[parts.length - 1]) && edges.trailing,\n );\n}\n\nfunction loadingPadding(size: ButtonSize): string | undefined {\n if (size === 'sm') return 'px-2.5';\n if (size === 'lg') return 'px-5';\n if (size === 'default') return 'px-3';\n return undefined;\n}\n\nfunction Button({\n className,\n variant = 'default',\n size = 'default',\n asChild = false,\n loading,\n loadingLabel = 'Loading',\n slotName = 'button',\n disabled,\n children,\n onClick,\n ...props\n}: ButtonProps) {\n const isLoading = loading === true;\n const hasLoadingState = loading !== undefined;\n const resolvedSize: ButtonSize = size ?? 'default';\n const baseClasses = buttonVariants({ variant, size: resolvedSize });\n const classes = cn(\n baseClasses,\n iconPadding(resolvedSize, children),\n className,\n );\n const loadingClasses = cn(\n baseClasses,\n loadingPadding(resolvedSize),\n className,\n );\n\n if (asChild) {\n const Comp = asChild ? Slot : 'button';\n const mappedSpinnerSize = spinnerSize(resolvedSize);\n const slottedChild = React.isValidElement<\n React.HTMLAttributes<HTMLElement>\n >(children)\n ? children\n : undefined;\n const items = React.Children.toArray(slottedChild?.props.children);\n const first = items[0];\n const iconOnly = resolvedSize.startsWith('icon');\n const hasLeadingVisual =\n React.isValidElement(first) && (items.length > 1 || iconOnly);\n const leadingVisual = hasLeadingVisual ? first : undefined;\n const label = hasLeadingVisual ? items.slice(1) : items;\n const slottedChildren =\n hasLoadingState && slottedChild\n ? React.cloneElement(\n slottedChild,\n isLoading\n ? {\n onClick(event) {\n event.preventDefault();\n event.stopPropagation();\n },\n }\n : undefined,\n <span\n data-slot=\"button-content\"\n className=\"inline-flex items-center gap-[inherit]\"\n >\n <span\n data-slot=\"button-leading\"\n className={cn(\n 'inline-grid shrink-0 place-items-center',\n spinnerVariants({ size: mappedSpinnerSize }),\n )}\n >\n {isLoading ? (\n <Spinner\n size={mappedSpinnerSize}\n label={loadingLabel}\n className=\"size-full\"\n />\n ) : (\n leadingVisual\n )}\n </span>\n <span data-slot=\"button-label\">{label}</span>\n {!hasLeadingVisual && !iconOnly && (\n <span\n aria-hidden=\"true\"\n data-slot=\"button-balance\"\n className={spinnerVariants({\n size: mappedSpinnerSize,\n })}\n />\n )}\n </span>,\n )\n : children;\n\n return (\n <Comp\n {...props}\n data-slot={slotName}\n data-variant={variant}\n data-size={resolvedSize}\n data-loading={isLoading || undefined}\n className={hasLoadingState ? loadingClasses : classes}\n disabled={disabled || isLoading}\n aria-busy={isLoading ? true : props['aria-busy']}\n aria-disabled={isLoading ? true : props['aria-disabled']}\n onClick={isLoading ? undefined : onClick}\n >\n {slottedChildren}\n </Comp>\n );\n }\n\n if (loading === undefined) {\n return (\n <button\n {...props}\n data-slot={slotName}\n data-variant={variant}\n data-size={resolvedSize}\n className={classes}\n disabled={disabled}\n onClick={onClick}\n >\n {children}\n </button>\n );\n }\n\n const items = React.Children.toArray(children);\n const first = items[0];\n const iconOnly = resolvedSize.startsWith('icon');\n const hasLeadingVisual =\n React.isValidElement(first) && (items.length > 1 || iconOnly);\n const leadingVisual = hasLeadingVisual ? first : undefined;\n const label = hasLeadingVisual ? items.slice(1) : items;\n const mappedSpinnerSize = spinnerSize(resolvedSize);\n\n return (\n <button\n {...props}\n data-slot={slotName}\n data-variant={variant}\n data-size={resolvedSize}\n data-loading={isLoading || undefined}\n className={loadingClasses}\n disabled={disabled || isLoading}\n aria-busy={isLoading ? true : props['aria-busy']}\n onClick={onClick}\n >\n <span\n data-slot=\"button-content\"\n className=\"inline-flex items-center gap-[inherit]\"\n >\n <span\n data-slot=\"button-leading\"\n className={cn(\n 'inline-grid shrink-0 place-items-center',\n spinnerVariants({ size: mappedSpinnerSize }),\n )}\n >\n {isLoading ? (\n <Spinner\n size={mappedSpinnerSize}\n label={loadingLabel}\n className=\"size-full\"\n />\n ) : (\n leadingVisual\n )}\n </span>\n <span data-slot=\"button-label\">{label}</span>\n {!hasLeadingVisual && !iconOnly && (\n <span\n aria-hidden=\"true\"\n data-slot=\"button-balance\"\n className={spinnerVariants({\n size: mappedSpinnerSize,\n })}\n />\n )}\n </span>\n </button>\n );\n}\n\nexport { Button, buttonVariants, type ButtonProps };\n"],"mappings":";AAAA,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AACxC,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC/B;;;ACLO,IAAM,gBAAgB;AAEtB,IAAM,gBAAgB;AAEtB,IAAM,gBAAgB;AAEtB,IAAM,YACT;AAEG,IAAM,kBAAkB,GAAG,SAAS,IAAI,aAAa;AAErD,IAAM,kBAAkB,GAAG,SAAS;AAEpC,IAAM,eAAe,GAAG,eAAe,IAAI,aAAa;AAExD,IAAM,eAAe,GAAG,eAAe,IAAI,aAAa;AAExD,IAAM,cAAc,GAAG,YAAY;AAEnC,IAAM,cAAc;AAEpB,IAAM,kBAAkB,GAAG,aAAa;AAExC,IAAM,eAAe;AAErB,IAAM,qBACT;AAEG,IAAM,mBAAmB;AAEzB,IAAM,eACT;AAEG,IAAM,cAAc;AAEpB,IAAM,YAAY;AAElB,IAAM,eAAe,GAAG,YAAY,IAAI,WAAW,IAAI,aAAa,IAAI,SAAS;AAEjF,IAAM,YACT;AAEG,IAAM,aAAa,GAAG,SAAS;AAE/B,IAAM,gBACT;AAUG,SAAS,QAAQ,OAAgC;AACpD,SAAO,QAAQ,GAAG,eAAe,IAAI,eAAe,KAAK;AAC7D;;;ACzDA,SAAS,WAA8B;AACvC,SAAS,oBAAoB;AAgCrB,SAOI,KAPJ;AA1BR,IAAM,kBAAkB,IAAI,wBAAwB;AAAA,EAChD,UAAU;AAAA,IACN,MAAM;AAAA,MACF,IAAI;AAAA,MACJ,SAAS;AAAA,MACT,IAAI;AAAA,IACR;AAAA,EACJ;AAAA,EACA,iBAAiB;AAAA,IACb,MAAM;AAAA,EACV;AACJ,CAAC;AAOD,SAAS,QAAQ;AAAA,EACb;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,WAAW;AAAA,EACX,GAAG;AACP,GAAiC;AAC7B,SACI;AAAA,IAAC;AAAA;AAAA,MACI,GAAG;AAAA,MACJ,aAAW;AAAA,MACX,MAAK;AAAA,MACL,WAAW,GAAG,gBAAgB,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,MAClD,aAAW;AAAA,MAEX;AAAA;AAAA,UAAC;AAAA;AAAA,YACG,eAAY;AAAA,YACZ,WAAU;AAAA;AAAA,QACd;AAAA,QACA,oBAAC,UAAK,WAAU,WAAW,iBAAM;AAAA;AAAA;AAAA,EACrC;AAER;;;AC/CA,SAAS,YAAY;AACrB,SAAS,OAAAA,YAA8B;AACvC,YAAY,WAAW;AAmJD,SAYY,OAAAC,MAZZ,QAAAC,aAAA;AAzItB,IAAM,iBAAiBC;AAAA,EACnB,gVAAgV,SAAS;AAAA,EACzV;AAAA,IACI,UAAU;AAAA,MACN,SAAS;AAAA,QACL,SACI;AAAA,QACJ,aACI;AAAA,QACJ,SAAS,GAAG,YAAY,IAAI,WAAW;AAAA,QACvC,WAAW,GAAG,YAAY;AAAA,QAC1B,OAAO;AAAA,QACP,MAAM;AAAA,MACV;AAAA,MACA,MAAM;AAAA,QACF,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,QACN,WAAW;AAAA,QACX,WAAW;AAAA,MACf;AAAA,IACJ;AAAA,IACA,iBAAiB;AAAA,MACb,SAAS;AAAA,MACT,MAAM;AAAA,IACV;AAAA,EACJ;AACJ;AAcA,SAAS,YAAY,MAAwC;AACzD,MAAI,SAAS,QAAQ,SAAS,UAAW,QAAO;AAChD,MAAI,SAAS,QAAQ,SAAS,UAAW,QAAO;AAChD,SAAO;AACX;AAEA,IAAM,eACF;AAAA,EACI,SAAS,EAAE,SAAS,QAAQ,UAAU,OAAO;AAAA,EAC7C,IAAI,EAAE,SAAS,UAAU,UAAU,SAAS;AAAA,EAC5C,IAAI,EAAE,SAAS,QAAQ,UAAU,OAAO;AAAA,EACxC,MAAM,EAAE,SAAS,IAAI,UAAU,GAAG;AAAA,EAClC,WAAW,EAAE,SAAS,IAAI,UAAU,GAAG;AAAA,EACvC,WAAW,EAAE,SAAS,IAAI,UAAU,GAAG;AAC3C;AAEJ,SAAS,YAAY,MAAkB,UAAmC;AACtE,QAAM,QAAc,eAAS,QAAQ,QAAQ,EAAE;AAAA,IAC3C,CAAC,SAAS,OAAO,SAAS,YAAY,KAAK,KAAK,MAAM;AAAA,EAC1D;AAEA,MAAI,MAAM,SAAS,GAAG;AAClB,WAAO;AAAA,EACX;AAEA,QAAM,QAAQ,aAAa,IAAI;AAE/B,SAAO;AAAA,IACG,qBAAe,MAAM,CAAC,CAAC,KAAK,MAAM;AAAA,IAClC,qBAAe,MAAM,MAAM,SAAS,CAAC,CAAC,KAAK,MAAM;AAAA,EAC3D;AACJ;AAEA,SAAS,eAAe,MAAsC;AAC1D,MAAI,SAAS,KAAM,QAAO;AAC1B,MAAI,SAAS,KAAM,QAAO;AAC1B,MAAI,SAAS,UAAW,QAAO;AAC/B,SAAO;AACX;AAEA,SAAS,OAAO;AAAA,EACZ;AAAA,EACA,UAAU;AAAA,EACV,OAAO;AAAA,EACP,UAAU;AAAA,EACV;AAAA,EACA,eAAe;AAAA,EACf,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,GAAgB;AACZ,QAAM,YAAY,YAAY;AAC9B,QAAM,kBAAkB,YAAY;AACpC,QAAM,eAA2B,QAAQ;AACzC,QAAM,cAAc,eAAe,EAAE,SAAS,MAAM,aAAa,CAAC;AAClE,QAAM,UAAU;AAAA,IACZ;AAAA,IACA,YAAY,cAAc,QAAQ;AAAA,IAClC;AAAA,EACJ;AACA,QAAM,iBAAiB;AAAA,IACnB;AAAA,IACA,eAAe,YAAY;AAAA,IAC3B;AAAA,EACJ;AAEA,MAAI,SAAS;AACT,UAAM,OAAO,UAAU,OAAO;AAC9B,UAAMC,qBAAoB,YAAY,YAAY;AAClD,UAAM,eAAqB,qBAEzB,QAAQ,IACJ,WACA;AACN,UAAMC,SAAc,eAAS,QAAQ,cAAc,MAAM,QAAQ;AACjE,UAAMC,SAAQD,OAAM,CAAC;AACrB,UAAME,YAAW,aAAa,WAAW,MAAM;AAC/C,UAAMC,oBACI,qBAAeF,MAAK,MAAMD,OAAM,SAAS,KAAKE;AACxD,UAAME,iBAAgBD,oBAAmBF,SAAQ;AACjD,UAAMI,SAAQF,oBAAmBH,OAAM,MAAM,CAAC,IAAIA;AAClD,UAAM,kBACF,mBAAmB,eACP;AAAA,MACF;AAAA,MACA,YACM;AAAA,QACI,QAAQ,OAAO;AACX,gBAAM,eAAe;AACrB,gBAAM,gBAAgB;AAAA,QAC1B;AAAA,MACJ,IACA;AAAA,MACN,gBAAAH;AAAA,QAAC;AAAA;AAAA,UACG,aAAU;AAAA,UACV,WAAU;AAAA,UAEV;AAAA,4BAAAD;AAAA,cAAC;AAAA;AAAA,gBACG,aAAU;AAAA,gBACV,WAAW;AAAA,kBACP;AAAA,kBACA,gBAAgB,EAAE,MAAMG,mBAAkB,CAAC;AAAA,gBAC/C;AAAA,gBAEC,sBACG,gBAAAH;AAAA,kBAAC;AAAA;AAAA,oBACG,MAAMG;AAAA,oBACN,OAAO;AAAA,oBACP,WAAU;AAAA;AAAA,gBACd,IAEAK;AAAA;AAAA,YAER;AAAA,YACA,gBAAAR,KAAC,UAAK,aAAU,gBAAgB,UAAAS,QAAM;AAAA,YACrC,CAACF,qBAAoB,CAACD,aACnB,gBAAAN;AAAA,cAAC;AAAA;AAAA,gBACG,eAAY;AAAA,gBACZ,aAAU;AAAA,gBACV,WAAW,gBAAgB;AAAA,kBACvB,MAAMG;AAAA,gBACV,CAAC;AAAA;AAAA,YACL;AAAA;AAAA;AAAA,MAER;AAAA,IACJ,IACA;AAEV,WACI,gBAAAH;AAAA,MAAC;AAAA;AAAA,QACI,GAAG;AAAA,QACJ,aAAW;AAAA,QACX,gBAAc;AAAA,QACd,aAAW;AAAA,QACX,gBAAc,aAAa;AAAA,QAC3B,WAAW,kBAAkB,iBAAiB;AAAA,QAC9C,UAAU,YAAY;AAAA,QACtB,aAAW,YAAY,OAAO,MAAM,WAAW;AAAA,QAC/C,iBAAe,YAAY,OAAO,MAAM,eAAe;AAAA,QACvD,SAAS,YAAY,SAAY;AAAA,QAEhC;AAAA;AAAA,IACL;AAAA,EAER;AAEA,MAAI,YAAY,QAAW;AACvB,WACI,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACI,GAAG;AAAA,QACJ,aAAW;AAAA,QACX,gBAAc;AAAA,QACd,aAAW;AAAA,QACX,WAAW;AAAA,QACX;AAAA,QACA;AAAA,QAEC;AAAA;AAAA,IACL;AAAA,EAER;AAEA,QAAM,QAAc,eAAS,QAAQ,QAAQ;AAC7C,QAAM,QAAQ,MAAM,CAAC;AACrB,QAAM,WAAW,aAAa,WAAW,MAAM;AAC/C,QAAM,mBACI,qBAAe,KAAK,MAAM,MAAM,SAAS,KAAK;AACxD,QAAM,gBAAgB,mBAAmB,QAAQ;AACjD,QAAM,QAAQ,mBAAmB,MAAM,MAAM,CAAC,IAAI;AAClD,QAAM,oBAAoB,YAAY,YAAY;AAElD,SACI,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACI,GAAG;AAAA,MACJ,aAAW;AAAA,MACX,gBAAc;AAAA,MACd,aAAW;AAAA,MACX,gBAAc,aAAa;AAAA,MAC3B,WAAW;AAAA,MACX,UAAU,YAAY;AAAA,MACtB,aAAW,YAAY,OAAO,MAAM,WAAW;AAAA,MAC/C;AAAA,MAEA,0BAAAC;AAAA,QAAC;AAAA;AAAA,UACG,aAAU;AAAA,UACV,WAAU;AAAA,UAEV;AAAA,4BAAAD;AAAA,cAAC;AAAA;AAAA,gBACG,aAAU;AAAA,gBACV,WAAW;AAAA,kBACP;AAAA,kBACA,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAAA,gBAC/C;AAAA,gBAEC,sBACG,gBAAAA;AAAA,kBAAC;AAAA;AAAA,oBACG,MAAM;AAAA,oBACN,OAAO;AAAA,oBACP,WAAU;AAAA;AAAA,gBACd,IAEA;AAAA;AAAA,YAER;AAAA,YACA,gBAAAA,KAAC,UAAK,aAAU,gBAAgB,iBAAM;AAAA,YACrC,CAAC,oBAAoB,CAAC,YACnB,gBAAAA;AAAA,cAAC;AAAA;AAAA,gBACG,eAAY;AAAA,gBACZ,aAAU;AAAA,gBACV,WAAW,gBAAgB;AAAA,kBACvB,MAAM;AAAA,gBACV,CAAC;AAAA;AAAA,YACL;AAAA;AAAA;AAAA,MAER;AAAA;AAAA,EACJ;AAER;","names":["cva","jsx","jsxs","cva","mappedSpinnerSize","items","first","iconOnly","hasLeadingVisual","leadingVisual","label"]}
|
package/dist/chunk-L2H5GIF7.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { createElement } from 'react';
|
|
2
|
-
|
|
3
1
|
// src/lib/href.ts
|
|
2
|
+
import { createElement } from "react";
|
|
4
3
|
function hrefToString(href) {
|
|
5
4
|
return typeof href === "string" ? href : href.url;
|
|
6
5
|
}
|
|
@@ -17,6 +16,8 @@ function resolveLink(linkComponent) {
|
|
|
17
16
|
return linkComponent ?? DefaultLink;
|
|
18
17
|
}
|
|
19
18
|
|
|
20
|
-
export {
|
|
21
|
-
|
|
19
|
+
export {
|
|
20
|
+
hrefToString,
|
|
21
|
+
resolveLink
|
|
22
|
+
};
|
|
22
23
|
//# sourceMappingURL=chunk-L2H5GIF7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/href.ts"],"
|
|
1
|
+
{"version":3,"sources":["../src/lib/href.ts"],"sourcesContent":["import type { ComponentType } from 'react';\nimport { createElement } from 'react';\n\nimport type { LinkComponent, LinkProps, UrlLike } from '@/types';\n\nexport function hrefToString(href: UrlLike): string {\n return typeof href === 'string' ? href : href.url;\n}\n\nexport const DefaultLink: ComponentType<LinkProps> = ({\n href,\n children,\n prefetch: _prefetch,\n as: _as,\n ...props\n}) => {\n return createElement('a', { href: hrefToString(href), ...props }, children);\n};\n\nexport function resolveLink(linkComponent?: LinkComponent): LinkComponent {\n return linkComponent ?? DefaultLink;\n}\n"],"mappings":";AACA,SAAS,qBAAqB;AAIvB,SAAS,aAAa,MAAuB;AAChD,SAAO,OAAO,SAAS,WAAW,OAAO,KAAK;AAClD;AAEO,IAAM,cAAwC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,IAAI;AAAA,EACJ,GAAG;AACP,MAAM;AACF,SAAO,cAAc,KAAK,EAAE,MAAM,aAAa,IAAI,GAAG,GAAG,MAAM,GAAG,QAAQ;AAC9E;AAEO,SAAS,YAAY,eAA8C;AACtE,SAAO,iBAAiB;AAC5B;","names":[]}
|