@postxl/generators 1.0.1 → 1.0.3

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.
@@ -15,7 +15,7 @@ export type WithBase<Context extends Generator.Context = Generator.Context> = Ge
15
15
  export type BaseContext = {
16
16
  packageJson: Generator.PackageJsonConfig;
17
17
  /**
18
- * An example for the module's env configuration.
18
+ * Parameters that will be generated in root .env.example file.
19
19
  *
20
20
  * Example:
21
21
  * DATABASE_CONNECTION=postgresql://postgres:postgres@localhost:5432/pxl
@@ -62,10 +62,11 @@ const baseDevDependencies = [
62
62
  ];
63
63
  const workspaceScripts = [
64
64
  { name: 'generate', command: 'pnpm run generate:project' },
65
- { name: 'generate:project', command: 'node ../../packages/cli/dist/index.js generate' },
65
+ { name: 'generate:project', command: 'pnpm run generate:project:pxl' },
66
+ { name: 'generate:project:pxl', command: 'node ../../packages/cli/dist/index.js generate' },
66
67
  {
67
68
  name: 'generate:watch',
68
- command: "chokidar '../../packages/**/dist/**' '../../generators/**/dist/**' '../../generators/**/template/**' './generate.ts' './postxl-schema.json' -c 'pnpm run generate:project -f -i'",
69
+ command: "chokidar '../../packages/**/dist/**' '../../generators/**/dist/**' '../../generators/**/template/**' './generate.ts' './postxl-schema.json' -c 'pnpm run generate:project:pxl -f -i'",
69
70
  },
70
71
  { name: 'pxl', command: 'node ../../packages/cli/dist/index.js' },
71
72
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"base.generator.js","sourceRoot":"","sources":["../../src/base/base.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.generator.js","sourceRoot":"","sources":["../../src/base/base.generator.ts"],"names":[],"mappings":"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"}
File without changes
@@ -44,17 +44,15 @@ function generateAdminSidebar({ context }) {
44
44
  //
45
45
  .from(Generator.toBackendModuleLocation('@ui/admin/AdminSidebar'))
46
46
  .addImport({
47
- from: Generator.toBackendModuleLocation('@components/ui/sidebar/sidebar'),
47
+ from: Generator.toPackageName('react'),
48
+ items: [Generator.toFunctionName('useState')],
49
+ })
50
+ .addImport({
51
+ from: Generator.toPackageName('@radix-ui/react-icons'),
48
52
  items: [
49
- Generator.toFunctionName('Sidebar'),
50
- Generator.toFunctionName('SidebarContent'),
51
- Generator.toFunctionName('SidebarHeader'),
52
- Generator.toFunctionName('SidebarItem'),
53
- Generator.toFunctionName('sidebarLinkClassName'),
54
- Generator.toFunctionName('SidebarMobileToggle'),
55
- Generator.toFunctionName('SidebarOverlay'),
56
- Generator.toFunctionName('SidebarProvider'),
57
- Generator.toFunctionName('SidebarSection'),
53
+ Generator.toFunctionName('ChevronRightIcon'),
54
+ Generator.toFunctionName('ChevronDownIcon'),
55
+ Generator.toFunctionName('ChevronLeftIcon'),
58
56
  ],
59
57
  });
60
58
  const { schemas: sortedSchemas, modelsBySchema } = (0, utils_1.groupAndSortModelsBySchema)(context);
@@ -64,16 +62,34 @@ function generateAdminSidebar({ context }) {
64
62
  const models = modelsBySchema.get(schema);
65
63
  const modelLinks = models
66
64
  .map((model) => `
67
- <SidebarItem key="${model.name}">
68
- <Link to="${model.route}" className={sidebarLinkClassName}>
69
- ${model.userFriendlyName}
70
- </Link>
71
- </SidebarItem>`)
65
+ <li key="${model.name}">
66
+ <Link
67
+ to="${model.route}"
68
+ className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
69
+ >
70
+ ${model.userFriendlyName}
71
+ </Link>
72
+ </li>`)
72
73
  .join('');
73
74
  return `
74
- <SidebarSection key="${schema}" title="${schema}">
75
- ${modelLinks}
76
- </SidebarSection>`;
75
+ <div key="${schema}" className="mb-4">
76
+ <button
77
+ onClick={() => toggleSchema('${schema}')}
78
+ className="flex items-center justify-between w-full px-4 py-2 font-semibold text-left hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
79
+ >
80
+ <span>${schema}</span>
81
+ {expandedSchemas['${schema}'] ? (
82
+ <ChevronDownIcon className="w-4 h-4" />
83
+ ) : (
84
+ <ChevronRightIcon className="w-4 h-4" />
85
+ )}
86
+ </button>
87
+ {expandedSchemas['${schema}'] && (
88
+ <ul className="mt-2 ml-2 space-y-1">
89
+ ${modelLinks}
90
+ </ul>
91
+ )}
92
+ </div>`;
77
93
  })
78
94
  .join('');
79
95
  return `
@@ -81,34 +97,98 @@ import { Link } from '@tanstack/react-router'
81
97
  ${imports.generate()}
82
98
 
83
99
  export function AdminSidebar() {
100
+ const [isOpen, setIsOpen] = useState(false)
101
+ const [isCollapsed, setIsCollapsed] = useState(false)
102
+ const [expandedSchemas, setExpandedSchemas] = useState<Record<string, boolean>>({
103
+ ${sortedSchemas.map((schema) => `'${schema}': true`).join(',\n ')},
104
+ 'Advanced': true
105
+ })
106
+
107
+ const toggleSchema = (schema: string) => {
108
+ setExpandedSchemas((prev) => ({
109
+ ...prev,
110
+ [schema]: !prev[schema],
111
+ }))
112
+ }
113
+
84
114
  return (
85
- <SidebarProvider>
86
- <SidebarMobileToggle />
87
- <Sidebar>
115
+ <>
116
+ {/* Mobile toggle button */}
117
+ <button
118
+ onClick={() => setIsOpen(!isOpen)}
119
+ className="fixed top-4 left-4 z-50 md:hidden p-2 bg-white dark:bg-gray-900 rounded shadow-lg border border-gray-200 dark:border-gray-700"
120
+ aria-label="Toggle admin menu"
121
+ >
122
+ {isOpen ? <ChevronDownIcon className="w-6 h-6" /> : <ChevronRightIcon className="w-6 h-6" />}
123
+ </button>
124
+
125
+ {/* Sidebar */}
126
+ <aside
127
+ className={\`
128
+ fixed md:sticky top-0 left-0 h-screen bg-white dark:bg-gray-900 border-r border-gray-200 dark:border-gray-700
129
+ overflow-y-auto transition-all duration-300 z-40
130
+ \${isOpen ? 'translate-x-0' : '-translate-x-full md:translate-x-0'}
131
+ \${isCollapsed ? 'w-16 min-w-16' : 'w-64 min-w-64'}
132
+ \`}
133
+ >
88
134
  <div className="p-4">
89
- <SidebarHeader
90
- title={
135
+ <div className="flex items-center justify-between mb-4">
136
+ {!isCollapsed && (
91
137
  <Link to="/admin" className="text-lg font-bold hover:text-blue-600 dark:hover:text-blue-400 transition-colors">
92
138
  Admin
93
139
  </Link>
94
- }
95
- />
96
- <SidebarContent>
97
- ${schemaSections}
98
- {import.meta.env.NEXT_PUBLIC_ALLOW_ADMIN === 'true' && (
99
- <SidebarSection title="Advanced">
100
- <SidebarItem>
101
- <Link to="/admin/data-management" className={sidebarLinkClassName}>
102
- Data Management
103
- </Link>
104
- </SidebarItem>
105
- </SidebarSection>
106
140
  )}
107
- </SidebarContent>
141
+ <button
142
+ onClick={() => setIsCollapsed(!isCollapsed)}
143
+ className="hidden md:block p-1 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors ml-auto"
144
+ aria-label={isCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}
145
+ >
146
+ {isCollapsed ? <ChevronRightIcon className="w-5 h-5" /> : <ChevronLeftIcon className="w-5 h-5" />}
147
+ </button>
148
+ </div>
149
+ {!isCollapsed && (
150
+ <nav>
151
+ ${schemaSections}
152
+ {import.meta.env.NEXT_PUBLIC_ALLOW_ADMIN === 'true' && (
153
+ <div key="Advanced" className="mb-4">
154
+ <button
155
+ onClick={() => toggleSchema('Advanced')}
156
+ className="flex items-center justify-between w-full px-4 py-2 font-semibold text-left hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
157
+ >
158
+ <span>Advanced</span>
159
+ {expandedSchemas['Advanced'] ? (
160
+ <ChevronDownIcon className="w-4 h-4" />
161
+ ) : (
162
+ <ChevronRightIcon className="w-4 h-4" />
163
+ )}
164
+ </button>
165
+ {expandedSchemas['Advanced'] && (
166
+ <ul className="mt-2 ml-2 space-y-1">
167
+ <li key="DataManagement">
168
+ <Link
169
+ to="/admin/data-management"
170
+ className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
171
+ >
172
+ Data Management
173
+ </Link>
174
+ </li>
175
+ </ul>
176
+ )}
177
+ </div>
178
+ )}
179
+ </nav>
180
+ )}
108
181
  </div>
109
- </Sidebar>
110
- <SidebarOverlay />
111
- </SidebarProvider>
182
+ </aside>
183
+
184
+ {/* Overlay for mobile */}
185
+ {isOpen && (
186
+ <div
187
+ className="fixed inset-0 bg-black/20 z-30 md:hidden"
188
+ onClick={() => setIsOpen(false)}
189
+ />
190
+ )}
191
+ </>
112
192
  )
113
193
  }
114
194
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"admin-sidebar.generator.js","sourceRoot":"","sources":["../../../src/frontend-admin/generators/admin-sidebar.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,oDA+EC;AAvFD,6DAA8C;AAG9C,oCAAqD;AAErD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,EAAE,OAAO,EAA8B;IAC1E,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe;QACvC,EAAE;SACD,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,CAAC,CAAC;SACjE,SAAS,CAAC;QACT,IAAI,EAAE,SAAS,CAAC,uBAAuB,CAAC,gCAAgC,CAAC;QACzE,KAAK,EAAE;YACL,SAAS,CAAC,cAAc,CAAC,SAAS,CAAC;YACnC,SAAS,CAAC,cAAc,CAAC,gBAAgB,CAAC;YAC1C,SAAS,CAAC,cAAc,CAAC,eAAe,CAAC;YACzC,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC;YACvC,SAAS,CAAC,cAAc,CAAC,sBAAsB,CAAC;YAChD,SAAS,CAAC,cAAc,CAAC,qBAAqB,CAAC;YAC/C,SAAS,CAAC,cAAc,CAAC,gBAAgB,CAAC;YAC1C,SAAS,CAAC,cAAc,CAAC,iBAAiB,CAAC;YAC3C,SAAS,CAAC,cAAc,CAAC,gBAAgB,CAAC;SAC3C;KACF,CAAC,CAAA;IAEJ,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAA,kCAA0B,EAAC,OAAO,CAAC,CAAA;IAEtF,+BAA+B;IAC/B,MAAM,cAAc,GAAG,aAAa;SACjC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;QAC1C,MAAM,UAAU,GAAG,MAAM;aACtB,GAAG,CACF,CAAC,KAAK,EAAE,EAAE,CAAC;kCACa,KAAK,CAAC,IAAI;4BAChB,KAAK,CAAC,KAAK;oBACnB,KAAK,CAAC,gBAAgB;;6BAEb,CACpB;aACA,IAAI,CAAC,EAAE,CAAC,CAAA;QAEX,OAAO;mCACsB,MAAM,YAAY,MAAM;gBAC3C,UAAU;8BACI,CAAA;IAC1B,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAA;IAEX,OAAO;;EAEP,OAAO,CAAC,QAAQ,EAAE;;;;;;;;;;;;;;;;cAgBN,cAAc;;;;;;;;;;;;;;;;;CAiB3B,CAAA;AACD,CAAC"}
1
+ {"version":3,"file":"admin-sidebar.generator.js","sourceRoot":"","sources":["../../../src/frontend-admin/generators/admin-sidebar.generator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,oDA+JC;AAvKD,6DAA8C;AAG9C,oCAAqD;AAErD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,EAAE,OAAO,EAA8B;IAC1E,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe;QACvC,EAAE;SACD,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,CAAC,CAAC;SACjE,SAAS,CAAC;QACT,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC;QACtC,KAAK,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;KAC9C,CAAC;SACD,SAAS,CAAC;QACT,IAAI,EAAE,SAAS,CAAC,aAAa,CAAC,uBAAuB,CAAC;QACtD,KAAK,EAAE;YACL,SAAS,CAAC,cAAc,CAAC,kBAAkB,CAAC;YAC5C,SAAS,CAAC,cAAc,CAAC,iBAAiB,CAAC;YAC3C,SAAS,CAAC,cAAc,CAAC,iBAAiB,CAAC;SAC5C;KACF,CAAC,CAAA;IAEJ,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAA,kCAA0B,EAAC,OAAO,CAAC,CAAA;IAEtF,+BAA+B;IAC/B,MAAM,cAAc,GAAG,aAAa;SACjC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAE,CAAA;QAC1C,MAAM,UAAU,GAAG,MAAM;aACtB,GAAG,CACF,CAAC,KAAK,EAAE,EAAE,CAAC;qBACA,KAAK,CAAC,IAAI;;oBAEX,KAAK,CAAC,KAAK;;;gBAGf,KAAK,CAAC,gBAAgB;;gBAEtB,CACP;aACA,IAAI,CAAC,EAAE,CAAC,CAAA;QAEX,OAAO;gBACG,MAAM;;uCAEiB,MAAM;;;gBAG7B,MAAM;4BACM,MAAM;;;;;;0BAMR,MAAM;;YAEpB,UAAU;;;WAGX,CAAA;IACP,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAA;IAEX,OAAO;;EAEP,OAAO,CAAC,QAAQ,EAAE;;;;;;MAMd,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAgDxD,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C7B,CAAA;AACD,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import * as Generator from '@postxl/generator';
2
2
  import { ConfigBuilder } from '@postxl/generator';
3
+ import { WithBase } from '../base';
3
4
  import { Component, FrontendContextEntry } from './types';
5
+ export type ContextRequirements = WithBase<Generator.Context>;
4
6
  export declare const base: FrontendContextEntry;
5
7
  /**
6
8
  * Can be used to augment the base config with our form input components.
@@ -15,7 +17,7 @@ export declare const forms: {
15
17
  };
16
18
  };
17
19
  /**
18
- * TODO backport chats from portfolex (when ready)
20
+ * TODO backport charts from portfolex (when ready)
19
21
  */
20
22
  export declare const charts: {
21
23
  components: "chart"[];
@@ -61,7 +61,6 @@ exports.base = {
61
61
  'progress',
62
62
  'radio-group',
63
63
  'select',
64
- 'sidebar',
65
64
  'skeleton',
66
65
  'slider',
67
66
  'spinner',
@@ -217,7 +216,7 @@ exports.forms = {
217
216
  },
218
217
  };
219
218
  /**
220
- * TODO backport chats from portfolex (when ready)
219
+ * TODO backport charts from portfolex (when ready)
221
220
  */
222
221
  exports.charts = {
223
222
  components: ['chart'],
@@ -337,9 +336,23 @@ const configureFrontendGenerator = (into) => ({
337
336
  implementsInterface: [exports.frontendGeneratorId],
338
337
  requires: [],
339
338
  register: (context) => {
339
+ const packageName = (0, generator_1.toPostXlPackageName)(`@postxl/${context.schema.slug}-frontend`);
340
340
  const frontend = into ? into(new generator_1.ConfigBuilder(exports.base)).done() : exports.base;
341
- frontend.packageJson.name = (0, generator_1.toPostXlPackageName)(`@postxl/${context.schema.slug}-frontend`);
341
+ frontend.packageJson.name = packageName;
342
342
  frontend.packageJson.description = `Frontend for the ${context.schema.slug} project`;
343
+ frontend.packageJson.scripts.push({ name: 'generate:tsr', command: 'tsr generate' });
344
+ context.base.packageJson.scripts.push({
345
+ name: 'generate:tsr',
346
+ command: `pnpm --filter ${packageName} exec tsr generate`,
347
+ });
348
+ // replace the generate script to also run tsr generate
349
+ const generateScript = context.base.packageJson.scripts.find((s) => s.name === 'generate:project');
350
+ if (generateScript) {
351
+ generateScript.command += ' && pnpm run generate:tsr';
352
+ }
353
+ else {
354
+ context.base.packageJson.scripts.push({ name: 'generate:project', command: 'pnpm run generate:tsr' });
355
+ }
343
356
  return { ...context, frontend };
344
357
  },
345
358
  // TODO @Peter: context type <Context extends ContextResult>(context: Context): void => {
@@ -1 +1 @@
1
- {"version":3,"file":"frontend.generator.js","sourceRoot":"","sources":["../../src/frontend-core/frontend.generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frontend.generator.js","sourceRoot":"","sources":["../../src/frontend-core/frontend.generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from '@radix-ui/react-icons'
2
+
3
+ import { useState } from 'react'
4
+
5
+ export function AdminSidebar() {
6
+ const [isOpen, setIsOpen] = useState(false)
7
+ const [isCollapsed, setIsCollapsed] = useState(false)
8
+ const [expandedSchemas, setExpandedSchemas] = useState<Record<string, boolean>>({
9
+ Data: true,
10
+ PXL: true,
11
+ Advanced: true,
12
+ })
13
+
14
+ const toggleSchema = (schema: string) => {
15
+ setExpandedSchemas((prev) => ({
16
+ ...prev,
17
+ [schema]: !prev[schema],
18
+ }))
19
+ }
20
+
21
+ return (
22
+ <>
23
+ {/* Mobile toggle button */}
24
+ <button
25
+ onClick={() => setIsOpen(!isOpen)}
26
+ className="fixed top-4 left-4 z-50 md:hidden p-2 bg-white dark:bg-gray-900 rounded shadow-lg border border-gray-200 dark:border-gray-700"
27
+ aria-label="Toggle admin menu"
28
+ >
29
+ {isOpen ? <ChevronDownIcon className="w-6 h-6" /> : <ChevronRightIcon className="w-6 h-6" />}
30
+ </button>
31
+
32
+ {/* Sidebar */}
33
+ <aside
34
+ className={`
35
+ fixed md:sticky top-0 left-0 h-screen bg-white dark:bg-gray-900 border-r border-gray-200 dark:border-gray-700
36
+ overflow-y-auto transition-all duration-300 z-40
37
+ ${isOpen ? 'translate-x-0' : '-translate-x-full md:translate-x-0'}
38
+ ${isCollapsed ? 'w-16 min-w-16' : 'w-64 min-w-64'}
39
+ `}
40
+ >
41
+ <div className="p-4">
42
+ <div className="flex items-center justify-between mb-4">
43
+ {!isCollapsed && (
44
+ <a
45
+ href="/admin"
46
+ className="text-lg font-bold hover:text-blue-600 dark:hover:text-blue-400 transition-colors"
47
+ >
48
+ Admin
49
+ </a>
50
+ )}
51
+ <button
52
+ onClick={() => setIsCollapsed(!isCollapsed)}
53
+ className="hidden md:block p-1 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors ml-auto"
54
+ aria-label={isCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}
55
+ >
56
+ {isCollapsed ? <ChevronRightIcon className="w-5 h-5" /> : <ChevronLeftIcon className="w-5 h-5" />}
57
+ </button>
58
+ </div>
59
+ {!isCollapsed && (
60
+ <nav>
61
+ <div key="Data" className="mb-4">
62
+ <button
63
+ onClick={() => toggleSchema('Data')}
64
+ className="flex items-center justify-between w-full px-4 py-2 font-semibold text-left hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
65
+ >
66
+ <span>Data</span>
67
+ {expandedSchemas['Data'] ? (
68
+ <ChevronDownIcon className="w-4 h-4" />
69
+ ) : (
70
+ <ChevronRightIcon className="w-4 h-4" />
71
+ )}
72
+ </button>
73
+ {expandedSchemas['Data'] && (
74
+ <ul className="mt-2 ml-2 space-y-1">
75
+ <li key="Country">
76
+ <a
77
+ href="/admin/countries"
78
+ className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
79
+ >
80
+ Country
81
+ </a>
82
+ </li>
83
+ <li key="Post">
84
+ <a
85
+ href="/admin/posts"
86
+ className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
87
+ >
88
+ Post
89
+ </a>
90
+ </li>
91
+ <li key="Publication">
92
+ <a
93
+ href="/admin/publications"
94
+ className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
95
+ >
96
+ Publication
97
+ </a>
98
+ </li>
99
+ <li key="ViewStatistic">
100
+ <Link
101
+ href="/admin/viewStatistics"
102
+ className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
103
+ >
104
+ ViewStatistic
105
+ </Link>
106
+ </li>
107
+ </ul>
108
+ )}
109
+ </div>
110
+ <div key="PXL" className="mb-4">
111
+ <button
112
+ onClick={() => toggleSchema('PXL')}
113
+ className="flex items-center justify-between w-full px-4 py-2 font-semibold text-left hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
114
+ >
115
+ <span>PXL</span>
116
+ {expandedSchemas['PXL'] ? (
117
+ <ChevronDownIcon className="w-4 h-4" />
118
+ ) : (
119
+ <ChevronRightIcon className="w-4 h-4" />
120
+ )}
121
+ </button>
122
+ {expandedSchemas['PXL'] && (
123
+ <ul className="mt-2 ml-2 space-y-1">
124
+ <li key="Action">
125
+ <a
126
+ href="/admin/actions"
127
+ className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
128
+ >
129
+ Action
130
+ </a>
131
+ </li>
132
+ <li key="ActionOperation">
133
+ <a
134
+ href="/admin/actionOperations"
135
+ className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
136
+ >
137
+ ActionOperation
138
+ </a>
139
+ </li>
140
+ <li key="File">
141
+ <a
142
+ href="/admin/files"
143
+ className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
144
+ >
145
+ File
146
+ </a>
147
+ </li>
148
+ <li key="User">
149
+ <a
150
+ href="/admin/users"
151
+ className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
152
+ >
153
+ User
154
+ </a>
155
+ </li>
156
+ </ul>
157
+ )}
158
+ </div>
159
+ {process.env.NEXT_PUBLIC_ALLOW_ADMIN === 'true' && (
160
+ <div key="Advanced" className="mb-4">
161
+ <button
162
+ onClick={() => toggleSchema('Advanced')}
163
+ className="flex items-center justify-between w-full px-4 py-2 font-semibold text-left hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
164
+ >
165
+ <span>Advanced</span>
166
+ {expandedSchemas['Advanced'] ? (
167
+ <ChevronDownIcon className="w-4 h-4" />
168
+ ) : (
169
+ <ChevronRightIcon className="w-4 h-4" />
170
+ )}
171
+ </button>
172
+ {expandedSchemas['Advanced'] && (
173
+ <ul className="mt-2 ml-2 space-y-1">
174
+ <li key="DataManagement">
175
+ <Link
176
+ href="/admin/data-management"
177
+ className="block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
178
+ >
179
+ Data Management
180
+ </Link>
181
+ </li>
182
+ </ul>
183
+ )}
184
+ </div>
185
+ )}
186
+ </nav>
187
+ )}
188
+ </div>
189
+ </aside>
190
+
191
+ {/* Overlay for mobile */}
192
+ {isOpen && <div className="fixed inset-0 bg-black/20 z-30 md:hidden" onClick={() => setIsOpen(false)} />}
193
+ </>
194
+ )
195
+ }
@@ -40,22 +40,25 @@ export default defineConfig({
40
40
  // Split large dependencies into separate chunks
41
41
  if (id.includes('node_modules')) {
42
42
  switch (true) {
43
- // TanStack Dev Tools - MUST be first (contains 'react' and 'router'/'query')
44
- case id.includes('@tanstack/router-devtools-core') ||
45
- id.includes('@tanstack/react-devtools') ||
46
- id.includes('@tanstack/react-query-devtools') ||
47
- id.includes('@tanstack/react-router-devtools') ||
48
- id.includes('@tanstack/devtools'):
43
+ case id.includes('/@tanstack/router-devtools-core/') ||
44
+ id.includes('/@tanstack/react-devtools/') ||
45
+ id.includes('/@tanstack/react-query-devtools/') ||
46
+ id.includes('/@tanstack/react-router-devtools/') ||
47
+ id.includes('/@tanstack/devtools/'):
49
48
  return 'tanstack-dev-tools'
50
49
 
50
+ // TanStack Router
51
+ case id.includes('@tanstack/react-router'):
52
+ return 'tanstack-router'
53
+
54
+ // TanStack Query + tRPC
55
+ case id.includes('@tanstack/react-query') || id.includes('@trpc/'):
56
+ return 'tanstack-query'
57
+
51
58
  // zod
52
59
  case id.includes('/zod'):
53
60
  return 'zod'
54
61
 
55
- // radix library
56
- case id.includes('@radix-ui/react'):
57
- return 'radix-ui'
58
-
59
62
  // React core - MUST be together to avoid duplication
60
63
  case id.includes('react') || id.includes('react-dom'):
61
64
  return 'react-vendor'
@@ -68,18 +71,6 @@ export default defineConfig({
68
71
  case id.includes('@visx/'):
69
72
  return 'visx'
70
73
 
71
- // Radix UI - design system components
72
- case id.includes('@radix-ui/'):
73
- return 'radix-ui'
74
-
75
- // TanStack Router
76
- case id.includes('@tanstack/react-router'):
77
- return 'tanstack-router'
78
-
79
- // TanStack Query + tRPC
80
- case id.includes('@tanstack/react-query') || id.includes('@trpc/'):
81
- return 'tanstack-query'
82
-
83
74
  default:
84
75
  // All other vendor code
85
76
  return 'vendor'
@@ -1 +1 @@
1
- export type Component = 'accordion' | 'admin-sidebar' | 'alert' | 'alert-dialog' | 'avatar' | 'badge' | 'breadcrumb' | 'button' | 'calendar' | 'card' | 'card-hover' | 'carousel' | 'chart' | 'checkbox' | 'collapse' | 'combobox' | 'command' | 'command-palette' | 'content-frame' | 'context-menu' | 'data-grid' | 'data-table' | 'date-picker' | 'dialog' | 'drawer' | 'dropdown-menu' | 'input' | 'label' | 'loader' | 'mark-value-renderer' | 'menubar' | 'modal' | 'navigation-menu' | 'pagination' | 'popover' | 'progress' | 'radio-group' | 'resizable' | 'scroll-area' | 'select' | 'separator' | 'sheet' | 'sidebar' | 'skeleton' | 'slider' | 'spinner' | 'spreadsheet' | 'switch' | 'tabs' | 'textarea' | 'toast' | 'toggle' | 'toggle-group' | 'tooltip';
1
+ export type Component = 'accordion' | 'admin-sidebar' | 'alert' | 'alert-dialog' | 'avatar' | 'badge' | 'breadcrumb' | 'button' | 'calendar' | 'card' | 'card-hover' | 'carousel' | 'chart' | 'checkbox' | 'collapse' | 'combobox' | 'command' | 'command-palette' | 'content-frame' | 'context-menu' | 'data-grid' | 'data-table' | 'date-picker' | 'dialog' | 'drawer' | 'dropdown-menu' | 'input' | 'label' | 'loader' | 'mark-value-renderer' | 'menubar' | 'modal' | 'navigation-menu' | 'pagination' | 'popover' | 'progress' | 'radio-group' | 'resizable' | 'scroll-area' | 'select' | 'separator' | 'sheet' | 'skeleton' | 'slider' | 'spinner' | 'spreadsheet' | 'switch' | 'tabs' | 'textarea' | 'toast' | 'toggle' | 'toggle-group' | 'tooltip';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@postxl/generators",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Code generators for PXL - generates backend, frontend, Prisma schemas, and more",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -35,17 +35,6 @@
35
35
  "files": [
36
36
  "dist"
37
37
  ],
38
- "scripts": {
39
- "build": "tsc -b tsconfig.build.json && pnpm run copy:templates",
40
- "copy:templates": "find src -type d -name 'template' -exec sh -c 'mkdir -p \"dist/$(dirname \"$1\" | sed \"s|^src/||\")\" && cp -r \"$1\" \"dist/$(dirname \"$1\" | sed \"s|^src/||\")\"' _ {} \\;",
41
- "generate": "tsx src/frontend-core/scripts/generate-types.ts",
42
- "lint": "eslint .",
43
- "prettier:check": "prettier --check \"**/*.{ts,tsx}\" --config ../../prettier.config.js --ignore-path ../../.prettierignore",
44
- "test:jest": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest",
45
- "test:coverage": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --coverage",
46
- "test:watch": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --watch",
47
- "test:types": "tsc --noEmit"
48
- },
49
38
  "repository": {
50
39
  "type": "git",
51
40
  "url": "https://github.com/postxl/pxl",
@@ -53,10 +42,10 @@
53
42
  },
54
43
  "dependencies": {
55
44
  "@faker-js/faker": "^9.4.0",
56
- "@postxl/generator": "workspace:*",
57
- "@postxl/schema": "workspace:*",
58
45
  "@prisma/prisma-schema-wasm": "6.20.0-5.46b83975fec203f6665832b932ab3dc58be23eab",
59
- "exceljs": "^4.4.0"
46
+ "exceljs": "^4.4.0",
47
+ "@postxl/generator": "^1.0.3",
48
+ "@postxl/schema": "^1.0.0"
60
49
  },
61
50
  "devDependencies": {},
62
51
  "wallaby": {
@@ -66,5 +55,16 @@
66
55
  "runner": "--experimental-vm-modules"
67
56
  }
68
57
  }
58
+ },
59
+ "scripts": {
60
+ "build": "tsc -b tsconfig.build.json && pnpm run copy:templates",
61
+ "copy:templates": "find src -type d -name 'template' -exec sh -c 'mkdir -p \"dist/$(dirname \"$1\" | sed \"s|^src/||\")\" && cp -r \"$1\" \"dist/$(dirname \"$1\" | sed \"s|^src/||\")\"' _ {} \\;",
62
+ "generate": "tsx src/frontend-core/scripts/generate-types.ts",
63
+ "lint": "eslint .",
64
+ "prettier:check": "prettier --check \"**/*.{ts,tsx}\" --config ../../prettier.config.js --ignore-path ../../.prettierignore",
65
+ "test:jest": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest",
66
+ "test:coverage": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --coverage",
67
+ "test:watch": "cross-env NODE_OPTIONS=\"$NODE_OPTIONS --experimental-vm-modules\" jest --watch",
68
+ "test:types": "tsc --noEmit"
69
69
  }
70
- }
70
+ }
@@ -1,194 +0,0 @@
1
- import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon } from '@radix-ui/react-icons'
2
-
3
- import * as React from 'react'
4
-
5
- import { cn } from '@lib/utils'
6
-
7
- // Context for sidebar state
8
- type SidebarContextValue = {
9
- isOpen: boolean
10
- setIsOpen: (open: boolean) => void
11
- isCollapsed: boolean
12
- setIsCollapsed: (collapsed: boolean) => void
13
- }
14
-
15
- const SidebarContext = React.createContext<SidebarContextValue | null>(null)
16
-
17
- function useSidebar() {
18
- const context = React.useContext(SidebarContext)
19
- if (!context) {
20
- throw new Error('useSidebar must be used within a SidebarProvider')
21
- }
22
- return context
23
- }
24
-
25
- // Provider
26
- type SidebarProviderProps = {
27
- children: React.ReactNode
28
- defaultOpen?: boolean
29
- defaultCollapsed?: boolean
30
- }
31
-
32
- function SidebarProvider({ children, defaultOpen = false, defaultCollapsed = false }: SidebarProviderProps) {
33
- const [isOpen, setIsOpen] = React.useState(defaultOpen)
34
- const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed)
35
-
36
- return (
37
- <SidebarContext.Provider value={{ isOpen, setIsOpen, isCollapsed, setIsCollapsed }}>
38
- {children}
39
- </SidebarContext.Provider>
40
- )
41
- }
42
-
43
- // Root sidebar container
44
- type SidebarProps = React.HTMLAttributes<HTMLElement> & {
45
- children: React.ReactNode
46
- }
47
-
48
- function Sidebar({ children, className, ...props }: SidebarProps) {
49
- const { isOpen, isCollapsed } = useSidebar()
50
-
51
- return (
52
- <aside
53
- className={cn(
54
- 'fixed md:sticky top-0 left-0 h-screen bg-white dark:bg-gray-900 border-r border-gray-200 dark:border-gray-700',
55
- 'overflow-y-auto transition-all duration-300 z-40',
56
- isOpen ? 'translate-x-0' : '-translate-x-full md:translate-x-0',
57
- isCollapsed ? 'w-16 min-w-16' : 'w-64 min-w-64',
58
- className,
59
- )}
60
- {...props}
61
- >
62
- {children}
63
- </aside>
64
- )
65
- }
66
-
67
- // Mobile toggle button
68
- type SidebarMobileToggleProps = React.ButtonHTMLAttributes<HTMLButtonElement>
69
-
70
- function SidebarMobileToggle({ className, ...props }: SidebarMobileToggleProps) {
71
- const { isOpen, setIsOpen } = useSidebar()
72
-
73
- return (
74
- <button
75
- onClick={() => setIsOpen(!isOpen)}
76
- className={cn(
77
- 'fixed top-4 left-4 z-50 md:hidden p-2 bg-white dark:bg-gray-900 rounded shadow-lg border border-gray-200 dark:border-gray-700',
78
- className,
79
- )}
80
- aria-label="Toggle menu"
81
- {...props}
82
- >
83
- {isOpen ? <ChevronDownIcon className="w-6 h-6" /> : <ChevronRightIcon className="w-6 h-6" />}
84
- </button>
85
- )
86
- }
87
-
88
- // Mobile overlay
89
- type SidebarOverlayProps = React.HTMLAttributes<HTMLDivElement>
90
-
91
- function SidebarOverlay({ className, ...props }: SidebarOverlayProps) {
92
- const { isOpen, setIsOpen } = useSidebar()
93
-
94
- if (!isOpen) return null
95
-
96
- return (
97
- <div
98
- className={cn('fixed inset-0 bg-black/20 z-30 md:hidden', className)}
99
- onClick={() => setIsOpen(false)}
100
- {...props}
101
- />
102
- )
103
- }
104
-
105
- // Header with title and collapse toggle
106
- type SidebarHeaderProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> & {
107
- title?: React.ReactNode
108
- showCollapseToggle?: boolean
109
- }
110
-
111
- function SidebarHeader({ title, showCollapseToggle = true, className, children, ...props }: SidebarHeaderProps) {
112
- const { isCollapsed, setIsCollapsed } = useSidebar()
113
-
114
- return (
115
- <div className={cn('flex items-center justify-between mb-4', className)} {...props}>
116
- {!isCollapsed && (title || children)}
117
- {showCollapseToggle && (
118
- <button
119
- onClick={() => setIsCollapsed(!isCollapsed)}
120
- className="hidden md:block p-1 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors ml-auto"
121
- aria-label={isCollapsed ? 'Expand sidebar' : 'Collapse sidebar'}
122
- >
123
- {isCollapsed ? <ChevronRightIcon className="w-5 h-5" /> : <ChevronLeftIcon className="w-5 h-5" />}
124
- </button>
125
- )}
126
- </div>
127
- )
128
- }
129
-
130
- // Content container (hidden when collapsed)
131
- type SidebarContentProps = React.HTMLAttributes<HTMLDivElement>
132
-
133
- function SidebarContent({ className, children, ...props }: SidebarContentProps) {
134
- const { isCollapsed } = useSidebar()
135
-
136
- if (isCollapsed) return null
137
-
138
- return (
139
- <nav className={className} {...props}>
140
- {children}
141
- </nav>
142
- )
143
- }
144
-
145
- // Collapsible section
146
- type SidebarSectionProps = {
147
- title: string
148
- defaultExpanded?: boolean
149
- children: React.ReactNode
150
- className?: string
151
- }
152
-
153
- function SidebarSection({ title, defaultExpanded = true, children, className }: SidebarSectionProps) {
154
- const [isExpanded, setIsExpanded] = React.useState(defaultExpanded)
155
-
156
- return (
157
- <div className={cn('mb-4', className)}>
158
- <button
159
- onClick={() => setIsExpanded(!isExpanded)}
160
- className="flex items-center justify-between w-full px-4 py-2 font-semibold text-left hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors"
161
- >
162
- <span>{title}</span>
163
- {isExpanded ? <ChevronDownIcon className="w-4 h-4" /> : <ChevronRightIcon className="w-4 h-4" />}
164
- </button>
165
- {isExpanded && <ul className="mt-2 ml-2 space-y-1">{children}</ul>}
166
- </div>
167
- )
168
- }
169
-
170
- // Individual navigation item
171
- type SidebarItemProps = {
172
- children: React.ReactNode
173
- className?: string
174
- }
175
-
176
- function SidebarItem({ children, className }: SidebarItemProps) {
177
- return <li className={cn('', className)}>{children}</li>
178
- }
179
-
180
- // Link styling helper
181
- const sidebarLinkClassName = 'block px-4 py-2 hover:bg-gray-100 dark:hover:bg-gray-800 rounded transition-colors'
182
-
183
- export {
184
- Sidebar,
185
- SidebarContent,
186
- SidebarHeader,
187
- SidebarItem,
188
- sidebarLinkClassName,
189
- SidebarMobileToggle,
190
- SidebarOverlay,
191
- SidebarProvider,
192
- SidebarSection,
193
- useSidebar,
194
- }