mainbase-ui 1.2.4 → 1.2.5-b

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.d.cts CHANGED
@@ -156,6 +156,10 @@ interface MainbaseComponentDefaults {
156
156
  firstDayOfWeek?: 0 | 1;
157
157
  clearable?: boolean;
158
158
  };
159
+ Image?: {
160
+ radius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
161
+ fit?: "contain" | "cover" | "fill" | "none" | "scale-down";
162
+ };
159
163
  }
160
164
  interface MainbaseTheme {
161
165
  colorScheme: MainbaseColorScheme;
@@ -215,9 +219,11 @@ interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
215
219
  }
216
220
  declare function Badge({ variant, size, leftSection, rightSection, className, children, ...props }: BadgeProps): react.JSX.Element;
217
221
 
222
+ type ButtonVariant = "primary" | "secondary" | "outline" | "ghost" | "danger";
223
+ type ButtonSize = "sm" | "md" | "lg";
218
224
  interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
219
- variant?: "primary" | "secondary" | "outline" | "ghost";
220
- size?: "sm" | "md" | "lg";
225
+ variant?: ButtonVariant;
226
+ size?: ButtonSize;
221
227
  loading?: boolean;
222
228
  leftSection?: ReactNode;
223
229
  rightSection?: ReactNode;
@@ -707,6 +713,20 @@ interface DatePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, "defaultV
707
713
  }
708
714
  declare function DatePicker({ type, value, defaultValue, onChange, size, placeholder, rangeSeparator, locale, firstDayOfWeek, minDate, maxDate, disabled, error, clearable, name, dateFormat, className, ...props }: DatePickerProps): react.JSX.Element;
709
715
 
716
+ type ImageFit = "contain" | "cover" | "fill" | "none" | "scale-down";
717
+ interface ImageProps extends ImgHTMLAttributes<HTMLImageElement> {
718
+ radius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
719
+ fit?: ImageFit;
720
+ fallback?: string;
721
+ }
722
+ declare const Image: react.ForwardRefExoticComponent<ImageProps & react.RefAttributes<HTMLImageElement>>;
723
+
724
+ interface HighlightProps extends HTMLAttributes<HTMLSpanElement> {
725
+ children: ReactNode;
726
+ color?: "primary" | "success" | "warning";
727
+ }
728
+ declare function Highlight({ children, color, className, ...props }: HighlightProps): react.JSX.Element;
729
+
710
730
  type ClickOutsideEvent = "mousedown" | "touchstart" | "pointerdown";
711
731
  interface UseClickOutsideOptions {
712
732
  enabled?: boolean;
@@ -786,4 +806,4 @@ interface TitleProps extends HTMLAttributes<HTMLHeadingElement> {
786
806
  }
787
807
  declare function Title({ order, size, weight, color, leftSection, rightSection, className, children, ...props }: TitleProps): react.JSX.Element;
788
808
 
789
- export { Accordion, type AccordionChevronPosition, type AccordionControlProps, type AccordionItemProps, type AccordionPanelProps, type AccordionProps, type AccordionSize, type AccordionType, type AccordionValue, type AccordionVariant, Alert, type AlertProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, Badge, type BadgeProps, Button, Card, type CardProps, Checkbox, type CheckboxProps, type ClassValue, DatePicker, type DatePickerProps, type DatePickerSize, type DatePickerType, type DatePickerValue, type DateRangeValue, Divider, type DividerProps, Drawer, type DrawerPosition, type DrawerProps, type DrawerSize, FileInput, type FileInputProps, type FileInputSize, Group, type GroupProps, Icon, IconButton, type IconButtonProps, type IconProps, Input, type InputProps, type MainbaseColorScheme, type MainbaseColors, type MainbaseComponentDefaults, MainbasePortalContext, MainbaseProvider, type MainbaseProviderProps, type MainbaseRadii, type MainbaseShadows, type MainbaseSpacing, type MainbaseTheme, type MainbaseThemeOverride, type MainbaseTransitions, type MainbaseTypography, type MainbaseZIndex, Menu, type MenuDividerProps, type MenuDropdownProps, type MenuItemProps, type MenuLabelProps, type MenuPosition, type MenuProps, type MenuTargetProps, type MenuWidth, Modal, type ModalProps, Pagination, type PaginationProps, type PaginationSize, type PaginationVariant, PasswordInput, type PasswordInputProps, type PasswordInputSize, PinInput, type PinInputProps, type PinInputSize, type PinInputType, Popover, type PopoverDropdownProps, type PopoverPosition, type PopoverProps, type PopoverTargetProps, Portal, type PortalProps, Progress, type ProgressProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, Stack, type StackProps, Switch, type SwitchProps, Tabs, TabsList, type TabsListProps, type TabsOrientation, TabsPanel, type TabsPanelProps, type TabsProps, type TabsSize, TabsTab, type TabsTabProps, type TabsVariant, Text, type TextProps, Textarea, type TextareaProps, Title, type TitleProps, type ToastApi, type ToastItem, type ToastOptions, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastShortcutInput, type ToastVariant, Tooltip, type TooltipPosition, type TooltipProps, type UseClickOutsideOptions, type UseControllableStateOptions, type UseDisclosureHandlers, type UseDisclosureReturn, cx, defaultMainbaseTheme, useClickOutside, useComponentDefaults, useControllableState, useDisclosure, useLockScroll, useMainbaseTheme, useToast };
809
+ export { Accordion, type AccordionChevronPosition, type AccordionControlProps, type AccordionItemProps, type AccordionPanelProps, type AccordionProps, type AccordionSize, type AccordionType, type AccordionValue, type AccordionVariant, Alert, type AlertProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, Badge, type BadgeProps, Button, Card, type CardProps, Checkbox, type CheckboxProps, type ClassValue, DatePicker, type DatePickerProps, type DatePickerSize, type DatePickerType, type DatePickerValue, type DateRangeValue, Divider, type DividerProps, Drawer, type DrawerPosition, type DrawerProps, type DrawerSize, FileInput, type FileInputProps, type FileInputSize, Group, type GroupProps, Highlight, type HighlightProps, Icon, IconButton, type IconButtonProps, type IconProps, Image, type ImageFit, type ImageProps, Input, type InputProps, type MainbaseColorScheme, type MainbaseColors, type MainbaseComponentDefaults, MainbasePortalContext, MainbaseProvider, type MainbaseProviderProps, type MainbaseRadii, type MainbaseShadows, type MainbaseSpacing, type MainbaseTheme, type MainbaseThemeOverride, type MainbaseTransitions, type MainbaseTypography, type MainbaseZIndex, Menu, type MenuDividerProps, type MenuDropdownProps, type MenuItemProps, type MenuLabelProps, type MenuPosition, type MenuProps, type MenuTargetProps, type MenuWidth, Modal, type ModalProps, Pagination, type PaginationProps, type PaginationSize, type PaginationVariant, PasswordInput, type PasswordInputProps, type PasswordInputSize, PinInput, type PinInputProps, type PinInputSize, type PinInputType, Popover, type PopoverDropdownProps, type PopoverPosition, type PopoverProps, type PopoverTargetProps, Portal, type PortalProps, Progress, type ProgressProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, Stack, type StackProps, Switch, type SwitchProps, Tabs, TabsList, type TabsListProps, type TabsOrientation, TabsPanel, type TabsPanelProps, type TabsProps, type TabsSize, TabsTab, type TabsTabProps, type TabsVariant, Text, type TextProps, Textarea, type TextareaProps, Title, type TitleProps, type ToastApi, type ToastItem, type ToastOptions, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastShortcutInput, type ToastVariant, Tooltip, type TooltipPosition, type TooltipProps, type UseClickOutsideOptions, type UseControllableStateOptions, type UseDisclosureHandlers, type UseDisclosureReturn, cx, defaultMainbaseTheme, useClickOutside, useComponentDefaults, useControllableState, useDisclosure, useLockScroll, useMainbaseTheme, useToast };
package/dist/index.d.ts CHANGED
@@ -156,6 +156,10 @@ interface MainbaseComponentDefaults {
156
156
  firstDayOfWeek?: 0 | 1;
157
157
  clearable?: boolean;
158
158
  };
159
+ Image?: {
160
+ radius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
161
+ fit?: "contain" | "cover" | "fill" | "none" | "scale-down";
162
+ };
159
163
  }
160
164
  interface MainbaseTheme {
161
165
  colorScheme: MainbaseColorScheme;
@@ -215,9 +219,11 @@ interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {
215
219
  }
216
220
  declare function Badge({ variant, size, leftSection, rightSection, className, children, ...props }: BadgeProps): react.JSX.Element;
217
221
 
222
+ type ButtonVariant = "primary" | "secondary" | "outline" | "ghost" | "danger";
223
+ type ButtonSize = "sm" | "md" | "lg";
218
224
  interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
219
- variant?: "primary" | "secondary" | "outline" | "ghost";
220
- size?: "sm" | "md" | "lg";
225
+ variant?: ButtonVariant;
226
+ size?: ButtonSize;
221
227
  loading?: boolean;
222
228
  leftSection?: ReactNode;
223
229
  rightSection?: ReactNode;
@@ -707,6 +713,20 @@ interface DatePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, "defaultV
707
713
  }
708
714
  declare function DatePicker({ type, value, defaultValue, onChange, size, placeholder, rangeSeparator, locale, firstDayOfWeek, minDate, maxDate, disabled, error, clearable, name, dateFormat, className, ...props }: DatePickerProps): react.JSX.Element;
709
715
 
716
+ type ImageFit = "contain" | "cover" | "fill" | "none" | "scale-down";
717
+ interface ImageProps extends ImgHTMLAttributes<HTMLImageElement> {
718
+ radius?: "none" | "sm" | "md" | "lg" | "xl" | "full";
719
+ fit?: ImageFit;
720
+ fallback?: string;
721
+ }
722
+ declare const Image: react.ForwardRefExoticComponent<ImageProps & react.RefAttributes<HTMLImageElement>>;
723
+
724
+ interface HighlightProps extends HTMLAttributes<HTMLSpanElement> {
725
+ children: ReactNode;
726
+ color?: "primary" | "success" | "warning";
727
+ }
728
+ declare function Highlight({ children, color, className, ...props }: HighlightProps): react.JSX.Element;
729
+
710
730
  type ClickOutsideEvent = "mousedown" | "touchstart" | "pointerdown";
711
731
  interface UseClickOutsideOptions {
712
732
  enabled?: boolean;
@@ -786,4 +806,4 @@ interface TitleProps extends HTMLAttributes<HTMLHeadingElement> {
786
806
  }
787
807
  declare function Title({ order, size, weight, color, leftSection, rightSection, className, children, ...props }: TitleProps): react.JSX.Element;
788
808
 
789
- export { Accordion, type AccordionChevronPosition, type AccordionControlProps, type AccordionItemProps, type AccordionPanelProps, type AccordionProps, type AccordionSize, type AccordionType, type AccordionValue, type AccordionVariant, Alert, type AlertProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, Badge, type BadgeProps, Button, Card, type CardProps, Checkbox, type CheckboxProps, type ClassValue, DatePicker, type DatePickerProps, type DatePickerSize, type DatePickerType, type DatePickerValue, type DateRangeValue, Divider, type DividerProps, Drawer, type DrawerPosition, type DrawerProps, type DrawerSize, FileInput, type FileInputProps, type FileInputSize, Group, type GroupProps, Icon, IconButton, type IconButtonProps, type IconProps, Input, type InputProps, type MainbaseColorScheme, type MainbaseColors, type MainbaseComponentDefaults, MainbasePortalContext, MainbaseProvider, type MainbaseProviderProps, type MainbaseRadii, type MainbaseShadows, type MainbaseSpacing, type MainbaseTheme, type MainbaseThemeOverride, type MainbaseTransitions, type MainbaseTypography, type MainbaseZIndex, Menu, type MenuDividerProps, type MenuDropdownProps, type MenuItemProps, type MenuLabelProps, type MenuPosition, type MenuProps, type MenuTargetProps, type MenuWidth, Modal, type ModalProps, Pagination, type PaginationProps, type PaginationSize, type PaginationVariant, PasswordInput, type PasswordInputProps, type PasswordInputSize, PinInput, type PinInputProps, type PinInputSize, type PinInputType, Popover, type PopoverDropdownProps, type PopoverPosition, type PopoverProps, type PopoverTargetProps, Portal, type PortalProps, Progress, type ProgressProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, Stack, type StackProps, Switch, type SwitchProps, Tabs, TabsList, type TabsListProps, type TabsOrientation, TabsPanel, type TabsPanelProps, type TabsProps, type TabsSize, TabsTab, type TabsTabProps, type TabsVariant, Text, type TextProps, Textarea, type TextareaProps, Title, type TitleProps, type ToastApi, type ToastItem, type ToastOptions, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastShortcutInput, type ToastVariant, Tooltip, type TooltipPosition, type TooltipProps, type UseClickOutsideOptions, type UseControllableStateOptions, type UseDisclosureHandlers, type UseDisclosureReturn, cx, defaultMainbaseTheme, useClickOutside, useComponentDefaults, useControllableState, useDisclosure, useLockScroll, useMainbaseTheme, useToast };
809
+ export { Accordion, type AccordionChevronPosition, type AccordionControlProps, type AccordionItemProps, type AccordionPanelProps, type AccordionProps, type AccordionSize, type AccordionType, type AccordionValue, type AccordionVariant, Alert, type AlertProps, Avatar, AvatarGroup, type AvatarGroupProps, type AvatarProps, Badge, type BadgeProps, Button, Card, type CardProps, Checkbox, type CheckboxProps, type ClassValue, DatePicker, type DatePickerProps, type DatePickerSize, type DatePickerType, type DatePickerValue, type DateRangeValue, Divider, type DividerProps, Drawer, type DrawerPosition, type DrawerProps, type DrawerSize, FileInput, type FileInputProps, type FileInputSize, Group, type GroupProps, Highlight, type HighlightProps, Icon, IconButton, type IconButtonProps, type IconProps, Image, type ImageFit, type ImageProps, Input, type InputProps, type MainbaseColorScheme, type MainbaseColors, type MainbaseComponentDefaults, MainbasePortalContext, MainbaseProvider, type MainbaseProviderProps, type MainbaseRadii, type MainbaseShadows, type MainbaseSpacing, type MainbaseTheme, type MainbaseThemeOverride, type MainbaseTransitions, type MainbaseTypography, type MainbaseZIndex, Menu, type MenuDividerProps, type MenuDropdownProps, type MenuItemProps, type MenuLabelProps, type MenuPosition, type MenuProps, type MenuTargetProps, type MenuWidth, Modal, type ModalProps, Pagination, type PaginationProps, type PaginationSize, type PaginationVariant, PasswordInput, type PasswordInputProps, type PasswordInputSize, PinInput, type PinInputProps, type PinInputSize, type PinInputType, Popover, type PopoverDropdownProps, type PopoverPosition, type PopoverProps, type PopoverTargetProps, Portal, type PortalProps, Progress, type ProgressProps, Radio, RadioGroup, type RadioGroupProps, type RadioProps, Select, type SelectOption, type SelectProps, Skeleton, type SkeletonProps, Spinner, type SpinnerProps, Stack, type StackProps, Switch, type SwitchProps, Tabs, TabsList, type TabsListProps, type TabsOrientation, TabsPanel, type TabsPanelProps, type TabsProps, type TabsSize, TabsTab, type TabsTabProps, type TabsVariant, Text, type TextProps, Textarea, type TextareaProps, Title, type TitleProps, type ToastApi, type ToastItem, type ToastOptions, type ToastPosition, ToastProvider, type ToastProviderProps, type ToastShortcutInput, type ToastVariant, Tooltip, type TooltipPosition, type TooltipProps, type UseClickOutsideOptions, type UseControllableStateOptions, type UseDisclosureHandlers, type UseDisclosureReturn, cx, defaultMainbaseTheme, useClickOutside, useComponentDefaults, useControllableState, useDisclosure, useLockScroll, useMainbaseTheme, useToast };
package/dist/index.js CHANGED
@@ -166,6 +166,10 @@ var defaultMainbaseTheme = {
166
166
  size: "md",
167
167
  firstDayOfWeek: 1,
168
168
  clearable: true
169
+ },
170
+ Image: {
171
+ radius: "md",
172
+ fit: "cover"
169
173
  }
170
174
  }
171
175
  };
@@ -362,6 +366,10 @@ function mergeTheme(parentTheme, override) {
362
366
  DatePicker: {
363
367
  ...parentTheme.components.DatePicker,
364
368
  ...override.components?.DatePicker
369
+ },
370
+ Image: {
371
+ ...parentTheme.components.Image,
372
+ ...override.components?.Image
365
373
  }
366
374
  }
367
375
  };
@@ -567,6 +575,11 @@ import {
567
575
  forwardRef
568
576
  } from "react";
569
577
 
578
+ // src/utils/cx.ts
579
+ function cx(...classes) {
580
+ return classes.filter((value) => Boolean(value)).join(" ");
581
+ }
582
+
570
583
  // src/components/Spinner/Spinner.tsx
571
584
  import { jsx as jsx5 } from "react/jsx-runtime";
572
585
  function Spinner({
@@ -612,42 +625,52 @@ var Button = forwardRef(function Button2({
612
625
  type = "button",
613
626
  ...props
614
627
  }, ref) {
615
- const defaults = useComponentDefaults("Button");
628
+ const defaults = useComponentDefaults(
629
+ "Button"
630
+ );
616
631
  const resolvedVariant = variant ?? defaults.variant ?? "primary";
617
632
  const resolvedSize = size ?? defaults.size ?? "md";
618
- const classes = [
619
- "mb-button",
620
- `mb-button--${resolvedVariant}`,
621
- `mb-button--${resolvedSize}`,
622
- className
623
- ].filter(Boolean).join(" ");
624
- const iconSize = {
625
- sm: 16,
626
- md: 18,
627
- lg: 20
628
- }[resolvedSize];
629
633
  return /* @__PURE__ */ jsxs4(
630
634
  "button",
631
635
  {
632
636
  ref,
633
637
  type,
634
- className: classes,
638
+ className: cx(
639
+ "mb-button",
640
+ `mb-button--${resolvedVariant}`,
641
+ `mb-button--${resolvedSize}`,
642
+ loading ? "mb-button--loading" : void 0,
643
+ className
644
+ ),
635
645
  disabled: disabled || loading,
636
- "aria-busy": loading || void 0,
637
646
  ...props,
638
647
  children: [
639
648
  loading ? /* @__PURE__ */ jsx6(
640
649
  Spinner,
641
650
  {
642
- size: 14,
643
- thickness: 2,
644
- color: "currentColor",
645
- trackColor: "transparent",
646
- "aria-hidden": "true"
651
+ size: 16
652
+ }
653
+ ) : leftSection && /* @__PURE__ */ jsx6(
654
+ "span",
655
+ {
656
+ className: "mb-button__icon",
657
+ children: /* @__PURE__ */ jsx6(Icon, { size: 18, children: leftSection })
658
+ }
659
+ ),
660
+ /* @__PURE__ */ jsx6(
661
+ "span",
662
+ {
663
+ className: "mb-button__label",
664
+ children
665
+ }
666
+ ),
667
+ rightSection && !loading ? /* @__PURE__ */ jsx6(
668
+ "span",
669
+ {
670
+ className: "mb-button__icon",
671
+ children: /* @__PURE__ */ jsx6(Icon, { size: 18, children: rightSection })
647
672
  }
648
- ) : leftSection != null ? /* @__PURE__ */ jsx6(Icon, { size: iconSize, children: leftSection }) : null,
649
- /* @__PURE__ */ jsx6("span", { className: "mb-button__content", children }),
650
- !loading && rightSection != null ? /* @__PURE__ */ jsx6(Icon, { size: iconSize, children: rightSection }) : null
673
+ ) : null
651
674
  ]
652
675
  }
653
676
  );
@@ -882,11 +905,6 @@ function useLockScroll(locked = true) {
882
905
  }, [locked]);
883
906
  }
884
907
 
885
- // src/utils/cx.ts
886
- function cx(...classes) {
887
- return classes.filter((value) => Boolean(value)).join(" ");
888
- }
889
-
890
908
  // src/components/Portal/Portal.tsx
891
909
  import {
892
910
  useContext as useContext3,
@@ -6204,8 +6222,82 @@ function DatePicker({
6204
6222
  );
6205
6223
  }
6206
6224
 
6225
+ // src/components/Image/Image.tsx
6226
+ import {
6227
+ forwardRef as forwardRef6,
6228
+ useState as useState13
6229
+ } from "react";
6230
+ import { jsx as jsx33 } from "react/jsx-runtime";
6231
+ var Image = forwardRef6(function Image2({
6232
+ radius,
6233
+ fit,
6234
+ fallback,
6235
+ className = "",
6236
+ src,
6237
+ onError,
6238
+ ...props
6239
+ }, ref) {
6240
+ const defaults = useComponentDefaults(
6241
+ "Image"
6242
+ );
6243
+ const [
6244
+ currentSrc,
6245
+ setCurrentSrc
6246
+ ] = useState13(
6247
+ src
6248
+ );
6249
+ const resolvedRadius = radius ?? defaults.radius ?? "md";
6250
+ const resolvedFit = fit ?? defaults.fit ?? "cover";
6251
+ return /* @__PURE__ */ jsx33(
6252
+ "img",
6253
+ {
6254
+ ref,
6255
+ src: currentSrc,
6256
+ className: cx(
6257
+ "mb-image",
6258
+ `mb-image--${resolvedRadius}`,
6259
+ `mb-image--${resolvedFit}`,
6260
+ className
6261
+ ),
6262
+ onError: (event) => {
6263
+ if (fallback && currentSrc !== fallback) {
6264
+ setCurrentSrc(
6265
+ fallback
6266
+ );
6267
+ }
6268
+ onError?.(
6269
+ event
6270
+ );
6271
+ },
6272
+ ...props
6273
+ }
6274
+ );
6275
+ });
6276
+
6277
+ // src/components/Highlight/Highlight.tsx
6278
+ import { jsx as jsx34 } from "react/jsx-runtime";
6279
+ function Highlight({
6280
+ children,
6281
+ color = "primary",
6282
+ className = "",
6283
+ ...props
6284
+ }) {
6285
+ return /* @__PURE__ */ jsx34(
6286
+ "span",
6287
+ {
6288
+ className: cx(
6289
+ "mb-highlight",
6290
+ `mb-highlight--${color}`,
6291
+ className
6292
+ ),
6293
+ ...props,
6294
+ children
6295
+ }
6296
+ );
6297
+ }
6298
+
6207
6299
  // src/components/Card/Card.tsx
6208
- import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
6300
+ import { jsx as jsx35, jsxs as jsxs27 } from "react/jsx-runtime";
6209
6301
  function Card({
6210
6302
  padding,
6211
6303
  radius,
@@ -6233,9 +6325,9 @@ function Card({
6233
6325
  className: classes,
6234
6326
  ...props,
6235
6327
  children: [
6236
- header != null ? /* @__PURE__ */ jsx33("div", { className: "mb-card__header", children: header }) : null,
6237
- /* @__PURE__ */ jsx33("div", { className: "mb-card__content", children }),
6238
- footer != null ? /* @__PURE__ */ jsx33("div", { className: "mb-card__footer", children: footer }) : null
6328
+ header != null ? /* @__PURE__ */ jsx35("div", { className: "mb-card__header", children: header }) : null,
6329
+ /* @__PURE__ */ jsx35("div", { className: "mb-card__content", children }),
6330
+ footer != null ? /* @__PURE__ */ jsx35("div", { className: "mb-card__footer", children: footer }) : null
6239
6331
  ]
6240
6332
  }
6241
6333
  );
@@ -6243,10 +6335,10 @@ function Card({
6243
6335
 
6244
6336
  // src/components/IconButton/IconButton.tsx
6245
6337
  import {
6246
- forwardRef as forwardRef6
6338
+ forwardRef as forwardRef7
6247
6339
  } from "react";
6248
- import { jsx as jsx34 } from "react/jsx-runtime";
6249
- var IconButton = forwardRef6(function IconButton2({
6340
+ import { jsx as jsx36 } from "react/jsx-runtime";
6341
+ var IconButton = forwardRef7(function IconButton2({
6250
6342
  icon,
6251
6343
  label,
6252
6344
  variant,
@@ -6271,7 +6363,7 @@ var IconButton = forwardRef6(function IconButton2({
6271
6363
  md: 18,
6272
6364
  lg: 20
6273
6365
  }[resolvedSize];
6274
- return /* @__PURE__ */ jsx34(
6366
+ return /* @__PURE__ */ jsx36(
6275
6367
  "button",
6276
6368
  {
6277
6369
  ref,
@@ -6281,7 +6373,7 @@ var IconButton = forwardRef6(function IconButton2({
6281
6373
  "aria-label": label,
6282
6374
  "aria-busy": loading || void 0,
6283
6375
  ...props,
6284
- children: loading ? /* @__PURE__ */ jsx34(
6376
+ children: loading ? /* @__PURE__ */ jsx36(
6285
6377
  Spinner,
6286
6378
  {
6287
6379
  size: 14,
@@ -6290,13 +6382,13 @@ var IconButton = forwardRef6(function IconButton2({
6290
6382
  trackColor: "transparent",
6291
6383
  "aria-hidden": "true"
6292
6384
  }
6293
- ) : /* @__PURE__ */ jsx34(Icon, { size: iconSize, children: icon })
6385
+ ) : /* @__PURE__ */ jsx36(Icon, { size: iconSize, children: icon })
6294
6386
  }
6295
6387
  );
6296
6388
  });
6297
6389
 
6298
6390
  // src/components/Input/Input.tsx
6299
- import { jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
6391
+ import { jsx as jsx37, jsxs as jsxs28 } from "react/jsx-runtime";
6300
6392
  function Input({
6301
6393
  leftSection,
6302
6394
  rightSection,
@@ -6314,8 +6406,8 @@ function Input({
6314
6406
  className
6315
6407
  ].filter(Boolean).join(" ");
6316
6408
  return /* @__PURE__ */ jsxs28("div", { className: classes, children: [
6317
- leftSection ? /* @__PURE__ */ jsx35("span", { className: "mb-input__section mb-input__section--left", children: /* @__PURE__ */ jsx35(Icon, { size: 18, children: leftSection }) }) : null,
6318
- /* @__PURE__ */ jsx35(
6409
+ leftSection ? /* @__PURE__ */ jsx37("span", { className: "mb-input__section mb-input__section--left", children: /* @__PURE__ */ jsx37(Icon, { size: 18, children: leftSection }) }) : null,
6410
+ /* @__PURE__ */ jsx37(
6319
6411
  "input",
6320
6412
  {
6321
6413
  className: "mb-input__control",
@@ -6324,17 +6416,17 @@ function Input({
6324
6416
  ...props
6325
6417
  }
6326
6418
  ),
6327
- rightSection ? /* @__PURE__ */ jsx35("span", { className: "mb-input__section mb-input__section--right", children: /* @__PURE__ */ jsx35(Icon, { size: 18, children: rightSection }) }) : null
6419
+ rightSection ? /* @__PURE__ */ jsx37("span", { className: "mb-input__section mb-input__section--right", children: /* @__PURE__ */ jsx37(Icon, { size: 18, children: rightSection }) }) : null
6328
6420
  ] });
6329
6421
  }
6330
6422
 
6331
6423
  // src/components/Textarea/Textarea.tsx
6332
- import { jsx as jsx36 } from "react/jsx-runtime";
6424
+ import { jsx as jsx38 } from "react/jsx-runtime";
6333
6425
  function Textarea({
6334
6426
  className = "",
6335
6427
  ...props
6336
6428
  }) {
6337
- return /* @__PURE__ */ jsx36(
6429
+ return /* @__PURE__ */ jsx38(
6338
6430
  "textarea",
6339
6431
  {
6340
6432
  className: `mb-textarea ${className}`,
@@ -6344,7 +6436,7 @@ function Textarea({
6344
6436
  }
6345
6437
 
6346
6438
  // src/components/Text/Text.tsx
6347
- import { jsx as jsx37, jsxs as jsxs29 } from "react/jsx-runtime";
6439
+ import { jsx as jsx39, jsxs as jsxs29 } from "react/jsx-runtime";
6348
6440
  function Text({
6349
6441
  as: Component = "p",
6350
6442
  size,
@@ -6379,16 +6471,16 @@ function Text({
6379
6471
  className: classes,
6380
6472
  ...props,
6381
6473
  children: [
6382
- leftSection != null ? /* @__PURE__ */ jsx37(Icon, { size: iconSize, children: leftSection }) : null,
6383
- /* @__PURE__ */ jsx37("span", { className: "mb-text__content", children }),
6384
- rightSection != null ? /* @__PURE__ */ jsx37(Icon, { size: iconSize, children: rightSection }) : null
6474
+ leftSection != null ? /* @__PURE__ */ jsx39(Icon, { size: iconSize, children: leftSection }) : null,
6475
+ /* @__PURE__ */ jsx39("span", { className: "mb-text__content", children }),
6476
+ rightSection != null ? /* @__PURE__ */ jsx39(Icon, { size: iconSize, children: rightSection }) : null
6385
6477
  ]
6386
6478
  }
6387
6479
  );
6388
6480
  }
6389
6481
 
6390
6482
  // src/components/Title/Title.tsx
6391
- import { jsx as jsx38, jsxs as jsxs30 } from "react/jsx-runtime";
6483
+ import { jsx as jsx40, jsxs as jsxs30 } from "react/jsx-runtime";
6392
6484
  function Title({
6393
6485
  order,
6394
6486
  size,
@@ -6432,9 +6524,9 @@ function Title({
6432
6524
  className: classes,
6433
6525
  ...props,
6434
6526
  children: [
6435
- leftSection != null ? /* @__PURE__ */ jsx38(Icon, { size: iconSize, children: leftSection }) : null,
6436
- /* @__PURE__ */ jsx38("span", { className: "mb-title__content", children }),
6437
- rightSection != null ? /* @__PURE__ */ jsx38(Icon, { size: iconSize, children: rightSection }) : null
6527
+ leftSection != null ? /* @__PURE__ */ jsx40(Icon, { size: iconSize, children: leftSection }) : null,
6528
+ /* @__PURE__ */ jsx40("span", { className: "mb-title__content", children }),
6529
+ rightSection != null ? /* @__PURE__ */ jsx40(Icon, { size: iconSize, children: rightSection }) : null
6438
6530
  ]
6439
6531
  }
6440
6532
  );
@@ -6453,8 +6545,10 @@ export {
6453
6545
  Drawer,
6454
6546
  FileInput,
6455
6547
  Group,
6548
+ Highlight,
6456
6549
  Icon,
6457
6550
  IconButton,
6551
+ Image,
6458
6552
  Input,
6459
6553
  MainbasePortalContext,
6460
6554
  MainbaseProvider,