lecom-ui 5.4.31 → 5.4.33

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
@@ -18,11 +18,13 @@ const CustomTagItemComponent = React.memo(function CustomTagItemComponent2({
18
18
  onDragEnd,
19
19
  isDragging,
20
20
  onMouseDown,
21
- isAllSelected = false
21
+ isAllSelected = false,
22
+ defaultColor
22
23
  }) {
23
24
  const [isEditing, setIsEditing] = React.useState(false);
24
25
  const [editValue, setEditValue] = React.useState(item.label);
25
26
  const inputRef = React.useRef(null);
27
+ const tagColor = item.color || defaultColor;
26
28
  React.useEffect(() => {
27
29
  if (isEditing && inputRef.current) {
28
30
  inputRef.current.focus();
@@ -80,7 +82,7 @@ const CustomTagItemComponent = React.memo(function CustomTagItemComponent2({
80
82
  [index, onDragOver]
81
83
  );
82
84
  if (isEditing) {
83
- return /* @__PURE__ */ React.createElement(Tag, { "data-tag": "true", color: "blue", className: "px-2 py-0 max-w-[15.625rem]" }, /* @__PURE__ */ React.createElement(
85
+ return /* @__PURE__ */ React.createElement(Tag, { "data-tag": "true", color: tagColor, className: "px-2 py-0 max-w-[15.625rem]" }, /* @__PURE__ */ React.createElement(
84
86
  "input",
85
87
  {
86
88
  ref: inputRef,
@@ -89,7 +91,7 @@ const CustomTagItemComponent = React.memo(function CustomTagItemComponent2({
89
91
  onChange: (e) => setEditValue(e.target.value),
90
92
  onKeyDown: handleKeyDown,
91
93
  onBlur: handleBlur,
92
- className: "bg-transparent border-none outline-none text-blue-700 body-small-400 min-w-[60px] w-full",
94
+ className: "bg-transparent border-none outline-none [color:inherit] body-small-400 min-w-[60px] w-full",
93
95
  onClick: (e) => e.stopPropagation(),
94
96
  style: { width: `${Math.min(Math.max(editValue.length * 8, 60), 250)}px` }
95
97
  }
@@ -99,7 +101,7 @@ const CustomTagItemComponent = React.memo(function CustomTagItemComponent2({
99
101
  Tag,
100
102
  {
101
103
  "data-tag": "true",
102
- color: "blue",
104
+ color: tagColor,
103
105
  className: cn(
104
106
  "cursor-pointer group max-w-[15.625rem]",
105
107
  isDragging && "opacity-30 scale-95 transition-all",
@@ -117,7 +119,7 @@ const CustomTagItemComponent = React.memo(function CustomTagItemComponent2({
117
119
  GripVertical,
118
120
  {
119
121
  className: cn(
120
- "w-4 h-4 opacity-100 transition-all cursor-grab flex-shrink-0 stroke-blue-600 fill-none hover:stroke-blue-800 hover:scale-110",
122
+ "w-4 h-4 opacity-100 transition-all cursor-grab flex-shrink-0 stroke-current fill-none hover:opacity-80 hover:scale-110",
121
123
  isAllSelected && "!stroke-grey-400"
122
124
  ),
123
125
  onMouseDown: (e) => e.stopPropagation(),
@@ -128,8 +130,7 @@ const CustomTagItemComponent = React.memo(function CustomTagItemComponent2({
128
130
  Typography,
129
131
  {
130
132
  variant: "body-small-400",
131
- className: "truncate flex-1 min-w-0",
132
- textColor: "text-blue-700",
133
+ className: "truncate flex-1 min-w-0 [color:inherit]",
133
134
  onClick: handleClick
134
135
  },
135
136
  item.label
@@ -138,7 +139,7 @@ const CustomTagItemComponent = React.memo(function CustomTagItemComponent2({
138
139
  X,
139
140
  {
140
141
  className: cn(
141
- "w-4 h-4 cursor-pointer flex-shrink-0 stroke-blue-600 stroke-2 outline-none hover:stroke-blue-800 hover:scale-110 transition-all",
142
+ "w-4 h-4 cursor-pointer flex-shrink-0 stroke-current stroke-2 outline-none hover:opacity-80 hover:scale-110 transition-all",
142
143
  isAllSelected && "!stroke-grey-400"
143
144
  ),
144
145
  onClick: handleRemove,
@@ -167,7 +168,8 @@ const TagItemWrapper = React.memo(function TagItemWrapper2({
167
168
  onInlineCancel,
168
169
  onSpacerClick,
169
170
  onMouseDown,
170
- isAllSelected = false
171
+ isAllSelected = false,
172
+ defaultColor
171
173
  }) {
172
174
  const showInlineInput = insertAtIndex === index;
173
175
  const showDragIndicator = dragOverIndex === index && draggedIndex !== null && draggedIndex !== index;
@@ -177,7 +179,8 @@ const TagItemWrapper = React.memo(function TagItemWrapper2({
177
179
  {
178
180
  onAdd: onInlineAdd,
179
181
  onCancel: onInlineCancel,
180
- placeholder: inlinePlaceholder
182
+ placeholder: inlinePlaceholder,
183
+ color: defaultColor
181
184
  }
182
185
  ), /* @__PURE__ */ React.createElement("div", { className: "flex items-start gap-0.5 relative" }, /* @__PURE__ */ React.createElement(
183
186
  CustomTagItemComponent,
@@ -194,7 +197,8 @@ const TagItemWrapper = React.memo(function TagItemWrapper2({
194
197
  onDragEnd,
195
198
  isDragging: draggedIndex === index,
196
199
  onMouseDown,
197
- isAllSelected
200
+ isAllSelected,
201
+ defaultColor
198
202
  }
199
203
  ), showDragIndicator && /* @__PURE__ */ React.createElement("div", { className: "w-1 h-6 bg-blue-500 rounded-full animate-pulse self-center" }), showSpacer && /* @__PURE__ */ React.createElement(
200
204
  "div",
@@ -208,7 +212,7 @@ const TagItemWrapper = React.memo(function TagItemWrapper2({
208
212
  }
209
213
  )));
210
214
  });
211
- const InlineInput = React.memo(function InlineInput2({ onAdd, onCancel, placeholder }) {
215
+ const InlineInput = React.memo(function InlineInput2({ onAdd, onCancel, placeholder, color }) {
212
216
  const [value, setValue] = React.useState("");
213
217
  const inputRef = React.useRef(null);
214
218
  React.useEffect(() => {
@@ -237,7 +241,7 @@ const InlineInput = React.memo(function InlineInput2({ onAdd, onCancel, placehol
237
241
  onCancel();
238
242
  }
239
243
  }, [value, onAdd, onCancel]);
240
- return /* @__PURE__ */ React.createElement(Tag, { "data-tag": "true", color: "blue", className: "px-2 py-0 max-w-[15.625rem]", "data-inline-input": "true" }, /* @__PURE__ */ React.createElement(
244
+ return /* @__PURE__ */ React.createElement(Tag, { "data-tag": "true", color, className: "px-2 py-0 max-w-[15.625rem]", "data-inline-input": "true" }, /* @__PURE__ */ React.createElement(
241
245
  "input",
242
246
  {
243
247
  ref: inputRef,
@@ -247,7 +251,7 @@ const InlineInput = React.memo(function InlineInput2({ onAdd, onCancel, placehol
247
251
  onKeyDown: handleKeyDown,
248
252
  onBlur: handleBlur,
249
253
  placeholder,
250
- className: "bg-transparent border-none outline-none text-blue-700 body-small-400 min-w-[3.75rem] w-full px-1",
254
+ className: "bg-transparent border-none outline-none [color:inherit] body-small-400 min-w-[3.75rem] w-full px-1",
251
255
  onClick: (e) => e.stopPropagation(),
252
256
  style: { width: `${Math.min(Math.max(value.length * 8, 60), 250)}px` }
253
257
  }
@@ -680,7 +684,8 @@ function CustomTagInputRenderer({
680
684
  setInputValue,
681
685
  handleMouseDown,
682
686
  isAllSelected,
683
- setIsAllSelected
687
+ setIsAllSelected,
688
+ defaultColor
684
689
  }) {
685
690
  const showFinalInlineInput = insertAtIndex === value.length;
686
691
  const inputPlaceholder = value.length === 0 ? placeholder : "";
@@ -706,14 +711,16 @@ function CustomTagInputRenderer({
706
711
  onInlineCancel: handleInlineCancel,
707
712
  onSpacerClick: handleSpacerClick,
708
713
  onMouseDown: handleMouseDown,
709
- isAllSelected
714
+ isAllSelected,
715
+ defaultColor
710
716
  }
711
717
  )), showFinalInlineInput && /* @__PURE__ */ React.createElement(
712
718
  InlineInput,
713
719
  {
714
720
  onAdd: handleInlineAdd,
715
721
  onCancel: handleInlineCancel,
716
- placeholder: inlinePlaceholder
722
+ placeholder: inlinePlaceholder,
723
+ color: defaultColor
717
724
  }
718
725
  ), !readOnly && /* @__PURE__ */ React.createElement(
719
726
  "span",
@@ -749,6 +756,7 @@ function CustomTagInput(props) {
749
756
  allowDuplicates = false,
750
757
  enableReorder = true,
751
758
  onTagEdit,
759
+ color = "blue",
752
760
  ...restProps
753
761
  } = props;
754
762
  const [inputValue, setInputValue] = React.useState("");
@@ -849,7 +857,8 @@ function CustomTagInput(props) {
849
857
  setInputValue,
850
858
  handleMouseDown,
851
859
  isAllSelected,
852
- setIsAllSelected
860
+ setIsAllSelected,
861
+ defaultColor: color
853
862
  }
854
863
  )
855
864
  )
@@ -5,7 +5,7 @@ import { Tag } from '../Tag/Tag.js';
5
5
  import { textareaVariants } from '../Textarea/Textarea.js';
6
6
  import { Typography } from '../Typography/Typography.js';
7
7
 
8
- function TagItem({ item, onRemove, readOnly }) {
8
+ function TagItem({ item, onRemove, readOnly, defaultColor }) {
9
9
  const handleRemove = React.useCallback(
10
10
  (e) => {
11
11
  e.stopPropagation();
@@ -13,18 +13,19 @@ function TagItem({ item, onRemove, readOnly }) {
13
13
  },
14
14
  [item.value, onRemove]
15
15
  );
16
+ const tagColor = item.color || defaultColor;
16
17
  return /* @__PURE__ */ React.createElement(
17
18
  Tag,
18
19
  {
19
20
  "data-tag": "true",
20
- color: "blue",
21
+ color: tagColor,
21
22
  className: "max-w-[15.625rem] h-6 !px-2 !py-0.5"
22
23
  },
23
24
  /* @__PURE__ */ React.createElement(
24
25
  Typography,
25
26
  {
26
27
  variant: "body-small-400",
27
- className: "text-blue-600 truncate p-0"
28
+ className: "truncate p-0 [color:inherit]"
28
29
  },
29
30
  item.label
30
31
  ),
@@ -39,8 +40,8 @@ function TagItem({ item, onRemove, readOnly }) {
39
40
  )
40
41
  );
41
42
  }
42
- function HiddenCountTag({ count }) {
43
- return /* @__PURE__ */ React.createElement(Tag, { color: "blue", "data-tag": "true" }, /* @__PURE__ */ React.createElement(Typography, { variant: "body-small-400", className: "text-blue-600" }, "+", count));
43
+ function HiddenCountTag({ count, color }) {
44
+ return /* @__PURE__ */ React.createElement(Tag, { color, "data-tag": "true" }, /* @__PURE__ */ React.createElement(Typography, { variant: "body-small-400", className: "[color:inherit]" }, "+", count));
44
45
  }
45
46
  function calculateEstimatedWidths(value) {
46
47
  const AVG_CHAR_WIDTH = 8;
@@ -180,6 +181,7 @@ function TagInput(props) {
180
181
  className = "",
181
182
  variant = "default",
182
183
  radius = "default",
184
+ color = "blue",
183
185
  ...restProps
184
186
  } = props;
185
187
  const ref = React.useRef(null);
@@ -223,10 +225,11 @@ function TagInput(props) {
223
225
  key: item.value,
224
226
  item,
225
227
  onRemove: handleRemove,
226
- readOnly
228
+ readOnly,
229
+ defaultColor: color
227
230
  }
228
231
  )),
229
- actualHiddenCount > 0 && /* @__PURE__ */ React.createElement(HiddenCountTag, { count: actualHiddenCount })
232
+ actualHiddenCount > 0 && /* @__PURE__ */ React.createElement(HiddenCountTag, { count: actualHiddenCount, color })
230
233
  );
231
234
  }
232
235
 
package/dist/index.d.ts CHANGED
@@ -786,9 +786,9 @@ interface HeaderProps extends React$1.HTMLAttributes<HTMLElement>, VariantProps<
786
786
  }
787
787
 
788
788
  declare const inputVariants: (props?: ({
789
- variant?: "default" | "filled" | "borderless" | null | undefined;
790
- size?: "default" | "small" | "large" | null | undefined;
791
- radius?: "default" | "small" | "large" | "full" | null | undefined;
789
+ variant?: "filled" | "default" | "borderless" | null | undefined;
790
+ size?: "small" | "large" | "default" | null | undefined;
791
+ radius?: "small" | "large" | "default" | "full" | null | undefined;
792
792
  } & class_variance_authority_types.ClassProp) | undefined) => string;
793
793
  interface InputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputElement>, 'size' | 'sufix' | 'prefix'>, VariantProps<typeof inputVariants> {
794
794
  sufix?: React$1.ReactNode;
@@ -994,7 +994,7 @@ declare const RadioGroup: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimi
994
994
  declare const RadioGroupItem: React$1.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & React$1.RefAttributes<HTMLButtonElement>, "ref"> & React$1.RefAttributes<HTMLButtonElement>>;
995
995
 
996
996
  declare const ResizablePanelGroup: ({ className, ...props }: React$1.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => React$1.JSX.Element;
997
- declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLDivElement | HTMLElement | HTMLButtonElement | HTMLOListElement | HTMLLIElement | HTMLAnchorElement | HTMLSpanElement | HTMLHeadingElement | HTMLParagraphElement | HTMLLabelElement | HTMLInputElement | 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 | HTMLUListElement | HTMLVideoElement>, "id" | "onResize"> & {
997
+ declare const ResizablePanel: React$1.ForwardRefExoticComponent<Omit<React$1.HTMLAttributes<HTMLButtonElement | HTMLElement | HTMLDivElement | HTMLHeadingElement | HTMLParagraphElement | HTMLSpanElement | HTMLOListElement | HTMLLIElement | HTMLAnchorElement | HTMLUListElement | HTMLLabelElement | HTMLInputElement | 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"> & {
998
998
  className?: string;
999
999
  collapsedSize?: number | undefined;
1000
1000
  collapsible?: boolean | undefined;
@@ -1089,7 +1089,7 @@ declare const TooltipTrigger: React$1.ForwardRefExoticComponent<TooltipPrimitive
1089
1089
  declare const TooltipArrow: React$1.ForwardRefExoticComponent<TooltipPrimitive.TooltipArrowProps & React$1.RefAttributes<SVGSVGElement>>;
1090
1090
  declare const TooltipPortal: React$1.FC<TooltipPrimitive.TooltipPortalProps>;
1091
1091
  declare const tooltipContentVariants: (props?: ({
1092
- color?: "white" | "black" | null | undefined;
1092
+ color?: "black" | "white" | null | undefined;
1093
1093
  arrow?: boolean | null | undefined;
1094
1094
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1095
1095
  interface TooltipContentProps extends React$1.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>, VariantProps<typeof tooltipContentVariants> {
@@ -1160,9 +1160,9 @@ declare const TabsTrigger: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.
1160
1160
  declare const TabsContent: React$1.ForwardRefExoticComponent<Omit<TabsPrimitive.TabsContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1161
1161
 
1162
1162
  declare const textareaVariants: (props?: ({
1163
- variant?: "default" | "filled" | "borderless" | null | undefined;
1164
- size?: "default" | "small" | "large" | null | undefined;
1165
- radius?: "default" | "small" | "large" | "full" | null | undefined;
1163
+ variant?: "filled" | "default" | "borderless" | null | undefined;
1164
+ size?: "small" | "large" | "default" | null | undefined;
1165
+ radius?: "small" | "large" | "default" | "full" | null | undefined;
1166
1166
  resize?: "default" | "both" | "horizontal" | "vertical" | "vertical-limited" | null | undefined;
1167
1167
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1168
1168
  interface TextareaProps extends React$1.ComponentProps<'textarea'>, VariantProps<typeof textareaVariants> {
@@ -1240,8 +1240,9 @@ declare function Combobox({ options, value, onChange, placeholder, disabled, not
1240
1240
  interface TagItem {
1241
1241
  label: string;
1242
1242
  value: string;
1243
+ color?: TagProps['color'];
1243
1244
  }
1244
- interface TagInputProps extends React$1.HTMLAttributes<HTMLDivElement> {
1245
+ interface TagInputProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'color'> {
1245
1246
  value: TagItem[];
1246
1247
  onRemove: (value: string) => void;
1247
1248
  placeholder?: string;
@@ -1251,6 +1252,7 @@ interface TagInputProps extends React$1.HTMLAttributes<HTMLDivElement> {
1251
1252
  variant?: 'default' | 'filled' | 'borderless';
1252
1253
  radius?: 'default' | 'full';
1253
1254
  maxDisplayCount?: number;
1255
+ color?: TagProps['color'];
1254
1256
  }
1255
1257
  declare function TagInput(props: TagInputProps): React$1.JSX.Element;
1256
1258
 
@@ -1304,7 +1306,7 @@ declare const SheetClose: React$1.ForwardRefExoticComponent<DialogPrimitive.Dial
1304
1306
  declare const SheetPortal: React$1.FC<DialogPrimitive.DialogPortalProps>;
1305
1307
  declare const SheetOverlay: React$1.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
1306
1308
  declare const sheetVariants: (props?: ({
1307
- side?: "left" | "right" | "top" | "bottom" | null | undefined;
1309
+ side?: "top" | "right" | "bottom" | "left" | null | undefined;
1308
1310
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1309
1311
  interface SheetContentProps extends React$1.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>, VariantProps<typeof sheetVariants> {
1310
1312
  }
@@ -1323,8 +1325,9 @@ declare const SheetDescription: React$1.ForwardRefExoticComponent<Omit<DialogPri
1323
1325
  interface CustomTagItem {
1324
1326
  id: string;
1325
1327
  label: string;
1328
+ color?: TagProps['color'];
1326
1329
  }
1327
- interface CustomTagInputProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'onChange'> {
1330
+ interface CustomTagInputProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'onChange' | 'color'> {
1328
1331
  value: CustomTagItem[];
1329
1332
  onChange: (items: CustomTagItem[]) => void;
1330
1333
  placeholder?: string;
@@ -1338,6 +1341,7 @@ interface CustomTagInputProps extends Omit<React$1.HTMLAttributes<HTMLDivElement
1338
1341
  onTagEdit?: (item: CustomTagItem) => void;
1339
1342
  allowDuplicates?: boolean;
1340
1343
  enableReorder?: boolean;
1344
+ color?: TagProps['color'];
1341
1345
  }
1342
1346
  declare function CustomTagInput(props: CustomTagInputProps): React$1.JSX.Element;
1343
1347
 
@@ -1348,7 +1352,7 @@ interface DateInputProps extends Omit<React$1.InputHTMLAttributes<HTMLInputEleme
1348
1352
  declare const DateInput: React$1.ForwardRefExoticComponent<DateInputProps & React$1.RefAttributes<HTMLInputElement>>;
1349
1353
 
1350
1354
  declare const badgeVariants: (props?: ({
1351
- variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
1355
+ variant?: "destructive" | "default" | "outline" | "secondary" | null | undefined;
1352
1356
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1353
1357
  interface BadgeProps extends React$1.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
1354
1358
  }
@@ -1,79 +1,79 @@
1
- const extend = {
2
- colors: {
3
- background: 'hsl(var(--background))',
4
- foreground: 'hsl(var(--foreground))',
5
- card: {
6
- DEFAULT: 'hsl(var(--card))',
7
- foreground: 'hsl(var(--card-foreground))',
8
- },
9
- popover: {
10
- DEFAULT: 'hsl(var(--popover))',
11
- foreground: 'hsl(var(--popover-foreground))',
12
- },
13
- primary: {
14
- DEFAULT: 'hsl(var(--primary))',
15
- foreground: 'hsl(var(--primary-foreground))',
16
- },
17
- secondary: {
18
- DEFAULT: 'hsl(var(--secondary))',
19
- foreground: 'hsl(var(--secondary-foreground))',
20
- },
21
- muted: {
22
- DEFAULT: 'hsl(var(--muted))',
23
- foreground: 'hsl(var(--muted-foreground))',
24
- },
25
- accent: {
26
- DEFAULT: 'hsl(var(--accent))',
27
- foreground: 'hsl(var(--accent-foreground))',
28
- },
29
- destructive: {
30
- DEFAULT: 'hsl(var(--destructive))',
31
- foreground: 'hsl(var(--destructive-foreground))',
32
- },
33
- border: 'hsl(var(--border))',
34
- input: 'hsl(var(--input))',
35
- ring: 'hsl(var(--ring))',
36
- chart: {
37
- 1: 'hsl(var(--chart-1))',
38
- 2: 'hsl(var(--chart-2))',
39
- 3: 'hsl(var(--chart-3))',
40
- 4: 'hsl(var(--chart-4))',
41
- 5: 'hsl(var(--chart-5))',
42
- 6: 'hsl(var(--chart-6))',
43
- 7: 'hsl(var(--chart-7))',
44
- 8: 'hsl(var(--chart-8))',
45
- },
46
- sidebar: {
47
- DEFAULT: 'hsl(var(--sidebar-background))',
48
- foreground: 'hsl(var(--sidebar-foreground))',
49
- primary: 'hsl(var(--sidebar-primary))',
50
- 'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
51
- accent: 'hsl(var(--sidebar-accent))',
52
- 'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
53
- border: 'hsl(var(--sidebar-border))',
54
- ring: 'hsl(var(--sidebar-ring))',
55
- },
56
- },
57
- borderRadius: {
58
- lg: 'var(--radius)',
59
- md: 'calc(var(--radius) - 2px)',
60
- sm: 'calc(var(--radius) - 4px)',
61
- },
62
- keyframes: {
63
- 'accordion-down': {
64
- from: { height: '0' },
65
- to: { height: 'var(--radix-accordion-content-height)' },
66
- },
67
- 'accordion-up': {
68
- from: { height: 'var(--radix-accordion-content-height)' },
69
- to: { height: '0' },
70
- },
71
- },
72
- animation: {
73
- 'accordion-down': 'accordion-down 0.2s ease-out',
74
- 'accordion-up': 'accordion-up 0.2s ease-out',
75
- 'spin-slow': 'spin 2s linear infinite',
76
- },
77
- };
78
-
79
- export { extend };
1
+ const extend = {
2
+ colors: {
3
+ background: 'hsl(var(--background))',
4
+ foreground: 'hsl(var(--foreground))',
5
+ card: {
6
+ DEFAULT: 'hsl(var(--card))',
7
+ foreground: 'hsl(var(--card-foreground))',
8
+ },
9
+ popover: {
10
+ DEFAULT: 'hsl(var(--popover))',
11
+ foreground: 'hsl(var(--popover-foreground))',
12
+ },
13
+ primary: {
14
+ DEFAULT: 'hsl(var(--primary))',
15
+ foreground: 'hsl(var(--primary-foreground))',
16
+ },
17
+ secondary: {
18
+ DEFAULT: 'hsl(var(--secondary))',
19
+ foreground: 'hsl(var(--secondary-foreground))',
20
+ },
21
+ muted: {
22
+ DEFAULT: 'hsl(var(--muted))',
23
+ foreground: 'hsl(var(--muted-foreground))',
24
+ },
25
+ accent: {
26
+ DEFAULT: 'hsl(var(--accent))',
27
+ foreground: 'hsl(var(--accent-foreground))',
28
+ },
29
+ destructive: {
30
+ DEFAULT: 'hsl(var(--destructive))',
31
+ foreground: 'hsl(var(--destructive-foreground))',
32
+ },
33
+ border: 'hsl(var(--border))',
34
+ input: 'hsl(var(--input))',
35
+ ring: 'hsl(var(--ring))',
36
+ chart: {
37
+ 1: 'hsl(var(--chart-1))',
38
+ 2: 'hsl(var(--chart-2))',
39
+ 3: 'hsl(var(--chart-3))',
40
+ 4: 'hsl(var(--chart-4))',
41
+ 5: 'hsl(var(--chart-5))',
42
+ 6: 'hsl(var(--chart-6))',
43
+ 7: 'hsl(var(--chart-7))',
44
+ 8: 'hsl(var(--chart-8))',
45
+ },
46
+ sidebar: {
47
+ DEFAULT: 'hsl(var(--sidebar-background))',
48
+ foreground: 'hsl(var(--sidebar-foreground))',
49
+ primary: 'hsl(var(--sidebar-primary))',
50
+ 'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
51
+ accent: 'hsl(var(--sidebar-accent))',
52
+ 'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
53
+ border: 'hsl(var(--sidebar-border))',
54
+ ring: 'hsl(var(--sidebar-ring))',
55
+ },
56
+ },
57
+ borderRadius: {
58
+ lg: 'var(--radius)',
59
+ md: 'calc(var(--radius) - 2px)',
60
+ sm: 'calc(var(--radius) - 4px)',
61
+ },
62
+ keyframes: {
63
+ 'accordion-down': {
64
+ from: { height: '0' },
65
+ to: { height: 'var(--radix-accordion-content-height)' },
66
+ },
67
+ 'accordion-up': {
68
+ from: { height: 'var(--radix-accordion-content-height)' },
69
+ to: { height: '0' },
70
+ },
71
+ },
72
+ animation: {
73
+ 'accordion-down': 'accordion-down 0.2s ease-out',
74
+ 'accordion-up': 'accordion-up 0.2s ease-out',
75
+ 'spin-slow': 'spin 2s linear infinite',
76
+ },
77
+ };
78
+
79
+ export { extend };