lecom-ui 5.3.62 → 5.3.64

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,313 @@
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';
7
8
  import { Typography } from '../Typography/Typography.js';
8
9
 
10
+ const DEFAULT_PLACEHOLDER = "Selecione...";
11
+ const DEFAULT_NOT_FOUND_CONTENT = "Nenhuma op\xE7\xE3o encontrada.";
12
+ const DEFAULT_SEARCH_TERM = "Pesquisar...";
13
+ const ICON_SIZE = 20;
14
+ const CHECK_ICON_SIZES = {
15
+ small: 12,
16
+ medium: 14,
17
+ large: 16
18
+ };
19
+ const SEARCH_INPUT_CLASSES = {
20
+ small: "[&_[cmdk-input]]:h-7 [&_[cmdk-input]]:body-small-400 [&_svg]:text-grey-800 [&_svg]:opacity-100 [&_svg]:h-4 [&_svg]:w-4",
21
+ medium: "[&_[cmdk-input]]:h-8 [&_[cmdk-input]]:body-medium-400 [&_svg]:text-grey-800 [&_svg]:opacity-100 [&_svg]:h-4 [&_svg]:w-4",
22
+ large: "[&_[cmdk-input]]:h-9 [&_[cmdk-input]]:body-large-400 [&_svg]:text-grey-800 [&_svg]:opacity-100 [&_svg]:h-4 [&_svg]:w-4"
23
+ };
24
+ const isComboboxGroup = (item) => "options" in item && Array.isArray(item.options);
25
+ const matchesSearch = (text, searchTerm) => text.toLowerCase().includes(searchTerm);
26
+ const filterOption = (option, searchLower) => matchesSearch(option.label, searchLower) || matchesSearch(option.value, searchLower);
27
+ const filterComboboxOptions = (opts, searchLower) => {
28
+ if (!searchLower.trim()) return opts;
29
+ return opts.reduce((acc, item) => {
30
+ if (isComboboxGroup(item)) {
31
+ const filteredOptions = item.options.filter(
32
+ (opt) => filterOption(opt, searchLower)
33
+ );
34
+ if (filteredOptions.length > 0) {
35
+ acc.push({ ...item, options: filteredOptions });
36
+ }
37
+ } else if (filterOption(item, searchLower)) {
38
+ acc.push(item);
39
+ }
40
+ return acc;
41
+ }, []);
42
+ };
43
+ const getAllOptions = (items) => items.flatMap((item) => isComboboxGroup(item) ? item.options : [item]);
44
+ const getSelectedOption = (options, value) => {
45
+ if (!value) return void 0;
46
+ return getAllOptions(options).find((opt) => opt.value === value);
47
+ };
48
+ const getFontVariant = (size) => {
49
+ const sizeMap = {
50
+ small: "body-small-400",
51
+ medium: "body-medium-400",
52
+ large: "body-large-400"
53
+ };
54
+ return sizeMap[size ?? "medium"];
55
+ };
56
+ const comboboxItemVariants = cva(
57
+ "text-grey-800 flex items-center justify-start gap-2 hover:bg-grey-50 hover:cursor-pointer",
58
+ {
59
+ variants: {
60
+ size: {
61
+ small: "h-6 body-small-400",
62
+ medium: "h-7 body-medium-400",
63
+ large: "h-8 body-large-400"
64
+ },
65
+ disabled: {
66
+ true: "text-grey-400 pointer-events-none",
67
+ false: ""
68
+ }
69
+ },
70
+ defaultVariants: {
71
+ size: "medium",
72
+ disabled: false
73
+ }
74
+ }
75
+ );
76
+ const ComboboxItemContent = ({
77
+ option,
78
+ value,
79
+ onChange,
80
+ onClose,
81
+ itemsClassName,
82
+ size = "medium"
83
+ }) => {
84
+ const handleSelect = () => {
85
+ if (option.disabled) return;
86
+ onChange(option.value === value ? null : option.value);
87
+ onClose();
88
+ };
89
+ const fontVariant = getFontVariant(size);
90
+ const checkIconSize = CHECK_ICON_SIZES[size];
91
+ const isDisabled = option.disabled || false;
92
+ const textColor = isDisabled ? "text-grey-400" : "text-grey-800";
93
+ return /* @__PURE__ */ React.createElement(
94
+ CommandItem,
95
+ {
96
+ key: option.value,
97
+ onSelect: handleSelect,
98
+ className: cn(
99
+ comboboxItemVariants({
100
+ size,
101
+ disabled: isDisabled
102
+ }),
103
+ itemsClassName
104
+ )
105
+ },
106
+ /* @__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 })),
107
+ option.prefix && /* @__PURE__ */ React.createElement(
108
+ Typography,
109
+ {
110
+ className: cn("mr-2 flex items-center shrink-0", textColor)
111
+ },
112
+ option.prefix
113
+ ),
114
+ /* @__PURE__ */ React.createElement(Typography, { variant: fontVariant, className: textColor }, option.label)
115
+ );
116
+ };
117
+ ComboboxItemContent.displayName = "ComboboxItemContent";
118
+ const ComboboxOptionsList = React.memo(
119
+ ({ items, value, onChange, onClose, itemsClassName, size }) => /* @__PURE__ */ React.createElement(React.Fragment, null, items.map(
120
+ (item, idx) => isComboboxGroup(item) ? /* @__PURE__ */ React.createElement(CommandGroup, { key: `${item.label}-${idx}`, heading: item.label }, item.options.map((opt) => /* @__PURE__ */ React.createElement(
121
+ ComboboxItemContent,
122
+ {
123
+ key: opt.value,
124
+ option: opt,
125
+ value,
126
+ onChange,
127
+ onClose,
128
+ itemsClassName,
129
+ size
130
+ }
131
+ ))) : /* @__PURE__ */ React.createElement(
132
+ ComboboxItemContent,
133
+ {
134
+ key: item.value,
135
+ option: item,
136
+ value,
137
+ onChange,
138
+ onClose,
139
+ itemsClassName,
140
+ size
141
+ }
142
+ )
143
+ ))
144
+ );
145
+ ComboboxOptionsList.displayName = "ComboboxOptionsList";
146
+ const comboboxTriggerVariants = cva(
147
+ "w-full px-4 text-left shadow-sm flex items-center justify-between transition",
148
+ {
149
+ variants: {
150
+ size: {
151
+ small: "h-8",
152
+ medium: "h-10",
153
+ large: "h-12"
154
+ },
155
+ rounded: {
156
+ default: "rounded-md",
157
+ full: "rounded-full"
158
+ },
159
+ status: {
160
+ 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",
161
+ error: "border-none focus:border-none focus:ring-0 outline-red-600"
162
+ },
163
+ disabled: {
164
+ true: "disabled:bg-grey-100 pointer-events-none",
165
+ false: "bg-white hover:bg-white focus:!bg-white active:!bg-white"
166
+ }
167
+ },
168
+ defaultVariants: {
169
+ size: "medium",
170
+ rounded: "default",
171
+ status: "default",
172
+ disabled: false
173
+ }
174
+ }
175
+ );
176
+ const ComboboxTriggerButton = React.forwardRef(
177
+ ({
178
+ open,
179
+ disabled = false,
180
+ value,
181
+ selectedLabel,
182
+ selectedPrefix,
183
+ rounded,
184
+ status,
185
+ triggerClassName,
186
+ size = "medium",
187
+ ...props
188
+ }, ref) => {
189
+ const fontVariant = getFontVariant(size ?? "medium");
190
+ const hasValue = Boolean(value);
191
+ const colorClass = React.useMemo(() => {
192
+ if (hasValue) return "text-grey-800";
193
+ if (disabled) return "text-grey-400";
194
+ return "text-grey-500";
195
+ }, [hasValue, disabled]);
196
+ const ChevronIcon = open ? ChevronUpIcon : ChevronDownIcon;
197
+ return /* @__PURE__ */ React.createElement(
198
+ Button,
199
+ {
200
+ ref,
201
+ type: "button",
202
+ role: "combobox",
203
+ "aria-expanded": open,
204
+ className: cn(
205
+ comboboxTriggerVariants({
206
+ size,
207
+ rounded,
208
+ status,
209
+ disabled
210
+ }),
211
+ triggerClassName
212
+ ),
213
+ disabled: disabled ?? false,
214
+ ...props
215
+ },
216
+ /* @__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(
217
+ Typography,
218
+ {
219
+ className: cn("truncate", colorClass),
220
+ variant: fontVariant
221
+ },
222
+ selectedLabel
223
+ )),
224
+ /* @__PURE__ */ React.createElement(
225
+ ChevronIcon,
226
+ {
227
+ className: cn("ml-2 shrink-0", colorClass),
228
+ size: ICON_SIZE
229
+ }
230
+ )
231
+ );
232
+ }
233
+ );
234
+ ComboboxTriggerButton.displayName = "ComboboxTriggerButton";
9
235
  function Combobox({
10
236
  options,
11
237
  value,
12
238
  onChange,
13
- placeholder = "Selecione...",
239
+ placeholder = DEFAULT_PLACEHOLDER,
14
240
  disabled = false,
15
- notFoundContent = "Nenhuma op\xE7\xE3o encontrada.",
241
+ notFoundContent = DEFAULT_NOT_FOUND_CONTENT,
16
242
  status = "default",
17
- searchTerm = "Pesquisar...",
243
+ searchTerm = DEFAULT_SEARCH_TERM,
18
244
  triggerClassName,
19
- contentClassName
245
+ contentClassName,
246
+ itemsClassName,
247
+ rounded = "default",
248
+ showSearch = true,
249
+ size = "medium"
20
250
  }) {
21
251
  const [open, setOpen] = React.useState(false);
22
252
  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
253
  const filteredOptions = React.useMemo(
40
- () => !search ? options : filterOptions(options),
41
- [options, search, filterOptions]
254
+ () => !search ? options : filterComboboxOptions(options, search.toLowerCase()),
255
+ [options, search]
256
+ );
257
+ const selectedOption = React.useMemo(
258
+ () => getSelectedOption(options, value),
259
+ [options, value]
42
260
  );
43
- const selectedLabel = options.flatMap((opt) => "options" in opt ? opt.options : [opt]).find((opt) => opt.value === value)?.label || placeholder;
261
+ const selectedLabel = selectedOption?.label || placeholder;
262
+ const selectedPrefix = selectedOption?.prefix;
263
+ const handleClose = React.useCallback(() => {
264
+ setOpen(false);
265
+ }, []);
44
266
  React.useEffect(() => {
45
- if (!open) setSearch("");
267
+ if (!open) {
268
+ setSearch("");
269
+ }
46
270
  }, [open]);
47
- return /* @__PURE__ */ React.createElement(Popover, { open, onOpenChange: setOpen }, /* @__PURE__ */ React.createElement(PopoverTrigger, { asChild: true, className: cn(contentClassName) }, /* @__PURE__ */ React.createElement(
48
- Button,
271
+ return /* @__PURE__ */ React.createElement(Popover, { open, onOpenChange: setOpen }, /* @__PURE__ */ React.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React.createElement(
272
+ ComboboxTriggerButton,
273
+ {
274
+ open,
275
+ disabled,
276
+ value,
277
+ selectedLabel,
278
+ selectedPrefix,
279
+ rounded,
280
+ status,
281
+ triggerClassName,
282
+ size
283
+ }
284
+ )), /* @__PURE__ */ React.createElement(
285
+ PopoverContent,
49
286
  {
50
- type: "button",
51
- role: "combobox",
52
- "aria-expanded": open,
53
287
  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
288
+ "w-[var(--radix-popover-trigger-width)] pt-0 px-1 pb-1",
289
+ contentClassName
290
+ )
62
291
  },
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,
292
+ /* @__PURE__ */ React.createElement(Command, { className: SEARCH_INPUT_CLASSES[size] }, showSearch && /* @__PURE__ */ React.createElement(
293
+ CommandInput,
75
294
  {
76
- className: "ml-2 h-4 w-4 shrink-0 text-gray-400",
77
- color: "black"
295
+ placeholder: searchTerm,
296
+ value: search,
297
+ onValueChange: setSearch
78
298
  }
79
- ) : /* @__PURE__ */ React.createElement(
80
- ChevronDownIcon,
299
+ ), /* @__PURE__ */ React.createElement(CommandList, null, /* @__PURE__ */ React.createElement(CommandEmpty, null, notFoundContent), /* @__PURE__ */ React.createElement(
300
+ ComboboxOptionsList,
81
301
  {
82
- className: "ml-2 h-4 w-4 shrink-0 text-gray-400",
83
- color: "black"
302
+ items: filteredOptions,
303
+ value,
304
+ onChange,
305
+ onClose: handleClose,
306
+ itemsClassName,
307
+ size
84
308
  }
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
- )))));
309
+ )))
310
+ ));
126
311
  }
127
312
 
128
313
  export { Combobox };
@@ -39,7 +39,7 @@ const SearchInput = ({
39
39
  color: isActive ? focus.textColor : color,
40
40
  boxShadow: shadowSmTailwind
41
41
  };
42
- return /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2 flex-1 max-w-[345px]" }, !isMobile && /* @__PURE__ */ React.createElement(
42
+ return /* @__PURE__ */ React.createElement("div", { className: "flex items-center gap-2 flex-1 max-w-[630px]" }, !isMobile && /* @__PURE__ */ React.createElement(
43
43
  Input,
44
44
  {
45
45
  id: "header-search-input-lecom-ui",
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<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"> & {
962
+ 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"> & {
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 };