@trading-game/design-intelligence-layer 0.12.4 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -15
- package/dist/index.cjs +110 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +42 -11
- package/dist/index.d.ts +42 -11
- package/dist/index.js +110 -59
- package/dist/index.js.map +1 -1
- package/guides/design-system-guide/trading-game-ds-guide.md +45 -28
- package/guides/rules/design-system-consuming-project.mdc +23 -8
- package/package.json +1 -1
- package/src/styles.css +39 -11
package/dist/index.js
CHANGED
|
@@ -227,12 +227,12 @@ var buttonVariants = cva2(
|
|
|
227
227
|
variants: {
|
|
228
228
|
variant: {
|
|
229
229
|
// Primary brand blue (#2323FF)
|
|
230
|
-
primary: "bg-primary text-on-
|
|
230
|
+
primary: "bg-primary text-on-primary hover:bg-primary-hover",
|
|
231
231
|
// Primary Inverse — white bg + blue text; for use on dark/coloured surfaces
|
|
232
|
-
"primary-inverse": "bg-
|
|
232
|
+
"primary-inverse": "bg-primary-inverse text-on-primary-inverse hover:bg-primary-inverse/80",
|
|
233
233
|
secondary: "bg-transparent border-[1.5px] border-border-prominent text-on-prominent hover:bg-secondary-hover",
|
|
234
234
|
// Secondary Inverse — white border + white text; for use on dark/coloured surfaces
|
|
235
|
-
"secondary-inverse": "bg-transparent border-[1.5px] border-
|
|
235
|
+
"secondary-inverse": "bg-transparent border-[1.5px] border-primary-inverse text-on-prominent-inverse hover:bg-primary-inverse/10",
|
|
236
236
|
tertiary: "bg-transparent text-primary hover:bg-primary/[0.08]"
|
|
237
237
|
},
|
|
238
238
|
size: {
|
|
@@ -542,7 +542,7 @@ function AvatarBadge(_a) {
|
|
|
542
542
|
__spreadValues({
|
|
543
543
|
"data-slot": "avatar-badge",
|
|
544
544
|
className: cn(
|
|
545
|
-
"absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-on-
|
|
545
|
+
"absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-on-primary ring-2 ring-prominent select-none",
|
|
546
546
|
"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden",
|
|
547
547
|
"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2",
|
|
548
548
|
"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2",
|
|
@@ -593,16 +593,16 @@ var badgeVariants = cva3(
|
|
|
593
593
|
variants: {
|
|
594
594
|
variant: {
|
|
595
595
|
// Default (solid)
|
|
596
|
-
default: "bg-primary text-on-
|
|
597
|
-
"default-success": "bg-semantic-win text-on-
|
|
598
|
-
"default-fail": "bg-semantic-loss text-on-
|
|
599
|
-
"default-warning": "bg-semantic-warning text-on-
|
|
596
|
+
default: "bg-primary text-on-primary [a&]:hover:bg-primary/90",
|
|
597
|
+
"default-success": "bg-semantic-win text-on-semantic-win [a&]:hover:bg-semantic-win/90",
|
|
598
|
+
"default-fail": "bg-semantic-loss text-on-semantic-loss [a&]:hover:bg-semantic-loss/90",
|
|
599
|
+
"default-warning": "bg-semantic-warning text-on-semantic-warning [a&]:hover:bg-semantic-warning/90",
|
|
600
600
|
// Fill (tint)
|
|
601
601
|
fill: "bg-primary/10 border-transparent text-primary",
|
|
602
602
|
"fill-success": "bg-semantic-win/10 border-transparent text-semantic-win",
|
|
603
603
|
"fill-fail": "bg-semantic-loss/10 border-transparent text-semantic-loss",
|
|
604
604
|
"fill-warning": "bg-semantic-warning/10 border-transparent text-semantic-warning",
|
|
605
|
-
"fill-
|
|
605
|
+
"fill-boost": "bg-semantic-boost/16 border-transparent text-on-semantic-boost !text-xs !font-semibold",
|
|
606
606
|
// Ghost (transparent)
|
|
607
607
|
ghost: "bg-transparent border-transparent text-primary [a&]:hover:bg-secondary-hover [a&]:hover:text-primary",
|
|
608
608
|
"ghost-success": "bg-transparent border-transparent text-semantic-win [a&]:hover:bg-semantic-win/10 [a&]:hover:text-semantic-win",
|
|
@@ -1491,7 +1491,7 @@ function Checkbox(_a) {
|
|
|
1491
1491
|
__spreadProps(__spreadValues({
|
|
1492
1492
|
"data-slot": "checkbox",
|
|
1493
1493
|
className: cn(
|
|
1494
|
-
"peer size-4 shrink-0 rounded-[2px] border border-input shadow-xs transition-shadow outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-on-
|
|
1494
|
+
"peer size-4 shrink-0 rounded-[2px] border border-input shadow-xs transition-shadow outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-on-primary",
|
|
1495
1495
|
className
|
|
1496
1496
|
)
|
|
1497
1497
|
}, props), {
|
|
@@ -1549,7 +1549,7 @@ var inputVariants = cva4(
|
|
|
1549
1549
|
[
|
|
1550
1550
|
"w-full min-w-0 rounded-sm border border-border-subtle bg-white/5",
|
|
1551
1551
|
"text-on-prominent font-body shadow-xs transition-[color,box-shadow] outline-none",
|
|
1552
|
-
"selection:bg-primary selection:text-on-
|
|
1552
|
+
"selection:bg-primary selection:text-on-primary",
|
|
1553
1553
|
"file:inline-flex file:border-0 file:bg-transparent file:font-medium file:text-on-prominent",
|
|
1554
1554
|
"placeholder:text-on-subtle",
|
|
1555
1555
|
"disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
@@ -4109,7 +4109,7 @@ function NativeSelect(_a) {
|
|
|
4109
4109
|
"data-slot": "native-select",
|
|
4110
4110
|
"data-size": size,
|
|
4111
4111
|
className: cn(
|
|
4112
|
-
"h-9 w-full min-w-0 appearance-none rounded-md border border-input bg-transparent px-3 py-2 pr-9 text-sm shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-on-
|
|
4112
|
+
"h-9 w-full min-w-0 appearance-none rounded-md border border-input bg-transparent px-3 py-2 pr-9 text-sm shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-on-primary placeholder:text-on-subtle disabled:pointer-events-none disabled:cursor-not-allowed data-[size=sm]:h-8 data-[size=sm]:py-1",
|
|
4113
4113
|
"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
|
|
4114
4114
|
className
|
|
4115
4115
|
)
|
|
@@ -5034,7 +5034,7 @@ function SheetDescription(_a) {
|
|
|
5034
5034
|
}
|
|
5035
5035
|
|
|
5036
5036
|
// components/ui/sidebar.tsx
|
|
5037
|
-
import * as
|
|
5037
|
+
import * as React10 from "react";
|
|
5038
5038
|
import { cva as cva12 } from "class-variance-authority";
|
|
5039
5039
|
import { PanelLeftIcon } from "lucide-react";
|
|
5040
5040
|
import { Slot as Slot8 } from "radix-ui";
|
|
@@ -5070,8 +5070,10 @@ function Skeleton(_a) {
|
|
|
5070
5070
|
}
|
|
5071
5071
|
|
|
5072
5072
|
// components/ui/tooltip.tsx
|
|
5073
|
+
import * as React9 from "react";
|
|
5073
5074
|
import { Tooltip as TooltipPrimitive } from "radix-ui";
|
|
5074
5075
|
import { jsx as jsx49, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
5076
|
+
var TooltipModeContext = React9.createContext("tooltip");
|
|
5075
5077
|
function TooltipProvider(_a) {
|
|
5076
5078
|
var _b = _a, {
|
|
5077
5079
|
delayDuration = 0
|
|
@@ -5087,36 +5089,71 @@ function TooltipProvider(_a) {
|
|
|
5087
5089
|
);
|
|
5088
5090
|
}
|
|
5089
5091
|
function Tooltip2(_a) {
|
|
5090
|
-
var
|
|
5091
|
-
|
|
5092
|
+
var _b = _a, {
|
|
5093
|
+
children
|
|
5094
|
+
} = _b, props = __objRest(_b, [
|
|
5095
|
+
"children"
|
|
5096
|
+
]);
|
|
5097
|
+
const isMobile = useIsMobile();
|
|
5098
|
+
const mode = isMobile ? "drawer" : "tooltip";
|
|
5099
|
+
if (mode === "drawer") {
|
|
5100
|
+
return /* @__PURE__ */ jsx49(TooltipModeContext.Provider, { value: "drawer", children: /* @__PURE__ */ jsx49(Drawer, { children }) });
|
|
5101
|
+
}
|
|
5102
|
+
return /* @__PURE__ */ jsx49(TooltipModeContext.Provider, { value: "tooltip", children: /* @__PURE__ */ jsx49(TooltipPrimitive.Root, __spreadProps(__spreadValues({ "data-slot": "tooltip" }, props), { children })) });
|
|
5092
5103
|
}
|
|
5093
5104
|
function TooltipTrigger(_a) {
|
|
5094
|
-
var
|
|
5095
|
-
|
|
5105
|
+
var _b = _a, {
|
|
5106
|
+
children
|
|
5107
|
+
} = _b, props = __objRest(_b, [
|
|
5108
|
+
"children"
|
|
5109
|
+
]);
|
|
5110
|
+
const mode = React9.useContext(TooltipModeContext);
|
|
5111
|
+
if (mode === "drawer") {
|
|
5112
|
+
return /* @__PURE__ */ jsx49(DrawerTrigger, __spreadProps(__spreadValues({ "data-slot": "tooltip-trigger" }, props), { children }));
|
|
5113
|
+
}
|
|
5114
|
+
return /* @__PURE__ */ jsx49(TooltipPrimitive.Trigger, __spreadProps(__spreadValues({ "data-slot": "tooltip-trigger" }, props), { children }));
|
|
5096
5115
|
}
|
|
5097
5116
|
function TooltipContent(_a) {
|
|
5098
5117
|
var _b = _a, {
|
|
5099
5118
|
className,
|
|
5100
5119
|
sideOffset = 6,
|
|
5120
|
+
variant = "default",
|
|
5121
|
+
title = "Title",
|
|
5122
|
+
closeLabel = "Label",
|
|
5101
5123
|
children
|
|
5102
5124
|
} = _b, props = __objRest(_b, [
|
|
5103
5125
|
"className",
|
|
5104
5126
|
"sideOffset",
|
|
5127
|
+
"variant",
|
|
5128
|
+
"title",
|
|
5129
|
+
"closeLabel",
|
|
5105
5130
|
"children"
|
|
5106
5131
|
]);
|
|
5132
|
+
const mode = React9.useContext(TooltipModeContext);
|
|
5133
|
+
if (mode === "drawer") {
|
|
5134
|
+
return /* @__PURE__ */ jsxs23(DrawerContent, { "data-slot": "tooltip-content", "data-variant": variant, children: [
|
|
5135
|
+
/* @__PURE__ */ jsx49(DrawerTitle, { className: "px-5 pt-2 text-left text-base font-bold text-on-prominent", children: title }),
|
|
5136
|
+
/* @__PURE__ */ jsx49("div", { className: cn("px-5 pt-2 pb-2 text-sm font-medium text-on-prominent", className), children }),
|
|
5137
|
+
/* @__PURE__ */ jsx49(DrawerFooter, { children: /* @__PURE__ */ jsx49(DrawerClose, { asChild: true, children: /* @__PURE__ */ jsx49(Button, { variant: "primary", size: "md", children: closeLabel }) }) })
|
|
5138
|
+
] });
|
|
5139
|
+
}
|
|
5140
|
+
const surfaceClasses = variant === "inverse" ? "bg-prominent text-on-prominent shadow-sm" : "bg-primary text-on-primary";
|
|
5141
|
+
const arrowClasses = variant === "inverse" ? "fill-prominent" : "fill-primary";
|
|
5107
5142
|
return /* @__PURE__ */ jsx49(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs23(
|
|
5108
5143
|
TooltipPrimitive.Content,
|
|
5109
5144
|
__spreadProps(__spreadValues({
|
|
5110
5145
|
"data-slot": "tooltip-content",
|
|
5146
|
+
"data-variant": variant,
|
|
5111
5147
|
sideOffset,
|
|
5112
5148
|
className: cn(
|
|
5113
|
-
"z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md
|
|
5149
|
+
"z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md border-0 px-3 py-1.5 text-sm font-medium text-balance fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
5150
|
+
surfaceClasses,
|
|
5114
5151
|
className
|
|
5115
5152
|
)
|
|
5116
5153
|
}, props), {
|
|
5117
5154
|
children: [
|
|
5118
5155
|
children,
|
|
5119
|
-
/* @__PURE__ */ jsx49(TooltipPrimitive.Arrow, { className:
|
|
5156
|
+
/* @__PURE__ */ jsx49(TooltipPrimitive.Arrow, { className: arrowClasses })
|
|
5120
5157
|
]
|
|
5121
5158
|
})
|
|
5122
5159
|
) });
|
|
@@ -5130,9 +5167,9 @@ var SIDEBAR_WIDTH = "16rem";
|
|
|
5130
5167
|
var SIDEBAR_WIDTH_MOBILE = "18rem";
|
|
5131
5168
|
var SIDEBAR_WIDTH_ICON = "3rem";
|
|
5132
5169
|
var SIDEBAR_KEYBOARD_SHORTCUT = "b";
|
|
5133
|
-
var SidebarContext =
|
|
5170
|
+
var SidebarContext = React10.createContext(null);
|
|
5134
5171
|
function useSidebar() {
|
|
5135
|
-
const context =
|
|
5172
|
+
const context = React10.useContext(SidebarContext);
|
|
5136
5173
|
if (!context) {
|
|
5137
5174
|
throw new Error("useSidebar must be used within a SidebarProvider.");
|
|
5138
5175
|
}
|
|
@@ -5155,10 +5192,10 @@ function SidebarProvider(_a) {
|
|
|
5155
5192
|
"children"
|
|
5156
5193
|
]);
|
|
5157
5194
|
const isMobile = useIsMobile();
|
|
5158
|
-
const [openMobile, setOpenMobile] =
|
|
5159
|
-
const [_open, _setOpen] =
|
|
5195
|
+
const [openMobile, setOpenMobile] = React10.useState(false);
|
|
5196
|
+
const [_open, _setOpen] = React10.useState(defaultOpen);
|
|
5160
5197
|
const open = openProp != null ? openProp : _open;
|
|
5161
|
-
const setOpen =
|
|
5198
|
+
const setOpen = React10.useCallback(
|
|
5162
5199
|
(value) => {
|
|
5163
5200
|
const openState = typeof value === "function" ? value(open) : value;
|
|
5164
5201
|
if (setOpenProp) {
|
|
@@ -5170,10 +5207,10 @@ function SidebarProvider(_a) {
|
|
|
5170
5207
|
},
|
|
5171
5208
|
[setOpenProp, open]
|
|
5172
5209
|
);
|
|
5173
|
-
const toggleSidebar =
|
|
5210
|
+
const toggleSidebar = React10.useCallback(() => {
|
|
5174
5211
|
return isMobile ? setOpenMobile((open2) => !open2) : setOpen((open2) => !open2);
|
|
5175
5212
|
}, [isMobile, setOpen, setOpenMobile]);
|
|
5176
|
-
|
|
5213
|
+
React10.useEffect(() => {
|
|
5177
5214
|
const handleKeyDown = (event) => {
|
|
5178
5215
|
if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
|
|
5179
5216
|
event.preventDefault();
|
|
@@ -5184,7 +5221,7 @@ function SidebarProvider(_a) {
|
|
|
5184
5221
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
5185
5222
|
}, [toggleSidebar]);
|
|
5186
5223
|
const state = open ? "expanded" : "collapsed";
|
|
5187
|
-
const contextValue =
|
|
5224
|
+
const contextValue = React10.useMemo(
|
|
5188
5225
|
() => ({
|
|
5189
5226
|
state,
|
|
5190
5227
|
open,
|
|
@@ -5762,7 +5799,7 @@ function SidebarMenuSubButton(_a) {
|
|
|
5762
5799
|
}
|
|
5763
5800
|
|
|
5764
5801
|
// components/ui/slider.tsx
|
|
5765
|
-
import * as
|
|
5802
|
+
import * as React11 from "react";
|
|
5766
5803
|
import { Slider as SliderPrimitive } from "radix-ui";
|
|
5767
5804
|
import { jsx as jsx51, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
5768
5805
|
function Slider(_a) {
|
|
@@ -5779,7 +5816,7 @@ function Slider(_a) {
|
|
|
5779
5816
|
"min",
|
|
5780
5817
|
"max"
|
|
5781
5818
|
]);
|
|
5782
|
-
const _values =
|
|
5819
|
+
const _values = React11.useMemo(
|
|
5783
5820
|
() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max],
|
|
5784
5821
|
[value, defaultValue, min, max]
|
|
5785
5822
|
);
|
|
@@ -5828,7 +5865,7 @@ function Slider(_a) {
|
|
|
5828
5865
|
);
|
|
5829
5866
|
}
|
|
5830
5867
|
|
|
5831
|
-
// components/ui/
|
|
5868
|
+
// components/ui/toast.tsx
|
|
5832
5869
|
import {
|
|
5833
5870
|
CircleCheckIcon,
|
|
5834
5871
|
InfoIcon,
|
|
@@ -5837,7 +5874,7 @@ import {
|
|
|
5837
5874
|
TriangleAlertIcon
|
|
5838
5875
|
} from "lucide-react";
|
|
5839
5876
|
import { useTheme } from "next-themes";
|
|
5840
|
-
import { Toaster as Sonner } from "sonner";
|
|
5877
|
+
import { Toaster as Sonner, toast } from "sonner";
|
|
5841
5878
|
import { jsx as jsx52 } from "react/jsx-runtime";
|
|
5842
5879
|
var Toaster = (_a) => {
|
|
5843
5880
|
var props = __objRest(_a, []);
|
|
@@ -5860,15 +5897,15 @@ var Toaster = (_a) => {
|
|
|
5860
5897
|
},
|
|
5861
5898
|
toastOptions: {
|
|
5862
5899
|
classNames: {
|
|
5863
|
-
toast: "!bg-[var(--
|
|
5864
|
-
title: "!text-[var(--on-prominent-
|
|
5865
|
-
description: "!text-[var(--on-prominent-
|
|
5866
|
-
actionButton: "!bg-[var(--primary)] !text-[var(--on-
|
|
5900
|
+
toast: "!bg-[var(--prominent-inverse)] !border-none",
|
|
5901
|
+
title: "!text-[var(--on-prominent-inverse)] !font-display !font-bold",
|
|
5902
|
+
description: "!text-[var(--on-prominent-inverse)] !opacity-60 !font-body",
|
|
5903
|
+
actionButton: "!bg-[var(--primary-inverse)] !text-[var(--on-primary-inverse)]"
|
|
5867
5904
|
}
|
|
5868
5905
|
},
|
|
5869
5906
|
style: {
|
|
5870
|
-
"--normal-bg": "var(--
|
|
5871
|
-
"--normal-text": "var(--on-prominent-
|
|
5907
|
+
"--normal-bg": "var(--prominent-inverse)",
|
|
5908
|
+
"--normal-text": "var(--on-prominent-inverse)",
|
|
5872
5909
|
"--normal-border": "transparent",
|
|
5873
5910
|
"--border-radius": "var(--radius)"
|
|
5874
5911
|
}
|
|
@@ -5877,7 +5914,7 @@ var Toaster = (_a) => {
|
|
|
5877
5914
|
};
|
|
5878
5915
|
|
|
5879
5916
|
// components/ui/stepper.tsx
|
|
5880
|
-
import * as
|
|
5917
|
+
import * as React12 from "react";
|
|
5881
5918
|
import { Minus, Plus } from "lucide-react";
|
|
5882
5919
|
import { jsx as jsx53, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
5883
5920
|
function clamp(value, min, max) {
|
|
@@ -5913,16 +5950,16 @@ function Stepper({
|
|
|
5913
5950
|
}) {
|
|
5914
5951
|
const { container, buttonSize, iconClass } = stepperSizeConfig[size];
|
|
5915
5952
|
const isControlled = controlledValue !== void 0;
|
|
5916
|
-
const [internalValue, setInternalValue] =
|
|
5953
|
+
const [internalValue, setInternalValue] = React12.useState(
|
|
5917
5954
|
clamp(defaultValue, min, max)
|
|
5918
5955
|
);
|
|
5919
5956
|
const currentValue = isControlled ? controlledValue : internalValue;
|
|
5920
5957
|
const decimalPlaces = getDecimalPlaces(step);
|
|
5921
|
-
const [displayString, setDisplayString] =
|
|
5958
|
+
const [displayString, setDisplayString] = React12.useState(
|
|
5922
5959
|
formatValue(currentValue, decimalPlaces)
|
|
5923
5960
|
);
|
|
5924
|
-
const [isFocused, setIsFocused] =
|
|
5925
|
-
|
|
5961
|
+
const [isFocused, setIsFocused] = React12.useState(false);
|
|
5962
|
+
React12.useEffect(() => {
|
|
5926
5963
|
if (!isFocused) {
|
|
5927
5964
|
setDisplayString(formatValue(currentValue, decimalPlaces));
|
|
5928
5965
|
}
|
|
@@ -6280,7 +6317,7 @@ function TabsContent(_a) {
|
|
|
6280
6317
|
}
|
|
6281
6318
|
|
|
6282
6319
|
// components/ui/ticket-card.tsx
|
|
6283
|
-
import { ArrowRight as ArrowRight2,
|
|
6320
|
+
import { ArrowRight as ArrowRight2, Info, Rocket } from "lucide-react";
|
|
6284
6321
|
import { Fragment as Fragment3, jsx as jsx57, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
6285
6322
|
function TicketCard({
|
|
6286
6323
|
className,
|
|
@@ -6344,14 +6381,14 @@ function TicketCard({
|
|
|
6344
6381
|
}
|
|
6345
6382
|
}
|
|
6346
6383
|
),
|
|
6347
|
-
/* @__PURE__ */ jsx57(ArrowRight2, { className: "size-4 text-on-
|
|
6348
|
-
/* @__PURE__ */ jsx57("span", { className: "text-sm font-semibold text-on-
|
|
6384
|
+
/* @__PURE__ */ jsx57(ArrowRight2, { className: "size-4 text-on-primary" }),
|
|
6385
|
+
/* @__PURE__ */ jsx57("span", { className: "text-sm font-semibold text-on-primary", children: stubLabel })
|
|
6349
6386
|
]
|
|
6350
6387
|
}
|
|
6351
6388
|
)
|
|
6352
6389
|
] }) });
|
|
6353
6390
|
}
|
|
6354
|
-
function
|
|
6391
|
+
function BoostTicketCard({
|
|
6355
6392
|
className,
|
|
6356
6393
|
icon,
|
|
6357
6394
|
label,
|
|
@@ -6360,8 +6397,9 @@ function CreditTicketCard({
|
|
|
6360
6397
|
stubLabel,
|
|
6361
6398
|
onStubClick,
|
|
6362
6399
|
stubDisabled = false,
|
|
6363
|
-
|
|
6364
|
-
|
|
6400
|
+
boostAmount = "0.00",
|
|
6401
|
+
boostCurrency = "USDT",
|
|
6402
|
+
boostInfo,
|
|
6365
6403
|
compact = false
|
|
6366
6404
|
}) {
|
|
6367
6405
|
return /* @__PURE__ */ jsx57("div", { className: cn("flex w-full flex-col gap-2", className), children: /* @__PURE__ */ jsxs27("div", { className: "relative flex w-full items-stretch justify-between rounded-sm bg-subtle", children: [
|
|
@@ -6378,12 +6416,24 @@ function CreditTicketCard({
|
|
|
6378
6416
|
] })
|
|
6379
6417
|
] })
|
|
6380
6418
|
] }),
|
|
6381
|
-
/* @__PURE__ */ jsxs27(Badge, { variant: "fill-
|
|
6382
|
-
/* @__PURE__ */ jsx57(
|
|
6383
|
-
"
|
|
6384
|
-
|
|
6419
|
+
/* @__PURE__ */ jsxs27(Badge, { variant: "fill-boost", size: "sm", className: "!gap-1 !font-medium !tracking-normal", children: [
|
|
6420
|
+
/* @__PURE__ */ jsx57(Rocket, { className: "!size-3.5", strokeWidth: 2 }),
|
|
6421
|
+
"Boost: ",
|
|
6422
|
+
boostAmount,
|
|
6385
6423
|
" ",
|
|
6386
|
-
|
|
6424
|
+
boostCurrency,
|
|
6425
|
+
boostInfo && /* @__PURE__ */ jsx57(TooltipProvider, { children: /* @__PURE__ */ jsxs27(Tooltip2, { children: [
|
|
6426
|
+
/* @__PURE__ */ jsx57(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx57(
|
|
6427
|
+
"button",
|
|
6428
|
+
{
|
|
6429
|
+
type: "button",
|
|
6430
|
+
"aria-label": "More info about boost",
|
|
6431
|
+
className: "inline-flex shrink-0 items-center justify-center rounded-full text-on-semantic-boost outline-none transition-opacity hover:opacity-70 focus-visible:opacity-70 focus-visible:ring-2 focus-visible:ring-on-semantic-boost/40 cursor-pointer",
|
|
6432
|
+
children: /* @__PURE__ */ jsx57(Info, { className: "!size-3.5", strokeWidth: 2 })
|
|
6433
|
+
}
|
|
6434
|
+
) }),
|
|
6435
|
+
/* @__PURE__ */ jsx57(TooltipContent, { side: "top", variant: "inverse", className: "max-w-xs whitespace-normal", children: boostInfo })
|
|
6436
|
+
] }) })
|
|
6387
6437
|
] })
|
|
6388
6438
|
] })
|
|
6389
6439
|
] }),
|
|
@@ -6424,8 +6474,8 @@ function CreditTicketCard({
|
|
|
6424
6474
|
}
|
|
6425
6475
|
}
|
|
6426
6476
|
),
|
|
6427
|
-
/* @__PURE__ */ jsx57(ArrowRight2, { className: "size-4 text-on-
|
|
6428
|
-
/* @__PURE__ */ jsx57("span", { className: "text-sm font-semibold text-on-
|
|
6477
|
+
/* @__PURE__ */ jsx57(ArrowRight2, { className: "size-4 text-on-primary" }),
|
|
6478
|
+
/* @__PURE__ */ jsx57("span", { className: "text-sm font-semibold text-on-primary", children: stubLabel })
|
|
6429
6479
|
]
|
|
6430
6480
|
}
|
|
6431
6481
|
)
|
|
@@ -6477,10 +6527,10 @@ function Toggle(_a) {
|
|
|
6477
6527
|
}
|
|
6478
6528
|
|
|
6479
6529
|
// components/ui/toggle-group.tsx
|
|
6480
|
-
import * as
|
|
6530
|
+
import * as React13 from "react";
|
|
6481
6531
|
import { ToggleGroup as ToggleGroupPrimitive } from "radix-ui";
|
|
6482
6532
|
import { jsx as jsx59 } from "react/jsx-runtime";
|
|
6483
|
-
var ToggleGroupContext =
|
|
6533
|
+
var ToggleGroupContext = React13.createContext({
|
|
6484
6534
|
size: "default",
|
|
6485
6535
|
variant: "default",
|
|
6486
6536
|
spacing: 0
|
|
@@ -6528,7 +6578,7 @@ function ToggleGroupItem(_a) {
|
|
|
6528
6578
|
"variant",
|
|
6529
6579
|
"size"
|
|
6530
6580
|
]);
|
|
6531
|
-
const context =
|
|
6581
|
+
const context = React13.useContext(ToggleGroupContext);
|
|
6532
6582
|
return /* @__PURE__ */ jsx59(
|
|
6533
6583
|
ToggleGroupPrimitive.Item,
|
|
6534
6584
|
__spreadProps(__spreadValues({
|
|
@@ -6578,6 +6628,7 @@ export {
|
|
|
6578
6628
|
AvatarGroupCount,
|
|
6579
6629
|
AvatarImage,
|
|
6580
6630
|
Badge,
|
|
6631
|
+
BoostTicketCard,
|
|
6581
6632
|
Breadcrumb,
|
|
6582
6633
|
BreadcrumbEllipsis,
|
|
6583
6634
|
BreadcrumbItem,
|
|
@@ -6649,7 +6700,6 @@ export {
|
|
|
6649
6700
|
ContextMenuSubContent,
|
|
6650
6701
|
ContextMenuSubTrigger,
|
|
6651
6702
|
ContextMenuTrigger,
|
|
6652
|
-
CreditTicketCard,
|
|
6653
6703
|
Dialog,
|
|
6654
6704
|
DialogClose,
|
|
6655
6705
|
DialogContent,
|
|
@@ -6865,6 +6915,7 @@ export {
|
|
|
6865
6915
|
navigationButtonVariants,
|
|
6866
6916
|
navigationMenuTriggerStyle,
|
|
6867
6917
|
tabsListVariants,
|
|
6918
|
+
toast,
|
|
6868
6919
|
toggleVariants,
|
|
6869
6920
|
useComboboxAnchor,
|
|
6870
6921
|
useDirection,
|