@appcorp/shadcn 1.1.45 → 1.1.47

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,15 +1,22 @@
1
1
  import React from "react";
2
2
  import { type LucideIcon } from "lucide-react";
3
- export declare function NavMain({ items, }: {
4
- items: {
3
+ interface NavItem {
4
+ title: string;
5
+ url: string;
6
+ icon?: LucideIcon;
7
+ isActive?: boolean;
8
+ enabled: boolean;
9
+ order: number;
10
+ subItems?: {
5
11
  title: string;
6
12
  url: string;
7
- icon?: LucideIcon;
8
- isActive?: boolean;
9
- subItems?: {
10
- title: string;
11
- url: string;
12
- isActive: boolean;
13
- }[];
13
+ isActive: boolean;
14
+ enabled: boolean;
15
+ order: number;
14
16
  }[];
15
- }): React.JSX.Element;
17
+ }
18
+ interface NavMainProps {
19
+ items: NavItem[];
20
+ }
21
+ export declare const NavMain: React.NamedExoticComponent<NavMainProps>;
22
+ export {};
@@ -1,39 +1,88 @@
1
1
  "use client";
2
2
  "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
3
36
  var __importDefault = (this && this.__importDefault) || function (mod) {
4
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
5
38
  };
6
39
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.NavMain = NavMain;
8
- var react_1 = __importDefault(require("react"));
40
+ exports.NavMain = void 0;
41
+ var react_1 = __importStar(require("react"));
9
42
  var lucide_react_1 = require("lucide-react");
10
43
  var collapsible_1 = require("./ui/collapsible");
11
44
  var sidebar_1 = require("./sidebar");
12
45
  var link_1 = __importDefault(require("next/link"));
13
- function NavMain(_a) {
46
+ exports.NavMain = react_1.default.memo(function (_a) {
14
47
  var items = _a.items;
48
+ var processedItems = (0, react_1.useMemo)(function () {
49
+ return items
50
+ .filter(function (_a) {
51
+ var enabled = _a.enabled;
52
+ return enabled;
53
+ })
54
+ .sort(function (a, b) { return a.order - b.order; });
55
+ }, [items]);
15
56
  return (react_1.default.createElement(sidebar_1.SidebarGroup, null,
16
57
  react_1.default.createElement(sidebar_1.SidebarGroupLabel, null, "Current App"),
17
- react_1.default.createElement(sidebar_1.SidebarMenu, null, items.map(function (item) {
18
- var _a, _b, _c;
19
- if (!item.subItems || item.subItems.length === 0) {
20
- return (react_1.default.createElement(sidebar_1.SidebarMenuItem, { key: item.title },
58
+ react_1.default.createElement(sidebar_1.SidebarMenu, null, processedItems.map(function (item) {
59
+ var _a;
60
+ if (!((_a = item.subItems) === null || _a === void 0 ? void 0 : _a.length)) {
61
+ return (react_1.default.createElement(sidebar_1.SidebarMenuItem, { key: item.url },
21
62
  react_1.default.createElement(link_1.default, { href: item.url },
22
63
  react_1.default.createElement(sidebar_1.SidebarMenuButton, { className: "cursor-pointer" },
23
64
  item.icon && react_1.default.createElement(item.icon, null),
24
65
  react_1.default.createElement("span", null, item.title)))));
25
66
  }
26
- return (react_1.default.createElement(collapsible_1.Collapsible, { key: item.title, asChild: true, defaultOpen: item.isActive, className: "group/collapsible" },
67
+ var processedSubItems = (0, react_1.useMemo)(function () {
68
+ return item
69
+ .subItems.filter(function (_a) {
70
+ var enabled = _a.enabled;
71
+ return enabled;
72
+ })
73
+ .sort(function (a, b) { return a.order - b.order; });
74
+ }, [item.subItems]);
75
+ return (react_1.default.createElement(collapsible_1.Collapsible, { key: item.url, asChild: true, defaultOpen: item.isActive, className: "group/collapsible" },
27
76
  react_1.default.createElement(sidebar_1.SidebarMenuItem, null,
28
77
  react_1.default.createElement(collapsible_1.CollapsibleTrigger, { asChild: true },
29
78
  react_1.default.createElement(sidebar_1.SidebarMenuButton, { tooltip: item.title, className: item.isActive ? "bg-gray-300" : "" },
30
79
  item.icon && react_1.default.createElement(item.icon, null),
31
80
  react_1.default.createElement("span", null, item.title),
32
- (item === null || item === void 0 ? void 0 : item.subItems) && ((_a = item === null || item === void 0 ? void 0 : item.subItems) === null || _a === void 0 ? void 0 : _a.length) > 0 && (react_1.default.createElement(lucide_react_1.ChevronRight, { className: "ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" })))),
33
- (item === null || item === void 0 ? void 0 : item.subItems) && ((_b = item === null || item === void 0 ? void 0 : item.subItems) === null || _b === void 0 ? void 0 : _b.length) > 0 && (react_1.default.createElement(collapsible_1.CollapsibleContent, null,
34
- react_1.default.createElement(sidebar_1.SidebarMenuSub, null, (_c = item.subItems) === null || _c === void 0 ? void 0 : _c.map(function (subItem) { return (react_1.default.createElement(sidebar_1.SidebarMenuSubItem, { key: subItem.title, className: "rounded-md ".concat(subItem.isActive ? "bg-gray-200" : "") },
81
+ react_1.default.createElement(lucide_react_1.ChevronRight, { className: "ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90" }))),
82
+ processedSubItems.length > 0 && (react_1.default.createElement(collapsible_1.CollapsibleContent, null,
83
+ react_1.default.createElement(sidebar_1.SidebarMenuSub, null, processedSubItems.map(function (subItem) { return (react_1.default.createElement(sidebar_1.SidebarMenuSubItem, { key: subItem.url, className: "rounded-md ".concat(subItem.isActive ? "bg-gray-200" : "") },
35
84
  react_1.default.createElement(sidebar_1.SidebarMenuSubButton, { asChild: true },
36
85
  react_1.default.createElement(link_1.default, { href: subItem.url },
37
86
  react_1.default.createElement("span", null, subItem.title))))); })))))));
38
87
  }))));
39
- }
88
+ });
@@ -36,7 +36,13 @@ function NavUser(_a) {
36
36
  react_1.default.createElement("span", { className: "truncate font-medium" }, user.name),
37
37
  react_1.default.createElement("span", { className: "truncate text-xs" }, user.email)))),
38
38
  react_1.default.createElement(dropdown_menu_1.DropdownMenuSeparator, null),
39
- footerNavItems.map(function (item) {
39
+ footerNavItems
40
+ .filter(function (_a) {
41
+ var enabled = _a.enabled;
42
+ return enabled;
43
+ })
44
+ .sort(function (a, b) { return a.order - b.order; })
45
+ .map(function (item) {
40
46
  if (item.title === "Divider") {
41
47
  return react_1.default.createElement(dropdown_menu_1.DropdownMenuSeparator, { key: item.title });
42
48
  }
@@ -32,7 +32,13 @@ var TeamSwitcher = function (_a) {
32
32
  react_1.default.createElement(lucide_react_1.ChevronsUpDown, { className: "ml-auto" }))),
33
33
  react_1.default.createElement(dropdown_menu_1.DropdownMenuContent, { className: "w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg", align: "start", side: isMobile ? "bottom" : "right", sideOffset: 4 },
34
34
  react_1.default.createElement(dropdown_menu_1.DropdownMenuLabel, { className: "text-muted-foreground text-xs" }, "Profiles"),
35
- profiles.map(function (profile) { return (react_1.default.createElement(dropdown_menu_1.DropdownMenuItem, { key: profile.name, onClick: function () { return setActiveMember(profile); }, className: "gap-2 p-2" },
35
+ profiles
36
+ .filter(function (_a) {
37
+ var enabled = _a.enabled;
38
+ return enabled;
39
+ })
40
+ .sort(function (a, b) { return a.order - b.order; })
41
+ .map(function (profile) { return (react_1.default.createElement(dropdown_menu_1.DropdownMenuItem, { key: profile.name, onClick: function () { return setActiveMember(profile); }, className: "gap-2 p-2" },
36
42
  react_1.default.createElement("div", { className: "flex size-6 items-center justify-center rounded-md border" },
37
43
  react_1.default.createElement(avatar_1.Avatar, { className: "size-6" },
38
44
  react_1.default.createElement(avatar_1.AvatarImage, { src: profile.avatar, alt: profile.name }),
@@ -4,22 +4,30 @@ export interface DashboardProfileItem {
4
4
  name: string;
5
5
  avatar: string;
6
6
  age: string;
7
+ enabled: boolean;
8
+ order: number;
7
9
  }
8
10
  export interface DashboardNavItem {
9
11
  title: string;
10
12
  url: string;
11
13
  icon: typeof Frame;
12
14
  isActive: boolean;
15
+ enabled: boolean;
16
+ order: number;
13
17
  subItems: Array<{
14
18
  title: string;
15
19
  url: string;
16
20
  isActive: boolean;
21
+ enabled: boolean;
22
+ order: number;
17
23
  }>;
18
24
  }
19
25
  export interface AppItem {
20
26
  name: string;
21
27
  url: string;
22
28
  icon: typeof PieChart;
29
+ enabled: boolean;
30
+ order: number;
23
31
  }
24
32
  export interface BreadcrumbItem {
25
33
  label: string;
@@ -8,11 +8,15 @@ exports.adminDashboardData = {
8
8
  name: "Analytics",
9
9
  url: "#",
10
10
  icon: lucide_react_1.PieChart,
11
+ enabled: true,
12
+ order: 1,
11
13
  },
12
14
  {
13
15
  name: "Terminal",
14
16
  url: "#",
15
17
  icon: lucide_react_1.SquareTerminal,
18
+ enabled: true,
19
+ order: 2,
16
20
  },
17
21
  ],
18
22
  offerUrl: "/offer",
@@ -27,11 +31,15 @@ exports.adminDashboardData = {
27
31
  name: "Subhan",
28
32
  avatar: "https://www.w3schools.com/w3images/avatar6.png",
29
33
  age: "3 Yrs",
34
+ enabled: true,
35
+ order: 1,
30
36
  },
31
37
  {
32
38
  name: "Mustajab",
33
39
  avatar: "https://www.w3schools.com/w3images/avatar6.png",
34
40
  age: "4 Yrs",
41
+ enabled: false,
42
+ order: 2,
35
43
  },
36
44
  ],
37
45
  navItems: [
@@ -40,6 +48,8 @@ exports.adminDashboardData = {
40
48
  url: "/dashboard",
41
49
  icon: lucide_react_1.SquareTerminal,
42
50
  isActive: false,
51
+ enabled: true,
52
+ order: 1,
43
53
  subItems: [],
44
54
  },
45
55
  {
@@ -47,51 +57,71 @@ exports.adminDashboardData = {
47
57
  url: "#",
48
58
  icon: lucide_react_1.Bot,
49
59
  isActive: true,
60
+ enabled: true,
61
+ order: 2,
50
62
  subItems: [
51
63
  {
52
64
  title: "Manage",
53
65
  url: "",
54
66
  isActive: true,
67
+ enabled: true,
68
+ order: 1,
55
69
  },
56
70
  {
57
71
  title: "Toddler / Early childhood",
58
72
  url: "#",
59
73
  isActive: false,
74
+ enabled: true,
75
+ order: 2,
60
76
  },
61
77
  {
62
78
  title: "Preschool / Pre-kindergarten",
63
79
  url: "#",
64
80
  isActive: false,
81
+ enabled: true,
82
+ order: 3,
65
83
  },
66
84
  {
67
85
  title: "Kindergarten",
68
86
  url: "#",
69
87
  isActive: false,
88
+ enabled: true,
89
+ order: 4,
70
90
  },
71
91
  {
72
92
  title: "Grade / Standard 1",
73
93
  url: "#",
74
94
  isActive: false,
95
+ enabled: true,
96
+ order: 5,
75
97
  },
76
98
  {
77
99
  title: "Grade / Standard 2",
78
100
  url: "#",
79
101
  isActive: false,
102
+ enabled: true,
103
+ order: 6,
80
104
  },
81
105
  {
82
106
  title: "Grade / Standard 3",
83
107
  url: "#",
84
108
  isActive: false,
109
+ enabled: true,
110
+ order: 7,
85
111
  },
86
112
  {
87
113
  title: "Grade / Standard 4",
88
114
  url: "#",
89
115
  isActive: false,
116
+ enabled: true,
117
+ order: 8,
90
118
  },
91
119
  {
92
120
  title: "Grade / Standard 5",
93
121
  url: "#",
94
122
  isActive: false,
123
+ enabled: true,
124
+ order: 9,
95
125
  },
96
126
  ],
97
127
  },
@@ -100,46 +130,64 @@ exports.adminDashboardData = {
100
130
  url: "#",
101
131
  icon: lucide_react_1.Bot,
102
132
  isActive: false,
133
+ enabled: true,
134
+ order: 3,
103
135
  subItems: [
104
136
  {
105
137
  title: "Toddler / Early childhood",
106
138
  url: "#",
107
139
  isActive: false,
140
+ enabled: true,
141
+ order: 1,
108
142
  },
109
143
  {
110
144
  title: "Preschool / Pre-kindergarten",
111
145
  url: "#",
112
146
  isActive: false,
147
+ enabled: true,
148
+ order: 2,
113
149
  },
114
150
  {
115
151
  title: "Kindergarten",
116
152
  url: "#",
117
153
  isActive: false,
154
+ enabled: true,
155
+ order: 3,
118
156
  },
119
157
  {
120
158
  title: "Grade / Standard 1",
121
159
  url: "#",
122
160
  isActive: false,
161
+ enabled: true,
162
+ order: 4,
123
163
  },
124
164
  {
125
165
  title: "Grade / Standard 2",
126
166
  url: "#",
127
167
  isActive: false,
168
+ enabled: true,
169
+ order: 5,
128
170
  },
129
171
  {
130
172
  title: "Grade / Standard 3",
131
173
  url: "#",
132
174
  isActive: false,
175
+ enabled: true,
176
+ order: 6,
133
177
  },
134
178
  {
135
179
  title: "Grade / Standard 4",
136
180
  url: "#",
137
181
  isActive: false,
182
+ enabled: true,
183
+ order: 7,
138
184
  },
139
185
  {
140
186
  title: "Grade / Standard 5",
141
187
  url: "#",
142
188
  isActive: false,
189
+ enabled: true,
190
+ order: 8,
143
191
  },
144
192
  ],
145
193
  },
@@ -148,26 +196,36 @@ exports.adminDashboardData = {
148
196
  url: "#",
149
197
  icon: lucide_react_1.BookOpen,
150
198
  isActive: false,
199
+ enabled: true,
200
+ order: 4,
151
201
  subItems: [
152
202
  {
153
203
  title: "Introduction",
154
204
  url: "#",
155
205
  isActive: false,
206
+ enabled: true,
207
+ order: 1,
156
208
  },
157
209
  {
158
210
  title: "Get Started",
159
211
  url: "#",
160
212
  isActive: false,
213
+ enabled: true,
214
+ order: 2,
161
215
  },
162
216
  {
163
217
  title: "Tutorials",
164
218
  url: "#",
165
219
  isActive: false,
220
+ enabled: true,
221
+ order: 3,
166
222
  },
167
223
  {
168
224
  title: "Changelog",
169
225
  url: "#",
170
226
  isActive: false,
227
+ enabled: true,
228
+ order: 4,
171
229
  },
172
230
  ],
173
231
  },
@@ -176,16 +234,22 @@ exports.adminDashboardData = {
176
234
  url: "#",
177
235
  icon: lucide_react_1.Settings2,
178
236
  isActive: false,
237
+ enabled: true,
238
+ order: 5,
179
239
  subItems: [
180
240
  {
181
241
  title: "General",
182
242
  url: "#",
183
243
  isActive: false,
244
+ enabled: true,
245
+ order: 1,
184
246
  },
185
247
  {
186
248
  title: "Kids",
187
249
  url: "#",
188
250
  isActive: false,
251
+ enabled: true,
252
+ order: 2,
189
253
  },
190
254
  ],
191
255
  },
@@ -196,6 +260,8 @@ exports.adminDashboardData = {
196
260
  url: "#",
197
261
  icon: lucide_react_1.Sparkles,
198
262
  isActive: false,
263
+ enabled: true,
264
+ order: 1,
199
265
  subItems: [],
200
266
  },
201
267
  {
@@ -203,6 +269,8 @@ exports.adminDashboardData = {
203
269
  url: "#",
204
270
  icon: lucide_react_1.Sparkles,
205
271
  isActive: false,
272
+ enabled: true,
273
+ order: 2,
206
274
  subItems: [],
207
275
  },
208
276
  {
@@ -210,6 +278,8 @@ exports.adminDashboardData = {
210
278
  url: "#",
211
279
  icon: lucide_react_1.BadgeCheck,
212
280
  isActive: false,
281
+ enabled: true,
282
+ order: 3,
213
283
  subItems: [],
214
284
  },
215
285
  {
@@ -217,6 +287,8 @@ exports.adminDashboardData = {
217
287
  url: "#",
218
288
  icon: lucide_react_1.CreditCard,
219
289
  isActive: false,
290
+ enabled: true,
291
+ order: 4,
220
292
  subItems: [],
221
293
  },
222
294
  {
@@ -224,6 +296,8 @@ exports.adminDashboardData = {
224
296
  url: "#",
225
297
  icon: lucide_react_1.Bell,
226
298
  isActive: false,
299
+ enabled: true,
300
+ order: 5,
227
301
  subItems: [],
228
302
  },
229
303
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appcorp/shadcn",
3
- "version": "1.1.45",
3
+ "version": "1.1.47",
4
4
  "scripts": {
5
5
  "build:next": "next build",
6
6
  "build:storybook": "mv ../.pnp.cjs ../.pnp.cjs.bak 2>/dev/null || true && storybook build -c .storybook -o .out && mv ../.pnp.cjs.bak ../.pnp.cjs 2>/dev/null || true",