@refinn/core-ui 0.1.16 → 0.1.18

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.cjs CHANGED
@@ -376,15 +376,15 @@ var import_react4 = require("react");
376
376
  var import_jsx_runtime4 = require("react/jsx-runtime");
377
377
  var sizeClasses2 = {
378
378
  xs: "h-24 w-24",
379
- s: "h-32 w-32",
380
- m: "h-40 w-40",
381
- l: "h-48 w-48"
379
+ sm: "h-32 w-32",
380
+ md: "h-40 w-40",
381
+ lg: "h-48 w-48"
382
382
  };
383
383
  var iconSizeClasses = {
384
384
  xs: "h-16 w-16",
385
- s: "h-20 w-20",
386
- m: "h-24 w-24",
387
- l: "h-24 w-24"
385
+ sm: "h-20 w-20",
386
+ md: "h-24 w-24",
387
+ lg: "h-24 w-24"
388
388
  };
389
389
  var surfaceBackgroundClasses = {
390
390
  default: {
@@ -424,7 +424,7 @@ var IconButton = (0, import_react4.forwardRef)(
424
424
  (_a, ref) => {
425
425
  var _b = _a, {
426
426
  icon,
427
- size = "s",
427
+ size = "sm",
428
428
  surface = "default",
429
429
  transparent = false,
430
430
  danger = false,
@@ -553,6 +553,7 @@ var AlertBanner = (0, import_react5.forwardRef)(
553
553
  const descColorClass = isPage ? pageIsDark ? "text-alert-text-secondary" : "text-alert-text-secondary-inverse" : "text-alert-text-secondary";
554
554
  const linkColorClass = isPage ? pageIsDark ? "text-alert-text-primary" : "text-white-100" : "text-enabled";
555
555
  const closeButtonSurface = isPage ? "dark" : "default";
556
+ const hasIcon = Boolean(icon) || variant !== "none";
556
557
  const containerClasses = [
557
558
  "flex font-sans",
558
559
  isStacked ? "flex-col items-start gap-8" : "items-center gap-24",
@@ -561,7 +562,7 @@ var AlertBanner = (0, import_react5.forwardRef)(
561
562
  className
562
563
  ].filter(Boolean).join(" ");
563
564
  return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", __spreadProps(__spreadValues({ ref, role: "alert", className: containerClasses }, rest), { children: [
564
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: `flex w-full items-start gap-8 ${isStacked ? "" : "flex-1 min-w-0"}`, children: [
565
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: `flex w-full gap-8 ${isStacked ? "items-start" : "items-center flex-1 min-w-0"}`, children: [
565
566
  icon != null ? icon : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(DefaultIcon, { className: `h-20 w-20 shrink-0 ${iconColorClass}` }),
566
567
  /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex-1 min-w-0 flex flex-col gap-2", children: [
567
568
  title && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("p", { className: `text-label-medium ${titleColorClass}`, children: title }),
@@ -580,7 +581,7 @@ var AlertBanner = (0, import_react5.forwardRef)(
580
581
  onClose && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
581
582
  IconButton,
582
583
  {
583
- size: "s",
584
+ size: "sm",
584
585
  surface: closeButtonSurface,
585
586
  transparent: true,
586
587
  onClick: onClose,
@@ -590,7 +591,7 @@ var AlertBanner = (0, import_react5.forwardRef)(
590
591
  }
591
592
  )
592
593
  ] }),
593
- isStacked && buttonAction && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "flex w-full items-start gap-12 pl-28", children: isPage ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Button, { variant: "secondary", size: "sm", onClick: buttonAction.onClick, children: buttonAction.label }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
594
+ isStacked && buttonAction && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: `flex w-full items-start gap-12 ${hasIcon ? "pl-28" : ""}`, children: isPage ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Button, { variant: "secondary", size: "sm", onClick: buttonAction.onClick, children: buttonAction.label }) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
594
595
  "a",
595
596
  {
596
597
  href: buttonAction.href,
@@ -910,21 +911,21 @@ function IndeterminateIcon({ className }) {
910
911
  );
911
912
  }
912
913
  var boxSizeClasses = {
913
- s: "h-20 w-20",
914
- m: "h-24 w-24"
914
+ sm: "h-20 w-20",
915
+ md: "h-24 w-24"
915
916
  };
916
917
  var labelTextClasses = {
917
- s: "text-label-medium",
918
- m: "text-label-large"
918
+ sm: "text-label-medium",
919
+ md: "text-label-large"
919
920
  };
920
921
  var descriptionPaddingClasses = {
921
- s: "pl-24",
922
- m: "pl-28"
922
+ sm: "pl-24",
923
+ md: "pl-28"
923
924
  };
924
925
  var Checkbox = (0, import_react9.forwardRef)(
925
926
  (_a, ref) => {
926
927
  var _b = _a, {
927
- size = "s",
928
+ size = "sm",
928
929
  label,
929
930
  description,
930
931
  error = false,
@@ -1205,7 +1206,7 @@ var TextField = (0, import_react11.forwardRef)(
1205
1206
  ]);
1206
1207
  const [isFocused, setIsFocused] = (0, import_react11.useState)(false);
1207
1208
  const isActive = isFocused && !!value;
1208
- const iconButtonSize = size === "lg" ? "m" : "s";
1209
+ const iconButtonSize = size === "lg" ? "md" : "sm";
1209
1210
  const inputRef = (0, import_react11.useRef)(null);
1210
1211
  (0, import_react11.useImperativeHandle)(ref, () => inputRef.current);
1211
1212
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "w-full flex flex-col gap-4 font-sans", children: [
@@ -1602,7 +1603,7 @@ var Dialog = (0, import_react13.forwardRef)(
1602
1603
  IconButton,
1603
1604
  {
1604
1605
  icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CloseIcon2, { className: "h-24 w-24" }),
1605
- size: "m",
1606
+ size: "md",
1606
1607
  surface: "dark",
1607
1608
  "aria-label": "\u0E1B\u0E34\u0E14",
1608
1609
  onClick: handleClose
@@ -1623,7 +1624,7 @@ var Dialog = (0, import_react13.forwardRef)(
1623
1624
  IconButton,
1624
1625
  {
1625
1626
  icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CloseIcon2, { className: "h-20 w-20" }),
1626
- size: "s",
1627
+ size: "sm",
1627
1628
  "aria-label": "\u0E1B\u0E34\u0E14",
1628
1629
  onClick: handleClose,
1629
1630
  className: "lg:hidden!"
@@ -1633,7 +1634,7 @@ var Dialog = (0, import_react13.forwardRef)(
1633
1634
  IconButton,
1634
1635
  {
1635
1636
  icon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(CloseIcon2, { className: "h-24 w-24" }),
1636
- size: "m",
1637
+ size: "md",
1637
1638
  "aria-label": "\u0E1B\u0E34\u0E14",
1638
1639
  onClick: handleClose,
1639
1640
  className: "hidden! lg:inline-flex!"
@@ -1727,6 +1728,7 @@ var Drawer = (0, import_react14.forwardRef)(
1727
1728
  dismiss,
1728
1729
  secondary,
1729
1730
  confirm,
1731
+ noPadding = false,
1730
1732
  className = ""
1731
1733
  } = _b, rest = __objRest(_b, [
1732
1734
  "open",
@@ -1742,6 +1744,7 @@ var Drawer = (0, import_react14.forwardRef)(
1742
1744
  "dismiss",
1743
1745
  "secondary",
1744
1746
  "confirm",
1747
+ "noPadding",
1745
1748
  "className"
1746
1749
  ]);
1747
1750
  const { mounted, animate } = useMountTransition2(open);
@@ -1793,12 +1796,12 @@ var Drawer = (0, import_react14.forwardRef)(
1793
1796
  onMouseDown: (e) => e.stopPropagation()
1794
1797
  }, rest), {
1795
1798
  children: [
1796
- showHeader && /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1799
+ showHeader && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex flex-col w-full items-center border-b border-border-subtle bg-dialog-background-primary", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1797
1800
  "div",
1798
1801
  {
1799
1802
  className: [
1800
- "flex shrink-0 items-center gap-8 border-b border-border-subtle bg-dialog-background-primary px-16 pb-12 pt-16",
1801
- fullScreen ? "lg:gap-16 lg:px-112 lg:py-24" : "lg:px-24 lg:pb-16 lg:pt-20"
1803
+ "flex shrink-0 items-center gap-8 px-16 pb-12 pt-16 w-full",
1804
+ fullScreen ? "lg:gap-16 lg:px-0 lg:py-24 lg:max-w-1216" : "lg:px-24 lg:pb-16 lg:pt-20"
1802
1805
  ].join(" "),
1803
1806
  children: [
1804
1807
  /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
@@ -1810,7 +1813,7 @@ var Drawer = (0, import_react14.forwardRef)(
1810
1813
  IconButton,
1811
1814
  {
1812
1815
  icon: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CloseIcon3, { className: "h-20 w-20" }),
1813
- size: "s",
1816
+ size: "sm",
1814
1817
  "aria-label": "\u0E1B\u0E34\u0E14",
1815
1818
  onClick: handleClose,
1816
1819
  className: "lg:hidden!"
@@ -1820,7 +1823,7 @@ var Drawer = (0, import_react14.forwardRef)(
1820
1823
  IconButton,
1821
1824
  {
1822
1825
  icon: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CloseIcon3, { className: "h-24 w-24" }),
1823
- size: fullScreen ? "l" : "m",
1826
+ size: fullScreen ? "lg" : "md",
1824
1827
  "aria-label": "\u0E1B\u0E34\u0E14",
1825
1828
  onClick: handleClose,
1826
1829
  className: "hidden! lg:inline-flex!"
@@ -1829,24 +1832,24 @@ var Drawer = (0, import_react14.forwardRef)(
1829
1832
  ] })
1830
1833
  ]
1831
1834
  }
1832
- ),
1835
+ ) }),
1833
1836
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1834
1837
  "div",
1835
1838
  {
1836
1839
  className: [
1837
- "flex-1 overflow-y-auto p-16 text-body-regular text-dialog-text-primary",
1838
- background === "secondary" ? "bg-drawer-background-secondary" : "bg-dialog-background-primary",
1839
- fullScreen ? "lg:px-112 lg:py-24" : "lg:p-24"
1840
+ "flex-1 overflow-y-auto text-body-regular text-dialog-text-primary",
1841
+ !noPadding && "p-16",
1842
+ background === "secondary" ? "bg-drawer-background-secondary" : "bg-dialog-background-primary"
1840
1843
  ].join(" "),
1841
1844
  children
1842
1845
  }
1843
1846
  ),
1844
- showFooter && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1847
+ showFooter && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: `flex shrink-0 w-full flex-col items-center border-t border-border-subtle bg-dialog-background-primary`, children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1845
1848
  "div",
1846
1849
  {
1847
1850
  className: [
1848
- "flex shrink-0 flex-col gap-8 border-t border-border-subtle bg-dialog-background-primary px-16 pb-16 pt-12 lg:flex-row lg:items-center lg:justify-end",
1849
- fullScreen ? "lg:gap-16 lg:px-112 lg:py-24" : "lg:px-24 lg:pb-24 lg:pt-16"
1851
+ "flex shrink-0 flex-col gap-8 px-16 pb-16 pt-12 lg:flex-row lg:items-center lg:justify-end",
1852
+ fullScreen ? "lg:gap-16 lg:px-0 lg:max-w-1216 lg:py-24" : "lg:px-24 lg:pb-24 lg:pt-16"
1850
1853
  ].join(" "),
1851
1854
  children: allActions ? /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
1852
1855
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DrawerAction, { action: dismiss, variant: "tertiary", orderClass: "order-3 lg:order-1" }),
@@ -1860,7 +1863,7 @@ var Drawer = (0, import_react14.forwardRef)(
1860
1863
  /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(DrawerAction, { action: dismiss, variant: "tertiary", orderClass: "order-3 lg:order-1" })
1861
1864
  ] })
1862
1865
  }
1863
- )
1866
+ ) })
1864
1867
  ]
1865
1868
  })
1866
1869
  )
@@ -1968,7 +1971,7 @@ var Dropdown = (0, import_react15.forwardRef)(
1968
1971
  "className"
1969
1972
  ]);
1970
1973
  const isCombobox = variant === "combobox";
1971
- const iconButtonSize = size === "lg" ? "m" : "s";
1974
+ const iconButtonSize = size === "lg" ? "md" : "sm";
1972
1975
  const [isOpen, setIsOpen] = (0, import_react15.useState)(false);
1973
1976
  const [isFocused, setIsFocused] = (0, import_react15.useState)(false);
1974
1977
  const [query, setQuery] = (0, import_react15.useState)(value.label || "");
@@ -2385,17 +2388,11 @@ var linkVariantClasses = {
2385
2388
  lg: "text-link-large gap-4"
2386
2389
  };
2387
2390
  var iconVariantClasses = {
2388
- xs: "w-20 h-20",
2389
- sm: "w-20 h-20",
2390
- md: "w-20 h-20",
2391
- lg: "w-24 h-24"
2391
+ xs: "w-20 h-20 text-[20px]",
2392
+ sm: "w-20 h-20 text-[20px]",
2393
+ md: "w-20 h-20 text-[20px]",
2394
+ lg: "w-24 h-24 text-[24px]"
2392
2395
  };
2393
- function SuccessIcon3({ className }) {
2394
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("svg", { className, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
2395
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("path", { d: "M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z", stroke: "currentColor", strokeWidth: "1.5" }),
2396
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("path", { d: "m7 10 2 2 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
2397
- ] });
2398
- }
2399
2396
  var Link = (0, import_react18.forwardRef)(
2400
2397
  (_a, ref) => {
2401
2398
  var _b = _a, {
@@ -2404,7 +2401,7 @@ var Link = (0, import_react18.forwardRef)(
2404
2401
  linkStyle = "brand",
2405
2402
  text,
2406
2403
  href,
2407
- icon = true,
2404
+ icon,
2408
2405
  className = "",
2409
2406
  children
2410
2407
  } = _b, rest = __objRest(_b, [
@@ -2417,6 +2414,7 @@ var Link = (0, import_react18.forwardRef)(
2417
2414
  "className",
2418
2415
  "children"
2419
2416
  ]);
2417
+ var _a2;
2420
2418
  const styleClass = linkStyleClasses[linkStyle];
2421
2419
  const variantClass = linkVariantClasses[variant];
2422
2420
  const iconClass = iconVariantClasses[variant];
@@ -2427,9 +2425,11 @@ var Link = (0, import_react18.forwardRef)(
2427
2425
  variantClass,
2428
2426
  className
2429
2427
  ].filter(Boolean).join(" ");
2430
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("div", __spreadProps(__spreadValues({ ref, role: "link", className: classes }, rest), { children: [
2428
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("span", __spreadProps(__spreadValues({ ref, role: "link", className: classes }, rest), { children: [
2431
2429
  /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("a", { href, target: "_blank", rel: "noopener noreferrer", children: text }),
2432
- icon && !isInline ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(SuccessIcon3, { className: iconClass }) : null
2430
+ icon && (0, import_react18.cloneElement)(icon, {
2431
+ className: `${(_a2 = icon.props.className) != null ? _a2 : ""} ${iconClass}`
2432
+ })
2433
2433
  ] }));
2434
2434
  }
2435
2435
  );
@@ -2962,7 +2962,7 @@ var TextArea = (0, import_react23.forwardRef)(
2962
2962
  pending ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Loading, { size: "sm", className: "shrink-0 absolute right-12 top-12" }) : clearable && isFocused && value ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2963
2963
  IconButton,
2964
2964
  {
2965
- size: "s",
2965
+ size: "sm",
2966
2966
  transparent: true,
2967
2967
  "aria-label": "\u0E25\u0E49\u0E32\u0E07\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21",
2968
2968
  className: "absolute right-6 top-6",
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import react__default, { HTMLAttributes, ReactNode, ButtonHTMLAttributes, InputHTMLAttributes, TextareaHTMLAttributes } from 'react';
2
+ import react__default, { HTMLAttributes, ReactNode, ButtonHTMLAttributes, InputHTMLAttributes, ReactElement, TextareaHTMLAttributes } from 'react';
3
3
 
4
4
  interface AccordionItemData {
5
5
  id?: string;
@@ -80,7 +80,7 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
80
80
  }
81
81
  declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
82
82
 
83
- type CheckboxSize = "s" | "m";
83
+ type CheckboxSize = "sm" | "md";
84
84
  interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
85
85
  size?: CheckboxSize;
86
86
  label?: ReactNode;
@@ -182,6 +182,7 @@ interface DrawerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
182
182
  dismiss?: DrawerActionProps;
183
183
  secondary?: DrawerActionProps;
184
184
  confirm?: DrawerActionProps;
185
+ noPadding?: boolean;
185
186
  }
186
187
  declare const Drawer: react.ForwardRefExoticComponent<DrawerProps & react.RefAttributes<HTMLDivElement>>;
187
188
 
@@ -233,7 +234,7 @@ interface IconProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
233
234
  }
234
235
  declare const Icon: react.ForwardRefExoticComponent<IconProps & react.RefAttributes<HTMLSpanElement>>;
235
236
 
236
- type IconButtonSize = 'xs' | 's' | 'm' | 'l';
237
+ type IconButtonSize = 'xs' | 'sm' | 'md' | 'lg';
237
238
  type IconButtonSurface = 'default' | 'dark' | 'light';
238
239
  interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
239
240
  icon: ReactNode;
@@ -249,15 +250,17 @@ declare const IconButton: react.ForwardRefExoticComponent<IconButtonProps & reac
249
250
 
250
251
  type LinkVariant = 'xs' | 'sm' | 'md' | 'lg';
251
252
  type LinkStyle = 'brand' | 'white' | 'black' | 'brandLooped' | 'whiteLooped' | 'blackLooped';
252
- interface LinkProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
253
+ interface LinkProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'title'> {
253
254
  variant?: LinkVariant;
254
255
  isInline?: boolean;
255
256
  linkStyle?: LinkStyle;
256
257
  text?: ReactNode;
257
258
  href?: string;
258
- icon?: boolean;
259
+ icon?: ReactElement<{
260
+ className?: string;
261
+ }>;
259
262
  }
260
- declare const Link: react.ForwardRefExoticComponent<LinkProps & react.RefAttributes<HTMLDivElement>>;
263
+ declare const Link: react.ForwardRefExoticComponent<LinkProps & react.RefAttributes<HTMLSpanElement>>;
261
264
 
262
265
  type LoadingSize = "sm" | "lg";
263
266
  interface LoadingProps extends HTMLAttributes<HTMLDivElement> {
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as react from 'react';
2
- import react__default, { HTMLAttributes, ReactNode, ButtonHTMLAttributes, InputHTMLAttributes, TextareaHTMLAttributes } from 'react';
2
+ import react__default, { HTMLAttributes, ReactNode, ButtonHTMLAttributes, InputHTMLAttributes, ReactElement, TextareaHTMLAttributes } from 'react';
3
3
 
4
4
  interface AccordionItemData {
5
5
  id?: string;
@@ -80,7 +80,7 @@ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
80
80
  }
81
81
  declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
82
82
 
83
- type CheckboxSize = "s" | "m";
83
+ type CheckboxSize = "sm" | "md";
84
84
  interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "size"> {
85
85
  size?: CheckboxSize;
86
86
  label?: ReactNode;
@@ -182,6 +182,7 @@ interface DrawerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
182
182
  dismiss?: DrawerActionProps;
183
183
  secondary?: DrawerActionProps;
184
184
  confirm?: DrawerActionProps;
185
+ noPadding?: boolean;
185
186
  }
186
187
  declare const Drawer: react.ForwardRefExoticComponent<DrawerProps & react.RefAttributes<HTMLDivElement>>;
187
188
 
@@ -233,7 +234,7 @@ interface IconProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children'> {
233
234
  }
234
235
  declare const Icon: react.ForwardRefExoticComponent<IconProps & react.RefAttributes<HTMLSpanElement>>;
235
236
 
236
- type IconButtonSize = 'xs' | 's' | 'm' | 'l';
237
+ type IconButtonSize = 'xs' | 'sm' | 'md' | 'lg';
237
238
  type IconButtonSurface = 'default' | 'dark' | 'light';
238
239
  interface IconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
239
240
  icon: ReactNode;
@@ -249,15 +250,17 @@ declare const IconButton: react.ForwardRefExoticComponent<IconButtonProps & reac
249
250
 
250
251
  type LinkVariant = 'xs' | 'sm' | 'md' | 'lg';
251
252
  type LinkStyle = 'brand' | 'white' | 'black' | 'brandLooped' | 'whiteLooped' | 'blackLooped';
252
- interface LinkProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
253
+ interface LinkProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'title'> {
253
254
  variant?: LinkVariant;
254
255
  isInline?: boolean;
255
256
  linkStyle?: LinkStyle;
256
257
  text?: ReactNode;
257
258
  href?: string;
258
- icon?: boolean;
259
+ icon?: ReactElement<{
260
+ className?: string;
261
+ }>;
259
262
  }
260
- declare const Link: react.ForwardRefExoticComponent<LinkProps & react.RefAttributes<HTMLDivElement>>;
263
+ declare const Link: react.ForwardRefExoticComponent<LinkProps & react.RefAttributes<HTMLSpanElement>>;
261
264
 
262
265
  type LoadingSize = "sm" | "lg";
263
266
  interface LoadingProps extends HTMLAttributes<HTMLDivElement> {
package/dist/index.js CHANGED
@@ -333,15 +333,15 @@ import { forwardRef as forwardRef4 } from "react";
333
333
  import { jsx as jsx4 } from "react/jsx-runtime";
334
334
  var sizeClasses2 = {
335
335
  xs: "h-24 w-24",
336
- s: "h-32 w-32",
337
- m: "h-40 w-40",
338
- l: "h-48 w-48"
336
+ sm: "h-32 w-32",
337
+ md: "h-40 w-40",
338
+ lg: "h-48 w-48"
339
339
  };
340
340
  var iconSizeClasses = {
341
341
  xs: "h-16 w-16",
342
- s: "h-20 w-20",
343
- m: "h-24 w-24",
344
- l: "h-24 w-24"
342
+ sm: "h-20 w-20",
343
+ md: "h-24 w-24",
344
+ lg: "h-24 w-24"
345
345
  };
346
346
  var surfaceBackgroundClasses = {
347
347
  default: {
@@ -381,7 +381,7 @@ var IconButton = forwardRef4(
381
381
  (_a, ref) => {
382
382
  var _b = _a, {
383
383
  icon,
384
- size = "s",
384
+ size = "sm",
385
385
  surface = "default",
386
386
  transparent = false,
387
387
  danger = false,
@@ -510,6 +510,7 @@ var AlertBanner = forwardRef5(
510
510
  const descColorClass = isPage ? pageIsDark ? "text-alert-text-secondary" : "text-alert-text-secondary-inverse" : "text-alert-text-secondary";
511
511
  const linkColorClass = isPage ? pageIsDark ? "text-alert-text-primary" : "text-white-100" : "text-enabled";
512
512
  const closeButtonSurface = isPage ? "dark" : "default";
513
+ const hasIcon = Boolean(icon) || variant !== "none";
513
514
  const containerClasses = [
514
515
  "flex font-sans",
515
516
  isStacked ? "flex-col items-start gap-8" : "items-center gap-24",
@@ -518,7 +519,7 @@ var AlertBanner = forwardRef5(
518
519
  className
519
520
  ].filter(Boolean).join(" ");
520
521
  return /* @__PURE__ */ jsxs4("div", __spreadProps(__spreadValues({ ref, role: "alert", className: containerClasses }, rest), { children: [
521
- /* @__PURE__ */ jsxs4("div", { className: `flex w-full items-start gap-8 ${isStacked ? "" : "flex-1 min-w-0"}`, children: [
522
+ /* @__PURE__ */ jsxs4("div", { className: `flex w-full gap-8 ${isStacked ? "items-start" : "items-center flex-1 min-w-0"}`, children: [
522
523
  icon != null ? icon : /* @__PURE__ */ jsx5(DefaultIcon, { className: `h-20 w-20 shrink-0 ${iconColorClass}` }),
523
524
  /* @__PURE__ */ jsxs4("div", { className: "flex-1 min-w-0 flex flex-col gap-2", children: [
524
525
  title && /* @__PURE__ */ jsx5("p", { className: `text-label-medium ${titleColorClass}`, children: title }),
@@ -537,7 +538,7 @@ var AlertBanner = forwardRef5(
537
538
  onClose && /* @__PURE__ */ jsx5(
538
539
  IconButton,
539
540
  {
540
- size: "s",
541
+ size: "sm",
541
542
  surface: closeButtonSurface,
542
543
  transparent: true,
543
544
  onClick: onClose,
@@ -547,7 +548,7 @@ var AlertBanner = forwardRef5(
547
548
  }
548
549
  )
549
550
  ] }),
550
- isStacked && buttonAction && /* @__PURE__ */ jsx5("div", { className: "flex w-full items-start gap-12 pl-28", children: isPage ? /* @__PURE__ */ jsx5(Button, { variant: "secondary", size: "sm", onClick: buttonAction.onClick, children: buttonAction.label }) : /* @__PURE__ */ jsxs4(
551
+ isStacked && buttonAction && /* @__PURE__ */ jsx5("div", { className: `flex w-full items-start gap-12 ${hasIcon ? "pl-28" : ""}`, children: isPage ? /* @__PURE__ */ jsx5(Button, { variant: "secondary", size: "sm", onClick: buttonAction.onClick, children: buttonAction.label }) : /* @__PURE__ */ jsxs4(
551
552
  "a",
552
553
  {
553
554
  href: buttonAction.href,
@@ -873,21 +874,21 @@ function IndeterminateIcon({ className }) {
873
874
  );
874
875
  }
875
876
  var boxSizeClasses = {
876
- s: "h-20 w-20",
877
- m: "h-24 w-24"
877
+ sm: "h-20 w-20",
878
+ md: "h-24 w-24"
878
879
  };
879
880
  var labelTextClasses = {
880
- s: "text-label-medium",
881
- m: "text-label-large"
881
+ sm: "text-label-medium",
882
+ md: "text-label-large"
882
883
  };
883
884
  var descriptionPaddingClasses = {
884
- s: "pl-24",
885
- m: "pl-28"
885
+ sm: "pl-24",
886
+ md: "pl-28"
886
887
  };
887
888
  var Checkbox = forwardRef9(
888
889
  (_a, ref) => {
889
890
  var _b = _a, {
890
- size = "s",
891
+ size = "sm",
891
892
  label,
892
893
  description,
893
894
  error = false,
@@ -1183,7 +1184,7 @@ var TextField = forwardRef11(
1183
1184
  ]);
1184
1185
  const [isFocused, setIsFocused] = useState4(false);
1185
1186
  const isActive = isFocused && !!value;
1186
- const iconButtonSize = size === "lg" ? "m" : "s";
1187
+ const iconButtonSize = size === "lg" ? "md" : "sm";
1187
1188
  const inputRef = useRef(null);
1188
1189
  useImperativeHandle(ref, () => inputRef.current);
1189
1190
  return /* @__PURE__ */ jsxs10("div", { className: "w-full flex flex-col gap-4 font-sans", children: [
@@ -1584,7 +1585,7 @@ var Dialog = forwardRef13(
1584
1585
  IconButton,
1585
1586
  {
1586
1587
  icon: /* @__PURE__ */ jsx13(CloseIcon2, { className: "h-24 w-24" }),
1587
- size: "m",
1588
+ size: "md",
1588
1589
  surface: "dark",
1589
1590
  "aria-label": "\u0E1B\u0E34\u0E14",
1590
1591
  onClick: handleClose
@@ -1605,7 +1606,7 @@ var Dialog = forwardRef13(
1605
1606
  IconButton,
1606
1607
  {
1607
1608
  icon: /* @__PURE__ */ jsx13(CloseIcon2, { className: "h-20 w-20" }),
1608
- size: "s",
1609
+ size: "sm",
1609
1610
  "aria-label": "\u0E1B\u0E34\u0E14",
1610
1611
  onClick: handleClose,
1611
1612
  className: "lg:hidden!"
@@ -1615,7 +1616,7 @@ var Dialog = forwardRef13(
1615
1616
  IconButton,
1616
1617
  {
1617
1618
  icon: /* @__PURE__ */ jsx13(CloseIcon2, { className: "h-24 w-24" }),
1618
- size: "m",
1619
+ size: "md",
1619
1620
  "aria-label": "\u0E1B\u0E34\u0E14",
1620
1621
  onClick: handleClose,
1621
1622
  className: "hidden! lg:inline-flex!"
@@ -1713,6 +1714,7 @@ var Drawer = forwardRef14(
1713
1714
  dismiss,
1714
1715
  secondary,
1715
1716
  confirm,
1717
+ noPadding = false,
1716
1718
  className = ""
1717
1719
  } = _b, rest = __objRest(_b, [
1718
1720
  "open",
@@ -1728,6 +1730,7 @@ var Drawer = forwardRef14(
1728
1730
  "dismiss",
1729
1731
  "secondary",
1730
1732
  "confirm",
1733
+ "noPadding",
1731
1734
  "className"
1732
1735
  ]);
1733
1736
  const { mounted, animate } = useMountTransition2(open);
@@ -1779,12 +1782,12 @@ var Drawer = forwardRef14(
1779
1782
  onMouseDown: (e) => e.stopPropagation()
1780
1783
  }, rest), {
1781
1784
  children: [
1782
- showHeader && /* @__PURE__ */ jsxs12(
1785
+ showHeader && /* @__PURE__ */ jsx14("div", { className: "flex flex-col w-full items-center border-b border-border-subtle bg-dialog-background-primary", children: /* @__PURE__ */ jsxs12(
1783
1786
  "div",
1784
1787
  {
1785
1788
  className: [
1786
- "flex shrink-0 items-center gap-8 border-b border-border-subtle bg-dialog-background-primary px-16 pb-12 pt-16",
1787
- fullScreen ? "lg:gap-16 lg:px-112 lg:py-24" : "lg:px-24 lg:pb-16 lg:pt-20"
1789
+ "flex shrink-0 items-center gap-8 px-16 pb-12 pt-16 w-full",
1790
+ fullScreen ? "lg:gap-16 lg:px-0 lg:py-24 lg:max-w-1216" : "lg:px-24 lg:pb-16 lg:pt-20"
1788
1791
  ].join(" "),
1789
1792
  children: [
1790
1793
  /* @__PURE__ */ jsxs12("div", { className: "flex min-w-0 flex-1 flex-col gap-2", children: [
@@ -1796,7 +1799,7 @@ var Drawer = forwardRef14(
1796
1799
  IconButton,
1797
1800
  {
1798
1801
  icon: /* @__PURE__ */ jsx14(CloseIcon3, { className: "h-20 w-20" }),
1799
- size: "s",
1802
+ size: "sm",
1800
1803
  "aria-label": "\u0E1B\u0E34\u0E14",
1801
1804
  onClick: handleClose,
1802
1805
  className: "lg:hidden!"
@@ -1806,7 +1809,7 @@ var Drawer = forwardRef14(
1806
1809
  IconButton,
1807
1810
  {
1808
1811
  icon: /* @__PURE__ */ jsx14(CloseIcon3, { className: "h-24 w-24" }),
1809
- size: fullScreen ? "l" : "m",
1812
+ size: fullScreen ? "lg" : "md",
1810
1813
  "aria-label": "\u0E1B\u0E34\u0E14",
1811
1814
  onClick: handleClose,
1812
1815
  className: "hidden! lg:inline-flex!"
@@ -1815,24 +1818,24 @@ var Drawer = forwardRef14(
1815
1818
  ] })
1816
1819
  ]
1817
1820
  }
1818
- ),
1821
+ ) }),
1819
1822
  /* @__PURE__ */ jsx14(
1820
1823
  "div",
1821
1824
  {
1822
1825
  className: [
1823
- "flex-1 overflow-y-auto p-16 text-body-regular text-dialog-text-primary",
1824
- background === "secondary" ? "bg-drawer-background-secondary" : "bg-dialog-background-primary",
1825
- fullScreen ? "lg:px-112 lg:py-24" : "lg:p-24"
1826
+ "flex-1 overflow-y-auto text-body-regular text-dialog-text-primary",
1827
+ !noPadding && "p-16",
1828
+ background === "secondary" ? "bg-drawer-background-secondary" : "bg-dialog-background-primary"
1826
1829
  ].join(" "),
1827
1830
  children
1828
1831
  }
1829
1832
  ),
1830
- showFooter && /* @__PURE__ */ jsx14(
1833
+ showFooter && /* @__PURE__ */ jsx14("div", { className: `flex shrink-0 w-full flex-col items-center border-t border-border-subtle bg-dialog-background-primary`, children: /* @__PURE__ */ jsx14(
1831
1834
  "div",
1832
1835
  {
1833
1836
  className: [
1834
- "flex shrink-0 flex-col gap-8 border-t border-border-subtle bg-dialog-background-primary px-16 pb-16 pt-12 lg:flex-row lg:items-center lg:justify-end",
1835
- fullScreen ? "lg:gap-16 lg:px-112 lg:py-24" : "lg:px-24 lg:pb-24 lg:pt-16"
1837
+ "flex shrink-0 flex-col gap-8 px-16 pb-16 pt-12 lg:flex-row lg:items-center lg:justify-end",
1838
+ fullScreen ? "lg:gap-16 lg:px-0 lg:max-w-1216 lg:py-24" : "lg:px-24 lg:pb-24 lg:pt-16"
1836
1839
  ].join(" "),
1837
1840
  children: allActions ? /* @__PURE__ */ jsxs12(Fragment3, { children: [
1838
1841
  /* @__PURE__ */ jsx14(DrawerAction, { action: dismiss, variant: "tertiary", orderClass: "order-3 lg:order-1" }),
@@ -1846,7 +1849,7 @@ var Drawer = forwardRef14(
1846
1849
  /* @__PURE__ */ jsx14(DrawerAction, { action: dismiss, variant: "tertiary", orderClass: "order-3 lg:order-1" })
1847
1850
  ] })
1848
1851
  }
1849
- )
1852
+ ) })
1850
1853
  ]
1851
1854
  })
1852
1855
  )
@@ -1960,7 +1963,7 @@ var Dropdown = forwardRef15(
1960
1963
  "className"
1961
1964
  ]);
1962
1965
  const isCombobox = variant === "combobox";
1963
- const iconButtonSize = size === "lg" ? "m" : "s";
1966
+ const iconButtonSize = size === "lg" ? "md" : "sm";
1964
1967
  const [isOpen, setIsOpen] = useState8(false);
1965
1968
  const [isFocused, setIsFocused] = useState8(false);
1966
1969
  const [query, setQuery] = useState8(value.label || "");
@@ -2360,7 +2363,7 @@ var Icon = forwardRef17(
2360
2363
  Icon.displayName = "Icon";
2361
2364
 
2362
2365
  // src/components/Link/Link.tsx
2363
- import { forwardRef as forwardRef18 } from "react";
2366
+ import { forwardRef as forwardRef18, cloneElement } from "react";
2364
2367
  import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
2365
2368
  var linkStyleClasses = {
2366
2369
  brand: "font-sans text-link-text-enabled",
@@ -2377,17 +2380,11 @@ var linkVariantClasses = {
2377
2380
  lg: "text-link-large gap-4"
2378
2381
  };
2379
2382
  var iconVariantClasses = {
2380
- xs: "w-20 h-20",
2381
- sm: "w-20 h-20",
2382
- md: "w-20 h-20",
2383
- lg: "w-24 h-24"
2383
+ xs: "w-20 h-20 text-[20px]",
2384
+ sm: "w-20 h-20 text-[20px]",
2385
+ md: "w-20 h-20 text-[20px]",
2386
+ lg: "w-24 h-24 text-[24px]"
2384
2387
  };
2385
- function SuccessIcon3({ className }) {
2386
- return /* @__PURE__ */ jsxs15("svg", { className, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", "aria-hidden": "true", children: [
2387
- /* @__PURE__ */ jsx18("path", { d: "M10 18a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z", stroke: "currentColor", strokeWidth: "1.5" }),
2388
- /* @__PURE__ */ jsx18("path", { d: "m7 10 2 2 4-4", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })
2389
- ] });
2390
- }
2391
2388
  var Link = forwardRef18(
2392
2389
  (_a, ref) => {
2393
2390
  var _b = _a, {
@@ -2396,7 +2393,7 @@ var Link = forwardRef18(
2396
2393
  linkStyle = "brand",
2397
2394
  text,
2398
2395
  href,
2399
- icon = true,
2396
+ icon,
2400
2397
  className = "",
2401
2398
  children
2402
2399
  } = _b, rest = __objRest(_b, [
@@ -2409,6 +2406,7 @@ var Link = forwardRef18(
2409
2406
  "className",
2410
2407
  "children"
2411
2408
  ]);
2409
+ var _a2;
2412
2410
  const styleClass = linkStyleClasses[linkStyle];
2413
2411
  const variantClass = linkVariantClasses[variant];
2414
2412
  const iconClass = iconVariantClasses[variant];
@@ -2419,9 +2417,11 @@ var Link = forwardRef18(
2419
2417
  variantClass,
2420
2418
  className
2421
2419
  ].filter(Boolean).join(" ");
2422
- return /* @__PURE__ */ jsxs15("div", __spreadProps(__spreadValues({ ref, role: "link", className: classes }, rest), { children: [
2420
+ return /* @__PURE__ */ jsxs15("span", __spreadProps(__spreadValues({ ref, role: "link", className: classes }, rest), { children: [
2423
2421
  /* @__PURE__ */ jsx18("a", { href, target: "_blank", rel: "noopener noreferrer", children: text }),
2424
- icon && !isInline ? /* @__PURE__ */ jsx18(SuccessIcon3, { className: iconClass }) : null
2422
+ icon && cloneElement(icon, {
2423
+ className: `${(_a2 = icon.props.className) != null ? _a2 : ""} ${iconClass}`
2424
+ })
2425
2425
  ] }));
2426
2426
  }
2427
2427
  );
@@ -2965,7 +2965,7 @@ var TextArea = forwardRef23(
2965
2965
  pending ? /* @__PURE__ */ jsx23(Loading, { size: "sm", className: "shrink-0 absolute right-12 top-12" }) : clearable && isFocused && value ? /* @__PURE__ */ jsx23(
2966
2966
  IconButton,
2967
2967
  {
2968
- size: "s",
2968
+ size: "sm",
2969
2969
  transparent: true,
2970
2970
  "aria-label": "\u0E25\u0E49\u0E32\u0E07\u0E02\u0E49\u0E2D\u0E04\u0E27\u0E32\u0E21",
2971
2971
  className: "absolute right-6 top-6",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@refinn/core-ui",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "description": "Refinn Design System — UI components + Tailwind v4 theme preset",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",