@mbao01/common 0.6.3 → 0.6.5

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.
@@ -1,2 +1,2 @@
1
1
  import { BadgeProps } from './types';
2
- export declare const Badge: ({ size, outline, rounded, variant, className, ...props }: BadgeProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const Badge: ({ size, outline, rounded, variant, soft, className, ...props }: BadgeProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,6 @@
1
1
  export declare const getBadgeClasses: (props?: ({
2
2
  variant?: "accent" | "error" | "ghost" | "info" | "neutral" | "primary" | "secondary" | "success" | "warning" | null | undefined;
3
+ soft?: boolean | null | undefined;
3
4
  outline?: boolean | null | undefined;
4
5
  size?: "xs" | "sm" | "md" | "lg" | null | undefined;
5
6
  rounded?: "xs" | "sm" | "md" | "lg" | null | undefined;
@@ -1,7 +1,7 @@
1
1
  import { NameType, Payload as TooltipPayload, ValueType } from 'recharts/types/component/DefaultTooltipContent';
2
2
  import { LegendPayload } from 'recharts';
3
3
  import { ChartConfig } from './types';
4
- export declare const getPayloadConfigFromPayload: (config: ChartConfig, payload: LegendPayload | TooltipPayload<ValueType, NameType>, key: string) => ({
4
+ export declare const getPayloadConfigFromPayload: (config: ChartConfig, payload: LegendPayload | Omit<TooltipPayload<ValueType, NameType>, "graphicalItemId">, key: string) => ({
5
5
  label?: import('react').ReactNode;
6
6
  icon?: import('react').ComponentType;
7
7
  } & ({
@@ -56,6 +56,7 @@ export declare const DatetimeInput: import('react').ForwardRefExoticComponent<{
56
56
  broadcastCalendar?: boolean | undefined;
57
57
  ISOWeek?: boolean | undefined;
58
58
  timeZone?: string | undefined | undefined;
59
+ noonSafe?: boolean | undefined | undefined;
59
60
  components?: Partial<import('react-day-picker').CustomComponents> | undefined;
60
61
  initialFocus?: boolean | undefined;
61
62
  today?: Date | undefined;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mbao01/common",
3
3
  "private": false,
4
- "version": "0.6.3",
4
+ "version": "0.6.5",
5
5
  "type": "module",
6
6
  "author": "Ayomide Bakare",
7
7
  "license": "MIT",
@@ -99,8 +99,8 @@
99
99
  "cmdk": "^1.1.1",
100
100
  "date-fns": "^4.1.0",
101
101
  "embla-carousel-react": "^8.6.0",
102
- "lucide-react": "^0.559.0",
103
- "react-day-picker": "^9.12.0",
102
+ "lucide-react": "^0.562.0",
103
+ "react-day-picker": "^9.13.0",
104
104
  "react-dropzone": "^14.3.8",
105
105
  "react-international-phone": "^4.6.1",
106
106
  "react-otp-input": "^3.1.1",
@@ -112,51 +112,51 @@
112
112
  "vaul": "^1.1.2"
113
113
  },
114
114
  "devDependencies": {
115
- "@eslint/js": "^9.39.1",
115
+ "@eslint/js": "^9.39.2",
116
116
  "@ianvs/prettier-plugin-sort-imports": "^4.7.0",
117
- "@storybook/addon-a11y": "^10.1.6",
117
+ "@storybook/addon-a11y": "^10.1.11",
118
118
  "@storybook/addon-coverage": "^3.0.0",
119
- "@storybook/addon-docs": "^10.1.6",
120
- "@storybook/addon-links": "^10.1.6",
121
- "@storybook/addon-onboarding": "^10.1.6",
122
- "@storybook/addon-themes": "^10.1.6",
123
- "@storybook/react-vite": "^10.1.6",
119
+ "@storybook/addon-docs": "^10.1.11",
120
+ "@storybook/addon-links": "^10.1.11",
121
+ "@storybook/addon-onboarding": "^10.1.11",
122
+ "@storybook/addon-themes": "^10.1.11",
123
+ "@storybook/react-vite": "^10.1.11",
124
124
  "@storybook/test-runner": "^0.24.2",
125
- "@tailwindcss/postcss": "^4.1.17",
126
- "@tailwindcss/vite": "^4.1.17",
125
+ "@tailwindcss/postcss": "^4.1.18",
126
+ "@tailwindcss/vite": "^4.1.18",
127
127
  "@testing-library/jest-dom": "^6.9.1",
128
- "@testing-library/react": "^16.3.0",
128
+ "@testing-library/react": "^16.3.1",
129
129
  "@testing-library/user-event": "^14.6.1",
130
130
  "@types/jest-image-snapshot": "^6.4.0",
131
- "@types/node": "^25.0.0",
131
+ "@types/node": "^25.0.3",
132
132
  "@types/react": "^19.2.7",
133
133
  "@types/react-dom": "^19.2.3",
134
- "@typescript-eslint/eslint-plugin": "^8.49.0",
135
- "@typescript-eslint/parser": "^8.49.0",
134
+ "@typescript-eslint/eslint-plugin": "^8.51.0",
135
+ "@typescript-eslint/parser": "^8.51.0",
136
136
  "@vitejs/plugin-react": "^5.1.2",
137
137
  "@vitest/coverage-v8": "^3.2.4",
138
138
  "@vitest/ui": "^3.2.4",
139
139
  "axe-playwright": "^2.2.2",
140
- "daisyui": "^5.5.11",
141
- "eslint": "^9.39.1",
140
+ "daisyui": "^5.5.14",
141
+ "eslint": "^9.39.2",
142
142
  "eslint-plugin-react": "^7.37.5",
143
143
  "eslint-plugin-react-hooks": "^7.0.1",
144
- "eslint-plugin-react-refresh": "^0.4.24",
145
- "eslint-plugin-storybook": "^10.1.6",
144
+ "eslint-plugin-react-refresh": "^0.4.26",
145
+ "eslint-plugin-storybook": "^10.1.11",
146
146
  "globals": "^16.5.0",
147
147
  "jest-image-snapshot": "^6.5.1",
148
- "jsdom": "^27.3.0",
148
+ "jsdom": "^27.4.0",
149
149
  "path": "^0.12.7",
150
150
  "postcss": "^8.5.6",
151
151
  "prettier": "^3.7.4",
152
- "react": "^19.2.1",
153
- "react-dom": "^19.2.1",
154
- "react-router-dom": "^7.10.1",
155
- "recharts": "^3.5.1",
156
- "storybook": "^10.1.6",
157
- "tailwindcss": "^4.1.17",
152
+ "react": "^19.2.3",
153
+ "react-dom": "^19.2.3",
154
+ "react-router-dom": "^7.11.0",
155
+ "recharts": "^3.6.0",
156
+ "storybook": "^10.1.11",
157
+ "tailwindcss": "^4.1.18",
158
158
  "typescript": "^5.9.3",
159
- "typescript-eslint": "^8.49.0",
159
+ "typescript-eslint": "^8.51.0",
160
160
  "vite": "^6.4.1",
161
161
  "vite-plugin-dts": "^4.5.4",
162
162
  "vitest": "^3.2.4"
@@ -168,5 +168,5 @@
168
168
  "recharts": "2",
169
169
  "typescript": "5"
170
170
  },
171
- "gitHead": "de45dbee958479f770fa71c2656a1b230fe86cdb"
171
+ "gitHead": "f3359c587061980729e83322e4f6330e04e0815e"
172
172
  }
@@ -2,10 +2,18 @@ import { cn } from "../../utilities";
2
2
  import { getBadgeClasses } from "./constants";
3
3
  import { type BadgeProps } from "./types";
4
4
 
5
- export const Badge = ({ size, outline, rounded, variant, className, ...props }: BadgeProps) => {
5
+ export const Badge = ({
6
+ size,
7
+ outline,
8
+ rounded,
9
+ variant,
10
+ soft,
11
+ className,
12
+ ...props
13
+ }: BadgeProps) => {
6
14
  return (
7
15
  <span
8
- className={cn(getBadgeClasses({ size, variant, outline, rounded }), className)}
16
+ className={cn(getBadgeClasses({ size, variant, outline, rounded, soft }), className)}
9
17
  {...props}
10
18
  />
11
19
  );
@@ -14,6 +14,9 @@ export const getBadgeClasses = cva("badge", {
14
14
  success: "badge-success",
15
15
  warning: "badge-warning",
16
16
  },
17
+ soft: {
18
+ true: "badge-soft",
19
+ },
17
20
  outline: {
18
21
  true: "badge-outline",
19
22
  },
@@ -30,21 +33,6 @@ export const getBadgeClasses = cva("badge", {
30
33
  lg: "rounded-lg",
31
34
  },
32
35
  }),
33
- compoundVariants: [
34
- {
35
- size: undefined,
36
- className: "text-xs",
37
- },
38
- {
39
- rounded: undefined,
40
- className: "rounded-md",
41
- },
42
- {
43
- variant: "ghost",
44
- outline: true,
45
- className: "border-base-300",
46
- },
47
- ],
48
36
  defaultVariants: {
49
37
  variant: "ghost",
50
38
  },
@@ -9,7 +9,7 @@ import { type ChartConfig } from "./types";
9
9
  // Helper to extract item config from a payload.
10
10
  export const getPayloadConfigFromPayload = (
11
11
  config: ChartConfig,
12
- payload: LegendPayload | TooltipPayload<ValueType, NameType>,
12
+ payload: LegendPayload | Omit<TooltipPayload<ValueType, NameType>, "graphicalItemId">,
13
13
  key: string
14
14
  ) => {
15
15
  if (typeof payload !== "object" || payload === null) {
@@ -115,12 +115,12 @@ export const getSidebarProviderClasses = cva(
115
115
  export const getSidebarGroupClasses = cva("relative flex w-full min-w-0 flex-col p-2");
116
116
 
117
117
  export const getSidebarGroupLabelClasses = cva([
118
- "duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-hidden ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
118
+ "duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-hidden ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&]:**:data-[sidebar-icon]:size-4 [&]:**:data-[sidebar-icon]:shrink-0",
119
119
  "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
120
120
  ]);
121
121
 
122
122
  export const getSidebarGroupActionClasses = cva([
123
- "absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
123
+ "absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&]:**:data-[sidebar-icon]:size-4 [&]:**:data-[sidebar-icon]:shrink-0",
124
124
  // Increases the hit area of the button on mobile.
125
125
  "after:absolute after:-inset-2 md:after:hidden",
126
126
  "group-data-[collapsible=icon]:hidden",
@@ -133,7 +133,7 @@ export const getSidebarMenuClasses = cva("flex w-full min-w-0 flex-col gap-1");
133
133
  export const getSidebarMenuItemClasses = cva("group/menu-item relative");
134
134
 
135
135
  export const getSidebarMenuButtonClasses = cva(
136
- "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
136
+ "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&]:**:data-[sidebar-icon]:size-4 [&]:**:data-[sidebar-icon]:shrink-0",
137
137
  {
138
138
  variants: createVariants({
139
139
  outline: {
@@ -163,7 +163,7 @@ export const getSidebarMenuButtonClasses = cva(
163
163
 
164
164
  export const getSidebarMenuActionClasses = cva(
165
165
  [
166
- "absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0",
166
+ "absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&]:**:data-[sidebar-icon]:size-4 [&]:**:data-[sidebar-icon]:shrink-0",
167
167
  // Increases the hit area of the button on mobile.
168
168
  "after:absolute after:-inset-2 md:after:hidden",
169
169
  "peer-data-[size=sm]/menu-button:top-1",
@@ -198,7 +198,7 @@ export const getSidebarMenuSubClasses = cva([
198
198
 
199
199
  export const getSidebarMenuSubItemClasses = cva(
200
200
  [
201
- "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground",
201
+ "flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&]:**:data-[sidebar-icon]:size-4 [&]:**:data-[sidebar-icon]:shrink-0",
202
202
  "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",
203
203
  "group-data-[collapsible=icon]:hidden",
204
204
  ],
@@ -1,22 +1,22 @@
1
1
  import {
2
- AudioWaveform,
3
- BookOpen,
4
- Bot,
5
- ChevronRight,
6
- Command,
7
- File,
8
- Folder,
9
- Frame,
10
- GalleryVerticalEnd,
11
- Map,
12
- Minus,
13
- MoreHorizontal,
14
- PieChart,
15
- Plus,
16
- Settings2,
17
- Share,
18
- SquareTerminal,
19
- Trash2,
2
+ AudioWaveformIcon,
3
+ BookOpenIcon,
4
+ BotIcon,
5
+ ChevronRightIcon,
6
+ CommandIcon,
7
+ FileIcon,
8
+ FolderIcon,
9
+ FrameIcon,
10
+ GalleryVerticalEndIcon,
11
+ MapIcon,
12
+ MinusIcon,
13
+ MoreHorizontalIcon,
14
+ PieChartIcon,
15
+ PlusIcon,
16
+ Settings2Icon,
17
+ ShareIcon,
18
+ SquareTerminalIcon,
19
+ Trash2Icon,
20
20
  } from "lucide-react";
21
21
  import { Collapsible } from "../../../../Collapsible";
22
22
  import { DropdownMenu } from "../../../../Menu";
@@ -39,17 +39,17 @@ const data = {
39
39
  teams: [
40
40
  {
41
41
  name: "Acme Inc",
42
- logo: GalleryVerticalEnd,
42
+ logo: GalleryVerticalEndIcon,
43
43
  plan: "Enterprise",
44
44
  },
45
45
  {
46
46
  name: "Acme Corp.",
47
- logo: AudioWaveform,
47
+ logo: AudioWaveformIcon,
48
48
  plan: "Startup",
49
49
  },
50
50
  {
51
51
  name: "Evil Corp.",
52
- logo: Command,
52
+ logo: CommandIcon,
53
53
  plan: "Free",
54
54
  },
55
55
  ],
@@ -57,7 +57,7 @@ const data = {
57
57
  {
58
58
  title: "Playground",
59
59
  url: "#",
60
- icon: SquareTerminal,
60
+ icon: SquareTerminalIcon,
61
61
  isActive: true,
62
62
  items: [
63
63
  {
@@ -78,7 +78,7 @@ const data = {
78
78
  {
79
79
  title: "Models",
80
80
  url: "#",
81
- icon: Bot,
81
+ icon: BotIcon,
82
82
  isActive: false,
83
83
  items: [
84
84
  {
@@ -98,7 +98,7 @@ const data = {
98
98
  {
99
99
  title: "Documentation",
100
100
  url: "#",
101
- icon: BookOpen,
101
+ icon: BookOpenIcon,
102
102
  isActive: false,
103
103
  items: [
104
104
  {
@@ -122,7 +122,7 @@ const data = {
122
122
  {
123
123
  title: "Settings",
124
124
  url: "#",
125
- icon: Settings2,
125
+ icon: Settings2Icon,
126
126
  isActive: false,
127
127
  items: [
128
128
  {
@@ -148,17 +148,17 @@ const data = {
148
148
  {
149
149
  name: "Design Engineering",
150
150
  url: "#",
151
- icon: Frame,
151
+ icon: FrameIcon,
152
152
  },
153
153
  {
154
154
  name: "Sales & Marketing",
155
155
  url: "#",
156
- icon: PieChart,
156
+ icon: PieChartIcon,
157
157
  },
158
158
  {
159
159
  name: "Travel",
160
160
  url: "#",
161
- icon: Map,
161
+ icon: MapIcon,
162
162
  },
163
163
  ],
164
164
  };
@@ -217,7 +217,7 @@ export const AppSidebarWithCollapsibleGroup = (props: SidebarProps) => {
217
217
  >
218
218
  <Collapsible.Trigger>
219
219
  {item.title}{" "}
220
- <ChevronRight className="ml-auto transition-transform group-data-[state=open]/collapsible:rotate-90" />
220
+ <ChevronRightIcon data-sidebar-icon className="ml-auto transition-transform group-data-[state=open]/collapsible:rotate-90" />
221
221
  </Collapsible.Trigger>
222
222
  </SidebarGroup.Label>
223
223
  <Collapsible.Content>
@@ -251,7 +251,7 @@ export const AppSidebarWithSubMenu = (props: SidebarProps) => {
251
251
  <SidebarMenu.Button size="lg" asChild>
252
252
  <a href="#">
253
253
  <div className="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
254
- <GalleryVerticalEnd className="size-4" />
254
+ <GalleryVerticalEndIcon className="size-4" />
255
255
  </div>
256
256
  <div className="flex flex-col gap-0.5 leading-none">
257
257
  <span className="font-semibold">Documentation</span>
@@ -275,12 +275,12 @@ export const AppSidebarWithSubMenu = (props: SidebarProps) => {
275
275
  <SidebarMenu.Item key={item.title}>
276
276
  <Collapsible.Trigger asChild>
277
277
  <SidebarMenu.Button tooltip={item.title}>
278
- {item.icon && <item.icon />}
278
+ {item.icon && <item.icon data-sidebar-icon />}
279
279
  <a href={item.url} className="font-medium">
280
280
  {item.title}
281
281
  </a>
282
- <Plus className="ml-auto group-data-[state=open]/collapsible:hidden" />
283
- <Minus className="ml-auto group-data-[state=closed]/collapsible:hidden" />
282
+ <PlusIcon data-sidebar-icon className="ml-auto group-data-[state=open]/collapsible:hidden" />
283
+ <MinusIcon data-sidebar-icon className="ml-auto group-data-[state=closed]/collapsible:hidden" />
284
284
  </SidebarMenu.Button>
285
285
  </Collapsible.Trigger>
286
286
  <Collapsible.Content>
@@ -318,7 +318,7 @@ export const AppSidebarWithSecondaryNavigation = (props: SidebarProps) => {
318
318
  <SidebarMenu.Button size="lg" asChild>
319
319
  <a href="#">
320
320
  <div className="flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground">
321
- <GalleryVerticalEnd className="size-4" />
321
+ <GalleryVerticalEndIcon className="size-4" />
322
322
  </div>
323
323
  <div className="flex flex-col gap-0.5 leading-none">
324
324
  <span className="font-semibold">Documentation</span>
@@ -342,12 +342,12 @@ export const AppSidebarWithSecondaryNavigation = (props: SidebarProps) => {
342
342
  <SidebarMenu.Item key={item.title}>
343
343
  <Collapsible.Trigger asChild>
344
344
  <SidebarMenu.Button tooltip={item.title}>
345
- {item.icon && <item.icon />}
345
+ {item.icon && <item.icon data-sidebar-icon />}
346
346
  <a href={item.url} className="font-medium">
347
347
  {item.title}
348
348
  </a>
349
- <Plus className="ml-auto group-data-[state=open]/collapsible:hidden" />
350
- <Minus className="ml-auto group-data-[state=closed]/collapsible:hidden" />
349
+ <PlusIcon data-sidebar-icon className="ml-auto group-data-[state=open]/collapsible:hidden" />
350
+ <MinusIcon data-sidebar-icon className="ml-auto group-data-[state=closed]/collapsible:hidden" />
351
351
  </SidebarMenu.Button>
352
352
  </Collapsible.Trigger>
353
353
  <Collapsible.Content>
@@ -376,14 +376,14 @@ export const AppSidebarWithSecondaryNavigation = (props: SidebarProps) => {
376
376
  <SidebarMenu.Item key={item.name}>
377
377
  <SidebarMenu.Button asChild>
378
378
  <a href={item.url}>
379
- <item.icon />
379
+ <item.icon data-sidebar-icon />
380
380
  <span>{item.name}</span>
381
381
  </a>
382
382
  </SidebarMenu.Button>
383
383
  <DropdownMenu>
384
384
  <DropdownMenu.Trigger asChild>
385
385
  <SidebarMenu.Action showOnHover>
386
- <MoreHorizontal />
386
+ <MoreHorizontalIcon data-sidebar-icon />
387
387
  <span className="sr-only">More</span>
388
388
  </SidebarMenu.Action>
389
389
  </DropdownMenu.Trigger>
@@ -393,16 +393,16 @@ export const AppSidebarWithSecondaryNavigation = (props: SidebarProps) => {
393
393
  align={isMobile ? "end" : "start"}
394
394
  >
395
395
  <DropdownMenu.Item>
396
- <Folder className="text-muted-foreground" />
396
+ <FolderIcon data-sidebar-icon className="text-muted-foreground" />
397
397
  <span>View Project</span>
398
398
  </DropdownMenu.Item>
399
399
  <DropdownMenu.Item>
400
- <Share className="text-muted-foreground" />
400
+ <ShareIcon data-sidebar-icon className="text-muted-foreground" />
401
401
  <span>Share Project</span>
402
402
  </DropdownMenu.Item>
403
403
  <DropdownMenu.Separator />
404
404
  <DropdownMenu.Item>
405
- <Trash2 className="text-muted-foreground" />
405
+ <Trash2Icon data-sidebar-icon className="text-muted-foreground" />
406
406
  <span>Delete Project</span>
407
407
  </DropdownMenu.Item>
408
408
  </DropdownMenu.Content>
@@ -411,7 +411,7 @@ export const AppSidebarWithSecondaryNavigation = (props: SidebarProps) => {
411
411
  ))}
412
412
  <SidebarMenu.Item>
413
413
  <SidebarMenu.Button>
414
- <MoreHorizontal />
414
+ <MoreHorizontalIcon data-sidebar-icon />
415
415
  <span>More</span>
416
416
  </SidebarMenu.Button>
417
417
  </SidebarMenu.Item>
@@ -463,7 +463,7 @@ const Tree = ({ item }: { item: TreeType }) => {
463
463
  isActive={name === "button.tsx"}
464
464
  className="data-[active=true]:bg-transparent"
465
465
  >
466
- <File />
466
+ <FileIcon data-sidebar-icon />
467
467
  {name}
468
468
  </SidebarMenu.Button>
469
469
  );
@@ -477,8 +477,8 @@ const Tree = ({ item }: { item: TreeType }) => {
477
477
  >
478
478
  <Collapsible.Trigger asChild>
479
479
  <SidebarMenu.Button>
480
- <ChevronRight className="transition-transform" />
481
- <Folder />
480
+ <ChevronRightIcon data-sidebar-icon className="transition-transform" />
481
+ <FolderIcon data-sidebar-icon />
482
482
  {name}
483
483
  </SidebarMenu.Button>
484
484
  </Collapsible.Trigger>
@@ -505,7 +505,7 @@ export const AppSidebarCollapsibleTree = (props: SidebarProps) => {
505
505
  {treeData.changes.map((item, index) => (
506
506
  <SidebarMenu.Item key={index}>
507
507
  <SidebarMenu.Button>
508
- <File />
508
+ <FileIcon data-sidebar-icon />
509
509
  {item.file}
510
510
  </SidebarMenu.Button>
511
511
  <SidebarMenu.Badge>{item.state}</SidebarMenu.Badge>
@@ -18,7 +18,7 @@ export const SearchForm = ({ ...props }: React.ComponentProps<"form">) => {
18
18
  placeholder="Search the docs..."
19
19
  className="pl-8"
20
20
  />
21
- <Search className="pointer-events-none absolute left-2 top-1/2 size-4 -translate-y-1/2 select-none opacity-50" />
21
+ <Search className="pointer-events-none absolute left-2 top-1/2 size-4 -translate-y-1/2 select-none opacity-50 z-1" />
22
22
  </SidebarGroup.Content>
23
23
  </SidebarGroup>
24
24
  </form>