@jameskabz/nextcraft-ui 0.5.0 → 0.6.1
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 +94 -0
- package/dist/chunk-6F7FN2ZF.js +671 -0
- package/dist/chunk-6F7FN2ZF.js.map +1 -0
- package/dist/chunk-7Q4Z47HT.js +657 -0
- package/dist/chunk-7Q4Z47HT.js.map +1 -0
- package/dist/chunk-7SKDTIEK.js +49 -0
- package/dist/chunk-7SKDTIEK.js.map +1 -0
- package/dist/chunk-FEFH5O5K.js +49 -0
- package/dist/chunk-FEFH5O5K.js.map +1 -0
- package/dist/chunk-M2EKVXB6.js +127 -0
- package/dist/chunk-M2EKVXB6.js.map +1 -0
- package/dist/chunk-SBLIF6UU.js +1029 -0
- package/dist/chunk-SBLIF6UU.js.map +1 -0
- package/dist/chunk-VQ6T3HIX.js +9 -0
- package/dist/chunk-VQ6T3HIX.js.map +1 -0
- package/dist/chunk-YVZL4GET.js +328 -0
- package/dist/chunk-YVZL4GET.js.map +1 -0
- package/dist/chunk-ZRV4Y374.js +582 -0
- package/dist/chunk-ZRV4Y374.js.map +1 -0
- package/dist/craft/components.cjs +1838 -0
- package/dist/craft/components.cjs.map +1 -0
- package/dist/craft/components.d.cts +369 -0
- package/dist/craft/components.d.ts +369 -0
- package/dist/craft/components.js +78 -0
- package/dist/craft/components.js.map +1 -0
- package/dist/craft/forms.cjs +1376 -0
- package/dist/craft/forms.cjs.map +1 -0
- package/dist/craft/forms.d.cts +101 -0
- package/dist/craft/forms.d.ts +101 -0
- package/dist/craft/forms.js +14 -0
- package/dist/craft/forms.js.map +1 -0
- package/dist/craft/layout.cjs +410 -0
- package/dist/craft/layout.cjs.map +1 -0
- package/dist/craft/layout.d.cts +170 -0
- package/dist/craft/layout.d.ts +170 -0
- package/dist/craft/layout.js +27 -0
- package/dist/craft/layout.js.map +1 -0
- package/dist/craft/table.cjs +662 -0
- package/dist/craft/table.cjs.map +1 -0
- package/dist/craft/table.d.cts +99 -0
- package/dist/craft/table.d.ts +99 -0
- package/dist/craft/table.js +15 -0
- package/dist/craft/table.js.map +1 -0
- package/dist/craft/theme.cjs +166 -0
- package/dist/craft/theme.cjs.map +1 -0
- package/dist/craft/theme.d.cts +10 -0
- package/dist/craft/theme.d.ts +10 -0
- package/dist/craft/theme.js +12 -0
- package/dist/craft/theme.js.map +1 -0
- package/dist/index.cjs +1000 -299
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -499
- package/dist/index.d.ts +10 -499
- package/dist/index.js +81 -2689
- package/dist/index.js.map +1 -1
- package/dist/styles.css +124 -0
- package/dist/theme-context-EVI9PfKv.d.cts +22 -0
- package/dist/theme-context-EVI9PfKv.d.ts +22 -0
- package/package.json +28 -1
package/README.md
CHANGED
|
@@ -69,6 +69,100 @@ Per-component theme override:
|
|
|
69
69
|
<GlassCard tone="ember">...</GlassCard>
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
+
## Layout templates (config-driven)
|
|
73
|
+
|
|
74
|
+
You can drive the layout from JSON and reuse it across apps.
|
|
75
|
+
|
|
76
|
+
Example config:
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"sidebar": {
|
|
81
|
+
"title": "Nextcraft",
|
|
82
|
+
"items": [
|
|
83
|
+
{ "label": "Dashboard", "href": "/dashboard", "icon": "home" },
|
|
84
|
+
{ "label": "Projects", "href": "/projects", "icon": "folder" }
|
|
85
|
+
],
|
|
86
|
+
"footerText": "Version 0.1.3"
|
|
87
|
+
},
|
|
88
|
+
"header": {
|
|
89
|
+
"title": "Dashboard",
|
|
90
|
+
"breadcrumb": [
|
|
91
|
+
{ "label": "Home", "href": "/" },
|
|
92
|
+
{ "label": "Dashboard" }
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Use it:
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
import {
|
|
102
|
+
AppTemplate,
|
|
103
|
+
CraftIconProvider,
|
|
104
|
+
type LayoutConfig,
|
|
105
|
+
} from "@jameskabz/nextcraft-ui";
|
|
106
|
+
import { Home, Folder } from "lucide-react";
|
|
107
|
+
|
|
108
|
+
const layoutConfig: LayoutConfig = {
|
|
109
|
+
sidebar: {
|
|
110
|
+
title: "Nextcraft",
|
|
111
|
+
items: [
|
|
112
|
+
{ label: "Dashboard", href: "/dashboard", icon: "home" },
|
|
113
|
+
{ label: "Projects", href: "/projects", icon: "folder" },
|
|
114
|
+
],
|
|
115
|
+
},
|
|
116
|
+
header: {
|
|
117
|
+
title: "Dashboard",
|
|
118
|
+
breadcrumb: [
|
|
119
|
+
{ label: "Home", href: "/" },
|
|
120
|
+
{ label: "Dashboard" },
|
|
121
|
+
],
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
const icons = {
|
|
126
|
+
home: <Home size={16} />,
|
|
127
|
+
folder: <Folder size={16} />,
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
export default function Page() {
|
|
131
|
+
return (
|
|
132
|
+
<CraftIconProvider icons={icons}>
|
|
133
|
+
<AppTemplate config={layoutConfig} getActivePath={() => "/dashboard"}>
|
|
134
|
+
{/* content */}
|
|
135
|
+
</AppTemplate>
|
|
136
|
+
</CraftIconProvider>
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Notes:
|
|
142
|
+
- `getActivePath` can be replaced with `activePath` if you already know the path.
|
|
143
|
+
- Config schema is exported as `layoutConfigSchema`.
|
|
144
|
+
- An example file is in `examples/layout-config.json`.
|
|
145
|
+
- Demo page: `src/app/layout-template-demo/page.tsx`.
|
|
146
|
+
|
|
147
|
+
## CraftIcon
|
|
148
|
+
|
|
149
|
+
CraftIcon supports lucide icons by name (via `lucide-react/dynamic`), or you can register your own icons once and use them by name anywhere:
|
|
150
|
+
|
|
151
|
+
```tsx
|
|
152
|
+
import { CraftIcon, CraftIconProvider } from "@jameskabz/nextcraft-ui";
|
|
153
|
+
import { Home } from "lucide-react";
|
|
154
|
+
|
|
155
|
+
const icons = { home: <Home size={16} /> };
|
|
156
|
+
|
|
157
|
+
export function App() {
|
|
158
|
+
return (
|
|
159
|
+
<CraftIconProvider icons={icons}>
|
|
160
|
+
<CraftIcon name="home" className="text-white" />
|
|
161
|
+
</CraftIconProvider>
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
72
166
|
## Troubleshooting: Module not found
|
|
73
167
|
|
|
74
168
|
If your app (for example, a folder named `spendwise`) shows:
|