lecom-ui 5.3.27 → 5.3.29

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 };
@@ -17,9 +17,9 @@ function Table({
17
17
  if (elem === "td" && meta.truncate) {
18
18
  return {
19
19
  width: meta.width,
20
+ maxWidth: meta.maxWidth ?? "0",
21
+ minWidth: meta.minWidth ?? "0",
20
22
  overflow: "hidden",
21
- maxWidth: meta.maxWidth || "0",
22
- minWidth: meta.minWidth || "0",
23
23
  textOverflow: "ellipsis",
24
24
  whiteSpace: "nowrap",
25
25
  textAlign: meta.align || "left"
@@ -27,6 +27,8 @@ function Table({
27
27
  }
28
28
  return {
29
29
  width: meta.width,
30
+ maxWidth: meta.maxWidth ?? "0",
31
+ minWidth: meta.minWidth ?? "0",
30
32
  textAlign: meta.align || "left"
31
33
  };
32
34
  }, []);
@@ -4,7 +4,7 @@ import { cva } from 'class-variance-authority';
4
4
 
5
5
  const inputVariants = cva(
6
6
  `flex h-8 w-full rounded-[4px] border border-grey-400 bg-background px-3 py-2
7
- placeholder:text-muted-foreground outline-none
7
+ placeholder:text-muted-foreground outline-none placeholder:body-medium-400
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:opacity-50
10
10
  transition-all duration-300`,
@@ -17,13 +17,37 @@ const MultiSelect = React.forwardRef(
17
17
  placeholder = "Select options",
18
18
  maxCount = 3,
19
19
  modalPopover = false,
20
- className
20
+ className,
21
+ treeOptions,
22
+ treeSelectionStrategy = "leaf",
23
+ defaultExpandAll = false,
24
+ matchTriggerWidth = true
21
25
  }, ref) => {
22
26
  const { t } = useTranslation();
23
27
  const [selectedValues, setSelectedValues] = React.useState(value);
24
28
  const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);
29
+ const [expandedNodes, setExpandedNodes] = React.useState(
30
+ () => new Set(
31
+ defaultExpandAll ? function collectAll(ids, opts) {
32
+ if (!opts) return ids;
33
+ for (const o of opts) {
34
+ if (o.children?.length) {
35
+ ids.push(o.value);
36
+ collectAll(ids, o.children);
37
+ }
38
+ }
39
+ return ids;
40
+ }([], treeOptions) : []
41
+ )
42
+ );
25
43
  React.useEffect(() => {
26
- setSelectedValues(value);
44
+ const shallowEqual = (a, b) => {
45
+ if (a === b) return true;
46
+ if (a.length !== b.length) return false;
47
+ for (let i = 0; i < a.length; i++) if (a[i] !== b[i]) return false;
48
+ return true;
49
+ };
50
+ setSelectedValues((prev) => shallowEqual(prev, value) ? prev : value);
27
51
  }, [value]);
28
52
  const handleInputKeyDown = (event) => {
29
53
  if (event.key === "Enter") {
@@ -53,14 +77,134 @@ const MultiSelect = React.forwardRef(
53
77
  onValueChange(newSelectedValues);
54
78
  };
55
79
  const toggleAll = () => {
56
- if (selectedValues.length === options.length) {
57
- handleClear();
80
+ if (treeOptions && treeOptions.length) {
81
+ const gather = (acc, nodes) => {
82
+ for (const n of nodes) {
83
+ const isLeaf = !n.children || n.children.length === 0;
84
+ if (isLeaf || treeSelectionStrategy === "all") acc.push(n.value);
85
+ if (n.children) gather(acc, n.children);
86
+ }
87
+ return acc;
88
+ };
89
+ const all = gather([], treeOptions);
90
+ if (selectedValues.length === all.length) {
91
+ handleClear();
92
+ } else {
93
+ setSelectedValues(all);
94
+ onValueChange(all);
95
+ }
58
96
  } else {
59
- const allValues = options.map((option) => option.value);
60
- setSelectedValues(allValues);
61
- onValueChange(allValues);
97
+ if (selectedValues.length === options.length) {
98
+ handleClear();
99
+ } else {
100
+ const allValues = options.map((option) => option.value);
101
+ setSelectedValues(allValues);
102
+ onValueChange(allValues);
103
+ }
62
104
  }
63
105
  };
106
+ const isTree = !!(treeOptions && treeOptions.length);
107
+ const isExpanded = React.useCallback(
108
+ (id) => expandedNodes.has(id),
109
+ [expandedNodes]
110
+ );
111
+ const toggleExpandNode = (id) => {
112
+ setExpandedNodes((prev) => {
113
+ const next = new Set(prev);
114
+ if (next.has(id)) next.delete(id);
115
+ else next.add(id);
116
+ return next;
117
+ });
118
+ };
119
+ const collectAllValues = (node) => {
120
+ const self = treeSelectionStrategy === "all" ? [node.value] : [];
121
+ if (!node.children || node.children.length === 0) {
122
+ return treeSelectionStrategy === "all" ? [node.value] : [node.value];
123
+ }
124
+ return [
125
+ ...self,
126
+ ...node.children.flatMap((c) => collectAllValues(c))
127
+ ];
128
+ };
129
+ const isNodeFullySelected = (node) => {
130
+ const values = collectAllValues(node);
131
+ return values.every((v) => selectedValues.includes(v));
132
+ };
133
+ const isNodePartiallySelected = (node) => {
134
+ const values = collectAllValues(node);
135
+ const some = values.some((v) => selectedValues.includes(v));
136
+ const all = values.every((v) => selectedValues.includes(v));
137
+ return some && !all;
138
+ };
139
+ const toggleTreeNode = (node) => {
140
+ const nodeValues = collectAllValues(node);
141
+ const allSelected = nodeValues.every((v) => selectedValues.includes(v));
142
+ let next;
143
+ if (allSelected) {
144
+ next = selectedValues.filter((v) => !nodeValues.includes(v));
145
+ } else {
146
+ next = Array.from(/* @__PURE__ */ new Set([...selectedValues, ...nodeValues]));
147
+ }
148
+ setSelectedValues(next);
149
+ onValueChange(next);
150
+ };
151
+ const renderTree = (nodes, depth = 0) => {
152
+ return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col" }, nodes.map((n) => {
153
+ const hasChildren = !!(n.children && n.children.length);
154
+ const expanded = hasChildren && isExpanded(n.value);
155
+ const fully = isNodeFullySelected(n);
156
+ const partial = !fully && isNodePartiallySelected(n);
157
+ const isSelectedLeaf = !hasChildren && selectedValues.includes(n.value);
158
+ return /* @__PURE__ */ React.createElement("div", { key: n.value, className: "select-none" }, /* @__PURE__ */ React.createElement(
159
+ "div",
160
+ {
161
+ className: cn(
162
+ "flex items-center gap-2 px-2 py-1 cursor-pointer rounded-sm text-grey-800 hover:bg-grey-100",
163
+ (fully || isSelectedLeaf) && "bg-blue-50"
164
+ ),
165
+ style: { paddingLeft: depth * 12 + 8 },
166
+ onClick: (e) => {
167
+ e.stopPropagation();
168
+ toggleTreeNode(n);
169
+ }
170
+ },
171
+ hasChildren && /* @__PURE__ */ React.createElement(
172
+ "button",
173
+ {
174
+ type: "button",
175
+ className: "h-4 w-4 flex items-center justify-center",
176
+ onClick: (e) => {
177
+ e.stopPropagation();
178
+ toggleExpandNode(n.value);
179
+ },
180
+ "aria-label": expanded ? "Collapse" : "Expand"
181
+ },
182
+ /* @__PURE__ */ React.createElement(
183
+ ChevronDown,
184
+ {
185
+ className: cn(
186
+ "h-4 w-4 transition-transform",
187
+ expanded ? "rotate-0" : "-rotate-90"
188
+ )
189
+ }
190
+ )
191
+ ),
192
+ !hasChildren && /* @__PURE__ */ React.createElement("span", { className: "w-4" }),
193
+ /* @__PURE__ */ React.createElement(
194
+ "div",
195
+ {
196
+ className: cn(
197
+ "flex h-4 w-4 items-center justify-center rounded-sm border-2",
198
+ fully ? "bg-blue-600 border-blue-600 text-primary-foreground" : "border-grey-400"
199
+ )
200
+ },
201
+ fully && /* @__PURE__ */ React.createElement(Check, { className: "h-3 w-3" }),
202
+ partial && !fully && /* @__PURE__ */ React.createElement(Minus, { className: "h-3 w-3 text-blue-600" })
203
+ ),
204
+ /* @__PURE__ */ React.createElement("span", { className: "text-sm flex-1 truncate" }, n.label)
205
+ ), hasChildren && expanded && /* @__PURE__ */ React.createElement("div", null, renderTree(n.children, depth + 1)));
206
+ }));
207
+ };
64
208
  return /* @__PURE__ */ React.createElement(
65
209
  Popover,
66
210
  {
@@ -123,11 +267,14 @@ const MultiSelect = React.forwardRef(
123
267
  /* @__PURE__ */ React.createElement(
124
268
  PopoverContent,
125
269
  {
126
- className: "w-auto p-0",
270
+ className: cn(
271
+ "p-0 max-h-80 overflow-auto",
272
+ matchTriggerWidth && "w-[var(--radix-popover-trigger-width)]"
273
+ ),
127
274
  align: "start",
128
275
  onEscapeKeyDown: () => setIsPopoverOpen(false)
129
276
  },
130
- /* @__PURE__ */ React.createElement(Command, null, /* @__PURE__ */ React.createElement(
277
+ !isTree && /* @__PURE__ */ React.createElement(Command, null, /* @__PURE__ */ React.createElement(
131
278
  CommandInput,
132
279
  {
133
280
  placeholder: t("multiSelect.search"),
@@ -172,7 +319,34 @@ const MultiSelect = React.forwardRef(
172
319
  ),
173
320
  /* @__PURE__ */ React.createElement("span", { className: "text-grey-800" }, option.label)
174
321
  );
175
- }))))
322
+ })))),
323
+ isTree && /* @__PURE__ */ React.createElement("div", { className: "p-2 min-w-[260px]" }, /* @__PURE__ */ React.createElement(
324
+ "div",
325
+ {
326
+ className: "flex items-center gap-2 px-2 py-1 mb-1 cursor-pointer rounded-sm hover:bg-grey-100",
327
+ onClick: toggleAll
328
+ },
329
+ /* @__PURE__ */ React.createElement(
330
+ "div",
331
+ {
332
+ className: cn(
333
+ "flex h-4 w-4 items-center justify-center rounded-sm border-2 border-grey-400",
334
+ selectedValues.length > 0 ? "bg-blue-600 border-blue-600 text-primary-foreground" : "opacity-50 [&_svg]:invisible"
335
+ )
336
+ },
337
+ treeOptions && selectedValues.length === function countAll(nodes) {
338
+ if (!nodes) return 0;
339
+ let acc = 0;
340
+ for (const n of nodes) {
341
+ const hasChildren = !!(n.children && n.children.length);
342
+ if (!hasChildren) acc += 1;
343
+ else acc += treeSelectionStrategy === "all" ? 1 + countAll(n.children) : countAll(n.children);
344
+ }
345
+ return acc;
346
+ }(treeOptions) ? /* @__PURE__ */ React.createElement(Check, { className: "h-4 w-4" }) : /* @__PURE__ */ React.createElement(Minus, { className: "h-4 w-4" })
347
+ ),
348
+ /* @__PURE__ */ React.createElement("span", { className: "text-grey-800 text-sm" }, t("multiSelect.selectAll"))
349
+ ), treeOptions && renderTree(treeOptions))
176
350
  )
177
351
  );
178
352
  }
package/dist/index.d.ts CHANGED
@@ -797,6 +797,15 @@ interface MultiSelectProps extends React$1.ButtonHTMLAttributes<HTMLButtonElemen
797
797
  modalPopover?: boolean;
798
798
  asChild?: boolean;
799
799
  className?: string;
800
+ matchTriggerWidth?: boolean;
801
+ treeOptions?: MultiSelectTreeOption[];
802
+ treeSelectionStrategy?: 'leaf' | 'all';
803
+ defaultExpandAll?: boolean;
804
+ }
805
+ interface MultiSelectTreeOption {
806
+ label: string;
807
+ value: string;
808
+ children?: MultiSelectTreeOption[];
800
809
  }
801
810
  declare const MultiSelect: React$1.ForwardRefExoticComponent<MultiSelectProps & React$1.RefAttributes<HTMLButtonElement>>;
802
811
 
@@ -903,7 +912,7 @@ declare const RadioGroup: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimi
903
912
  declare const RadioGroupItem: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
904
913
 
905
914
  declare const ResizablePanelGroup: ({ className, ...props }: React$1.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => React$1.JSX.Element;
906
- declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLElement | HTMLOListElement | HTMLLIElement | HTMLAnchorElement | HTMLSpanElement | HTMLDivElement | HTMLButtonElement | HTMLLabelElement | HTMLParagraphElement | HTMLHeadingElement | 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 | HTMLInputElement | 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"> & {
915
+ declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLButtonElement | HTMLElement | HTMLOListElement | HTMLLIElement | HTMLAnchorElement | HTMLSpanElement | HTMLDivElement | HTMLHeadingElement | HTMLParagraphElement | HTMLInputElement | HTMLLabelElement | 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"> & {
907
916
  className?: string;
908
917
  collapsedSize?: number | undefined;
909
918
  collapsible?: boolean | undefined;
@@ -1213,4 +1222,4 @@ interface DateInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputEleme
1213
1222
  declare const DateInput: React$1.ForwardRefExoticComponent<DateInputProps & React$1.RefAttributes<HTMLInputElement>>;
1214
1223
 
1215
1224
  export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, CadastroFacil, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Combobox, CustomDivider, MemoizedDataTable as DataTable, DateInput, DatePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogScroll, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, ErrorEmptyDisplay, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Input, Layout, LogoLecom, LogoLecomBrand, ModoTeste, MultiSelect, Notification, Pagination, PaginationContent, PaginationEllipsis, PaginationFirst, PaginationIndex, PaginationItem, PaginationLast, PaginationNext, PaginationPrevious, Popover, PopoverContent, PopoverTrigger, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, Rpa, SairModoTeste, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Spin, Steps, Switch, TOAST_REMOVE_DELAY, Tabs, TabsContent, TabsList, TabsTrigger, Tag, TagInput, Textarea, ToggleGroup, ToggleGroupItem, Tooltip, TooltipArrow, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, Translations, TypeMessageNotification, Typography, Upload, accordionVariants, buttonVariants, colors, fonts, initializeI18n, inputVariants, notificationVariants, reducer, tagVariants, textareaVariants, toast, typographyVariants, useFormField, useIsMobile, useNotificationToast, usePagination, useSidebar };
1216
- export type { BgColor, BuildCellSelect, BuildColumns, BuildHeaderSelect, ButtonProps, CadastroFacilProps, CalloutNotificationProps, ChartConfig, CheckboxProps, CheckedCell, CheckedCellChange, CheckedHeader, CheckedHeaderChange, Color, ColorToken, Column, ColumnRender, ColumnSort, ColumnSortClient, ColumnTitle, ComboboxGroup, ComboboxOption, ComboboxProps, CustomStyles$1 as CustomStyles, DataTableProps, DateInputProps, DatePickerProps, DialogContentProps, ErrorEmptyDisplayProps, File, FillColor, Fonts, Header, HeaderProps, InlineNotificationProps, InputProps, LayoutProps, LogoLecomBrandProps, LogoLecomProps, Meta, ModoTesteProps, NotificationProps, PaginationProps, Row, RpaProps, SideBarProps, SpinProps, StepsProps, SwitchProps, TableProps, TagInputProps, TagItem, TagProps, TextColor, TextareaProps, TimelineStepItem, ToastNotificationProps, ToasterToast, TooltipContentProps, TypographyProps, UploadProps, UsePaginationItem };
1225
+ export type { BgColor, BuildCellSelect, BuildColumns, BuildHeaderSelect, ButtonProps, CadastroFacilProps, CalloutNotificationProps, ChartConfig, CheckboxProps, CheckedCell, CheckedCellChange, CheckedHeader, CheckedHeaderChange, Color, ColorToken, Column, ColumnRender, ColumnSort, ColumnSortClient, ColumnTitle, ComboboxGroup, ComboboxOption, ComboboxProps, CustomStyles$1 as CustomStyles, DataTableProps, DateInputProps, DatePickerProps, DialogContentProps, ErrorEmptyDisplayProps, File, FillColor, Fonts, Header, HeaderProps, InlineNotificationProps, InputProps, LayoutProps, LogoLecomBrandProps, LogoLecomProps, Meta, ModoTesteProps, MultiSelectTreeOption, NotificationProps, PaginationProps, Row, RpaProps, SideBarProps, SpinProps, StepsProps, SwitchProps, TableProps, TagInputProps, TagItem, TagProps, TextColor, TextareaProps, TimelineStepItem, ToastNotificationProps, ToasterToast, TooltipContentProps, TypographyProps, UploadProps, UsePaginationItem };
@@ -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 };