lecom-ui 5.3.63 → 5.3.65

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
@@ -1,128 +1,314 @@
1
1
  import * as React from 'react';
2
- import { ChevronUpIcon, ChevronDownIcon } from 'lucide-react';
2
+ import { cva } from 'class-variance-authority';
3
+ import { ChevronUpIcon, ChevronDownIcon, Check } from 'lucide-react';
3
4
  import { cn } from '../../lib/utils.js';
4
5
  import { Button } from '../Button/Button.js';
5
- import { Command, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem } from '../Command/Command.js';
6
+ import { CommandGroup, CommandItem, Command, CommandInput, CommandList, CommandEmpty } from '../Command/Command.js';
6
7
  import { Popover, PopoverTrigger, PopoverContent } from '../Popover/Popover.js';
8
+ import { ScrollArea } from '../ScrollArea/ScrollArea.js';
7
9
  import { Typography } from '../Typography/Typography.js';
8
10
 
11
+ const DEFAULT_PLACEHOLDER = "Selecione...";
12
+ const DEFAULT_NOT_FOUND_CONTENT = "Nenhuma op\xE7\xE3o encontrada.";
13
+ const DEFAULT_SEARCH_TERM = "Pesquisar...";
14
+ const ICON_SIZE = 20;
15
+ const CHECK_ICON_SIZES = {
16
+ small: 12,
17
+ medium: 14,
18
+ large: 16
19
+ };
20
+ const SEARCH_INPUT_CLASSES = {
21
+ small: "[&_[cmdk-input]]:h-7 [&_[cmdk-input]]:body-small-400 [&_svg]:text-grey-800 [&_svg]:opacity-100 [&_svg]:h-4 [&_svg]:w-4",
22
+ medium: "[&_[cmdk-input]]:h-8 [&_[cmdk-input]]:body-medium-400 [&_svg]:text-grey-800 [&_svg]:opacity-100 [&_svg]:h-4 [&_svg]:w-4",
23
+ large: "[&_[cmdk-input]]:h-9 [&_[cmdk-input]]:body-large-400 [&_svg]:text-grey-800 [&_svg]:opacity-100 [&_svg]:h-4 [&_svg]:w-4"
24
+ };
25
+ const isComboboxGroup = (item) => "options" in item && Array.isArray(item.options);
26
+ const matchesSearch = (text, searchTerm) => text.toLowerCase().includes(searchTerm);
27
+ const filterOption = (option, searchLower) => matchesSearch(option.label, searchLower) || matchesSearch(option.value, searchLower);
28
+ const filterComboboxOptions = (opts, searchLower) => {
29
+ if (!searchLower.trim()) return opts;
30
+ return opts.reduce((acc, item) => {
31
+ if (isComboboxGroup(item)) {
32
+ const filteredOptions = item.options.filter(
33
+ (opt) => filterOption(opt, searchLower)
34
+ );
35
+ if (filteredOptions.length > 0) {
36
+ acc.push({ ...item, options: filteredOptions });
37
+ }
38
+ } else if (filterOption(item, searchLower)) {
39
+ acc.push(item);
40
+ }
41
+ return acc;
42
+ }, []);
43
+ };
44
+ const getAllOptions = (items) => items.flatMap((item) => isComboboxGroup(item) ? item.options : [item]);
45
+ const getSelectedOption = (options, value) => {
46
+ if (!value) return void 0;
47
+ return getAllOptions(options).find((opt) => opt.value === value);
48
+ };
49
+ const getFontVariant = (size) => {
50
+ const sizeMap = {
51
+ small: "body-small-400",
52
+ medium: "body-medium-400",
53
+ large: "body-large-400"
54
+ };
55
+ return sizeMap[size ?? "medium"];
56
+ };
57
+ const comboboxItemVariants = cva(
58
+ "text-grey-800 flex items-center justify-start gap-2 hover:bg-grey-50 hover:cursor-pointer",
59
+ {
60
+ variants: {
61
+ size: {
62
+ small: "h-6 body-small-400",
63
+ medium: "h-7 body-medium-400",
64
+ large: "h-8 body-large-400"
65
+ },
66
+ disabled: {
67
+ true: "text-grey-400 pointer-events-none",
68
+ false: ""
69
+ }
70
+ },
71
+ defaultVariants: {
72
+ size: "medium",
73
+ disabled: false
74
+ }
75
+ }
76
+ );
77
+ const ComboboxItemContent = ({
78
+ option,
79
+ value,
80
+ onChange,
81
+ onClose,
82
+ itemsClassName,
83
+ size = "medium"
84
+ }) => {
85
+ const handleSelect = () => {
86
+ if (option.disabled) return;
87
+ onChange(option.value === value ? null : option.value);
88
+ onClose();
89
+ };
90
+ const fontVariant = getFontVariant(size);
91
+ const checkIconSize = CHECK_ICON_SIZES[size];
92
+ const isDisabled = option.disabled || false;
93
+ const textColor = isDisabled ? "text-grey-400" : "text-grey-800";
94
+ return /* @__PURE__ */ React.createElement(
95
+ CommandItem,
96
+ {
97
+ key: option.value,
98
+ onSelect: handleSelect,
99
+ className: cn(
100
+ comboboxItemVariants({
101
+ size,
102
+ disabled: isDisabled
103
+ }),
104
+ itemsClassName
105
+ )
106
+ },
107
+ /* @__PURE__ */ React.createElement(Typography, { className: "w-4 h-4 flex items-center justify-center shrink-0 py-1" }, option.value === value && /* @__PURE__ */ React.createElement(Check, { className: textColor, size: checkIconSize, strokeWidth: 2 })),
108
+ option.prefix && /* @__PURE__ */ React.createElement(
109
+ Typography,
110
+ {
111
+ className: cn("mr-2 flex items-center shrink-0", textColor)
112
+ },
113
+ option.prefix
114
+ ),
115
+ /* @__PURE__ */ React.createElement(Typography, { variant: fontVariant, className: textColor }, option.label)
116
+ );
117
+ };
118
+ ComboboxItemContent.displayName = "ComboboxItemContent";
119
+ const ComboboxOptionsList = React.memo(
120
+ ({ items, value, onChange, onClose, itemsClassName, size }) => /* @__PURE__ */ React.createElement(React.Fragment, null, items.map(
121
+ (item, idx) => isComboboxGroup(item) ? /* @__PURE__ */ React.createElement(CommandGroup, { key: `${item.label}-${idx}`, heading: item.label }, item.options.map((opt) => /* @__PURE__ */ React.createElement(
122
+ ComboboxItemContent,
123
+ {
124
+ key: opt.value,
125
+ option: opt,
126
+ value,
127
+ onChange,
128
+ onClose,
129
+ itemsClassName,
130
+ size
131
+ }
132
+ ))) : /* @__PURE__ */ React.createElement(
133
+ ComboboxItemContent,
134
+ {
135
+ key: item.value,
136
+ option: item,
137
+ value,
138
+ onChange,
139
+ onClose,
140
+ itemsClassName,
141
+ size
142
+ }
143
+ )
144
+ ))
145
+ );
146
+ ComboboxOptionsList.displayName = "ComboboxOptionsList";
147
+ const comboboxTriggerVariants = cva(
148
+ "w-full px-4 text-left shadow-sm flex items-center justify-between transition",
149
+ {
150
+ variants: {
151
+ size: {
152
+ small: "h-8",
153
+ medium: "h-10",
154
+ large: "h-12"
155
+ },
156
+ rounded: {
157
+ default: "rounded-md",
158
+ full: "rounded-full"
159
+ },
160
+ status: {
161
+ default: "border border-grey-400 hover:border-grey-500 focus:border-grey-400 focus:ring-grey-600 focus:ring-opacity-15 focus:ring-4 outline-none",
162
+ error: "border-none focus:border-none focus:ring-0 outline-red-600"
163
+ },
164
+ disabled: {
165
+ true: "disabled:bg-grey-100 pointer-events-none",
166
+ false: "bg-white hover:bg-white focus:!bg-white active:!bg-white"
167
+ }
168
+ },
169
+ defaultVariants: {
170
+ size: "medium",
171
+ rounded: "default",
172
+ status: "default",
173
+ disabled: false
174
+ }
175
+ }
176
+ );
177
+ const ComboboxTriggerButton = React.forwardRef(
178
+ ({
179
+ open,
180
+ disabled = false,
181
+ value,
182
+ selectedLabel,
183
+ selectedPrefix,
184
+ rounded,
185
+ status,
186
+ triggerClassName,
187
+ size = "medium",
188
+ ...props
189
+ }, ref) => {
190
+ const fontVariant = getFontVariant(size ?? "medium");
191
+ const hasValue = Boolean(value);
192
+ const colorClass = React.useMemo(() => {
193
+ if (hasValue) return "text-grey-800";
194
+ if (disabled) return "text-grey-400";
195
+ return "text-grey-500";
196
+ }, [hasValue, disabled]);
197
+ const ChevronIcon = open ? ChevronUpIcon : ChevronDownIcon;
198
+ return /* @__PURE__ */ React.createElement(
199
+ Button,
200
+ {
201
+ ref,
202
+ type: "button",
203
+ role: "combobox",
204
+ "aria-expanded": open,
205
+ className: cn(
206
+ comboboxTriggerVariants({
207
+ size,
208
+ rounded,
209
+ status,
210
+ disabled
211
+ }),
212
+ triggerClassName
213
+ ),
214
+ disabled: disabled ?? false,
215
+ ...props
216
+ },
217
+ /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2 truncate max-w-[calc(100%-2.5rem)]" }, selectedPrefix && /* @__PURE__ */ React.createElement(Typography, { className: "flex items-center shrink-0" }, selectedPrefix), /* @__PURE__ */ React.createElement(
218
+ Typography,
219
+ {
220
+ className: cn("truncate", colorClass),
221
+ variant: fontVariant
222
+ },
223
+ selectedLabel
224
+ )),
225
+ /* @__PURE__ */ React.createElement(
226
+ ChevronIcon,
227
+ {
228
+ className: cn("ml-2 shrink-0", colorClass),
229
+ size: ICON_SIZE
230
+ }
231
+ )
232
+ );
233
+ }
234
+ );
235
+ ComboboxTriggerButton.displayName = "ComboboxTriggerButton";
9
236
  function Combobox({
10
237
  options,
11
238
  value,
12
239
  onChange,
13
- placeholder = "Selecione...",
240
+ placeholder = DEFAULT_PLACEHOLDER,
14
241
  disabled = false,
15
- notFoundContent = "Nenhuma op\xE7\xE3o encontrada.",
242
+ notFoundContent = DEFAULT_NOT_FOUND_CONTENT,
16
243
  status = "default",
17
- searchTerm = "Pesquisar...",
244
+ searchTerm = DEFAULT_SEARCH_TERM,
18
245
  triggerClassName,
19
- contentClassName
246
+ contentClassName,
247
+ itemsClassName,
248
+ rounded = "default",
249
+ showSearch = true,
250
+ size = "medium"
20
251
  }) {
21
252
  const [open, setOpen] = React.useState(false);
22
253
  const [search, setSearch] = React.useState("");
23
- const filterOptions = React.useCallback(
24
- (opts) => {
25
- const searchLower = search.toLowerCase();
26
- return opts.map((item) => {
27
- if ("options" in item) {
28
- const filtered = item.options.filter(
29
- (opt) => opt.label.toLowerCase().includes(searchLower) || opt.value.toLowerCase().includes(searchLower)
30
- );
31
- if (!filtered.length) return null;
32
- return { ...item, options: filtered };
33
- }
34
- return item.label.toLowerCase().includes(searchLower) || item.value.toLowerCase().includes(searchLower) ? item : null;
35
- }).filter(Boolean);
36
- },
37
- [search]
38
- );
39
254
  const filteredOptions = React.useMemo(
40
- () => !search ? options : filterOptions(options),
41
- [options, search, filterOptions]
255
+ () => !search ? options : filterComboboxOptions(options, search.toLowerCase()),
256
+ [options, search]
257
+ );
258
+ const selectedOption = React.useMemo(
259
+ () => getSelectedOption(options, value),
260
+ [options, value]
42
261
  );
43
- const selectedLabel = options.flatMap((opt) => "options" in opt ? opt.options : [opt]).find((opt) => opt.value === value)?.label || placeholder;
262
+ const selectedLabel = selectedOption?.label || placeholder;
263
+ const selectedPrefix = selectedOption?.prefix;
264
+ const handleClose = React.useCallback(() => {
265
+ setOpen(false);
266
+ }, []);
44
267
  React.useEffect(() => {
45
- if (!open) setSearch("");
268
+ if (!open) {
269
+ setSearch("");
270
+ }
46
271
  }, [open]);
47
- return /* @__PURE__ */ React.createElement(Popover, { open, onOpenChange: setOpen }, /* @__PURE__ */ React.createElement(PopoverTrigger, { asChild: true, className: cn(contentClassName) }, /* @__PURE__ */ React.createElement(
48
- Button,
272
+ return /* @__PURE__ */ React.createElement(Popover, { open, onOpenChange: setOpen }, /* @__PURE__ */ React.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(
273
+ ComboboxTriggerButton,
274
+ {
275
+ open,
276
+ disabled,
277
+ value,
278
+ selectedLabel,
279
+ selectedPrefix,
280
+ rounded,
281
+ status,
282
+ triggerClassName,
283
+ size
284
+ }
285
+ )), /* @__PURE__ */ React.createElement(
286
+ PopoverContent,
49
287
  {
50
- type: "button",
51
- role: "combobox",
52
- "aria-expanded": open,
53
288
  className: cn(
54
- triggerClassName,
55
- "w-full h-10 bg-white rounded-md px-3 text-left shadow-sm flex items-center justify-between transition",
56
- status === "error" ? "border border-red-500 hover:ring-1 hover:ring-red-500 focus:ring-1 focus:ring-red-500" : "border border-gray-300 hover:ring-1 hover:ring-blue-600 focus:ring-1 focus:ring-blue-600",
57
- !value && "text-gray-400",
58
- disabled && "opacity-50 pointer-events-none",
59
- "hover:bg-white focus:!bg-white active:!bg-white"
60
- ),
61
- disabled
289
+ "w-[var(--radix-popover-trigger-width)] pt-0 px-1 pb-1",
290
+ contentClassName
291
+ )
62
292
  },
63
- /* @__PURE__ */ React.createElement(
64
- "span",
65
- {
66
- className: cn(
67
- value ? "text-black" : "text-gray-400",
68
- "font-normal truncate max-w-[calc(100%-2.5rem)]"
69
- )
70
- },
71
- /* @__PURE__ */ React.createElement(Typography, { variant: "body-medium-400" }, selectedLabel)
72
- ),
73
- open ? /* @__PURE__ */ React.createElement(
74
- ChevronUpIcon,
293
+ /* @__PURE__ */ React.createElement(Command, { shouldFilter: false, className: SEARCH_INPUT_CLASSES[size] }, showSearch && /* @__PURE__ */ React.createElement(
294
+ CommandInput,
75
295
  {
76
- className: "ml-2 h-4 w-4 shrink-0 text-gray-400",
77
- color: "black"
296
+ placeholder: searchTerm,
297
+ value: search,
298
+ onValueChange: setSearch
78
299
  }
79
- ) : /* @__PURE__ */ React.createElement(
80
- ChevronDownIcon,
300
+ ), /* @__PURE__ */ React.createElement(ScrollArea, { className: cn("max-h-44", contentClassName) }, /* @__PURE__ */ React.createElement(CommandList, { className: "overflow-visible" }, /* @__PURE__ */ React.createElement(CommandEmpty, null, notFoundContent), /* @__PURE__ */ React.createElement(
301
+ ComboboxOptionsList,
81
302
  {
82
- className: "ml-2 h-4 w-4 shrink-0 text-gray-400",
83
- color: "black"
303
+ items: filteredOptions,
304
+ value,
305
+ onChange,
306
+ onClose: handleClose,
307
+ itemsClassName,
308
+ size
84
309
  }
85
- )
86
- )), /* @__PURE__ */ React.createElement(PopoverContent, { className: "w-[var(--radix-popover-trigger-width)] p-0" }, /* @__PURE__ */ React.createElement(Command, null, /* @__PURE__ */ React.createElement(
87
- CommandInput,
88
- {
89
- placeholder: searchTerm,
90
- value: search,
91
- onValueChange: setSearch
92
- }
93
- ), /* @__PURE__ */ React.createElement(CommandList, null, /* @__PURE__ */ React.createElement(CommandEmpty, null, notFoundContent), filteredOptions.map(
94
- (item, idx) => "options" in item ? /* @__PURE__ */ React.createElement(CommandGroup, { key: `${item.label}-${idx}`, heading: item.label }, item.options.map((opt) => /* @__PURE__ */ React.createElement(
95
- CommandItem,
96
- {
97
- key: opt.value,
98
- onSelect: () => {
99
- if (opt.disabled) return;
100
- onChange(opt.value === value ? null : opt.value);
101
- setOpen(false);
102
- },
103
- className: cn(
104
- opt.value === value ? "bg-blue-100 font-semibold text-black" : "hover:bg-gray-100",
105
- opt.disabled && "opacity-50 pointer-events-none"
106
- )
107
- },
108
- opt.label
109
- ))) : /* @__PURE__ */ React.createElement(
110
- CommandItem,
111
- {
112
- key: item.value,
113
- onSelect: () => {
114
- if (item.disabled) return;
115
- onChange(item.value === value ? null : item.value);
116
- setOpen(false);
117
- },
118
- className: cn(
119
- item.value === value ? "bg-blue-100 font-semibold text-black" : "hover:bg-gray-100",
120
- item.disabled && "opacity-50 pointer-events-none"
121
- )
122
- },
123
- item.label
124
- )
125
- )))));
310
+ ))))
311
+ ));
126
312
  }
127
313
 
128
314
  export { Combobox };
package/dist/index.d.ts CHANGED
@@ -959,7 +959,7 @@ declare const RadioGroup: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimi
959
959
  declare const RadioGroupItem: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
960
960
 
961
961
  declare const ResizablePanelGroup: ({ className, ...props }: React$1.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => React$1.JSX.Element;
962
- declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLElement | HTMLOListElement | HTMLLIElement | HTMLAnchorElement | HTMLSpanElement | HTMLButtonElement | HTMLDivElement | 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"> & {
962
+ declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement | HTMLElement | HTMLButtonElement | HTMLOListElement | HTMLLIElement | HTMLAnchorElement | HTMLSpanElement | 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"> & {
963
963
  className?: string;
964
964
  collapsedSize?: number | undefined;
965
965
  collapsible?: boolean | undefined;
@@ -1167,10 +1167,15 @@ interface StepsProps {
1167
1167
  }
1168
1168
  declare const Steps: React$1.FC<StepsProps>;
1169
1169
 
1170
+ type ComboboxSize = 'small' | 'medium' | 'large';
1171
+ type ComboboxFont = 'body-small-400' | 'body-medium-400' | 'body-large-400';
1172
+ type ComboboxRounded = 'default' | 'full';
1173
+ type ComboboxStatus = 'default' | 'error';
1170
1174
  interface ComboboxOption {
1171
1175
  label: string;
1172
1176
  value: string;
1173
1177
  disabled?: boolean;
1178
+ prefix?: React$1.ReactNode;
1174
1179
  }
1175
1180
  interface ComboboxGroup {
1176
1181
  label: string;
@@ -1183,12 +1188,16 @@ type ComboboxProps = {
1183
1188
  placeholder?: string;
1184
1189
  disabled?: boolean;
1185
1190
  notFoundContent?: React$1.ReactNode;
1186
- status?: 'default' | 'error';
1191
+ status?: ComboboxStatus;
1187
1192
  searchTerm?: string;
1188
1193
  triggerClassName?: string;
1189
1194
  contentClassName?: string;
1195
+ itemsClassName?: string;
1196
+ rounded?: ComboboxRounded;
1197
+ showSearch?: boolean;
1198
+ size?: ComboboxSize;
1190
1199
  };
1191
- declare function Combobox({ options, value, onChange, placeholder, disabled, notFoundContent, status, searchTerm, triggerClassName, contentClassName, }: ComboboxProps): React$1.JSX.Element;
1200
+ declare function Combobox({ options, value, onChange, placeholder, disabled, notFoundContent, status, searchTerm, triggerClassName, contentClassName, itemsClassName, rounded, showSearch, size, }: ComboboxProps): React$1.JSX.Element;
1192
1201
 
1193
1202
  interface TagItem {
1194
1203
  label: string;
@@ -1278,4 +1287,4 @@ interface DateInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputEleme
1278
1287
  declare const DateInput: React$1.ForwardRefExoticComponent<DateInputProps & React$1.RefAttributes<HTMLInputElement>>;
1279
1288
 
1280
1289
  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, ColorPicker, 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, NumberControl, 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, SyntaxHighlighter, 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 };
1281
- 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 };
1290
+ export type { BgColor, BuildCellSelect, BuildColumns, BuildHeaderSelect, ButtonProps, CadastroFacilProps, CalloutNotificationProps, ChartConfig, CheckboxProps, CheckedCell, CheckedCellChange, CheckedHeader, CheckedHeaderChange, Color, ColorToken, Column, ColumnRender, ColumnSort, ColumnSortClient, ColumnTitle, ComboboxFont, ComboboxGroup, ComboboxOption, ComboboxProps, ComboboxRounded, ComboboxSize, ComboboxStatus, 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 };