@llmnative/react 1.0.0 → 1.2.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/README.md +11 -1
- package/dist/index.css +3 -1
- package/dist/index.js +20 -23
- package/dist/index.mjs +18045 -16868
- package/dist/types/src/App.d.ts +4 -1
- package/dist/types/src/I18n.d.ts +4 -0
- package/dist/types/src/components/ErrorBoundary.d.ts +1 -1
- package/dist/types/src/components/blocks/Brand.d.ts +5 -0
- package/dist/types/src/components/blocks/Carousel.d.ts +2 -0
- package/dist/types/src/components/blocks/Dropdown.d.ts +39 -2
- package/dist/types/src/components/blocks/ListCard.d.ts +7 -0
- package/dist/types/src/components/blocks/Menu.d.ts +2 -0
- package/dist/types/src/components/blocks/Notifications.d.ts +4 -1
- package/dist/types/src/components/blocks/ProviderSwitcher.d.ts +3 -1
- package/dist/types/src/components/blocks/Search.d.ts +1 -0
- package/dist/types/src/components/blocks/ThemeSwitcher.d.ts +6 -2
- package/dist/types/src/components/blocks/Toolbar.d.ts +4 -0
- package/dist/types/src/components/index.d.ts +2 -2
- package/dist/types/src/components/ui/Alert.d.ts +5 -1
- package/dist/types/src/components/ui/Badge.d.ts +6 -0
- package/dist/types/src/components/ui/Buttons.d.ts +5 -2
- package/dist/types/src/components/ui/Card.d.ts +3 -0
- package/dist/types/src/components/ui/Code.d.ts +4 -0
- package/dist/types/src/components/ui/Gallery.d.ts +9 -2
- package/dist/types/src/components/ui/GridSystem.d.ts +4 -1
- package/dist/types/src/components/ui/Icon.d.ts +3 -0
- package/dist/types/src/components/ui/Image.d.ts +6 -0
- package/dist/types/src/components/ui/ImageAvatar.d.ts +3 -0
- package/dist/types/src/components/ui/Loader.d.ts +3 -1
- package/dist/types/src/components/ui/Modal.d.ts +22 -0
- package/dist/types/src/components/ui/Pagination.d.ts +2 -0
- package/dist/types/src/components/ui/Percentage.d.ts +9 -0
- package/dist/types/src/components/ui/Repeat.d.ts +0 -1
- package/dist/types/src/components/ui/Tab.d.ts +1 -1
- package/dist/types/src/components/ui/Table.d.ts +3 -0
- package/dist/types/src/components/ui/fields/CodeEditor.d.ts +9 -1
- package/dist/types/src/components/ui/fields/ContextMenu.d.ts +74 -1
- package/dist/types/src/components/ui/fields/RichText.d.ts +4 -1
- package/dist/types/src/components/ui/fields/Select.d.ts +2 -2
- package/dist/types/src/components/ui/fields/Upload.d.ts +17 -4
- package/dist/types/src/components/widgets/Form.d.ts +14 -3
- package/dist/types/src/components/widgets/Prompt.d.ts +35 -15
- package/dist/types/src/components/widgets/grid-core/GridCore.d.ts +1 -1
- package/dist/types/src/components/widgets/grid-core/GridGalleryView.d.ts +1 -1
- package/dist/types/src/components/widgets/grid-core/types.d.ts +79 -3
- package/dist/types/src/components/widgets/grid-core/useGridActions.d.ts +1 -1
- package/dist/types/src/index.d.ts +15 -5
- package/dist/types/src/libs/editorHeight.d.ts +11 -1
- package/dist/types/src/libs/fetch.d.ts +2 -0
- package/dist/types/src/providers/ProviderDescriptor.d.ts +18 -0
- package/dist/types/src/providers/ai/AIProvider.d.ts +54 -1
- package/dist/types/src/providers/ai/index.d.ts +13 -2
- package/dist/types/src/providers/ai/openaiCompatible.d.ts +25 -1
- package/dist/types/src/providers/ai/shared.d.ts +13 -4
- package/dist/types/src/providers/auth/AuthProvider.d.ts +8 -0
- package/dist/types/src/providers/auth/firebase/FirebaseAuthProvider.d.ts +23 -0
- package/dist/types/src/providers/auth/google/auth.d.ts +1 -1
- package/dist/types/src/providers/data/DataProvider.d.ts +8 -0
- package/dist/types/src/providers/data/firestore.d.ts +19 -1
- package/dist/types/src/providers/email/definitions.d.ts +3 -0
- package/dist/types/src/providers/firebase-init.d.ts +11 -5
- package/dist/types/src/providers/publish/PublishProvider.d.ts +29 -0
- package/dist/types/src/providers/publish/definitions.d.ts +3 -0
- package/dist/types/src/providers/storage/firebase.d.ts +7 -1
- package/dist/vite.js +1 -1
- package/dist/vite.mjs +62 -53
- package/package.json +58 -54
- package/scripts/cli/setup-devtools.js +8 -7
- package/scripts/cli/setup-project.js +23 -19
- package/themes/cyber.ts +8 -7
- package/themes/default.ts +22 -7
- package/themes/flat.ts +8 -7
- package/dist/style.css +0 -1
- package/dist/types/src/providers/email/google/apis/email.d.ts +0 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llmnative/react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "LLM-native React framework for deterministic UI generation. Data-driven by default, schema-driven optional. Ultra-low token consumption — built for AI agents, not just humans.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -15,18 +15,20 @@
|
|
|
15
15
|
"./vite": "./dist/vite.mjs",
|
|
16
16
|
"./dist/index.css": "./dist/index.css"
|
|
17
17
|
},
|
|
18
|
-
"scripts": {
|
|
19
|
-
"prebuild": "node scripts/dev/build-local.js --restore-only",
|
|
20
|
-
"themes:compile:vscode": "node scripts/themes/compile-vscode-themes.js",
|
|
21
|
-
"build": "npm run themes:compile:vscode && vite build && tsc --emitDeclarationOnly",
|
|
22
|
-
"build:dev": "npm run themes:compile:vscode && vite build --mode development && tsc --emitDeclarationOnly",
|
|
18
|
+
"scripts": {
|
|
19
|
+
"prebuild": "node scripts/dev/build-local.js --restore-only",
|
|
20
|
+
"themes:compile:vscode": "node scripts/themes/compile-vscode-themes.js",
|
|
21
|
+
"build": "npm run themes:compile:vscode && vite build && tsc --emitDeclarationOnly",
|
|
22
|
+
"build:dev": "npm run themes:compile:vscode && vite build --mode development && tsc --emitDeclarationOnly",
|
|
23
23
|
"watch:dev": "vite build --watch",
|
|
24
24
|
"build:local": "node scripts/dev/build-local.js",
|
|
25
25
|
"prepublishOnly": "npm run build",
|
|
26
26
|
"updateReadme": "node scripts/dev/updateReadme.js",
|
|
27
27
|
"test": "vitest run",
|
|
28
|
+
"test:e2e": "npx playwright test",
|
|
28
29
|
"test:e2e:proxy-scaffold": "node scripts/e2e/test-proxy-scaffold.js",
|
|
29
30
|
"test:e2e:proxy-runtime": "vitest run tests/e2e/proxy-runtime.test.ts --environment node",
|
|
31
|
+
"test:integration": "npx firebase emulators:exec --only database,firestore,storage --project demo-test \"npx vitest run --config vitest.integration.config.mts\"",
|
|
30
32
|
"test:watch": "vitest",
|
|
31
33
|
"test:coverage": "vitest run --coverage"
|
|
32
34
|
},
|
|
@@ -63,18 +65,22 @@
|
|
|
63
65
|
],
|
|
64
66
|
"author": "wolfgan",
|
|
65
67
|
"license": "Apache-2.0",
|
|
68
|
+
"engines": {
|
|
69
|
+
"node": ">=24.18.0 <25"
|
|
70
|
+
},
|
|
71
|
+
"packageManager": "npm@11.11.0",
|
|
66
72
|
"bugs": {
|
|
67
73
|
"url": "https://github.com/sherpadvisorylab/llmnative-react/issues"
|
|
68
74
|
},
|
|
69
75
|
"homepage": "https://github.com/sherpadvisorylab/llmnative-react#readme",
|
|
70
76
|
"peerDependencies": {
|
|
71
|
-
"@phosphor-icons/react": "^2.
|
|
72
|
-
"@supabase/supabase-js": "^2.
|
|
73
|
-
"firebase": "^
|
|
74
|
-
"lucide-react": "^
|
|
75
|
-
"react": "^19.
|
|
76
|
-
"react-dom": "^19.
|
|
77
|
-
"react-router-dom": "^
|
|
77
|
+
"@phosphor-icons/react": "^2.1.0",
|
|
78
|
+
"@supabase/supabase-js": "^2.110.0",
|
|
79
|
+
"firebase": "^12.16.0",
|
|
80
|
+
"lucide-react": "^1.26.0",
|
|
81
|
+
"react": "^19.2.0",
|
|
82
|
+
"react-dom": "^19.2.0",
|
|
83
|
+
"react-router-dom": "^7.18.1"
|
|
78
84
|
},
|
|
79
85
|
"peerDependenciesMeta": {
|
|
80
86
|
"@phosphor-icons/react": {
|
|
@@ -85,70 +91,68 @@
|
|
|
85
91
|
}
|
|
86
92
|
},
|
|
87
93
|
"devDependencies": {
|
|
88
|
-
"@
|
|
89
|
-
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
90
|
-
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
|
|
91
|
-
"@babel/preset-env": "^7.25.7",
|
|
92
|
-
"@babel/preset-react": "^7.25.7",
|
|
93
|
-
"@babel/preset-typescript": "^7.25.7",
|
|
94
|
+
"@firebase/rules-unit-testing": "^5.0.1",
|
|
94
95
|
"@phosphor-icons/react": "^2.1.10",
|
|
95
|
-
"@
|
|
96
|
-
"@
|
|
97
|
-
"@
|
|
96
|
+
"@playwright/test": "^1.62.0",
|
|
97
|
+
"@supabase/supabase-js": "^2.110.8",
|
|
98
|
+
"@tailwindcss/postcss": "^4.3.3",
|
|
99
|
+
"@testing-library/dom": "^10.4.1",
|
|
100
|
+
"@testing-library/jest-dom": "^7.0.0",
|
|
98
101
|
"@testing-library/react": "^16.3.2",
|
|
99
102
|
"@testing-library/user-event": "^14.6.1",
|
|
100
|
-
"@types/papaparse": "^5.
|
|
101
|
-
"@types/prismjs": "^1.26.
|
|
102
|
-
"@types/react": "^
|
|
103
|
-
"@types/react-dom": "^
|
|
104
|
-
"@vitest/coverage-v8": "
|
|
105
|
-
"autoprefixer": "^10.5.
|
|
106
|
-
"
|
|
107
|
-
"happy-dom": "^20.
|
|
103
|
+
"@types/papaparse": "^5.5.2",
|
|
104
|
+
"@types/prismjs": "^1.26.6",
|
|
105
|
+
"@types/react": "^19.2.17",
|
|
106
|
+
"@types/react-dom": "^19.2.3",
|
|
107
|
+
"@vitest/coverage-v8": "4.1",
|
|
108
|
+
"autoprefixer": "^10.5.4",
|
|
109
|
+
"firebase": "^12.16.0",
|
|
110
|
+
"happy-dom": "^20.11.1",
|
|
108
111
|
"jsdom": "^29.1.1",
|
|
109
|
-
"lucide-react": "^1.
|
|
110
|
-
"postcss": "^8.5.
|
|
111
|
-
"react": "^19.2.
|
|
112
|
-
"react-dom": "^19.2.
|
|
113
|
-
"react-router-dom": "^
|
|
114
|
-
"tailwindcss": "^4.
|
|
115
|
-
"typescript": "
|
|
116
|
-
"vite": "^
|
|
117
|
-
"vitest": "
|
|
112
|
+
"lucide-react": "^1.26.0",
|
|
113
|
+
"postcss": "^8.5.23",
|
|
114
|
+
"react": "^19.2.8",
|
|
115
|
+
"react-dom": "^19.2.8",
|
|
116
|
+
"react-router-dom": "^7.18.1",
|
|
117
|
+
"tailwindcss": "^4.3.3",
|
|
118
|
+
"typescript": "6.0.3",
|
|
119
|
+
"vite": "^8.1.5",
|
|
120
|
+
"vitest": "4.1",
|
|
121
|
+
"ws": "^8.21.1"
|
|
118
122
|
},
|
|
119
123
|
"dependencies": {
|
|
120
124
|
"@codemirror/autocomplete": "^6.20.3",
|
|
121
|
-
"@codemirror/commands": "^6.10.
|
|
125
|
+
"@codemirror/commands": "^6.10.4",
|
|
122
126
|
"@codemirror/lang-css": "^6.3.1",
|
|
123
127
|
"@codemirror/lang-html": "^6.4.11",
|
|
124
128
|
"@codemirror/lang-javascript": "^6.2.5",
|
|
125
129
|
"@codemirror/lang-json": "^6.0.2",
|
|
126
130
|
"@codemirror/lang-liquid": "^6.3.2",
|
|
127
|
-
"@codemirror/language": "^6.12.
|
|
131
|
+
"@codemirror/language": "^6.12.4",
|
|
128
132
|
"@codemirror/lint": "^6.9.7",
|
|
129
133
|
"@codemirror/search": "^6.7.1",
|
|
130
|
-
"@codemirror/state": "^6.
|
|
131
|
-
"@codemirror/view": "^6.43.
|
|
132
|
-
"@tiptap/extension-character-count": "^3.
|
|
133
|
-
"@tiptap/extension-image": "^3.
|
|
134
|
-
"@tiptap/extension-link": "^3.
|
|
135
|
-
"@tiptap/extension-placeholder": "^3.
|
|
136
|
-
"@tiptap/extension-table": "^3.
|
|
137
|
-
"@tiptap/extension-underline": "^3.
|
|
138
|
-
"@tiptap/react": "^3.
|
|
139
|
-
"@tiptap/starter-kit": "^3.
|
|
134
|
+
"@codemirror/state": "^6.7.1",
|
|
135
|
+
"@codemirror/view": "^6.43.6",
|
|
136
|
+
"@tiptap/extension-character-count": "^3.29.0",
|
|
137
|
+
"@tiptap/extension-image": "^3.29.0",
|
|
138
|
+
"@tiptap/extension-link": "^3.29.0",
|
|
139
|
+
"@tiptap/extension-placeholder": "^3.29.0",
|
|
140
|
+
"@tiptap/extension-table": "^3.29.0",
|
|
141
|
+
"@tiptap/extension-underline": "^3.29.0",
|
|
142
|
+
"@tiptap/react": "^3.29.0",
|
|
143
|
+
"@tiptap/starter-kit": "^3.29.0",
|
|
140
144
|
"buffer": "^6.0.3",
|
|
141
145
|
"clsx": "^2.1.1",
|
|
142
146
|
"codemirror": "^6.0.2",
|
|
143
|
-
"liquidjs": "^10.27.
|
|
144
|
-
"papaparse": "^5.5.
|
|
147
|
+
"liquidjs": "^10.27.2",
|
|
148
|
+
"papaparse": "^5.5.4",
|
|
145
149
|
"prismjs": "^1.30.0",
|
|
146
150
|
"react-markdown": "^10.1.0",
|
|
147
151
|
"rehype-autolink-headings": "^7.1.0",
|
|
148
152
|
"rehype-sanitize": "^6.0.0",
|
|
149
153
|
"rehype-slug": "^6.0.0",
|
|
150
154
|
"remark-gfm": "^4.0.1",
|
|
151
|
-
"tailwind-merge": "^3.
|
|
155
|
+
"tailwind-merge": "^3.6.0",
|
|
152
156
|
"tui-image-editor": "^3.15.3"
|
|
153
157
|
},
|
|
154
158
|
"publishConfig": {
|
|
@@ -61,18 +61,19 @@ function createViteConfig(proxyProvider) {
|
|
|
61
61
|
import { defineConfig, loadEnv } from 'vite';
|
|
62
62
|
import react from '@vitejs/plugin-react';
|
|
63
63
|
${importBlock}
|
|
64
|
-
export default defineConfig(({ mode }) => {
|
|
64
|
+
export default defineConfig(({ mode }) => {
|
|
65
65
|
const env = loadEnv(mode, process.cwd(), '');
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
return {
|
|
68
|
+
plugins: [
|
|
69
69
|
react(),
|
|
70
70
|
${pluginBlock} ].filter(Boolean),
|
|
71
71
|
resolve: {
|
|
72
72
|
dedupe: ['react', 'react-dom', 'react-router-dom'],
|
|
73
73
|
},
|
|
74
|
-
build: {
|
|
75
|
-
|
|
74
|
+
build: {
|
|
75
|
+
target: 'baseline-widely-available',
|
|
76
|
+
cssMinify: false,
|
|
76
77
|
chunkSizeWarningLimit: 10000,
|
|
77
78
|
},
|
|
78
79
|
define: {
|
|
@@ -91,9 +92,9 @@ function setupDevTools(options = {}) {
|
|
|
91
92
|
ensureFile(path.join(root, 'tsconfig.json'), `
|
|
92
93
|
{
|
|
93
94
|
"compilerOptions": {
|
|
94
|
-
"target": "
|
|
95
|
+
"target": "ES2022",
|
|
95
96
|
"useDefineForClassFields": true,
|
|
96
|
-
"lib": ["DOM", "DOM.Iterable", "
|
|
97
|
+
"lib": ["DOM", "DOM.Iterable", "ES2022"],
|
|
97
98
|
"allowJs": false,
|
|
98
99
|
"skipLibCheck": true,
|
|
99
100
|
"esModuleInterop": true,
|
|
@@ -172,8 +172,12 @@ function createPackageJson(params) {
|
|
|
172
172
|
ensureFile(path.join(root, 'package.json'), JSON.stringify({
|
|
173
173
|
name: normalizeFirebaseProjectId(params.projectname) || 'llmnative-app',
|
|
174
174
|
version: '0.1.0',
|
|
175
|
-
private: true,
|
|
176
|
-
type: 'module',
|
|
175
|
+
private: true,
|
|
176
|
+
type: 'module',
|
|
177
|
+
engines: {
|
|
178
|
+
node: '>=24.18.0 <25',
|
|
179
|
+
},
|
|
180
|
+
packageManager: 'npm@11.11.0',
|
|
177
181
|
scripts: {
|
|
178
182
|
dev: 'vite',
|
|
179
183
|
build: 'vite build',
|
|
@@ -181,23 +185,23 @@ function createPackageJson(params) {
|
|
|
181
185
|
typecheck: 'tsc --noEmit',
|
|
182
186
|
},
|
|
183
187
|
dependencies: {
|
|
184
|
-
'@phosphor-icons/react': '^2.
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
react: '^
|
|
189
|
-
'react
|
|
190
|
-
'
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
'@
|
|
195
|
-
'@types/react': '^
|
|
196
|
-
'@
|
|
197
|
-
autoprefixer: '^10.5.
|
|
198
|
-
postcss: '^8.5.
|
|
199
|
-
typescript: '
|
|
200
|
-
vite: '^
|
|
188
|
+
'@phosphor-icons/react': '^2.1.10',
|
|
189
|
+
firebase: '^12.16.0',
|
|
190
|
+
'lucide-react': '^1.26.0',
|
|
191
|
+
react: '^19.2.8',
|
|
192
|
+
'react-dom': '^19.2.8',
|
|
193
|
+
'@llmnative/react': `^${version}`,
|
|
194
|
+
'react-router-dom': '^7.18.1',
|
|
195
|
+
},
|
|
196
|
+
devDependencies: {
|
|
197
|
+
'@tailwindcss/postcss': '^4.3.3',
|
|
198
|
+
'@types/react': '^19.2.17',
|
|
199
|
+
'@types/react-dom': '^19.2.3',
|
|
200
|
+
'@vitejs/plugin-react': '^6.0.4',
|
|
201
|
+
autoprefixer: '^10.5.4',
|
|
202
|
+
postcss: '^8.5.23',
|
|
203
|
+
typescript: '6.0.3',
|
|
204
|
+
vite: '^8.1.5',
|
|
201
205
|
},
|
|
202
206
|
}, null, 2));
|
|
203
207
|
}
|
package/themes/cyber.ts
CHANGED
|
@@ -125,16 +125,17 @@ export const motion: MotionRegistry = {
|
|
|
125
125
|
|
|
126
126
|
export const components: Theme = {
|
|
127
127
|
Grid: {
|
|
128
|
+
// REVERT NOTE (2026-07-15): see themes/default.ts for the full rationale/before-state.
|
|
128
129
|
Card: {
|
|
129
130
|
wrapperClassName: '',
|
|
130
|
-
className: '',
|
|
131
|
-
headerClassName: 'flex justify-between',
|
|
132
|
-
bodyClassName: 'p-0',
|
|
133
|
-
footerClassName: '',
|
|
131
|
+
className: 'rounded-none border-0 bg-transparent shadow-none',
|
|
132
|
+
headerClassName: 'flex justify-between border-b-0 bg-transparent px-0 py-2',
|
|
133
|
+
bodyClassName: 'p-0 mt-2',
|
|
134
|
+
footerClassName: 'border-t-0 bg-transparent px-0 py-2',
|
|
134
135
|
loading: false,
|
|
135
136
|
},
|
|
136
137
|
Table: {
|
|
137
|
-
wrapperClassName: '',
|
|
138
|
+
wrapperClassName: 'rounded-lg border border-border bg-card shadow-sm',
|
|
138
139
|
className: '',
|
|
139
140
|
headerClassName: '',
|
|
140
141
|
bodyClassName: '',
|
|
@@ -143,7 +144,7 @@ export const components: Theme = {
|
|
|
143
144
|
selectedClassName: 'bg-primary/10',
|
|
144
145
|
},
|
|
145
146
|
Gallery: {
|
|
146
|
-
wrapperClassName: '',
|
|
147
|
+
wrapperClassName: 'rounded-lg border border-border bg-card shadow-sm p-3',
|
|
147
148
|
className: '',
|
|
148
149
|
scrollClassName: '',
|
|
149
150
|
headerClassName: '',
|
|
@@ -224,7 +225,7 @@ export const components: Theme = {
|
|
|
224
225
|
Loader: {
|
|
225
226
|
wrapperClassName: '',
|
|
226
227
|
className: '',
|
|
227
|
-
icon: '
|
|
228
|
+
icon: 'loader-2',
|
|
228
229
|
title: 'Loading..',
|
|
229
230
|
description: '',
|
|
230
231
|
},
|
package/themes/default.ts
CHANGED
|
@@ -125,16 +125,30 @@ export const motion: MotionRegistry = {
|
|
|
125
125
|
|
|
126
126
|
export const components: Theme = {
|
|
127
127
|
Grid: {
|
|
128
|
+
// REVERT NOTE (2026-07-15): before this change, `Card.className` was 'border-0' only
|
|
129
|
+
// (outer border removed, but bg-card/rounded/shadow kept — header+footer still sat in
|
|
130
|
+
// a white rounded box), `Table.wrapperClassName`/`Gallery.wrapperClassName` were both
|
|
131
|
+
// ''. The change moves the "raised card" surface (border+bg+shadow+radius) from the
|
|
132
|
+
// Card wrapper (which held header+body+footer together) down into Table/Gallery's own
|
|
133
|
+
// wrapper — so the toolbar row (view toggle, column picker, New component…) sits
|
|
134
|
+
// directly on the page's floor background with no box of its own, and only the actual
|
|
135
|
+
// data surface reads as a raised panel. To revert: restore the four blocks below to
|
|
136
|
+
// the values in this note.
|
|
128
137
|
Card: {
|
|
129
138
|
wrapperClassName: '',
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
139
|
+
// Fully transparent/borderless/shapeless now — header and footer (when used) are
|
|
140
|
+
// meant to float on the page's own background, not sit inside a card of their own;
|
|
141
|
+
// the "raised surface" look lives in Table/Gallery's wrapperClassName instead.
|
|
142
|
+
className: 'rounded-none border-0 bg-transparent shadow-none',
|
|
143
|
+
headerClassName: 'flex justify-between border-b-0 bg-transparent px-0 py-2',
|
|
144
|
+
bodyClassName: 'p-0 mt-2',
|
|
145
|
+
footerClassName: 'border-t-0 bg-transparent px-0 py-2',
|
|
134
146
|
loading: false,
|
|
135
147
|
},
|
|
136
148
|
Table: {
|
|
137
|
-
|
|
149
|
+
// The table's own raised surface — previously this border+bg lived on the
|
|
150
|
+
// shared Card wrapper (see revert note above).
|
|
151
|
+
wrapperClassName: 'rounded-lg border border-border bg-card shadow-sm',
|
|
138
152
|
className: '',
|
|
139
153
|
headerClassName: '',
|
|
140
154
|
bodyClassName: '',
|
|
@@ -143,7 +157,8 @@ export const components: Theme = {
|
|
|
143
157
|
selectedClassName: 'bg-primary/10',
|
|
144
158
|
},
|
|
145
159
|
Gallery: {
|
|
146
|
-
|
|
160
|
+
// Same rationale as Table above; `p-3` so cards don't sit flush against the border.
|
|
161
|
+
wrapperClassName: 'rounded-lg border border-border bg-card shadow-sm p-3',
|
|
147
162
|
className: '',
|
|
148
163
|
scrollClassName: '',
|
|
149
164
|
headerClassName: '',
|
|
@@ -224,7 +239,7 @@ export const components: Theme = {
|
|
|
224
239
|
Loader: {
|
|
225
240
|
wrapperClassName: '',
|
|
226
241
|
className: '',
|
|
227
|
-
icon: '
|
|
242
|
+
icon: 'loader-2',
|
|
228
243
|
title: 'Loading..',
|
|
229
244
|
description: '',
|
|
230
245
|
},
|
package/themes/flat.ts
CHANGED
|
@@ -125,16 +125,17 @@ export const motion: MotionRegistry = {
|
|
|
125
125
|
|
|
126
126
|
export const components: Theme = {
|
|
127
127
|
Grid: {
|
|
128
|
+
// REVERT NOTE (2026-07-15): see themes/default.ts for the full rationale/before-state.
|
|
128
129
|
Card: {
|
|
129
130
|
wrapperClassName: '',
|
|
130
|
-
className: '',
|
|
131
|
-
headerClassName: 'flex justify-between',
|
|
132
|
-
bodyClassName: 'p-0',
|
|
133
|
-
footerClassName: '',
|
|
131
|
+
className: 'rounded-none border-0 bg-transparent shadow-none',
|
|
132
|
+
headerClassName: 'flex justify-between border-b-0 bg-transparent px-0 py-2',
|
|
133
|
+
bodyClassName: 'p-0 mt-2',
|
|
134
|
+
footerClassName: 'border-t-0 bg-transparent px-0 py-2',
|
|
134
135
|
loading: false,
|
|
135
136
|
},
|
|
136
137
|
Table: {
|
|
137
|
-
wrapperClassName: '',
|
|
138
|
+
wrapperClassName: 'rounded-lg border border-border bg-card shadow-sm',
|
|
138
139
|
className: '',
|
|
139
140
|
headerClassName: '',
|
|
140
141
|
bodyClassName: '',
|
|
@@ -143,7 +144,7 @@ export const components: Theme = {
|
|
|
143
144
|
selectedClassName: 'bg-primary/10',
|
|
144
145
|
},
|
|
145
146
|
Gallery: {
|
|
146
|
-
wrapperClassName: '',
|
|
147
|
+
wrapperClassName: 'rounded-lg border border-border bg-card shadow-sm p-3',
|
|
147
148
|
className: '',
|
|
148
149
|
scrollClassName: '',
|
|
149
150
|
headerClassName: '',
|
|
@@ -224,7 +225,7 @@ export const components: Theme = {
|
|
|
224
225
|
Loader: {
|
|
225
226
|
wrapperClassName: '',
|
|
226
227
|
className: '',
|
|
227
|
-
icon: '
|
|
228
|
+
icon: 'loader-2',
|
|
228
229
|
title: 'Loading..',
|
|
229
230
|
description: '',
|
|
230
231
|
},
|