lecom-ui 5.4.10 → 5.4.11

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.
@@ -0,0 +1,99 @@
1
+ import * as React from 'react';
2
+ import { ReactSVG } from 'react-svg';
3
+ import { cn } from '../../lib/utils.js';
4
+
5
+ const isUrl = (str) => {
6
+ try {
7
+ new URL(str);
8
+ return true;
9
+ } catch {
10
+ return false;
11
+ }
12
+ };
13
+ const isImage = (str) => {
14
+ return /\.(svg|png|jpg|jpeg|gif|webp)$/i.test(str);
15
+ };
16
+ const IconHandler = React.forwardRef(
17
+ ({
18
+ icon,
19
+ colorType = "color",
20
+ variantsColors,
21
+ className,
22
+ setAttribute,
23
+ style = {},
24
+ ...props
25
+ }, ref) => {
26
+ if (typeof icon === "string") {
27
+ if (isUrl(icon)) {
28
+ return /* @__PURE__ */ React.createElement(
29
+ "img",
30
+ {
31
+ src: icon,
32
+ alt: "\xCDcone",
33
+ className: cn("w-[24px] h-[24px]", className),
34
+ style: {
35
+ ...style,
36
+ ...variantsColors && {
37
+ color: variantsColors
38
+ }
39
+ }
40
+ }
41
+ );
42
+ } else if (isImage(icon)) {
43
+ return /* @__PURE__ */ React.createElement(
44
+ ReactSVG,
45
+ {
46
+ src: icon,
47
+ className: cn("w-[24px] h-[24px]", className),
48
+ beforeInjection: (svg) => {
49
+ if (variantsColors && setAttribute) {
50
+ svg.setAttribute(
51
+ "style",
52
+ `fill: ${variantsColors}${setAttribute ? `; ${setAttribute}` : ""}`
53
+ );
54
+ } else if (setAttribute) {
55
+ svg.setAttribute("style", `${setAttribute}`);
56
+ } else if (variantsColors) {
57
+ svg.setAttribute("style", `fill: ${variantsColors}`);
58
+ }
59
+ },
60
+ style
61
+ }
62
+ );
63
+ } else {
64
+ return /* @__PURE__ */ React.createElement(
65
+ "span",
66
+ {
67
+ className: cn("flex items-center w-auto h-[24px]", className),
68
+ style: {
69
+ ...style,
70
+ ...variantsColors && {
71
+ color: variantsColors
72
+ }
73
+ }
74
+ },
75
+ icon
76
+ );
77
+ }
78
+ } else {
79
+ const IconComponent = icon;
80
+ const setColor = colorType === "color" ? { color: variantsColors } : {};
81
+ return /* @__PURE__ */ React.createElement(
82
+ IconComponent,
83
+ {
84
+ ref,
85
+ fill: colorType === "fill" ? variantsColors : "none",
86
+ className: cn("hover:bg-transparent", className),
87
+ style: {
88
+ ...style,
89
+ ...variantsColors && setColor
90
+ },
91
+ ...props
92
+ }
93
+ );
94
+ }
95
+ }
96
+ );
97
+ IconHandler.displayName = "IconHandler";
98
+
99
+ export { IconHandler };
@@ -3,7 +3,7 @@ import { cn } from '../../lib/utils.js';
3
3
  import { cva } from 'class-variance-authority';
4
4
 
5
5
  const inputVariants = cva(
6
- `flex h-8 w-full rounded-sm border border-grey-400 bg-background px-3 py-2
6
+ `flex w-full rounded-sm border border-grey-400 bg-background px-3 py-2
7
7
  placeholder:text-grey-500 outline-none
8
8
  hover:border-grey-500 focus:bg-background focus:border-grey-400 focus:ring-grey-600 focus:ring-opacity-15 focus:ring-4
9
9
  disabled:cursor-not-allowed disabled:bg-grey-100 disabled:border-grey-400
@@ -16,7 +16,7 @@ const inputVariants = cva(
16
16
  borderless: "border-none bg-transparent focus:bg-transparent focus:ring-0"
17
17
  },
18
18
  size: {
19
- small: "h-8 body-small-400 px-3 py-0 placeholder:body-small-400",
19
+ small: "h-8 body-small-400 px-4 py-1 placeholder:body-small-400",
20
20
  default: "h-10 body-medium-400 px-3 py-2 placeholder:body-medium-400",
21
21
  large: "h-12 body-large-400 px-3 py-2 placeholder:body-large-400"
22
22
  },
@@ -56,7 +56,8 @@ const MultiSelect = React.forwardRef(
56
56
  allowTypoDistance = 0,
57
57
  groupedOptions,
58
58
  classNameContent,
59
- size = "medium"
59
+ size = "medium",
60
+ disabled = false
60
61
  }, ref) => {
61
62
  const { t } = useTranslation();
62
63
  const [selectedValues, setSelectedValues] = React.useState(value);
@@ -514,9 +515,11 @@ const MultiSelect = React.forwardRef(
514
515
  transition-all duration-300 outline-none
515
516
  [&_svg]:pointer-events-auto`,
516
517
  maxCount === void 0 && TRIGGER_HEIGHT_CLASSES[size],
518
+ disabled && "opacity-50 cursor-not-allowed pointer-events-none",
517
519
  className
518
520
  ),
519
- "aria-expanded": isPopoverOpen
521
+ "aria-expanded": isPopoverOpen,
522
+ disabled
520
523
  },
521
524
  selectedValues.length > 0 ? /* @__PURE__ */ React.createElement("div", { className: "flex justify-between items-center w-full" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-wrap items-center gap-1" }, selectedValues.slice(0, dynamicMaxCount).map((value2) => {
522
525
  const selectedOption = options.find((option) => option.value === value2);
@@ -537,7 +540,7 @@ const MultiSelect = React.forwardRef(
537
540
  className: "truncate"
538
541
  },
539
542
  label
540
- )), /* @__PURE__ */ React.createElement(
543
+ )), !disabled && /* @__PURE__ */ React.createElement(
541
544
  X,
542
545
  {
543
546
  className: "h-4 w-4 cursor-pointer flex-shrink-0",
@@ -547,7 +550,7 @@ const MultiSelect = React.forwardRef(
547
550
  }
548
551
  }
549
552
  ));
550
- }), selectedValues.length > dynamicMaxCount && /* @__PURE__ */ React.createElement(Tag, { color: "blue", className: "focus:ring-0" }, /* @__PURE__ */ React.createElement(Typography, { variant: getFontVariant(size), className: "text-blue-600" }, `+ ${selectedValues.length - dynamicMaxCount}`))), /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between" }, /* @__PURE__ */ React.createElement(
553
+ }), selectedValues.length > dynamicMaxCount && /* @__PURE__ */ React.createElement(Tag, { color: "blue", className: "focus:ring-0" }, /* @__PURE__ */ React.createElement(Typography, { variant: getFontVariant(size), className: "text-blue-600" }, `+ ${selectedValues.length - dynamicMaxCount}`))), /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between" }, !disabled && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
551
554
  X,
552
555
  {
553
556
  className: "h-4 w-4 cursor-pointer text-grey-800",
@@ -562,7 +565,7 @@ const MultiSelect = React.forwardRef(
562
565
  orientation: "vertical",
563
566
  className: "flex min-h-4 mx-1 h-full"
564
567
  }
565
- ), isPopoverOpen ? /* @__PURE__ */ React.createElement(ChevronUp, { className: "h-4 w-4 cursor-pointer text-grey-800" }) : /* @__PURE__ */ React.createElement(ChevronDown, { className: "h-4 w-4 cursor-pointer text-grey-800" }))) : /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between w-full mx-auto" }, /* @__PURE__ */ React.createElement(
568
+ )), isPopoverOpen ? /* @__PURE__ */ React.createElement(ChevronUp, { className: "h-4 w-4 cursor-pointer text-grey-800" }) : /* @__PURE__ */ React.createElement(ChevronDown, { className: "h-4 w-4 cursor-pointer text-grey-800" }))) : /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between w-full mx-auto" }, /* @__PURE__ */ React.createElement(
566
569
  Typography,
567
570
  {
568
571
  variant: getFontVariant(size),
@@ -9,7 +9,7 @@ const language = {
9
9
  },
10
10
  pagination: {
11
11
  show: "Show:",
12
- selectedProcess: "selected process"
12
+ selectedProcess: "Item(s) selected"
13
13
  },
14
14
  upload: {
15
15
  label: "Drag and drop the file here or click to select it.",
package/dist/index.d.ts CHANGED
@@ -384,6 +384,7 @@ interface Column<TData, TValue> {
384
384
  headerClassName?: string;
385
385
  headerStyle?: React.CSSProperties;
386
386
  cellClassName?: string;
387
+ showHeaderTooltip?: boolean;
387
388
  customHeaderRender?: ({ table, column, }: ColumnSort<TData, TValue>) => React.ReactNode;
388
389
  render?: (({ value, row }: ColumnRender<TData, TValue>) => React.ReactNode) | React.ReactNode;
389
390
  onSort?: ({ table, column }: ColumnSort<TData, TValue>) => 'asc' | 'desc' | null | void;
@@ -726,6 +727,7 @@ interface SearchInputProps {
726
727
  customStyles: CustomStyles$2;
727
728
  placeholder?: string;
728
729
  isActiveButton?: boolean;
730
+ value?: string;
729
731
  onChangeValue?: (value: string) => void;
730
732
  onClickButton?: () => void;
731
733
  }
@@ -783,9 +785,9 @@ interface HeaderProps extends React$1.HTMLAttributes<HTMLElement>, VariantProps<
783
785
  }
784
786
 
785
787
  declare const inputVariants: (props?: ({
786
- variant?: "filled" | "default" | "borderless" | null | undefined;
787
- size?: "small" | "large" | "default" | null | undefined;
788
- radius?: "small" | "large" | "default" | "full" | null | undefined;
788
+ variant?: "default" | "filled" | "borderless" | null | undefined;
789
+ size?: "default" | "small" | "large" | null | undefined;
790
+ radius?: "default" | "small" | "large" | "full" | null | undefined;
789
791
  } & class_variance_authority_types.ClassProp) | undefined) => string;
790
792
  interface InputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, 'size' | 'sufix' | 'prefix'>, VariantProps<typeof inputVariants> {
791
793
  sufix?: React$1.ReactNode;
@@ -990,7 +992,7 @@ declare const RadioGroup: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimi
990
992
  declare const RadioGroupItem: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
991
993
 
992
994
  declare const ResizablePanelGroup: ({ className, ...props }: React$1.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => React$1.JSX.Element;
993
- declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLElement | HTMLOListElement | HTMLLIElement | HTMLAnchorElement | HTMLSpanElement | HTMLDivElement | HTMLButtonElement | HTMLHeadingElement | HTMLParagraphElement | HTMLLabelElement | HTMLInputElement | HTMLUListElement | HTMLObjectElement | HTMLAreaElement | HTMLAudioElement | HTMLBaseElement | HTMLQuoteElement | HTMLBodyElement | HTMLBRElement | HTMLCanvasElement | HTMLTableCaptionElement | HTMLTableColElement | HTMLDataElement | HTMLDataListElement | HTMLModElement | HTMLDetailsElement | HTMLDialogElement | HTMLDListElement | HTMLEmbedElement | HTMLFieldSetElement | HTMLFormElement | HTMLHeadElement | HTMLHRElement | HTMLHtmlElement | HTMLIFrameElement | HTMLImageElement | HTMLLegendElement | HTMLLinkElement | HTMLMapElement | HTMLMenuElement | HTMLMetaElement | HTMLMeterElement | HTMLOptGroupElement | HTMLOptionElement | HTMLOutputElement | HTMLPictureElement | HTMLPreElement | HTMLProgressElement | HTMLScriptElement | HTMLSelectElement | HTMLSlotElement | HTMLSourceElement | HTMLStyleElement | HTMLTableElement | HTMLTableSectionElement | HTMLTableCellElement | HTMLTemplateElement | HTMLTextAreaElement | HTMLTimeElement | HTMLTitleElement | HTMLTableRowElement | HTMLTrackElement | HTMLVideoElement>, "id" | "onResize"> & {
995
+ declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement | HTMLElement | HTMLButtonElement | HTMLOListElement | HTMLLIElement | HTMLAnchorElement | HTMLSpanElement | HTMLLabelElement | HTMLParagraphElement | HTMLHeadingElement | HTMLInputElement | HTMLUListElement | HTMLObjectElement | HTMLAreaElement | HTMLAudioElement | HTMLBaseElement | HTMLQuoteElement | HTMLBodyElement | HTMLBRElement | HTMLCanvasElement | HTMLTableCaptionElement | HTMLTableColElement | HTMLDataElement | HTMLDataListElement | HTMLModElement | HTMLDetailsElement | HTMLDialogElement | HTMLDListElement | HTMLEmbedElement | HTMLFieldSetElement | HTMLFormElement | HTMLHeadElement | HTMLHRElement | HTMLHtmlElement | HTMLIFrameElement | HTMLImageElement | HTMLLegendElement | HTMLLinkElement | HTMLMapElement | HTMLMenuElement | HTMLMetaElement | HTMLMeterElement | HTMLOptGroupElement | HTMLOptionElement | HTMLOutputElement | HTMLPictureElement | HTMLPreElement | HTMLProgressElement | HTMLScriptElement | HTMLSelectElement | HTMLSlotElement | HTMLSourceElement | HTMLStyleElement | HTMLTableElement | HTMLTableSectionElement | HTMLTableCellElement | HTMLTemplateElement | HTMLTextAreaElement | HTMLTimeElement | HTMLTitleElement | HTMLTableRowElement | HTMLTrackElement | HTMLVideoElement>, "id" | "onResize"> & {
994
996
  className?: string;
995
997
  collapsedSize?: number | undefined;
996
998
  collapsible?: boolean | undefined;
@@ -1156,9 +1158,9 @@ declare const TabsTrigger: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.
1156
1158
  declare const TabsContent: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1157
1159
 
1158
1160
  declare const textareaVariants: (props?: ({
1159
- variant?: "filled" | "default" | "borderless" | null | undefined;
1160
- size?: "small" | "large" | "default" | null | undefined;
1161
- radius?: "small" | "large" | "default" | "full" | null | undefined;
1161
+ variant?: "default" | "filled" | "borderless" | null | undefined;
1162
+ size?: "default" | "small" | "large" | null | undefined;
1163
+ radius?: "default" | "small" | "large" | "full" | null | undefined;
1162
1164
  resize?: "default" | "both" | "horizontal" | "vertical" | "vertical-limited" | null | undefined;
1163
1165
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1164
1166
  interface TextareaProps extends React$1.ComponentProps<'textarea'>, VariantProps<typeof textareaVariants> {
@@ -1298,7 +1300,7 @@ declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.Dial
1298
1300
  declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
1299
1301
  declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1300
1302
  declare const sheetVariants: (props?: ({
1301
- side?: "top" | "right" | "bottom" | "left" | null | undefined;
1303
+ side?: "left" | "right" | "top" | "bottom" | null | undefined;
1302
1304
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1303
1305
  interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
1304
1306
  }
@@ -1342,7 +1344,7 @@ interface DateInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputEleme
1342
1344
  declare const DateInput: React$1.ForwardRefExoticComponent<DateInputProps & React$1.RefAttributes<HTMLInputElement>>;
1343
1345
 
1344
1346
  declare const badgeVariants: (props?: ({
1345
- variant?: "destructive" | "default" | "outline" | "secondary" | null | undefined;
1347
+ variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
1346
1348
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1347
1349
  interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
1348
1350
  }
@@ -1,79 +1,79 @@
1
- const extend = {
2
- colors: {
3
- background: 'hsl(var(--background))',
4
- foreground: 'hsl(var(--foreground))',
5
- card: {
6
- DEFAULT: 'hsl(var(--card))',
7
- foreground: 'hsl(var(--card-foreground))',
8
- },
9
- popover: {
10
- DEFAULT: 'hsl(var(--popover))',
11
- foreground: 'hsl(var(--popover-foreground))',
12
- },
13
- primary: {
14
- DEFAULT: 'hsl(var(--primary))',
15
- foreground: 'hsl(var(--primary-foreground))',
16
- },
17
- secondary: {
18
- DEFAULT: 'hsl(var(--secondary))',
19
- foreground: 'hsl(var(--secondary-foreground))',
20
- },
21
- muted: {
22
- DEFAULT: 'hsl(var(--muted))',
23
- foreground: 'hsl(var(--muted-foreground))',
24
- },
25
- accent: {
26
- DEFAULT: 'hsl(var(--accent))',
27
- foreground: 'hsl(var(--accent-foreground))',
28
- },
29
- destructive: {
30
- DEFAULT: 'hsl(var(--destructive))',
31
- foreground: 'hsl(var(--destructive-foreground))',
32
- },
33
- border: 'hsl(var(--border))',
34
- input: 'hsl(var(--input))',
35
- ring: 'hsl(var(--ring))',
36
- chart: {
37
- 1: 'hsl(var(--chart-1))',
38
- 2: 'hsl(var(--chart-2))',
39
- 3: 'hsl(var(--chart-3))',
40
- 4: 'hsl(var(--chart-4))',
41
- 5: 'hsl(var(--chart-5))',
42
- 6: 'hsl(var(--chart-6))',
43
- 7: 'hsl(var(--chart-7))',
44
- 8: 'hsl(var(--chart-8))',
45
- },
46
- sidebar: {
47
- DEFAULT: 'hsl(var(--sidebar-background))',
48
- foreground: 'hsl(var(--sidebar-foreground))',
49
- primary: 'hsl(var(--sidebar-primary))',
50
- 'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
51
- accent: 'hsl(var(--sidebar-accent))',
52
- 'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
53
- border: 'hsl(var(--sidebar-border))',
54
- ring: 'hsl(var(--sidebar-ring))',
55
- },
56
- },
57
- borderRadius: {
58
- lg: 'var(--radius)',
59
- md: 'calc(var(--radius) - 2px)',
60
- sm: 'calc(var(--radius) - 4px)',
61
- },
62
- keyframes: {
63
- 'accordion-down': {
64
- from: { height: '0' },
65
- to: { height: 'var(--radix-accordion-content-height)' },
66
- },
67
- 'accordion-up': {
68
- from: { height: 'var(--radix-accordion-content-height)' },
69
- to: { height: '0' },
70
- },
71
- },
72
- animation: {
73
- 'accordion-down': 'accordion-down 0.2s ease-out',
74
- 'accordion-up': 'accordion-up 0.2s ease-out',
75
- 'spin-slow': 'spin 2s linear infinite',
76
- },
77
- };
78
-
79
- export { extend };
1
+ const extend = {
2
+ colors: {
3
+ background: 'hsl(var(--background))',
4
+ foreground: 'hsl(var(--foreground))',
5
+ card: {
6
+ DEFAULT: 'hsl(var(--card))',
7
+ foreground: 'hsl(var(--card-foreground))',
8
+ },
9
+ popover: {
10
+ DEFAULT: 'hsl(var(--popover))',
11
+ foreground: 'hsl(var(--popover-foreground))',
12
+ },
13
+ primary: {
14
+ DEFAULT: 'hsl(var(--primary))',
15
+ foreground: 'hsl(var(--primary-foreground))',
16
+ },
17
+ secondary: {
18
+ DEFAULT: 'hsl(var(--secondary))',
19
+ foreground: 'hsl(var(--secondary-foreground))',
20
+ },
21
+ muted: {
22
+ DEFAULT: 'hsl(var(--muted))',
23
+ foreground: 'hsl(var(--muted-foreground))',
24
+ },
25
+ accent: {
26
+ DEFAULT: 'hsl(var(--accent))',
27
+ foreground: 'hsl(var(--accent-foreground))',
28
+ },
29
+ destructive: {
30
+ DEFAULT: 'hsl(var(--destructive))',
31
+ foreground: 'hsl(var(--destructive-foreground))',
32
+ },
33
+ border: 'hsl(var(--border))',
34
+ input: 'hsl(var(--input))',
35
+ ring: 'hsl(var(--ring))',
36
+ chart: {
37
+ 1: 'hsl(var(--chart-1))',
38
+ 2: 'hsl(var(--chart-2))',
39
+ 3: 'hsl(var(--chart-3))',
40
+ 4: 'hsl(var(--chart-4))',
41
+ 5: 'hsl(var(--chart-5))',
42
+ 6: 'hsl(var(--chart-6))',
43
+ 7: 'hsl(var(--chart-7))',
44
+ 8: 'hsl(var(--chart-8))',
45
+ },
46
+ sidebar: {
47
+ DEFAULT: 'hsl(var(--sidebar-background))',
48
+ foreground: 'hsl(var(--sidebar-foreground))',
49
+ primary: 'hsl(var(--sidebar-primary))',
50
+ 'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
51
+ accent: 'hsl(var(--sidebar-accent))',
52
+ 'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
53
+ border: 'hsl(var(--sidebar-border))',
54
+ ring: 'hsl(var(--sidebar-ring))',
55
+ },
56
+ },
57
+ borderRadius: {
58
+ lg: 'var(--radius)',
59
+ md: 'calc(var(--radius) - 2px)',
60
+ sm: 'calc(var(--radius) - 4px)',
61
+ },
62
+ keyframes: {
63
+ 'accordion-down': {
64
+ from: { height: '0' },
65
+ to: { height: 'var(--radix-accordion-content-height)' },
66
+ },
67
+ 'accordion-up': {
68
+ from: { height: 'var(--radix-accordion-content-height)' },
69
+ to: { height: '0' },
70
+ },
71
+ },
72
+ animation: {
73
+ 'accordion-down': 'accordion-down 0.2s ease-out',
74
+ 'accordion-up': 'accordion-up 0.2s ease-out',
75
+ 'spin-slow': 'spin 2s linear infinite',
76
+ },
77
+ };
78
+
79
+ export { extend };