@n3wth/ui 0.7.0 → 0.9.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/dist/atoms/AnimatedText/AnimatedText.js +65 -0
- package/dist/atoms/AnimatedText/AnimatedText.js.map +1 -0
- package/dist/atoms/Avatar/Avatar.js +55 -0
- package/dist/atoms/Avatar/Avatar.js.map +1 -0
- package/dist/atoms/Badge/Badge.js +57 -0
- package/dist/atoms/Badge/Badge.js.map +1 -0
- package/dist/atoms/Button/Button.js +92 -0
- package/dist/atoms/Button/Button.js.map +1 -0
- package/dist/atoms/Character/Character.js +155 -0
- package/dist/atoms/Character/Character.js.map +1 -0
- package/dist/atoms/CodeBlock/CodeBlock.js +75 -0
- package/dist/atoms/CodeBlock/CodeBlock.js.map +1 -0
- package/dist/atoms/HamburgerIcon/HamburgerIcon.js +50 -0
- package/dist/atoms/HamburgerIcon/HamburgerIcon.js.map +1 -0
- package/dist/atoms/Icon/Icon.js +199 -0
- package/dist/atoms/Icon/Icon.js.map +1 -0
- package/dist/atoms/Input/Input.js +80 -0
- package/dist/atoms/Input/Input.js.map +1 -0
- package/dist/atoms/Label/Label.js +32 -0
- package/dist/atoms/Label/Label.js.map +1 -0
- package/dist/atoms/NoiseOverlay/NoiseOverlay.js +32 -0
- package/dist/atoms/NoiseOverlay/NoiseOverlay.js.map +1 -0
- package/dist/atoms/Progress/Progress.js +63 -0
- package/dist/atoms/Progress/Progress.js.map +1 -0
- package/dist/atoms/ScrollIndicator/ScrollIndicator.js +51 -0
- package/dist/atoms/ScrollIndicator/ScrollIndicator.js.map +1 -0
- package/dist/atoms/Separator/Separator.js +28 -0
- package/dist/atoms/Separator/Separator.js.map +1 -0
- package/dist/atoms/Shape/Shape.js +110 -0
- package/dist/atoms/Shape/Shape.js.map +1 -0
- package/dist/atoms/Shape/patterns.js +66 -0
- package/dist/atoms/Shape/patterns.js.map +1 -0
- package/dist/atoms/Skeleton/Skeleton.js +77 -0
- package/dist/atoms/Skeleton/Skeleton.js.map +1 -0
- package/dist/atoms/SpeechBubble/SpeechBubble.js +98 -0
- package/dist/atoms/SpeechBubble/SpeechBubble.js.map +1 -0
- package/dist/atoms/Switch/Switch.js +78 -0
- package/dist/atoms/Switch/Switch.js.map +1 -0
- package/dist/atoms/Textarea/Textarea.js +40 -0
- package/dist/atoms/Textarea/Textarea.js.map +1 -0
- package/dist/atoms/Tooltip/Tooltip.js +153 -0
- package/dist/atoms/Tooltip/Tooltip.js.map +1 -0
- package/dist/hooks/useButtonPulse.js +43 -0
- package/dist/hooks/useButtonPulse.js.map +1 -0
- package/dist/hooks/useCountUp.js +52 -0
- package/dist/hooks/useCountUp.js.map +1 -0
- package/dist/hooks/useKeyboardShortcuts.js +37 -0
- package/dist/hooks/useKeyboardShortcuts.js.map +1 -0
- package/dist/hooks/useMediaQuery.js +59 -0
- package/dist/hooks/useMediaQuery.js.map +1 -0
- package/dist/hooks/usePageTransition.js +39 -0
- package/dist/hooks/usePageTransition.js.map +1 -0
- package/dist/hooks/useReducedMotion.js +57 -0
- package/dist/hooks/useReducedMotion.js.map +1 -0
- package/dist/hooks/useScrollReveal.js +61 -0
- package/dist/hooks/useScrollReveal.js.map +1 -0
- package/dist/hooks/useStaggerList.js +54 -0
- package/dist/hooks/useStaggerList.js.map +1 -0
- package/dist/hooks/useTextReveal.js +59 -0
- package/dist/hooks/useTextReveal.js.map +1 -0
- package/dist/hooks/useTheme.js +37 -0
- package/dist/hooks/useTheme.js.map +1 -0
- package/dist/hooks/useToast.js +84 -0
- package/dist/hooks/useToast.js.map +1 -0
- package/dist/index.js +147 -7925
- package/dist/index.js.map +1 -1
- package/dist/molecules/Accordion/Accordion.js +178 -0
- package/dist/molecules/Accordion/Accordion.js.map +1 -0
- package/dist/molecules/Card/Card.js +104 -0
- package/dist/molecules/Card/Card.js.map +1 -0
- package/dist/molecules/CommandBox/CommandBox.js +65 -0
- package/dist/molecules/CommandBox/CommandBox.js.map +1 -0
- package/dist/molecules/CompositeShape/CompositeShape.js +69 -0
- package/dist/molecules/CompositeShape/CompositeShape.js.map +1 -0
- package/dist/molecules/CompositeShape/presets.js +71 -0
- package/dist/molecules/CompositeShape/presets.js.map +1 -0
- package/dist/molecules/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/molecules/Dropdown/Dropdown.js +530 -0
- package/dist/molecules/Dropdown/Dropdown.js.map +1 -0
- package/dist/molecules/ErrorBoundary/ErrorBoundary.js +128 -0
- package/dist/molecules/ErrorBoundary/ErrorBoundary.js.map +1 -0
- package/dist/molecules/MobileDrawer/MobileDrawer.js +78 -0
- package/dist/molecules/MobileDrawer/MobileDrawer.js.map +1 -0
- package/dist/molecules/Modal/Modal.js +262 -0
- package/dist/molecules/Modal/Modal.js.map +1 -0
- package/dist/molecules/NavLink/NavLink.js +38 -0
- package/dist/molecules/NavLink/NavLink.js.map +1 -0
- package/dist/molecules/Tabs/Tabs.js +188 -0
- package/dist/molecules/Tabs/Tabs.js.map +1 -0
- package/dist/molecules/ThemeToggle/ThemeToggle.js +48 -0
- package/dist/molecules/ThemeToggle/ThemeToggle.js.map +1 -0
- package/dist/molecules/Toast/Toast.js +156 -0
- package/dist/molecules/Toast/Toast.js.map +1 -0
- package/dist/node_modules/clsx/dist/clsx.js +17 -0
- package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/IconoirContext.js +6 -0
- package/dist/node_modules/iconoir-react/dist/esm/IconoirContext.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/ArrowDown.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/ArrowDown.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/ArrowLeft.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/ArrowLeft.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/ArrowRight.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/ArrowRight.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/ArrowUp.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/ArrowUp.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/ArrowUpRight.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/ArrowUpRight.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Bell.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Bell.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Calendar.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Calendar.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Check.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Check.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/CheckCircle.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/CheckCircle.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Clock.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Clock.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Code.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Code.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Copy.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Copy.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Download.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Download.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/EditPencil.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/EditPencil.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Eye.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Eye.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/EyeClosed.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/EyeClosed.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Filter.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Filter.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Folder.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Folder.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Github.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Github.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/HalfMoon.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/HalfMoon.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Heart.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Heart.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Home.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Home.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/InfoCircle.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/InfoCircle.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Link.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Link.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/List.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/List.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Lock.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Lock.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/LockSlash.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/LockSlash.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Mail.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Mail.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Menu.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Menu.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Minus.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Minus.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/MoreHoriz.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/MoreHoriz.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/MoreVert.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/MoreVert.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/NavArrowDown.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/NavArrowDown.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/NavArrowLeft.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/NavArrowLeft.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/NavArrowRight.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/NavArrowRight.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/NavArrowUp.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/NavArrowUp.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/OpenInWindow.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/OpenInWindow.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Page.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Page.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Plus.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Plus.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/RefreshDouble.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/RefreshDouble.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Search.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Search.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Settings.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Settings.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/SortDown.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/SortDown.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Sparks.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Sparks.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Star.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Star.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/SunLight.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/SunLight.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Terminal.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Terminal.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Trash.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Trash.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Upload.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Upload.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/User.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/User.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/ViewGrid.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/ViewGrid.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/WarningTriangle.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/WarningTriangle.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Xmark.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/Xmark.js.map +1 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/XmarkCircle.js +17 -0
- package/dist/node_modules/iconoir-react/dist/esm/regular/XmarkCircle.js.map +1 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2996 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/dist/organisms/Footer/Footer.js +108 -0
- package/dist/organisms/Footer/Footer.js.map +1 -0
- package/dist/organisms/Hero/Hero.d.ts.map +1 -1
- package/dist/organisms/Hero/Hero.js +101 -0
- package/dist/organisms/Hero/Hero.js.map +1 -0
- package/dist/organisms/Nav/Nav.js +177 -0
- package/dist/organisms/Nav/Nav.js.map +1 -0
- package/dist/organisms/Section/Section.js +57 -0
- package/dist/organisms/Section/Section.js.map +1 -0
- package/dist/theme.css +86 -0
- package/dist/tokens/colors.js +105 -0
- package/dist/tokens/colors.js.map +1 -0
- package/dist/tokens/effects.js +26 -0
- package/dist/tokens/effects.js.map +1 -0
- package/dist/tokens/motion.js +25 -0
- package/dist/tokens/motion.js.map +1 -0
- package/dist/tokens/spacing.js +31 -0
- package/dist/tokens/spacing.js.map +1 -0
- package/dist/tokens/typography.js +63 -0
- package/dist/tokens/typography.js.map +1 -0
- package/dist/utils/cn.js +9 -0
- package/dist/utils/cn.js.map +1 -0
- package/package.json +8 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HamburgerIcon.js","sources":["../../../src/atoms/HamburgerIcon/HamburgerIcon.tsx"],"sourcesContent":["import { type SVGProps } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface HamburgerIconProps extends SVGProps<SVGSVGElement> {\n /** Whether the menu is open (shows X) or closed (shows hamburger) */\n isOpen: boolean\n /** Size of the icon */\n size?: number\n}\n\nexport function HamburgerIcon({\n isOpen,\n size = 24,\n className,\n ...props\n}: HamburgerIconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn('transition-transform duration-300', className)}\n aria-hidden=\"true\"\n {...props}\n >\n <path\n d={isOpen ? 'M18 6L6 18' : 'M4 6h16'}\n className=\"origin-center transition-all duration-300\"\n />\n <path\n d={isOpen ? 'M6 6l12 12' : 'M4 12h16'}\n className={cn(\n 'origin-center transition-all duration-300',\n isOpen && 'opacity-0'\n )}\n />\n {!isOpen && <path d=\"M4 18h16\" />}\n </svg>\n )\n}\n"],"names":["HamburgerIcon","isOpen","size","className","props","jsxs","cn","jsx"],"mappings":";;AAUO,SAASA,EAAc;AAAA,EAC5B,QAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,WAAAC;AAAA,EACA,GAAGC;AACL,GAAuB;AACrB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,OAAOH;AAAA,MACP,QAAQA;AAAA,MACR,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,QAAO;AAAA,MACP,aAAY;AAAA,MACZ,eAAc;AAAA,MACd,gBAAe;AAAA,MACf,WAAWI,EAAG,qCAAqCH,CAAS;AAAA,MAC5D,eAAY;AAAA,MACX,GAAGC;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAG;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAGN,IAAS,eAAe;AAAA,YAC3B,WAAU;AAAA,UAAA;AAAA,QAAA;AAAA,QAEZ,gBAAAM;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAGN,IAAS,eAAe;AAAA,YAC3B,WAAWK;AAAA,cACT;AAAA,cACAL,KAAU;AAAA,YAAA;AAAA,UACZ;AAAA,QAAA;AAAA,QAED,CAACA,KAAU,gBAAAM,EAAC,QAAA,EAAK,GAAE,WAAA,CAAW;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGrC;"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import f from "../../node_modules/iconoir-react/dist/esm/regular/ArrowDown.js";
|
|
3
|
+
import p from "../../node_modules/iconoir-react/dist/esm/regular/ArrowLeft.js";
|
|
4
|
+
import n from "../../node_modules/iconoir-react/dist/esm/regular/ArrowRight.js";
|
|
5
|
+
import l from "../../node_modules/iconoir-react/dist/esm/regular/ArrowUpRight.js";
|
|
6
|
+
import $ from "../../node_modules/iconoir-react/dist/esm/regular/ArrowUp.js";
|
|
7
|
+
import c from "../../node_modules/iconoir-react/dist/esm/regular/Bell.js";
|
|
8
|
+
import h from "../../node_modules/iconoir-react/dist/esm/regular/Calendar.js";
|
|
9
|
+
import w from "../../node_modules/iconoir-react/dist/esm/regular/CheckCircle.js";
|
|
10
|
+
import d from "../../node_modules/iconoir-react/dist/esm/regular/Check.js";
|
|
11
|
+
import u from "../../node_modules/iconoir-react/dist/esm/regular/Clock.js";
|
|
12
|
+
import k from "../../node_modules/iconoir-react/dist/esm/regular/Code.js";
|
|
13
|
+
import x from "../../node_modules/iconoir-react/dist/esm/regular/Copy.js";
|
|
14
|
+
import g from "../../node_modules/iconoir-react/dist/esm/regular/Download.js";
|
|
15
|
+
import S from "../../node_modules/iconoir-react/dist/esm/regular/EditPencil.js";
|
|
16
|
+
import C from "../../node_modules/iconoir-react/dist/esm/regular/EyeClosed.js";
|
|
17
|
+
import L from "../../node_modules/iconoir-react/dist/esm/regular/Eye.js";
|
|
18
|
+
import v from "../../node_modules/iconoir-react/dist/esm/regular/Filter.js";
|
|
19
|
+
import A from "../../node_modules/iconoir-react/dist/esm/regular/Folder.js";
|
|
20
|
+
import b from "../../node_modules/iconoir-react/dist/esm/regular/Github.js";
|
|
21
|
+
import y from "../../node_modules/iconoir-react/dist/esm/regular/HalfMoon.js";
|
|
22
|
+
import M from "../../node_modules/iconoir-react/dist/esm/regular/Heart.js";
|
|
23
|
+
import N from "../../node_modules/iconoir-react/dist/esm/regular/Home.js";
|
|
24
|
+
import D from "../../node_modules/iconoir-react/dist/esm/regular/InfoCircle.js";
|
|
25
|
+
import I from "../../node_modules/iconoir-react/dist/esm/regular/Link.js";
|
|
26
|
+
import U from "../../node_modules/iconoir-react/dist/esm/regular/List.js";
|
|
27
|
+
import H from "../../node_modules/iconoir-react/dist/esm/regular/LockSlash.js";
|
|
28
|
+
import P from "../../node_modules/iconoir-react/dist/esm/regular/Lock.js";
|
|
29
|
+
import R from "../../node_modules/iconoir-react/dist/esm/regular/Mail.js";
|
|
30
|
+
import z from "../../node_modules/iconoir-react/dist/esm/regular/Menu.js";
|
|
31
|
+
import E from "../../node_modules/iconoir-react/dist/esm/regular/Minus.js";
|
|
32
|
+
import T from "../../node_modules/iconoir-react/dist/esm/regular/MoreHoriz.js";
|
|
33
|
+
import V from "../../node_modules/iconoir-react/dist/esm/regular/MoreVert.js";
|
|
34
|
+
import W from "../../node_modules/iconoir-react/dist/esm/regular/NavArrowDown.js";
|
|
35
|
+
import j from "../../node_modules/iconoir-react/dist/esm/regular/NavArrowLeft.js";
|
|
36
|
+
import F from "../../node_modules/iconoir-react/dist/esm/regular/NavArrowRight.js";
|
|
37
|
+
import G from "../../node_modules/iconoir-react/dist/esm/regular/NavArrowUp.js";
|
|
38
|
+
import X from "../../node_modules/iconoir-react/dist/esm/regular/OpenInWindow.js";
|
|
39
|
+
import B from "../../node_modules/iconoir-react/dist/esm/regular/Page.js";
|
|
40
|
+
import O from "../../node_modules/iconoir-react/dist/esm/regular/Plus.js";
|
|
41
|
+
import q from "../../node_modules/iconoir-react/dist/esm/regular/RefreshDouble.js";
|
|
42
|
+
import J from "../../node_modules/iconoir-react/dist/esm/regular/Search.js";
|
|
43
|
+
import K from "../../node_modules/iconoir-react/dist/esm/regular/Settings.js";
|
|
44
|
+
import Q from "../../node_modules/iconoir-react/dist/esm/regular/SortDown.js";
|
|
45
|
+
import Y from "../../node_modules/iconoir-react/dist/esm/regular/Sparks.js";
|
|
46
|
+
import Z from "../../node_modules/iconoir-react/dist/esm/regular/Star.js";
|
|
47
|
+
import _ from "../../node_modules/iconoir-react/dist/esm/regular/SunLight.js";
|
|
48
|
+
import rr from "../../node_modules/iconoir-react/dist/esm/regular/Terminal.js";
|
|
49
|
+
import or from "../../node_modules/iconoir-react/dist/esm/regular/Trash.js";
|
|
50
|
+
import mr from "../../node_modules/iconoir-react/dist/esm/regular/Upload.js";
|
|
51
|
+
import ir from "../../node_modules/iconoir-react/dist/esm/regular/User.js";
|
|
52
|
+
import tr from "../../node_modules/iconoir-react/dist/esm/regular/ViewGrid.js";
|
|
53
|
+
import ar from "../../node_modules/iconoir-react/dist/esm/regular/WarningTriangle.js";
|
|
54
|
+
import sr from "../../node_modules/iconoir-react/dist/esm/regular/XmarkCircle.js";
|
|
55
|
+
import er from "../../node_modules/iconoir-react/dist/esm/regular/Xmark.js";
|
|
56
|
+
import { cn as fr } from "../../utils/cn.js";
|
|
57
|
+
const pr = {
|
|
58
|
+
"arrow-right": n,
|
|
59
|
+
"arrow-left": p,
|
|
60
|
+
"arrow-up": $,
|
|
61
|
+
"arrow-down": f,
|
|
62
|
+
"chevron-right": F,
|
|
63
|
+
"chevron-left": j,
|
|
64
|
+
"chevron-down": W,
|
|
65
|
+
"chevron-up": G,
|
|
66
|
+
check: d,
|
|
67
|
+
x: er,
|
|
68
|
+
copy: x,
|
|
69
|
+
search: J,
|
|
70
|
+
menu: z,
|
|
71
|
+
sun: _,
|
|
72
|
+
moon: y,
|
|
73
|
+
external: l,
|
|
74
|
+
github: b,
|
|
75
|
+
terminal: rr,
|
|
76
|
+
code: k,
|
|
77
|
+
sparkles: Y,
|
|
78
|
+
plus: O,
|
|
79
|
+
minus: E,
|
|
80
|
+
settings: K,
|
|
81
|
+
user: ir,
|
|
82
|
+
heart: M,
|
|
83
|
+
star: Z,
|
|
84
|
+
mail: R,
|
|
85
|
+
calendar: h,
|
|
86
|
+
clock: u,
|
|
87
|
+
bell: c,
|
|
88
|
+
home: N,
|
|
89
|
+
folder: A,
|
|
90
|
+
file: B,
|
|
91
|
+
trash: or,
|
|
92
|
+
edit: S,
|
|
93
|
+
eye: L,
|
|
94
|
+
"eye-off": C,
|
|
95
|
+
lock: P,
|
|
96
|
+
unlock: H,
|
|
97
|
+
link: I,
|
|
98
|
+
"external-link": X,
|
|
99
|
+
download: g,
|
|
100
|
+
upload: mr,
|
|
101
|
+
refresh: q,
|
|
102
|
+
filter: v,
|
|
103
|
+
sort: Q,
|
|
104
|
+
grid: tr,
|
|
105
|
+
list: U,
|
|
106
|
+
"more-horizontal": T,
|
|
107
|
+
"more-vertical": V,
|
|
108
|
+
info: D,
|
|
109
|
+
warning: ar,
|
|
110
|
+
success: w,
|
|
111
|
+
error: sr
|
|
112
|
+
}, nr = {
|
|
113
|
+
xs: "w-3 h-3",
|
|
114
|
+
sm: "w-4 h-4",
|
|
115
|
+
md: "w-5 h-5",
|
|
116
|
+
lg: "w-6 h-6",
|
|
117
|
+
xl: "w-8 h-8"
|
|
118
|
+
}, lr = {
|
|
119
|
+
xs: 12,
|
|
120
|
+
sm: 16,
|
|
121
|
+
md: 20,
|
|
122
|
+
lg: 24,
|
|
123
|
+
xl: 32
|
|
124
|
+
};
|
|
125
|
+
function ho({ name: o, size: r = "md", className: a, ...s }) {
|
|
126
|
+
const m = pr[o];
|
|
127
|
+
if (!m)
|
|
128
|
+
return console.warn(`Icon "${o}" not found`), null;
|
|
129
|
+
const i = typeof r == "number", t = i ? r : lr[r];
|
|
130
|
+
return /* @__PURE__ */ e(
|
|
131
|
+
m,
|
|
132
|
+
{
|
|
133
|
+
width: t,
|
|
134
|
+
height: t,
|
|
135
|
+
strokeWidth: 1.5,
|
|
136
|
+
className: fr(!i && nr[r], a),
|
|
137
|
+
"aria-hidden": "true",
|
|
138
|
+
...s
|
|
139
|
+
}
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
export {
|
|
143
|
+
f as ArrowDown,
|
|
144
|
+
p as ArrowLeft,
|
|
145
|
+
n as ArrowRight,
|
|
146
|
+
$ as ArrowUp,
|
|
147
|
+
l as ArrowUpRight,
|
|
148
|
+
c as Bell,
|
|
149
|
+
h as Calendar,
|
|
150
|
+
d as Check,
|
|
151
|
+
w as CheckCircle,
|
|
152
|
+
u as Clock,
|
|
153
|
+
k as Code,
|
|
154
|
+
x as Copy,
|
|
155
|
+
g as Download,
|
|
156
|
+
S as EditPencil,
|
|
157
|
+
L as Eye,
|
|
158
|
+
C as EyeClosed,
|
|
159
|
+
v as Filter,
|
|
160
|
+
A as Folder,
|
|
161
|
+
b as Github,
|
|
162
|
+
y as HalfMoon,
|
|
163
|
+
M as Heart,
|
|
164
|
+
N as Home,
|
|
165
|
+
ho as Icon,
|
|
166
|
+
D as InfoCircle,
|
|
167
|
+
I as Link,
|
|
168
|
+
U as List,
|
|
169
|
+
P as Lock,
|
|
170
|
+
H as LockSlash,
|
|
171
|
+
R as Mail,
|
|
172
|
+
z as Menu,
|
|
173
|
+
E as Minus,
|
|
174
|
+
T as MoreHoriz,
|
|
175
|
+
V as MoreVert,
|
|
176
|
+
W as NavArrowDown,
|
|
177
|
+
j as NavArrowLeft,
|
|
178
|
+
F as NavArrowRight,
|
|
179
|
+
G as NavArrowUp,
|
|
180
|
+
X as OpenInWindow,
|
|
181
|
+
B as Page,
|
|
182
|
+
O as Plus,
|
|
183
|
+
q as RefreshDouble,
|
|
184
|
+
J as Search,
|
|
185
|
+
K as Settings,
|
|
186
|
+
Q as SortDown,
|
|
187
|
+
Y as Sparks,
|
|
188
|
+
Z as Star,
|
|
189
|
+
_ as SunLight,
|
|
190
|
+
rr as Terminal,
|
|
191
|
+
or as Trash,
|
|
192
|
+
mr as Upload,
|
|
193
|
+
ir as User,
|
|
194
|
+
tr as ViewGrid,
|
|
195
|
+
ar as WarningTriangle,
|
|
196
|
+
er as Xmark,
|
|
197
|
+
sr as XmarkCircle
|
|
198
|
+
};
|
|
199
|
+
//# sourceMappingURL=Icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icon.js","sources":["../../../src/atoms/Icon/Icon.tsx"],"sourcesContent":["import { type ComponentType, type SVGProps } from 'react'\nimport {\n ArrowRight,\n ArrowLeft,\n ArrowUp,\n ArrowDown,\n NavArrowRight,\n NavArrowLeft,\n NavArrowDown,\n NavArrowUp,\n Check,\n Xmark,\n Copy,\n Search,\n Menu,\n SunLight,\n HalfMoon,\n ArrowUpRight,\n Github,\n Terminal,\n Code,\n Sparks,\n Plus,\n Minus,\n Settings,\n User,\n Heart,\n Star,\n Mail,\n Calendar,\n Clock,\n Bell,\n Home,\n Folder,\n Page,\n Trash,\n EditPencil,\n Eye,\n EyeClosed,\n Lock,\n LockSlash,\n Link,\n OpenInWindow,\n Download,\n Upload,\n RefreshDouble,\n Filter,\n SortDown,\n ViewGrid,\n List,\n MoreHoriz,\n MoreVert,\n InfoCircle,\n WarningTriangle,\n CheckCircle,\n XmarkCircle,\n} from 'iconoir-react'\nimport { cn } from '../../utils/cn'\n\n// Map of icon names to Iconoir components\nconst iconComponents = {\n 'arrow-right': ArrowRight,\n 'arrow-left': ArrowLeft,\n 'arrow-up': ArrowUp,\n 'arrow-down': ArrowDown,\n 'chevron-right': NavArrowRight,\n 'chevron-left': NavArrowLeft,\n 'chevron-down': NavArrowDown,\n 'chevron-up': NavArrowUp,\n check: Check,\n x: Xmark,\n copy: Copy,\n search: Search,\n menu: Menu,\n sun: SunLight,\n moon: HalfMoon,\n external: ArrowUpRight,\n github: Github,\n terminal: Terminal,\n code: Code,\n sparkles: Sparks,\n plus: Plus,\n minus: Minus,\n settings: Settings,\n user: User,\n heart: Heart,\n star: Star,\n mail: Mail,\n calendar: Calendar,\n clock: Clock,\n bell: Bell,\n home: Home,\n folder: Folder,\n file: Page,\n trash: Trash,\n edit: EditPencil,\n eye: Eye,\n 'eye-off': EyeClosed,\n lock: Lock,\n unlock: LockSlash,\n link: Link,\n 'external-link': OpenInWindow,\n download: Download,\n upload: Upload,\n refresh: RefreshDouble,\n filter: Filter,\n sort: SortDown,\n grid: ViewGrid,\n list: List,\n 'more-horizontal': MoreHoriz,\n 'more-vertical': MoreVert,\n info: InfoCircle,\n warning: WarningTriangle,\n success: CheckCircle,\n error: XmarkCircle,\n} as const\n\nexport type IconName = keyof typeof iconComponents\n\nexport interface IconProps extends Omit<SVGProps<SVGSVGElement>, 'ref'> {\n name: IconName\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | number\n}\n\nconst sizeClasses = {\n xs: 'w-3 h-3',\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n xl: 'w-8 h-8',\n}\n\nconst sizePixels = {\n xs: 12,\n sm: 16,\n md: 20,\n lg: 24,\n xl: 32,\n}\n\nexport function Icon({ name, size = 'md', className, ...props }: IconProps) {\n const IconComponent = iconComponents[name] as ComponentType<SVGProps<SVGSVGElement>>\n\n if (!IconComponent) {\n console.warn(`Icon \"${name}\" not found`)\n return null\n }\n\n const isNumericSize = typeof size === 'number'\n const pixelSize = isNumericSize ? size : sizePixels[size]\n\n return (\n <IconComponent\n width={pixelSize}\n height={pixelSize}\n strokeWidth={1.5}\n className={cn(!isNumericSize && sizeClasses[size], className)}\n aria-hidden=\"true\"\n {...props}\n />\n )\n}\n\n// Re-export all iconoir icons for direct use\nexport * from 'iconoir-react'\n"],"names":["iconComponents","ArrowRight","ArrowLeft","ArrowUp","ArrowDown","NavArrowRight","NavArrowLeft","NavArrowDown","NavArrowUp","Check","Xmark","Copy","Search","Menu","SunLight","HalfMoon","ArrowUpRight","Github","Terminal","Code","Sparks","Plus","Minus","Settings","User","Heart","Star","Mail","Calendar","Clock","Bell","Home","Folder","Page","Trash","EditPencil","Eye","EyeClosed","Lock","LockSlash","Link","OpenInWindow","Download","Upload","RefreshDouble","Filter","SortDown","ViewGrid","List","MoreHoriz","MoreVert","InfoCircle","WarningTriangle","CheckCircle","XmarkCircle","sizeClasses","sizePixels","Icon","name","size","className","props","IconComponent","isNumericSize","pixelSize","jsx","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4DA,MAAMA,KAAiB;AAAA,EACrB,eAAeC;AAAAA,EACf,cAAcC;AAAAA,EACd,YAAYC;AAAAA,EACZ,cAAcC;AAAAA,EACd,iBAAiBC;AAAAA,EACjB,gBAAgBC;AAAAA,EAChB,gBAAgBC;AAAAA,EAChB,cAAcC;AAAAA,EACd,OAAOC;AAAAA,EACP,GAAGC;AAAAA,EACH,MAAMC;AAAAA,EACN,QAAQC;AAAAA,EACR,MAAMC;AAAAA,EACN,KAAKC;AAAAA,EACL,MAAMC;AAAAA,EACN,UAAUC;AAAAA,EACV,QAAQC;AAAAA,EACR,UAAUC;AAAAA,EACV,MAAMC;AAAAA,EACN,UAAUC;AAAAA,EACV,MAAMC;AAAAA,EACN,OAAOC;AAAAA,EACP,UAAUC;AAAAA,EACV,MAAMC;AAAAA,EACN,OAAOC;AAAAA,EACP,MAAMC;AAAAA,EACN,MAAMC;AAAAA,EACN,UAAUC;AAAAA,EACV,OAAOC;AAAAA,EACP,MAAMC;AAAAA,EACN,MAAMC;AAAAA,EACN,QAAQC;AAAAA,EACR,MAAMC;AAAAA,EACN,OAAOC;AAAAA,EACP,MAAMC;AAAAA,EACN,KAAKC;AAAAA,EACL,WAAWC;AAAAA,EACX,MAAMC;AAAAA,EACN,QAAQC;AAAAA,EACR,MAAMC;AAAAA,EACN,iBAAiBC;AAAAA,EACjB,UAAUC;AAAAA,EACV,QAAQC;AAAAA,EACR,SAASC;AAAAA,EACT,QAAQC;AAAAA,EACR,MAAMC;AAAAA,EACN,MAAMC;AAAAA,EACN,MAAMC;AAAAA,EACN,mBAAmBC;AAAAA,EACnB,iBAAiBC;AAAAA,EACjB,MAAMC;AAAAA,EACN,SAASC;AAAAA,EACT,SAASC;AAAAA,EACT,OAAOC;AACT,GASMC,KAAc;AAAA,EAClB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEMC,KAAa;AAAA,EACjB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEO,SAASC,GAAK,EAAE,MAAAC,GAAM,MAAAC,IAAO,MAAM,WAAAC,GAAW,GAAGC,KAAoB;AAC1E,QAAMC,IAAgB9D,GAAe0D,CAAI;AAEzC,MAAI,CAACI;AACH,mBAAQ,KAAK,SAASJ,CAAI,aAAa,GAChC;AAGT,QAAMK,IAAgB,OAAOJ,KAAS,UAChCK,IAAYD,IAAgBJ,IAAOH,GAAWG,CAAI;AAExD,SACE,gBAAAM;AAAA,IAACH;AAAA,IAAA;AAAA,MACC,OAAOE;AAAA,MACP,QAAQA;AAAA,MACR,aAAa;AAAA,MACb,WAAWE,GAAG,CAACH,KAAiBR,GAAYI,CAAI,GAAGC,CAAS;AAAA,MAC5D,eAAY;AAAA,MACX,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { jsxs as c, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as y } from "react";
|
|
3
|
+
import { cn as g } from "../../utils/cn.js";
|
|
4
|
+
const N = y(
|
|
5
|
+
({
|
|
6
|
+
variant: b = "default",
|
|
7
|
+
inputSize: r = "md",
|
|
8
|
+
leftIcon: o,
|
|
9
|
+
rightIcon: a,
|
|
10
|
+
error: l = !1,
|
|
11
|
+
labelId: p,
|
|
12
|
+
className: h,
|
|
13
|
+
id: s,
|
|
14
|
+
...v
|
|
15
|
+
}, f) => {
|
|
16
|
+
const t = !!l, n = typeof l == "string" ? l : void 0, i = n && s ? `${s}-error` : void 0, m = [
|
|
17
|
+
"relative inline-flex items-center w-full",
|
|
18
|
+
"border rounded-xl",
|
|
19
|
+
"transition-[border-color,background-color,box-shadow] duration-200",
|
|
20
|
+
"focus-within:border-[var(--color-white)]",
|
|
21
|
+
"focus-glow"
|
|
22
|
+
], x = {
|
|
23
|
+
default: [
|
|
24
|
+
"bg-transparent",
|
|
25
|
+
t ? "border-[var(--color-coral)]" : "border-[var(--glass-border)]",
|
|
26
|
+
"hover:border-[var(--glass-highlight)]"
|
|
27
|
+
],
|
|
28
|
+
glass: [
|
|
29
|
+
"bg-[var(--glass-bg)]",
|
|
30
|
+
"backdrop-blur-lg",
|
|
31
|
+
t ? "border-[var(--color-coral)]" : "border-[var(--glass-border)]",
|
|
32
|
+
"hover:bg-[rgba(255,255,255,0.08)]"
|
|
33
|
+
]
|
|
34
|
+
}, u = {
|
|
35
|
+
sm: "h-8",
|
|
36
|
+
md: "h-10",
|
|
37
|
+
lg: "h-12"
|
|
38
|
+
}, w = {
|
|
39
|
+
sm: "text-xs px-3",
|
|
40
|
+
md: "text-sm px-4",
|
|
41
|
+
lg: "text-base px-5"
|
|
42
|
+
}, d = {
|
|
43
|
+
sm: { left: "pl-8", right: "pr-8" },
|
|
44
|
+
md: { left: "pl-10", right: "pr-10" },
|
|
45
|
+
lg: { left: "pl-12", right: "pr-12" }
|
|
46
|
+
};
|
|
47
|
+
return /* @__PURE__ */ c("div", { className: "flex flex-col gap-1.5", children: [
|
|
48
|
+
/* @__PURE__ */ c("div", { className: g(m, x[b], u[r], h), children: [
|
|
49
|
+
o && /* @__PURE__ */ e("span", { className: "absolute left-3 text-[var(--color-grey-400)] pointer-events-none", "aria-hidden": "true", children: o }),
|
|
50
|
+
/* @__PURE__ */ e(
|
|
51
|
+
"input",
|
|
52
|
+
{
|
|
53
|
+
ref: f,
|
|
54
|
+
id: s,
|
|
55
|
+
className: g(
|
|
56
|
+
"w-full h-full bg-transparent",
|
|
57
|
+
"text-[var(--color-white)]",
|
|
58
|
+
"placeholder:text-[var(--color-grey-600)]",
|
|
59
|
+
"focus:outline-none focus-visible:outline-none",
|
|
60
|
+
w[r],
|
|
61
|
+
o && d[r].left,
|
|
62
|
+
a && d[r].right
|
|
63
|
+
),
|
|
64
|
+
"aria-invalid": t || void 0,
|
|
65
|
+
"aria-describedby": i,
|
|
66
|
+
"aria-labelledby": p,
|
|
67
|
+
...v
|
|
68
|
+
}
|
|
69
|
+
),
|
|
70
|
+
a && /* @__PURE__ */ e("span", { className: "absolute right-3 text-[var(--color-grey-400)]", "aria-hidden": "true", children: a })
|
|
71
|
+
] }),
|
|
72
|
+
n && /* @__PURE__ */ e("span", { id: i, className: "text-xs text-[var(--color-coral)]", role: "alert", children: n })
|
|
73
|
+
] });
|
|
74
|
+
}
|
|
75
|
+
);
|
|
76
|
+
N.displayName = "Input";
|
|
77
|
+
export {
|
|
78
|
+
N as Input
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=Input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../src/atoms/Input/Input.tsx"],"sourcesContent":["import { forwardRef, type InputHTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {\n variant?: 'default' | 'glass'\n inputSize?: 'sm' | 'md' | 'lg'\n leftIcon?: ReactNode\n rightIcon?: ReactNode\n /** Error state - boolean for styling only, or string to display error message */\n error?: boolean | string\n /** Associated label id for accessibility */\n labelId?: string\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n variant = 'default',\n inputSize = 'md',\n leftIcon,\n rightIcon,\n error = false,\n labelId,\n className,\n id,\n ...props\n },\n ref\n ) => {\n const hasError = Boolean(error)\n const errorMessage = typeof error === 'string' ? error : undefined\n const errorId = errorMessage && id ? `${id}-error` : undefined\n const wrapperStyles = [\n 'relative inline-flex items-center w-full',\n 'border rounded-xl',\n 'transition-[border-color,background-color,box-shadow] duration-200',\n 'focus-within:border-[var(--color-white)]',\n 'focus-glow',\n ]\n\n const variants = {\n default: [\n 'bg-transparent',\n hasError ? 'border-[var(--color-coral)]' : 'border-[var(--glass-border)]',\n 'hover:border-[var(--glass-highlight)]',\n ],\n glass: [\n 'bg-[var(--glass-bg)]',\n 'backdrop-blur-lg',\n hasError ? 'border-[var(--color-coral)]' : 'border-[var(--glass-border)]',\n 'hover:bg-[rgba(255,255,255,0.08)]',\n ],\n }\n\n const sizes = {\n sm: 'h-8',\n md: 'h-10',\n lg: 'h-12',\n }\n\n const inputSizes = {\n sm: 'text-xs px-3',\n md: 'text-sm px-4',\n lg: 'text-base px-5',\n }\n\n const iconPadding = {\n sm: { left: 'pl-8', right: 'pr-8' },\n md: { left: 'pl-10', right: 'pr-10' },\n lg: { left: 'pl-12', right: 'pr-12' },\n }\n\n return (\n <div className=\"flex flex-col gap-1.5\">\n <div className={cn(wrapperStyles, variants[variant], sizes[inputSize], className)}>\n {leftIcon && (\n <span className=\"absolute left-3 text-[var(--color-grey-400)] pointer-events-none\" aria-hidden=\"true\">\n {leftIcon}\n </span>\n )}\n <input\n ref={ref}\n id={id}\n className={cn(\n 'w-full h-full bg-transparent',\n 'text-[var(--color-white)]',\n 'placeholder:text-[var(--color-grey-600)]',\n 'focus:outline-none focus-visible:outline-none',\n inputSizes[inputSize],\n leftIcon && iconPadding[inputSize].left,\n rightIcon && iconPadding[inputSize].right\n )}\n aria-invalid={hasError || undefined}\n aria-describedby={errorId}\n aria-labelledby={labelId}\n {...props}\n />\n {rightIcon && (\n <span className=\"absolute right-3 text-[var(--color-grey-400)]\" aria-hidden=\"true\">{rightIcon}</span>\n )}\n </div>\n {errorMessage && (\n <span id={errorId} className=\"text-xs text-[var(--color-coral)]\" role=\"alert\">\n {errorMessage}\n </span>\n )}\n </div>\n )\n }\n)\n\nInput.displayName = 'Input'\n"],"names":["Input","forwardRef","variant","inputSize","leftIcon","rightIcon","error","labelId","className","id","props","ref","hasError","errorMessage","errorId","wrapperStyles","variants","sizes","inputSizes","iconPadding","jsxs","cn","jsx"],"mappings":";;;AAcO,MAAMA,IAAQC;AAAA,EACnB,CACE;AAAA,IACE,SAAAC,IAAU;AAAA,IACV,WAAAC,IAAY;AAAA,IACZ,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,IACR,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,IAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAW,EAAQN,GACnBO,IAAe,OAAOP,KAAU,WAAWA,IAAQ,QACnDQ,IAAUD,KAAgBJ,IAAK,GAAGA,CAAE,WAAW,QAC/CM,IAAgB;AAAA,MACpB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,GAGIC,IAAW;AAAA,MACf,SAAS;AAAA,QACP;AAAA,QACAJ,IAAW,gCAAgC;AAAA,QAC3C;AAAA,MAAA;AAAA,MAEF,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACAA,IAAW,gCAAgC;AAAA,QAC3C;AAAA,MAAA;AAAA,IACF,GAGIK,IAAQ;AAAA,MACZ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,GAGAC,IAAa;AAAA,MACjB,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,GAGAC,IAAc;AAAA,MAClB,IAAI,EAAE,MAAM,QAAQ,OAAO,OAAA;AAAA,MAC3B,IAAI,EAAE,MAAM,SAAS,OAAO,QAAA;AAAA,MAC5B,IAAI,EAAE,MAAM,SAAS,OAAO,QAAA;AAAA,IAAQ;AAGtC,WACE,gBAAAC,EAAC,OAAA,EAAI,WAAU,yBACb,UAAA;AAAA,MAAA,gBAAAA,EAAC,OAAA,EAAI,WAAWC,EAAGN,GAAeC,EAASd,CAAO,GAAGe,EAAMd,CAAS,GAAGK,CAAS,GAC7E,UAAA;AAAA,QAAAJ,uBACE,QAAA,EAAK,WAAU,oEAAmE,eAAY,QAC5F,UAAAA,GACH;AAAA,QAEF,gBAAAkB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAAX;AAAA,YACA,IAAAF;AAAA,YACA,WAAWY;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACAH,EAAWf,CAAS;AAAA,cACpBC,KAAYe,EAAYhB,CAAS,EAAE;AAAA,cACnCE,KAAac,EAAYhB,CAAS,EAAE;AAAA,YAAA;AAAA,YAEtC,gBAAcS,KAAY;AAAA,YAC1B,oBAAkBE;AAAA,YAClB,mBAAiBP;AAAA,YAChB,GAAGG;AAAA,UAAA;AAAA,QAAA;AAAA,QAELL,KACC,gBAAAiB,EAAC,QAAA,EAAK,WAAU,iDAAgD,eAAY,QAAQ,UAAAjB,EAAA,CAAU;AAAA,MAAA,GAElG;AAAA,MACCQ,uBACE,QAAA,EAAK,IAAIC,GAAS,WAAU,qCAAoC,MAAK,SACnE,UAAAD,EAAA,CACH;AAAA,IAAA,GAEJ;AAAA,EAEJ;AACF;AAEAb,EAAM,cAAc;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsxs as s, jsx as m } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as c } from "react";
|
|
3
|
+
import { cn as i } from "../../utils/cn.js";
|
|
4
|
+
const n = c(
|
|
5
|
+
({
|
|
6
|
+
required: r = !1,
|
|
7
|
+
disabled: e = !1,
|
|
8
|
+
children: a,
|
|
9
|
+
className: o,
|
|
10
|
+
...l
|
|
11
|
+
}, t) => /* @__PURE__ */ s(
|
|
12
|
+
"label",
|
|
13
|
+
{
|
|
14
|
+
ref: t,
|
|
15
|
+
className: i(
|
|
16
|
+
"text-sm font-medium text-[var(--color-white)]",
|
|
17
|
+
e && "opacity-50 cursor-not-allowed",
|
|
18
|
+
o
|
|
19
|
+
),
|
|
20
|
+
...l,
|
|
21
|
+
children: [
|
|
22
|
+
a,
|
|
23
|
+
r && /* @__PURE__ */ m("span", { className: "text-[var(--color-coral)] ml-0.5", "aria-hidden": "true", children: "*" })
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
)
|
|
27
|
+
);
|
|
28
|
+
n.displayName = "Label";
|
|
29
|
+
export {
|
|
30
|
+
n as Label
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=Label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Label.js","sources":["../../../src/atoms/Label/Label.tsx"],"sourcesContent":["import { forwardRef, type LabelHTMLAttributes, type ReactNode } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface LabelProps extends LabelHTMLAttributes<HTMLLabelElement> {\n required?: boolean\n disabled?: boolean\n children: ReactNode\n}\n\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>(\n (\n {\n required = false,\n disabled = false,\n children,\n className,\n ...props\n },\n ref\n ) => {\n return (\n <label\n ref={ref}\n className={cn(\n 'text-sm font-medium text-[var(--color-white)]',\n disabled && 'opacity-50 cursor-not-allowed',\n className\n )}\n {...props}\n >\n {children}\n {required && (\n <span className=\"text-[var(--color-coral)] ml-0.5\" aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )\n }\n)\n\nLabel.displayName = 'Label'\n"],"names":["Label","forwardRef","required","disabled","children","className","props","ref","jsxs","cn","jsx"],"mappings":";;;AASO,MAAMA,IAAQC;AAAA,EACnB,CACE;AAAA,IACE,UAAAC,IAAW;AAAA,IACX,UAAAC,IAAW;AAAA,IACX,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MAGE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAN,KAAY;AAAA,QACZE;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAA;AAAA,QAAAF;AAAA,QACAF,KACC,gBAAAQ,EAAC,QAAA,EAAK,WAAU,oCAAmC,eAAY,QAAO,UAAA,IAAA,CAEtE;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAKV;AAEAV,EAAM,cAAc;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { cn as o } from "../../utils/cn.js";
|
|
3
|
+
const a = `url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")`;
|
|
4
|
+
function u({
|
|
5
|
+
opacity: e = 0.03,
|
|
6
|
+
fixed: t = !0,
|
|
7
|
+
className: i,
|
|
8
|
+
style: r,
|
|
9
|
+
...s
|
|
10
|
+
}) {
|
|
11
|
+
return /* @__PURE__ */ n(
|
|
12
|
+
"div",
|
|
13
|
+
{
|
|
14
|
+
className: o(
|
|
15
|
+
"inset-0 pointer-events-none z-50",
|
|
16
|
+
t ? "fixed" : "absolute",
|
|
17
|
+
i
|
|
18
|
+
),
|
|
19
|
+
style: {
|
|
20
|
+
backgroundImage: a,
|
|
21
|
+
opacity: e,
|
|
22
|
+
...r
|
|
23
|
+
},
|
|
24
|
+
"aria-hidden": "true",
|
|
25
|
+
...s
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
u as NoiseOverlay
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=NoiseOverlay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NoiseOverlay.js","sources":["../../../src/atoms/NoiseOverlay/NoiseOverlay.tsx"],"sourcesContent":["import { type HTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface NoiseOverlayProps extends HTMLAttributes<HTMLDivElement> {\n /** Opacity of the noise texture (0-1) */\n opacity?: number\n /** Whether to use a fixed position overlay */\n fixed?: boolean\n}\n\nconst noiseSvg = `url(\"data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E\")`\n\nexport function NoiseOverlay({\n opacity = 0.03,\n fixed = true,\n className,\n style,\n ...props\n}: NoiseOverlayProps) {\n return (\n <div\n className={cn(\n 'inset-0 pointer-events-none z-50',\n fixed ? 'fixed' : 'absolute',\n className\n )}\n style={{\n backgroundImage: noiseSvg,\n opacity,\n ...style,\n }}\n aria-hidden=\"true\"\n {...props}\n />\n )\n}\n"],"names":["noiseSvg","NoiseOverlay","opacity","fixed","className","style","props","jsx","cn"],"mappings":";;AAUA,MAAMA,IAAW;AAEV,SAASC,EAAa;AAAA,EAC3B,SAAAC,IAAU;AAAA,EACV,OAAAC,IAAQ;AAAA,EACR,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,GAAsB;AACpB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAL,IAAQ,UAAU;AAAA,QAClBC;AAAA,MAAA;AAAA,MAEF,OAAO;AAAA,QACL,iBAAiBJ;AAAA,QACjB,SAAAE;AAAA,QACA,GAAGG;AAAA,MAAA;AAAA,MAEL,eAAY;AAAA,MACX,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsxs as o, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as h } from "react";
|
|
3
|
+
import { cn as r } from "../../utils/cn.js";
|
|
4
|
+
const v = h(
|
|
5
|
+
({
|
|
6
|
+
value: a,
|
|
7
|
+
max: e = 100,
|
|
8
|
+
size: t = "md",
|
|
9
|
+
variant: i = "default",
|
|
10
|
+
label: d,
|
|
11
|
+
showValue: n = !1,
|
|
12
|
+
className: c,
|
|
13
|
+
...g
|
|
14
|
+
}, m) => {
|
|
15
|
+
const l = Math.min(Math.max(a / e * 100, 0), 100), u = {
|
|
16
|
+
sm: "h-1.5",
|
|
17
|
+
md: "h-2",
|
|
18
|
+
lg: "h-3"
|
|
19
|
+
}, f = {
|
|
20
|
+
default: "bg-[var(--color-white)]",
|
|
21
|
+
success: "bg-[var(--color-sage)]",
|
|
22
|
+
warning: "bg-[var(--color-gold)]",
|
|
23
|
+
error: "bg-[var(--color-coral)]"
|
|
24
|
+
};
|
|
25
|
+
return /* @__PURE__ */ o("div", { ref: m, className: r("flex flex-col gap-1", c), ...g, children: [
|
|
26
|
+
n && /* @__PURE__ */ o("span", { className: "text-xs text-[var(--color-grey-400)] tabular-nums", children: [
|
|
27
|
+
Math.round(l),
|
|
28
|
+
"%"
|
|
29
|
+
] }),
|
|
30
|
+
/* @__PURE__ */ s(
|
|
31
|
+
"div",
|
|
32
|
+
{
|
|
33
|
+
role: "progressbar",
|
|
34
|
+
"aria-valuenow": a,
|
|
35
|
+
"aria-valuemin": 0,
|
|
36
|
+
"aria-valuemax": e,
|
|
37
|
+
"aria-label": d,
|
|
38
|
+
className: r(
|
|
39
|
+
"w-full overflow-hidden rounded-full",
|
|
40
|
+
"bg-[var(--glass-bg)] border border-[var(--glass-border)]",
|
|
41
|
+
u[t]
|
|
42
|
+
),
|
|
43
|
+
children: /* @__PURE__ */ s(
|
|
44
|
+
"div",
|
|
45
|
+
{
|
|
46
|
+
className: r(
|
|
47
|
+
"h-full rounded-full",
|
|
48
|
+
"transition-[width] duration-300 ease-out",
|
|
49
|
+
f[i]
|
|
50
|
+
),
|
|
51
|
+
style: { width: `${l}%` }
|
|
52
|
+
}
|
|
53
|
+
)
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
] });
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
v.displayName = "Progress";
|
|
60
|
+
export {
|
|
61
|
+
v as Progress
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=Progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Progress.js","sources":["../../../src/atoms/Progress/Progress.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface ProgressProps extends HTMLAttributes<HTMLDivElement> {\n value: number\n max?: number\n size?: 'sm' | 'md' | 'lg'\n variant?: 'default' | 'success' | 'warning' | 'error'\n label?: string\n showValue?: boolean\n className?: string\n}\n\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>(\n (\n {\n value,\n max = 100,\n size = 'md',\n variant = 'default',\n label,\n showValue = false,\n className,\n ...props\n },\n ref\n ) => {\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100)\n\n const sizes = {\n sm: 'h-1.5',\n md: 'h-2',\n lg: 'h-3',\n }\n\n const fillVariants = {\n default: 'bg-[var(--color-white)]',\n success: 'bg-[var(--color-sage)]',\n warning: 'bg-[var(--color-gold)]',\n error: 'bg-[var(--color-coral)]',\n }\n\n return (\n <div ref={ref} className={cn('flex flex-col gap-1', className)} {...props}>\n {showValue && (\n <span className=\"text-xs text-[var(--color-grey-400)] tabular-nums\">\n {Math.round(percentage)}%\n </span>\n )}\n <div\n role=\"progressbar\"\n aria-valuenow={value}\n aria-valuemin={0}\n aria-valuemax={max}\n aria-label={label}\n className={cn(\n 'w-full overflow-hidden rounded-full',\n 'bg-[var(--glass-bg)] border border-[var(--glass-border)]',\n sizes[size]\n )}\n >\n <div\n className={cn(\n 'h-full rounded-full',\n 'transition-[width] duration-300 ease-out',\n fillVariants[variant]\n )}\n style={{ width: `${percentage}%` }}\n />\n </div>\n </div>\n )\n }\n)\n\nProgress.displayName = 'Progress'\n"],"names":["Progress","forwardRef","value","max","size","variant","label","showValue","className","props","ref","percentage","sizes","fillVariants","jsxs","cn","jsx"],"mappings":";;;AAaO,MAAMA,IAAWC;AAAA,EACtB,CACE;AAAA,IACE,OAAAC;AAAA,IACA,KAAAC,IAAM;AAAA,IACN,MAAAC,IAAO;AAAA,IACP,SAAAC,IAAU;AAAA,IACV,OAAAC;AAAA,IACA,WAAAC,IAAY;AAAA,IACZ,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAa,KAAK,IAAI,KAAK,IAAKT,IAAQC,IAAO,KAAK,CAAC,GAAG,GAAG,GAE3DS,IAAQ;AAAA,MACZ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA,GAGAC,IAAe;AAAA,MACnB,SAAS;AAAA,MACT,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,IAAA;AAGT,WACE,gBAAAC,EAAC,SAAI,KAAAJ,GAAU,WAAWK,EAAG,uBAAuBP,CAAS,GAAI,GAAGC,GACjE,UAAA;AAAA,MAAAF,KACC,gBAAAO,EAAC,QAAA,EAAK,WAAU,qDACb,UAAA;AAAA,QAAA,KAAK,MAAMH,CAAU;AAAA,QAAE;AAAA,MAAA,GAC1B;AAAA,MAEF,gBAAAK;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,iBAAed;AAAA,UACf,iBAAe;AAAA,UACf,iBAAeC;AAAA,UACf,cAAYG;AAAA,UACZ,WAAWS;AAAA,YACT;AAAA,YACA;AAAA,YACAH,EAAMR,CAAI;AAAA,UAAA;AAAA,UAGZ,UAAA,gBAAAY;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWD;AAAA,gBACT;AAAA,gBACA;AAAA,gBACAF,EAAaR,CAAO;AAAA,cAAA;AAAA,cAEtB,OAAO,EAAE,OAAO,GAAGM,CAAU,IAAA;AAAA,YAAI;AAAA,UAAA;AAAA,QACnC;AAAA,MAAA;AAAA,IACF,GACF;AAAA,EAEJ;AACF;AAEAX,EAAS,cAAc;"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsxs as l, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { cn as n } from "../../utils/cn.js";
|
|
3
|
+
const a = {
|
|
4
|
+
sm: { icon: 12, text: "text-[10px]" },
|
|
5
|
+
md: { icon: 16, text: "text-xs" },
|
|
6
|
+
lg: { icon: 20, text: "text-sm" }
|
|
7
|
+
}, x = {
|
|
8
|
+
"bottom-left": "bottom-8 left-6 md:left-12",
|
|
9
|
+
"bottom-center": "bottom-8 left-1/2 -translate-x-1/2",
|
|
10
|
+
"bottom-right": "bottom-8 right-6 md:right-12"
|
|
11
|
+
};
|
|
12
|
+
function f({
|
|
13
|
+
label: o = "Scroll",
|
|
14
|
+
size: r = "md",
|
|
15
|
+
position: i = "bottom-left",
|
|
16
|
+
className: c,
|
|
17
|
+
...s
|
|
18
|
+
}) {
|
|
19
|
+
const { icon: e, text: m } = a[r];
|
|
20
|
+
return /* @__PURE__ */ l(
|
|
21
|
+
"div",
|
|
22
|
+
{
|
|
23
|
+
className: n(
|
|
24
|
+
"absolute flex items-center gap-3 text-current opacity-60",
|
|
25
|
+
x[i],
|
|
26
|
+
c
|
|
27
|
+
),
|
|
28
|
+
...s,
|
|
29
|
+
children: [
|
|
30
|
+
/* @__PURE__ */ t(
|
|
31
|
+
"svg",
|
|
32
|
+
{
|
|
33
|
+
width: e,
|
|
34
|
+
height: e * 1.5,
|
|
35
|
+
viewBox: "0 0 16 24",
|
|
36
|
+
fill: "none",
|
|
37
|
+
stroke: "currentColor",
|
|
38
|
+
strokeWidth: "1.5",
|
|
39
|
+
className: "animate-bounce",
|
|
40
|
+
children: /* @__PURE__ */ t("path", { d: "M8 4v16M4 16l4 4 4-4" })
|
|
41
|
+
}
|
|
42
|
+
),
|
|
43
|
+
o && /* @__PURE__ */ t("span", { className: n("font-mono uppercase tracking-wider", m), children: o })
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
export {
|
|
49
|
+
f as ScrollIndicator
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=ScrollIndicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollIndicator.js","sources":["../../../src/atoms/ScrollIndicator/ScrollIndicator.tsx"],"sourcesContent":["import { type HTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface ScrollIndicatorProps extends HTMLAttributes<HTMLDivElement> {\n /** Label text next to the indicator */\n label?: string\n /** Size of the icon */\n size?: 'sm' | 'md' | 'lg'\n /** Position of the indicator */\n position?: 'bottom-left' | 'bottom-center' | 'bottom-right'\n}\n\nconst sizeMap = {\n sm: { icon: 12, text: 'text-[10px]' },\n md: { icon: 16, text: 'text-xs' },\n lg: { icon: 20, text: 'text-sm' },\n}\n\nconst positionMap = {\n 'bottom-left': 'bottom-8 left-6 md:left-12',\n 'bottom-center': 'bottom-8 left-1/2 -translate-x-1/2',\n 'bottom-right': 'bottom-8 right-6 md:right-12',\n}\n\nexport function ScrollIndicator({\n label = 'Scroll',\n size = 'md',\n position = 'bottom-left',\n className,\n ...props\n}: ScrollIndicatorProps) {\n const { icon, text } = sizeMap[size]\n\n return (\n <div\n className={cn(\n 'absolute flex items-center gap-3 text-current opacity-60',\n positionMap[position],\n className\n )}\n {...props}\n >\n <svg\n width={icon}\n height={icon * 1.5}\n viewBox=\"0 0 16 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n className=\"animate-bounce\"\n >\n <path d=\"M8 4v16M4 16l4 4 4-4\" />\n </svg>\n {label && (\n <span className={cn('font-mono uppercase tracking-wider', text)}>\n {label}\n </span>\n )}\n </div>\n )\n}\n"],"names":["sizeMap","positionMap","ScrollIndicator","label","size","position","className","props","icon","text","jsxs","cn","jsx"],"mappings":";;AAYA,MAAMA,IAAU;AAAA,EACd,IAAI,EAAE,MAAM,IAAI,MAAM,cAAA;AAAA,EACtB,IAAI,EAAE,MAAM,IAAI,MAAM,UAAA;AAAA,EACtB,IAAI,EAAE,MAAM,IAAI,MAAM,UAAA;AACxB,GAEMC,IAAc;AAAA,EAClB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,gBAAgB;AAClB;AAEO,SAASC,EAAgB;AAAA,EAC9B,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,UAAAC,IAAW;AAAA,EACX,WAAAC;AAAA,EACA,GAAGC;AACL,GAAyB;AACvB,QAAM,EAAE,MAAAC,GAAM,MAAAC,MAAST,EAAQI,CAAI;AAEnC,SACE,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAV,EAAYI,CAAQ;AAAA,QACpBC;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEJ,UAAA;AAAA,QAAA,gBAAAK;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAOJ;AAAA,YACP,QAAQA,IAAO;AAAA,YACf,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,WAAU;AAAA,YAEV,UAAA,gBAAAI,EAAC,QAAA,EAAK,GAAE,uBAAA,CAAuB;AAAA,UAAA;AAAA,QAAA;AAAA,QAEhCT,uBACE,QAAA,EAAK,WAAWQ,EAAG,sCAAsCF,CAAI,GAC3D,UAAAN,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as l } from "react";
|
|
3
|
+
import { cn as p } from "../../utils/cn.js";
|
|
4
|
+
const i = l(
|
|
5
|
+
({
|
|
6
|
+
orientation: r = "horizontal",
|
|
7
|
+
className: o,
|
|
8
|
+
...a
|
|
9
|
+
}, t) => /* @__PURE__ */ e(
|
|
10
|
+
"div",
|
|
11
|
+
{
|
|
12
|
+
ref: t,
|
|
13
|
+
role: "separator",
|
|
14
|
+
"aria-orientation": r,
|
|
15
|
+
className: p(
|
|
16
|
+
"bg-[var(--glass-border)]",
|
|
17
|
+
r === "horizontal" ? "h-px w-full" : "w-px h-full",
|
|
18
|
+
o
|
|
19
|
+
),
|
|
20
|
+
...a
|
|
21
|
+
}
|
|
22
|
+
)
|
|
23
|
+
);
|
|
24
|
+
i.displayName = "Separator";
|
|
25
|
+
export {
|
|
26
|
+
i as Separator
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=Separator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Separator.js","sources":["../../../src/atoms/Separator/Separator.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from 'react'\nimport { cn } from '../../utils/cn'\n\nexport interface SeparatorProps extends HTMLAttributes<HTMLDivElement> {\n orientation?: 'horizontal' | 'vertical'\n className?: string\n}\n\nexport const Separator = forwardRef<HTMLDivElement, SeparatorProps>(\n (\n {\n orientation = 'horizontal',\n className,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n role=\"separator\"\n aria-orientation={orientation}\n className={cn(\n 'bg-[var(--glass-border)]',\n orientation === 'horizontal' ? 'h-px w-full' : 'w-px h-full',\n className\n )}\n {...props}\n />\n )\n }\n)\n\nSeparator.displayName = 'Separator'\n"],"names":["Separator","forwardRef","orientation","className","props","ref","jsx","cn"],"mappings":";;;AAQO,MAAMA,IAAYC;AAAA,EACvB,CACE;AAAA,IACE,aAAAC,IAAc;AAAA,IACd,WAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MAGE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAD;AAAA,MACA,MAAK;AAAA,MACL,oBAAkBH;AAAA,MAClB,WAAWK;AAAA,QACT;AAAA,QACAL,MAAgB,eAAe,gBAAgB;AAAA,QAC/CC;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAIZ;AAEAJ,EAAU,cAAc;"}
|