@swovohq/fuel 0.2.2-alpha.92 → 0.2.2-alpha.94

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.
Files changed (36) hide show
  1. package/README.md +107 -11
  2. package/dist/bin/fuel.js +61 -0
  3. package/dist/bin/fuel.js.map +1 -1
  4. package/dist/commands/generate-module.d.ts +7 -0
  5. package/dist/commands/generate-module.d.ts.map +1 -0
  6. package/dist/commands/generate-module.js +180 -0
  7. package/dist/commands/generate-module.js.map +1 -0
  8. package/dist/generators/module/index.d.ts +7 -0
  9. package/dist/generators/module/index.d.ts.map +1 -0
  10. package/dist/generators/module/index.js +86 -0
  11. package/dist/generators/module/index.js.map +1 -0
  12. package/dist/generators/module/register.d.ts +4 -0
  13. package/dist/generators/module/register.d.ts.map +1 -0
  14. package/dist/generators/module/register.js +124 -0
  15. package/dist/generators/module/register.js.map +1 -0
  16. package/dist/generators/module/render.d.ts +10 -0
  17. package/dist/generators/module/render.d.ts.map +1 -0
  18. package/dist/generators/module/render.js +19 -0
  19. package/dist/generators/module/render.js.map +1 -0
  20. package/dist/generators/module/skill.d.ts +3 -0
  21. package/dist/generators/module/skill.d.ts.map +1 -0
  22. package/dist/generators/module/skill.js +223 -0
  23. package/dist/generators/module/skill.js.map +1 -0
  24. package/dist/generators/module/templates/api.d.ts +14 -0
  25. package/dist/generators/module/templates/api.d.ts.map +1 -0
  26. package/dist/generators/module/templates/api.js +363 -0
  27. package/dist/generators/module/templates/api.js.map +1 -0
  28. package/dist/generators/module/templates/types-pkg.d.ts +7 -0
  29. package/dist/generators/module/templates/types-pkg.d.ts.map +1 -0
  30. package/dist/generators/module/templates/types-pkg.js +56 -0
  31. package/dist/generators/module/templates/types-pkg.js.map +1 -0
  32. package/dist/generators/module/templates/web.d.ts +16 -0
  33. package/dist/generators/module/templates/web.d.ts.map +1 -0
  34. package/dist/generators/module/templates/web.js +573 -0
  35. package/dist/generators/module/templates/web.js.map +1 -0
  36. package/package.json +1 -1
@@ -0,0 +1,573 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.webTemplates = void 0;
4
+ exports.webTemplates = {
5
+ apiEndpoints: `import { PaginatedResponse, PaginationOptions } from '@fuel/common-types'
6
+ import { BASE_API_URL } from './constants'
7
+ import { handleResponse } from './utils'
8
+
9
+ export type { __MODULE_PASCAL__Item } from '@fuel/__MODULE_KEBAB__-types'
10
+ import type { __MODULE_PASCAL__Item } from '@fuel/__MODULE_KEBAB__-types'
11
+
12
+ export const Get__MODULE_PASCAL__ItemsEndpoint = async (
13
+ payload: {
14
+ client: typeof fetch
15
+ sort?: string
16
+ } & PaginationOptions
17
+ ): Promise<PaginatedResponse<__MODULE_PASCAL__Item>> => {
18
+ const { client, current, limit, sort, search } = payload
19
+
20
+ const queryParams = new URLSearchParams({
21
+ current: current.toString(),
22
+ limit: limit.toString(),
23
+ })
24
+
25
+ if (sort) queryParams.append('sort', sort)
26
+ if (search) queryParams.append('search', search)
27
+
28
+ return client(
29
+ \`\${BASE_API_URL}/v1/__MODULE_KEBAB__?\${queryParams.toString()}\`,
30
+ {
31
+ method: 'GET',
32
+ headers: { 'Content-Type': 'application/json' },
33
+ credentials: 'include',
34
+ },
35
+ ).then((response) => handleResponse(response))
36
+ }
37
+
38
+ export const Create__MODULE_PASCAL__ItemEndpoint = async (payload: {
39
+ client: typeof fetch
40
+ name: string
41
+ }): Promise<__MODULE_PASCAL__Item> => {
42
+ const { client, ...body } = payload
43
+ return client(\`\${BASE_API_URL}/v1/__MODULE_KEBAB__\`, {
44
+ method: 'POST',
45
+ headers: { 'Content-Type': 'application/json' },
46
+ credentials: 'include',
47
+ body: JSON.stringify(body),
48
+ }).then((response) => handleResponse(response))
49
+ }
50
+
51
+ export const Update__MODULE_PASCAL__ItemEndpoint = async (payload: {
52
+ client: typeof fetch
53
+ id: string
54
+ name?: string
55
+ }): Promise<__MODULE_PASCAL__Item> => {
56
+ const { client, id, ...body } = payload
57
+ return client(\`\${BASE_API_URL}/v1/__MODULE_KEBAB__/\${id}\`, {
58
+ method: 'PUT',
59
+ headers: { 'Content-Type': 'application/json' },
60
+ credentials: 'include',
61
+ body: JSON.stringify(body),
62
+ }).then((response) => handleResponse(response))
63
+ }
64
+
65
+ export const Delete__MODULE_PASCAL__ItemEndpoint = async (payload: {
66
+ client: typeof fetch
67
+ id: string
68
+ }): Promise<void> => {
69
+ const { client, id } = payload
70
+ return client(\`\${BASE_API_URL}/v1/__MODULE_KEBAB__/\${id}\`, {
71
+ method: 'DELETE',
72
+ headers: { 'Content-Type': 'application/json' },
73
+ credentials: 'include',
74
+ }).then((response) => handleResponse(response))
75
+ }
76
+ `,
77
+ useItemsHook: `import { useQuery } from '@tanstack/react-query'
78
+ import {
79
+ Get__MODULE_PASCAL__ItemsEndpoint,
80
+ type __MODULE_PASCAL__Item,
81
+ } from '../../api/__MODULE_KEBAB__'
82
+ import { usePagination } from '../shared/usePagination'
83
+ import type { PaginatedResponse } from '@fuel/common-types'
84
+
85
+ export const use__MODULE_PASCAL__Items = ({
86
+ sort,
87
+ search,
88
+ page = 1,
89
+ limit = 10,
90
+ }: {
91
+ sort?: string
92
+ search?: string
93
+ page?: number
94
+ limit?: number
95
+ }) => {
96
+ const __MODULE_CAMEL__Pagination = usePagination({ current: page, limit })
97
+ const { current, limit: perPage } = __MODULE_CAMEL__Pagination
98
+
99
+ const query = useQuery({
100
+ queryKey: [
101
+ '__MODULE_KEBAB__-items',
102
+ { sort, search, page: current, limit: perPage },
103
+ ],
104
+ queryFn: () =>
105
+ Get__MODULE_PASCAL__ItemsEndpoint({
106
+ client: fetch,
107
+ sort,
108
+ search,
109
+ current,
110
+ limit: perPage,
111
+ }),
112
+ })
113
+
114
+ return {
115
+ __MODULE_CAMEL__Pagination,
116
+ refetch__MODULE_PASCAL__Items: query.refetch,
117
+ __MODULE_CAMEL__ItemsState: {
118
+ isLoading: query.isPending,
119
+ isError: query.isError,
120
+ error: query.error as Error,
121
+ data: query.data as PaginatedResponse<__MODULE_PASCAL__Item> | undefined,
122
+ },
123
+ }
124
+ }
125
+ `,
126
+ useCreateHook: `import { useMutation, useQueryClient } from '@tanstack/react-query'
127
+ import {
128
+ Create__MODULE_PASCAL__ItemEndpoint,
129
+ type __MODULE_PASCAL__Item,
130
+ } from '../../api/__MODULE_KEBAB__'
131
+
132
+ export const useCreate__MODULE_PASCAL__Item = () => {
133
+ const queryClient = useQueryClient()
134
+
135
+ const mutation = useMutation({
136
+ mutationFn: Create__MODULE_PASCAL__ItemEndpoint,
137
+ onSuccess: () => {
138
+ queryClient.invalidateQueries({ queryKey: ['__MODULE_KEBAB__-items'] })
139
+ },
140
+ })
141
+
142
+ return {
143
+ create__MODULE_PASCAL__Item: (name: string): Promise<__MODULE_PASCAL__Item> =>
144
+ mutation.mutateAsync({ client: fetch, name }),
145
+ create__MODULE_PASCAL__ItemState: {
146
+ isLoading: mutation.isPending,
147
+ isError: mutation.isError,
148
+ error: mutation.error as Error,
149
+ },
150
+ }
151
+ }
152
+ `,
153
+ useUpdateHook: `import { useMutation, useQueryClient } from '@tanstack/react-query'
154
+ import {
155
+ Update__MODULE_PASCAL__ItemEndpoint,
156
+ type __MODULE_PASCAL__Item,
157
+ } from '../../api/__MODULE_KEBAB__'
158
+
159
+ export const useUpdate__MODULE_PASCAL__Item = () => {
160
+ const queryClient = useQueryClient()
161
+
162
+ const mutation = useMutation({
163
+ mutationFn: Update__MODULE_PASCAL__ItemEndpoint,
164
+ onSuccess: () => {
165
+ queryClient.invalidateQueries({ queryKey: ['__MODULE_KEBAB__-items'] })
166
+ },
167
+ })
168
+
169
+ return {
170
+ update__MODULE_PASCAL__Item: (id: string, name: string): Promise<__MODULE_PASCAL__Item> =>
171
+ mutation.mutateAsync({ client: fetch, id, name }),
172
+ update__MODULE_PASCAL__ItemState: {
173
+ isLoading: mutation.isPending,
174
+ isError: mutation.isError,
175
+ error: mutation.error as Error,
176
+ },
177
+ }
178
+ }
179
+ `,
180
+ useDeleteHook: `import { useMutation, useQueryClient } from '@tanstack/react-query'
181
+ import { Delete__MODULE_PASCAL__ItemEndpoint } from '../../api/__MODULE_KEBAB__'
182
+
183
+ export const useDelete__MODULE_PASCAL__Item = () => {
184
+ const queryClient = useQueryClient()
185
+
186
+ const mutation = useMutation({
187
+ mutationFn: Delete__MODULE_PASCAL__ItemEndpoint,
188
+ onSuccess: () => {
189
+ queryClient.invalidateQueries({ queryKey: ['__MODULE_KEBAB__-items'] })
190
+ },
191
+ })
192
+
193
+ return {
194
+ delete__MODULE_PASCAL__Item: (id: string): Promise<void> =>
195
+ mutation.mutateAsync({ client: fetch, id }),
196
+ delete__MODULE_PASCAL__ItemState: {
197
+ isLoading: mutation.isPending,
198
+ isError: mutation.isError,
199
+ error: mutation.error as Error,
200
+ },
201
+ }
202
+ }
203
+ `,
204
+ context: `'use client'
205
+
206
+ import {
207
+ type ColumnDef,
208
+ type Table,
209
+ getCoreRowModel,
210
+ useReactTable,
211
+ } from '@tanstack/react-table'
212
+ import { parseAsInteger, parseAsString, useQueryState } from 'nuqs'
213
+ import React, { useContext } from 'react'
214
+ import { use__MODULE_PASCAL__Items } from '@/hooks/__MODULE_KEBAB__/use-__MODULE_KEBAB__-items'
215
+ import { useCreate__MODULE_PASCAL__Item } from '@/hooks/__MODULE_KEBAB__/use-create-__MODULE_KEBAB__-item'
216
+ import { useUpdate__MODULE_PASCAL__Item } from '@/hooks/__MODULE_KEBAB__/use-update-__MODULE_KEBAB__-item'
217
+ import { useDelete__MODULE_PASCAL__Item } from '@/hooks/__MODULE_KEBAB__/use-delete-__MODULE_KEBAB__-item'
218
+ import type { __MODULE_PASCAL__Item } from '@/api/__MODULE_KEBAB__'
219
+
220
+ export type State = {
221
+ table: Table<__MODULE_PASCAL__Item>
222
+ isLoading: boolean
223
+ isError: boolean
224
+ error: Error | null
225
+ totalCount: number | undefined
226
+ refetch: () => void
227
+ create__MODULE_PASCAL__Item: (name: string) => Promise<__MODULE_PASCAL__Item>
228
+ update__MODULE_PASCAL__Item: (id: string, name: string) => Promise<__MODULE_PASCAL__Item>
229
+ delete__MODULE_PASCAL__Item: (id: string) => Promise<void>
230
+ }
231
+
232
+ const __MODULE_PASCAL__Context = React.createContext<State | undefined>(undefined)
233
+
234
+ export const __MODULE_PASCAL__ContextProvider = ({
235
+ children,
236
+ }: {
237
+ children: React.ReactNode
238
+ }) => {
239
+ const [page] = useQueryState('__MODULE_CAMEL___page', parseAsInteger.withDefault(1))
240
+ const [limit] = useQueryState('__MODULE_CAMEL___limit', parseAsInteger.withDefault(10))
241
+ const [search] = useQueryState('__MODULE_CAMEL___q', parseAsString.withDefault(''))
242
+ const [sort] = useQueryState('__MODULE_CAMEL___sort', parseAsString.withDefault(''))
243
+
244
+ const { __MODULE_CAMEL__ItemsState, refetch__MODULE_PASCAL__Items } = use__MODULE_PASCAL__Items({
245
+ sort: sort || undefined,
246
+ search: search || undefined,
247
+ page,
248
+ limit,
249
+ })
250
+
251
+ const { create__MODULE_PASCAL__Item } = useCreate__MODULE_PASCAL__Item()
252
+ const { update__MODULE_PASCAL__Item } = useUpdate__MODULE_PASCAL__Item()
253
+ const { delete__MODULE_PASCAL__Item } = useDelete__MODULE_PASCAL__Item()
254
+
255
+ const columns: ColumnDef<__MODULE_PASCAL__Item>[] = [
256
+ {
257
+ accessorKey: 'name',
258
+ header: 'Name',
259
+ cell: ({ row }) => <span>{row.original.name}</span>,
260
+ },
261
+ {
262
+ accessorKey: 'createdAt',
263
+ header: 'Created',
264
+ cell: ({ row }) => (
265
+ <span>{new Date(row.original.createdAt).toLocaleDateString()}</span>
266
+ ),
267
+ },
268
+ ]
269
+
270
+ const table = useReactTable({
271
+ data: __MODULE_CAMEL__ItemsState.data?.data ?? [],
272
+ columns,
273
+ pageCount: (__MODULE_CAMEL__ItemsState.data as any)?.totalPages ?? 0,
274
+ state: {},
275
+ getCoreRowModel: getCoreRowModel(),
276
+ manualPagination: true,
277
+ manualSorting: true,
278
+ })
279
+
280
+ return (
281
+ <__MODULE_PASCAL__Context.Provider
282
+ value={{
283
+ table,
284
+ isLoading: __MODULE_CAMEL__ItemsState.isLoading,
285
+ isError: __MODULE_CAMEL__ItemsState.isError,
286
+ error: __MODULE_CAMEL__ItemsState.error ?? null,
287
+ totalCount: (__MODULE_CAMEL__ItemsState.data as any)?.totalCount,
288
+ refetch: refetch__MODULE_PASCAL__Items,
289
+ create__MODULE_PASCAL__Item,
290
+ update__MODULE_PASCAL__Item,
291
+ delete__MODULE_PASCAL__Item,
292
+ }}
293
+ >
294
+ {children}
295
+ </__MODULE_PASCAL__Context.Provider>
296
+ )
297
+ }
298
+
299
+ export const use__MODULE_PASCAL__Context = () => {
300
+ const ctx = useContext(__MODULE_PASCAL__Context)
301
+ if (!ctx) {
302
+ throw new Error(
303
+ 'use__MODULE_PASCAL__Context must be used within __MODULE_PASCAL__ContextProvider',
304
+ )
305
+ }
306
+ return ctx
307
+ }
308
+ `,
309
+ table: `'use client'
310
+
311
+ import { flexRender } from '@tanstack/react-table'
312
+ import { use__MODULE_PASCAL__Context } from './__MODULE_KEBAB__-context'
313
+
314
+ export const __MODULE_PASCAL__Table = () => {
315
+ const { table, isLoading } = use__MODULE_PASCAL__Context()
316
+
317
+ if (isLoading) {
318
+ return <div className="p-4 text-sm text-muted-foreground">Loading...</div>
319
+ }
320
+
321
+ return (
322
+ <div className="w-full overflow-auto">
323
+ <table className="w-full text-sm">
324
+ <thead>
325
+ {table.getHeaderGroups().map((headerGroup) => (
326
+ <tr key={headerGroup.id} className="border-b">
327
+ {headerGroup.headers.map((header) => (
328
+ <th
329
+ key={header.id}
330
+ className="px-4 py-2 text-left font-medium text-muted-foreground"
331
+ >
332
+ {header.isPlaceholder
333
+ ? null
334
+ : flexRender(
335
+ header.column.columnDef.header,
336
+ header.getContext(),
337
+ )}
338
+ </th>
339
+ ))}
340
+ </tr>
341
+ ))}
342
+ </thead>
343
+ <tbody>
344
+ {table.getRowModel().rows.length === 0 ? (
345
+ <tr>
346
+ <td
347
+ colSpan={table.getAllColumns().length}
348
+ className="px-4 py-8 text-center text-muted-foreground"
349
+ >
350
+ No items found.
351
+ </td>
352
+ </tr>
353
+ ) : (
354
+ table.getRowModel().rows.map((row) => (
355
+ <tr key={row.id} className="border-b hover:bg-muted/50">
356
+ {row.getVisibleCells().map((cell) => (
357
+ <td key={cell.id} className="px-4 py-2">
358
+ {flexRender(cell.column.columnDef.cell, cell.getContext())}
359
+ </td>
360
+ ))}
361
+ </tr>
362
+ ))
363
+ )}
364
+ </tbody>
365
+ </table>
366
+ </div>
367
+ )
368
+ }
369
+ `,
370
+ createDrawer: `'use client'
371
+
372
+ import { zodResolver } from '@hookform/resolvers/zod'
373
+ import React from 'react'
374
+ import { useForm } from 'react-hook-form'
375
+ import { z } from 'zod'
376
+ import { use__MODULE_PASCAL__Context } from './__MODULE_KEBAB__-context'
377
+
378
+ const formSchema = z.object({
379
+ name: z.string().min(1, 'Name is required'),
380
+ })
381
+
382
+ type FormValues = z.infer<typeof formSchema>
383
+
384
+ interface Props {
385
+ open: boolean
386
+ onOpenChange: (open: boolean) => void
387
+ }
388
+
389
+ export const Create__MODULE_PASCAL__ItemDrawer = ({ open, onOpenChange }: Props) => {
390
+ const { create__MODULE_PASCAL__Item, refetch } = use__MODULE_PASCAL__Context()
391
+
392
+ const form = useForm<FormValues>({
393
+ resolver: zodResolver(formSchema),
394
+ defaultValues: { name: '' },
395
+ })
396
+
397
+ const onSubmit = async (values: FormValues) => {
398
+ await create__MODULE_PASCAL__Item(values.name)
399
+ form.reset()
400
+ onOpenChange(false)
401
+ refetch()
402
+ }
403
+
404
+ if (!open) return null
405
+
406
+ // TODO: Replace with Drawer/Sheet from @fuel/design-system following the
407
+ // pattern in apps/web/src/components/teams/invitations/invite-member-drawer.tsx
408
+ return (
409
+ <div className="fixed inset-0 z-50 flex items-end justify-center sm:items-center">
410
+ <div className="bg-background rounded-lg border p-6 shadow-lg sm:w-full sm:max-w-md">
411
+ <h2 className="mb-4 text-lg font-semibold">Create __MODULE_PASCAL__ Item</h2>
412
+ <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-4">
413
+ <div>
414
+ <label htmlFor="name" className="block text-sm font-medium">
415
+ Name
416
+ </label>
417
+ <input
418
+ id="name"
419
+ {...form.register('name')}
420
+ className="mt-1 block w-full rounded border px-3 py-2 text-sm"
421
+ placeholder="Enter a name"
422
+ />
423
+ {form.formState.errors.name && (
424
+ <p className="mt-1 text-sm text-destructive">
425
+ {form.formState.errors.name.message}
426
+ </p>
427
+ )}
428
+ </div>
429
+ <div className="flex justify-end gap-2">
430
+ <button
431
+ type="button"
432
+ onClick={() => onOpenChange(false)}
433
+ className="rounded px-4 py-2 text-sm"
434
+ >
435
+ Cancel
436
+ </button>
437
+ <button
438
+ type="submit"
439
+ disabled={form.formState.isSubmitting}
440
+ className="rounded bg-primary px-4 py-2 text-sm text-primary-foreground"
441
+ >
442
+ {form.formState.isSubmitting ? 'Creating...' : 'Create'}
443
+ </button>
444
+ </div>
445
+ </form>
446
+ </div>
447
+ </div>
448
+ )
449
+ }
450
+ `,
451
+ updateDrawer: `'use client'
452
+
453
+ import { zodResolver } from '@hookform/resolvers/zod'
454
+ import React from 'react'
455
+ import { useForm } from 'react-hook-form'
456
+ import { z } from 'zod'
457
+ import { use__MODULE_PASCAL__Context } from './__MODULE_KEBAB__-context'
458
+ import type { __MODULE_PASCAL__Item } from '@/api/__MODULE_KEBAB__'
459
+
460
+ const formSchema = z.object({
461
+ name: z.string().min(1, 'Name is required'),
462
+ })
463
+
464
+ type FormValues = z.infer<typeof formSchema>
465
+
466
+ interface Props {
467
+ item: __MODULE_PASCAL__Item | null
468
+ open: boolean
469
+ onOpenChange: (open: boolean) => void
470
+ }
471
+
472
+ export const Update__MODULE_PASCAL__ItemDrawer = ({ item, open, onOpenChange }: Props) => {
473
+ const { update__MODULE_PASCAL__Item, refetch } = use__MODULE_PASCAL__Context()
474
+
475
+ const form = useForm<FormValues>({
476
+ resolver: zodResolver(formSchema),
477
+ values: { name: item?.name ?? '' },
478
+ })
479
+
480
+ const onSubmit = async (values: FormValues) => {
481
+ if (!item) return
482
+ await update__MODULE_PASCAL__Item(item.id, values.name)
483
+ onOpenChange(false)
484
+ refetch()
485
+ }
486
+
487
+ if (!open || !item) return null
488
+
489
+ // TODO: Replace with Drawer/Sheet from @fuel/design-system following the
490
+ // pattern in apps/web/src/components/teams/invitations/invite-member-drawer.tsx
491
+ return (
492
+ <div className="fixed inset-0 z-50 flex items-end justify-center sm:items-center">
493
+ <div className="bg-background rounded-lg border p-6 shadow-lg sm:w-full sm:max-w-md">
494
+ <h2 className="mb-4 text-lg font-semibold">Update __MODULE_PASCAL__ Item</h2>
495
+ <form onSubmit={form.handleSubmit(onSubmit)} className="space-y-4">
496
+ <div>
497
+ <label htmlFor="name" className="block text-sm font-medium">
498
+ Name
499
+ </label>
500
+ <input
501
+ id="name"
502
+ {...form.register('name')}
503
+ className="mt-1 block w-full rounded border px-3 py-2 text-sm"
504
+ placeholder="Enter a name"
505
+ />
506
+ {form.formState.errors.name && (
507
+ <p className="mt-1 text-sm text-destructive">
508
+ {form.formState.errors.name.message}
509
+ </p>
510
+ )}
511
+ </div>
512
+ <div className="flex justify-end gap-2">
513
+ <button
514
+ type="button"
515
+ onClick={() => onOpenChange(false)}
516
+ className="rounded px-4 py-2 text-sm"
517
+ >
518
+ Cancel
519
+ </button>
520
+ <button
521
+ type="submit"
522
+ disabled={form.formState.isSubmitting}
523
+ className="rounded bg-primary px-4 py-2 text-sm text-primary-foreground"
524
+ >
525
+ {form.formState.isSubmitting ? 'Saving...' : 'Save'}
526
+ </button>
527
+ </div>
528
+ </form>
529
+ </div>
530
+ </div>
531
+ )
532
+ }
533
+ `,
534
+ index: `export {
535
+ __MODULE_PASCAL__ContextProvider,
536
+ use__MODULE_PASCAL__Context,
537
+ type State as __MODULE_PASCAL__ContextState,
538
+ } from './__MODULE_KEBAB__-context'
539
+ export { __MODULE_PASCAL__Table } from './__MODULE_KEBAB__-table'
540
+ export { Create__MODULE_PASCAL__ItemDrawer } from './create-__MODULE_KEBAB__-item-drawer'
541
+ export { Update__MODULE_PASCAL__ItemDrawer } from './update-__MODULE_KEBAB__-item-drawer'
542
+ `,
543
+ page: `import { __MODULE_PASCAL__ClientLayout } from './__MODULE_KEBAB__-client-layout'
544
+
545
+ export default function __MODULE_PASCAL__Page() {
546
+ return <__MODULE_PASCAL__ClientLayout />
547
+ }
548
+ `,
549
+ layout: `export default function __MODULE_PASCAL__Layout({
550
+ children,
551
+ }: {
552
+ children: React.ReactNode
553
+ }) {
554
+ return <>{children}</>
555
+ }
556
+ `,
557
+ clientLayout: `'use client'
558
+
559
+ import { __MODULE_PASCAL__ContextProvider } from '@/components/__MODULE_KEBAB__'
560
+ import { __MODULE_PASCAL__Table } from '@/components/__MODULE_KEBAB__/__MODULE_KEBAB__-table'
561
+
562
+ export const __MODULE_PASCAL__ClientLayout = () => {
563
+ return (
564
+ <__MODULE_PASCAL__ContextProvider>
565
+ <div className="bg-background flex h-full w-full flex-col p-6">
566
+ <__MODULE_PASCAL__Table />
567
+ </div>
568
+ </__MODULE_PASCAL__ContextProvider>
569
+ )
570
+ }
571
+ `,
572
+ };
573
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../../../src/generators/module/templates/web.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;IAC1B,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEf;IAEC,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDf;IAEC,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BhB;IAEC,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BhB;IAEC,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;CAuBhB;IAEC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwGV;IAEC,KAAK,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DR;IAEC,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgFf;IAEC,YAAY,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFf;IAEC,KAAK,EAAE;;;;;;;;CAQR;IAEC,IAAI,EAAE;;;;;CAKP;IAEC,MAAM,EAAE;;;;;;;CAOT;IAEC,YAAY,EAAE;;;;;;;;;;;;;;CAcf;CACA,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swovohq/fuel",
3
- "version": "0.2.2-alpha.92",
3
+ "version": "0.2.2-alpha.94",
4
4
  "bin": {
5
5
  "fuel": "dist/bin/fuel.js"
6
6
  },