kaleido-ui 0.1.20 → 0.1.21

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.
@@ -3070,9 +3070,14 @@ function AssetSelector({
3070
3070
  " available"
3071
3071
  ] })
3072
3072
  ] }),
3073
- selected && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex items-center gap-2 rounded-full border border-primary/15 bg-primary/10 px-2.5 py-1", children: [
3073
+ selected && /* Network-coloured chip uses the existing NetworkBadge
3074
+ so the asset's network color carries through (matches
3075
+ the showcase / wallet main page styling). When the
3076
+ asset has no network we fall back to a neutral pill. */
3077
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-2.5 py-1", children: [
3074
3078
  /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(AssetIcon, { ticker: selected.ticker, logoUri: selected.icon, size: 18 }),
3075
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "text-tiny font-semibold text-primary", children: selected.ticker })
3079
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "text-tiny font-semibold text-white", children: selected.ticker }),
3080
+ selected.network && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(NetworkBadge, { network: selected.network, showLabel: true, className: "py-[1px]" })
3076
3081
  ] })
3077
3082
  ] }) }),
3078
3083
  /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex-shrink-0 border-b border-white/[0.08] px-4 py-3", children: [
@@ -3093,7 +3098,7 @@ function AssetSelector({
3093
3098
  value: search,
3094
3099
  onChange: (event) => setSearch(event.target.value),
3095
3100
  placeholder: "Search...",
3096
- className: "h-11 w-full rounded-2xl border bg-black/20 pl-10 pr-3 text-sm text-white placeholder:text-white/25 focus:border-primary/50 focus:outline-none"
3101
+ className: "h-11 w-full rounded-2xl border border-transparent bg-black/20 pl-10 pr-3 text-sm text-white placeholder:text-white/25 focus:border-primary/50 focus:outline-none"
3097
3102
  }
3098
3103
  )
3099
3104
  ] }),
@@ -3116,7 +3121,7 @@ function AssetSelector({
3116
3121
  );
3117
3122
  }) })
3118
3123
  ] }),
3119
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ScrollArea, { className: "min-h-0", viewportClassName: "px-2 py-2", children: filtered.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex flex-col items-center gap-2 px-4 py-10 text-center text-sm text-white/30", children: [
3124
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(ScrollArea, { className: "min-h-0", viewportClassName: "px-2 py-2 pb-6", children: filtered.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "flex flex-col items-center gap-2 px-4 py-10 text-center text-sm text-white/30", children: [
3120
3125
  /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(Icon2, { name: "search", size: "md", className: "opacity-40" }),
3121
3126
  /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("span", { children: [
3122
3127
  "No results",
@@ -3293,6 +3298,7 @@ function SwapInputCard({
3293
3298
  quoteExpiresUrgent = false,
3294
3299
  warning,
3295
3300
  submitLabel,
3301
+ submitIcon,
3296
3302
  submitVariant = "cta",
3297
3303
  submitDisabled = false,
3298
3304
  onFromTickerChange,
@@ -3306,7 +3312,26 @@ function SwapInputCard({
3306
3312
  return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(import_jsx_runtime35.Fragment, { children: [
3307
3313
  /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "relative mb-3 flex flex-col rounded-3xl bg-white/[0.03] shadow-2xl shadow-black/40 backdrop-blur-2xl transition-all duration-300", children: [
3308
3314
  /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "p-3.5 pb-4", children: [
3309
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "mb-2 flex items-center justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "text-xs font-bold uppercase tracking-widest text-white/60", children: "You Pay" }) }),
3315
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "mb-2 flex items-center justify-between gap-2", children: [
3316
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "text-xs font-bold uppercase tracking-widest text-white/60", children: "You Pay" }),
3317
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "flex items-center gap-1", children: PERCENTAGES.map((percent) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
3318
+ "button",
3319
+ {
3320
+ type: "button",
3321
+ disabled: percentageDisabled,
3322
+ onClick: () => onPercentageClick(percent),
3323
+ className: cn(
3324
+ "rounded px-1.5 py-0.5 text-xxs font-bold transition-all duration-300 disabled:cursor-not-allowed disabled:opacity-40",
3325
+ selectedPercentage === percent ? "border-primary/50 bg-primary/20 text-primary shadow-sm" : "bg-white/[0.03] text-muted-foreground hover:text-white"
3326
+ ),
3327
+ children: [
3328
+ percent,
3329
+ "%"
3330
+ ]
3331
+ },
3332
+ percent
3333
+ )) })
3334
+ ] }),
3310
3335
  /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-2", children: [
3311
3336
  /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3312
3337
  AssetSelector,
@@ -3338,44 +3363,25 @@ function SwapInputCard({
3338
3363
  {
3339
3364
  type: "button",
3340
3365
  onClick: onToggleFromUnit,
3341
- className: "mt-0.5 text-right text-xs text-muted-foreground underline decoration-dotted transition-colors hover:text-primary",
3366
+ className: "mt-0.5 text-right text-xs text-muted-foreground transition-colors hover:text-primary",
3342
3367
  title: "Tap to switch unit",
3343
3368
  children: fromUnitLabel
3344
3369
  }
3345
3370
  ) : /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "mt-0.5 text-xs text-muted-foreground", children: fromUnitLabel })
3346
3371
  ] })
3347
3372
  ] }),
3348
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "mt-2 flex items-center justify-between gap-2", children: [
3349
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "text-xxs font-medium text-white/60", children: showMaxText && maxText ? `Max: ${maxText}` : `Available: ${availableText}` }),
3350
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "flex items-center gap-1", children: PERCENTAGES.map((percent) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
3351
- "button",
3352
- {
3353
- type: "button",
3354
- disabled: percentageDisabled,
3355
- onClick: () => onPercentageClick(percent),
3356
- className: cn(
3357
- "rounded px-1.5 py-0.5 text-xxs font-bold transition-all duration-300 disabled:cursor-not-allowed disabled:opacity-40",
3358
- selectedPercentage === percent ? "border-primary/50 bg-primary/20 text-primary shadow-sm" : "bg-white/[0.03] text-muted-foreground hover:text-white"
3359
- ),
3360
- children: [
3361
- percent,
3362
- "%"
3363
- ]
3364
- },
3365
- percent
3366
- )) })
3367
- ] })
3373
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "mt-2 flex items-center justify-between gap-2", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "text-xxs font-medium text-white/60", children: showMaxText && maxText ? `Max: ${maxText}` : `Available: ${availableText}` }) })
3368
3374
  ] }),
3369
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "relative mx-6 flex h-px items-center justify-center bg-white/[0.08]", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3375
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "relative mx-6 flex h-px items-center justify-center bg-white/[0.08]", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "absolute flex h-11 w-11 items-center justify-center rounded-full bg-card shadow-lg shadow-black/35", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
3370
3376
  "button",
3371
3377
  {
3372
3378
  type: "button",
3373
3379
  onClick: onFlip,
3374
3380
  title: "Flip assets",
3375
- className: "absolute flex h-11 w-11 items-center justify-center rounded-full bg-card text-primary shadow-lg shadow-black/35 transition-all duration-500 hover:rotate-180 hover:bg-accent active:scale-95 active:shadow-none",
3381
+ className: "flex h-11 w-11 items-center justify-center rounded-full bg-card text-primary transition-transform duration-500 hover:rotate-180 hover:bg-accent active:scale-95",
3376
3382
  children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(Icon2, { name: "swap_vert", size: "md" })
3377
3383
  }
3378
- ) }),
3384
+ ) }) }),
3379
3385
  /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "rounded-b-3xl bg-gradient-to-br from-white/[0.01] to-primary/[0.04] p-3.5 pt-4 transition-all duration-300", children: [
3380
3386
  /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("p", { className: "mb-2 text-xs font-bold uppercase tracking-widest text-primary/70", children: "You Receive" }),
3381
3387
  /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex items-center gap-2", children: [
@@ -3434,7 +3440,10 @@ function SwapInputCard({
3434
3440
  className: "w-full",
3435
3441
  onClick: onSubmit,
3436
3442
  disabled: submitDisabled,
3437
- children: submitLabel
3443
+ children: /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("span", { className: "inline-flex items-center justify-center gap-2", children: [
3444
+ submitIcon,
3445
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: submitLabel })
3446
+ ] })
3438
3447
  }
3439
3448
  )
3440
3449
  ] });
@@ -618,6 +618,8 @@ interface SwapInputCardProps {
618
618
  quoteExpiresUrgent?: boolean;
619
619
  warning?: string | null;
620
620
  submitLabel: string;
621
+ /** Optional leading icon for the submit CTA (e.g. a Material-Symbols glyph). */
622
+ submitIcon?: ReactNode;
621
623
  submitVariant?: ButtonProps['variant'];
622
624
  submitDisabled?: boolean;
623
625
  onFromTickerChange: (ticker: string) => void;
@@ -628,7 +630,7 @@ interface SwapInputCardProps {
628
630
  onFlip: () => void;
629
631
  onSubmit: () => void;
630
632
  }
631
- declare function SwapInputCard({ fromTicker, toTicker, fromInput, fromOptions, toOptions, categories, defaultActiveCategories, availableText, showMaxText, maxText, selectedPercentage, percentageDisabled, fromUnitLabel, fromUnitIsToggle, receiveAmount, receiveUnitLabel, isLoadingQuote, quoteError, quoteRateText, quoteFeeText, quoteExpiresText, quoteExpiresUrgent, warning, submitLabel, submitVariant, submitDisabled, onFromTickerChange, onToTickerChange, onFromInputChange, onPercentageClick, onToggleFromUnit, onFlip, onSubmit, }: SwapInputCardProps): react_jsx_runtime.JSX.Element;
633
+ declare function SwapInputCard({ fromTicker, toTicker, fromInput, fromOptions, toOptions, categories, defaultActiveCategories, availableText, showMaxText, maxText, selectedPercentage, percentageDisabled, fromUnitLabel, fromUnitIsToggle, receiveAmount, receiveUnitLabel, isLoadingQuote, quoteError, quoteRateText, quoteFeeText, quoteExpiresText, quoteExpiresUrgent, warning, submitLabel, submitIcon, submitVariant, submitDisabled, onFromTickerChange, onToTickerChange, onFromInputChange, onPercentageClick, onToggleFromUnit, onFlip, onSubmit, }: SwapInputCardProps): react_jsx_runtime.JSX.Element;
632
634
 
633
635
  interface ActivityListItem<TData = unknown> {
634
636
  id: string;
@@ -618,6 +618,8 @@ interface SwapInputCardProps {
618
618
  quoteExpiresUrgent?: boolean;
619
619
  warning?: string | null;
620
620
  submitLabel: string;
621
+ /** Optional leading icon for the submit CTA (e.g. a Material-Symbols glyph). */
622
+ submitIcon?: ReactNode;
621
623
  submitVariant?: ButtonProps['variant'];
622
624
  submitDisabled?: boolean;
623
625
  onFromTickerChange: (ticker: string) => void;
@@ -628,7 +630,7 @@ interface SwapInputCardProps {
628
630
  onFlip: () => void;
629
631
  onSubmit: () => void;
630
632
  }
631
- declare function SwapInputCard({ fromTicker, toTicker, fromInput, fromOptions, toOptions, categories, defaultActiveCategories, availableText, showMaxText, maxText, selectedPercentage, percentageDisabled, fromUnitLabel, fromUnitIsToggle, receiveAmount, receiveUnitLabel, isLoadingQuote, quoteError, quoteRateText, quoteFeeText, quoteExpiresText, quoteExpiresUrgent, warning, submitLabel, submitVariant, submitDisabled, onFromTickerChange, onToTickerChange, onFromInputChange, onPercentageClick, onToggleFromUnit, onFlip, onSubmit, }: SwapInputCardProps): react_jsx_runtime.JSX.Element;
633
+ declare function SwapInputCard({ fromTicker, toTicker, fromInput, fromOptions, toOptions, categories, defaultActiveCategories, availableText, showMaxText, maxText, selectedPercentage, percentageDisabled, fromUnitLabel, fromUnitIsToggle, receiveAmount, receiveUnitLabel, isLoadingQuote, quoteError, quoteRateText, quoteFeeText, quoteExpiresText, quoteExpiresUrgent, warning, submitLabel, submitIcon, submitVariant, submitDisabled, onFromTickerChange, onToTickerChange, onFromInputChange, onPercentageClick, onToggleFromUnit, onFlip, onSubmit, }: SwapInputCardProps): react_jsx_runtime.JSX.Element;
632
634
 
633
635
  interface ActivityListItem<TData = unknown> {
634
636
  id: string;
package/dist/web/index.js CHANGED
@@ -2915,9 +2915,14 @@ function AssetSelector({
2915
2915
  " available"
2916
2916
  ] })
2917
2917
  ] }),
2918
- selected && /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2 rounded-full border border-primary/15 bg-primary/10 px-2.5 py-1", children: [
2918
+ selected && /* Network-coloured chip uses the existing NetworkBadge
2919
+ so the asset's network color carries through (matches
2920
+ the showcase / wallet main page styling). When the
2921
+ asset has no network we fall back to a neutral pill. */
2922
+ /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-2.5 py-1", children: [
2919
2923
  /* @__PURE__ */ jsx34(AssetIcon, { ticker: selected.ticker, logoUri: selected.icon, size: 18 }),
2920
- /* @__PURE__ */ jsx34("span", { className: "text-tiny font-semibold text-primary", children: selected.ticker })
2924
+ /* @__PURE__ */ jsx34("span", { className: "text-tiny font-semibold text-white", children: selected.ticker }),
2925
+ selected.network && /* @__PURE__ */ jsx34(NetworkBadge, { network: selected.network, showLabel: true, className: "py-[1px]" })
2921
2926
  ] })
2922
2927
  ] }) }),
2923
2928
  /* @__PURE__ */ jsxs22("div", { className: "flex-shrink-0 border-b border-white/[0.08] px-4 py-3", children: [
@@ -2938,7 +2943,7 @@ function AssetSelector({
2938
2943
  value: search,
2939
2944
  onChange: (event) => setSearch(event.target.value),
2940
2945
  placeholder: "Search...",
2941
- className: "h-11 w-full rounded-2xl border bg-black/20 pl-10 pr-3 text-sm text-white placeholder:text-white/25 focus:border-primary/50 focus:outline-none"
2946
+ className: "h-11 w-full rounded-2xl border border-transparent bg-black/20 pl-10 pr-3 text-sm text-white placeholder:text-white/25 focus:border-primary/50 focus:outline-none"
2942
2947
  }
2943
2948
  )
2944
2949
  ] }),
@@ -2961,7 +2966,7 @@ function AssetSelector({
2961
2966
  );
2962
2967
  }) })
2963
2968
  ] }),
2964
- /* @__PURE__ */ jsx34(ScrollArea, { className: "min-h-0", viewportClassName: "px-2 py-2", children: filtered.length === 0 ? /* @__PURE__ */ jsxs22("div", { className: "flex flex-col items-center gap-2 px-4 py-10 text-center text-sm text-white/30", children: [
2969
+ /* @__PURE__ */ jsx34(ScrollArea, { className: "min-h-0", viewportClassName: "px-2 py-2 pb-6", children: filtered.length === 0 ? /* @__PURE__ */ jsxs22("div", { className: "flex flex-col items-center gap-2 px-4 py-10 text-center text-sm text-white/30", children: [
2965
2970
  /* @__PURE__ */ jsx34(Icon2, { name: "search", size: "md", className: "opacity-40" }),
2966
2971
  /* @__PURE__ */ jsxs22("span", { children: [
2967
2972
  "No results",
@@ -3138,6 +3143,7 @@ function SwapInputCard({
3138
3143
  quoteExpiresUrgent = false,
3139
3144
  warning,
3140
3145
  submitLabel,
3146
+ submitIcon,
3141
3147
  submitVariant = "cta",
3142
3148
  submitDisabled = false,
3143
3149
  onFromTickerChange,
@@ -3151,7 +3157,26 @@ function SwapInputCard({
3151
3157
  return /* @__PURE__ */ jsxs23(Fragment8, { children: [
3152
3158
  /* @__PURE__ */ jsxs23("div", { className: "relative mb-3 flex flex-col rounded-3xl bg-white/[0.03] shadow-2xl shadow-black/40 backdrop-blur-2xl transition-all duration-300", children: [
3153
3159
  /* @__PURE__ */ jsxs23("div", { className: "p-3.5 pb-4", children: [
3154
- /* @__PURE__ */ jsx35("div", { className: "mb-2 flex items-center justify-between", children: /* @__PURE__ */ jsx35("p", { className: "text-xs font-bold uppercase tracking-widest text-white/60", children: "You Pay" }) }),
3160
+ /* @__PURE__ */ jsxs23("div", { className: "mb-2 flex items-center justify-between gap-2", children: [
3161
+ /* @__PURE__ */ jsx35("p", { className: "text-xs font-bold uppercase tracking-widest text-white/60", children: "You Pay" }),
3162
+ /* @__PURE__ */ jsx35("div", { className: "flex items-center gap-1", children: PERCENTAGES.map((percent) => /* @__PURE__ */ jsxs23(
3163
+ "button",
3164
+ {
3165
+ type: "button",
3166
+ disabled: percentageDisabled,
3167
+ onClick: () => onPercentageClick(percent),
3168
+ className: cn(
3169
+ "rounded px-1.5 py-0.5 text-xxs font-bold transition-all duration-300 disabled:cursor-not-allowed disabled:opacity-40",
3170
+ selectedPercentage === percent ? "border-primary/50 bg-primary/20 text-primary shadow-sm" : "bg-white/[0.03] text-muted-foreground hover:text-white"
3171
+ ),
3172
+ children: [
3173
+ percent,
3174
+ "%"
3175
+ ]
3176
+ },
3177
+ percent
3178
+ )) })
3179
+ ] }),
3155
3180
  /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
3156
3181
  /* @__PURE__ */ jsx35(
3157
3182
  AssetSelector,
@@ -3183,44 +3208,25 @@ function SwapInputCard({
3183
3208
  {
3184
3209
  type: "button",
3185
3210
  onClick: onToggleFromUnit,
3186
- className: "mt-0.5 text-right text-xs text-muted-foreground underline decoration-dotted transition-colors hover:text-primary",
3211
+ className: "mt-0.5 text-right text-xs text-muted-foreground transition-colors hover:text-primary",
3187
3212
  title: "Tap to switch unit",
3188
3213
  children: fromUnitLabel
3189
3214
  }
3190
3215
  ) : /* @__PURE__ */ jsx35("p", { className: "mt-0.5 text-xs text-muted-foreground", children: fromUnitLabel })
3191
3216
  ] })
3192
3217
  ] }),
3193
- /* @__PURE__ */ jsxs23("div", { className: "mt-2 flex items-center justify-between gap-2", children: [
3194
- /* @__PURE__ */ jsx35("p", { className: "text-xxs font-medium text-white/60", children: showMaxText && maxText ? `Max: ${maxText}` : `Available: ${availableText}` }),
3195
- /* @__PURE__ */ jsx35("div", { className: "flex items-center gap-1", children: PERCENTAGES.map((percent) => /* @__PURE__ */ jsxs23(
3196
- "button",
3197
- {
3198
- type: "button",
3199
- disabled: percentageDisabled,
3200
- onClick: () => onPercentageClick(percent),
3201
- className: cn(
3202
- "rounded px-1.5 py-0.5 text-xxs font-bold transition-all duration-300 disabled:cursor-not-allowed disabled:opacity-40",
3203
- selectedPercentage === percent ? "border-primary/50 bg-primary/20 text-primary shadow-sm" : "bg-white/[0.03] text-muted-foreground hover:text-white"
3204
- ),
3205
- children: [
3206
- percent,
3207
- "%"
3208
- ]
3209
- },
3210
- percent
3211
- )) })
3212
- ] })
3218
+ /* @__PURE__ */ jsx35("div", { className: "mt-2 flex items-center justify-between gap-2", children: /* @__PURE__ */ jsx35("p", { className: "text-xxs font-medium text-white/60", children: showMaxText && maxText ? `Max: ${maxText}` : `Available: ${availableText}` }) })
3213
3219
  ] }),
3214
- /* @__PURE__ */ jsx35("div", { className: "relative mx-6 flex h-px items-center justify-center bg-white/[0.08]", children: /* @__PURE__ */ jsx35(
3220
+ /* @__PURE__ */ jsx35("div", { className: "relative mx-6 flex h-px items-center justify-center bg-white/[0.08]", children: /* @__PURE__ */ jsx35("span", { className: "absolute flex h-11 w-11 items-center justify-center rounded-full bg-card shadow-lg shadow-black/35", children: /* @__PURE__ */ jsx35(
3215
3221
  "button",
3216
3222
  {
3217
3223
  type: "button",
3218
3224
  onClick: onFlip,
3219
3225
  title: "Flip assets",
3220
- className: "absolute flex h-11 w-11 items-center justify-center rounded-full bg-card text-primary shadow-lg shadow-black/35 transition-all duration-500 hover:rotate-180 hover:bg-accent active:scale-95 active:shadow-none",
3226
+ className: "flex h-11 w-11 items-center justify-center rounded-full bg-card text-primary transition-transform duration-500 hover:rotate-180 hover:bg-accent active:scale-95",
3221
3227
  children: /* @__PURE__ */ jsx35(Icon2, { name: "swap_vert", size: "md" })
3222
3228
  }
3223
- ) }),
3229
+ ) }) }),
3224
3230
  /* @__PURE__ */ jsxs23("div", { className: "rounded-b-3xl bg-gradient-to-br from-white/[0.01] to-primary/[0.04] p-3.5 pt-4 transition-all duration-300", children: [
3225
3231
  /* @__PURE__ */ jsx35("p", { className: "mb-2 text-xs font-bold uppercase tracking-widest text-primary/70", children: "You Receive" }),
3226
3232
  /* @__PURE__ */ jsxs23("div", { className: "flex items-center gap-2", children: [
@@ -3279,7 +3285,10 @@ function SwapInputCard({
3279
3285
  className: "w-full",
3280
3286
  onClick: onSubmit,
3281
3287
  disabled: submitDisabled,
3282
- children: submitLabel
3288
+ children: /* @__PURE__ */ jsxs23("span", { className: "inline-flex items-center justify-center gap-2", children: [
3289
+ submitIcon,
3290
+ /* @__PURE__ */ jsx35("span", { children: submitLabel })
3291
+ ] })
3283
3292
  }
3284
3293
  )
3285
3294
  ] });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kaleido-ui",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
4
4
  "description": "KaleidoSwap shared UI library — design tokens, web components (Tailwind + Radix), and React Native components extending WDK UI Kit",
5
5
  "license": "MIT",
6
6
  "type": "module",