@bubo-squared/ui-framework 0.2.31 → 0.2.33

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,28 @@ 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-primary text-primary",
717
+ primaryInverted: "bg-(--color-primary) text-(--color-primary-inverse)",
718
+ secondary: "bg-(--background-secondary) text-secondary",
719
+ outline: "bg-(--background-secondary) text-secondary shadow-[inset_0_0_0_1px_var(--border-secondary)]",
718
720
  active: "bg-ac-lilac text-badge-black",
719
721
  informal: "bg-ac-neon-blue text-badge-black",
720
722
  success: "bg-ac-neon-green text-badge-black",
721
723
  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"
724
+ error: "bg-(--color-s-error-500)/15 text-error",
725
+ disabled: "bg-(--background-primary-disabled) shadow-[inset_0_0_0_1px_var(--color-primary-disabled)] text-primary-disabled"
726
726
  }
727
727
  },
728
728
  defaultVariants: {
@@ -736,25 +736,20 @@ var Badge = React10.forwardRef(
736
736
  const {
737
737
  asChild = false,
738
738
  label,
739
- value,
740
739
  size = "sm",
741
740
  variant = "primary",
742
741
  className,
743
742
  ...rest
744
743
  } = props;
745
- const Comp = asChild ? Slot4 : "div";
746
- const hasValue = typeof value === "string" ? value.trim() !== "" : value != null;
744
+ const Comp = asChild ? Slot4 : "span";
747
745
  return /* @__PURE__ */ jsx12(
748
746
  Comp,
749
747
  {
748
+ "data-slot": "badge",
750
749
  ref,
751
750
  className: cn(badgeVariants({ size, variant }), className),
752
751
  ...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 })
752
+ children: label
758
753
  }
759
754
  );
760
755
  }
@@ -836,7 +831,7 @@ BadgeDot.displayName = "BadgeDot";
836
831
 
837
832
  // src/components/Content/BadgeStatus.tsx
838
833
  import * as React13 from "react";
839
- import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
834
+ import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
840
835
  var BadgeStatus = React13.forwardRef(
841
836
  (props, ref) => {
842
837
  const {
@@ -848,7 +843,7 @@ var BadgeStatus = React13.forwardRef(
848
843
  } = props;
849
844
  const textClasses = active ? "caption-medium text-primary" : "caption-medium text-primary-disabled";
850
845
  const dotClasses = active ? "bg-(--background-informal)" : "bg-(--background-primary)";
851
- return /* @__PURE__ */ jsxs7(
846
+ return /* @__PURE__ */ jsxs6(
852
847
  "div",
853
848
  {
854
849
  ref,
@@ -876,7 +871,7 @@ BadgeStatus.displayName = "BadgeStatus";
876
871
  // src/components/Content/Divider.tsx
877
872
  import "react";
878
873
  import { TargetIcon } from "@bubo-squared/icons";
879
- import { jsx as jsx16, jsxs as jsxs8 } from "react/jsx-runtime";
874
+ import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
880
875
  var gapBySize = {
881
876
  sm: "gap-2",
882
877
  md: "gap-3",
@@ -932,7 +927,7 @@ var Divider = (props) => {
932
927
  ...divProps
933
928
  } = props;
934
929
  const textLabel = label ?? "OR";
935
- return /* @__PURE__ */ jsxs8(
930
+ return /* @__PURE__ */ jsxs7(
936
931
  "div",
937
932
  {
938
933
  className: wrapperClass,
@@ -968,7 +963,7 @@ var Divider = (props) => {
968
963
  className: _className,
969
964
  ...divProps
970
965
  } = props;
971
- return /* @__PURE__ */ jsxs8(
966
+ return /* @__PURE__ */ jsxs7(
972
967
  "div",
973
968
  {
974
969
  className: wrapperClass,
@@ -1001,7 +996,7 @@ var Divider = (props) => {
1001
996
  className: _className,
1002
997
  ...divProps
1003
998
  } = props;
1004
- return /* @__PURE__ */ jsxs8(
999
+ return /* @__PURE__ */ jsxs7(
1005
1000
  "div",
1006
1001
  {
1007
1002
  className: wrapperClass,
@@ -1034,7 +1029,7 @@ var Divider = (props) => {
1034
1029
  className: _className,
1035
1030
  ...divProps
1036
1031
  } = props;
1037
- return /* @__PURE__ */ jsxs8(
1032
+ return /* @__PURE__ */ jsxs7(
1038
1033
  "div",
1039
1034
  {
1040
1035
  className: wrapperClass,
@@ -1066,7 +1061,7 @@ import * as React16 from "react";
1066
1061
 
1067
1062
  // src/components/Inputs/Field.tsx
1068
1063
  import * as React15 from "react";
1069
- import { jsx as jsx17, jsxs as jsxs9 } from "react/jsx-runtime";
1064
+ import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
1070
1065
  var fieldBase = "flex flex-col gap-2 items-start";
1071
1066
  var Field = (props) => {
1072
1067
  const {
@@ -1086,8 +1081,8 @@ var Field = (props) => {
1086
1081
  const hintId = hasHint ? `${fieldId}-hint` : void 0;
1087
1082
  const hintColorClass = disabled ? "text-primary-disabled" : status === "success" ? "text-(--color-success)" : status === "error" ? "text-(--color-error)" : "text-(--color-secondary)";
1088
1083
  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: [
1084
+ return /* @__PURE__ */ jsxs8("div", { className: cn(fieldBase, className), children: [
1085
+ hasLabel && /* @__PURE__ */ jsxs8("div", { className: "flex w-full items-center justify-between", children: [
1091
1086
  /* @__PURE__ */ jsx17("label", { id: labelId, className: cn("paragraph-sm", labelColorClass), children: label }),
1092
1087
  labelRight
1093
1088
  ] }),
@@ -1190,7 +1185,7 @@ import {
1190
1185
  PlusIcon,
1191
1186
  StarIcon
1192
1187
  } from "@bubo-squared/icons";
1193
- import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
1188
+ import { jsx as jsx19, jsxs as jsxs9 } from "react/jsx-runtime";
1194
1189
  var iconStatusVariants = cva11(
1195
1190
  "inline-flex size-5 items-center justify-center rounded-full border-1 border-(--color-primary-inverse) p-1",
1196
1191
  {
@@ -1233,7 +1228,7 @@ var StatusAvatar = React17.forwardRef((props, ref) => {
1233
1228
  );
1234
1229
  }
1235
1230
  const iconVariant = variant;
1236
- return /* @__PURE__ */ jsxs10(
1231
+ return /* @__PURE__ */ jsxs9(
1237
1232
  "div",
1238
1233
  {
1239
1234
  ref,
@@ -1255,23 +1250,77 @@ StatusAvatar.displayName = "StatusAvatar";
1255
1250
  import * as React18 from "react";
1256
1251
  import { Slot as Slot5 } from "@radix-ui/react-slot";
1257
1252
  import { cva as cva12 } from "class-variance-authority";
1258
- import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
1253
+ import { jsx as jsx20, jsxs as jsxs10 } from "react/jsx-runtime";
1259
1254
  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 ",
1255
+ "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
1256
  {
1262
1257
  variants: {
1263
1258
  size: {
1264
- sm: "py-0.5",
1265
- md: "py-1.5"
1259
+ sm: "h-6",
1260
+ md: "h-7",
1261
+ lg: "h-8",
1262
+ xl: "h-9"
1263
+ },
1264
+ rounded: {
1265
+ true: "rounded-full",
1266
+ false: "rounded-8"
1266
1267
  }
1267
1268
  },
1268
1269
  defaultVariants: {
1269
- size: "sm"
1270
+ size: "sm",
1271
+ rounded: false
1270
1272
  }
1271
1273
  }
1272
1274
  );
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";
1275
+ var calculateXPadding = (size, hasTrailing, hasLeading) => {
1276
+ if (!hasTrailing && !hasLeading) {
1277
+ return size === "sm" ? "px-2.5" : "px-3";
1278
+ } else if (hasTrailing && !hasLeading) {
1279
+ return size === "sm" ? "pl-2.5 pr-1.25" : "pl-3 pr-1.5";
1280
+ } else if (!hasTrailing && hasLeading) {
1281
+ return size === "sm" ? "pl-1.25 pr-2.5" : "pl-1.5 pr-3";
1282
+ } else {
1283
+ return size === "sm" ? "px-1.25" : "px-1.5";
1284
+ }
1285
+ };
1286
+ var disabledTag = "pointer-events-none border-secondary-disabled bg-tag-disabled text-primary-disabled";
1287
+ var calculateIconClasses = (size) => {
1288
+ switch (size) {
1289
+ case "sm":
1290
+ return "flex items-center justify-center size-4 [&>*]:size-4 shrink-0";
1291
+ case "md":
1292
+ return "flex items-center justify-center size-5 [&>*]:size-5 shrink-0";
1293
+ case "lg":
1294
+ return "flex items-center justify-center size-5 [&>*]:size-5 shrink-0";
1295
+ case "xl":
1296
+ return "flex items-center justify-center size-6 [&>*]:size-6 shrink-0";
1297
+ }
1298
+ };
1299
+ var keyTextClassBySize = {
1300
+ sm: "paragraph-sm cursor-default",
1301
+ md: "paragraph-md cursor-default",
1302
+ lg: "paragraph-lg cursor-default",
1303
+ xl: "subtitle cursor-default"
1304
+ };
1305
+ var valueTextClassBySize = {
1306
+ sm: "paragraph-sm-medium cursor-default",
1307
+ md: "paragraph-md-medium cursor-default",
1308
+ lg: "paragraph-lg-medium cursor-default",
1309
+ xl: "subtitle-medium cursor-default"
1310
+ };
1311
+ var labelTextClassBySize = {
1312
+ sm: "paragraph-sm cursor-default",
1313
+ md: "paragraph-md cursor-default",
1314
+ lg: "paragraph-lg cursor-default",
1315
+ xl: "subtitle cursor-default"
1316
+ };
1317
+ var getTextColor = (type, disabled) => {
1318
+ if (disabled) return "";
1319
+ else if (type === "key") return "text-secondary";
1320
+ else if (type === "value") return "text-primary";
1321
+ else if (type === "label") return "text-primary";
1322
+ return "text-primary";
1323
+ };
1275
1324
  var Tag = React18.forwardRef(
1276
1325
  (props, ref) => {
1277
1326
  const {
@@ -1287,20 +1336,21 @@ var Tag = React18.forwardRef(
1287
1336
  const Comp = asChild ? Slot5 : "div";
1288
1337
  const leading = props.leadingIcon && React18.isValidElement(props.leadingIcon) ? React18.cloneElement(props.leadingIcon, { disabled, ...props.leadingIcon.props }) : null;
1289
1338
  const trailing = props.trailingIcon && React18.isValidElement(props.trailingIcon) ? React18.cloneElement(props.trailingIcon, { disabled, ...props.trailingIcon.props }) : null;
1290
- return /* @__PURE__ */ jsxs11(
1339
+ return /* @__PURE__ */ jsxs10(
1291
1340
  Comp,
1292
1341
  {
1293
- className: cn(tagVariants({ size }), disabled && disabledTag, className),
1342
+ className: cn(tagVariants({ size, rounded: props.rounded }), calculateXPadding(size, !!trailing, !!leading), disabled && disabledTag, className),
1343
+ "data-slot": "tag",
1294
1344
  ref,
1295
1345
  ...rest,
1296
1346
  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 })
1347
+ leading && /* @__PURE__ */ jsx20("div", { className: cn(disabled ? "text-primary-disabled" : "text-primary", calculateIconClasses(size)), children: leading }),
1348
+ hasValue ? /* @__PURE__ */ jsxs10("div", { className: "flex flex-row items-center gap-1", children: [
1349
+ /* @__PURE__ */ jsx20("span", { className: cn(keyTextClassBySize[size], getTextColor("key", disabled)), children: label }),
1350
+ /* @__PURE__ */ jsx20("span", { className: cn(keyTextClassBySize[size], getTextColor("key", disabled)), children: ":" }),
1351
+ /* @__PURE__ */ jsx20("span", { className: cn(valueTextClassBySize[size], getTextColor("value", disabled)), children: value })
1352
+ ] }) : /* @__PURE__ */ jsx20("span", { className: cn(labelTextClassBySize[size], getTextColor("label", disabled)), children: label }),
1353
+ trailing && /* @__PURE__ */ jsx20("div", { className: cn(disabled ? "text-primary-disabled" : "text-primary", calculateIconClasses(size)), children: trailing })
1304
1354
  ]
1305
1355
  }
1306
1356
  );
@@ -1340,7 +1390,7 @@ var dropdownRowVariants = cva13(
1340
1390
  );
1341
1391
 
1342
1392
  // src/components/ui/dropdown-menu.tsx
1343
- import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
1393
+ import { jsx as jsx21, jsxs as jsxs11 } from "react/jsx-runtime";
1344
1394
  var DropdownMenuSizeContext = React19.createContext("lg");
1345
1395
  function useDropdownMenuSize(explicitSize) {
1346
1396
  const contextSize = React19.useContext(DropdownMenuSizeContext);
@@ -1482,7 +1532,7 @@ function DropdownMenuSubTrigger({
1482
1532
  ...props
1483
1533
  }) {
1484
1534
  const resolvedSize = useDropdownMenuSize(size);
1485
- return /* @__PURE__ */ jsxs12(
1535
+ return /* @__PURE__ */ jsxs11(
1486
1536
  DropdownMenuPrimitive.SubTrigger,
1487
1537
  {
1488
1538
  "data-slot": "dropdown-menu-sub-trigger",
@@ -1525,7 +1575,7 @@ function DropdownMenuSubContent({
1525
1575
  }
1526
1576
 
1527
1577
  // src/components/Content/Menu.tsx
1528
- import { jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
1578
+ import { jsx as jsx22, jsxs as jsxs12 } from "react/jsx-runtime";
1529
1579
  var Menu = (props) => {
1530
1580
  const {
1531
1581
  trigger,
@@ -1539,7 +1589,7 @@ var Menu = (props) => {
1539
1589
  onOpenChange,
1540
1590
  modal
1541
1591
  } = props;
1542
- return /* @__PURE__ */ jsxs13(DropdownMenu, { open, onOpenChange, modal, children: [
1592
+ return /* @__PURE__ */ jsxs12(DropdownMenu, { open, onOpenChange, modal, children: [
1543
1593
  /* @__PURE__ */ jsx22(DropdownMenuTrigger, { asChild: true, children: trigger }),
1544
1594
  /* @__PURE__ */ jsx22(
1545
1595
  DropdownMenuContent,
@@ -1570,9 +1620,9 @@ import * as React21 from "react";
1570
1620
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
1571
1621
  import { CheckIcon as CheckIcon2 } from "@bubo-squared/icons";
1572
1622
  import { MinusIcon } from "@bubo-squared/icons";
1573
- import { jsx as jsx23, jsxs as jsxs14 } from "react/jsx-runtime";
1623
+ import { jsx as jsx23, jsxs as jsxs13 } from "react/jsx-runtime";
1574
1624
  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: [
1625
+ return /* @__PURE__ */ jsxs13("label", { className: "inline-flex items-center gap-(--space-12) cursor-pointer select-none", children: [
1576
1626
  /* @__PURE__ */ jsx23(
1577
1627
  CheckboxPrimitive.Root,
1578
1628
  {
@@ -1590,7 +1640,7 @@ var Checkbox = React21.forwardRef(({ label, className, ...props }, forwardedRef)
1590
1640
  className
1591
1641
  ),
1592
1642
  ...props,
1593
- children: /* @__PURE__ */ jsxs14(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: [
1643
+ children: /* @__PURE__ */ jsxs13(CheckboxPrimitive.Indicator, { className: "flex items-center justify-center text-current", children: [
1594
1644
  /* @__PURE__ */ jsx23(CheckIcon2, { className: "h-5 w-5 hidden group-data-[state=checked]:block" }),
1595
1645
  /* @__PURE__ */ jsx23(MinusIcon, { className: "h-5 w-5 hidden group-data-[state=indeterminate]:block" })
1596
1646
  ] })
@@ -1679,7 +1729,7 @@ var Input = React23.forwardRef(
1679
1729
  Input.displayName = "Input";
1680
1730
 
1681
1731
  // src/components/Inputs/Autocomplete.tsx
1682
- import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
1732
+ import { jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
1683
1733
  var inputTextVariants = cva15("truncate", {
1684
1734
  variants: {
1685
1735
  size: {
@@ -1910,8 +1960,8 @@ var Autocomplete = React24.forwardRef((props, forwardedRef) => {
1910
1960
  const activeDescendantId = activeIndex >= 0 ? `${inputId}-option-${activeIndex}` : void 0;
1911
1961
  const showLeadingIcon = !!leadingIcon;
1912
1962
  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(
1963
+ return /* @__PURE__ */ jsx26(Field, { label, hint, hideHint, status, disabled, children: /* @__PURE__ */ jsxs14("div", { className: "relative w-full", children: [
1964
+ /* @__PURE__ */ jsxs14(
1915
1965
  InputShell,
1916
1966
  {
1917
1967
  size,
@@ -2007,7 +2057,7 @@ import * as React25 from "react";
2007
2057
  import * as SelectPrimitive from "@radix-ui/react-select";
2008
2058
  import { cva as cva16 } from "class-variance-authority";
2009
2059
  import { ChevronDownIcon as ChevronDownIcon2 } from "@bubo-squared/icons";
2010
- import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
2060
+ import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
2011
2061
  var selectTriggerVariants = cva16(
2012
2062
  "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
2063
  {
@@ -2143,7 +2193,7 @@ var Select = React25.forwardRef((props, forwardedRef) => {
2143
2193
  hideHint,
2144
2194
  status,
2145
2195
  disabled,
2146
- children: /* @__PURE__ */ jsxs16(
2196
+ children: /* @__PURE__ */ jsxs15(
2147
2197
  SelectPrimitive.Root,
2148
2198
  {
2149
2199
  value: currentValue,
@@ -2154,7 +2204,7 @@ var Select = React25.forwardRef((props, forwardedRef) => {
2154
2204
  name,
2155
2205
  required,
2156
2206
  children: [
2157
- /* @__PURE__ */ jsx27(SelectPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs16(
2207
+ /* @__PURE__ */ jsx27(SelectPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs15(
2158
2208
  "button",
2159
2209
  {
2160
2210
  ref: forwardedRef,
@@ -2199,7 +2249,7 @@ var Select = React25.forwardRef((props, forwardedRef) => {
2199
2249
  "min-w-343 rounded-8"
2200
2250
  ),
2201
2251
  style: { minWidth: "var(--radix-select-trigger-width)" },
2202
- children: /* @__PURE__ */ jsx27(SelectPrimitive.Viewport, { children: /* @__PURE__ */ jsxs16("div", { className: "flex flex-col", children: [
2252
+ children: /* @__PURE__ */ jsx27(SelectPrimitive.Viewport, { children: /* @__PURE__ */ jsxs15("div", { className: "flex flex-col", children: [
2203
2253
  hasValue && /* @__PURE__ */ jsx27("div", { className: cn("bg-(--background-neutral)"), children: /* @__PURE__ */ jsx27(
2204
2254
  "button",
2205
2255
  {
@@ -2240,7 +2290,7 @@ Select.displayName = "Select";
2240
2290
  import * as React26 from "react";
2241
2291
  import { cva as cva17 } from "class-variance-authority";
2242
2292
  import { EyeIcon, EyeSlashIcon } from "@bubo-squared/icons";
2243
- import { jsx as jsx28, jsxs as jsxs17 } from "react/jsx-runtime";
2293
+ import { jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
2244
2294
  var passwordTextVariants = cva17("truncate", {
2245
2295
  variants: {
2246
2296
  size: {
@@ -2352,7 +2402,7 @@ var PasswordInput = React26.forwardRef((props, forwardedRef) => {
2352
2402
  hideHint,
2353
2403
  status,
2354
2404
  disabled,
2355
- children: /* @__PURE__ */ jsxs17(
2405
+ children: /* @__PURE__ */ jsxs16(
2356
2406
  InputShell,
2357
2407
  {
2358
2408
  size,
@@ -2519,19 +2569,11 @@ var createLucideIcon = (iconName, iconNode) => {
2519
2569
  var __iconNode = [["path", { d: "m9 18 6-6-6-6", key: "mthhwq" }]];
2520
2570
  var ChevronRight = createLucideIcon("chevron-right", __iconNode);
2521
2571
 
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
2572
  // src/components/ui/dialog.tsx
2531
- import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
2573
+ import { jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
2532
2574
 
2533
2575
  // src/components/ui/command.tsx
2534
- import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
2576
+ import { jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
2535
2577
  function Command({
2536
2578
  className,
2537
2579
  ...props
@@ -2552,7 +2594,7 @@ function CommandInput({
2552
2594
  className,
2553
2595
  ...props
2554
2596
  }) {
2555
- return /* @__PURE__ */ jsxs19(
2597
+ return /* @__PURE__ */ jsxs18(
2556
2598
  "div",
2557
2599
  {
2558
2600
  "data-slot": "command-input-wrapper",
@@ -2673,13 +2715,13 @@ function PopoverContent({
2673
2715
  // src/components/ui/scroll-area.tsx
2674
2716
  import "react";
2675
2717
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
2676
- import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
2718
+ import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
2677
2719
  function ScrollArea({
2678
2720
  className,
2679
2721
  children,
2680
2722
  ...props
2681
2723
  }) {
2682
- return /* @__PURE__ */ jsxs20(
2724
+ return /* @__PURE__ */ jsxs19(
2683
2725
  ScrollAreaPrimitive.Root,
2684
2726
  {
2685
2727
  "data-slot": "scroll-area",
@@ -2731,7 +2773,7 @@ function ScrollBar({
2731
2773
 
2732
2774
  // src/components/Inputs/PhoneInput.tsx
2733
2775
  import { cva as cva18 } from "class-variance-authority";
2734
- import { jsx as jsx33, jsxs as jsxs21 } from "react/jsx-runtime";
2776
+ import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
2735
2777
  var inputBase = "h-full rounded-8 border border-secondary bg-(--background-primary) hover:border-secondary-hover";
2736
2778
  var sizeBase = cva18(
2737
2779
  "flex w-full",
@@ -2888,7 +2930,7 @@ var CountrySelect = ({
2888
2930
  const scrollAreaRef = React31.useRef(null);
2889
2931
  const [searchValue, setSearchValue] = React31.useState("");
2890
2932
  const [isOpen, setIsOpen] = React31.useState(false);
2891
- return /* @__PURE__ */ jsxs21(
2933
+ return /* @__PURE__ */ jsxs20(
2892
2934
  Popover,
2893
2935
  {
2894
2936
  open: isOpen,
@@ -2900,7 +2942,7 @@ var CountrySelect = ({
2900
2942
  }
2901
2943
  },
2902
2944
  children: [
2903
- /* @__PURE__ */ jsx33(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs21(
2945
+ /* @__PURE__ */ jsx33(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs20(
2904
2946
  Button,
2905
2947
  {
2906
2948
  type: "button",
@@ -2936,7 +2978,7 @@ var CountrySelect = ({
2936
2978
  dropdownWidthVariants({ size }),
2937
2979
  dropdownSurfaceClass
2938
2980
  ),
2939
- children: /* @__PURE__ */ jsxs21(Command, { className: "bg-transparent", children: [
2981
+ children: /* @__PURE__ */ jsxs20(Command, { className: "bg-transparent", children: [
2940
2982
  /* @__PURE__ */ jsx33(
2941
2983
  CommandInput,
2942
2984
  {
@@ -2957,7 +2999,7 @@ var CountrySelect = ({
2957
2999
  placeholder: "Search country..."
2958
3000
  }
2959
3001
  ),
2960
- /* @__PURE__ */ jsx33(CommandList, { children: /* @__PURE__ */ jsxs21(ScrollArea, { ref: scrollAreaRef, className: "max-h-79", children: [
3002
+ /* @__PURE__ */ jsx33(CommandList, { children: /* @__PURE__ */ jsxs20(ScrollArea, { ref: scrollAreaRef, className: "max-h-79", children: [
2961
3003
  /* @__PURE__ */ jsx33(CommandEmpty, { children: "No country found." }),
2962
3004
  /* @__PURE__ */ jsx33(CommandGroup, { className: "p-0", children: countryList.map(
2963
3005
  ({ value, label }) => value ? /* @__PURE__ */ jsx33(
@@ -2997,7 +3039,7 @@ var CountrySelectOption = (props) => {
2997
3039
  onChange(country);
2998
3040
  onSelectComplete();
2999
3041
  };
3000
- return /* @__PURE__ */ jsxs21(
3042
+ return /* @__PURE__ */ jsxs20(
3001
3043
  CommandItem,
3002
3044
  {
3003
3045
  className: cn(countryOptionVariants({ size })),
@@ -3024,7 +3066,7 @@ var FlagComponent = ({ country, countryName }) => {
3024
3066
  // src/components/Inputs/RadioGroup.tsx
3025
3067
  import * as React32 from "react";
3026
3068
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
3027
- import { jsx as jsx34, jsxs as jsxs22 } from "react/jsx-runtime";
3069
+ import { jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
3028
3070
  var RadioGroup = React32.forwardRef((props, forwardedRef) => {
3029
3071
  const {
3030
3072
  label,
@@ -3067,7 +3109,7 @@ var RadioGroup = React32.forwardRef((props, forwardedRef) => {
3067
3109
  isHorizontal ? "flex-row gap-6" : "flex-col gap-2",
3068
3110
  className
3069
3111
  ),
3070
- children: options.map((option) => /* @__PURE__ */ jsx34("div", { className: "relative inline-flex", children: /* @__PURE__ */ jsxs22(
3112
+ children: options.map((option) => /* @__PURE__ */ jsx34("div", { className: "relative inline-flex", children: /* @__PURE__ */ jsxs21(
3071
3113
  RadioGroupPrimitive.Item,
3072
3114
  {
3073
3115
  value: option.value,
@@ -3143,7 +3185,7 @@ RadioGroup.displayName = "RadioGroup";
3143
3185
  import * as React33 from "react";
3144
3186
  import { cva as cva19 } from "class-variance-authority";
3145
3187
  import { SearchIcon as SearchIcon2 } from "@bubo-squared/icons";
3146
- import { jsx as jsx35, jsxs as jsxs23 } from "react/jsx-runtime";
3188
+ import { jsx as jsx35, jsxs as jsxs22 } from "react/jsx-runtime";
3147
3189
  var searchTextVariants = cva19("truncate", {
3148
3190
  variants: {
3149
3191
  size: {
@@ -3202,7 +3244,7 @@ var SearchInput = React33.forwardRef((props, forwardedRef) => {
3202
3244
  inputRef.current?.focus();
3203
3245
  };
3204
3246
  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(
3247
+ 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
3248
  InputShell,
3207
3249
  {
3208
3250
  size,
@@ -3239,7 +3281,7 @@ import * as React35 from "react";
3239
3281
  // src/components/Feedback/Tooltip.tsx
3240
3282
  import * as React34 from "react";
3241
3283
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3242
- import { jsx as jsx36, jsxs as jsxs24 } from "react/jsx-runtime";
3284
+ import { jsx as jsx36, jsxs as jsxs23 } from "react/jsx-runtime";
3243
3285
  var TooltipArrow = TooltipPrimitive.Arrow;
3244
3286
  var REACT_FORWARD_REF_TYPE = /* @__PURE__ */ Symbol.for("react.forward_ref");
3245
3287
  var REACT_MEMO_TYPE = /* @__PURE__ */ Symbol.for("react.memo");
@@ -3304,7 +3346,7 @@ var Tooltip = (props) => {
3304
3346
  const { side, align } = mapPlacementToSideAndAlign(placement);
3305
3347
  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
3348
  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(
3349
+ return /* @__PURE__ */ jsxs23(
3308
3350
  TooltipPrimitive.Root,
3309
3351
  {
3310
3352
  open,
@@ -3314,7 +3356,7 @@ var Tooltip = (props) => {
3314
3356
  delayDuration,
3315
3357
  children: [
3316
3358
  /* @__PURE__ */ jsx36(TooltipPrimitive.Trigger, { asChild: true, children: trigger }),
3317
- /* @__PURE__ */ jsx36(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs24(
3359
+ /* @__PURE__ */ jsx36(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs23(
3318
3360
  TooltipPrimitive.Content,
3319
3361
  {
3320
3362
  side,
@@ -3323,7 +3365,7 @@ var Tooltip = (props) => {
3323
3365
  className: cn(tooltipClasses, className),
3324
3366
  children: [
3325
3367
  showArrow && /* @__PURE__ */ jsx36(TooltipArrow, { className: tooltipArrowClasses }),
3326
- /* @__PURE__ */ jsxs24("div", { className: "grid", children: [
3368
+ /* @__PURE__ */ jsxs23("div", { className: "grid", children: [
3327
3369
  hasStrapline && /* @__PURE__ */ jsx36("span", { className: "caption text-secondary", children: strapline }),
3328
3370
  /* @__PURE__ */ jsx36("h4", { className: "paragraph-md text-primary", children: title }),
3329
3371
  hasDescription && /* @__PURE__ */ jsx36("p", { className: "paragraph-sm text-primary", children: description })
@@ -3338,7 +3380,7 @@ var Tooltip = (props) => {
3338
3380
  Tooltip.displayName = "Tooltip";
3339
3381
 
3340
3382
  // src/components/Inputs/Slider.tsx
3341
- import { Fragment as Fragment2, jsx as jsx37, jsxs as jsxs25 } from "react/jsx-runtime";
3383
+ import { Fragment, jsx as jsx37, jsxs as jsxs24 } from "react/jsx-runtime";
3342
3384
  var wrapperBase = "flex flex-col gap-2 items-start";
3343
3385
  var isRangeProps = (props) => {
3344
3386
  return Array.isArray(props.value) || Array.isArray(props.defaultValue);
@@ -3600,7 +3642,7 @@ var Slider = React35.forwardRef((props, forwardedRef) => {
3600
3642
  const second = formatNumber(valueToPercent(secondary));
3601
3643
  return `${first} - ${second}`;
3602
3644
  }
3603
- return /* @__PURE__ */ jsxs25(Fragment2, { children: [
3645
+ return /* @__PURE__ */ jsxs24(Fragment, { children: [
3604
3646
  formatDisplayNode(primary),
3605
3647
  " - ",
3606
3648
  formatDisplayNode(secondary)
@@ -3674,14 +3716,14 @@ var Slider = React35.forwardRef((props, forwardedRef) => {
3674
3716
  }
3675
3717
  );
3676
3718
  };
3677
- return /* @__PURE__ */ jsxs25(
3719
+ return /* @__PURE__ */ jsxs24(
3678
3720
  "div",
3679
3721
  {
3680
3722
  className: wrapperBase,
3681
3723
  style: { marginInline: `${thumbRadius}px` },
3682
3724
  ref: forwardedRef,
3683
3725
  children: [
3684
- name && /* @__PURE__ */ jsxs25(Fragment2, { children: [
3726
+ name && /* @__PURE__ */ jsxs24(Fragment, { children: [
3685
3727
  /* @__PURE__ */ jsx37(
3686
3728
  "input",
3687
3729
  {
@@ -3701,8 +3743,8 @@ var Slider = React35.forwardRef((props, forwardedRef) => {
3701
3743
  }
3702
3744
  )
3703
3745
  ] }),
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(
3746
+ /* @__PURE__ */ jsxs24("div", { className: cn("w-full flex flex-col gap-1", className), children: [
3747
+ /* @__PURE__ */ jsx37("div", { className: "relative w-full", children: /* @__PURE__ */ jsxs24(
3706
3748
  "div",
3707
3749
  {
3708
3750
  className: cn(
@@ -3761,7 +3803,7 @@ Slider.displayName = "Slider";
3761
3803
  // src/components/Inputs/TextArea.tsx
3762
3804
  import * as React36 from "react";
3763
3805
  import { MaximizeIcon } from "@bubo-squared/icons";
3764
- import { jsx as jsx38, jsxs as jsxs26 } from "react/jsx-runtime";
3806
+ import { jsx as jsx38, jsxs as jsxs25 } from "react/jsx-runtime";
3765
3807
  var TextArea = React36.forwardRef((props, forwardedRef) => {
3766
3808
  const {
3767
3809
  label,
@@ -3863,7 +3905,7 @@ var TextArea = React36.forwardRef((props, forwardedRef) => {
3863
3905
  hideHint,
3864
3906
  status,
3865
3907
  disabled,
3866
- children: /* @__PURE__ */ jsxs26(
3908
+ children: /* @__PURE__ */ jsxs25(
3867
3909
  "div",
3868
3910
  {
3869
3911
  className: cn(
@@ -3902,7 +3944,7 @@ var TextArea = React36.forwardRef((props, forwardedRef) => {
3902
3944
  ...textareaProps
3903
3945
  }
3904
3946
  ),
3905
- showCharacterLimit && /* @__PURE__ */ jsxs26(
3947
+ showCharacterLimit && /* @__PURE__ */ jsxs25(
3906
3948
  "span",
3907
3949
  {
3908
3950
  className: cn(
@@ -3944,7 +3986,7 @@ TextArea.displayName = "TextArea";
3944
3986
  // src/components/Inputs/TextInput.tsx
3945
3987
  import * as React37 from "react";
3946
3988
  import { cva as cva20 } from "class-variance-authority";
3947
- import { jsx as jsx39, jsxs as jsxs27 } from "react/jsx-runtime";
3989
+ import { jsx as jsx39, jsxs as jsxs26 } from "react/jsx-runtime";
3948
3990
  var inputTextVariants3 = cva20("truncate", {
3949
3991
  variants: {
3950
3992
  size: {
@@ -4032,7 +4074,7 @@ var TextInput = React37.forwardRef((props, forwardedRef) => {
4032
4074
  hideHint,
4033
4075
  status,
4034
4076
  disabled,
4035
- children: /* @__PURE__ */ jsxs27(
4077
+ children: /* @__PURE__ */ jsxs26(
4036
4078
  InputShell,
4037
4079
  {
4038
4080
  size,
@@ -4087,10 +4129,10 @@ TextInput.displayName = "TextInput";
4087
4129
 
4088
4130
  // src/components/Inputs/Toggle.tsx
4089
4131
  import * as React38 from "react";
4090
- import { jsx as jsx40, jsxs as jsxs28 } from "react/jsx-runtime";
4132
+ import { jsx as jsx40, jsxs as jsxs27 } from "react/jsx-runtime";
4091
4133
  var Toggle = React38.forwardRef((props, forwardedRef) => {
4092
4134
  const { label, className, disabled, ...inputProps } = props;
4093
- return /* @__PURE__ */ jsxs28(
4135
+ return /* @__PURE__ */ jsxs27(
4094
4136
  "label",
4095
4137
  {
4096
4138
  className: cn(
@@ -4098,7 +4140,7 @@ var Toggle = React38.forwardRef((props, forwardedRef) => {
4098
4140
  disabled ? "cursor-default" : "cursor-pointer"
4099
4141
  ),
4100
4142
  children: [
4101
- /* @__PURE__ */ jsxs28("span", { className: "relative inline-flex items-center", children: [
4143
+ /* @__PURE__ */ jsxs27("span", { className: "relative inline-flex items-center", children: [
4102
4144
  /* @__PURE__ */ jsx40(
4103
4145
  "input",
4104
4146
  {
@@ -4179,7 +4221,7 @@ Toggle.displayName = "Toggle";
4179
4221
 
4180
4222
  // src/components/Inputs/WebsiteInput.tsx
4181
4223
  import * as React39 from "react";
4182
- import { jsx as jsx41, jsxs as jsxs29 } from "react/jsx-runtime";
4224
+ import { jsx as jsx41, jsxs as jsxs28 } from "react/jsx-runtime";
4183
4225
  var WebsiteInput = React39.forwardRef((props, forwardedRef) => {
4184
4226
  const {
4185
4227
  hierarchy = "leading",
@@ -4216,11 +4258,11 @@ var WebsiteInput = React39.forwardRef((props, forwardedRef) => {
4216
4258
  size === "xl" ? "[&>svg]:w-6 [&>svg]:h-6" : size === "sm" ? "[&>svg]:w-4 [&>svg]:h-4" : "[&>svg]:w-5 [&>svg]:h-5",
4217
4259
  disabled ? "text-(--icon-primary-disabled)" : "text-(--icon-primary) group-hover:text-(--icon-primary-hover) group-focus-within:text-(--icon-primary-focus)"
4218
4260
  );
4219
- const leadingAddon = /* @__PURE__ */ jsxs29("div", { className: baseAddonClass, children: [
4261
+ const leadingAddon = /* @__PURE__ */ jsxs28("div", { className: baseAddonClass, children: [
4220
4262
  /* @__PURE__ */ jsx41("div", { className: addonTextClass, children: protocolLabel }),
4221
4263
  icon != null && /* @__PURE__ */ jsx41("span", { className: iconWrapperClass, children: icon })
4222
4264
  ] });
4223
- const trailingAddon = /* @__PURE__ */ jsxs29("div", { className: baseAddonClass, children: [
4265
+ const trailingAddon = /* @__PURE__ */ jsxs28("div", { className: baseAddonClass, children: [
4224
4266
  icon != null && /* @__PURE__ */ jsx41("span", { className: iconWrapperClass, children: icon }),
4225
4267
  /* @__PURE__ */ jsx41("div", { className: addonTextClass, children: protocolLabel })
4226
4268
  ] });
@@ -4242,7 +4284,7 @@ WebsiteInput.displayName = "WebsiteInput";
4242
4284
  // src/components/Feedback/Popover.tsx
4243
4285
  import * as React40 from "react";
4244
4286
  import * as PopoverPrimitive2 from "@radix-ui/react-popover";
4245
- import { jsx as jsx42, jsxs as jsxs30 } from "react/jsx-runtime";
4287
+ import { jsx as jsx42, jsxs as jsxs29 } from "react/jsx-runtime";
4246
4288
  var PopoverArrow = PopoverPrimitive2.Arrow;
4247
4289
  var Popover2 = (props) => {
4248
4290
  const {
@@ -4310,9 +4352,9 @@ var Popover2 = (props) => {
4310
4352
  }
4311
4353
  };
4312
4354
  const { side, align } = mapPlacementToSideAndAlign2(placement);
4313
- return /* @__PURE__ */ jsxs30(Popover, { open, onOpenChange: handleOpenChange, children: [
4355
+ return /* @__PURE__ */ jsxs29(Popover, { open, onOpenChange: handleOpenChange, children: [
4314
4356
  /* @__PURE__ */ jsx42(PopoverTrigger, { asChild: true, children }),
4315
- /* @__PURE__ */ jsxs30(
4357
+ /* @__PURE__ */ jsxs29(
4316
4358
  PopoverContent,
4317
4359
  {
4318
4360
  side,
@@ -4322,13 +4364,13 @@ var Popover2 = (props) => {
4322
4364
  ...rest,
4323
4365
  children: [
4324
4366
  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: [
4367
+ customContent ? typeof customContent === "function" ? customContent({ close: () => handleOpenChange(false), ok: handleOk, cancel: handleCancel }) : customContent : /* @__PURE__ */ jsxs29("div", { className: "grid gap-4", children: [
4368
+ /* @__PURE__ */ jsxs29("div", { className: "space-y-2", children: [
4327
4369
  hasStrapline && /* @__PURE__ */ jsx42("span", { className: "caption text-secondary", children: strapline }),
4328
4370
  /* @__PURE__ */ jsx42("h4", { className: "subtitle-medium text-primary", children: title }),
4329
4371
  hasDescription && /* @__PURE__ */ jsx42("p", { className: "paragraph-sm text-primary", children: description })
4330
4372
  ] }),
4331
- /* @__PURE__ */ jsxs30("div", { className: "flex justify-start items-center gap-4 flex-wrap", children: [
4373
+ /* @__PURE__ */ jsxs29("div", { className: "flex justify-start items-center gap-4 flex-wrap", children: [
4332
4374
  /* @__PURE__ */ jsx42(Button2, { size: "sm", variant: "secondary", onClick: handleCancel, children: cancelText || "Cancel" }),
4333
4375
  /* @__PURE__ */ jsx42(Button2, { size: "sm", variant: "primary", onClick: handleOk, children: okText || "Ok" })
4334
4376
  ] })
@@ -4369,8 +4411,8 @@ import * as React43 from "react";
4369
4411
  // src/components/ui/breadcrumb.tsx
4370
4412
  import "react";
4371
4413
  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";
4414
+ import { jsx as jsx44 } from "react/jsx-runtime";
4415
+ 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
4416
  var disabledItemClasses = "text-primary-disabled cursor-default pointer-events-none";
4375
4417
  function Breadcrumb({ ...props }) {
4376
4418
  return /* @__PURE__ */ jsx44("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...props });
@@ -4394,7 +4436,6 @@ function BreadcrumbItem({ className, disabled, ...props }) {
4394
4436
  {
4395
4437
  "data-slot": "breadcrumb-item",
4396
4438
  className: cn(breadcrumbItemClasses, disabled && disabledItemClasses, className),
4397
- style: { marginBottom: "7px" },
4398
4439
  ...props
4399
4440
  }
4400
4441
  );
@@ -4423,36 +4464,16 @@ function BreadcrumbSeparator({
4423
4464
  "data-slot": "breadcrumb-separator",
4424
4465
  role: "presentation",
4425
4466
  "aria-hidden": "true",
4426
- className: cn("[&>svg]:size-6 [&>svg]:text-(--color-secondary)", className),
4467
+ className: cn("text-secondary", className),
4427
4468
  ...props,
4428
4469
  children: children ?? /* @__PURE__ */ jsx44(ChevronRight, {})
4429
4470
  }
4430
4471
  );
4431
4472
  }
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
4473
 
4452
4474
  // 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";
4475
+ import { MoreHorizFullIcon } from "@bubo-squared/icons";
4476
+ import { jsx as jsx45, jsxs as jsxs30 } from "react/jsx-runtime";
4456
4477
  var Breadcrumbs = React43.forwardRef(
4457
4478
  (props, ref) => {
4458
4479
  const {
@@ -4463,40 +4484,53 @@ var Breadcrumbs = React43.forwardRef(
4463
4484
  breadcrumbItemClassName,
4464
4485
  breadcrumbPageClassName,
4465
4486
  separatorClassName,
4487
+ breadcrumbListClassName,
4488
+ ellipsisItemClassName,
4489
+ ellipsisTriggerClassName,
4490
+ ellipsisContentClassName,
4491
+ ellipsisGroupClassName,
4492
+ ellipsisMenuItemClassName,
4493
+ ellipsisAriaLabel = "Open breadcrumb menu",
4466
4494
  ...rest
4467
4495
  } = props;
4468
4496
  const items = React43.Children.toArray(children).filter(Boolean);
4469
4497
  const shouldCollapse = Boolean(ellipsis) && items.length >= 5;
4470
4498
  const hiddenItems = shouldCollapse ? items.slice(1, -2) : [];
4471
4499
  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) => {
4500
+ return /* @__PURE__ */ jsx45(Breadcrumb, { ref, className: cn("mb-1.75", className), ...rest, children: /* @__PURE__ */ jsx45(BreadcrumbList, { className: breadcrumbListClassName, children: displayItems.map((child, index) => {
4473
4501
  const isEllipsis = child === "__ELLIPSIS__";
4474
4502
  const key = isEllipsis ? "__ellipsis" : React43.isValidElement(child) && child.key != null ? String(child.key) : String(index);
4475
4503
  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: [
4504
+ return /* @__PURE__ */ jsxs30(React43.Fragment, { children: [
4505
+ isEllipsis ? /* @__PURE__ */ jsx45(BreadcrumbItem, { className: cn(breadcrumbItemClassName, ellipsisItemClassName), children: /* @__PURE__ */ jsxs30(DropdownMenu, { children: [
4478
4506
  /* @__PURE__ */ jsx45(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsx45(
4479
- "button",
4507
+ Button,
4480
4508
  {
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, {})
4509
+ variant: "ghost",
4510
+ className: cn(
4511
+ "inline-flex text-secondary hover:text-primary &[aria-expanded=true]:text-primary-focus items-center justify-center",
4512
+ ellipsisTriggerClassName
4513
+ ),
4514
+ "aria-label": ellipsisAriaLabel,
4515
+ "data-slot": "breadcrumb-ellipsis",
4516
+ role: "presentation",
4517
+ "aria-hidden": "true",
4518
+ children: /* @__PURE__ */ jsx45(MoreHorizFullIcon, {})
4485
4519
  }
4486
4520
  ) }),
4487
4521
  /* @__PURE__ */ jsx45(
4488
4522
  DropdownMenuContent,
4489
4523
  {
4490
4524
  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) => {
4525
+ className: ellipsisContentClassName,
4526
+ children: /* @__PURE__ */ jsx45(DropdownMenuGroup, { className: ellipsisGroupClassName, children: hiddenItems.map((hidden, hiddenIndex) => {
4493
4527
  const hiddenKey = React43.isValidElement(hidden) && hidden.key != null ? String(hidden.key) : `hidden-${hiddenIndex}`;
4494
4528
  if (React43.isValidElement(hidden)) {
4495
4529
  return /* @__PURE__ */ jsx45(
4496
4530
  DropdownMenuItem,
4497
4531
  {
4498
4532
  asChild: true,
4499
- className: "cursor-pointer paragraph-md text-primary focus:bg-(--background-secondary)",
4533
+ className: ellipsisMenuItemClassName,
4500
4534
  children: hidden
4501
4535
  },
4502
4536
  hiddenKey
@@ -4505,7 +4539,7 @@ var Breadcrumbs = React43.forwardRef(
4505
4539
  return /* @__PURE__ */ jsx45(
4506
4540
  DropdownMenuItem,
4507
4541
  {
4508
- className: "cursor-pointer paragraph-md text-primary focus:bg-(--background-secondary)",
4542
+ className: ellipsisMenuItemClassName,
4509
4543
  children: String(hidden)
4510
4544
  },
4511
4545
  hiddenKey
@@ -4513,14 +4547,8 @@ var Breadcrumbs = React43.forwardRef(
4513
4547
  }) })
4514
4548
  }
4515
4549
  )
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 })
4550
+ ] }) }) : isLast ? /* @__PURE__ */ jsx45(BreadcrumbItem, { className: breadcrumbItemClassName, children: /* @__PURE__ */ jsx45(BreadcrumbPage, { className: breadcrumbPageClassName, children: child }) }) : /* @__PURE__ */ jsx45(BreadcrumbItem, { className: breadcrumbItemClassName, children: child }),
4551
+ !isLast && /* @__PURE__ */ jsx45(BreadcrumbSeparator, { className: separatorClassName, children: separator })
4524
4552
  ] }, key);
4525
4553
  }) }) });
4526
4554
  }
@@ -4529,8 +4557,8 @@ Breadcrumbs.displayName = "Breadcrumbs";
4529
4557
 
4530
4558
  // src/components/Logo/LogoIcon.tsx
4531
4559
  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: [
4560
+ import { jsx as jsx46, jsxs as jsxs31 } from "react/jsx-runtime";
4561
+ 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
4562
  /* @__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
4563
  /* @__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
4564
  /* @__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 +4595,15 @@ var LogoIcon = ({ className, size = "md" }) => {
4567
4595
 
4568
4596
  // src/components/Logo/Logo.tsx
4569
4597
  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: [
4598
+ import { jsx as jsx47, jsxs as jsxs32 } from "react/jsx-runtime";
4599
+ 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
4600
  /* @__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
4601
  /* @__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
4602
  /* @__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
4603
  /* @__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
4604
  /* @__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
4605
  ] });
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: [
4606
+ 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
4607
  /* @__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
4608
  /* @__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
4609
  /* @__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 +4649,7 @@ var logoTextSizeVariants = cva22("", {
4621
4649
  });
4622
4650
  var Logo = ({ className, textColor, variant = "inline" }) => {
4623
4651
  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: [
4652
+ return /* @__PURE__ */ jsxs32("div", { className: cn(logoWrapperVariants({ variant }), className), children: [
4625
4653
  /* @__PURE__ */ jsx47(LogoIconSvg2, { className: logoIconSizeVariants({ variant }) }),
4626
4654
  /* @__PURE__ */ jsx47(LogoTextSvg, { className: cn(logoTextSizeVariants({ variant }), textColorClass) })
4627
4655
  ] });
@@ -4682,7 +4710,6 @@ lucide-react/dist/esm/defaultAttributes.js:
4682
4710
  lucide-react/dist/esm/Icon.js:
4683
4711
  lucide-react/dist/esm/createLucideIcon.js:
4684
4712
  lucide-react/dist/esm/icons/chevron-right.js:
4685
- lucide-react/dist/esm/icons/ellipsis.js:
4686
4713
  lucide-react/dist/esm/lucide-react.js:
4687
4714
  (**
4688
4715
  * @license lucide-react v0.555.0 - ISC