@igstack/app-catalog-frontend-core 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/api/infra/trpc.d.ts +0 -1491
- package/dist/esm/modules/appCatalog/context/AppCatalogContext.js +1 -0
- package/dist/esm/modules/appCatalog/context/AppCatalogContext.js.map +1 -1
- package/dist/esm/modules/appCatalog/ui/filters/FilterBar.js +23 -11
- package/dist/esm/modules/appCatalog/ui/filters/FilterBar.js.map +1 -1
- package/dist/esm/modules/appCatalog/ui/grid/AppCatalogGrid.d.ts +5 -1
- package/dist/esm/modules/appCatalog/ui/grid/AppCatalogGrid.js +146 -56
- package/dist/esm/modules/appCatalog/ui/grid/AppCatalogGrid.js.map +1 -1
- package/dist/esm/modules/appCatalog/ui/pages/AppCatalogPage.js +20 -1
- package/dist/esm/modules/appCatalog/ui/pages/AppCatalogPage.js.map +1 -1
- package/dist/esm/modules/auth/AuthContext.js +1 -1
- package/dist/esm/modules/auth/AuthModalContext.js +1 -1
- package/dist/esm/modules/auth/authClient.d.ts +2 -2
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/classic/schemas.js +4 -37
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/classic/schemas.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/api.js +2 -10
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/api.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/checks.js +1 -1
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/json-schema-processors.js +0 -44
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/json-schema-processors.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/parse.js +0 -4
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/parse.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/regexes.js +0 -2
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/regexes.js.map +1 -1
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/schemas.js +4 -49
- package/dist/esm/node_modules/.pnpm/zod@4.3.5/node_modules/zod/v4/core/schemas.js.map +1 -1
- package/dist/esm/routeTree.gen.d.ts +3 -164
- package/dist/esm/routeTree.gen.js +8 -80
- package/dist/esm/routeTree.gen.js.map +1 -1
- package/dist/esm/ui/button.d.ts +1 -1
- package/dist/esm/ui/card.js +1 -48
- package/dist/esm/ui/card.js.map +1 -1
- package/dist/esm/ui/command.js +1 -15
- package/dist/esm/ui/command.js.map +1 -1
- package/dist/esm/ui/components/header/Header.js +2 -11
- package/dist/esm/ui/components/header/Header.js.map +1 -1
- package/dist/esm/ui/input-group.js +125 -0
- package/dist/esm/ui/input-group.js.map +1 -0
- package/package.json +3 -3
- package/src/modules/appCatalog/ui/components/AppDetailModal.tsx +2 -21
- package/src/routeTree.gen.ts +2 -220
- package/src/ui/components/header/Header.tsx +2 -12
- package/dist/esm/components/IconPickerDialog.d.ts +0 -8
- package/dist/esm/components/IconPickerDialog.js +0 -98
- package/dist/esm/components/IconPickerDialog.js.map +0 -1
- package/dist/esm/components/IconPickerField.d.ts +0 -9
- package/dist/esm/components/IconPickerField.js +0 -76
- package/dist/esm/components/IconPickerField.js.map +0 -1
- package/dist/esm/modules/admin-base/components/AdminChat.d.ts +0 -1
- package/dist/esm/modules/admin-base/components/AdminChat.js +0 -82
- package/dist/esm/modules/admin-base/components/AdminChat.js.map +0 -1
- package/dist/esm/modules/admin-base/components/AdminLayout.d.ts +0 -5
- package/dist/esm/modules/admin-base/components/AdminLayout.js +0 -83
- package/dist/esm/modules/admin-base/components/AdminLayout.js.map +0 -1
- package/dist/esm/modules/admin-base/components/AdminWelcome.d.ts +0 -1
- package/dist/esm/modules/admin-base/components/AdminWelcome.js +0 -37
- package/dist/esm/modules/admin-base/components/AdminWelcome.js.map +0 -1
- package/dist/esm/modules/admin-base/context/AdminConfigContext.d.ts +0 -8
- package/dist/esm/modules/admin-base/context/AdminConfigContext.js +0 -27
- package/dist/esm/modules/admin-base/context/AdminConfigContext.js.map +0 -1
- package/dist/esm/modules/admin-base/index.d.ts +0 -5
- package/dist/esm/modules/admin-base/types/adminTypes.d.ts +0 -10
- package/dist/esm/modules/appCatalog/AppCatalogAdminPage.d.ts +0 -1
- package/dist/esm/modules/appCatalog/AppCatalogAdminPage.js +0 -196
- package/dist/esm/modules/appCatalog/AppCatalogAdminPage.js.map +0 -1
- package/dist/esm/modules/appCatalog/ScreenshotItem.js +0 -57
- package/dist/esm/modules/appCatalog/ScreenshotItem.js.map +0 -1
- package/dist/esm/modules/appCatalog/ScreenshotManager.js +0 -155
- package/dist/esm/modules/appCatalog/ScreenshotManager.js.map +0 -1
- package/dist/esm/modules/approvalMethod/AccessRequestFormFields.d.ts +0 -7
- package/dist/esm/modules/approvalMethod/AccessRequestFormFields.js +0 -323
- package/dist/esm/modules/approvalMethod/AccessRequestFormFields.js.map +0 -1
- package/dist/esm/modules/approvalMethod/ApprovalMethodForm.d.ts +0 -14
- package/dist/esm/modules/approvalMethod/ApprovalMethodForm.js +0 -227
- package/dist/esm/modules/approvalMethod/ApprovalMethodForm.js.map +0 -1
- package/dist/esm/modules/approvalMethod/ApprovalMethodSelector.d.ts +0 -7
- package/dist/esm/modules/approvalMethod/ApprovalMethodSelector.js +0 -124
- package/dist/esm/modules/approvalMethod/ApprovalMethodSelector.js.map +0 -1
- package/dist/esm/modules/approvalMethod/api/ApiQueryMagazineApprovalMethod.d.ts +0 -381
- package/dist/esm/modules/approvalMethod/api/ApiQueryMagazineApprovalMethod.js +0 -26
- package/dist/esm/modules/approvalMethod/api/ApiQueryMagazineApprovalMethod.js.map +0 -1
- package/dist/esm/modules/auth/authUtils.js +0 -25
- package/dist/esm/modules/auth/authUtils.js.map +0 -1
- package/dist/esm/modules/icons/IconManagementPage.d.ts +0 -1
- package/dist/esm/modules/icons/IconManagementPage.js +0 -177
- package/dist/esm/modules/icons/IconManagementPage.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.2/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +0 -60
- package/dist/esm/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.1.2/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/@dnd-kit/core/dist/core.esm.js +0 -3055
- package/dist/esm/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2/node_modules/@dnd-kit/core/dist/core.esm.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2__react@19.1.2/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +0 -593
- package/dist/esm/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.1.2_react@19.1.2__react@19.1.2__react@19.1.2/node_modules/@dnd-kit/sortable/dist/sortable.esm.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.2/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +0 -302
- package/dist/esm/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.1.2/node_modules/@dnd-kit/utilities/dist/utilities.esm.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@hookform_resolvers@5.2.2_react-hook-form@7.71.1_react@19.1.2_/node_modules/@hookform/resolvers/dist/resolvers.js +0 -34
- package/dist/esm/node_modules/.pnpm/@hookform_resolvers@5.2.2_react-hook-form@7.71.1_react@19.1.2_/node_modules/@hookform/resolvers/dist/resolvers.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/@hookform_resolvers@5.2.2_react-hook-form@7.71.1_react@19.1.2_/node_modules/@hookform/resolvers/zod/dist/zod.js +0 -94
- package/dist/esm/node_modules/.pnpm/@hookform_resolvers@5.2.2_react-hook-form@7.71.1_react@19.1.2_/node_modules/@hookform/resolvers/zod/dist/zod.js.map +0 -1
- package/dist/esm/node_modules/.pnpm/react-hook-form@7.71.1_react@19.1.2/node_modules/react-hook-form/dist/index.esm.js +0 -1894
- package/dist/esm/node_modules/.pnpm/react-hook-form@7.71.1_react@19.1.2/node_modules/react-hook-form/dist/index.esm.js.map +0 -1
- package/dist/esm/routes/admin/app-for-catalog/$id.d.ts +0 -5
- package/dist/esm/routes/admin/app-for-catalog/_id.js +0 -67
- package/dist/esm/routes/admin/app-for-catalog/_id.js.map +0 -1
- package/dist/esm/routes/admin/app-for-catalog/_id2.js +0 -321
- package/dist/esm/routes/admin/app-for-catalog/_id2.js.map +0 -1
- package/dist/esm/routes/admin/app-for-catalog/index.d.ts +0 -1
- package/dist/esm/routes/admin/app-for-catalog/index.js +0 -9
- package/dist/esm/routes/admin/app-for-catalog/index.js.map +0 -1
- package/dist/esm/routes/admin/app-for-catalog/index2.js +0 -12
- package/dist/esm/routes/admin/app-for-catalog/index2.js.map +0 -1
- package/dist/esm/routes/admin/app-for-catalog.d.ts +0 -1
- package/dist/esm/routes/admin/app-for-catalog.js +0 -14
- package/dist/esm/routes/admin/app-for-catalog.js.map +0 -1
- package/dist/esm/routes/admin/app-for-catalog2.js +0 -9
- package/dist/esm/routes/admin/app-for-catalog2.js.map +0 -1
- package/dist/esm/routes/admin/approval-methods/index.d.ts +0 -32
- package/dist/esm/routes/admin/approval-methods/index.js +0 -24
- package/dist/esm/routes/admin/approval-methods/index.js.map +0 -1
- package/dist/esm/routes/admin/approval-methods/index2.js +0 -100
- package/dist/esm/routes/admin/approval-methods/index2.js.map +0 -1
- package/dist/esm/routes/admin/approval-methods.d.ts +0 -1
- package/dist/esm/routes/admin/approval-methods.js +0 -14
- package/dist/esm/routes/admin/approval-methods.js.map +0 -1
- package/dist/esm/routes/admin/approval-methods2.js +0 -7
- package/dist/esm/routes/admin/approval-methods2.js.map +0 -1
- package/dist/esm/routes/admin/chat.d.ts +0 -1
- package/dist/esm/routes/admin/chat.js +0 -14
- package/dist/esm/routes/admin/chat.js.map +0 -1
- package/dist/esm/routes/admin/chat2.js +0 -9
- package/dist/esm/routes/admin/chat2.js.map +0 -1
- package/dist/esm/routes/admin/icons.d.ts +0 -1
- package/dist/esm/routes/admin/icons.js +0 -14
- package/dist/esm/routes/admin/icons.js.map +0 -1
- package/dist/esm/routes/admin/icons2.js +0 -12
- package/dist/esm/routes/admin/icons2.js.map +0 -1
- package/dist/esm/routes/admin/index.d.ts +0 -1
- package/dist/esm/routes/admin/index.js +0 -9
- package/dist/esm/routes/admin/index.js.map +0 -1
- package/dist/esm/routes/admin/index2.js +0 -9
- package/dist/esm/routes/admin/index2.js.map +0 -1
- package/dist/esm/routes/admin.d.ts +0 -1
- package/dist/esm/routes/admin.js +0 -37
- package/dist/esm/routes/admin.js.map +0 -1
- package/dist/esm/routes/admin2.js +0 -18
- package/dist/esm/routes/admin2.js.map +0 -1
- package/dist/esm/ui/alert-dialog.js +0 -141
- package/dist/esm/ui/alert-dialog.js.map +0 -1
- package/dist/esm/ui/breadcrumb.js +0 -84
- package/dist/esm/ui/breadcrumb.js.map +0 -1
- package/dist/esm/ui/components/Breadcrumbs.js +0 -36
- package/dist/esm/ui/components/Breadcrumbs.js.map +0 -1
- package/dist/esm/ui/crud-list/CrudList.js +0 -189
- package/dist/esm/ui/crud-list/CrudList.js.map +0 -1
- package/dist/esm/ui/editable-list/EditableListField.js +0 -130
- package/dist/esm/ui/editable-list/EditableListField.js.map +0 -1
- package/dist/esm/ui/form.js +0 -134
- package/dist/esm/ui/form.js.map +0 -1
- package/dist/esm/ui/linkExternal.js +0 -26
- package/dist/esm/ui/linkExternal.js.map +0 -1
- package/dist/esm/ui/markdown-editor/MarkdownEditor.js +0 -116
- package/dist/esm/ui/markdown-editor/MarkdownEditor.js.map +0 -1
- package/dist/esm/ui/markdown-editor/MarkdownToolbar.js +0 -99
- package/dist/esm/ui/markdown-editor/MarkdownToolbar.js.map +0 -1
- package/dist/esm/ui/scroll-area.js +0 -62
- package/dist/esm/ui/scroll-area.js.map +0 -1
- package/dist/esm/ui/select.js +0 -138
- package/dist/esm/ui/select.js.map +0 -1
- package/dist/esm/ui/textarea.js +0 -19
- package/dist/esm/ui/textarea.js.map +0 -1
- package/src/components/IconPickerDialog.tsx +0 -136
- package/src/components/IconPickerField.tsx +0 -88
- package/src/modules/admin-base/components/AdminChat.tsx +0 -122
- package/src/modules/admin-base/components/AdminLayout.tsx +0 -111
- package/src/modules/admin-base/components/AdminWelcome.tsx +0 -52
- package/src/modules/admin-base/context/AdminConfigContext.tsx +0 -36
- package/src/modules/admin-base/index.ts +0 -16
- package/src/modules/admin-base/types/adminTypes.ts +0 -11
- package/src/modules/appCatalog/AppCatalogAdminPage.tsx +0 -274
- package/src/modules/approvalMethod/AccessRequestFormFields.tsx +0 -393
- package/src/modules/approvalMethod/ApprovalMethodForm.tsx +0 -323
- package/src/modules/approvalMethod/ApprovalMethodSelector.tsx +0 -150
- package/src/modules/approvalMethod/api/ApiQueryMagazineApprovalMethod.ts +0 -34
- package/src/modules/icons/IconManagementPage.tsx +0 -245
- package/src/routes/admin/app-for-catalog/$id.tsx +0 -571
- package/src/routes/admin/app-for-catalog/index.tsx +0 -19
- package/src/routes/admin/app-for-catalog.tsx +0 -12
- package/src/routes/admin/approval-methods/index.tsx +0 -161
- package/src/routes/admin/approval-methods.tsx +0 -10
- package/src/routes/admin/chat.tsx +0 -13
- package/src/routes/admin/icons.tsx +0 -22
- package/src/routes/admin/index.tsx +0 -9
- package/src/routes/admin.tsx +0 -60
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.js","sources":["../../../src/ui/command.tsx"],"sourcesContent":["'use client'\n\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { SearchIcon } from 'lucide-react'\nimport * as React from 'react'\n\nimport { cn } from '~/lib/utils'\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from '~/ui/dialog'\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n showCloseButton = true,\n commandProps,\n position = 'center',\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n commandProps?: React.ComponentProps<typeof Command>\n position?: 'center' | 'top'\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\n 'overflow-hidden p-0',\n position === 'top' && 'top-[10%] translate-y-0',\n className,\n )}\n showCloseButton={showCloseButton}\n >\n <Command\n className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\"\n {...commandProps}\n >\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className=\"flex h-9 items-center gap-2 border-b px-3\"\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n )\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n 'max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn('bg-border -mx-1 h-px', className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut\n}\n\n"],"names":["CommandPrimitive"],"mappings":";;;;;;AAeA;AAAiB;AACf;AAEF;AACE;AACE;AAACA;AAAA;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAGV;AA4CA;AAAsB;AACpB;AAEF;AACE;AACE;AAAC;AAAA;AACW;AACA;AAEV;AAAmD;AACnD;AAAkB;AAAjB;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAAA;AACN;AAAA;AAGN;AAEA;AAAqB;AACnB;AAEF;AACE;AACE;AAAkB;AAAjB;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAGV;AAEA;AAAsB;AAEtB;AACE;AACE;AAAkB;AAAjB;AACW;AACA;AACN;AAAA;AAGV;AAEA;AAAsB;AACpB;AAEF;AACE;AACE;AAAkB;AAAjB;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAGV;
|
|
1
|
+
{"version":3,"file":"command.js","sources":["../../../src/ui/command.tsx"],"sourcesContent":["'use client'\n\nimport { Command as CommandPrimitive } from 'cmdk'\nimport { SearchIcon } from 'lucide-react'\nimport * as React from 'react'\n\nimport { cn } from '~/lib/utils'\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from '~/ui/dialog'\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n showCloseButton = true,\n commandProps,\n position = 'center',\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n commandProps?: React.ComponentProps<typeof Command>\n position?: 'center' | 'top'\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\n 'overflow-hidden p-0',\n position === 'top' && 'top-[10%] translate-y-0',\n className,\n )}\n showCloseButton={showCloseButton}\n >\n <Command\n className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\"\n {...commandProps}\n >\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className=\"flex h-9 items-center gap-2 border-b px-3\"\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n </div>\n )\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n 'max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn('bg-border -mx-1 h-px', className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut\n}\n\n"],"names":["CommandPrimitive"],"mappings":";;;;;;AAeA;AAAiB;AACf;AAEF;AACE;AACE;AAACA;AAAA;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAGV;AA4CA;AAAsB;AACpB;AAEF;AACE;AACE;AAAC;AAAA;AACW;AACA;AAEV;AAAmD;AACnD;AAAkB;AAAjB;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAAA;AACN;AAAA;AAGN;AAEA;AAAqB;AACnB;AAEF;AACE;AACE;AAAkB;AAAjB;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAGV;AAEA;AAAsB;AAEtB;AACE;AACE;AAAkB;AAAjB;AACW;AACA;AACN;AAAA;AAGV;AAEA;AAAsB;AACpB;AAEF;AACE;AACE;AAAkB;AAAjB;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAGV;AAeA;AAAqB;AACnB;AAEF;AACE;AACE;AAAkB;AAAjB;AACW;AACC;AACT;AACA;AAAA;AAEE;AAAA;AAGV;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { Link } from "@tanstack/react-router";
|
|
3
|
+
import { LogOut } from "lucide-react";
|
|
4
4
|
import SvgAppCatalog from "../../../assets/app-catalog.svg.js";
|
|
5
5
|
import { ThemeSwitcher } from "../../../components/ThemeSwitcher.js";
|
|
6
6
|
import { useAppCatalogContext } from "../../../modules/appCatalog/context/AppCatalogContext.js";
|
|
@@ -16,7 +16,6 @@ function Header({ middle }) {
|
|
|
16
16
|
const isAuthenticated = useIsAuthenticated();
|
|
17
17
|
const user = useUser();
|
|
18
18
|
const { logout } = useAuthActions();
|
|
19
|
-
const navigate = useNavigate();
|
|
20
19
|
const { open: openLoginModal } = useAuthModal();
|
|
21
20
|
const { appVersion } = useAppCatalogContext();
|
|
22
21
|
const handleLogout = async () => {
|
|
@@ -26,9 +25,6 @@ function Header({ middle }) {
|
|
|
26
25
|
console.error("Logout failed:", error);
|
|
27
26
|
}
|
|
28
27
|
};
|
|
29
|
-
const handleAdminClick = () => {
|
|
30
|
-
navigate({ to: "/admin" });
|
|
31
|
-
};
|
|
32
28
|
const handleLoginClick = () => {
|
|
33
29
|
const currentUrl = window.location.pathname + window.location.search;
|
|
34
30
|
openLoginModal(currentUrl);
|
|
@@ -98,11 +94,6 @@ function Header({ middle }) {
|
|
|
98
94
|
] })
|
|
99
95
|
] }),
|
|
100
96
|
/* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
|
|
101
|
-
/* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: handleAdminClick, children: [
|
|
102
|
-
/* @__PURE__ */ jsx(Settings, { className: "h-4 w-4 mr-2" }),
|
|
103
|
-
/* @__PURE__ */ jsx("span", { children: "Admin" })
|
|
104
|
-
] }),
|
|
105
|
-
/* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
|
|
106
97
|
/* @__PURE__ */ jsxs(DropdownMenuItem, { onClick: handleLogout, children: [
|
|
107
98
|
/* @__PURE__ */ jsx(LogOut, { className: "h-4 w-4 mr-2" }),
|
|
108
99
|
/* @__PURE__ */ jsx("span", { children: "Sign out" })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../../src/ui/components/header/Header.tsx"],"sourcesContent":["import { Link
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../../src/ui/components/header/Header.tsx"],"sourcesContent":["import { Link } from '@tanstack/react-router'\nimport { LogOut } from 'lucide-react'\nimport type React from 'react'\nimport AppCatalogLogo from '~/assets/app-catalog.svg?react'\nimport { ThemeSwitcher } from '~/components/ThemeSwitcher'\nimport { useAppCatalogContext } from '~/modules/appCatalog/context/AppCatalogContext'\nimport {\n useAuth,\n useAuthActions,\n useIsAuthenticated,\n useUser,\n} from '~/modules/auth'\nimport { useAuthModal } from '~/modules/auth/AuthModalContext'\nimport { Button } from '~/ui/button'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '~/ui/dropdown-menu'\nimport { Skeleton } from '~/ui/skeleton'\n\nexport interface HeaderProps {\n middle?: React.ReactNode\n}\n\nexport function Header({ middle }: HeaderProps) {\n const { isLoading } = useAuth()\n const isAuthenticated = useIsAuthenticated()\n const user = useUser()\n const { logout } = useAuthActions()\n const { open: openLoginModal } = useAuthModal()\n const { appVersion } = useAppCatalogContext()\n\n const handleLogout = async () => {\n try {\n await logout()\n } catch (error) {\n console.error('Logout failed:', error)\n }\n }\n\n const handleLoginClick = () => {\n // Preserve the current URL for redirect after login\n const currentUrl = window.location.pathname + window.location.search\n openLoginModal(currentUrl)\n }\n\n return (\n <div className=\"flex items-center mb-4 pb-4 gap-4 border-b\">\n <div className=\"flex items-center gap-4\">\n <Link to=\"/\">\n <div className=\"flex items-center gap-2\">\n <AppCatalogLogo className=\"h-16 w-16\" />\n <div className=\"flex flex-col\">\n <span className=\"text-lg font-bold\">App Catalog</span>\n {appVersion &&\n (appVersion.url ? (\n <a\n href={appVersion.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-xs text-primary hover:text-primary/80 transition-colors font-medium py-0.5\"\n onClick={(e) => e.stopPropagation()}\n >\n {appVersion.displayName}\n </a>\n ) : (\n <span className=\"text-xs text-muted-foreground py-0.5\">\n {appVersion.displayName}\n </span>\n ))}\n </div>\n </div>\n </Link>\n </div>\n {middle && <div className=\"flex-1\">{middle}</div>}\n <div className=\"flex items-center gap-3 ml-auto\">\n <ThemeSwitcher />\n {isLoading ? (\n <Skeleton className=\"w-8 h-8 rounded-full\" />\n ) : !isAuthenticated ? (\n <button\n type=\"button\"\n onClick={handleLoginClick}\n className=\"text-sm font-medium text-muted-foreground hover:text-foreground cursor-pointer\"\n >\n Login\n </button>\n ) : user?.name ? (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"w-8 h-8 rounded-full p-0 hover:bg-accent hover:text-accent-foreground cursor-pointer\"\n >\n {user.image ? (\n <img\n src={user.image}\n alt={user.name}\n className=\"w-full h-full rounded-full object-cover\"\n />\n ) : (\n <div className=\"flex items-center justify-center w-full h-full rounded-full bg-primary text-primary-foreground text-xs font-semibold\">\n {user.name.charAt(0).toUpperCase()}\n </div>\n )}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-56\">\n <div className=\"px-2 py-3 flex items-center gap-3\">\n {user.image ? (\n <img\n src={user.image}\n alt={user.name}\n className=\"w-10 h-10 rounded-full object-cover shrink-0\"\n />\n ) : (\n <div className=\"flex items-center justify-center w-10 h-10 rounded-full bg-primary text-primary-foreground text-sm font-semibold shrink-0\">\n {user.name.charAt(0).toUpperCase()}\n </div>\n )}\n <div className=\"flex flex-col min-w-0\">\n <p className=\"text-xs text-muted-foreground truncate\">\n @{user.email?.split('@')[0] || 'user'}\n </p>\n <p className=\"text-sm font-medium truncate\">{user.name}</p>\n </div>\n </div>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={handleLogout}>\n <LogOut className=\"h-4 w-4 mr-2\" />\n <span>Sign out</span>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n ) : null}\n </div>\n </div>\n )\n}\n"],"names":["AppCatalogLogo"],"mappings":";;;;;;;;;;;;AA2BO,SAAS,OAAO,EAAE,UAAuB;;AAC9C,QAAM,EAAE,UAAA,IAAc,QAAA;AACtB,QAAM,kBAAkB,mBAAA;AACxB,QAAM,OAAO,QAAA;AACb,QAAM,EAAE,OAAA,IAAW,eAAA;AACnB,QAAM,EAAE,MAAM,eAAA,IAAmB,aAAA;AACjC,QAAM,EAAE,WAAA,IAAe,qBAAA;AAEvB,QAAM,eAAe,YAAY;AAC/B,QAAI;AACF,YAAM,OAAA;AAAA,IACR,SAAS,OAAO;AACd,cAAQ,MAAM,kBAAkB,KAAK;AAAA,IACvC;AAAA,EACF;AAEA,QAAM,mBAAmB,MAAM;AAE7B,UAAM,aAAa,OAAO,SAAS,WAAW,OAAO,SAAS;AAC9D,mBAAe,UAAU;AAAA,EAC3B;AAEA,SACE,qBAAC,OAAA,EAAI,WAAU,8CACb,UAAA;AAAA,IAAA,oBAAC,OAAA,EAAI,WAAU,2BACb,UAAA,oBAAC,MAAA,EAAK,IAAG,KACP,UAAA,qBAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,MAAA,oBAACA,eAAA,EAAe,WAAU,YAAA,CAAY;AAAA,MACtC,qBAAC,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,QAAA,oBAAC,QAAA,EAAK,WAAU,qBAAoB,UAAA,eAAW;AAAA,QAC9C,eACE,WAAW,MACV;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM,WAAW;AAAA,YACjB,QAAO;AAAA,YACP,KAAI;AAAA,YACJ,WAAU;AAAA,YACV,SAAS,CAAC,MAAM,EAAE,gBAAA;AAAA,YAEjB,UAAA,WAAW;AAAA,UAAA;AAAA,QAAA,IAGd,oBAAC,QAAA,EAAK,WAAU,wCACb,qBAAW,aACd;AAAA,MAAA,EAAA,CAEN;AAAA,IAAA,EAAA,CACF,GACF,GACF;AAAA,IACC,UAAU,oBAAC,OAAA,EAAI,WAAU,UAAU,UAAA,QAAO;AAAA,IAC3C,qBAAC,OAAA,EAAI,WAAU,mCACb,UAAA;AAAA,MAAA,oBAAC,eAAA,EAAc;AAAA,MACd,YACC,oBAAC,UAAA,EAAS,WAAU,wBAAuB,IACzC,CAAC,kBACH;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS;AAAA,UACT,WAAU;AAAA,UACX,UAAA;AAAA,QAAA;AAAA,MAAA,KAGC,6BAAM,QACR,qBAAC,cAAA,EACC,UAAA;AAAA,QAAA,oBAAC,qBAAA,EAAoB,SAAO,MAC1B,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,WAAU;AAAA,YAET,eAAK,QACJ;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAK,KAAK;AAAA,gBACV,KAAK,KAAK;AAAA,gBACV,WAAU;AAAA,cAAA;AAAA,YAAA,IAGZ,oBAAC,OAAA,EAAI,WAAU,wHACZ,UAAA,KAAK,KAAK,OAAO,CAAC,EAAE,YAAA,EAAY,CACnC;AAAA,UAAA;AAAA,QAAA,GAGN;AAAA,QACA,qBAAC,qBAAA,EAAoB,OAAM,OAAM,WAAU,QACzC,UAAA;AAAA,UAAA,qBAAC,OAAA,EAAI,WAAU,qCACZ,UAAA;AAAA,YAAA,KAAK,QACJ;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAK,KAAK;AAAA,gBACV,KAAK,KAAK;AAAA,gBACV,WAAU;AAAA,cAAA;AAAA,YAAA,IAGZ,oBAAC,OAAA,EAAI,WAAU,6HACZ,UAAA,KAAK,KAAK,OAAO,CAAC,EAAE,YAAA,EAAY,CACnC;AAAA,YAEF,qBAAC,OAAA,EAAI,WAAU,yBACb,UAAA;AAAA,cAAA,qBAAC,KAAA,EAAE,WAAU,0CAAyC,UAAA;AAAA,gBAAA;AAAA,kBAClD,UAAK,UAAL,mBAAY,MAAM,KAAK,OAAM;AAAA,cAAA,GACjC;AAAA,cACA,oBAAC,KAAA,EAAE,WAAU,gCAAgC,eAAK,KAAA,CAAK;AAAA,YAAA,EAAA,CACzD;AAAA,UAAA,GACF;AAAA,8BACC,uBAAA,EAAsB;AAAA,UACvB,qBAAC,kBAAA,EAAiB,SAAS,cACzB,UAAA;AAAA,YAAA,oBAAC,QAAA,EAAO,WAAU,eAAA,CAAe;AAAA,YACjC,oBAAC,UAAK,UAAA,WAAA,CAAQ;AAAA,UAAA,EAAA,CAChB;AAAA,QAAA,EAAA,CACF;AAAA,MAAA,EAAA,CACF,IACE;AAAA,IAAA,EAAA,CACN;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cva } from "class-variance-authority";
|
|
3
|
+
import { cn } from "../lib/utils.js";
|
|
4
|
+
import { Button } from "./button.js";
|
|
5
|
+
import { Input } from "./input.js";
|
|
6
|
+
function InputGroup({ className, ...props }) {
|
|
7
|
+
return /* @__PURE__ */ jsx(
|
|
8
|
+
"div",
|
|
9
|
+
{
|
|
10
|
+
"data-slot": "input-group",
|
|
11
|
+
role: "group",
|
|
12
|
+
className: cn(
|
|
13
|
+
"group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none",
|
|
14
|
+
"h-9 min-w-0 has-[>textarea]:h-auto",
|
|
15
|
+
// Variants based on alignment.
|
|
16
|
+
"has-[>[data-align=inline-start]]:[&>input]:pl-2",
|
|
17
|
+
"has-[>[data-align=inline-end]]:[&>input]:pr-2",
|
|
18
|
+
"has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3",
|
|
19
|
+
"has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3",
|
|
20
|
+
// Focus state.
|
|
21
|
+
"has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]",
|
|
22
|
+
// Error state.
|
|
23
|
+
"has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",
|
|
24
|
+
className
|
|
25
|
+
),
|
|
26
|
+
...props
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
const inputGroupAddonVariants = cva(
|
|
31
|
+
"text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50",
|
|
32
|
+
{
|
|
33
|
+
variants: {
|
|
34
|
+
align: {
|
|
35
|
+
"inline-start": "order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]",
|
|
36
|
+
"inline-end": "order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]",
|
|
37
|
+
"block-start": "order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5",
|
|
38
|
+
"block-end": "order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
defaultVariants: {
|
|
42
|
+
align: "inline-start"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
function InputGroupAddon({
|
|
47
|
+
className,
|
|
48
|
+
align = "inline-start",
|
|
49
|
+
...props
|
|
50
|
+
}) {
|
|
51
|
+
return /* @__PURE__ */ jsx(
|
|
52
|
+
"div",
|
|
53
|
+
{
|
|
54
|
+
role: "group",
|
|
55
|
+
"data-slot": "input-group-addon",
|
|
56
|
+
"data-align": align,
|
|
57
|
+
className: cn(inputGroupAddonVariants({ align }), className),
|
|
58
|
+
onClick: (e) => {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
if (e.target.closest("button")) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
(_b = (_a = e.currentTarget.parentElement) == null ? void 0 : _a.querySelector("input")) == null ? void 0 : _b.focus();
|
|
64
|
+
},
|
|
65
|
+
...props
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
const inputGroupButtonVariants = cva(
|
|
70
|
+
"text-sm shadow-none flex gap-2 items-center",
|
|
71
|
+
{
|
|
72
|
+
variants: {
|
|
73
|
+
size: {
|
|
74
|
+
xs: "h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2",
|
|
75
|
+
sm: "h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5",
|
|
76
|
+
"icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
|
|
77
|
+
"icon-sm": "size-8 p-0 has-[>svg]:p-0"
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
defaultVariants: {
|
|
81
|
+
size: "xs"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
function InputGroupButton({
|
|
86
|
+
className,
|
|
87
|
+
type = "button",
|
|
88
|
+
variant = "ghost",
|
|
89
|
+
size = "xs",
|
|
90
|
+
...props
|
|
91
|
+
}) {
|
|
92
|
+
return /* @__PURE__ */ jsx(
|
|
93
|
+
Button,
|
|
94
|
+
{
|
|
95
|
+
type,
|
|
96
|
+
"data-size": size,
|
|
97
|
+
variant,
|
|
98
|
+
className: cn(inputGroupButtonVariants({ size }), className),
|
|
99
|
+
...props
|
|
100
|
+
}
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
function InputGroupInput({
|
|
104
|
+
className,
|
|
105
|
+
...props
|
|
106
|
+
}) {
|
|
107
|
+
return /* @__PURE__ */ jsx(
|
|
108
|
+
Input,
|
|
109
|
+
{
|
|
110
|
+
"data-slot": "input-group-control",
|
|
111
|
+
className: cn(
|
|
112
|
+
"flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent",
|
|
113
|
+
className
|
|
114
|
+
),
|
|
115
|
+
...props
|
|
116
|
+
}
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
export {
|
|
120
|
+
InputGroup,
|
|
121
|
+
InputGroupAddon,
|
|
122
|
+
InputGroupButton,
|
|
123
|
+
InputGroupInput
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=input-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-group.js","sources":["../../../src/ui/input-group.tsx"],"sourcesContent":["import type { VariantProps } from 'class-variance-authority'\nimport { cva } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { cn } from '~/lib/utils'\nimport { Button } from '~/ui/button'\nimport { Input } from '~/ui/input'\nimport { Textarea } from '~/ui/textarea'\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n 'group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none',\n 'h-9 min-w-0 has-[>textarea]:h-auto',\n\n // Variants based on alignment.\n 'has-[>[data-align=inline-start]]:[&>input]:pl-2',\n 'has-[>[data-align=inline-end]]:[&>input]:pr-2',\n 'has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3',\n 'has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3',\n\n // Focus state.\n 'has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]',\n\n // Error state.\n 'has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40',\n\n className,\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50\",\n {\n variants: {\n align: {\n 'inline-start':\n 'order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]',\n 'inline-end':\n 'order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]',\n 'block-start':\n 'order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5',\n 'block-end':\n 'order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n)\n\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n 'text-sm shadow-none flex gap-2 items-center',\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: 'h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5',\n 'icon-xs':\n 'size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n },\n)\n\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n ...props\n}: Omit<React.ComponentProps<typeof Button>, 'size'> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea\n}\n\n"],"names":[],"mappings":";;;;;AASA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,MAAK;AAAA,MACL,WAAW;AAAA,QACT;AAAA,QACA;AAAA;AAAA,QAGA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAGA;AAAA;AAAA,QAGA;AAAA,QAEA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,MAAM,0BAA0B;AAAA,EAC9B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,OAAO;AAAA,QACL,gBACE;AAAA,QACF,cACE;AAAA,QACF,eACE;AAAA,QACF,aACE;AAAA,MAAA;AAAA,IACJ;AAAA,IAEF,iBAAiB;AAAA,MACf,OAAO;AAAA,IAAA;AAAA,EACT;AAEJ;AAEA,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA,QAAQ;AAAA,EACR,GAAG;AACL,GAA+E;AAC7E,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,cAAY;AAAA,MACZ,WAAW,GAAG,wBAAwB,EAAE,MAAA,CAAO,GAAG,SAAS;AAAA,MAC3D,SAAS,CAAC,MAAM;;AACd,YAAK,EAAE,OAAuB,QAAQ,QAAQ,GAAG;AAC/C;AAAA,QACF;AACA,sBAAE,cAAc,kBAAhB,mBAA+B,cAAc,aAA7C,mBAAuD;AAAA,MACzD;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,MAAM,2BAA2B;AAAA,EAC/B;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,WACE;AAAA,QACF,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,IAEF,iBAAiB;AAAA,MACf,MAAM;AAAA,IAAA;AAAA,EACR;AAEJ;AAEA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA,OAAO;AAAA,EACP,UAAU;AAAA,EACV,OAAO;AAAA,EACP,GAAG;AACL,GACiD;AAC/C,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,aAAW;AAAA,MACX;AAAA,MACA,WAAW,GAAG,yBAAyB,EAAE,KAAA,CAAM,GAAG,SAAS;AAAA,MAC1D,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;AAcA,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA,GAAG;AACL,GAAkC;AAChC,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MAAA;AAAA,MAED,GAAG;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@igstack/app-catalog-frontend-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Frontend core library for App Catalog",
|
|
5
5
|
"homepage": "https://github.com/lislon/app-catalog",
|
|
6
6
|
"repository": {
|
|
@@ -133,8 +133,8 @@
|
|
|
133
133
|
"vite-plugin-static-copy": "^3.1.4",
|
|
134
134
|
"vite-plugin-svgr": "^4.2.0",
|
|
135
135
|
"vitest": "3.2.2",
|
|
136
|
-
"@igstack/app-catalog-shared-core": "0.
|
|
137
|
-
"@igstack/app-catalog-backend-core": "0.
|
|
136
|
+
"@igstack/app-catalog-shared-core": "0.3.0",
|
|
137
|
+
"@igstack/app-catalog-backend-core": "0.3.0"
|
|
138
138
|
},
|
|
139
139
|
"peerDependencies": {
|
|
140
140
|
"react": "19.1.2",
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import type { AppForCatalog } from '@igstack/app-catalog-backend-core'
|
|
2
|
-
import { AppWindowIcon,
|
|
2
|
+
import { AppWindowIcon, ExternalLinkIcon, XIcon } from 'lucide-react'
|
|
3
3
|
import React, { useEffect, useState } from 'react'
|
|
4
|
-
import { useUser } from '~/modules/auth/AuthContext'
|
|
5
4
|
import { Badge } from '~/ui/badge'
|
|
6
5
|
import { Button } from '~/ui/button'
|
|
7
6
|
import { ScrollArea } from '~/ui/scroll-area'
|
|
8
7
|
import { Separator } from '~/ui/separator'
|
|
9
8
|
import { useAppCatalogContext } from '~/modules/appCatalog'
|
|
10
|
-
import { ExternalLink
|
|
9
|
+
import { ExternalLink } from '~/ui/link'
|
|
11
10
|
import {
|
|
12
11
|
Table,
|
|
13
12
|
TableBody,
|
|
@@ -185,9 +184,6 @@ function AccessSection({ app }: { app: AppForCatalog }) {
|
|
|
185
184
|
}
|
|
186
185
|
|
|
187
186
|
export function AppDetailModal({ app, isOpen, onClose }: AppDetailModalProps) {
|
|
188
|
-
const user = useUser()
|
|
189
|
-
const isAuthenticated = !!user
|
|
190
|
-
|
|
191
187
|
// Close on Escape key
|
|
192
188
|
useEffect(() => {
|
|
193
189
|
const handleEscape = (e: KeyboardEvent) => {
|
|
@@ -235,21 +231,6 @@ export function AppDetailModal({ app, isOpen, onClose }: AppDetailModalProps) {
|
|
|
235
231
|
<span className="sr-only">Close</span>
|
|
236
232
|
</Button>
|
|
237
233
|
|
|
238
|
-
{/* Edit Button (Authenticated users) */}
|
|
239
|
-
{isAuthenticated && app.slug && (
|
|
240
|
-
<Button
|
|
241
|
-
variant="default"
|
|
242
|
-
size="sm"
|
|
243
|
-
asChild
|
|
244
|
-
className="absolute top-6 right-[4.5rem] z-10"
|
|
245
|
-
>
|
|
246
|
-
<Link to="/admin/app-for-catalog/$id" params={{ id: app.slug }}>
|
|
247
|
-
<EditIcon className="size-4 mr-2" />
|
|
248
|
-
Edit
|
|
249
|
-
</Link>
|
|
250
|
-
</Button>
|
|
251
|
-
)}
|
|
252
|
-
|
|
253
234
|
<div className="bg-background rounded-lg shadow-2xl border border-border p-8 space-y-8">
|
|
254
235
|
{/* App Details Section */}
|
|
255
236
|
<div className="space-y-6">
|
package/src/routeTree.gen.ts
CHANGED
|
@@ -9,35 +9,16 @@
|
|
|
9
9
|
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
|
|
10
10
|
|
|
11
11
|
import { Route as rootRouteImport } from './routes/__root'
|
|
12
|
-
import { Route as AdminRouteImport } from './routes/admin'
|
|
13
12
|
import { Route as LayoutRouteImport } from './routes/_layout'
|
|
14
|
-
import { Route as AdminIndexRouteImport } from './routes/admin/index'
|
|
15
13
|
import { Route as LayoutIndexRouteImport } from './routes/_layout/index'
|
|
16
14
|
import { Route as AuthCallbackRouteImport } from './routes/auth.callback'
|
|
17
|
-
import { Route as AdminIconsRouteImport } from './routes/admin/icons'
|
|
18
|
-
import { Route as AdminChatRouteImport } from './routes/admin/chat'
|
|
19
|
-
import { Route as AdminApprovalMethodsRouteImport } from './routes/admin/approval-methods'
|
|
20
|
-
import { Route as AdminAppForCatalogRouteImport } from './routes/admin/app-for-catalog'
|
|
21
15
|
import { Route as LayoutLoginRouteImport } from './routes/_layout/login'
|
|
22
|
-
import { Route as AdminApprovalMethodsIndexRouteImport } from './routes/admin/approval-methods/index'
|
|
23
|
-
import { Route as AdminAppForCatalogIndexRouteImport } from './routes/admin/app-for-catalog/index'
|
|
24
|
-
import { Route as AdminAppForCatalogIdRouteImport } from './routes/admin/app-for-catalog/$id'
|
|
25
16
|
import { Route as LayoutCatalogAppsIndexRouteImport } from './routes/_layout/catalog.apps.index'
|
|
26
17
|
|
|
27
|
-
const AdminRoute = AdminRouteImport.update({
|
|
28
|
-
id: '/admin',
|
|
29
|
-
path: '/admin',
|
|
30
|
-
getParentRoute: () => rootRouteImport,
|
|
31
|
-
} as any)
|
|
32
18
|
const LayoutRoute = LayoutRouteImport.update({
|
|
33
19
|
id: '/_layout',
|
|
34
20
|
getParentRoute: () => rootRouteImport,
|
|
35
21
|
} as any)
|
|
36
|
-
const AdminIndexRoute = AdminIndexRouteImport.update({
|
|
37
|
-
id: '/',
|
|
38
|
-
path: '/',
|
|
39
|
-
getParentRoute: () => AdminRoute,
|
|
40
|
-
} as any)
|
|
41
22
|
const LayoutIndexRoute = LayoutIndexRouteImport.update({
|
|
42
23
|
id: '/',
|
|
43
24
|
path: '/',
|
|
@@ -48,47 +29,11 @@ const AuthCallbackRoute = AuthCallbackRouteImport.update({
|
|
|
48
29
|
path: '/auth/callback',
|
|
49
30
|
getParentRoute: () => rootRouteImport,
|
|
50
31
|
} as any)
|
|
51
|
-
const AdminIconsRoute = AdminIconsRouteImport.update({
|
|
52
|
-
id: '/icons',
|
|
53
|
-
path: '/icons',
|
|
54
|
-
getParentRoute: () => AdminRoute,
|
|
55
|
-
} as any)
|
|
56
|
-
const AdminChatRoute = AdminChatRouteImport.update({
|
|
57
|
-
id: '/chat',
|
|
58
|
-
path: '/chat',
|
|
59
|
-
getParentRoute: () => AdminRoute,
|
|
60
|
-
} as any)
|
|
61
|
-
const AdminApprovalMethodsRoute = AdminApprovalMethodsRouteImport.update({
|
|
62
|
-
id: '/approval-methods',
|
|
63
|
-
path: '/approval-methods',
|
|
64
|
-
getParentRoute: () => AdminRoute,
|
|
65
|
-
} as any)
|
|
66
|
-
const AdminAppForCatalogRoute = AdminAppForCatalogRouteImport.update({
|
|
67
|
-
id: '/app-for-catalog',
|
|
68
|
-
path: '/app-for-catalog',
|
|
69
|
-
getParentRoute: () => AdminRoute,
|
|
70
|
-
} as any)
|
|
71
32
|
const LayoutLoginRoute = LayoutLoginRouteImport.update({
|
|
72
33
|
id: '/login',
|
|
73
34
|
path: '/login',
|
|
74
35
|
getParentRoute: () => LayoutRoute,
|
|
75
36
|
} as any)
|
|
76
|
-
const AdminApprovalMethodsIndexRoute =
|
|
77
|
-
AdminApprovalMethodsIndexRouteImport.update({
|
|
78
|
-
id: '/',
|
|
79
|
-
path: '/',
|
|
80
|
-
getParentRoute: () => AdminApprovalMethodsRoute,
|
|
81
|
-
} as any)
|
|
82
|
-
const AdminAppForCatalogIndexRoute = AdminAppForCatalogIndexRouteImport.update({
|
|
83
|
-
id: '/',
|
|
84
|
-
path: '/',
|
|
85
|
-
getParentRoute: () => AdminAppForCatalogRoute,
|
|
86
|
-
} as any)
|
|
87
|
-
const AdminAppForCatalogIdRoute = AdminAppForCatalogIdRouteImport.update({
|
|
88
|
-
id: '/$id',
|
|
89
|
-
path: '/$id',
|
|
90
|
-
getParentRoute: () => AdminAppForCatalogRoute,
|
|
91
|
-
} as any)
|
|
92
37
|
const LayoutCatalogAppsIndexRoute = LayoutCatalogAppsIndexRouteImport.update({
|
|
93
38
|
id: '/catalog/apps/',
|
|
94
39
|
path: '/catalog/apps/',
|
|
@@ -97,109 +42,45 @@ const LayoutCatalogAppsIndexRoute = LayoutCatalogAppsIndexRouteImport.update({
|
|
|
97
42
|
|
|
98
43
|
export interface FileRoutesByFullPath {
|
|
99
44
|
'/': typeof LayoutIndexRoute
|
|
100
|
-
'/admin': typeof AdminRouteWithChildren
|
|
101
45
|
'/login': typeof LayoutLoginRoute
|
|
102
|
-
'/admin/app-for-catalog': typeof AdminAppForCatalogRouteWithChildren
|
|
103
|
-
'/admin/approval-methods': typeof AdminApprovalMethodsRouteWithChildren
|
|
104
|
-
'/admin/chat': typeof AdminChatRoute
|
|
105
|
-
'/admin/icons': typeof AdminIconsRoute
|
|
106
46
|
'/auth/callback': typeof AuthCallbackRoute
|
|
107
|
-
'/admin/': typeof AdminIndexRoute
|
|
108
|
-
'/admin/app-for-catalog/$id': typeof AdminAppForCatalogIdRoute
|
|
109
|
-
'/admin/app-for-catalog/': typeof AdminAppForCatalogIndexRoute
|
|
110
|
-
'/admin/approval-methods/': typeof AdminApprovalMethodsIndexRoute
|
|
111
47
|
'/catalog/apps/': typeof LayoutCatalogAppsIndexRoute
|
|
112
48
|
}
|
|
113
49
|
export interface FileRoutesByTo {
|
|
114
50
|
'/login': typeof LayoutLoginRoute
|
|
115
|
-
'/admin/chat': typeof AdminChatRoute
|
|
116
|
-
'/admin/icons': typeof AdminIconsRoute
|
|
117
51
|
'/auth/callback': typeof AuthCallbackRoute
|
|
118
52
|
'/': typeof LayoutIndexRoute
|
|
119
|
-
'/admin': typeof AdminIndexRoute
|
|
120
|
-
'/admin/app-for-catalog/$id': typeof AdminAppForCatalogIdRoute
|
|
121
|
-
'/admin/app-for-catalog': typeof AdminAppForCatalogIndexRoute
|
|
122
|
-
'/admin/approval-methods': typeof AdminApprovalMethodsIndexRoute
|
|
123
53
|
'/catalog/apps': typeof LayoutCatalogAppsIndexRoute
|
|
124
54
|
}
|
|
125
55
|
export interface FileRoutesById {
|
|
126
56
|
__root__: typeof rootRouteImport
|
|
127
57
|
'/_layout': typeof LayoutRouteWithChildren
|
|
128
|
-
'/admin': typeof AdminRouteWithChildren
|
|
129
58
|
'/_layout/login': typeof LayoutLoginRoute
|
|
130
|
-
'/admin/app-for-catalog': typeof AdminAppForCatalogRouteWithChildren
|
|
131
|
-
'/admin/approval-methods': typeof AdminApprovalMethodsRouteWithChildren
|
|
132
|
-
'/admin/chat': typeof AdminChatRoute
|
|
133
|
-
'/admin/icons': typeof AdminIconsRoute
|
|
134
59
|
'/auth/callback': typeof AuthCallbackRoute
|
|
135
60
|
'/_layout/': typeof LayoutIndexRoute
|
|
136
|
-
'/admin/': typeof AdminIndexRoute
|
|
137
|
-
'/admin/app-for-catalog/$id': typeof AdminAppForCatalogIdRoute
|
|
138
|
-
'/admin/app-for-catalog/': typeof AdminAppForCatalogIndexRoute
|
|
139
|
-
'/admin/approval-methods/': typeof AdminApprovalMethodsIndexRoute
|
|
140
61
|
'/_layout/catalog/apps/': typeof LayoutCatalogAppsIndexRoute
|
|
141
62
|
}
|
|
142
63
|
export interface FileRouteTypes {
|
|
143
64
|
fileRoutesByFullPath: FileRoutesByFullPath
|
|
144
|
-
fullPaths:
|
|
145
|
-
| '/'
|
|
146
|
-
| '/admin'
|
|
147
|
-
| '/login'
|
|
148
|
-
| '/admin/app-for-catalog'
|
|
149
|
-
| '/admin/approval-methods'
|
|
150
|
-
| '/admin/chat'
|
|
151
|
-
| '/admin/icons'
|
|
152
|
-
| '/auth/callback'
|
|
153
|
-
| '/admin/'
|
|
154
|
-
| '/admin/app-for-catalog/$id'
|
|
155
|
-
| '/admin/app-for-catalog/'
|
|
156
|
-
| '/admin/approval-methods/'
|
|
157
|
-
| '/catalog/apps/'
|
|
65
|
+
fullPaths: '/' | '/login' | '/auth/callback' | '/catalog/apps/'
|
|
158
66
|
fileRoutesByTo: FileRoutesByTo
|
|
159
|
-
to:
|
|
160
|
-
| '/login'
|
|
161
|
-
| '/admin/chat'
|
|
162
|
-
| '/admin/icons'
|
|
163
|
-
| '/auth/callback'
|
|
164
|
-
| '/'
|
|
165
|
-
| '/admin'
|
|
166
|
-
| '/admin/app-for-catalog/$id'
|
|
167
|
-
| '/admin/app-for-catalog'
|
|
168
|
-
| '/admin/approval-methods'
|
|
169
|
-
| '/catalog/apps'
|
|
67
|
+
to: '/login' | '/auth/callback' | '/' | '/catalog/apps'
|
|
170
68
|
id:
|
|
171
69
|
| '__root__'
|
|
172
70
|
| '/_layout'
|
|
173
|
-
| '/admin'
|
|
174
71
|
| '/_layout/login'
|
|
175
|
-
| '/admin/app-for-catalog'
|
|
176
|
-
| '/admin/approval-methods'
|
|
177
|
-
| '/admin/chat'
|
|
178
|
-
| '/admin/icons'
|
|
179
72
|
| '/auth/callback'
|
|
180
73
|
| '/_layout/'
|
|
181
|
-
| '/admin/'
|
|
182
|
-
| '/admin/app-for-catalog/$id'
|
|
183
|
-
| '/admin/app-for-catalog/'
|
|
184
|
-
| '/admin/approval-methods/'
|
|
185
74
|
| '/_layout/catalog/apps/'
|
|
186
75
|
fileRoutesById: FileRoutesById
|
|
187
76
|
}
|
|
188
77
|
export interface RootRouteChildren {
|
|
189
78
|
LayoutRoute: typeof LayoutRouteWithChildren
|
|
190
|
-
AdminRoute: typeof AdminRouteWithChildren
|
|
191
79
|
AuthCallbackRoute: typeof AuthCallbackRoute
|
|
192
80
|
}
|
|
193
81
|
|
|
194
82
|
declare module '@tanstack/react-router' {
|
|
195
83
|
interface FileRoutesByPath {
|
|
196
|
-
'/admin': {
|
|
197
|
-
id: '/admin'
|
|
198
|
-
path: '/admin'
|
|
199
|
-
fullPath: '/admin'
|
|
200
|
-
preLoaderRoute: typeof AdminRouteImport
|
|
201
|
-
parentRoute: typeof rootRouteImport
|
|
202
|
-
}
|
|
203
84
|
'/_layout': {
|
|
204
85
|
id: '/_layout'
|
|
205
86
|
path: ''
|
|
@@ -207,13 +88,6 @@ declare module '@tanstack/react-router' {
|
|
|
207
88
|
preLoaderRoute: typeof LayoutRouteImport
|
|
208
89
|
parentRoute: typeof rootRouteImport
|
|
209
90
|
}
|
|
210
|
-
'/admin/': {
|
|
211
|
-
id: '/admin/'
|
|
212
|
-
path: '/'
|
|
213
|
-
fullPath: '/admin/'
|
|
214
|
-
preLoaderRoute: typeof AdminIndexRouteImport
|
|
215
|
-
parentRoute: typeof AdminRoute
|
|
216
|
-
}
|
|
217
91
|
'/_layout/': {
|
|
218
92
|
id: '/_layout/'
|
|
219
93
|
path: '/'
|
|
@@ -228,34 +102,6 @@ declare module '@tanstack/react-router' {
|
|
|
228
102
|
preLoaderRoute: typeof AuthCallbackRouteImport
|
|
229
103
|
parentRoute: typeof rootRouteImport
|
|
230
104
|
}
|
|
231
|
-
'/admin/icons': {
|
|
232
|
-
id: '/admin/icons'
|
|
233
|
-
path: '/icons'
|
|
234
|
-
fullPath: '/admin/icons'
|
|
235
|
-
preLoaderRoute: typeof AdminIconsRouteImport
|
|
236
|
-
parentRoute: typeof AdminRoute
|
|
237
|
-
}
|
|
238
|
-
'/admin/chat': {
|
|
239
|
-
id: '/admin/chat'
|
|
240
|
-
path: '/chat'
|
|
241
|
-
fullPath: '/admin/chat'
|
|
242
|
-
preLoaderRoute: typeof AdminChatRouteImport
|
|
243
|
-
parentRoute: typeof AdminRoute
|
|
244
|
-
}
|
|
245
|
-
'/admin/approval-methods': {
|
|
246
|
-
id: '/admin/approval-methods'
|
|
247
|
-
path: '/approval-methods'
|
|
248
|
-
fullPath: '/admin/approval-methods'
|
|
249
|
-
preLoaderRoute: typeof AdminApprovalMethodsRouteImport
|
|
250
|
-
parentRoute: typeof AdminRoute
|
|
251
|
-
}
|
|
252
|
-
'/admin/app-for-catalog': {
|
|
253
|
-
id: '/admin/app-for-catalog'
|
|
254
|
-
path: '/app-for-catalog'
|
|
255
|
-
fullPath: '/admin/app-for-catalog'
|
|
256
|
-
preLoaderRoute: typeof AdminAppForCatalogRouteImport
|
|
257
|
-
parentRoute: typeof AdminRoute
|
|
258
|
-
}
|
|
259
105
|
'/_layout/login': {
|
|
260
106
|
id: '/_layout/login'
|
|
261
107
|
path: '/login'
|
|
@@ -263,27 +109,6 @@ declare module '@tanstack/react-router' {
|
|
|
263
109
|
preLoaderRoute: typeof LayoutLoginRouteImport
|
|
264
110
|
parentRoute: typeof LayoutRoute
|
|
265
111
|
}
|
|
266
|
-
'/admin/approval-methods/': {
|
|
267
|
-
id: '/admin/approval-methods/'
|
|
268
|
-
path: '/'
|
|
269
|
-
fullPath: '/admin/approval-methods/'
|
|
270
|
-
preLoaderRoute: typeof AdminApprovalMethodsIndexRouteImport
|
|
271
|
-
parentRoute: typeof AdminApprovalMethodsRoute
|
|
272
|
-
}
|
|
273
|
-
'/admin/app-for-catalog/': {
|
|
274
|
-
id: '/admin/app-for-catalog/'
|
|
275
|
-
path: '/'
|
|
276
|
-
fullPath: '/admin/app-for-catalog/'
|
|
277
|
-
preLoaderRoute: typeof AdminAppForCatalogIndexRouteImport
|
|
278
|
-
parentRoute: typeof AdminAppForCatalogRoute
|
|
279
|
-
}
|
|
280
|
-
'/admin/app-for-catalog/$id': {
|
|
281
|
-
id: '/admin/app-for-catalog/$id'
|
|
282
|
-
path: '/$id'
|
|
283
|
-
fullPath: '/admin/app-for-catalog/$id'
|
|
284
|
-
preLoaderRoute: typeof AdminAppForCatalogIdRouteImport
|
|
285
|
-
parentRoute: typeof AdminAppForCatalogRoute
|
|
286
|
-
}
|
|
287
112
|
'/_layout/catalog/apps/': {
|
|
288
113
|
id: '/_layout/catalog/apps/'
|
|
289
114
|
path: '/catalog/apps'
|
|
@@ -309,51 +134,8 @@ const LayoutRouteChildren: LayoutRouteChildren = {
|
|
|
309
134
|
const LayoutRouteWithChildren =
|
|
310
135
|
LayoutRoute._addFileChildren(LayoutRouteChildren)
|
|
311
136
|
|
|
312
|
-
interface AdminAppForCatalogRouteChildren {
|
|
313
|
-
AdminAppForCatalogIdRoute: typeof AdminAppForCatalogIdRoute
|
|
314
|
-
AdminAppForCatalogIndexRoute: typeof AdminAppForCatalogIndexRoute
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
const AdminAppForCatalogRouteChildren: AdminAppForCatalogRouteChildren = {
|
|
318
|
-
AdminAppForCatalogIdRoute: AdminAppForCatalogIdRoute,
|
|
319
|
-
AdminAppForCatalogIndexRoute: AdminAppForCatalogIndexRoute,
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
const AdminAppForCatalogRouteWithChildren =
|
|
323
|
-
AdminAppForCatalogRoute._addFileChildren(AdminAppForCatalogRouteChildren)
|
|
324
|
-
|
|
325
|
-
interface AdminApprovalMethodsRouteChildren {
|
|
326
|
-
AdminApprovalMethodsIndexRoute: typeof AdminApprovalMethodsIndexRoute
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
const AdminApprovalMethodsRouteChildren: AdminApprovalMethodsRouteChildren = {
|
|
330
|
-
AdminApprovalMethodsIndexRoute: AdminApprovalMethodsIndexRoute,
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
const AdminApprovalMethodsRouteWithChildren =
|
|
334
|
-
AdminApprovalMethodsRoute._addFileChildren(AdminApprovalMethodsRouteChildren)
|
|
335
|
-
|
|
336
|
-
interface AdminRouteChildren {
|
|
337
|
-
AdminAppForCatalogRoute: typeof AdminAppForCatalogRouteWithChildren
|
|
338
|
-
AdminApprovalMethodsRoute: typeof AdminApprovalMethodsRouteWithChildren
|
|
339
|
-
AdminChatRoute: typeof AdminChatRoute
|
|
340
|
-
AdminIconsRoute: typeof AdminIconsRoute
|
|
341
|
-
AdminIndexRoute: typeof AdminIndexRoute
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
const AdminRouteChildren: AdminRouteChildren = {
|
|
345
|
-
AdminAppForCatalogRoute: AdminAppForCatalogRouteWithChildren,
|
|
346
|
-
AdminApprovalMethodsRoute: AdminApprovalMethodsRouteWithChildren,
|
|
347
|
-
AdminChatRoute: AdminChatRoute,
|
|
348
|
-
AdminIconsRoute: AdminIconsRoute,
|
|
349
|
-
AdminIndexRoute: AdminIndexRoute,
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
const AdminRouteWithChildren = AdminRoute._addFileChildren(AdminRouteChildren)
|
|
353
|
-
|
|
354
137
|
const rootRouteChildren: RootRouteChildren = {
|
|
355
138
|
LayoutRoute: LayoutRouteWithChildren,
|
|
356
|
-
AdminRoute: AdminRouteWithChildren,
|
|
357
139
|
AuthCallbackRoute: AuthCallbackRoute,
|
|
358
140
|
}
|
|
359
141
|
export const routeTree = rootRouteImport
|