lecom-ui 5.3.33 → 5.3.34

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 +1 @@
1
- lecom-ui
1
+ lecom-ui
@@ -0,0 +1,94 @@
1
+ import * as React from 'react';
2
+ import { cn } from '../../lib/utils.js';
3
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
4
+ import { cva } from 'class-variance-authority';
5
+ import { ChevronRight } from 'lucide-react';
6
+
7
+ const collapseTriggerVariants = cva(
8
+ "flex items-center justify-between w-full transition-all text-left outline-none data-[state=open]:font-semibold",
9
+ {
10
+ variants: {
11
+ size: {
12
+ small: "text-sm py-1.5 px-4 min-h-8",
13
+ medium: "text-base py-2.5 px-4 min-h-10",
14
+ large: "text-lg py-3 px-4 min-h-12"
15
+ },
16
+ ghost: {
17
+ true: "bg-transparent border-none",
18
+ false: "border-t-none border-grey-400"
19
+ }
20
+ },
21
+ defaultVariants: {
22
+ size: "large",
23
+ ghost: false
24
+ }
25
+ }
26
+ );
27
+ const CollapseRoot = AccordionPrimitive.Root;
28
+ const CollapseItem = AccordionPrimitive.Item;
29
+ const CollapsePanel = React.forwardRef(
30
+ ({
31
+ header,
32
+ children,
33
+ extra,
34
+ expandIconPosition = "start",
35
+ size = "large",
36
+ ghost = false,
37
+ disabled = false,
38
+ className,
39
+ ...props
40
+ }, ref) => /* @__PURE__ */ React.createElement(
41
+ CollapseItem,
42
+ {
43
+ ref,
44
+ ...props,
45
+ className: cn(
46
+ "group w-full",
47
+ disabled && "pointer-events-none opacity-50",
48
+ className
49
+ )
50
+ },
51
+ /* @__PURE__ */ React.createElement(AccordionPrimitive.Header, { asChild: true }, /* @__PURE__ */ React.createElement(
52
+ AccordionPrimitive.Trigger,
53
+ {
54
+ disabled,
55
+ className: cn(
56
+ collapseTriggerVariants({ size, ghost }),
57
+ "flex gap-2 items-center text-left font-normal"
58
+ )
59
+ },
60
+ /* @__PURE__ */ React.createElement(
61
+ "div",
62
+ {
63
+ className: cn(
64
+ "flex flex-1 items-center justify-between gap-4 w-full",
65
+ expandIconPosition === "end" ? "flex-row-reverse" : ""
66
+ )
67
+ },
68
+ /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2 truncate" }, /* @__PURE__ */ React.createElement(
69
+ "span",
70
+ {
71
+ className: "flex items-center justify-center flex-shrink-0 min-w-4 min-h-4 transition-transform duration-300 group-data-[state=open]:rotate-90 text-grey-700 text-lg select-none font-normal"
72
+ },
73
+ /* @__PURE__ */ React.createElement(ChevronRight, { className: "size-4" })
74
+ ), /* @__PURE__ */ React.createElement("span", { className: "font-normal" }, header)),
75
+ extra && /* @__PURE__ */ React.createElement("div", { className: "text-sm text-grey-500" }, extra)
76
+ )
77
+ )),
78
+ /* @__PURE__ */ React.createElement(
79
+ AccordionPrimitive.Content,
80
+ {
81
+ className: cn(
82
+ "overflow-hidden data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up"
83
+ )
84
+ },
85
+ /* @__PURE__ */ React.createElement("div", { className: "text-sm text-grey-800 pt-2 pb-4 px-4" }, children)
86
+ )
87
+ )
88
+ );
89
+ CollapsePanel.displayName = "CollapsePanel";
90
+ const Collapse = Object.assign(CollapseRoot, {
91
+ Panel: CollapsePanel
92
+ });
93
+
94
+ export { Collapse, collapseTriggerVariants };
@@ -23,27 +23,8 @@ function TagItem({ item, onRemove, readOnly }) {
23
23
  }
24
24
  ));
25
25
  }
26
- function HiddenCountTag({
27
- count,
28
- onRemoveHidden,
29
- readOnly
30
- }) {
31
- const handleRemove = React.useCallback(
32
- (e) => {
33
- e.stopPropagation();
34
- onRemoveHidden();
35
- },
36
- [onRemoveHidden]
37
- );
38
- return /* @__PURE__ */ React.createElement(Tag, { color: "blue", "data-tag": "true" }, /* @__PURE__ */ React.createElement(Typography, { variant: "body-small-400", className: "text-blue-600" }, "+", count), !readOnly && /* @__PURE__ */ React.createElement(
39
- X,
40
- {
41
- className: "w-4 h-4 cursor-pointer",
42
- onClick: handleRemove,
43
- "aria-label": "Remover tag oculta",
44
- tabIndex: 0
45
- }
46
- ));
26
+ function HiddenCountTag({ count }) {
27
+ return /* @__PURE__ */ React.createElement(Tag, { color: "blue", "data-tag": "true" }, /* @__PURE__ */ React.createElement(Typography, { variant: "body-small-400", className: "text-blue-600" }, "+", count));
47
28
  }
48
29
  function useTagVisibility(ref, value) {
49
30
  const getInitialEstimate = React.useCallback((totalTags) => {
@@ -166,14 +147,6 @@ function TagInput(props) {
166
147
  (valueToRemove) => onRemove(valueToRemove),
167
148
  [onRemove]
168
149
  );
169
- const handleRemoveHidden = React.useCallback(() => {
170
- if (value.length > visibleCount) {
171
- const tagToRemove = value[visibleCount];
172
- if (tagToRemove) {
173
- onRemove(tagToRemove.value);
174
- }
175
- }
176
- }, [value, visibleCount, onRemove]);
177
150
  return /* @__PURE__ */ React.createElement(
178
151
  "div",
179
152
  {
@@ -194,14 +167,7 @@ function TagInput(props) {
194
167
  readOnly
195
168
  }
196
169
  )),
197
- actualHiddenCount > 0 && /* @__PURE__ */ React.createElement(
198
- HiddenCountTag,
199
- {
200
- count: actualHiddenCount,
201
- onRemoveHidden: handleRemoveHidden,
202
- readOnly
203
- }
204
- )
170
+ actualHiddenCount > 0 && /* @__PURE__ */ React.createElement(HiddenCountTag, { count: actualHiddenCount })
205
171
  );
206
172
  }
207
173
 
package/dist/index.d.ts CHANGED
@@ -743,8 +743,8 @@ interface HeaderProps extends React$1.HTMLAttributes<HTMLElement>, VariantProps<
743
743
 
744
744
  declare const inputVariants: (props?: ({
745
745
  variant?: "default" | "filled" | "borderless" | null | undefined;
746
- size?: "small" | "default" | "large" | null | undefined;
747
- radius?: "small" | "default" | "large" | "full" | null | undefined;
746
+ size?: "default" | "small" | "large" | null | undefined;
747
+ radius?: "default" | "small" | "large" | "full" | null | undefined;
748
748
  } & class_variance_authority_types.ClassProp) | undefined) => string;
749
749
  interface InputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, 'size' | 'sufix' | 'prefix'>, VariantProps<typeof inputVariants> {
750
750
  sufix?: React$1.ReactNode;
@@ -914,7 +914,7 @@ declare const RadioGroup: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimi
914
914
  declare const RadioGroupItem: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
915
915
 
916
916
  declare const ResizablePanelGroup: ({ className, ...props }: React$1.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => React$1.JSX.Element;
917
- 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"> & {
917
+ declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement | HTMLElement | HTMLButtonElement | HTMLOListElement | HTMLLIElement | HTMLAnchorElement | HTMLSpanElement | 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"> & {
918
918
  className?: string;
919
919
  collapsedSize?: number | undefined;
920
920
  collapsible?: boolean | undefined;
@@ -1070,9 +1070,9 @@ declare const TabsContent: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.
1070
1070
 
1071
1071
  declare const textareaVariants: (props?: ({
1072
1072
  variant?: "default" | "filled" | "borderless" | null | undefined;
1073
- size?: "small" | "default" | "large" | null | undefined;
1074
- radius?: "small" | "default" | "large" | "full" | null | undefined;
1075
- resize?: "both" | "horizontal" | "vertical" | "default" | "vertical-limited" | null | undefined;
1073
+ size?: "default" | "small" | "large" | null | undefined;
1074
+ radius?: "default" | "small" | "large" | "full" | null | undefined;
1075
+ resize?: "default" | "both" | "horizontal" | "vertical" | "vertical-limited" | null | undefined;
1076
1076
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1077
1077
  interface TextareaProps extends React$1.ComponentProps<'textarea'>, VariantProps<typeof textareaVariants> {
1078
1078
  }
@@ -1148,7 +1148,6 @@ interface TagInputProps extends React$1.HTMLAttributes<HTMLDivElement> {
1148
1148
  className?: string;
1149
1149
  variant?: 'default' | 'filled' | 'borderless';
1150
1150
  radius?: 'default' | 'full';
1151
- /** Maximum tags visible before collapsing into +N */
1152
1151
  maxDisplayCount?: number;
1153
1152
  }
1154
1153
  declare function TagInput(props: TagInputProps): React$1.JSX.Element;
@@ -1201,7 +1200,7 @@ declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.Dial
1201
1200
  declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
1202
1201
  declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1203
1202
  declare const sheetVariants: (props?: ({
1204
- side?: "top" | "bottom" | "left" | "right" | null | undefined;
1203
+ side?: "left" | "right" | "top" | "bottom" | null | undefined;
1205
1204
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1206
1205
  interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
1207
1206
  }
@@ -1,78 +1,78 @@
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
- },
76
- };
77
-
78
- 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
+ },
76
+ };
77
+
78
+ export { extend };