@bubo-squared/ui-framework 0.2.31 → 0.2.32

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/index.js CHANGED
@@ -701,28 +701,27 @@ Typography.displayName = "Typography";
701
701
  import * as React10 from "react";
702
702
  import { Slot as Slot4 } from "@radix-ui/react-slot";
703
703
  import { cva as cva8 } from "class-variance-authority";
704
- import { Fragment, jsx as jsx12, jsxs as jsxs6 } from "react/jsx-runtime";
704
+ import { jsx as jsx12 } from "react/jsx-runtime";
705
705
  var badgeVariants = cva8(
706
- "inline-flex items-center justify-center rounded-4 leading-none whitespace-nowrap gap-1 py-0",
706
+ "inline-flex items-center justify-center rounded-full leading-none whitespace-nowrap gap-1 py-0 font-normal",
707
707
  {
708
708
  variants: {
709
709
  size: {
710
- sm: "px-1.5 paragraph-sm",
711
- md: "px-2 paragraph-md",
712
- lg: "px-2 subtitle",
713
- xl: "px-2.5 h6-title"
710
+ sm: "px-2.5 paragraph-sm",
711
+ md: "px-3 paragraph-md",
712
+ lg: "px-3.5 subtitle",
713
+ xl: "px-4 h6-title"
714
714
  },
715
715
  variant: {
716
- primary: "bg-(--background-secondary) text-primary",
717
- secondary: "bg-(--background-primary) border-1 border-primary text-primary",
716
+ primary: "bg-(--color-primary) text-(--color-primary-inverse)",
717
+ secondary: "bg-(--background-secondary) text-primary",
718
+ outline: "bg-(--background-primary) text-primary shadow-[inset_0_0_0_1px_var(--border-secondary)]",
718
719
  active: "bg-ac-lilac text-badge-black",
719
720
  informal: "bg-ac-neon-blue text-badge-black",
720
721
  success: "bg-ac-neon-green text-badge-black",
721
722
  warning: "bg-ac-light-orange text-badge-black",
722
- error: "bg-s-error-300 text-badge-black",
723
- disabled: "bg-(--background-primary-disabled) border-1 border-primary-disabled text-primary-disabled",
724
- "double-default": "bg-(--background-secondary) text-primary",
725
- "double-current": "bg-color-ac-lilac text-badge-black"
723
+ error: "bg-(--color-s-error-500)/15 text-error",
724
+ disabled: "bg-(--background-primary-disabled) shadow-[inset_0_0_0_1px_var(--color-primary-disabled)] text-primary-disabled"
726
725
  }
727
726
  },
728
727
  defaultVariants: {
@@ -736,25 +735,20 @@ var Badge = React10.forwardRef(
736
735
  const {
737
736
  asChild = false,
738
737
  label,
739
- value,
740
738
  size = "sm",
741
739
  variant = "primary",
742
740
  className,
743
741
  ...rest
744
742
  } = props;
745
- const Comp = asChild ? Slot4 : "div";
746
- const hasValue = typeof value === "string" ? value.trim() !== "" : value != null;
743
+ const Comp = asChild ? Slot4 : "span";
747
744
  return /* @__PURE__ */ jsx12(
748
745
  Comp,
749
746
  {
747
+ "data-slot": "badge",
750
748
  ref,
751
749
  className: cn(badgeVariants({ size, variant }), className),
752
750
  ...rest,
753
- children: hasValue ? /* @__PURE__ */ jsxs6(Fragment, { children: [
754
- /* @__PURE__ */ jsx12("span", { className: "font-normal", children: label }),
755
- /* @__PURE__ */ jsx12("span", { className: "font-normal", children: ":" }),
756
- /* @__PURE__ */ jsx12("span", { className: "font-medium", children: value })
757
- ] }) : /* @__PURE__ */ jsx12("span", { className: "font-normal", children: label })
751
+ children: label
758
752
  }
759
753
  );
760
754
  }
@@ -836,7 +830,7 @@ BadgeDot.displayName = "BadgeDot";
836
830
 
837
831
  // src/components/Content/BadgeStatus.tsx
838
832
  import * as React13 from "react";
839
- import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
833
+ import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
840
834
  var BadgeStatus = React13.forwardRef(
841
835
  (props, ref) => {
842
836
  const {
@@ -848,7 +842,7 @@ var BadgeStatus = React13.forwardRef(
848
842
  } = props;
849
843
  const textClasses = active ? "caption-medium text-primary" : "caption-medium text-primary-disabled";
850
844
  const dotClasses = active ? "bg-(--background-informal)" : "bg-(--background-primary)";
851
- return /* @__PURE__ */ jsxs7(
845
+ return /* @__PURE__ */ jsxs6(
852
846
  "div",
853
847
  {
854
848
  ref,
@@ -876,7 +870,7 @@ BadgeStatus.displayName = "BadgeStatus";
876
870
  // src/components/Content/Divider.tsx
877
871
  import "react";
878
872
  import { TargetIcon } from "@bubo-squared/icons";
879
- import { jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
873
+ import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
880
874
  var gapBySize = {
881
875
  sm: "gap-2",
882
876
  md: "gap-3",
@@ -932,7 +926,7 @@ var Divider = (props) => {
932
926
  ...divProps
933
927
  } = props;
934
928
  const textLabel = label ?? "OR";
935
- return /* @__PURE__ */ jsxs8(
929
+ return /* @__PURE__ */ jsxs7(
936
930
  "div",
937
931
  {
938
932
  className: wrapperClass,
@@ -968,7 +962,7 @@ var Divider = (props) => {
968
962
  className: _className,
969
963
  ...divProps
970
964
  } = props;
971
- return /* @__PURE__ */ jsxs8(
965
+ return /* @__PURE__ */ jsxs7(
972
966
  "div",
973
967
  {
974
968
  className: wrapperClass,
@@ -1001,7 +995,7 @@ var Divider = (props) => {
1001
995
  className: _className,
1002
996
  ...divProps
1003
997
  } = props;
1004
- return /* @__PURE__ */ jsxs8(
998
+ return /* @__PURE__ */ jsxs7(
1005
999
  "div",
1006
1000
  {
1007
1001
  className: wrapperClass,
@@ -1034,7 +1028,7 @@ var Divider = (props) => {
1034
1028
  className: _className,
1035
1029
  ...divProps
1036
1030
  } = props;
1037
- return /* @__PURE__ */ jsxs8(
1031
+ return /* @__PURE__ */ jsxs7(
1038
1032
  "div",
1039
1033
  {
1040
1034
  className: wrapperClass,
@@ -1066,7 +1060,7 @@ import * as React16 from "react";
1066
1060
 
1067
1061
  // src/components/Inputs/Field.tsx
1068
1062
  import * as React15 from "react";
1069
- import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
1063
+ import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
1070
1064
  var fieldBase = "flex flex-col gap-2 items-start";
1071
1065
  var Field = (props) => {
1072
1066
  const {
@@ -1086,8 +1080,8 @@ var Field = (props) => {
1086
1080
  const hintId = hasHint ? `${fieldId}-hint` : void 0;
1087
1081
  const hintColorClass = disabled ? "text-primary-disabled" : status === "success" ? "text-(--color-success)" : status === "error" ? "text-(--color-error)" : "text-(--color-secondary)";
1088
1082
  const labelColorClass = disabled ? "text-primary-disabled" : "text-primary";
1089
- return /* @__PURE__ */ jsxs9("div", { className: cn(fieldBase, className), children: [
1090
- hasLabel && /* @__PURE__ */ jsxs9("div", { className: "flex w-full items-center justify-between", children: [
1083
+ return /* @__PURE__ */ jsxs8("div", { className: cn(fieldBase, className), children: [
1084
+ hasLabel && /* @__PURE__ */ jsxs8("div", { className: "flex w-full items-center justify-between", children: [
1091
1085
  /* @__PURE__ */ jsx17("label", { id: labelId, className: cn("paragraph-sm", labelColorClass), children: label }),
1092
1086
  labelRight
1093
1087
  ] }),
@@ -1190,7 +1184,7 @@ import {
1190
1184
  PlusIcon,
1191
1185
  StarIcon
1192
1186
  } from "@bubo-squared/icons";
1193
- import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
1187
+ import { jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
1194
1188
  var iconStatusVariants = cva11(
1195
1189
  "inline-flex size-5 items-center justify-center rounded-full border-1 border-(--color-primary-inverse) p-1",
1196
1190
  {
@@ -1233,7 +1227,7 @@ var StatusAvatar = React17.forwardRef((props, ref) => {
1233
1227
  );
1234
1228
  }
1235
1229
  const iconVariant = variant;
1236
- return /* @__PURE__ */ jsxs10(
1230
+ return /* @__PURE__ */ jsxs9(
1237
1231
  "div",
1238
1232
  {
1239
1233
  ref,
@@ -1255,23 +1249,77 @@ StatusAvatar.displayName = "StatusAvatar";
1255
1249
  import * as React18 from "react";
1256
1250
  import { Slot as Slot5 } from "@radix-ui/react-slot";
1257
1251
  import { cva as cva12 } from "class-variance-authority";
1258
- import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
1252
+ import { jsx as jsx20, jsxs as jsxs10 } from "react/jsx-runtime";
1259
1253
  var tagVariants = cva12(
1260
- "inline-flex flex-row items-center justify-center rounded-6 gap-2 px-3 overflow-hidden border-1 border-secondary bg-(--background-neutral) focus:border-brand focus-ring-primary ",
1254
+ "inline-flex flex-row items-center justify-center gap-1.5 overflow-hidden border border-secondary bg-tag focus:border-brand focus-ring-primary ",
1261
1255
  {
1262
1256
  variants: {
1263
1257
  size: {
1264
- sm: "py-0.5",
1265
- md: "py-1.5"
1258
+ sm: "h-6",
1259
+ md: "h-7",
1260
+ lg: "h-8",
1261
+ xl: "h-9"
1262
+ },
1263
+ rounded: {
1264
+ true: "rounded-full",
1265
+ false: "rounded-8"
1266
1266
  }
1267
1267
  },
1268
1268
  defaultVariants: {
1269
- size: "sm"
1269
+ size: "sm",
1270
+ rounded: false
1270
1271
  }
1271
1272
  }
1272
1273
  );
1273
- var disabledTag = "pointer-events-none border-secondary-disabled bg-(--background-neutral-disabled) text-primary-disabled";
1274
- var iconClasses = "flex items-center justify-center w-5 h-5 [&>*]:w-5 [&>*]:h-5 shrink-0 text-primary";
1274
+ var calculateXPadding = (size, hasTrailing, hasLeading) => {
1275
+ if (!hasTrailing && !hasLeading) {
1276
+ return size === "sm" ? "px-2.5" : "px-3";
1277
+ } else if (hasTrailing && !hasLeading) {
1278
+ return size === "sm" ? "pl-2.5 pr-1.25" : "pl-3 pr-1.5";
1279
+ } else if (!hasTrailing && hasLeading) {
1280
+ return size === "sm" ? "pl-1.25 pr-2.5" : "pl-1.5 pr-3";
1281
+ } else {
1282
+ return size === "sm" ? "px-1.25" : "px-1.5";
1283
+ }
1284
+ };
1285
+ var disabledTag = "pointer-events-none border-secondary-disabled bg-tag-disabled text-primary-disabled";
1286
+ var calculateIconClasses = (size) => {
1287
+ switch (size) {
1288
+ case "sm":
1289
+ return "flex items-center justify-center size-4 [&>*]:size-4 shrink-0";
1290
+ case "md":
1291
+ return "flex items-center justify-center size-5 [&>*]:size-5 shrink-0";
1292
+ case "lg":
1293
+ return "flex items-center justify-center size-5 [&>*]:size-5 shrink-0";
1294
+ case "xl":
1295
+ return "flex items-center justify-center size-6 [&>*]:size-6 shrink-0";
1296
+ }
1297
+ };
1298
+ var keyTextClassBySize = {
1299
+ sm: "paragraph-sm cursor-default",
1300
+ md: "paragraph-md cursor-default",
1301
+ lg: "paragraph-lg cursor-default",
1302
+ xl: "subtitle cursor-default"
1303
+ };
1304
+ var valueTextClassBySize = {
1305
+ sm: "paragraph-sm-medium cursor-default",
1306
+ md: "paragraph-md-medium cursor-default",
1307
+ lg: "paragraph-lg-medium cursor-default",
1308
+ xl: "subtitle-medium cursor-default"
1309
+ };
1310
+ var labelTextClassBySize = {
1311
+ sm: "paragraph-sm cursor-default",
1312
+ md: "paragraph-md cursor-default",
1313
+ lg: "paragraph-lg cursor-default",
1314
+ xl: "subtitle cursor-default"
1315
+ };
1316
+ var getTextColor = (type, disabled) => {
1317
+ if (disabled) return "";
1318
+ else if (type === "key") return "text-secondary";
1319
+ else if (type === "value") return "text-primary";
1320
+ else if (type === "label") return "text-primary";
1321
+ return "text-primary";
1322
+ };
1275
1323
  var Tag = React18.forwardRef(
1276
1324
  (props, ref) => {
1277
1325
  const {
@@ -1287,20 +1335,21 @@ var Tag = React18.forwardRef(
1287
1335
  const Comp = asChild ? Slot5 : "div";
1288
1336
  const leading = props.leadingIcon && React18.isValidElement(props.leadingIcon) ? React18.cloneElement(props.leadingIcon, { disabled, ...props.leadingIcon.props }) : null;
1289
1337
  const trailing = props.trailingIcon && React18.isValidElement(props.trailingIcon) ? React18.cloneElement(props.trailingIcon, { disabled, ...props.trailingIcon.props }) : null;
1290
- return /* @__PURE__ */ jsxs11(
1338
+ return /* @__PURE__ */ jsxs10(
1291
1339
  Comp,
1292
1340
  {
1293
- className: cn(tagVariants({ size }), disabled && disabledTag, className),
1341
+ className: cn(tagVariants({ size, rounded: props.rounded }), calculateXPadding(size, !!trailing, !!leading), disabled && disabledTag, className),
1342
+ "data-slot": "tag",
1294
1343
  ref,
1295
1344
  ...rest,
1296
1345
  children: [
1297
- leading && /* @__PURE__ */ jsx20("div", { className: iconClasses, children: leading }),
1298
- hasValue ? /* @__PURE__ */ jsxs11("div", { className: "flex flex-row gap-1 items-center", children: [
1299
- /* @__PURE__ */ jsx20("span", { className: "text-primary paragraph-lg mb-0! cursor-default font-normal", children: label }),
1300
- /* @__PURE__ */ jsx20("span", { className: "text-primary paragraph-lg mb-0! cursor-default font-normal", children: ":" }),
1301
- /* @__PURE__ */ jsx20("span", { className: "text-primary paragraph-lg-medium mb-0! cursor-default font-medium", children: value })
1302
- ] }) : /* @__PURE__ */ jsx20("span", { className: "text-primary paragraph-lg mb-0! cursor-default", children: label }),
1303
- trailing && /* @__PURE__ */ jsx20("div", { className: iconClasses, children: trailing })
1346
+ leading && /* @__PURE__ */ jsx20("div", { className: cn(disabled ? "text-primary-disabled" : "text-primary", calculateIconClasses(size)), children: leading }),
1347
+ hasValue ? /* @__PURE__ */ jsxs10("div", { className: "flex flex-row items-center gap-1", children: [
1348
+ /* @__PURE__ */ jsx20("span", { className: cn(keyTextClassBySize[size], getTextColor("key", disabled)), children: label }),
1349
+ /* @__PURE__ */ jsx20("span", { className: cn(keyTextClassBySize[size], getTextColor("key", disabled)), children: ":" }),
1350
+ /* @__PURE__ */ jsx20("span", { className: cn(valueTextClassBySize[size], getTextColor("value", disabled)), children: value })
1351
+ ] }) : /* @__PURE__ */ jsx20("span", { className: cn(labelTextClassBySize[size], getTextColor("label", disabled)), children: label }),
1352
+ trailing && /* @__PURE__ */ jsx20("div", { className: cn(disabled ? "text-primary-disabled" : "text-primary", calculateIconClasses(size)), children: trailing })
1304
1353
  ]
1305
1354
  }
1306
1355
  );
@@ -1340,7 +1389,7 @@ var dropdownRowVariants = cva13(
1340
1389
  );
1341
1390
 
1342
1391
  // src/components/ui/dropdown-menu.tsx
1343
- import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
1392
+ import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
1344
1393
  var DropdownMenuSizeContext = React19.createContext("lg");
1345
1394
  function useDropdownMenuSize(explicitSize) {
1346
1395
  const contextSize = React19.useContext(DropdownMenuSizeContext);
@@ -1482,7 +1531,7 @@ function DropdownMenuSubTrigger({
1482
1531
  ...props
1483
1532
  }) {
1484
1533
  const resolvedSize = useDropdownMenuSize(size);
1485
- return /* @__PURE__ */ jsxs12(
1534
+ return /* @__PURE__ */ jsxs11(
1486
1535
  DropdownMenuPrimitive.SubTrigger,
1487
1536
  {
1488
1537
  "data-slot": "dropdown-menu-sub-trigger",
@@ -1525,7 +1574,7 @@ function DropdownMenuSubContent({
1525
1574
  }
1526
1575
 
1527
1576
  // src/components/Content/Menu.tsx
1528
- import { jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
1577
+ import { jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
1529
1578
  var Menu = (props) => {
1530
1579
  const {
1531
1580
  trigger,
@@ -1539,7 +1588,7 @@ var Menu = (props) => {
1539
1588
  onOpenChange,
1540
1589
  modal
1541
1590
  } = props;
1542
- return /* @__PURE__ */ jsxs13(DropdownMenu, { open, onOpenChange, modal, children: [
1591
+ return /* @__PURE__ */ jsxs12(DropdownMenu, { open, onOpenChange, modal, children: [
1543
1592
  /* @__PURE__ */ jsx22(DropdownMenuTrigger, { asChild: true, children: trigger }),
1544
1593
  /* @__PURE__ */ jsx22(
1545
1594
  DropdownMenuContent,
@@ -1570,9 +1619,9 @@ import * as React21 from "react";
1570
1619
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
1571
1620
  import { CheckIcon as CheckIcon2 } from "@bubo-squared/icons";
1572
1621
  import { MinusIcon } from "@bubo-squared/icons";
1573
- import { jsx as jsx23, jsxs as jsxs14 } from "react/jsx-runtime";
1622
+ import { jsx as jsx23, jsxs as jsxs13 } from "react/jsx-runtime";
1574
1623
  var Checkbox = React21.forwardRef(({ label, className, ...props }, forwardedRef) => {
1575
- return /* @__PURE__ */ jsxs14("label", { className: "inline-flex items-center gap-(--space-12) cursor-pointer select-none", children: [
1624
+ return /* @__PURE__ */ jsxs13("label", { className: "inline-flex items-center gap-(--space-12) cursor-pointer select-none", children: [
1576
1625
  /* @__PURE__ */ jsx23(
1577
1626
  CheckboxPrimitive.Root,
1578
1627
  {
@@ -1590,7 +1639,7 @@ var Checkbox = React21.forwardRef(({ label, className, ...props }, forwardedRef)
1590
1639
  className
1591
1640
  ),
1592
1641
  ...props,
1593
- children: /* @__PURE__ */ jsxs14(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: [
1642
+ children: /* @__PURE__ */ jsxs13(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: [
1594
1643
  /* @__PURE__ */ jsx23(CheckIcon2, { className: "h-5 w-5 hidden group-data-[state=checked]:block" }),
1595
1644
  /* @__PURE__ */ jsx23(MinusIcon, { className: "h-5 w-5 hidden group-data-[state=indeterminate]:block" })
1596
1645
  ] })
@@ -1679,7 +1728,7 @@ var Input = React23.forwardRef(
1679
1728
  Input.displayName = "Input";
1680
1729
 
1681
1730
  // src/components/Inputs/Autocomplete.tsx
1682
- import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
1731
+ import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
1683
1732
  var inputTextVariants = cva15("truncate", {
1684
1733
  variants: {
1685
1734
  size: {
@@ -1910,8 +1959,8 @@ var Autocomplete = React24.forwardRef((props, forwardedRef) => {
1910
1959
  const activeDescendantId = activeIndex >= 0 ? `${inputId}-option-${activeIndex}` : void 0;
1911
1960
  const showLeadingIcon = !!leadingIcon;
1912
1961
  const showTrailingIcon = !!trailingIcon;
1913
- return /* @__PURE__ */ jsx26(Field, { label, hint, hideHint, status, disabled, children: /* @__PURE__ */ jsxs15("div", { className: "relative w-full", children: [
1914
- /* @__PURE__ */ jsxs15(
1962
+ return /* @__PURE__ */ jsx26(Field, { label, hint, hideHint, status, disabled, children: /* @__PURE__ */ jsxs14("div", { className: "relative w-full", children: [
1963
+ /* @__PURE__ */ jsxs14(
1915
1964
  InputShell,
1916
1965
  {
1917
1966
  size,
@@ -2007,7 +2056,7 @@ import * as React25 from "react";
2007
2056
  import * as SelectPrimitive from "@radix-ui/react-select";
2008
2057
  import { cva as cva16 } from "class-variance-authority";
2009
2058
  import { ChevronDownIcon as ChevronDownIcon2 } from "@bubo-squared/icons";
2010
- import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
2059
+ import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
2011
2060
  var selectTriggerVariants = cva16(
2012
2061
  "group flex w-full items-center justify-between rounded-8 border bg-(--background-primary) p-2 text-left transition-[background-color] cursor-pointer hover:bg-(--background-primary-hover) disabled:bg-(--background-primary-disabled) disabled:text-primary-disabled disabled:cursor-default",
2013
2062
  {
@@ -2143,7 +2192,7 @@ var Select = React25.forwardRef((props, forwardedRef) => {
2143
2192
  hideHint,
2144
2193
  status,
2145
2194
  disabled,
2146
- children: /* @__PURE__ */ jsxs16(
2195
+ children: /* @__PURE__ */ jsxs15(
2147
2196
  SelectPrimitive.Root,
2148
2197
  {
2149
2198
  value: currentValue,
@@ -2154,7 +2203,7 @@ var Select = React25.forwardRef((props, forwardedRef) => {
2154
2203
  name,
2155
2204
  required,
2156
2205
  children: [
2157
- /* @__PURE__ */ jsx27(SelectPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs16(
2206
+ /* @__PURE__ */ jsx27(SelectPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs15(
2158
2207
  "button",
2159
2208
  {
2160
2209
  ref: forwardedRef,
@@ -2199,7 +2248,7 @@ var Select = React25.forwardRef((props, forwardedRef) => {
2199
2248
  "min-w-343 rounded-8"
2200
2249
  ),
2201
2250
  style: { minWidth: "var(--radix-select-trigger-width)" },
2202
- children: /* @__PURE__ */ jsx27(SelectPrimitive.Viewport, { children: /* @__PURE__ */ jsxs16("div", { className: "flex flex-col", children: [
2251
+ children: /* @__PURE__ */ jsx27(SelectPrimitive.Viewport, { children: /* @__PURE__ */ jsxs15("div", { className: "flex flex-col", children: [
2203
2252
  hasValue && /* @__PURE__ */ jsx27("div", { className: cn("bg-(--background-neutral)"), children: /* @__PURE__ */ jsx27(
2204
2253
  "button",
2205
2254
  {
@@ -2240,7 +2289,7 @@ Select.displayName = "Select";
2240
2289
  import * as React26 from "react";
2241
2290
  import { cva as cva17 } from "class-variance-authority";
2242
2291
  import { EyeIcon, EyeSlashIcon } from "@bubo-squared/icons";
2243
- import { jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
2292
+ import { jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
2244
2293
  var passwordTextVariants = cva17("truncate", {
2245
2294
  variants: {
2246
2295
  size: {
@@ -2352,7 +2401,7 @@ var PasswordInput = React26.forwardRef((props, forwardedRef) => {
2352
2401
  hideHint,
2353
2402
  status,
2354
2403
  disabled,
2355
- children: /* @__PURE__ */ jsxs17(
2404
+ children: /* @__PURE__ */ jsxs16(
2356
2405
  InputShell,
2357
2406
  {
2358
2407
  size,
@@ -2519,19 +2568,11 @@ var createLucideIcon = (iconName, iconNode) => {
2519
2568
  var __iconNode = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
2520
2569
  var ChevronRight = createLucideIcon("chevron-right", __iconNode);
2521
2570
 
2522
- // ../../node_modules/.pnpm/lucide-react@0.555.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/ellipsis.js
2523
- var __iconNode2 = [
2524
- ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
2525
- ["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
2526
- ["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
2527
- ];
2528
- var Ellipsis = createLucideIcon("ellipsis", __iconNode2);
2529
-
2530
2571
  // src/components/ui/dialog.tsx
2531
- import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
2572
+ import { jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
2532
2573
 
2533
2574
  // src/components/ui/command.tsx
2534
- import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
2575
+ import { jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
2535
2576
  function Command({
2536
2577
  className,
2537
2578
  ...props
@@ -2552,7 +2593,7 @@ function CommandInput({
2552
2593
  className,
2553
2594
  ...props
2554
2595
  }) {
2555
- return /* @__PURE__ */ jsxs19(
2596
+ return /* @__PURE__ */ jsxs18(
2556
2597
  "div",
2557
2598
  {
2558
2599
  "data-slot": "command-input-wrapper",
@@ -2673,13 +2714,13 @@ function PopoverContent({
2673
2714
  // src/components/ui/scroll-area.tsx
2674
2715
  import "react";
2675
2716
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
2676
- import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
2717
+ import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
2677
2718
  function ScrollArea({
2678
2719
  className,
2679
2720
  children,
2680
2721
  ...props
2681
2722
  }) {
2682
- return /* @__PURE__ */ jsxs20(
2723
+ return /* @__PURE__ */ jsxs19(
2683
2724
  ScrollAreaPrimitive.Root,
2684
2725
  {
2685
2726
  "data-slot": "scroll-area",
@@ -2731,7 +2772,7 @@ function ScrollBar({
2731
2772
 
2732
2773
  // src/components/Inputs/PhoneInput.tsx
2733
2774
  import { cva as cva18 } from "class-variance-authority";
2734
- import { jsx as jsx33, jsxs as jsxs21 } from "react/jsx-runtime";
2775
+ import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
2735
2776
  var inputBase = "h-full rounded-8 border border-secondary bg-(--background-primary) hover:border-secondary-hover";
2736
2777
  var sizeBase = cva18(
2737
2778
  "flex w-full",
@@ -2888,7 +2929,7 @@ var CountrySelect = ({
2888
2929
  const scrollAreaRef = React31.useRef(null);
2889
2930
  const [searchValue, setSearchValue] = React31.useState("");
2890
2931
  const [isOpen, setIsOpen] = React31.useState(false);
2891
- return /* @__PURE__ */ jsxs21(
2932
+ return /* @__PURE__ */ jsxs20(
2892
2933
  Popover,
2893
2934
  {
2894
2935
  open: isOpen,
@@ -2900,7 +2941,7 @@ var CountrySelect = ({
2900
2941
  }
2901
2942
  },
2902
2943
  children: [
2903
- /* @__PURE__ */ jsx33(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs21(
2944
+ /* @__PURE__ */ jsx33(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs20(
2904
2945
  Button,
2905
2946
  {
2906
2947
  type: "button",
@@ -2936,7 +2977,7 @@ var CountrySelect = ({
2936
2977
  dropdownWidthVariants({ size }),
2937
2978
  dropdownSurfaceClass
2938
2979
  ),
2939
- children: /* @__PURE__ */ jsxs21(Command, { className: "bg-transparent", children: [
2980
+ children: /* @__PURE__ */ jsxs20(Command, { className: "bg-transparent", children: [
2940
2981
  /* @__PURE__ */ jsx33(
2941
2982
  CommandInput,
2942
2983
  {
@@ -2957,7 +2998,7 @@ var CountrySelect = ({
2957
2998
  placeholder: "Search country..."
2958
2999
  }
2959
3000
  ),
2960
- /* @__PURE__ */ jsx33(CommandList, { children: /* @__PURE__ */ jsxs21(ScrollArea, { ref: scrollAreaRef, className: "max-h-79", children: [
3001
+ /* @__PURE__ */ jsx33(CommandList, { children: /* @__PURE__ */ jsxs20(ScrollArea, { ref: scrollAreaRef, className: "max-h-79", children: [
2961
3002
  /* @__PURE__ */ jsx33(CommandEmpty, { children: "No country found." }),
2962
3003
  /* @__PURE__ */ jsx33(CommandGroup, { className: "p-0", children: countryList.map(
2963
3004
  ({ value, label }) => value ? /* @__PURE__ */ jsx33(
@@ -2997,7 +3038,7 @@ var CountrySelectOption = (props) => {
2997
3038
  onChange(country);
2998
3039
  onSelectComplete();
2999
3040
  };
3000
- return /* @__PURE__ */ jsxs21(
3041
+ return /* @__PURE__ */ jsxs20(
3001
3042
  CommandItem,
3002
3043
  {
3003
3044
  className: cn(countryOptionVariants({ size })),
@@ -3024,7 +3065,7 @@ var FlagComponent = ({ country, countryName }) => {
3024
3065
  // src/components/Inputs/RadioGroup.tsx
3025
3066
  import * as React32 from "react";
3026
3067
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
3027
- import { jsx as jsx34, jsxs as jsxs22 } from "react/jsx-runtime";
3068
+ import { jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
3028
3069
  var RadioGroup = React32.forwardRef((props, forwardedRef) => {
3029
3070
  const {
3030
3071
  label,
@@ -3067,7 +3108,7 @@ var RadioGroup = React32.forwardRef((props, forwardedRef) => {
3067
3108
  isHorizontal ? "flex-row gap-6" : "flex-col gap-2",
3068
3109
  className
3069
3110
  ),
3070
- children: options.map((option) => /* @__PURE__ */ jsx34("div", { className: "relative inline-flex", children: /* @__PURE__ */ jsxs22(
3111
+ children: options.map((option) => /* @__PURE__ */ jsx34("div", { className: "relative inline-flex", children: /* @__PURE__ */ jsxs21(
3071
3112
  RadioGroupPrimitive.Item,
3072
3113
  {
3073
3114
  value: option.value,
@@ -3143,7 +3184,7 @@ RadioGroup.displayName = "RadioGroup";
3143
3184
  import * as React33 from "react";
3144
3185
  import { cva as cva19 } from "class-variance-authority";
3145
3186
  import { SearchIcon as SearchIcon2 } from "@bubo-squared/icons";
3146
- import { jsx as jsx35, jsxs as jsxs23 } from "react/jsx-runtime";
3187
+ import { jsx as jsx35, jsxs as jsxs22 } from "react/jsx-runtime";
3147
3188
  var searchTextVariants = cva19("truncate", {
3148
3189
  variants: {
3149
3190
  size: {
@@ -3202,7 +3243,7 @@ var SearchInput = React33.forwardRef((props, forwardedRef) => {
3202
3243
  inputRef.current?.focus();
3203
3244
  };
3204
3245
  const showTrailingIcon = !!trailingIcon;
3205
- return /* @__PURE__ */ jsx35("div", { className: "flex flex-col gap-2 items-start w-full", children: /* @__PURE__ */ jsx35("div", { className: "relative w-full", children: /* @__PURE__ */ jsxs23(
3246
+ return /* @__PURE__ */ jsx35("div", { className: "flex flex-col gap-2 items-start w-full", children: /* @__PURE__ */ jsx35("div", { className: "relative w-full", children: /* @__PURE__ */ jsxs22(
3206
3247
  InputShell,
3207
3248
  {
3208
3249
  size,
@@ -3239,7 +3280,7 @@ import * as React35 from "react";
3239
3280
  // src/components/Feedback/Tooltip.tsx
3240
3281
  import * as React34 from "react";
3241
3282
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3242
- import { jsx as jsx36, jsxs as jsxs24 } from "react/jsx-runtime";
3283
+ import { jsx as jsx36, jsxs as jsxs23 } from "react/jsx-runtime";
3243
3284
  var TooltipArrow = TooltipPrimitive.Arrow;
3244
3285
  var REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref");
3245
3286
  var REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo");
@@ -3304,7 +3345,7 @@ var Tooltip = (props) => {
3304
3345
  const { side, align } = mapPlacementToSideAndAlign(placement);
3305
3346
  const tooltipClasses = "group bg-(--background-tooltip) max-w-[calc(100vw-2rem)] shadow-card-md border-none rounded-4 py-1.5 px-2.5 [&>span]:scale-200 data-[state=delayed-open]:animate-in data-[state=instant-open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=delayed-open]:fade-in-0 data-[state=instant-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-[state=instant-open]: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";
3306
3347
  const tooltipArrowClasses = "relative fill-(--background-tooltip) transition-[filter,transform] group-data-[side=top]:top-[-2px] group-data-[side=top]:drop-shadow-[0px_1px_1px_color-mix(in_srgb,_var(--color-b-black-10)_66%,_transparent)] group-data-[side=bottom]:drop-shadow-[0px_1px_1px_color-mix(in_srgb,_var(--color-b-black-10)_66%,_transparent)] group-data-[side=left]:drop-shadow-[0px_2px_1px_color-mix(in_srgb,_var(--color-b-black-10)_66%,_transparent)] group-data-[side=right]:drop-shadow-[0px_2px_1px_color-mix(in_srgb,_var(--color-b-black-10)_66%,_transparent)]";
3307
- return /* @__PURE__ */ jsxs24(
3348
+ return /* @__PURE__ */ jsxs23(
3308
3349
  TooltipPrimitive.Root,
3309
3350
  {
3310
3351
  open,
@@ -3314,7 +3355,7 @@ var Tooltip = (props) => {
3314
3355
  delayDuration,
3315
3356
  children: [
3316
3357
  /* @__PURE__ */ jsx36(TooltipPrimitive.Trigger, { asChild: true, children: trigger }),
3317
- /* @__PURE__ */ jsx36(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs24(
3358
+ /* @__PURE__ */ jsx36(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs23(
3318
3359
  TooltipPrimitive.Content,
3319
3360
  {
3320
3361
  side,
@@ -3323,7 +3364,7 @@ var Tooltip = (props) => {
3323
3364
  className: cn(tooltipClasses, className),
3324
3365
  children: [
3325
3366
  showArrow && /* @__PURE__ */ jsx36(TooltipArrow, { className: tooltipArrowClasses }),
3326
- /* @__PURE__ */ jsxs24("div", { className: "grid", children: [
3367
+ /* @__PURE__ */ jsxs23("div", { className: "grid", children: [
3327
3368
  hasStrapline && /* @__PURE__ */ jsx36("span", { className: "caption text-secondary", children: strapline }),
3328
3369
  /* @__PURE__ */ jsx36("h4", { className: "paragraph-md text-primary", children: title }),
3329
3370
  hasDescription && /* @__PURE__ */ jsx36("p", { className: "paragraph-sm text-primary", children: description })
@@ -3338,7 +3379,7 @@ var Tooltip = (props) => {
3338
3379
  Tooltip.displayName = "Tooltip";
3339
3380
 
3340
3381
  // src/components/Inputs/Slider.tsx
3341
- import { Fragment as Fragment2, jsx as jsx37, jsxs as jsxs25 } from "react/jsx-runtime";
3382
+ import { Fragment, jsx as jsx37, jsxs as jsxs24 } from "react/jsx-runtime";
3342
3383
  var wrapperBase = "flex flex-col gap-2 items-start";
3343
3384
  var isRangeProps = (props) => {
3344
3385
  return Array.isArray(props.value) || Array.isArray(props.defaultValue);
@@ -3600,7 +3641,7 @@ var Slider = React35.forwardRef((props, forwardedRef) => {
3600
3641
  const second = formatNumber(valueToPercent(secondary));
3601
3642
  return `${first} - ${second}`;
3602
3643
  }
3603
- return /* @__PURE__ */ jsxs25(Fragment2, { children: [
3644
+ return /* @__PURE__ */ jsxs24(Fragment, { children: [
3604
3645
  formatDisplayNode(primary),
3605
3646
  " - ",
3606
3647
  formatDisplayNode(secondary)
@@ -3674,14 +3715,14 @@ var Slider = React35.forwardRef((props, forwardedRef) => {
3674
3715
  }
3675
3716
  );
3676
3717
  };
3677
- return /* @__PURE__ */ jsxs25(
3718
+ return /* @__PURE__ */ jsxs24(
3678
3719
  "div",
3679
3720
  {
3680
3721
  className: wrapperBase,
3681
3722
  style: { marginInline: `${thumbRadius}px` },
3682
3723
  ref: forwardedRef,
3683
3724
  children: [
3684
- name && /* @__PURE__ */ jsxs25(Fragment2, { children: [
3725
+ name && /* @__PURE__ */ jsxs24(Fragment, { children: [
3685
3726
  /* @__PURE__ */ jsx37(
3686
3727
  "input",
3687
3728
  {
@@ -3701,8 +3742,8 @@ var Slider = React35.forwardRef((props, forwardedRef) => {
3701
3742
  }
3702
3743
  )
3703
3744
  ] }),
3704
- /* @__PURE__ */ jsxs25("div", { className: cn("w-full flex flex-col gap-1", className), children: [
3705
- /* @__PURE__ */ jsx37("div", { className: "relative w-full", children: /* @__PURE__ */ jsxs25(
3745
+ /* @__PURE__ */ jsxs24("div", { className: cn("w-full flex flex-col gap-1", className), children: [
3746
+ /* @__PURE__ */ jsx37("div", { className: "relative w-full", children: /* @__PURE__ */ jsxs24(
3706
3747
  "div",
3707
3748
  {
3708
3749
  className: cn(
@@ -3761,7 +3802,7 @@ Slider.displayName = "Slider";
3761
3802
  // src/components/Inputs/TextArea.tsx
3762
3803
  import * as React36 from "react";
3763
3804
  import { MaximizeIcon } from "@bubo-squared/icons";
3764
- import { jsx as jsx38, jsxs as jsxs26 } from "react/jsx-runtime";
3805
+ import { jsx as jsx38, jsxs as jsxs25 } from "react/jsx-runtime";
3765
3806
  var TextArea = React36.forwardRef((props, forwardedRef) => {
3766
3807
  const {
3767
3808
  label,
@@ -3863,7 +3904,7 @@ var TextArea = React36.forwardRef((props, forwardedRef) => {
3863
3904
  hideHint,
3864
3905
  status,
3865
3906
  disabled,
3866
- children: /* @__PURE__ */ jsxs26(
3907
+ children: /* @__PURE__ */ jsxs25(
3867
3908
  "div",
3868
3909
  {
3869
3910
  className: cn(
@@ -3902,7 +3943,7 @@ var TextArea = React36.forwardRef((props, forwardedRef) => {
3902
3943
  ...textareaProps
3903
3944
  }
3904
3945
  ),
3905
- showCharacterLimit && /* @__PURE__ */ jsxs26(
3946
+ showCharacterLimit && /* @__PURE__ */ jsxs25(
3906
3947
  "span",
3907
3948
  {
3908
3949
  className: cn(
@@ -3944,7 +3985,7 @@ TextArea.displayName = "TextArea";
3944
3985
  // src/components/Inputs/TextInput.tsx
3945
3986
  import * as React37 from "react";
3946
3987
  import { cva as cva20 } from "class-variance-authority";
3947
- import { jsx as jsx39, jsxs as jsxs27 } from "react/jsx-runtime";
3988
+ import { jsx as jsx39, jsxs as jsxs26 } from "react/jsx-runtime";
3948
3989
  var inputTextVariants3 = cva20("truncate", {
3949
3990
  variants: {
3950
3991
  size: {
@@ -4032,7 +4073,7 @@ var TextInput = React37.forwardRef((props, forwardedRef) => {
4032
4073
  hideHint,
4033
4074
  status,
4034
4075
  disabled,
4035
- children: /* @__PURE__ */ jsxs27(
4076
+ children: /* @__PURE__ */ jsxs26(
4036
4077
  InputShell,
4037
4078
  {
4038
4079
  size,
@@ -4087,10 +4128,10 @@ TextInput.displayName = "TextInput";
4087
4128
 
4088
4129
  // src/components/Inputs/Toggle.tsx
4089
4130
  import * as React38 from "react";
4090
- import { jsx as jsx40, jsxs as jsxs28 } from "react/jsx-runtime";
4131
+ import { jsx as jsx40, jsxs as jsxs27 } from "react/jsx-runtime";
4091
4132
  var Toggle = React38.forwardRef((props, forwardedRef) => {
4092
4133
  const { label, className, disabled, ...inputProps } = props;
4093
- return /* @__PURE__ */ jsxs28(
4134
+ return /* @__PURE__ */ jsxs27(
4094
4135
  "label",
4095
4136
  {
4096
4137
  className: cn(
@@ -4098,7 +4139,7 @@ var Toggle = React38.forwardRef((props, forwardedRef) => {
4098
4139
  disabled ? "cursor-default" : "cursor-pointer"
4099
4140
  ),
4100
4141
  children: [
4101
- /* @__PURE__ */ jsxs28("span", { className: "relative inline-flex items-center", children: [
4142
+ /* @__PURE__ */ jsxs27("span", { className: "relative inline-flex items-center", children: [
4102
4143
  /* @__PURE__ */ jsx40(
4103
4144
  "input",
4104
4145
  {
@@ -4179,7 +4220,7 @@ Toggle.displayName = "Toggle";
4179
4220
 
4180
4221
  // src/components/Inputs/WebsiteInput.tsx
4181
4222
  import * as React39 from "react";
4182
- import { jsx as jsx41, jsxs as jsxs29 } from "react/jsx-runtime";
4223
+ import { jsx as jsx41, jsxs as jsxs28 } from "react/jsx-runtime";
4183
4224
  var WebsiteInput = React39.forwardRef((props, forwardedRef) => {
4184
4225
  const {
4185
4226
  hierarchy = "leading",
@@ -4216,11 +4257,11 @@ var WebsiteInput = React39.forwardRef((props, forwardedRef) => {
4216
4257
  size === "xl" ? "[&>svg]:w-6 [&>svg]:h-6" : size === "sm" ? "[&>svg]:w-4 [&>svg]:h-4" : "[&>svg]:w-5 [&>svg]:h-5",
4217
4258
  disabled ? "text-(--icon-primary-disabled)" : "text-(--icon-primary) group-hover:text-(--icon-primary-hover) group-focus-within:text-(--icon-primary-focus)"
4218
4259
  );
4219
- const leadingAddon = /* @__PURE__ */ jsxs29("div", { className: baseAddonClass, children: [
4260
+ const leadingAddon = /* @__PURE__ */ jsxs28("div", { className: baseAddonClass, children: [
4220
4261
  /* @__PURE__ */ jsx41("div", { className: addonTextClass, children: protocolLabel }),
4221
4262
  icon != null && /* @__PURE__ */ jsx41("span", { className: iconWrapperClass, children: icon })
4222
4263
  ] });
4223
- const trailingAddon = /* @__PURE__ */ jsxs29("div", { className: baseAddonClass, children: [
4264
+ const trailingAddon = /* @__PURE__ */ jsxs28("div", { className: baseAddonClass, children: [
4224
4265
  icon != null && /* @__PURE__ */ jsx41("span", { className: iconWrapperClass, children: icon }),
4225
4266
  /* @__PURE__ */ jsx41("div", { className: addonTextClass, children: protocolLabel })
4226
4267
  ] });
@@ -4242,7 +4283,7 @@ WebsiteInput.displayName = "WebsiteInput";
4242
4283
  // src/components/Feedback/Popover.tsx
4243
4284
  import * as React40 from "react";
4244
4285
  import * as PopoverPrimitive2 from "@radix-ui/react-popover";
4245
- import { jsx as jsx42, jsxs as jsxs30 } from "react/jsx-runtime";
4286
+ import { jsx as jsx42, jsxs as jsxs29 } from "react/jsx-runtime";
4246
4287
  var PopoverArrow = PopoverPrimitive2.Arrow;
4247
4288
  var Popover2 = (props) => {
4248
4289
  const {
@@ -4310,9 +4351,9 @@ var Popover2 = (props) => {
4310
4351
  }
4311
4352
  };
4312
4353
  const { side, align } = mapPlacementToSideAndAlign2(placement);
4313
- return /* @__PURE__ */ jsxs30(Popover, { open, onOpenChange: handleOpenChange, children: [
4354
+ return /* @__PURE__ */ jsxs29(Popover, { open, onOpenChange: handleOpenChange, children: [
4314
4355
  /* @__PURE__ */ jsx42(PopoverTrigger, { asChild: true, children }),
4315
- /* @__PURE__ */ jsxs30(
4356
+ /* @__PURE__ */ jsxs29(
4316
4357
  PopoverContent,
4317
4358
  {
4318
4359
  side,
@@ -4322,13 +4363,13 @@ var Popover2 = (props) => {
4322
4363
  ...rest,
4323
4364
  children: [
4324
4365
  showArrow && /* @__PURE__ */ jsx42(PopoverArrow, { className: popoverArrowClasses }),
4325
- customContent ? typeof customContent === "function" ? customContent({ close: () => handleOpenChange(false), ok: handleOk, cancel: handleCancel }) : customContent : /* @__PURE__ */ jsxs30("div", { className: "grid gap-4", children: [
4326
- /* @__PURE__ */ jsxs30("div", { className: "space-y-2", children: [
4366
+ customContent ? typeof customContent === "function" ? customContent({ close: () => handleOpenChange(false), ok: handleOk, cancel: handleCancel }) : customContent : /* @__PURE__ */ jsxs29("div", { className: "grid gap-4", children: [
4367
+ /* @__PURE__ */ jsxs29("div", { className: "space-y-2", children: [
4327
4368
  hasStrapline && /* @__PURE__ */ jsx42("span", { className: "caption text-secondary", children: strapline }),
4328
4369
  /* @__PURE__ */ jsx42("h4", { className: "subtitle-medium text-primary", children: title }),
4329
4370
  hasDescription && /* @__PURE__ */ jsx42("p", { className: "paragraph-sm text-primary", children: description })
4330
4371
  ] }),
4331
- /* @__PURE__ */ jsxs30("div", { className: "flex justify-start items-center gap-4 flex-wrap", children: [
4372
+ /* @__PURE__ */ jsxs29("div", { className: "flex justify-start items-center gap-4 flex-wrap", children: [
4332
4373
  /* @__PURE__ */ jsx42(Button2, { size: "sm", variant: "secondary", onClick: handleCancel, children: cancelText || "Cancel" }),
4333
4374
  /* @__PURE__ */ jsx42(Button2, { size: "sm", variant: "primary", onClick: handleOk, children: okText || "Ok" })
4334
4375
  ] })
@@ -4369,8 +4410,8 @@ import * as React43 from "react";
4369
4410
  // src/components/ui/breadcrumb.tsx
4370
4411
  import "react";
4371
4412
  import { Slot as Slot6 } from "@radix-ui/react-slot";
4372
- import { jsx as jsx44, jsxs as jsxs31 } from "react/jsx-runtime";
4373
- var breadcrumbItemClasses = "h6-title inline-flex items-center gap-1.5 text-(--color-secondary) hover:text-(--color-primary-hover) focus-within:text-(--color-secondary-focus) [&_[aria-current=page]]:font-medium [&_[aria-current=page]]:text-primary";
4413
+ import { jsx as jsx44 } from "react/jsx-runtime";
4414
+ var breadcrumbItemClasses = "inline-flex items-center gap-1.5 text-(--color-secondary) hover:text-(--color-primary-hover) focus-within:text-(--color-secondary-focus) [&_[aria-current=page]]:font-medium [&_[aria-current=page]]:text-primary";
4374
4415
  var disabledItemClasses = "text-primary-disabled cursor-default pointer-events-none";
4375
4416
  function Breadcrumb({ ...props }) {
4376
4417
  return /* @__PURE__ */ jsx44("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
@@ -4394,7 +4435,6 @@ function BreadcrumbItem({ className, disabled, ...props }) {
4394
4435
  {
4395
4436
  "data-slot": "breadcrumb-item",
4396
4437
  className: cn(breadcrumbItemClasses, disabled && disabledItemClasses, className),
4397
- style: { marginBottom: "7px" },
4398
4438
  ...props
4399
4439
  }
4400
4440
  );
@@ -4423,36 +4463,16 @@ function BreadcrumbSeparator({
4423
4463
  "data-slot": "breadcrumb-separator",
4424
4464
  role: "presentation",
4425
4465
  "aria-hidden": "true",
4426
- className: cn("[&>svg]:size-6 [&>svg]:text-(--color-secondary)", className),
4466
+ className: cn("text-secondary", className),
4427
4467
  ...props,
4428
4468
  children: children ?? /* @__PURE__ */ jsx44(ChevronRight, {})
4429
4469
  }
4430
4470
  );
4431
4471
  }
4432
- function BreadcrumbEllipsis({
4433
- className,
4434
- ...props
4435
- }) {
4436
- return /* @__PURE__ */ jsxs31(
4437
- "span",
4438
- {
4439
- "data-slot": "breadcrumb-ellipsis",
4440
- role: "presentation",
4441
- "aria-hidden": "true",
4442
- className: cn("flex size-9 items-center justify-center", className),
4443
- ...props,
4444
- children: [
4445
- /* @__PURE__ */ jsx44(Ellipsis, { className: "size-4" }),
4446
- /* @__PURE__ */ jsx44("span", { className: "sr-only", children: "More" })
4447
- ]
4448
- }
4449
- );
4450
- }
4451
4472
 
4452
4473
  // src/components/Navigation/Breadcrumbs.tsx
4453
- import { jsx as jsx45, jsxs as jsxs32 } from "react/jsx-runtime";
4454
- var breadcrumbSeparatorVariants = "size-5 relative bottom-1 [&>svg]:text-secondary group-disabled:text-secondary";
4455
- var breadcrumbItemBase = "h6-title text-secondary hover:text-primary-hover";
4474
+ import { MoreHorizFullIcon } from "@bubo-squared/icons";
4475
+ import { jsx as jsx45, jsxs as jsxs30 } from "react/jsx-runtime";
4456
4476
  var Breadcrumbs = React43.forwardRef(
4457
4477
  (props, ref) => {
4458
4478
  const {
@@ -4463,40 +4483,53 @@ var Breadcrumbs = React43.forwardRef(
4463
4483
  breadcrumbItemClassName,
4464
4484
  breadcrumbPageClassName,
4465
4485
  separatorClassName,
4486
+ breadcrumbListClassName,
4487
+ ellipsisItemClassName,
4488
+ ellipsisTriggerClassName,
4489
+ ellipsisContentClassName,
4490
+ ellipsisGroupClassName,
4491
+ ellipsisMenuItemClassName,
4492
+ ellipsisAriaLabel = "Open breadcrumb menu",
4466
4493
  ...rest
4467
4494
  } = props;
4468
4495
  const items = React43.Children.toArray(children).filter(Boolean);
4469
4496
  const shouldCollapse = Boolean(ellipsis) && items.length >= 5;
4470
4497
  const hiddenItems = shouldCollapse ? items.slice(1, -2) : [];
4471
4498
  const displayItems = shouldCollapse ? [items[0], "__ELLIPSIS__", items[items.length - 2], items[items.length - 1]] : items;
4472
- return /* @__PURE__ */ jsx45(Breadcrumb, { ref, className, ...rest, children: /* @__PURE__ */ jsx45(BreadcrumbList, { children: displayItems.map((child, index) => {
4499
+ return /* @__PURE__ */ jsx45(Breadcrumb, { ref, className: cn("mb-1.75", className), ...rest, children: /* @__PURE__ */ jsx45(BreadcrumbList, { className: breadcrumbListClassName, children: displayItems.map((child, index) => {
4473
4500
  const isEllipsis = child === "__ELLIPSIS__";
4474
4501
  const key = isEllipsis ? "__ellipsis" : React43.isValidElement(child) && child.key != null ? String(child.key) : String(index);
4475
4502
  const isLast = index === displayItems.length - 1;
4476
- return /* @__PURE__ */ jsxs32(React43.Fragment, { children: [
4477
- isEllipsis ? /* @__PURE__ */ jsx45(BreadcrumbItem, { className: cn(breadcrumbItemBase, breadcrumbItemClassName), children: /* @__PURE__ */ jsxs32(DropdownMenu, { children: [
4503
+ return /* @__PURE__ */ jsxs30(React43.Fragment, { children: [
4504
+ isEllipsis ? /* @__PURE__ */ jsx45(BreadcrumbItem, { className: cn(breadcrumbItemClassName, ellipsisItemClassName), children: /* @__PURE__ */ jsxs30(DropdownMenu, { children: [
4478
4505
  /* @__PURE__ */ jsx45(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx45(
4479
- "button",
4506
+ Button,
4480
4507
  {
4481
- type: "button",
4482
- className: "inline-flex size-8 items-center justify-center rounded-4 hover:bg-(--background-secondary) focus-ring-primary text-secondary",
4483
- "aria-label": "Open breadcrumb menu",
4484
- children: /* @__PURE__ */ jsx45(BreadcrumbEllipsis, {})
4508
+ variant: "ghost",
4509
+ className: cn(
4510
+ "inline-flex text-secondary hover:text-primary &[aria-expanded=true]:text-primary-focus items-center justify-center",
4511
+ ellipsisTriggerClassName
4512
+ ),
4513
+ "aria-label": ellipsisAriaLabel,
4514
+ "data-slot": "breadcrumb-ellipsis",
4515
+ role: "presentation",
4516
+ "aria-hidden": "true",
4517
+ children: /* @__PURE__ */ jsx45(MoreHorizFullIcon, {})
4485
4518
  }
4486
4519
  ) }),
4487
4520
  /* @__PURE__ */ jsx45(
4488
4521
  DropdownMenuContent,
4489
4522
  {
4490
4523
  align: "start",
4491
- className: "bg-(--background-neutral) border-secondary-hover shadow-card-md rounded-4",
4492
- children: /* @__PURE__ */ jsx45(DropdownMenuGroup, { children: hiddenItems.map((hidden, hiddenIndex) => {
4524
+ className: ellipsisContentClassName,
4525
+ children: /* @__PURE__ */ jsx45(DropdownMenuGroup, { className: ellipsisGroupClassName, children: hiddenItems.map((hidden, hiddenIndex) => {
4493
4526
  const hiddenKey = React43.isValidElement(hidden) && hidden.key != null ? String(hidden.key) : `hidden-${hiddenIndex}`;
4494
4527
  if (React43.isValidElement(hidden)) {
4495
4528
  return /* @__PURE__ */ jsx45(
4496
4529
  DropdownMenuItem,
4497
4530
  {
4498
4531
  asChild: true,
4499
- className: "cursor-pointer paragraph-md text-primary focus:bg-(--background-secondary)",
4532
+ className: ellipsisMenuItemClassName,
4500
4533
  children: hidden
4501
4534
  },
4502
4535
  hiddenKey
@@ -4505,7 +4538,7 @@ var Breadcrumbs = React43.forwardRef(
4505
4538
  return /* @__PURE__ */ jsx45(
4506
4539
  DropdownMenuItem,
4507
4540
  {
4508
- className: "cursor-pointer paragraph-md text-primary focus:bg-(--background-secondary)",
4541
+ className: ellipsisMenuItemClassName,
4509
4542
  children: String(hidden)
4510
4543
  },
4511
4544
  hiddenKey
@@ -4513,14 +4546,8 @@ var Breadcrumbs = React43.forwardRef(
4513
4546
  }) })
4514
4547
  }
4515
4548
  )
4516
- ] }) }) : isLast ? /* @__PURE__ */ jsx45(BreadcrumbItem, { className: cn(breadcrumbItemBase, breadcrumbItemClassName), children: /* @__PURE__ */ jsx45(
4517
- BreadcrumbPage,
4518
- {
4519
- className: cn("h6-title-medium cursor-pointer", breadcrumbPageClassName),
4520
- children: child
4521
- }
4522
- ) }) : /* @__PURE__ */ jsx45(BreadcrumbItem, { className: cn(breadcrumbItemBase, breadcrumbItemClassName), children: child }),
4523
- !isLast && /* @__PURE__ */ jsx45(BreadcrumbSeparator, { className: cn(breadcrumbSeparatorVariants, separatorClassName), children: separator })
4549
+ ] }) }) : isLast ? /* @__PURE__ */ jsx45(BreadcrumbItem, { className: breadcrumbItemClassName, children: /* @__PURE__ */ jsx45(BreadcrumbPage, { className: breadcrumbPageClassName, children: child }) }) : /* @__PURE__ */ jsx45(BreadcrumbItem, { className: breadcrumbItemClassName, children: child }),
4550
+ !isLast && /* @__PURE__ */ jsx45(BreadcrumbSeparator, { className: separatorClassName, children: separator })
4524
4551
  ] }, key);
4525
4552
  }) }) });
4526
4553
  }
@@ -4529,8 +4556,8 @@ Breadcrumbs.displayName = "Breadcrumbs";
4529
4556
 
4530
4557
  // src/components/Logo/LogoIcon.tsx
4531
4558
  import { cva as cva21 } from "class-variance-authority";
4532
- import { jsx as jsx46, jsxs as jsxs33 } from "react/jsx-runtime";
4533
- var LogoIconSvg = (props) => /* @__PURE__ */ jsxs33("svg", { width: "89", height: "88", viewBox: "0 0 89 88", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
4559
+ import { jsx as jsx46, jsxs as jsxs31 } from "react/jsx-runtime";
4560
+ var LogoIconSvg = (props) => /* @__PURE__ */ jsxs31("svg", { width: "89", height: "88", viewBox: "0 0 89 88", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
4534
4561
  /* @__PURE__ */ jsx46("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M83.7156 3.88535C78.5352 -1.29512 70.136 -1.29512 64.9555 3.88535L43.9999 24.8409L43.9995 24.8405L62.3536 6.48637C52.2379 16.5949 35.8584 16.6179 25.7142 6.55523L23.4434 4.28438C18.2629 -0.896082 9.86373 -0.89608 4.68327 4.28438C-0.497191 9.46484 -0.49719 17.864 4.68327 23.0445L6.88526 25.2465C17.0191 35.3875 17.0168 51.8235 6.87859 61.9618L25.2395 43.6008L25.2398 43.601L3.88534 64.9555C-1.29512 70.136 -1.29511 78.5351 3.88535 83.7156C9.06581 88.8961 17.465 88.8961 22.6455 83.7156L25.6458 80.7151L25.6864 80.6747C35.7981 70.6137 52.1313 70.597 62.2636 80.6248L65.7534 84.1146C70.9339 89.2951 79.3331 89.2951 84.5135 84.1146C89.694 78.9342 89.694 70.535 84.5135 65.3545L62.76 43.601L62.7602 43.6009L81.1144 61.9552C70.9806 51.8142 70.9829 35.3782 81.1211 25.24L83.7156 22.6455C88.8961 17.465 88.8961 9.06581 83.7156 3.88535Z", fill: "#1685FF" }),
4535
4562
  /* @__PURE__ */ jsx46("path", { d: "M44.0667 50.4863C44.1213 50.4317 44.21 50.4317 44.2646 50.4863L48.6465 54.8682C48.6942 54.9158 48.7011 54.9907 48.663 55.0463L44.2812 61.4453C44.2256 61.5265 44.1057 61.5265 44.0501 61.4453L39.6683 55.0463C39.6302 54.9907 39.6371 54.9158 39.6848 54.8682L44.0667 50.4863Z", fill: "white" }),
4536
4563
  /* @__PURE__ */ jsx46("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M44.107 45.3938C44.0536 45.289 43.9013 45.289 43.8479 45.3938C41.8622 49.293 37.8104 51.9638 33.1347 51.9638C26.4991 51.9638 21.1199 46.5846 21.1199 39.9489C21.1199 33.3133 26.4991 27.9341 33.1347 27.9341C37.8104 27.9341 41.8622 30.6049 43.8479 34.5041C43.9013 34.6089 44.0536 34.6089 44.107 34.5041C46.0926 30.6049 50.1445 27.9341 54.8201 27.9341C61.4558 27.9341 66.835 33.3133 66.835 39.9489C66.835 46.5846 61.4558 51.9638 54.8201 51.9638C50.1445 51.9638 46.0926 49.293 44.107 45.3938Z", fill: "white" }),
@@ -4567,15 +4594,15 @@ var LogoIcon = ({ className, size = "md" }) => {
4567
4594
 
4568
4595
  // src/components/Logo/Logo.tsx
4569
4596
  import { cva as cva22 } from "class-variance-authority";
4570
- import { jsx as jsx47, jsxs as jsxs34 } from "react/jsx-runtime";
4571
- var LogoIconSvg2 = (props) => /* @__PURE__ */ jsxs34("svg", { width: "89", height: "88", viewBox: "0 0 89 88", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
4597
+ import { jsx as jsx47, jsxs as jsxs32 } from "react/jsx-runtime";
4598
+ var LogoIconSvg2 = (props) => /* @__PURE__ */ jsxs32("svg", { width: "89", height: "88", viewBox: "0 0 89 88", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
4572
4599
  /* @__PURE__ */ jsx47("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M83.7156 3.88535C78.5352 -1.29512 70.136 -1.29512 64.9555 3.88535L43.9999 24.8409L43.9995 24.8405L62.3536 6.48637C52.2379 16.5949 35.8584 16.6179 25.7142 6.55523L23.4434 4.28438C18.2629 -0.896082 9.86373 -0.89608 4.68327 4.28438C-0.497191 9.46484 -0.49719 17.864 4.68327 23.0445L6.88526 25.2465C17.0191 35.3875 17.0168 51.8235 6.87859 61.9618L25.2395 43.6008L25.2398 43.601L3.88534 64.9555C-1.29512 70.136 -1.29511 78.5351 3.88535 83.7156C9.06581 88.8961 17.465 88.8961 22.6455 83.7156L25.6458 80.7151L25.6864 80.6747C35.7981 70.6137 52.1313 70.597 62.2636 80.6248L65.7534 84.1146C70.9339 89.2951 79.3331 89.2951 84.5135 84.1146C89.694 78.9342 89.694 70.535 84.5135 65.3545L62.76 43.601L62.7602 43.6009L81.1144 61.9552C70.9806 51.8142 70.9829 35.3782 81.1211 25.24L83.7156 22.6455C88.8961 17.465 88.8961 9.06581 83.7156 3.88535Z", fill: "#1685FF" }),
4573
4600
  /* @__PURE__ */ jsx47("path", { d: "M44.0667 50.4863C44.1213 50.4317 44.21 50.4317 44.2646 50.4863L48.6465 54.8682C48.6942 54.9158 48.7011 54.9907 48.663 55.0463L44.2812 61.4453C44.2256 61.5265 44.1057 61.5265 44.0501 61.4453L39.6683 55.0463C39.6302 54.9907 39.6371 54.9158 39.6848 54.8682L44.0667 50.4863Z", fill: "white" }),
4574
4601
  /* @__PURE__ */ jsx47("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M44.107 45.3938C44.0536 45.289 43.9013 45.289 43.8479 45.3938C41.8622 49.293 37.8104 51.9638 33.1347 51.9638C26.4991 51.9638 21.1199 46.5846 21.1199 39.9489C21.1199 33.3133 26.4991 27.9341 33.1347 27.9341C37.8104 27.9341 41.8622 30.6049 43.8479 34.5041C43.9013 34.6089 44.0536 34.6089 44.107 34.5041C46.0926 30.6049 50.1445 27.9341 54.8201 27.9341C61.4558 27.9341 66.835 33.3133 66.835 39.9489C66.835 46.5846 61.4558 51.9638 54.8201 51.9638C50.1445 51.9638 46.0926 49.293 44.107 45.3938Z", fill: "white" }),
4575
4602
  /* @__PURE__ */ jsx47("path", { d: "M60.1113 40.0006C60.1113 43.052 57.6377 45.5256 54.5863 45.5256C51.535 45.5256 49.0614 43.052 49.0614 40.0006C49.0614 36.9493 51.535 34.4757 54.5863 34.4757C57.6377 34.4757 60.1113 36.9493 60.1113 40.0006Z", fill: "#1685FF" }),
4576
4603
  /* @__PURE__ */ jsx47("path", { d: "M38.8954 40.0006C38.8954 43.052 36.4218 45.5256 33.3705 45.5256C30.3192 45.5256 27.8456 43.052 27.8456 40.0006C27.8456 36.9493 30.3192 34.4757 33.3705 34.4757C36.4218 34.4757 38.8954 36.9493 38.8954 40.0006Z", fill: "#1685FF" })
4577
4604
  ] });
4578
- var LogoTextSvg = (props) => /* @__PURE__ */ jsxs34("svg", { width: "111", height: "32", viewBox: "0 0 111 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
4605
+ var LogoTextSvg = (props) => /* @__PURE__ */ jsxs32("svg", { width: "111", height: "32", viewBox: "0 0 111 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...props, children: [
4579
4606
  /* @__PURE__ */ jsx47("path", { d: "M72.7324 20.9658C72.7324 14.4559 77.4246 9.9751 83.8922 9.9751C90.3598 9.9751 95.052 14.4559 95.052 20.9658C95.052 27.4757 90.3598 31.9565 83.8922 31.9565C77.4246 31.9565 72.7324 27.4757 72.7324 20.9658ZM77.8896 20.9658C77.8896 24.7703 80.3414 27.3489 83.8922 27.3489C87.4431 27.3489 89.8948 24.7703 89.8948 20.9658C89.8948 17.1613 87.4431 14.5827 83.8922 14.5827C80.3414 14.5827 77.8896 17.1613 77.8896 20.9658Z", fill: "currentColor" }),
4580
4607
  /* @__PURE__ */ jsx47("path", { d: "M53.4056 31.4503H48.6289V0H53.7861V13.6116C55.1388 11.2866 57.9287 9.89163 61.0991 9.89163C67.0595 9.89163 70.6949 14.5415 70.6949 21.136C70.6949 27.5613 66.7636 31.9998 60.761 31.9998C57.6328 31.9998 54.9697 30.6049 53.7438 28.1954L53.4056 31.4503ZM53.8284 20.9246C53.8284 24.6868 56.1533 27.2654 59.7042 27.2654C63.3395 27.2654 65.4954 24.6445 65.4954 20.9246C65.4954 17.2047 63.3395 14.5415 59.7042 14.5415C56.1533 14.5415 53.8284 17.1624 53.8284 20.9246Z", fill: "currentColor" }),
4581
4608
  /* @__PURE__ */ jsx47("path", { d: "M38.9929 10.5681H44.15V31.4504H39.3733L38.9929 28.6605C37.7247 30.6473 35.0193 32 32.2293 32C27.4103 32 24.5781 28.745 24.5781 23.6301V10.5681H29.7353V21.8124C29.7353 25.786 31.2994 27.3923 34.1739 27.3923C37.4288 27.3923 38.9929 25.4901 38.9929 21.5165V10.5681Z", fill: "currentColor" }),
@@ -4621,7 +4648,7 @@ var logoTextSizeVariants = cva22("", {
4621
4648
  });
4622
4649
  var Logo = ({ className, textColor, variant = "inline" }) => {
4623
4650
  const textColorClass = textColor === "light" ? "text-(--color-b-white)" : textColor === "dark" ? "text-(--color-b-black)" : "text-primary";
4624
- return /* @__PURE__ */ jsxs34("div", { className: cn(logoWrapperVariants({ variant }), className), children: [
4651
+ return /* @__PURE__ */ jsxs32("div", { className: cn(logoWrapperVariants({ variant }), className), children: [
4625
4652
  /* @__PURE__ */ jsx47(LogoIconSvg2, { className: logoIconSizeVariants({ variant }) }),
4626
4653
  /* @__PURE__ */ jsx47(LogoTextSvg, { className: cn(logoTextSizeVariants({ variant }), textColorClass) })
4627
4654
  ] });
@@ -4682,7 +4709,6 @@ lucide-react/dist/esm/defaultAttributes.js:
4682
4709
  lucide-react/dist/esm/Icon.js:
4683
4710
  lucide-react/dist/esm/createLucideIcon.js:
4684
4711
  lucide-react/dist/esm/icons/chevron-right.js:
4685
- lucide-react/dist/esm/icons/ellipsis.js:
4686
4712
  lucide-react/dist/esm/lucide-react.js:
4687
4713
  (**
4688
4714
  * @license lucide-react v0.555.0 - ISC