@bubo-squared/ui-framework 0.1.95 → 0.1.97

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,47 +1,47 @@
1
- ## @bubo-squared/ui-framework
2
-
3
- Styled React UI components used across Bubo Squared frontend applications.
4
-
5
- This library is loosely based on shadcn/ui patterns and uses Radix UI primitives for several interactive components.
6
-
7
- ### Installation
8
-
9
- ```bash
10
- npm install @bubo-squared/ui-framework @bubo-squared/icons
11
- # or
12
- pnpm add @bubo-squared/ui-framework @bubo-squared/icons
13
- ```
14
-
15
- ### Peer dependencies
16
-
17
- - React 18 or 19
18
- - React DOM 18 or 19
19
-
20
- Make sure these are installed in your app:
21
-
22
- ```bash
23
- npm install react react-dom
24
- # or
25
- pnpm add react react-dom
26
- ```
27
-
28
- ### Basic usage
29
-
30
- ```tsx
31
- import { Button } from '@bubo-squared/ui-framework'
32
-
33
- export function Example() {
34
- return <Button variant="primary">Click me</Button>
35
- }
36
- ```
37
-
38
- The design system exposes multiple components (buttons, inputs, navigation, feedback, etc.) with a consistent API and styling suitable for Bubo Squared products.
39
-
40
- ### Styling
41
-
42
- Components are built to work well with modern Tailwind-based setups and utility-first styling. You can extend or override styles via `className` props and your existing design tokens.
43
-
44
- ### License
45
-
46
- This package is intended for use within Bubo Squared projects and related applications.
47
-
1
+ ## @bubo-squared/ui-framework
2
+
3
+ Styled React UI components used across Bubo Squared frontend applications.
4
+
5
+ This library is loosely based on shadcn/ui patterns and uses Radix UI primitives for several interactive components.
6
+
7
+ ### Installation
8
+
9
+ ```bash
10
+ npm install @bubo-squared/ui-framework @bubo-squared/icons
11
+ # or
12
+ pnpm add @bubo-squared/ui-framework @bubo-squared/icons
13
+ ```
14
+
15
+ ### Peer dependencies
16
+
17
+ - React 18 or 19
18
+ - React DOM 18 or 19
19
+
20
+ Make sure these are installed in your app:
21
+
22
+ ```bash
23
+ npm install react react-dom
24
+ # or
25
+ pnpm add react react-dom
26
+ ```
27
+
28
+ ### Basic usage
29
+
30
+ ```tsx
31
+ import { Button } from '@bubo-squared/ui-framework'
32
+
33
+ export function Example() {
34
+ return <Button variant="primary">Click me</Button>
35
+ }
36
+ ```
37
+
38
+ The design system exposes multiple components (buttons, inputs, navigation, feedback, etc.) with a consistent API and styling suitable for Bubo Squared products.
39
+
40
+ ### Styling
41
+
42
+ Components are built to work well with modern Tailwind-based setups and utility-first styling. You can extend or override styles via `className` props and your existing design tokens.
43
+
44
+ ### License
45
+
46
+ This package is intended for use within Bubo Squared projects and related applications.
47
+
package/dist/index.cjs CHANGED
@@ -723,7 +723,6 @@ BadgeStatus.displayName = "BadgeStatus";
723
723
  var React11 = require("react");
724
724
  var import_icons2 = require("@bubo-squared/icons");
725
725
  var import_jsx_runtime13 = require("react/jsx-runtime");
726
- var lineClassBase = "flex-1 bg-(--border-secondary) h-px";
727
726
  var gapBySize = {
728
727
  sm: "gap-2",
729
728
  md: "gap-3",
@@ -739,50 +738,74 @@ var textClassBySize = {
739
738
  var Divider = (props) => {
740
739
  const resolvedType = props.type ?? "default";
741
740
  const resolvedSize = props.size ?? "sm";
741
+ const resolvedOrientation = props.orientation ?? "horizontal";
742
+ const ariaOrientation = resolvedOrientation === "vertical" ? "vertical" : "horizontal";
742
743
  const showCenter = resolvedType !== "default";
743
- const lineClass = lineClassBase;
744
+ const lineClass = resolvedOrientation === "vertical" ? "flex-1 bg-(--border-secondary) w-px" : "flex-1 bg-(--border-secondary) h-px";
744
745
  const wrapperClass = cn(
745
- "flex w-full items-center",
746
+ "flex items-center",
747
+ resolvedOrientation === "vertical" ? "h-full flex-col" : "w-full",
746
748
  showCenter ? gapBySize[resolvedSize] : "gap-0",
747
749
  props.className
748
750
  );
749
751
  if (props.type === void 0 || props.type === "default") {
750
752
  const {
751
753
  type: _type,
754
+ orientation: _orientation,
752
755
  size: _size,
753
756
  label: _label,
754
757
  className: _className,
755
758
  ...divProps
756
759
  } = props;
757
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: wrapperClass, ...divProps, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass }) });
760
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
761
+ "div",
762
+ {
763
+ className: wrapperClass,
764
+ role: "separator",
765
+ "aria-orientation": ariaOrientation,
766
+ ...divProps,
767
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass })
768
+ }
769
+ );
758
770
  }
759
771
  if (props.type === "text") {
760
772
  const {
761
773
  type: _type,
774
+ orientation: _orientation,
762
775
  size: _size,
763
776
  label,
764
777
  className: _className,
765
778
  ...divProps
766
779
  } = props;
767
780
  const textLabel = label ? label : "OR";
768
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: wrapperClass, ...divProps, children: [
769
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass }),
770
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
771
- "span",
772
- {
773
- className: cn(
774
- textClassBySize[resolvedSize],
775
- "text-(--color-secondary)"
781
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
782
+ "div",
783
+ {
784
+ className: wrapperClass,
785
+ role: "separator",
786
+ "aria-orientation": ariaOrientation,
787
+ ...divProps,
788
+ children: [
789
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass }),
790
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
791
+ "span",
792
+ {
793
+ className: cn(
794
+ textClassBySize[resolvedSize],
795
+ "text-(--color-secondary)"
796
+ ),
797
+ children: textLabel
798
+ }
776
799
  ),
777
- children: textLabel
778
- }
779
- ),
780
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass })
781
- ] });
800
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass })
801
+ ]
802
+ }
803
+ );
782
804
  }
783
805
  if (props.type === "iconButton") {
784
806
  const {
785
807
  type: _type,
808
+ orientation: _orientation,
786
809
  size: _size,
787
810
  icon,
788
811
  iconButtonVariant,
@@ -791,38 +814,65 @@ var Divider = (props) => {
791
814
  className: _className,
792
815
  ...divProps
793
816
  } = props;
794
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: wrapperClass, ...divProps, children: [
795
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass }),
796
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
797
- IconButton,
798
- {
799
- variant: iconButtonVariant ?? "secondary",
800
- size: resolvedSize,
801
- "aria-label": ariaLabel ?? "More options",
802
- icon: icon ?? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_icons2.TargetIcon, {}),
803
- onClick: onIconClick
804
- }
805
- ),
806
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass })
807
- ] });
817
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
818
+ "div",
819
+ {
820
+ className: wrapperClass,
821
+ role: "separator",
822
+ "aria-orientation": ariaOrientation,
823
+ ...divProps,
824
+ children: [
825
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass }),
826
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
827
+ IconButton,
828
+ {
829
+ variant: iconButtonVariant ?? "secondary",
830
+ size: resolvedSize,
831
+ "aria-label": ariaLabel ?? "More options",
832
+ icon: icon ?? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_icons2.TargetIcon, {}),
833
+ onClick: onIconClick
834
+ }
835
+ ),
836
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass })
837
+ ]
838
+ }
839
+ );
808
840
  }
809
841
  if (props.type === "iconButtonGroup") {
810
842
  const {
811
843
  type: _type,
844
+ orientation: _orientation,
812
845
  size: _size,
813
846
  iconGroupItems,
814
847
  className: _className,
815
848
  ...divProps
816
849
  } = props;
817
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: wrapperClass, ...divProps, children: [
818
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass }),
819
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconButtonGroup, { items: iconGroupItems, size: resolvedSize }),
820
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass })
821
- ] });
850
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
851
+ "div",
852
+ {
853
+ className: wrapperClass,
854
+ role: "separator",
855
+ "aria-orientation": ariaOrientation,
856
+ ...divProps,
857
+ children: [
858
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass }),
859
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
860
+ IconButtonGroup,
861
+ {
862
+ className: resolvedOrientation === "vertical" ? "flex-col" : "flex-row",
863
+ items: iconGroupItems,
864
+ size: resolvedSize
865
+ }
866
+ ),
867
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass })
868
+ ]
869
+ }
870
+ );
822
871
  }
823
872
  if (props.type === "button") {
824
873
  const {
825
874
  type: _type,
875
+ orientation: _orientation,
826
876
  size: _size,
827
877
  buttonLabel,
828
878
  onButtonClick,
@@ -830,19 +880,28 @@ var Divider = (props) => {
830
880
  className: _className,
831
881
  ...divProps
832
882
  } = props;
833
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: wrapperClass, ...divProps, children: [
834
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass }),
835
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
836
- Button,
837
- {
838
- variant: buttonVariant ?? "secondary",
839
- size: resolvedSize,
840
- onClick: onButtonClick,
841
- children: buttonLabel
842
- }
843
- ),
844
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass })
845
- ] });
883
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
884
+ "div",
885
+ {
886
+ className: wrapperClass,
887
+ role: "separator",
888
+ "aria-orientation": ariaOrientation,
889
+ ...divProps,
890
+ children: [
891
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass }),
892
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
893
+ Button,
894
+ {
895
+ variant: buttonVariant ?? "secondary",
896
+ size: resolvedSize,
897
+ onClick: onButtonClick,
898
+ children: buttonLabel
899
+ }
900
+ ),
901
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: lineClass })
902
+ ]
903
+ }
904
+ );
846
905
  }
847
906
  return null;
848
907
  };
@@ -1070,8 +1129,10 @@ var dropdownTriggerVariants = (0, import_class_variance_authority12.cva)(
1070
1129
  {
1071
1130
  variants: {
1072
1131
  size: {
1073
- large: "h-11",
1074
- "extra-large": "h-14"
1132
+ sm: "h-8 py-1",
1133
+ md: "h-10 py-2",
1134
+ lg: "h-11",
1135
+ xl: "h-14"
1075
1136
  },
1076
1137
  status: {
1077
1138
  default: "border-(--border-secondary)",
@@ -1080,7 +1141,7 @@ var dropdownTriggerVariants = (0, import_class_variance_authority12.cva)(
1080
1141
  }
1081
1142
  },
1082
1143
  defaultVariants: {
1083
- size: "large",
1144
+ size: "lg",
1084
1145
  status: "default"
1085
1146
  }
1086
1147
  }
@@ -1088,8 +1149,10 @@ var dropdownTriggerVariants = (0, import_class_variance_authority12.cva)(
1088
1149
  var dropdownTextVariants = (0, import_class_variance_authority12.cva)("truncate", {
1089
1150
  variants: {
1090
1151
  size: {
1091
- large: "subtitle",
1092
- "extra-large": "h6-title"
1152
+ sm: "paragraph-m",
1153
+ md: "paragraph-l",
1154
+ lg: "subtitle",
1155
+ xl: "h6-title"
1093
1156
  },
1094
1157
  hasValue: {
1095
1158
  false: "text-(--color-secondary)",
@@ -1100,15 +1163,17 @@ var dropdownTextVariants = (0, import_class_variance_authority12.cva)("truncate"
1100
1163
  }
1101
1164
  },
1102
1165
  defaultVariants: {
1103
- size: "large",
1166
+ size: "lg",
1104
1167
  hasValue: false
1105
1168
  }
1106
1169
  });
1107
1170
  var dropdownIconVariants = (0, import_class_variance_authority12.cva)("flex items-center justify-center shrink-0", {
1108
1171
  variants: {
1109
1172
  size: {
1110
- large: "w-5 h-5",
1111
- "extra-large": "w-6 h-6"
1173
+ sm: "w-4 h-4",
1174
+ md: "w-5 h-5",
1175
+ lg: "w-5 h-5",
1176
+ xl: "w-6 h-6"
1112
1177
  },
1113
1178
  disabled: {
1114
1179
  false: "text-(--icon-primary)",
@@ -1116,7 +1181,7 @@ var dropdownIconVariants = (0, import_class_variance_authority12.cva)("flex item
1116
1181
  }
1117
1182
  },
1118
1183
  defaultVariants: {
1119
- size: "large",
1184
+ size: "lg",
1120
1185
  disabled: false
1121
1186
  }
1122
1187
  });
@@ -1127,7 +1192,7 @@ var Dropdown = (props) => {
1127
1192
  hint = "This is a hint text to help user.",
1128
1193
  hideHint = false,
1129
1194
  placeholder = "Placeholder text",
1130
- size = "large",
1195
+ size = "lg",
1131
1196
  status = "default",
1132
1197
  disabled,
1133
1198
  options,
@@ -1356,8 +1421,10 @@ var inputShellVariants = (0, import_class_variance_authority13.cva)(
1356
1421
  {
1357
1422
  variants: {
1358
1423
  size: {
1359
- large: "gap-2 px-2 py-2 h-11",
1360
- "extra-large": "gap-2 px-[10px] py-2 h-14"
1424
+ sm: "gap-2 px-2 py-1 h-8",
1425
+ md: "gap-2 px-2 py-2 h-10",
1426
+ lg: "gap-2 px-2 py-2 h-11",
1427
+ xl: "gap-2 px-[10px] py-2 h-14"
1361
1428
  },
1362
1429
  status: {
1363
1430
  default: "input-default",
@@ -1369,7 +1436,7 @@ var inputShellVariants = (0, import_class_variance_authority13.cva)(
1369
1436
  }
1370
1437
  },
1371
1438
  defaultVariants: {
1372
- size: "large",
1439
+ size: "lg",
1373
1440
  status: "default"
1374
1441
  }
1375
1442
  }
@@ -1397,8 +1464,10 @@ var import_jsx_runtime22 = require("react/jsx-runtime");
1397
1464
  var passwordTextVariants = (0, import_class_variance_authority14.cva)("truncate", {
1398
1465
  variants: {
1399
1466
  size: {
1400
- large: "subtitle",
1401
- "extra-large": "h6-title"
1467
+ sm: "paragraph-m",
1468
+ md: "paragraph-l",
1469
+ lg: "subtitle",
1470
+ xl: "h6-title"
1402
1471
  },
1403
1472
  disabled: {
1404
1473
  true: "text-primary-disabled",
@@ -1406,7 +1475,7 @@ var passwordTextVariants = (0, import_class_variance_authority14.cva)("truncate"
1406
1475
  }
1407
1476
  },
1408
1477
  defaultVariants: {
1409
- size: "large",
1478
+ size: "lg",
1410
1479
  disabled: false
1411
1480
  }
1412
1481
  });
@@ -1415,15 +1484,17 @@ var iconWrapperVariants = (0, import_class_variance_authority14.cva)(
1415
1484
  {
1416
1485
  variants: {
1417
1486
  size: {
1418
- large: "size-5 [&>svg]:size-5",
1419
- "extra-large": "size-6 [&>svg]:size-6"
1487
+ sm: "size-4 [&>svg]:size-4",
1488
+ md: "size-5 [&>svg]:size-5",
1489
+ lg: "size-5 [&>svg]:size-5",
1490
+ xl: "size-6 [&>svg]:size-6"
1420
1491
  },
1421
1492
  disabled: {
1422
1493
  true: "text-(--icon-primary-disabled)"
1423
1494
  }
1424
1495
  },
1425
1496
  defaultVariants: {
1426
- size: "large"
1497
+ size: "lg"
1427
1498
  }
1428
1499
  }
1429
1500
  );
@@ -1432,15 +1503,17 @@ var actionButtonVariants = (0, import_class_variance_authority14.cva)(
1432
1503
  {
1433
1504
  variants: {
1434
1505
  size: {
1435
- large: "paragraph-s",
1436
- "extra-large": "paragraph-m"
1506
+ sm: "paragraph-s",
1507
+ md: "paragraph-s",
1508
+ lg: "paragraph-s",
1509
+ xl: "paragraph-m"
1437
1510
  },
1438
1511
  disabled: {
1439
1512
  true: "cursor-default text-primary-disabled hover:text-primary-disabled"
1440
1513
  }
1441
1514
  },
1442
1515
  defaultVariants: {
1443
- size: "large"
1516
+ size: "lg"
1444
1517
  }
1445
1518
  }
1446
1519
  );
@@ -1450,7 +1523,7 @@ var PasswordInput = (props) => {
1450
1523
  hint,
1451
1524
  hideHint,
1452
1525
  placeholder = "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022",
1453
- size = "large",
1526
+ size = "lg",
1454
1527
  status = "default",
1455
1528
  variant = "icons",
1456
1529
  disabled,
@@ -1830,8 +1903,10 @@ var sizeBase = (0, import_class_variance_authority16.cva)(
1830
1903
  {
1831
1904
  variants: {
1832
1905
  size: {
1833
- large: "h-11 [&_button]:gap-2",
1834
- "extra-large": "h-14 [&_button]:gap-3"
1906
+ sm: "h-8 [&_button]:gap-2",
1907
+ md: "h-10 [&_button]:gap-2",
1908
+ lg: "h-11 [&_button]:gap-2",
1909
+ xl: "h-14 [&_button]:gap-3"
1835
1910
  }
1836
1911
  }
1837
1912
  }
@@ -1839,15 +1914,17 @@ var sizeBase = (0, import_class_variance_authority16.cva)(
1839
1914
  var inputTextVariants = (0, import_class_variance_authority16.cva)("", {
1840
1915
  variants: {
1841
1916
  size: {
1842
- large: "subtitle",
1843
- "extra-large": "h6-title"
1917
+ sm: "paragraph-m",
1918
+ md: "paragraph-l",
1919
+ lg: "subtitle",
1920
+ xl: "h6-title"
1844
1921
  },
1845
1922
  disabled: {
1846
1923
  true: "text-primary-disabled border-(--border-secondary-disabled)"
1847
1924
  }
1848
1925
  },
1849
1926
  defaultVariants: {
1850
- size: "large"
1927
+ size: "lg"
1851
1928
  }
1852
1929
  });
1853
1930
  var wrapperStatusClass = {
@@ -1865,7 +1942,7 @@ var PhoneInput = React26.forwardRef(
1865
1942
  hint,
1866
1943
  hideHint,
1867
1944
  placeholder,
1868
- size = "large",
1945
+ size = "lg",
1869
1946
  disabled = false,
1870
1947
  status = "default",
1871
1948
  ...rest
@@ -2194,32 +2271,36 @@ var import_jsx_runtime30 = require("react/jsx-runtime");
2194
2271
  var searchTextVariants = (0, import_class_variance_authority17.cva)("truncate", {
2195
2272
  variants: {
2196
2273
  size: {
2197
- large: "subtitle",
2198
- "extra-large": "h6-title"
2274
+ sm: "paragraph-m",
2275
+ md: "paragraph-l",
2276
+ lg: "subtitle",
2277
+ xl: "h6-title"
2199
2278
  }
2200
2279
  },
2201
2280
  defaultVariants: {
2202
- size: "large"
2281
+ size: "lg"
2203
2282
  }
2204
2283
  });
2205
2284
  var iconWrapperVariants2 = (0, import_class_variance_authority17.cva)("flex items-center justify-center shrink-0 text-(--icon-primary)", {
2206
2285
  variants: {
2207
2286
  size: {
2208
- large: "size-5 [&>svg]:size-5",
2209
- "extra-large": "size-6 [&>svg]:size-6"
2287
+ sm: "size-4 [&>svg]:size-4",
2288
+ md: "size-5 [&>svg]:size-5",
2289
+ lg: "size-5 [&>svg]:size-5",
2290
+ xl: "size-6 [&>svg]:size-6"
2210
2291
  },
2211
2292
  disabled: {
2212
2293
  true: "text-(--icon-primary-disabled)"
2213
2294
  }
2214
2295
  },
2215
2296
  defaultVariants: {
2216
- size: "large"
2297
+ size: "lg"
2217
2298
  }
2218
2299
  });
2219
2300
  var SearchInput = (props) => {
2220
2301
  const {
2221
2302
  placeholder = "Search...",
2222
- size = "large",
2303
+ size = "lg",
2223
2304
  disabled,
2224
2305
  className,
2225
2306
  leadingIcon,
@@ -2822,12 +2903,14 @@ var import_jsx_runtime33 = require("react/jsx-runtime");
2822
2903
  var inputTextVariants2 = (0, import_class_variance_authority18.cva)("truncate", {
2823
2904
  variants: {
2824
2905
  size: {
2825
- large: "subtitle",
2826
- "extra-large": "h6-title"
2906
+ sm: "paragraph-m",
2907
+ md: "paragraph-l",
2908
+ lg: "subtitle",
2909
+ xl: "h6-title"
2827
2910
  }
2828
2911
  },
2829
2912
  defaultVariants: {
2830
- size: "large"
2913
+ size: "lg"
2831
2914
  }
2832
2915
  });
2833
2916
  var iconWrapperVariants3 = (0, import_class_variance_authority18.cva)(
@@ -2835,15 +2918,17 @@ var iconWrapperVariants3 = (0, import_class_variance_authority18.cva)(
2835
2918
  {
2836
2919
  variants: {
2837
2920
  size: {
2838
- large: "size-5 [&>svg]:size-5",
2839
- "extra-large": "size-6 [&>svg]:size-6"
2921
+ sm: "size-4 [&>svg]:size-4",
2922
+ md: "size-5 [&>svg]:size-5",
2923
+ lg: "size-5 [&>svg]:size-5",
2924
+ xl: "size-6 [&>svg]:size-6"
2840
2925
  },
2841
2926
  disabled: {
2842
2927
  true: "text-(--icon-primary-disabled)"
2843
2928
  }
2844
2929
  },
2845
2930
  defaultVariants: {
2846
- size: "large"
2931
+ size: "lg"
2847
2932
  }
2848
2933
  }
2849
2934
  );
@@ -2853,7 +2938,7 @@ var TextInput = (props) => {
2853
2938
  hint,
2854
2939
  hideHint,
2855
2940
  placeholder = "Placeholder text",
2856
- size = "large",
2941
+ size = "lg",
2857
2942
  status = "default",
2858
2943
  disabled = false,
2859
2944
  className,
@@ -3042,21 +3127,22 @@ var WebsiteInput = (props) => {
3042
3127
  hierarchy = "leading",
3043
3128
  protocolLabel = "http://",
3044
3129
  icon,
3045
- size = "large",
3130
+ size = "lg",
3046
3131
  disabled,
3047
3132
  className,
3048
3133
  ...rest
3049
3134
  } = props;
3050
3135
  const isLeading = hierarchy === "leading";
3136
+ const spanHeightClass = size === "xl" ? "[&>span]:h-14!" : size === "lg" ? "[&>span]:h-11!" : size === "md" ? "[&>span]:h-10!" : "[&>span]:h-8!";
3051
3137
  const baseClass = cn(
3052
3138
  "[&>span]:w-[unset] hover:bg-[unset]",
3053
3139
  !disabled && "[&:not(:focus-within):hover]:shadow-[0_0_0_var(--focus-ring-spread)_var(--background-secondary-hover)]",
3054
3140
  disabled && "bg-[unset] hover:shadow-none hover:border-(--border-secondary-disabled) border-(--border-secondary-disabled)",
3055
- size === "extra-large" ? "[&>span]:h-14!" : "[&>span]:h-11!"
3141
+ spanHeightClass
3056
3142
  );
3057
3143
  const addonTextClass = cn(
3058
3144
  "flex mb-0!",
3059
- size === "extra-large" ? "paragraph-m" : "paragraph-s",
3145
+ size === "xl" ? "paragraph-m" : size === "sm" ? "paragraph-m" : "paragraph-s",
3060
3146
  disabled ? "text-primary-disabled" : "text-primary group-hover:text-(--color-primary-hover) group-focus-within:text-(--color-primary-focus)"
3061
3147
  );
3062
3148
  const baseAddonClass = cn(
@@ -3069,7 +3155,7 @@ var WebsiteInput = (props) => {
3069
3155
  );
3070
3156
  const iconWrapperClass = cn(
3071
3157
  "flex items-center justify-center shrink-0",
3072
- size === "extra-large" ? "[&>svg]:w-6 [&>svg]:h-6" : "[&>svg]:w-5 [&>svg]:h-5",
3158
+ size === "xl" ? "[&>svg]:w-6 [&>svg]:h-6" : size === "sm" ? "[&>svg]:w-4 [&>svg]:h-4" : "[&>svg]:w-5 [&>svg]:h-5",
3073
3159
  disabled ? "text-(--icon-primary-disabled)" : "text-(--icon-primary) group-hover:text-(--icon-primary-hover) group-focus-within:text-(--icon-primary-focus)"
3074
3160
  );
3075
3161
  const leadingAddon = /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: baseAddonClass, children: [