@blueshift-gg/ui-components 0.1.18 → 0.1.20
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/Alert.d.mts +1 -1
- package/dist/Alert.d.ts +1 -1
- package/dist/Avatar.d.mts +1 -1
- package/dist/Avatar.d.ts +1 -1
- package/dist/Badge.d.mts +1 -1
- package/dist/Badge.d.ts +1 -1
- package/dist/Badge.js +3 -3
- package/dist/Badge.js.map +1 -1
- package/dist/Badge.mjs +3 -3
- package/dist/Badge.mjs.map +1 -1
- package/dist/Button.d.mts +1 -1
- package/dist/Button.d.ts +1 -1
- package/dist/Dropdown.d.mts +1 -1
- package/dist/Dropdown.d.ts +1 -1
- package/dist/{Icon-_eAGhkdn.d.mts → Icon-D0R9Y5U4.d.mts} +2 -0
- package/dist/{Icon-DTD8APSk.d.ts → Icon-Xhwol1Zj.d.ts} +2 -0
- package/dist/Icon.d.mts +1 -1
- package/dist/Icon.d.ts +1 -1
- package/dist/Input.d.mts +4 -3
- package/dist/Input.d.ts +4 -3
- package/dist/Input.js +8 -5
- package/dist/Input.js.map +1 -1
- package/dist/Input.mjs +8 -5
- package/dist/Input.mjs.map +1 -1
- package/dist/Slider.d.mts +1 -1
- package/dist/Slider.d.ts +1 -1
- package/dist/Tabs.d.mts +5 -2
- package/dist/Tabs.d.ts +5 -2
- package/dist/Tabs.js +9 -5
- package/dist/Tabs.js.map +1 -1
- package/dist/Tabs.mjs +9 -5
- package/dist/Tabs.mjs.map +1 -1
- package/dist/Toast.d.mts +1 -1
- package/dist/Toast.d.ts +1 -1
- package/dist/icons/Anchor.d.mts +1 -1
- package/dist/icons/Anchor.d.ts +1 -1
- package/dist/icons/ArrowLeft.d.mts +1 -1
- package/dist/icons/ArrowLeft.d.ts +1 -1
- package/dist/icons/ArrowRight.d.mts +1 -1
- package/dist/icons/ArrowRight.d.ts +1 -1
- package/dist/icons/Assembly.d.mts +1 -1
- package/dist/icons/Assembly.d.ts +1 -1
- package/dist/icons/Backpack.d.mts +7 -0
- package/dist/icons/Backpack.d.ts +7 -0
- package/dist/icons/Backpack.js +46 -0
- package/dist/icons/Backpack.js.map +1 -0
- package/dist/icons/Backpack.mjs +44 -0
- package/dist/icons/Backpack.mjs.map +1 -0
- package/dist/icons/Brave.d.mts +1 -1
- package/dist/icons/Brave.d.ts +1 -1
- package/dist/icons/Challenge.d.mts +1 -1
- package/dist/icons/Challenge.d.ts +1 -1
- package/dist/icons/Chevron.d.mts +1 -1
- package/dist/icons/Chevron.d.ts +1 -1
- package/dist/icons/ChevronLeft.d.mts +1 -1
- package/dist/icons/ChevronLeft.d.ts +1 -1
- package/dist/icons/ChevronRight.d.mts +1 -1
- package/dist/icons/ChevronRight.d.ts +1 -1
- package/dist/icons/Claim.d.mts +1 -1
- package/dist/icons/Claim.d.ts +1 -1
- package/dist/icons/Claimed.d.mts +1 -1
- package/dist/icons/Claimed.d.ts +1 -1
- package/dist/icons/Close.d.mts +1 -1
- package/dist/icons/Close.d.ts +1 -1
- package/dist/icons/Code.d.mts +1 -1
- package/dist/icons/Code.d.ts +1 -1
- package/dist/icons/Copy.d.mts +1 -1
- package/dist/icons/Copy.d.ts +1 -1
- package/dist/icons/Developer.d.mts +1 -1
- package/dist/icons/Developer.d.ts +1 -1
- package/dist/icons/Difficulty.d.mts +1 -1
- package/dist/icons/Difficulty.d.ts +1 -1
- package/dist/icons/Discord.d.mts +1 -1
- package/dist/icons/Discord.d.ts +1 -1
- package/dist/icons/Dollar.d.mts +1 -1
- package/dist/icons/Dollar.d.ts +1 -1
- package/dist/icons/DoubleArrow.d.mts +1 -1
- package/dist/icons/DoubleArrow.d.ts +1 -1
- package/dist/icons/EVM.d.mts +1 -1
- package/dist/icons/EVM.d.ts +1 -1
- package/dist/icons/Email.d.mts +1 -1
- package/dist/icons/Email.d.ts +1 -1
- package/dist/icons/Error.d.mts +1 -1
- package/dist/icons/Error.d.ts +1 -1
- package/dist/icons/External.d.mts +1 -1
- package/dist/icons/External.d.ts +1 -1
- package/dist/icons/Filter.d.mts +1 -1
- package/dist/icons/Filter.d.ts +1 -1
- package/dist/icons/Firmware.d.mts +1 -1
- package/dist/icons/Firmware.d.ts +1 -1
- package/dist/icons/Flag.d.mts +1 -1
- package/dist/icons/Flag.d.ts +1 -1
- package/dist/icons/Flame.d.mts +1 -1
- package/dist/icons/Flame.d.ts +1 -1
- package/dist/icons/Flexible.d.mts +1 -1
- package/dist/icons/Flexible.d.ts +1 -1
- package/dist/icons/Free.d.mts +1 -1
- package/dist/icons/Free.d.ts +1 -1
- package/dist/icons/General.d.mts +1 -1
- package/dist/icons/General.d.ts +1 -1
- package/dist/icons/Github.d.mts +1 -1
- package/dist/icons/Github.d.ts +1 -1
- package/dist/icons/GridView.d.mts +1 -1
- package/dist/icons/GridView.d.ts +1 -1
- package/dist/icons/Heart.d.mts +1 -1
- package/dist/icons/Heart.d.ts +1 -1
- package/dist/icons/Info.d.mts +1 -1
- package/dist/icons/Info.d.ts +1 -1
- package/dist/icons/Language.d.mts +1 -1
- package/dist/icons/Language.d.ts +1 -1
- package/dist/icons/Lessons.d.mts +1 -1
- package/dist/icons/Lessons.d.ts +1 -1
- package/dist/icons/Link.d.mts +1 -1
- package/dist/icons/Link.d.ts +1 -1
- package/dist/icons/ListView.d.mts +1 -1
- package/dist/icons/ListView.d.ts +1 -1
- package/dist/icons/Loading.d.mts +1 -1
- package/dist/icons/Loading.d.ts +1 -1
- package/dist/icons/Locked.d.mts +1 -1
- package/dist/icons/Locked.d.ts +1 -1
- package/dist/icons/Mentor.d.mts +1 -1
- package/dist/icons/Mentor.d.ts +1 -1
- package/dist/icons/Metamask.d.mts +7 -0
- package/dist/icons/Metamask.d.ts +7 -0
- package/dist/icons/Metamask.js +72 -0
- package/dist/icons/Metamask.js.map +1 -0
- package/dist/icons/Metamask.mjs +70 -0
- package/dist/icons/Metamask.mjs.map +1 -0
- package/dist/icons/Modular.d.mts +1 -1
- package/dist/icons/Modular.d.ts +1 -1
- package/dist/icons/NFT.d.mts +1 -1
- package/dist/icons/NFT.d.ts +1 -1
- package/dist/icons/Online.d.mts +1 -1
- package/dist/icons/Online.d.ts +1 -1
- package/dist/icons/Password.d.mts +1 -1
- package/dist/icons/Password.d.ts +1 -1
- package/dist/icons/Phantom.d.mts +1 -1
- package/dist/icons/Phantom.d.ts +1 -1
- package/dist/icons/Product.d.mts +1 -1
- package/dist/icons/Product.d.ts +1 -1
- package/dist/icons/Progress.d.mts +1 -1
- package/dist/icons/Progress.d.ts +1 -1
- package/dist/icons/Protocol.d.mts +1 -1
- package/dist/icons/Protocol.d.ts +1 -1
- package/dist/icons/Rewards.d.mts +1 -1
- package/dist/icons/Rewards.d.ts +1 -1
- package/dist/icons/Rust.d.mts +1 -1
- package/dist/icons/Rust.d.ts +1 -1
- package/dist/icons/Search.d.mts +1 -1
- package/dist/icons/Search.d.ts +1 -1
- package/dist/icons/SmartContract.d.mts +1 -1
- package/dist/icons/SmartContract.d.ts +1 -1
- package/dist/icons/Solana.d.mts +1 -1
- package/dist/icons/Solana.d.ts +1 -1
- package/dist/icons/Solflare.d.mts +1 -1
- package/dist/icons/Solflare.d.ts +1 -1
- package/dist/icons/Success.d.mts +1 -1
- package/dist/icons/Success.d.ts +1 -1
- package/dist/icons/SuccessCircle.d.mts +1 -1
- package/dist/icons/SuccessCircle.d.ts +1 -1
- package/dist/icons/Table.d.mts +1 -1
- package/dist/icons/Table.d.ts +1 -1
- package/dist/icons/Target.d.mts +1 -1
- package/dist/icons/Target.d.ts +1 -1
- package/dist/icons/Training.d.mts +1 -1
- package/dist/icons/Training.d.ts +1 -1
- package/dist/icons/Typescript.d.mts +1 -1
- package/dist/icons/Typescript.d.ts +1 -1
- package/dist/icons/Unclaimed.d.mts +1 -1
- package/dist/icons/Unclaimed.d.ts +1 -1
- package/dist/icons/Upload.d.mts +1 -1
- package/dist/icons/Upload.d.ts +1 -1
- package/dist/icons/User.d.mts +1 -1
- package/dist/icons/User.d.ts +1 -1
- package/dist/icons/Wallet.d.mts +1 -1
- package/dist/icons/Wallet.d.ts +1 -1
- package/dist/icons/WalletSmall.d.mts +1 -1
- package/dist/icons/WalletSmall.d.ts +1 -1
- package/dist/icons/Warning.d.mts +1 -1
- package/dist/icons/Warning.d.ts +1 -1
- package/dist/icons/X.d.mts +1 -1
- package/dist/icons/X.d.ts +1 -1
- package/dist/icons/index.d.mts +1 -1
- package/dist/icons/index.d.ts +1 -1
- package/dist/icons/index.js +5 -1
- package/dist/icons/index.js.map +1 -1
- package/dist/icons/index.mjs +5 -1
- package/dist/icons/index.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
package/dist/Alert.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { MotionProps } from 'motion/react';
|
|
3
|
-
import { a as IconProps } from './Icon-
|
|
3
|
+
import { a as IconProps } from './Icon-D0R9Y5U4.mjs';
|
|
4
4
|
import './utils/colours.mjs';
|
|
5
5
|
|
|
6
6
|
type AlertProps = {
|
package/dist/Alert.d.ts
CHANGED
package/dist/Avatar.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { a as IconProps } from './Icon-
|
|
2
|
+
import { a as IconProps } from './Icon-D0R9Y5U4.mjs';
|
|
3
3
|
import { CrosshairCornersProps } from './CrossHair.mjs';
|
|
4
4
|
import { MotionProps } from 'motion/react';
|
|
5
5
|
import { BrandColour } from './utils/colours.mjs';
|
package/dist/Avatar.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { a as IconProps } from './Icon-
|
|
2
|
+
import { a as IconProps } from './Icon-Xhwol1Zj.js';
|
|
3
3
|
import { CrosshairCornersProps } from './CrossHair.js';
|
|
4
4
|
import { MotionProps } from 'motion/react';
|
|
5
5
|
import { BrandColour } from './utils/colours.js';
|
package/dist/Badge.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { BrandColour } from './utils/colours.mjs';
|
|
3
|
-
import { a as IconProps } from './Icon-
|
|
3
|
+
import { a as IconProps } from './Icon-D0R9Y5U4.mjs';
|
|
4
4
|
import { CrosshairCornersProps } from './CrossHair.mjs';
|
|
5
5
|
import { MotionProps } from 'motion/react';
|
|
6
6
|
|
package/dist/Badge.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { BrandColour } from './utils/colours.js';
|
|
3
|
-
import { a as IconProps } from './Icon-
|
|
3
|
+
import { a as IconProps } from './Icon-Xhwol1Zj.js';
|
|
4
4
|
import { CrosshairCornersProps } from './CrossHair.js';
|
|
5
5
|
import { MotionProps } from 'motion/react';
|
|
6
6
|
|
package/dist/Badge.js
CHANGED
|
@@ -26,15 +26,15 @@ const Badge = ({
|
|
|
26
26
|
{
|
|
27
27
|
style: { color: colours.BRAND_COLOURS[variant ?? "Secondary"] },
|
|
28
28
|
className: classNames__default.default(
|
|
29
|
-
className,
|
|
30
29
|
"shadow-[inset_0px_0px_6px] text-sm bg-card-solid/50 shadow-current/25 relative transition-all duration-100 ease-glide gradient-border before:bg-current/8 min-h-[24px] flex items-center gap-x-[5px] py-1",
|
|
31
30
|
size === "md" && "!py-2",
|
|
32
|
-
!label && "!p-2",
|
|
31
|
+
!label && "!p-2 !justify-center",
|
|
33
32
|
!icon && "!py-1 !px-2",
|
|
34
33
|
iconPosition === "left" && label && icon && "pl-1.5 pr-2",
|
|
35
34
|
iconPosition === "right" && label && icon && "pl-2 pr-1.5",
|
|
36
35
|
crosshair?.variant === "bordered" && label && iconPosition === "left" && "pl-2.5 pr-3",
|
|
37
|
-
crosshair?.variant === "bordered" && label && iconPosition === "right" && "pl-3 pr-2.5"
|
|
36
|
+
crosshair?.variant === "bordered" && label && iconPosition === "right" && "pl-3 pr-2.5",
|
|
37
|
+
className
|
|
38
38
|
),
|
|
39
39
|
...animation,
|
|
40
40
|
children: [
|
package/dist/Badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Badge.tsx"],"names":["jsxs","motion","BRAND_COLOURS","classNames","jsx","CrosshairCorners","Icon"],"mappings":";;;;;;;;;;;;;AAmBO,MAAM,QAAQ,CAAC;AAAA,EACpB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA,GAAe,MAAA;AAAA,EACf,KAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP;AACF,CAAA,KAAkB;AAChB,EAAA,uBACEA,eAAA;AAAA,IAACC,YAAA,CAAO,GAAA;AAAA,IAAP;AAAA,MACC,OAAO,EAAE,KAAA,EAAOC,qBAAA,CAAc,OAAA,IAAW,WAAW,CAAA,EAAE;AAAA,MACtD,SAAA,EAAWC,2BAAA;AAAA,QACT,
|
|
1
|
+
{"version":3,"sources":["../src/Badge.tsx"],"names":["jsxs","motion","BRAND_COLOURS","classNames","jsx","CrosshairCorners","Icon"],"mappings":";;;;;;;;;;;;;AAmBO,MAAM,QAAQ,CAAC;AAAA,EACpB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA,GAAe,MAAA;AAAA,EACf,KAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP;AACF,CAAA,KAAkB;AAChB,EAAA,uBACEA,eAAA;AAAA,IAACC,YAAA,CAAO,GAAA;AAAA,IAAP;AAAA,MACC,OAAO,EAAE,KAAA,EAAOC,qBAAA,CAAc,OAAA,IAAW,WAAW,CAAA,EAAE;AAAA,MACtD,SAAA,EAAWC,2BAAA;AAAA,QACT,2MAAA;AAAA,QACA,SAAS,IAAA,IAAQ,OAAA;AAAA,QACjB,CAAC,KAAA,IAAS,sBAAA;AAAA,QACV,CAAC,IAAA,IAAQ,aAAA;AAAA,QACT,YAAA,KAAiB,MAAA,IAAU,KAAA,IAAS,IAAA,IAAQ,aAAA;AAAA,QAC5C,YAAA,KAAiB,OAAA,IAAW,KAAA,IAAS,IAAA,IAAQ,aAAA;AAAA,QAC7C,SAAA,EAAW,OAAA,KAAY,UAAA,IACrB,KAAA,IACA,iBAAiB,MAAA,IACjB,aAAA;AAAA,QACF,SAAA,EAAW,OAAA,KAAY,UAAA,IACrB,KAAA,IACA,iBAAiB,OAAA,IACjB,aAAA;AAAA,QACF;AAAA,OACF;AAAA,MACC,GAAG,SAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWD,2BAAA,CAAW,+BAA+B,CAAA,EACxD,QAAA,kBAAAC,cAAA;AAAA,UAACC,0BAAA;AAAA,UAAA;AAAA,YAEC,SAAS,SAAA,EAAW,OAAA;AAAA,YACpB,SAAA,EAAWF,2BAAA,CAAW,cAAA,EAAgB,SAAA,EAAW,SAAS,CAAA;AAAA,YAC1D,SAAS,SAAA,EAAW,OAAA;AAAA,YACpB,cAAA,EAAgB,WAAW,cAAA,IAAkB,CAAA;AAAA,YAC7C,iBAAA,EAAmB,WAAW,iBAAA,IAAqB,GAAA;AAAA,YACnD,IAAA,EAAM,WAAW,IAAA,IAAQ;AAAA,WAAA;AAAA,UANpB,IAAA,EAAM;AAAA,SAOb,EACF,CAAA;AAAA,QACC,IAAA,IAAQ,iBAAiB,MAAA,oBACxBC,cAAA;AAAA,UAACE,SAAA;AAAA,UAAA;AAAA,YACC,MAAM,IAAA,CAAK,IAAA;AAAA,YACX,SAAA,EAAWH,2BAAA,CAAW,IAAA,CAAK,SAAA,EAAW,4BAA4B,CAAA;AAAA,YAClE,IAAA,EAAM,KAAK,IAAA,IAAQ,EAAA;AAAA,YACnB,cAAc,IAAA,CAAK;AAAA;AAAA,SACrB;AAAA,QAED,KAAA,oBAASC,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAa,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QAC5C,IAAA,IAAQ,iBAAiB,OAAA,oBACxBA,cAAA;AAAA,UAACE,SAAA;AAAA,UAAA;AAAA,YACC,MAAM,IAAA,CAAK,IAAA;AAAA,YACX,SAAA,EAAWH,2BAAA,CAAW,IAAA,CAAK,SAAA,EAAW,4BAA4B,CAAA;AAAA,YAClE,IAAA,EAAM,KAAK,IAAA,IAAQ,EAAA;AAAA,YACnB,cAAc,IAAA,CAAK;AAAA;AAAA;AACrB;AAAA;AAAA,GAEJ;AAEJ","file":"Badge.js","sourcesContent":["\"use client\";\n\nimport { BRAND_COLOURS, BrandColour } from \"./utils/colours\";\nimport { Icon, IconProps } from \"./Icon\";\nimport classNames from \"classnames\";\nimport { CrosshairCorners, CrosshairCornersProps } from \"./CrossHair\";\nimport { motion, MotionProps } from \"motion/react\";\n\nexport type BadgeProps = {\n className?: string;\n label?: string;\n variant?: BrandColour;\n icon?: IconProps;\n iconPosition?: \"left\" | \"right\";\n crosshair?: CrosshairCornersProps;\n size?: \"sm\" | \"md\";\n animation?: MotionProps;\n};\n\nexport const Badge = ({\n className,\n variant,\n icon,\n crosshair,\n iconPosition = \"left\",\n label,\n size = \"sm\",\n animation,\n}: BadgeProps) => {\n return (\n <motion.div\n style={{ color: BRAND_COLOURS[variant ?? \"Secondary\"] }}\n className={classNames(\n \"shadow-[inset_0px_0px_6px] text-sm bg-card-solid/50 shadow-current/25 relative transition-all duration-100 ease-glide gradient-border before:bg-current/8 min-h-[24px] flex items-center gap-x-[5px] py-1\",\n size === \"md\" && \"!py-2\",\n !label && \"!p-2 !justify-center\",\n !icon && \"!py-1 !px-2\",\n iconPosition === \"left\" && label && icon && \"pl-1.5 pr-2\",\n iconPosition === \"right\" && label && icon && \"pl-2 pr-1.5\",\n crosshair?.variant === \"bordered\" &&\n label &&\n iconPosition === \"left\" &&\n \"pl-2.5 pr-3\",\n crosshair?.variant === \"bordered\" &&\n label &&\n iconPosition === \"right\" &&\n \"pl-3 pr-2.5\",\n className\n )}\n {...animation}\n >\n <div className={classNames(\"text-current absolute inset-0\")}>\n <CrosshairCorners\n key={icon?.name}\n variant={crosshair?.variant}\n className={classNames(\"text-current\", crosshair?.className)}\n corners={crosshair?.corners}\n animationDelay={crosshair?.animationDelay || 0}\n animationDuration={crosshair?.animationDuration || 1.5}\n size={crosshair?.size || 4}\n />\n </div>\n {icon && iconPosition === \"left\" && (\n <Icon\n name={icon.name}\n className={classNames(icon.className, \"flex-shrink-0 text-current\")}\n size={icon.size || 14}\n difficulties={icon.difficulties}\n />\n )}\n {label && <span className=\"font-mono\">{label}</span>}\n {icon && iconPosition === \"right\" && (\n <Icon\n name={icon.name}\n className={classNames(icon.className, \"flex-shrink-0 text-current\")}\n size={icon.size || 14}\n difficulties={icon.difficulties}\n />\n )}\n </motion.div>\n );\n};\n"]}
|
package/dist/Badge.mjs
CHANGED
|
@@ -20,15 +20,15 @@ const Badge = ({
|
|
|
20
20
|
{
|
|
21
21
|
style: { color: BRAND_COLOURS[variant ?? "Secondary"] },
|
|
22
22
|
className: classNames(
|
|
23
|
-
className,
|
|
24
23
|
"shadow-[inset_0px_0px_6px] text-sm bg-card-solid/50 shadow-current/25 relative transition-all duration-100 ease-glide gradient-border before:bg-current/8 min-h-[24px] flex items-center gap-x-[5px] py-1",
|
|
25
24
|
size === "md" && "!py-2",
|
|
26
|
-
!label && "!p-2",
|
|
25
|
+
!label && "!p-2 !justify-center",
|
|
27
26
|
!icon && "!py-1 !px-2",
|
|
28
27
|
iconPosition === "left" && label && icon && "pl-1.5 pr-2",
|
|
29
28
|
iconPosition === "right" && label && icon && "pl-2 pr-1.5",
|
|
30
29
|
crosshair?.variant === "bordered" && label && iconPosition === "left" && "pl-2.5 pr-3",
|
|
31
|
-
crosshair?.variant === "bordered" && label && iconPosition === "right" && "pl-3 pr-2.5"
|
|
30
|
+
crosshair?.variant === "bordered" && label && iconPosition === "right" && "pl-3 pr-2.5",
|
|
31
|
+
className
|
|
32
32
|
),
|
|
33
33
|
...animation,
|
|
34
34
|
children: [
|
package/dist/Badge.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Badge.tsx"],"names":[],"mappings":";;;;;;;AAmBO,MAAM,QAAQ,CAAC;AAAA,EACpB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA,GAAe,MAAA;AAAA,EACf,KAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP;AACF,CAAA,KAAkB;AAChB,EAAA,uBACE,IAAA;AAAA,IAAC,MAAA,CAAO,GAAA;AAAA,IAAP;AAAA,MACC,OAAO,EAAE,KAAA,EAAO,aAAA,CAAc,OAAA,IAAW,WAAW,CAAA,EAAE;AAAA,MACtD,SAAA,EAAW,UAAA;AAAA,QACT,
|
|
1
|
+
{"version":3,"sources":["../src/Badge.tsx"],"names":[],"mappings":";;;;;;;AAmBO,MAAM,QAAQ,CAAC;AAAA,EACpB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA,GAAe,MAAA;AAAA,EACf,KAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP;AACF,CAAA,KAAkB;AAChB,EAAA,uBACE,IAAA;AAAA,IAAC,MAAA,CAAO,GAAA;AAAA,IAAP;AAAA,MACC,OAAO,EAAE,KAAA,EAAO,aAAA,CAAc,OAAA,IAAW,WAAW,CAAA,EAAE;AAAA,MACtD,SAAA,EAAW,UAAA;AAAA,QACT,2MAAA;AAAA,QACA,SAAS,IAAA,IAAQ,OAAA;AAAA,QACjB,CAAC,KAAA,IAAS,sBAAA;AAAA,QACV,CAAC,IAAA,IAAQ,aAAA;AAAA,QACT,YAAA,KAAiB,MAAA,IAAU,KAAA,IAAS,IAAA,IAAQ,aAAA;AAAA,QAC5C,YAAA,KAAiB,OAAA,IAAW,KAAA,IAAS,IAAA,IAAQ,aAAA;AAAA,QAC7C,SAAA,EAAW,OAAA,KAAY,UAAA,IACrB,KAAA,IACA,iBAAiB,MAAA,IACjB,aAAA;AAAA,QACF,SAAA,EAAW,OAAA,KAAY,UAAA,IACrB,KAAA,IACA,iBAAiB,OAAA,IACjB,aAAA;AAAA,QACF;AAAA,OACF;AAAA,MACC,GAAG,SAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,UAAA,CAAW,+BAA+B,CAAA,EACxD,QAAA,kBAAA,GAAA;AAAA,UAAC,gBAAA;AAAA,UAAA;AAAA,YAEC,SAAS,SAAA,EAAW,OAAA;AAAA,YACpB,SAAA,EAAW,UAAA,CAAW,cAAA,EAAgB,SAAA,EAAW,SAAS,CAAA;AAAA,YAC1D,SAAS,SAAA,EAAW,OAAA;AAAA,YACpB,cAAA,EAAgB,WAAW,cAAA,IAAkB,CAAA;AAAA,YAC7C,iBAAA,EAAmB,WAAW,iBAAA,IAAqB,GAAA;AAAA,YACnD,IAAA,EAAM,WAAW,IAAA,IAAQ;AAAA,WAAA;AAAA,UANpB,IAAA,EAAM;AAAA,SAOb,EACF,CAAA;AAAA,QACC,IAAA,IAAQ,iBAAiB,MAAA,oBACxB,GAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,MAAM,IAAA,CAAK,IAAA;AAAA,YACX,SAAA,EAAW,UAAA,CAAW,IAAA,CAAK,SAAA,EAAW,4BAA4B,CAAA;AAAA,YAClE,IAAA,EAAM,KAAK,IAAA,IAAQ,EAAA;AAAA,YACnB,cAAc,IAAA,CAAK;AAAA;AAAA,SACrB;AAAA,QAED,KAAA,oBAAS,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAa,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,QAC5C,IAAA,IAAQ,iBAAiB,OAAA,oBACxB,GAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,MAAM,IAAA,CAAK,IAAA;AAAA,YACX,SAAA,EAAW,UAAA,CAAW,IAAA,CAAK,SAAA,EAAW,4BAA4B,CAAA;AAAA,YAClE,IAAA,EAAM,KAAK,IAAA,IAAQ,EAAA;AAAA,YACnB,cAAc,IAAA,CAAK;AAAA;AAAA;AACrB;AAAA;AAAA,GAEJ;AAEJ","file":"Badge.mjs","sourcesContent":["\"use client\";\n\nimport { BRAND_COLOURS, BrandColour } from \"./utils/colours\";\nimport { Icon, IconProps } from \"./Icon\";\nimport classNames from \"classnames\";\nimport { CrosshairCorners, CrosshairCornersProps } from \"./CrossHair\";\nimport { motion, MotionProps } from \"motion/react\";\n\nexport type BadgeProps = {\n className?: string;\n label?: string;\n variant?: BrandColour;\n icon?: IconProps;\n iconPosition?: \"left\" | \"right\";\n crosshair?: CrosshairCornersProps;\n size?: \"sm\" | \"md\";\n animation?: MotionProps;\n};\n\nexport const Badge = ({\n className,\n variant,\n icon,\n crosshair,\n iconPosition = \"left\",\n label,\n size = \"sm\",\n animation,\n}: BadgeProps) => {\n return (\n <motion.div\n style={{ color: BRAND_COLOURS[variant ?? \"Secondary\"] }}\n className={classNames(\n \"shadow-[inset_0px_0px_6px] text-sm bg-card-solid/50 shadow-current/25 relative transition-all duration-100 ease-glide gradient-border before:bg-current/8 min-h-[24px] flex items-center gap-x-[5px] py-1\",\n size === \"md\" && \"!py-2\",\n !label && \"!p-2 !justify-center\",\n !icon && \"!py-1 !px-2\",\n iconPosition === \"left\" && label && icon && \"pl-1.5 pr-2\",\n iconPosition === \"right\" && label && icon && \"pl-2 pr-1.5\",\n crosshair?.variant === \"bordered\" &&\n label &&\n iconPosition === \"left\" &&\n \"pl-2.5 pr-3\",\n crosshair?.variant === \"bordered\" &&\n label &&\n iconPosition === \"right\" &&\n \"pl-3 pr-2.5\",\n className\n )}\n {...animation}\n >\n <div className={classNames(\"text-current absolute inset-0\")}>\n <CrosshairCorners\n key={icon?.name}\n variant={crosshair?.variant}\n className={classNames(\"text-current\", crosshair?.className)}\n corners={crosshair?.corners}\n animationDelay={crosshair?.animationDelay || 0}\n animationDuration={crosshair?.animationDuration || 1.5}\n size={crosshair?.size || 4}\n />\n </div>\n {icon && iconPosition === \"left\" && (\n <Icon\n name={icon.name}\n className={classNames(icon.className, \"flex-shrink-0 text-current\")}\n size={icon.size || 14}\n difficulties={icon.difficulties}\n />\n )}\n {label && <span className=\"font-mono\">{label}</span>}\n {icon && iconPosition === \"right\" && (\n <Icon\n name={icon.name}\n className={classNames(icon.className, \"flex-shrink-0 text-current\")}\n size={icon.size || 14}\n difficulties={icon.difficulties}\n />\n )}\n </motion.div>\n );\n};\n"]}
|
package/dist/Button.d.mts
CHANGED
|
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import { MotionProps } from 'motion/react';
|
|
3
3
|
import { CrosshairCornersProps } from './CrossHair.mjs';
|
|
4
4
|
import { courseDifficulty } from './utils/colours.mjs';
|
|
5
|
-
import { c as IconName } from './Icon-
|
|
5
|
+
import { c as IconName } from './Icon-D0R9Y5U4.mjs';
|
|
6
6
|
|
|
7
7
|
type ButtonProps = {
|
|
8
8
|
className?: string;
|
package/dist/Button.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import { MotionProps } from 'motion/react';
|
|
3
3
|
import { CrosshairCornersProps } from './CrossHair.js';
|
|
4
4
|
import { courseDifficulty } from './utils/colours.js';
|
|
5
|
-
import { c as IconName } from './Icon-
|
|
5
|
+
import { c as IconName } from './Icon-Xhwol1Zj.js';
|
|
6
6
|
|
|
7
7
|
type ButtonProps = {
|
|
8
8
|
className?: string;
|
package/dist/Dropdown.d.mts
CHANGED
package/dist/Dropdown.d.ts
CHANGED
|
@@ -74,6 +74,8 @@ declare const IconComponents: {
|
|
|
74
74
|
readonly Solflare: ({ className, size }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
75
75
|
readonly Brave: ({ className, size }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
76
76
|
readonly User: ({ className, size }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
77
|
+
readonly Metamask: ({ className, size }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
78
|
+
readonly Backpack: ({ className, size }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
77
79
|
};
|
|
78
80
|
declare const iconMetadata: Partial<Record<IconName, {
|
|
79
81
|
category: "brand" | "state" | "ui" | "socials";
|
|
@@ -74,6 +74,8 @@ declare const IconComponents: {
|
|
|
74
74
|
readonly Solflare: ({ className, size }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
75
75
|
readonly Brave: ({ className, size }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
76
76
|
readonly User: ({ className, size }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
77
|
+
readonly Metamask: ({ className, size }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
78
|
+
readonly Backpack: ({ className, size }: IconProps) => react_jsx_runtime.JSX.Element;
|
|
77
79
|
};
|
|
78
80
|
declare const iconMetadata: Partial<Record<IconName, {
|
|
79
81
|
category: "brand" | "state" | "ui" | "socials";
|
package/dist/Icon.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import 'react/jsx-runtime';
|
|
2
2
|
import './utils/colours.mjs';
|
|
3
|
-
export { I as Icon, b as IconComponents, c as IconName, a as IconProps, i as iconMetadata } from './Icon-
|
|
3
|
+
export { I as Icon, b as IconComponents, c as IconName, a as IconProps, i as iconMetadata } from './Icon-D0R9Y5U4.mjs';
|
package/dist/Icon.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import 'react/jsx-runtime';
|
|
2
2
|
import './utils/colours.js';
|
|
3
|
-
export { I as Icon, b as IconComponents, c as IconName, a as IconProps, i as iconMetadata } from './Icon-
|
|
3
|
+
export { I as Icon, b as IconComponents, c as IconName, a as IconProps, i as iconMetadata } from './Icon-Xhwol1Zj.js';
|
package/dist/Input.d.mts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { MotionProps } from 'motion/react';
|
|
3
|
-
import { c as IconName } from './Icon-
|
|
3
|
+
import { c as IconName } from './Icon-D0R9Y5U4.mjs';
|
|
4
4
|
import { BadgeProps } from './Badge.mjs';
|
|
5
5
|
import { TooltipProps } from './Tooltip.mjs';
|
|
6
6
|
import './utils/colours.mjs';
|
|
7
7
|
import './CrossHair.mjs';
|
|
8
8
|
|
|
9
9
|
type InputProps = {
|
|
10
|
-
title
|
|
10
|
+
title?: string;
|
|
11
11
|
value: string;
|
|
12
12
|
className?: string;
|
|
13
13
|
onChange?: (value: string) => void;
|
|
@@ -32,7 +32,8 @@ type InputProps = {
|
|
|
32
32
|
};
|
|
33
33
|
animation?: MotionProps;
|
|
34
34
|
tooltip?: TooltipProps;
|
|
35
|
+
children?: React.ReactNode;
|
|
35
36
|
};
|
|
36
|
-
declare const Input: ({ title, value, className, onChange, onFocus, onBlur, onClear, badge, type, message, hasMessage, disabled, placeholder, isValid, balance, action, animation, tooltip, }: InputProps) => react_jsx_runtime.JSX.Element;
|
|
37
|
+
declare const Input: ({ title, value, className, onChange, onFocus, onBlur, onClear, badge, type, message, hasMessage, disabled, placeholder, isValid, balance, action, animation, tooltip, children, }: InputProps) => react_jsx_runtime.JSX.Element;
|
|
37
38
|
|
|
38
39
|
export { Input, type InputProps };
|
package/dist/Input.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { MotionProps } from 'motion/react';
|
|
3
|
-
import { c as IconName } from './Icon-
|
|
3
|
+
import { c as IconName } from './Icon-Xhwol1Zj.js';
|
|
4
4
|
import { BadgeProps } from './Badge.js';
|
|
5
5
|
import { TooltipProps } from './Tooltip.js';
|
|
6
6
|
import './utils/colours.js';
|
|
7
7
|
import './CrossHair.js';
|
|
8
8
|
|
|
9
9
|
type InputProps = {
|
|
10
|
-
title
|
|
10
|
+
title?: string;
|
|
11
11
|
value: string;
|
|
12
12
|
className?: string;
|
|
13
13
|
onChange?: (value: string) => void;
|
|
@@ -32,7 +32,8 @@ type InputProps = {
|
|
|
32
32
|
};
|
|
33
33
|
animation?: MotionProps;
|
|
34
34
|
tooltip?: TooltipProps;
|
|
35
|
+
children?: React.ReactNode;
|
|
35
36
|
};
|
|
36
|
-
declare const Input: ({ title, value, className, onChange, onFocus, onBlur, onClear, badge, type, message, hasMessage, disabled, placeholder, isValid, balance, action, animation, tooltip, }: InputProps) => react_jsx_runtime.JSX.Element;
|
|
37
|
+
declare const Input: ({ title, value, className, onChange, onFocus, onBlur, onClear, badge, type, message, hasMessage, disabled, placeholder, isValid, balance, action, animation, tooltip, children, }: InputProps) => react_jsx_runtime.JSX.Element;
|
|
37
38
|
|
|
38
39
|
export { Input, type InputProps };
|
package/dist/Input.js
CHANGED
|
@@ -33,7 +33,8 @@ const Input = ({
|
|
|
33
33
|
balance,
|
|
34
34
|
action,
|
|
35
35
|
animation,
|
|
36
|
-
tooltip
|
|
36
|
+
tooltip,
|
|
37
|
+
children
|
|
37
38
|
}) => {
|
|
38
39
|
const [isTooltipOpen, setIsTooltipOpen] = react.useState(false);
|
|
39
40
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -45,7 +46,7 @@ const Input = ({
|
|
|
45
46
|
className
|
|
46
47
|
),
|
|
47
48
|
children: [
|
|
48
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-1 flex items-center justify-between w-full", children: [
|
|
49
|
+
title && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-1 flex items-center justify-between w-full", children: [
|
|
49
50
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-x-1.5", children: [
|
|
50
51
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-shade-primary leading-[100%]", children: title }),
|
|
51
52
|
tooltip && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -88,13 +89,14 @@ const Input = ({
|
|
|
88
89
|
"div",
|
|
89
90
|
{
|
|
90
91
|
className: classNames__default.default(
|
|
91
|
-
"min-h-[44px] relative h-full py-1.5 flex items-center justify-between group/input bg-background border text-shade-tertiary border-border focus-within:border-current/20 focus-within:bg-current/2 focus-within:shadow-[inset_0px_0px_12px] focus-within:shadow-current/10 transition-colors duration-100 ease-crisp",
|
|
92
|
+
"min-h-[44px] pr-4 relative h-full py-1.5 flex items-center justify-between group/input bg-background border text-shade-tertiary border-border enabled:focus-within:border-current/20 enabled:focus-within:bg-current/2 enabled:focus-within:shadow-[inset_0px_0px_12px] enabled:focus-within:shadow-current/10 transition-colors duration-100 ease-crisp",
|
|
92
93
|
!isValid && "border-state-error/20 text-state-error",
|
|
93
94
|
!!badge && "pl-1.5 pr-[10px]",
|
|
94
|
-
!badge && "pl-3 pr-4"
|
|
95
|
+
!badge && "pl-3 pr-4",
|
|
96
|
+
!!children && "!pr-1.5"
|
|
95
97
|
),
|
|
96
98
|
children: [
|
|
97
|
-
onFocus && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-1.5 text-shade-mute group-hover/input:text-shade-primary group-focus-within/input:inset-0.5 group-focus-within/input:text-shade-primary transition-all duration-50 ease-glide", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
99
|
+
onFocus && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute inset-1.5 text-shade-mute enabled:group-hover/input:text-shade-primary enabled:group-focus-within/input:inset-0.5 enabled:group-focus-within/input:text-shade-primary transition-all duration-50 ease-glide", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
98
100
|
CrossHair.CrosshairCorners,
|
|
99
101
|
{
|
|
100
102
|
size: 6,
|
|
@@ -146,6 +148,7 @@ const Input = ({
|
|
|
146
148
|
)
|
|
147
149
|
}
|
|
148
150
|
),
|
|
151
|
+
children && children,
|
|
149
152
|
action && /* @__PURE__ */ jsxRuntime.jsx(
|
|
150
153
|
Button.Button,
|
|
151
154
|
{
|
package/dist/Input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Input.tsx"],"names":["useState","jsxs","motion","classNames","jsx","Tooltip","Icon","CrosshairCorners","Badge","Button","AnimatePresence","crisp"],"mappings":"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","file":"Input.js","sourcesContent":["\"use client\";\nimport { AnimatePresence, motion, MotionProps } from \"motion/react\";\nimport { Icon, IconName, IconProps } from \"./Icon\";\nimport classNames from \"classnames\";\nimport { Badge, BadgeProps } from \"./Badge\";\nimport { Button } from \"./Button\";\nimport { crisp } from \"./utils/easings\";\nimport { CrosshairCorners } from \"./CrossHair\";\nimport { Tooltip, TooltipProps } from \"./Tooltip\";\nimport { useState } from \"react\";\n\nexport type InputProps = {\n title: string;\n value: string;\n className?: string;\n onChange?: (value: string) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n onClear?: () => void;\n badge?: BadgeProps;\n message?: string;\n hasMessage?: boolean;\n disabled?: boolean;\n placeholder?: string;\n isValid?: boolean;\n type?: \"generic\" | \"value\";\n balance?: {\n amount: string;\n unit: string;\n icon?: IconName;\n };\n action?: {\n label: string;\n onClick: () => void;\n };\n animation?: MotionProps;\n tooltip?: TooltipProps;\n};\n\nexport const Input = ({\n title,\n value,\n className,\n onChange,\n onFocus,\n onBlur,\n onClear,\n badge,\n type,\n message,\n hasMessage = true,\n disabled,\n placeholder,\n isValid = true,\n balance,\n action,\n animation,\n tooltip,\n}: InputProps) => {\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\n return (\n <motion.div\n {...animation}\n className={classNames(\n \"flex flex-col gap-y-2.5 w-full relative group/input\",\n className\n )}\n >\n <div className=\"px-1 flex items-center justify-between w-full\">\n <div className=\"flex items-center gap-x-1.5\">\n <span className=\"font-medium text-shade-primary leading-[100%]\">\n {title}\n </span>\n {tooltip && (\n <div\n className=\"h-[14px] w-[14px] relative\"\n onMouseEnter={() => setIsTooltipOpen(true)}\n onMouseLeave={() => setIsTooltipOpen(false)}\n >\n <Tooltip\n isOpen={isTooltipOpen}\n position={tooltip.position}\n description={tooltip.description}\n />\n <Icon name=\"Info\" size={14} className=\"text-shade-tertiary\" />\n </div>\n )}\n </div>\n {balance && (\n <div className=\"flex items-center gap-x-1.5\">\n <Icon\n name={balance.icon as IconName}\n size={12}\n className=\"text-shade-tertiary\"\n />\n <span className=\"font-medium text-shade-primary leading-[100%] text-sm font-mono\">\n {balance.amount} {balance.unit}\n </span>\n </div>\n )}\n </div>\n <div\n className={classNames(\n \"min-h-[44px] relative h-full py-1.5 flex items-center justify-between group/input bg-background border text-shade-tertiary border-border focus-within:border-current/20 focus-within:bg-current/2 focus-within:shadow-[inset_0px_0px_12px] focus-within:shadow-current/10 transition-colors duration-100 ease-crisp\",\n !isValid && \"border-state-error/20 text-state-error\",\n !!badge && \"pl-1.5 pr-[10px]\",\n !badge && \"pl-3 pr-4\"\n )}\n >\n {onFocus && (\n <div className=\"pointer-events-none absolute inset-1.5 text-shade-mute group-hover/input:text-shade-primary group-focus-within/input:inset-0.5 group-focus-within/input:text-shade-primary transition-all duration-50 ease-glide\">\n <CrosshairCorners\n size={6}\n variant=\"corners\"\n corners={[\"bottom-right\"]}\n animationDelay={0}\n animationDuration={0.75}\n />\n </div>\n )}\n <div\n className={classNames(\n \"flex w-full items-center gap-x-3 text-shade-primary\"\n )}\n >\n {badge && <Badge {...badge} />}\n <input\n className={classNames(\n \"h-full w-full flex-shrink font-medium focus:outline-none bg-transparent placeholder:text-shade-mute\",\n type === \"value\" && \"text-2xl font-mono text-right\",\n // Hide buttons\n \"[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none\"\n )}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n disabled={disabled}\n type={type === \"value\" ? \"number\" : \"text\"}\n />\n {onClear && value && (\n <button\n onClick={onClear}\n className=\"absolute right-2 p-2 hover:bg-border-light/50 transition-colors duration-100 ease-crisp\"\n type=\"button\"\n >\n <Icon\n name=\"Close\"\n size={12}\n className=\"text-shade-tertiary hover:text-shade-primary transition-colors duration-100 ease-crisp\"\n />\n </button>\n )}\n {action && (\n <Button\n label={action.label}\n onClick={action.onClick}\n variant=\"secondary\"\n size=\"xs\"\n useHoverEffect={false}\n />\n )}\n </div>\n </div>\n {hasMessage && (\n <div className=\"h-[14px] ml-auto px-1\">\n <AnimatePresence>\n {message && (\n <motion.span\n initial={{ opacity: 0, filter: \"blur(4px)\" }}\n animate={{ opacity: 1, filter: \"blur(0px)\" }}\n exit={{ opacity: 0, filter: \"blur(4px)\" }}\n transition={{ duration: 0.1, ease: crisp }}\n className={classNames(\n \"text-sm text-shade-secondary font-medium leading-[100%]\",\n !isValid && \"text-state-error\"\n )}\n >\n {message}\n </motion.span>\n )}\n </AnimatePresence>\n </div>\n )}\n </motion.div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/Input.tsx"],"names":["useState","jsxs","motion","classNames","jsx","Tooltip","Icon","CrosshairCorners","Badge","Button","AnimatePresence","crisp"],"mappings":"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","file":"Input.js","sourcesContent":["\"use client\";\nimport { AnimatePresence, motion, MotionProps } from \"motion/react\";\nimport { Icon, IconName, IconProps } from \"./Icon\";\nimport classNames from \"classnames\";\nimport { Badge, BadgeProps } from \"./Badge\";\nimport { Button } from \"./Button\";\nimport { crisp } from \"./utils/easings\";\nimport { CrosshairCorners } from \"./CrossHair\";\nimport { Tooltip, TooltipProps } from \"./Tooltip\";\nimport { useState } from \"react\";\n\nexport type InputProps = {\n title?: string;\n value: string;\n className?: string;\n onChange?: (value: string) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n onClear?: () => void;\n badge?: BadgeProps;\n message?: string;\n hasMessage?: boolean;\n disabled?: boolean;\n placeholder?: string;\n isValid?: boolean;\n type?: \"generic\" | \"value\";\n balance?: {\n amount: string;\n unit: string;\n icon?: IconName;\n };\n action?: {\n label: string;\n onClick: () => void;\n };\n animation?: MotionProps;\n tooltip?: TooltipProps;\n children?: React.ReactNode;\n};\n\nexport const Input = ({\n title,\n value,\n className,\n onChange,\n onFocus,\n onBlur,\n onClear,\n badge,\n type,\n message,\n hasMessage = true,\n disabled,\n placeholder,\n isValid = true,\n balance,\n action,\n animation,\n tooltip,\n children,\n}: InputProps) => {\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\n return (\n <motion.div\n {...animation}\n className={classNames(\n \"flex flex-col gap-y-2.5 w-full relative group/input\",\n className\n )}\n >\n {title && (\n <div className=\"px-1 flex items-center justify-between w-full\">\n <div className=\"flex items-center gap-x-1.5\">\n <span className=\"font-medium text-shade-primary leading-[100%]\">\n {title}\n </span>\n {tooltip && (\n <div\n className=\"h-[14px] w-[14px] relative\"\n onMouseEnter={() => setIsTooltipOpen(true)}\n onMouseLeave={() => setIsTooltipOpen(false)}\n >\n <Tooltip\n isOpen={isTooltipOpen}\n position={tooltip.position}\n description={tooltip.description}\n />\n <Icon name=\"Info\" size={14} className=\"text-shade-tertiary\" />\n </div>\n )}\n </div>\n {balance && (\n <div className=\"flex items-center gap-x-1.5\">\n <Icon\n name={balance.icon as IconName}\n size={12}\n className=\"text-shade-tertiary\"\n />\n <span className=\"font-medium text-shade-primary leading-[100%] text-sm font-mono\">\n {balance.amount} {balance.unit}\n </span>\n </div>\n )}\n </div>\n )}\n <div\n className={classNames(\n \"min-h-[44px] pr-4 relative h-full py-1.5 flex items-center justify-between group/input bg-background border text-shade-tertiary border-border enabled:focus-within:border-current/20 enabled:focus-within:bg-current/2 enabled:focus-within:shadow-[inset_0px_0px_12px] enabled:focus-within:shadow-current/10 transition-colors duration-100 ease-crisp\",\n !isValid && \"border-state-error/20 text-state-error\",\n !!badge && \"pl-1.5 pr-[10px]\",\n !badge && \"pl-3 pr-4\",\n !!children && \"!pr-1.5\"\n )}\n >\n {onFocus && (\n <div className=\"pointer-events-none absolute inset-1.5 text-shade-mute enabled:group-hover/input:text-shade-primary enabled:group-focus-within/input:inset-0.5 enabled:group-focus-within/input:text-shade-primary transition-all duration-50 ease-glide\">\n <CrosshairCorners\n size={6}\n variant=\"corners\"\n corners={[\"bottom-right\"]}\n animationDelay={0}\n animationDuration={0.75}\n />\n </div>\n )}\n <div\n className={classNames(\n \"flex w-full items-center gap-x-3 text-shade-primary\"\n )}\n >\n {badge && <Badge {...badge} />}\n <input\n className={classNames(\n \"h-full w-full flex-shrink font-medium focus:outline-none bg-transparent placeholder:text-shade-mute\",\n type === \"value\" && \"text-2xl font-mono text-right\",\n // Hide buttons\n \"[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none\"\n )}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n disabled={disabled}\n type={type === \"value\" ? \"number\" : \"text\"}\n />\n {onClear && value && (\n <button\n onClick={onClear}\n className=\"absolute right-2 p-2 hover:bg-border-light/50 transition-colors duration-100 ease-crisp\"\n type=\"button\"\n >\n <Icon\n name=\"Close\"\n size={12}\n className=\"text-shade-tertiary hover:text-shade-primary transition-colors duration-100 ease-crisp\"\n />\n </button>\n )}\n {children && children}\n {action && (\n <Button\n label={action.label}\n onClick={action.onClick}\n variant=\"secondary\"\n size=\"xs\"\n useHoverEffect={false}\n />\n )}\n </div>\n </div>\n {hasMessage && (\n <div className=\"h-[14px] ml-auto px-1\">\n <AnimatePresence>\n {message && (\n <motion.span\n initial={{ opacity: 0, filter: \"blur(4px)\" }}\n animate={{ opacity: 1, filter: \"blur(0px)\" }}\n exit={{ opacity: 0, filter: \"blur(4px)\" }}\n transition={{ duration: 0.1, ease: crisp }}\n className={classNames(\n \"text-sm text-shade-secondary font-medium leading-[100%]\",\n !isValid && \"text-state-error\"\n )}\n >\n {message}\n </motion.span>\n )}\n </AnimatePresence>\n </div>\n )}\n </motion.div>\n );\n};\n"]}
|
package/dist/Input.mjs
CHANGED
|
@@ -27,7 +27,8 @@ const Input = ({
|
|
|
27
27
|
balance,
|
|
28
28
|
action,
|
|
29
29
|
animation,
|
|
30
|
-
tooltip
|
|
30
|
+
tooltip,
|
|
31
|
+
children
|
|
31
32
|
}) => {
|
|
32
33
|
const [isTooltipOpen, setIsTooltipOpen] = useState(false);
|
|
33
34
|
return /* @__PURE__ */ jsxs(
|
|
@@ -39,7 +40,7 @@ const Input = ({
|
|
|
39
40
|
className
|
|
40
41
|
),
|
|
41
42
|
children: [
|
|
42
|
-
/* @__PURE__ */ jsxs("div", { className: "px-1 flex items-center justify-between w-full", children: [
|
|
43
|
+
title && /* @__PURE__ */ jsxs("div", { className: "px-1 flex items-center justify-between w-full", children: [
|
|
43
44
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-1.5", children: [
|
|
44
45
|
/* @__PURE__ */ jsx("span", { className: "font-medium text-shade-primary leading-[100%]", children: title }),
|
|
45
46
|
tooltip && /* @__PURE__ */ jsxs(
|
|
@@ -82,13 +83,14 @@ const Input = ({
|
|
|
82
83
|
"div",
|
|
83
84
|
{
|
|
84
85
|
className: classNames(
|
|
85
|
-
"min-h-[44px] relative h-full py-1.5 flex items-center justify-between group/input bg-background border text-shade-tertiary border-border focus-within:border-current/20 focus-within:bg-current/2 focus-within:shadow-[inset_0px_0px_12px] focus-within:shadow-current/10 transition-colors duration-100 ease-crisp",
|
|
86
|
+
"min-h-[44px] pr-4 relative h-full py-1.5 flex items-center justify-between group/input bg-background border text-shade-tertiary border-border enabled:focus-within:border-current/20 enabled:focus-within:bg-current/2 enabled:focus-within:shadow-[inset_0px_0px_12px] enabled:focus-within:shadow-current/10 transition-colors duration-100 ease-crisp",
|
|
86
87
|
!isValid && "border-state-error/20 text-state-error",
|
|
87
88
|
!!badge && "pl-1.5 pr-[10px]",
|
|
88
|
-
!badge && "pl-3 pr-4"
|
|
89
|
+
!badge && "pl-3 pr-4",
|
|
90
|
+
!!children && "!pr-1.5"
|
|
89
91
|
),
|
|
90
92
|
children: [
|
|
91
|
-
onFocus && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-1.5 text-shade-mute group-hover/input:text-shade-primary group-focus-within/input:inset-0.5 group-focus-within/input:text-shade-primary transition-all duration-50 ease-glide", children: /* @__PURE__ */ jsx(
|
|
93
|
+
onFocus && /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute inset-1.5 text-shade-mute enabled:group-hover/input:text-shade-primary enabled:group-focus-within/input:inset-0.5 enabled:group-focus-within/input:text-shade-primary transition-all duration-50 ease-glide", children: /* @__PURE__ */ jsx(
|
|
92
94
|
CrosshairCorners,
|
|
93
95
|
{
|
|
94
96
|
size: 6,
|
|
@@ -140,6 +142,7 @@ const Input = ({
|
|
|
140
142
|
)
|
|
141
143
|
}
|
|
142
144
|
),
|
|
145
|
+
children && children,
|
|
143
146
|
action && /* @__PURE__ */ jsx(
|
|
144
147
|
Button,
|
|
145
148
|
{
|
package/dist/Input.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Input.tsx"],"names":[],"mappings":"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","file":"Input.mjs","sourcesContent":["\"use client\";\nimport { AnimatePresence, motion, MotionProps } from \"motion/react\";\nimport { Icon, IconName, IconProps } from \"./Icon\";\nimport classNames from \"classnames\";\nimport { Badge, BadgeProps } from \"./Badge\";\nimport { Button } from \"./Button\";\nimport { crisp } from \"./utils/easings\";\nimport { CrosshairCorners } from \"./CrossHair\";\nimport { Tooltip, TooltipProps } from \"./Tooltip\";\nimport { useState } from \"react\";\n\nexport type InputProps = {\n title: string;\n value: string;\n className?: string;\n onChange?: (value: string) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n onClear?: () => void;\n badge?: BadgeProps;\n message?: string;\n hasMessage?: boolean;\n disabled?: boolean;\n placeholder?: string;\n isValid?: boolean;\n type?: \"generic\" | \"value\";\n balance?: {\n amount: string;\n unit: string;\n icon?: IconName;\n };\n action?: {\n label: string;\n onClick: () => void;\n };\n animation?: MotionProps;\n tooltip?: TooltipProps;\n};\n\nexport const Input = ({\n title,\n value,\n className,\n onChange,\n onFocus,\n onBlur,\n onClear,\n badge,\n type,\n message,\n hasMessage = true,\n disabled,\n placeholder,\n isValid = true,\n balance,\n action,\n animation,\n tooltip,\n}: InputProps) => {\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\n return (\n <motion.div\n {...animation}\n className={classNames(\n \"flex flex-col gap-y-2.5 w-full relative group/input\",\n className\n )}\n >\n <div className=\"px-1 flex items-center justify-between w-full\">\n <div className=\"flex items-center gap-x-1.5\">\n <span className=\"font-medium text-shade-primary leading-[100%]\">\n {title}\n </span>\n {tooltip && (\n <div\n className=\"h-[14px] w-[14px] relative\"\n onMouseEnter={() => setIsTooltipOpen(true)}\n onMouseLeave={() => setIsTooltipOpen(false)}\n >\n <Tooltip\n isOpen={isTooltipOpen}\n position={tooltip.position}\n description={tooltip.description}\n />\n <Icon name=\"Info\" size={14} className=\"text-shade-tertiary\" />\n </div>\n )}\n </div>\n {balance && (\n <div className=\"flex items-center gap-x-1.5\">\n <Icon\n name={balance.icon as IconName}\n size={12}\n className=\"text-shade-tertiary\"\n />\n <span className=\"font-medium text-shade-primary leading-[100%] text-sm font-mono\">\n {balance.amount} {balance.unit}\n </span>\n </div>\n )}\n </div>\n <div\n className={classNames(\n \"min-h-[44px] relative h-full py-1.5 flex items-center justify-between group/input bg-background border text-shade-tertiary border-border focus-within:border-current/20 focus-within:bg-current/2 focus-within:shadow-[inset_0px_0px_12px] focus-within:shadow-current/10 transition-colors duration-100 ease-crisp\",\n !isValid && \"border-state-error/20 text-state-error\",\n !!badge && \"pl-1.5 pr-[10px]\",\n !badge && \"pl-3 pr-4\"\n )}\n >\n {onFocus && (\n <div className=\"pointer-events-none absolute inset-1.5 text-shade-mute group-hover/input:text-shade-primary group-focus-within/input:inset-0.5 group-focus-within/input:text-shade-primary transition-all duration-50 ease-glide\">\n <CrosshairCorners\n size={6}\n variant=\"corners\"\n corners={[\"bottom-right\"]}\n animationDelay={0}\n animationDuration={0.75}\n />\n </div>\n )}\n <div\n className={classNames(\n \"flex w-full items-center gap-x-3 text-shade-primary\"\n )}\n >\n {badge && <Badge {...badge} />}\n <input\n className={classNames(\n \"h-full w-full flex-shrink font-medium focus:outline-none bg-transparent placeholder:text-shade-mute\",\n type === \"value\" && \"text-2xl font-mono text-right\",\n // Hide buttons\n \"[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none\"\n )}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n disabled={disabled}\n type={type === \"value\" ? \"number\" : \"text\"}\n />\n {onClear && value && (\n <button\n onClick={onClear}\n className=\"absolute right-2 p-2 hover:bg-border-light/50 transition-colors duration-100 ease-crisp\"\n type=\"button\"\n >\n <Icon\n name=\"Close\"\n size={12}\n className=\"text-shade-tertiary hover:text-shade-primary transition-colors duration-100 ease-crisp\"\n />\n </button>\n )}\n {action && (\n <Button\n label={action.label}\n onClick={action.onClick}\n variant=\"secondary\"\n size=\"xs\"\n useHoverEffect={false}\n />\n )}\n </div>\n </div>\n {hasMessage && (\n <div className=\"h-[14px] ml-auto px-1\">\n <AnimatePresence>\n {message && (\n <motion.span\n initial={{ opacity: 0, filter: \"blur(4px)\" }}\n animate={{ opacity: 1, filter: \"blur(0px)\" }}\n exit={{ opacity: 0, filter: \"blur(4px)\" }}\n transition={{ duration: 0.1, ease: crisp }}\n className={classNames(\n \"text-sm text-shade-secondary font-medium leading-[100%]\",\n !isValid && \"text-state-error\"\n )}\n >\n {message}\n </motion.span>\n )}\n </AnimatePresence>\n </div>\n )}\n </motion.div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/Input.tsx"],"names":[],"mappings":"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","file":"Input.mjs","sourcesContent":["\"use client\";\nimport { AnimatePresence, motion, MotionProps } from \"motion/react\";\nimport { Icon, IconName, IconProps } from \"./Icon\";\nimport classNames from \"classnames\";\nimport { Badge, BadgeProps } from \"./Badge\";\nimport { Button } from \"./Button\";\nimport { crisp } from \"./utils/easings\";\nimport { CrosshairCorners } from \"./CrossHair\";\nimport { Tooltip, TooltipProps } from \"./Tooltip\";\nimport { useState } from \"react\";\n\nexport type InputProps = {\n title?: string;\n value: string;\n className?: string;\n onChange?: (value: string) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n onClear?: () => void;\n badge?: BadgeProps;\n message?: string;\n hasMessage?: boolean;\n disabled?: boolean;\n placeholder?: string;\n isValid?: boolean;\n type?: \"generic\" | \"value\";\n balance?: {\n amount: string;\n unit: string;\n icon?: IconName;\n };\n action?: {\n label: string;\n onClick: () => void;\n };\n animation?: MotionProps;\n tooltip?: TooltipProps;\n children?: React.ReactNode;\n};\n\nexport const Input = ({\n title,\n value,\n className,\n onChange,\n onFocus,\n onBlur,\n onClear,\n badge,\n type,\n message,\n hasMessage = true,\n disabled,\n placeholder,\n isValid = true,\n balance,\n action,\n animation,\n tooltip,\n children,\n}: InputProps) => {\n const [isTooltipOpen, setIsTooltipOpen] = useState(false);\n return (\n <motion.div\n {...animation}\n className={classNames(\n \"flex flex-col gap-y-2.5 w-full relative group/input\",\n className\n )}\n >\n {title && (\n <div className=\"px-1 flex items-center justify-between w-full\">\n <div className=\"flex items-center gap-x-1.5\">\n <span className=\"font-medium text-shade-primary leading-[100%]\">\n {title}\n </span>\n {tooltip && (\n <div\n className=\"h-[14px] w-[14px] relative\"\n onMouseEnter={() => setIsTooltipOpen(true)}\n onMouseLeave={() => setIsTooltipOpen(false)}\n >\n <Tooltip\n isOpen={isTooltipOpen}\n position={tooltip.position}\n description={tooltip.description}\n />\n <Icon name=\"Info\" size={14} className=\"text-shade-tertiary\" />\n </div>\n )}\n </div>\n {balance && (\n <div className=\"flex items-center gap-x-1.5\">\n <Icon\n name={balance.icon as IconName}\n size={12}\n className=\"text-shade-tertiary\"\n />\n <span className=\"font-medium text-shade-primary leading-[100%] text-sm font-mono\">\n {balance.amount} {balance.unit}\n </span>\n </div>\n )}\n </div>\n )}\n <div\n className={classNames(\n \"min-h-[44px] pr-4 relative h-full py-1.5 flex items-center justify-between group/input bg-background border text-shade-tertiary border-border enabled:focus-within:border-current/20 enabled:focus-within:bg-current/2 enabled:focus-within:shadow-[inset_0px_0px_12px] enabled:focus-within:shadow-current/10 transition-colors duration-100 ease-crisp\",\n !isValid && \"border-state-error/20 text-state-error\",\n !!badge && \"pl-1.5 pr-[10px]\",\n !badge && \"pl-3 pr-4\",\n !!children && \"!pr-1.5\"\n )}\n >\n {onFocus && (\n <div className=\"pointer-events-none absolute inset-1.5 text-shade-mute enabled:group-hover/input:text-shade-primary enabled:group-focus-within/input:inset-0.5 enabled:group-focus-within/input:text-shade-primary transition-all duration-50 ease-glide\">\n <CrosshairCorners\n size={6}\n variant=\"corners\"\n corners={[\"bottom-right\"]}\n animationDelay={0}\n animationDuration={0.75}\n />\n </div>\n )}\n <div\n className={classNames(\n \"flex w-full items-center gap-x-3 text-shade-primary\"\n )}\n >\n {badge && <Badge {...badge} />}\n <input\n className={classNames(\n \"h-full w-full flex-shrink font-medium focus:outline-none bg-transparent placeholder:text-shade-mute\",\n type === \"value\" && \"text-2xl font-mono text-right\",\n // Hide buttons\n \"[-moz-appearance:_textfield] [&::-webkit-inner-spin-button]:m-0 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 [&::-webkit-outer-spin-button]:appearance-none\"\n )}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n disabled={disabled}\n type={type === \"value\" ? \"number\" : \"text\"}\n />\n {onClear && value && (\n <button\n onClick={onClear}\n className=\"absolute right-2 p-2 hover:bg-border-light/50 transition-colors duration-100 ease-crisp\"\n type=\"button\"\n >\n <Icon\n name=\"Close\"\n size={12}\n className=\"text-shade-tertiary hover:text-shade-primary transition-colors duration-100 ease-crisp\"\n />\n </button>\n )}\n {children && children}\n {action && (\n <Button\n label={action.label}\n onClick={action.onClick}\n variant=\"secondary\"\n size=\"xs\"\n useHoverEffect={false}\n />\n )}\n </div>\n </div>\n {hasMessage && (\n <div className=\"h-[14px] ml-auto px-1\">\n <AnimatePresence>\n {message && (\n <motion.span\n initial={{ opacity: 0, filter: \"blur(4px)\" }}\n animate={{ opacity: 1, filter: \"blur(0px)\" }}\n exit={{ opacity: 0, filter: \"blur(4px)\" }}\n transition={{ duration: 0.1, ease: crisp }}\n className={classNames(\n \"text-sm text-shade-secondary font-medium leading-[100%]\",\n !isValid && \"text-state-error\"\n )}\n >\n {message}\n </motion.span>\n )}\n </AnimatePresence>\n </div>\n )}\n </motion.div>\n );\n};\n"]}
|
package/dist/Slider.d.mts
CHANGED
package/dist/Slider.d.ts
CHANGED
package/dist/Tabs.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { MotionProps } from 'motion/react';
|
|
3
|
-
import { a as IconProps } from './Icon-
|
|
3
|
+
import { a as IconProps } from './Icon-D0R9Y5U4.mjs';
|
|
4
4
|
import './utils/colours.mjs';
|
|
5
5
|
|
|
6
6
|
type TabsProps = {
|
|
@@ -13,12 +13,15 @@ type TabsProps = {
|
|
|
13
13
|
disabled?: boolean;
|
|
14
14
|
selected?: boolean;
|
|
15
15
|
onClick?: () => void;
|
|
16
|
+
children?: React.ReactNode;
|
|
17
|
+
className?: string;
|
|
16
18
|
}[];
|
|
17
19
|
theme: "primary" | "secondary";
|
|
18
20
|
animation?: MotionProps;
|
|
19
21
|
stretch?: boolean;
|
|
20
22
|
size?: "sm" | "lg";
|
|
23
|
+
title?: string;
|
|
21
24
|
};
|
|
22
|
-
declare const Tabs: ({ className, variant, items, theme, animation, stretch, size, }: TabsProps) => react_jsx_runtime.JSX.Element;
|
|
25
|
+
declare const Tabs: ({ className, variant, items, theme, animation, stretch, size, title, }: TabsProps) => react_jsx_runtime.JSX.Element;
|
|
23
26
|
|
|
24
27
|
export { Tabs, type TabsProps };
|
package/dist/Tabs.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import { MotionProps } from 'motion/react';
|
|
3
|
-
import { a as IconProps } from './Icon-
|
|
3
|
+
import { a as IconProps } from './Icon-Xhwol1Zj.js';
|
|
4
4
|
import './utils/colours.js';
|
|
5
5
|
|
|
6
6
|
type TabsProps = {
|
|
@@ -13,12 +13,15 @@ type TabsProps = {
|
|
|
13
13
|
disabled?: boolean;
|
|
14
14
|
selected?: boolean;
|
|
15
15
|
onClick?: () => void;
|
|
16
|
+
children?: React.ReactNode;
|
|
17
|
+
className?: string;
|
|
16
18
|
}[];
|
|
17
19
|
theme: "primary" | "secondary";
|
|
18
20
|
animation?: MotionProps;
|
|
19
21
|
stretch?: boolean;
|
|
20
22
|
size?: "sm" | "lg";
|
|
23
|
+
title?: string;
|
|
21
24
|
};
|
|
22
|
-
declare const Tabs: ({ className, variant, items, theme, animation, stretch, size, }: TabsProps) => react_jsx_runtime.JSX.Element;
|
|
25
|
+
declare const Tabs: ({ className, variant, items, theme, animation, stretch, size, title, }: TabsProps) => react_jsx_runtime.JSX.Element;
|
|
23
26
|
|
|
24
27
|
export { Tabs, type TabsProps };
|
package/dist/Tabs.js
CHANGED
|
@@ -18,7 +18,8 @@ const Tabs = ({
|
|
|
18
18
|
theme,
|
|
19
19
|
animation,
|
|
20
20
|
stretch,
|
|
21
|
-
size = "lg"
|
|
21
|
+
size = "lg",
|
|
22
|
+
title
|
|
22
23
|
}) => {
|
|
23
24
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
24
25
|
react.motion.div,
|
|
@@ -36,19 +37,21 @@ const Tabs = ({
|
|
|
36
37
|
react.motion.button,
|
|
37
38
|
{
|
|
38
39
|
className: classNames__default.default(
|
|
39
|
-
"group hover:bg-card-solid/50 relative flex items-center gap-x-1.5 justify-
|
|
40
|
+
"group hover:bg-card-solid/50 relative flex items-center gap-x-1.5 justify-between w-full text-shade-tertiary",
|
|
40
41
|
!item.label && "w-max !px-3",
|
|
41
42
|
item.selected && theme === "secondary" && "!text-shade-primary",
|
|
42
43
|
item.selected && theme === "primary" && "!text-brand-primary",
|
|
43
44
|
size === "sm" && "py-2 px-4 text-sm",
|
|
44
|
-
size === "lg" && "py-3 px-6 text-base"
|
|
45
|
+
size === "lg" && "py-3 px-6 text-base",
|
|
46
|
+
!item.children && "!justify-center",
|
|
47
|
+
item.className
|
|
45
48
|
),
|
|
46
49
|
onClick: item.onClick,
|
|
47
50
|
children: [
|
|
48
51
|
item.selected && variant === "segmented" && /* @__PURE__ */ jsxRuntime.jsx(
|
|
49
52
|
react.motion.div,
|
|
50
53
|
{
|
|
51
|
-
layoutId:
|
|
54
|
+
layoutId: `segmented-tab-selected-${title}`,
|
|
52
55
|
transition: { duration: 0.1, ease: easings.breeze },
|
|
53
56
|
className: classNames__default.default(
|
|
54
57
|
"absolute inset-0",
|
|
@@ -92,7 +95,8 @@ const Tabs = ({
|
|
|
92
95
|
),
|
|
93
96
|
children: item.label
|
|
94
97
|
}
|
|
95
|
-
)
|
|
98
|
+
),
|
|
99
|
+
item.children && item.children
|
|
96
100
|
]
|
|
97
101
|
},
|
|
98
102
|
item.value
|