@pattern-stack/frontend-patterns 0.0.1 → 0.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.
Files changed (153) hide show
  1. package/README.md +6 -6
  2. package/package.json +3 -5
  3. package/src/App.css +0 -42
  4. package/src/App.tsx +0 -54
  5. package/src/__tests__/README.md +0 -221
  6. package/src/__tests__/atoms/hooks/simple-hooks.test.ts +0 -44
  7. package/src/__tests__/atoms/ui/button.test.tsx +0 -68
  8. package/src/__tests__/atoms/utils/simple.test.ts +0 -18
  9. package/src/__tests__/atoms/utils/utils.test.ts +0 -77
  10. package/src/__tests__/features/auth/simple-auth.test.tsx +0 -40
  11. package/src/__tests__/molecules/layout/simple-layout.test.tsx +0 -81
  12. package/src/__tests__/organisms/showcase/simple-showcase.test.tsx +0 -167
  13. package/src/__tests__/setup.ts +0 -51
  14. package/src/__tests__/utils.tsx +0 -123
  15. package/src/atoms/composed/Accordion/Accordion.tsx +0 -271
  16. package/src/atoms/composed/Accordion/index.ts +0 -1
  17. package/src/atoms/composed/Alert/Alert.tsx +0 -132
  18. package/src/atoms/composed/Alert/index.ts +0 -1
  19. package/src/atoms/composed/Breadcrumb/Breadcrumb.tsx +0 -83
  20. package/src/atoms/composed/Breadcrumb/index.ts +0 -1
  21. package/src/atoms/composed/Chart/Chart.tsx +0 -425
  22. package/src/atoms/composed/Chart/index.ts +0 -2
  23. package/src/atoms/composed/ColorSwatch/ColorSwatch.tsx +0 -72
  24. package/src/atoms/composed/ColorSwatch/index.ts +0 -1
  25. package/src/atoms/composed/DarkModeToggle.tsx +0 -66
  26. package/src/atoms/composed/DataBadge/DataBadge.tsx +0 -81
  27. package/src/atoms/composed/DataBadge/index.ts +0 -1
  28. package/src/atoms/composed/DataTable/DataTable.tsx +0 -394
  29. package/src/atoms/composed/DataTable/TableCellWithTooltip.tsx +0 -41
  30. package/src/atoms/composed/DataTable/index.ts +0 -2
  31. package/src/atoms/composed/DateTimePicker/DateTimePicker.tsx +0 -611
  32. package/src/atoms/composed/DateTimePicker/index.ts +0 -2
  33. package/src/atoms/composed/DetailedCard/DetailedCard.tsx +0 -181
  34. package/src/atoms/composed/DetailedCard/index.ts +0 -2
  35. package/src/atoms/composed/EmptyState/EmptyState.tsx +0 -90
  36. package/src/atoms/composed/EmptyState/index.ts +0 -1
  37. package/src/atoms/composed/FileUpload/FileUpload.tsx +0 -477
  38. package/src/atoms/composed/FileUpload/index.ts +0 -2
  39. package/src/atoms/composed/FormField/FormField.tsx +0 -92
  40. package/src/atoms/composed/FormField/index.ts +0 -1
  41. package/src/atoms/composed/GlobalSearch/GlobalSearch.tsx +0 -37
  42. package/src/atoms/composed/GlobalSearch/index.ts +0 -1
  43. package/src/atoms/composed/IconBadge/IconBadge.tsx +0 -95
  44. package/src/atoms/composed/IconBadge/index.ts +0 -2
  45. package/src/atoms/composed/Modal/Modal.tsx +0 -223
  46. package/src/atoms/composed/Modal/index.ts +0 -2
  47. package/src/atoms/composed/PaletteSwitcher.tsx +0 -386
  48. package/src/atoms/composed/ProgressBar/ProgressBar.tsx +0 -116
  49. package/src/atoms/composed/ProgressBar/index.ts +0 -1
  50. package/src/atoms/composed/StatCard/StatCard.tsx +0 -219
  51. package/src/atoms/composed/StatCard/index.ts +0 -1
  52. package/src/atoms/composed/StyleGuide.tsx +0 -717
  53. package/src/atoms/composed/Toast/Toast.tsx +0 -219
  54. package/src/atoms/composed/Toast/index.ts +0 -1
  55. package/src/atoms/composed/Tooltip/Tooltip.tsx +0 -213
  56. package/src/atoms/composed/Tooltip/index.ts +0 -1
  57. package/src/atoms/composed/UserAvatar/UserAvatar.tsx +0 -139
  58. package/src/atoms/composed/UserAvatar/index.ts +0 -1
  59. package/src/atoms/composed/UserMenu/UserMenu.tsx +0 -16
  60. package/src/atoms/composed/UserMenu/index.ts +0 -1
  61. package/src/atoms/composed/index.ts +0 -29
  62. package/src/atoms/hooks/useApi.ts +0 -80
  63. package/src/atoms/hooks/useHealth.ts +0 -17
  64. package/src/atoms/index.ts +0 -13
  65. package/src/atoms/services/api/client.ts +0 -134
  66. package/src/atoms/services/auth-service.ts +0 -248
  67. package/src/atoms/services/health.ts +0 -15
  68. package/src/atoms/services/index.ts +0 -3
  69. package/src/atoms/shared/config/constants.ts +0 -17
  70. package/src/atoms/shared/config/dashboard-sizes.ts +0 -111
  71. package/src/atoms/shared/config/environment.ts +0 -10
  72. package/src/atoms/shared/index.ts +0 -4
  73. package/src/atoms/shared/styles/color-palettes.css +0 -566
  74. package/src/atoms/types/auth.ts +0 -62
  75. package/src/atoms/types/generated.ts +0 -1469
  76. package/src/atoms/types/index.ts +0 -4
  77. package/src/atoms/types/loading.ts +0 -28
  78. package/src/atoms/ui/Badge.tsx +0 -30
  79. package/src/atoms/ui/ErrorBoundary.tsx +0 -59
  80. package/src/atoms/ui/Select.tsx +0 -53
  81. package/src/atoms/ui/Switch.tsx +0 -42
  82. package/src/atoms/ui/Tabs.tsx +0 -118
  83. package/src/atoms/ui/avatar.tsx +0 -48
  84. package/src/atoms/ui/button.tsx +0 -70
  85. package/src/atoms/ui/card.tsx +0 -76
  86. package/src/atoms/ui/dropdown-menu.tsx +0 -199
  87. package/src/atoms/ui/index.ts +0 -39
  88. package/src/atoms/ui/input.tsx +0 -23
  89. package/src/atoms/ui/label.tsx +0 -23
  90. package/src/atoms/ui/skeleton.tsx +0 -13
  91. package/src/atoms/ui/spinner.tsx +0 -49
  92. package/src/atoms/ui/table.tsx +0 -116
  93. package/src/atoms/utils/animations.ts +0 -135
  94. package/src/atoms/utils/tooltip-helpers.ts +0 -140
  95. package/src/atoms/utils/utils.ts +0 -9
  96. package/src/features/auth/components/LoginForm.tsx +0 -168
  97. package/src/features/auth/components/LogoutButton.tsx +0 -19
  98. package/src/features/auth/components/ProtectedRoute.tsx +0 -60
  99. package/src/features/auth/components/index.ts +0 -4
  100. package/src/features/auth/hooks/index.ts +0 -2
  101. package/src/features/auth/hooks/useAuth.tsx +0 -205
  102. package/src/features/auth/hooks/usePermissions.ts +0 -35
  103. package/src/features/auth/index.ts +0 -2
  104. package/src/features/index.ts +0 -2
  105. package/src/index.css +0 -704
  106. package/src/index.ts +0 -13
  107. package/src/main.tsx +0 -48
  108. package/src/molecules/.gitkeep +0 -0
  109. package/src/molecules/forms/FormGroup.tsx +0 -75
  110. package/src/molecules/forms/SearchInput.tsx +0 -259
  111. package/src/molecules/forms/index.ts +0 -4
  112. package/src/molecules/index.ts +0 -4
  113. package/src/molecules/layout/AppHeader/AppHeader.tsx +0 -42
  114. package/src/molecules/layout/AppHeader/index.ts +0 -1
  115. package/src/molecules/layout/AppLayout.tsx +0 -29
  116. package/src/molecules/layout/PageTemplate.tsx +0 -87
  117. package/src/molecules/layout/SectionHeader/SectionHeader.tsx +0 -87
  118. package/src/molecules/layout/SectionHeader/index.ts +0 -1
  119. package/src/molecules/layout/ShowcaseSection.tsx +0 -57
  120. package/src/molecules/layout/Sidebar.tsx +0 -144
  121. package/src/molecules/layout/SidebarButton/SidebarButton.tsx +0 -99
  122. package/src/molecules/layout/SidebarButton/index.ts +0 -1
  123. package/src/molecules/layout/SidebarContext.tsx +0 -31
  124. package/src/molecules/layout/index.ts +0 -7
  125. package/src/molecules/navigation/NavMenu.tsx +0 -188
  126. package/src/molecules/navigation/Pagination.tsx +0 -172
  127. package/src/molecules/navigation/index.ts +0 -4
  128. package/src/organisms/index.ts +0 -5
  129. package/src/organisms/showcase/ComponentShowcasePage.tsx +0 -2496
  130. package/src/organisms/showcase/index.ts +0 -1
  131. package/src/pages/AdminShowcase/AdminCRUDShowcase.tsx +0 -242
  132. package/src/pages/AdminShowcase/AdminDashboardShowcase.tsx +0 -171
  133. package/src/pages/AdminShowcase/AdminDetailShowcase.tsx +0 -385
  134. package/src/pages/AdminShowcase/index.tsx +0 -3
  135. package/src/pages/ComponentShowcase/BadgesShowcase.tsx +0 -188
  136. package/src/pages/ComponentShowcase/CardsShowcase.tsx +0 -392
  137. package/src/pages/ComponentShowcase/PalettesShowcase.tsx +0 -207
  138. package/src/pages/ComponentShowcase/StatesShowcase.tsx +0 -485
  139. package/src/pages/ComponentShowcase/TablesShowcase.tsx +0 -134
  140. package/src/pages/ComponentShowcase/TypographyShowcase.tsx +0 -255
  141. package/src/pages/ComponentShowcase/index.tsx +0 -188
  142. package/src/pages/index.ts +0 -2
  143. package/src/templates/AuthTemplate.tsx +0 -216
  144. package/src/templates/ComponentShowcaseTemplate.tsx +0 -173
  145. package/src/templates/DashboardTemplate.tsx +0 -232
  146. package/src/templates/DataTemplate.tsx +0 -319
  147. package/src/templates/admin/AdminCRUDTemplate.tsx +0 -630
  148. package/src/templates/admin/AdminDashboardTemplate.tsx +0 -351
  149. package/src/templates/admin/AdminDetailTemplate.tsx +0 -563
  150. package/src/templates/admin/index.ts +0 -29
  151. package/src/templates/factory.tsx +0 -169
  152. package/src/templates/index.ts +0 -37
  153. package/src/vite-env.d.ts +0 -1
@@ -1,169 +0,0 @@
1
- import React from 'react'
2
- import type { ReactNode } from 'react'
3
- import { createRoot } from 'react-dom/client'
4
- import { QueryClient, QueryClientProvider } from '@tanstack/react-query'
5
- import { ReactQueryDevtools } from '@tanstack/react-query-devtools'
6
- import { BrowserRouter, Routes, Route } from 'react-router-dom'
7
- import { AuthProvider } from '../features/auth'
8
- import { SidebarProvider } from '../molecules/layout'
9
- import { AppLayout } from '../molecules/layout'
10
- import { DashboardTemplate } from './DashboardTemplate'
11
- import type { AuthConfig } from '../atoms/types'
12
-
13
- // App configuration interface
14
- export interface AppConfig {
15
- title: string
16
- description?: string
17
- version?: string
18
- enableAuth?: boolean
19
- enableQuery?: boolean
20
- enableTheming?: boolean
21
- enableRouting?: boolean
22
- apiUrl?: string
23
- apiTimeout?: number
24
- theme?: string
25
- darkMode?: boolean
26
- auth?: AuthConfig
27
- customProviders?: React.ComponentType<{ children: ReactNode }>[]
28
- }
29
-
30
- // App instance interface
31
- export interface AppInstance {
32
- render: () => ReactNode
33
- addRoutes: (path: string, component: ReactNode) => void
34
- mount: (elementId?: string) => void
35
- }
36
-
37
- // Main app factory function
38
- export function createReactApp(config: AppConfig | string): AppInstance {
39
- // Handle simple string config
40
- const appConfig: AppConfig = typeof config === 'string'
41
- ? { title: config }
42
- : config
43
-
44
- // Set defaults
45
- const {
46
- title,
47
- description = `${title} Application`,
48
- version = '1.0.0',
49
- enableAuth = true,
50
- enableQuery = true,
51
- enableRouting = true,
52
- auth,
53
- customProviders = []
54
- } = appConfig
55
-
56
- // Initialize query client
57
- const queryClient = new QueryClient({
58
- defaultOptions: {
59
- queries: {
60
- retry: 1,
61
- refetchOnWindowFocus: false,
62
- staleTime: 5 * 60 * 1000, // 5 minutes
63
- },
64
- },
65
- })
66
-
67
- // Store routes
68
- const routes: Array<{ path: string; component: ReactNode }> = []
69
-
70
- // Default home page
71
- const DefaultHome = () => (
72
- <DashboardTemplate title={title} description={description}>
73
- <div className="flex flex-col items-center justify-center min-h-[400px] text-center">
74
- <h1 className="text-4xl font-bold text-gray-900 mb-4">🌿 {title}</h1>
75
- <p className="text-lg text-gray-600 mb-6">{description}</p>
76
- <div className="space-y-2 text-sm text-gray-500">
77
- <p>✅ Template integration successful</p>
78
- <p>🔧 Version: {version}</p>
79
- <p>🚀 Ready for development</p>
80
- </div>
81
- </div>
82
- </DashboardTemplate>
83
- )
84
-
85
- // Build provider tree
86
- const createProviderTree = (children: ReactNode): ReactNode => {
87
- let tree = children
88
-
89
- // Wrap with custom providers (in reverse order)
90
- customProviders.reverse().forEach((Provider) => {
91
- tree = <Provider key={Provider.name}>{tree}</Provider>
92
- })
93
-
94
- // Wrap with layout providers
95
- if (enableRouting) {
96
- tree = (
97
- <SidebarProvider>
98
- {tree}
99
- </SidebarProvider>
100
- )
101
- }
102
-
103
- // Wrap with auth provider
104
- if (enableAuth) {
105
- tree = <AuthProvider config={auth}>{tree}</AuthProvider>
106
- }
107
-
108
- // Wrap with query provider
109
- if (enableQuery) {
110
- tree = (
111
- <QueryClientProvider client={queryClient}>
112
- {tree}
113
- {import.meta.env.DEV && <ReactQueryDevtools initialIsOpen={false} />}
114
- </QueryClientProvider>
115
- )
116
- }
117
-
118
- // Wrap with router
119
- if (enableRouting) {
120
- tree = <BrowserRouter>{tree}</BrowserRouter>
121
- }
122
-
123
- return tree
124
- }
125
-
126
- // Create app instance
127
- const appInstance: AppInstance = {
128
- addRoutes(path: string, component: ReactNode) {
129
- routes.push({ path, component })
130
- },
131
-
132
- render() {
133
- const AppContent = () => (
134
- <Routes>
135
- <Route path="/" element={<AppLayout />}>
136
- <Route index element={<DefaultHome />} />
137
- {routes.map(({ path, component }, index) => (
138
- <Route key={index} path={path} element={component} />
139
- ))}
140
- </Route>
141
- </Routes>
142
- )
143
-
144
- return createProviderTree(<AppContent />)
145
- },
146
-
147
- mount(elementId = 'root') {
148
- const element = document.getElementById(elementId)
149
- if (!element) {
150
- throw new Error(`Element with id "${elementId}" not found`)
151
- }
152
-
153
- const root = createRoot(element)
154
- root.render(
155
- <React.StrictMode>
156
- {this.render()}
157
- </React.StrictMode>
158
- )
159
- }
160
- }
161
-
162
- return appInstance
163
- }
164
-
165
- // Convenience function for simple apps
166
- export function createSimpleApp(title: string): AppInstance {
167
- return createReactApp({ title })
168
- }
169
-
@@ -1,37 +0,0 @@
1
- // Page templates for common layout patterns
2
- export { ComponentShowcaseTemplate } from './ComponentShowcaseTemplate';
3
- export {
4
- DashboardTemplate,
5
- DashboardGrid,
6
- DashboardCard,
7
- type DashboardTemplateProps,
8
- type DashboardGridProps,
9
- type DashboardCardProps
10
- } from './DashboardTemplate';
11
- export {
12
- AuthTemplate,
13
- AuthFormField,
14
- AuthLink,
15
- AuthDivider,
16
- type AuthTemplateProps,
17
- type AuthFormFieldProps,
18
- type AuthLinkProps,
19
- type AuthDividerProps
20
- } from './AuthTemplate';
21
- export {
22
- DataTemplate,
23
- DataDetailTemplate,
24
- type DataTemplateProps,
25
- type DataDetailTemplateProps
26
- } from './DataTemplate';
27
-
28
- // Admin templates for administrative interfaces
29
- export * from './admin';
30
-
31
- // React App Factory
32
- export {
33
- createReactApp,
34
- createSimpleApp,
35
- type AppConfig,
36
- type AppInstance
37
- } from './factory';
package/src/vite-env.d.ts DELETED
@@ -1 +0,0 @@
1
- /// <reference types="vite/client" />