poinqu-ui-kit 0.0.0-stage → 0.2.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/CHANGELOG.md +75 -0
- package/LICENSE +21 -0
- package/README.md +324 -2
- package/THIRD_PARTY_NOTICES.md +24 -0
- package/dist/index.d.ts +914 -0
- package/dist/index.mjs +3294 -0
- package/dist/index.mjs.map +1 -0
- package/dist/poinqu-ui.css +1 -0
- package/dist/styles.d.ts +2 -0
- package/package.json +87 -4
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
Semua perubahan penting pada Poinqu UI. Format mengikuti
|
|
4
|
+
[Keep a Changelog](https://keepachangelog.com/) dan
|
|
5
|
+
[Semantic Versioning](https://semver.org/).
|
|
6
|
+
|
|
7
|
+
## [0.2.1] — 2026-10-26
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- `Breadcrumb` tidak lagi mengimpor `next/link`; sekarang memakai anchor native
|
|
12
|
+
dan mendukung prop `linkComponent` untuk Next.js atau router lain.
|
|
13
|
+
- Build paket tidak lagi membawa kode internal Next.js dan tidak membutuhkan
|
|
14
|
+
shim `process`, sehingga aman dipakai sebagai ESM dari CDN.
|
|
15
|
+
- Ukuran `dist/index.mjs` turun dari ±216 kB menjadi ±119 kB.
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Dukungan CDN lewat jsDelivr + import map, didokumentasikan di README dan
|
|
20
|
+
halaman installation.
|
|
21
|
+
|
|
22
|
+
## [0.2.0] — 2026-10-25
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
|
|
26
|
+
- Design system premium: token indigo, shadow baru, radius panel, gradient.
|
|
27
|
+
- Light & dark theme lengkap dengan `ThemeProvider`, `ThemeToggle`, dan
|
|
28
|
+
`ThemeScript` anti-flash.
|
|
29
|
+
- Komponen baru: `Progress`, `Slider`, `Kbd`, `CodeBlock`, `EmptyState`, `Stat`,
|
|
30
|
+
`StatGrid`, `PageHeader`.
|
|
31
|
+
- `Avatar` mendukung ukuran `xs`–`lg`, indikator kehadiran, dan foto native.
|
|
32
|
+
- `TableRow` mendukung `interactive`.
|
|
33
|
+
- Situs dokumentasi: landing page, `/docs`, installation, theming, indeks
|
|
34
|
+
komponen, halaman komponen dinamis dengan live preview & API reference,
|
|
35
|
+
changelog, 404, sitemap, robots, dan manifest.
|
|
36
|
+
- Pencarian dokumentasi dengan shortcut `⌘K` dan navigasi keyboard.
|
|
37
|
+
- Paket npm: build ESM, TypeScript declarations, stylesheet terpisah, sourcemap,
|
|
38
|
+
`exports` map, dan `"use client"` boundary.
|
|
39
|
+
- CI workflow untuk typecheck, lint, build library, dan build situs.
|
|
40
|
+
- Publikasi npm otomatis lewat GitHub release/tag.
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
|
|
44
|
+
- Warna accent diubah dari netral gelap menjadi indigo premium.
|
|
45
|
+
- `styles/poinqu.css` menjadi sumber tunggal design token untuk aplikasi dan
|
|
46
|
+
paket.
|
|
47
|
+
- `package.json` diubah menjadi paket publik `poinqu-ui-kit` (MIT).
|
|
48
|
+
- README ditulis ulang dengan panduan instalasi, theming, dan publikasi.
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
|
|
52
|
+
- `Avatar` tidak lagi bergantung pada `next/image` sehingga paket tetap
|
|
53
|
+
framework-agnostic.
|
|
54
|
+
- CSS paket sekarang memuat token dan base layer, bukan hanya CSS Modules
|
|
55
|
+
komponen.
|
|
56
|
+
- Merapikan jarak bawah konten dokumentasi dan showcase.
|
|
57
|
+
- Menambah jarak antar grup menu di sidebar dokumentasi.
|
|
58
|
+
- Memberi jarak antar code block package manager di halaman instalasi.
|
|
59
|
+
- Code block sekarang mengikuti tema: permukaan terang di light mode dan gelap di
|
|
60
|
+
dark mode.
|
|
61
|
+
- Sidebar dan header dokumentasi diberi warna permukaan sendiri agar hierarki
|
|
62
|
+
visual lebih jelas.
|
|
63
|
+
|
|
64
|
+
## [0.1.0] — 2026-08-18
|
|
65
|
+
|
|
66
|
+
### Added
|
|
67
|
+
|
|
68
|
+
- Rilis internal pertama.
|
|
69
|
+
- Primitives: `Button`, `Card`, `Badge`, `Alert`, `Input`, `Select`, `Textarea`.
|
|
70
|
+
- Navigasi: `Tabs`, `Breadcrumb`, `Collapse`, `Stepper`, `Pagination`.
|
|
71
|
+
- Feedback: `Toast`, `Modal`, `AlertDialog`, `Tooltip`, `Spinner`,
|
|
72
|
+
`Placeholder`.
|
|
73
|
+
- Data: `Table`, `DataTable`, `Trace`, `Marker`, `ListGroup`, `Accordion`.
|
|
74
|
+
- Form: `Combobox`, `Checkbox`, `RadioGroup`, `Switch`, `RangeSelect`.
|
|
75
|
+
- Showcase interaktif di halaman utama.
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Poinqu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,325 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Poinqu UI
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Design system React yang premium, aksesibel, dan siap dipasang lewat npm.**
|
|
4
|
+
|
|
5
|
+
Poinqu UI berisi 40+ komponen untuk dashboard, admin panel, dan produk SaaS.
|
|
6
|
+
Semua komponen memakai token yang sama, mendukung light & dark mode, dan
|
|
7
|
+
ditulis dengan TypeScript strict.
|
|
8
|
+
|
|
9
|
+
- 📚 Dokumentasi: **https://ui.poinqu.com/docs**
|
|
10
|
+
- 🧩 Showcase interaktif: **https://ui.poinqu.com/components**
|
|
11
|
+
- 📦 npm: **https://www.npmjs.com/package/poinqu-ui-kit**
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Fitur
|
|
16
|
+
|
|
17
|
+
- **40+ komponen** — actions, display, feedback, forms, navigation, overlays,
|
|
18
|
+
dan data display.
|
|
19
|
+
- **Light & dark theme** — palet gelap yang dirancang, bukan inversi otomatis.
|
|
20
|
+
- **Design token** — warna, radius, shadow, spacing, dan tipografi bisa
|
|
21
|
+
di-override tanpa fork.
|
|
22
|
+
- **Aksesibel** — focus ring, keyboard navigation, ARIA, native dialog, dan
|
|
23
|
+
dukungan `prefers-reduced-motion`.
|
|
24
|
+
- **Typed end-to-end** — prop types diekspor, ESM, tree-shakeable.
|
|
25
|
+
- **Zero runtime dependencies** — React dan React DOM hanya peer dependency.
|
|
26
|
+
- **Dokumentasi lengkap** — live preview, API reference, pencarian `⌘K`, dan
|
|
27
|
+
changelog.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Instalasi
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm install poinqu-ui-kit
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Import stylesheet sekali di entry aplikasi:
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
import "poinqu-ui-kit/styles.css";
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Quick start
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
import "poinqu-ui-kit/styles.css";
|
|
47
|
+
import {
|
|
48
|
+
Badge,
|
|
49
|
+
Button,
|
|
50
|
+
Card,
|
|
51
|
+
CardBody,
|
|
52
|
+
CardHeader,
|
|
53
|
+
} from "poinqu-ui-kit";
|
|
54
|
+
|
|
55
|
+
export function WorkspaceCard() {
|
|
56
|
+
return (
|
|
57
|
+
<Card>
|
|
58
|
+
<CardHeader
|
|
59
|
+
title="Workspace"
|
|
60
|
+
description="Kelola workspace dan anggota tim."
|
|
61
|
+
actions={<Badge tone="success" dot>Active</Badge>}
|
|
62
|
+
/>
|
|
63
|
+
<CardBody>
|
|
64
|
+
<Button
|
|
65
|
+
label="Simpan perubahan"
|
|
66
|
+
variant="solid"
|
|
67
|
+
tone="primary"
|
|
68
|
+
icon="lucide:save"
|
|
69
|
+
/>
|
|
70
|
+
</CardBody>
|
|
71
|
+
</Card>
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Provider (opsional, direkomendasikan)
|
|
77
|
+
|
|
78
|
+
```tsx
|
|
79
|
+
"use client";
|
|
80
|
+
|
|
81
|
+
import { ThemeProvider, ToastProvider } from "poinqu-ui-kit";
|
|
82
|
+
|
|
83
|
+
export function Providers({ children }: { children: React.ReactNode }) {
|
|
84
|
+
return (
|
|
85
|
+
<ThemeProvider defaultTheme="system">
|
|
86
|
+
<ToastProvider>{children}</ToastProvider>
|
|
87
|
+
</ThemeProvider>
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
`ThemeProvider` mengaktifkan light/dark/system dan menyimpan preferensi.
|
|
93
|
+
`ToastProvider` diperlukan untuk `useToast`.
|
|
94
|
+
|
|
95
|
+
### Next.js theme script
|
|
96
|
+
|
|
97
|
+
Agar tidak ada flash tema yang salah, render `ThemeScript` sebagai child pertama
|
|
98
|
+
`<body>`:
|
|
99
|
+
|
|
100
|
+
```tsx
|
|
101
|
+
import { ThemeScript } from "poinqu-ui-kit";
|
|
102
|
+
|
|
103
|
+
<body>
|
|
104
|
+
<ThemeScript />
|
|
105
|
+
{children}
|
|
106
|
+
</body>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
### CDN / tanpa build step
|
|
112
|
+
|
|
113
|
+
CSS tersedia langsung dari jsDelivr:
|
|
114
|
+
|
|
115
|
+
```html
|
|
116
|
+
<link
|
|
117
|
+
rel="stylesheet"
|
|
118
|
+
href="https://cdn.jsdelivr.net/npm/poinqu-ui-kit@0.2.1/dist/poinqu-ui.css"
|
|
119
|
+
/>
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Untuk komponen React, paket npm berupa ESM dan React di-resolve lewat
|
|
123
|
+
`importmap`:
|
|
124
|
+
|
|
125
|
+
```html
|
|
126
|
+
<script type="importmap">
|
|
127
|
+
{
|
|
128
|
+
"imports": {
|
|
129
|
+
"react": "https://esm.sh/react@19.3.0",
|
|
130
|
+
"react-dom": "https://esm.sh/react-dom@19.3.0?deps=react@19.3.0",
|
|
131
|
+
"react/jsx-runtime": "https://esm.sh/react@19.3.0/jsx-runtime",
|
|
132
|
+
"react-dom/client": "https://esm.sh/react-dom@19.3.0/client?deps=react@19.3.0"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
</script>
|
|
136
|
+
|
|
137
|
+
<div id="root"></div>
|
|
138
|
+
|
|
139
|
+
<script type="module">
|
|
140
|
+
import React from "react";
|
|
141
|
+
import { createRoot } from "react-dom/client";
|
|
142
|
+
import { Button, ThemeProvider } from "https://cdn.jsdelivr.net/npm/poinqu-ui-kit@0.2.1/dist/index.mjs";
|
|
143
|
+
|
|
144
|
+
const h = React.createElement;
|
|
145
|
+
|
|
146
|
+
createRoot(document.getElementById("root")).render(
|
|
147
|
+
h(ThemeProvider, null,
|
|
148
|
+
h(Button, {
|
|
149
|
+
label: "CDN works",
|
|
150
|
+
variant: "solid",
|
|
151
|
+
tone: "primary",
|
|
152
|
+
icon: "lucide:check",
|
|
153
|
+
}),
|
|
154
|
+
),
|
|
155
|
+
);
|
|
156
|
+
</script>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
Tanpa build step tidak ada JSX; gunakan `React.createElement` atau `htm`.
|
|
160
|
+
Untuk produksi, bundling tetap disarankan.
|
|
161
|
+
|
|
162
|
+
## Dokumentasi di repo ini
|
|
163
|
+
|
|
164
|
+
Repo ini sekaligus menjadi situs dokumentasi (Next.js App Router):
|
|
165
|
+
|
|
166
|
+
| Route | Isi |
|
|
167
|
+
|---|---|
|
|
168
|
+
| `/` | Landing page premium |
|
|
169
|
+
| `/docs` | Pengantar dan quick start |
|
|
170
|
+
| `/docs/installation` | Instalasi untuk Next.js, Vite, dan React |
|
|
171
|
+
| `/docs/theming` | Token, brand color, dark mode, scoped theme |
|
|
172
|
+
| `/docs/components` | Indeks semua komponen |
|
|
173
|
+
| `/docs/components/[slug]` | Live preview, usage, API reference |
|
|
174
|
+
| `/docs/changelog` | Release notes |
|
|
175
|
+
| `/components` | Showcase interaktif seluruh komponen |
|
|
176
|
+
|
|
177
|
+
Menjalankan situs:
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
npm install
|
|
181
|
+
npm run dev
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Buka [http://localhost:3000](http://localhost:3000).
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Komponen
|
|
189
|
+
|
|
190
|
+
| Grup | Komponen |
|
|
191
|
+
|---|---|
|
|
192
|
+
| Theme | `ThemeProvider`, `ThemeToggle`, `ThemeScript` |
|
|
193
|
+
| Actions | `Button`, `ButtonGroup` |
|
|
194
|
+
| Display | `Typography`, `Card`, `Badge`, `Avatar`, `Stat`, `StatGrid`, `Kbd`, `CodeBlock`, `EmptyState`, `PageHeader` |
|
|
195
|
+
| Feedback | `Alert`, `Progress`, `Toast`, `Spinner`, `Placeholder` |
|
|
196
|
+
| Forms | `Input`, `Select`, `Textarea`, `Checkbox`, `RadioGroup`, `Switch`, `Combobox`, `Slider`, `FormField`, `PasswordInput`, `SearchField`, `RangeSelect` |
|
|
197
|
+
| Navigation | `Breadcrumb`, `Tabs`, `Collapse`, `Stepper`, `Pagination` |
|
|
198
|
+
| Overlays | `Modal`, `AlertDialog`, `Dropdown`, `Tooltip`, `AccountModal` |
|
|
199
|
+
| Data display | `Table`, `DataTable`, `ListGroup`, `Accordion`, `Marker`, `Trace`, `Attachment` |
|
|
200
|
+
|
|
201
|
+
Komponen interaktif (`Combobox`, `Modal`, `Dropdown`, `Toast`, `Tooltip`,
|
|
202
|
+
`ThemeToggle`, `CodeBlock`, `Slider`, dll.) adalah Client Components. Paket
|
|
203
|
+
utama ditandai `"use client"` sehingga aman diimpor dari Client Component;
|
|
204
|
+
komponen tetap bisa dirender dari Server Component sebagai child.
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## Theming
|
|
209
|
+
|
|
210
|
+
Semua warna dan ukuran adalah CSS custom property. Override setelah stylesheet:
|
|
211
|
+
|
|
212
|
+
```css
|
|
213
|
+
:root {
|
|
214
|
+
--color-accent: #047857;
|
|
215
|
+
--color-accent-top: #10b981;
|
|
216
|
+
--radius-card: 16px;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
[data-theme="dark"] {
|
|
220
|
+
--color-accent: #34d399;
|
|
221
|
+
--color-accent-top: #6ee7b7;
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Baca panduan lengkap di [docs/theming](https://ui.poinqu.com/docs/theming).
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Struktur repo
|
|
230
|
+
|
|
231
|
+
```txt
|
|
232
|
+
app/ # situs dokumentasi + landing (Next.js)
|
|
233
|
+
docs/ # halaman dokumentasi
|
|
234
|
+
components/ # showcase interaktif
|
|
235
|
+
components/
|
|
236
|
+
ui/ # library komponen (entry: index.ts)
|
|
237
|
+
theme/ # ThemeProvider, ThemeToggle, theme script
|
|
238
|
+
docs/ # shell, search, preview, DocPage
|
|
239
|
+
marketing/ # landing page, nav, install command
|
|
240
|
+
showcase/ # demo interaktif semua komponen
|
|
241
|
+
lib/
|
|
242
|
+
data.ts # tipe & data demo
|
|
243
|
+
docs.ts # registry dokumentasi komponen
|
|
244
|
+
styles/
|
|
245
|
+
poinqu.css # design token + base layer (dipakai paket)
|
|
246
|
+
types/
|
|
247
|
+
css.d.ts # deklarasi CSS Modules
|
|
248
|
+
iconify.d.ts # tipe <iconify-icon>
|
|
249
|
+
vite.lib.config.ts # build library (ESM + CSS + .d.ts)
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Scripts
|
|
255
|
+
|
|
256
|
+
| Perintah | Fungsi |
|
|
257
|
+
|---|---|
|
|
258
|
+
| `npm run dev` | Development server dokumentasi |
|
|
259
|
+
| `npm run build` | Build situs Next.js |
|
|
260
|
+
| `npm run start` | Menjalankan hasil build |
|
|
261
|
+
| `npm run lint` | ESLint |
|
|
262
|
+
| `npm run typecheck` | Type-check tanpa emit |
|
|
263
|
+
| `npm run build:lib` | Build paket npm ke `dist/` |
|
|
264
|
+
| `npm run build:all` | Build library lalu situs |
|
|
265
|
+
| `npm run icons:generate` | Regenerasi inline SVG dari `lucide-static` |
|
|
266
|
+
| `npm run pack:dry` | Preview isi tarball npm |
|
|
267
|
+
|
|
268
|
+
### Build paket
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
npm run build:lib
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Output:
|
|
275
|
+
|
|
276
|
+
```txt
|
|
277
|
+
dist/
|
|
278
|
+
index.mjs # ESM bundle (dengan "use client")
|
|
279
|
+
index.d.ts # TypeScript declarations
|
|
280
|
+
poinqu-ui.css # tokens + seluruh style komponen
|
|
281
|
+
index.mjs.map
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Publikasi ke npm
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
npm login
|
|
288
|
+
npm run pack:dry # cek isi paket
|
|
289
|
+
npm publish
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
`prepublishOnly` otomatis menjalankan `build:lib`. Versi mengikuti semver.
|
|
293
|
+
Untuk rilis beta: `npm publish --tag beta`.
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Requirements
|
|
298
|
+
|
|
299
|
+
- Node.js `>=18.18`
|
|
300
|
+
- React `>=18.2` (React 19 didukung)
|
|
301
|
+
- CSS Modules (built-in di Next.js & Vite)
|
|
302
|
+
|
|
303
|
+
### Icons
|
|
304
|
+
|
|
305
|
+
Semua ikon Lucide yang dipakai komponen bawaan sudah dibundel sebagai inline
|
|
306
|
+
SVG—tidak perlu script eksternal dan tetap tampil saat SSR. Jika Anda memakai
|
|
307
|
+
nama ikon lain lewat prop `icon` (mis. `mdi:home`), muat Iconify web component
|
|
308
|
+
sekali di aplikasi:
|
|
309
|
+
|
|
310
|
+
```html
|
|
311
|
+
<script src="https://code.iconify.design/iconify-icon/3.0.0/iconify-icon.min.js"></script>
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
## Kontribusi
|
|
315
|
+
|
|
316
|
+
1. Buat komponen di `components/ui/Nama.tsx` + `Nama.module.css`.
|
|
317
|
+
2. Gunakan token dari `styles/poinqu.css`, jangan hardcode warna.
|
|
318
|
+
3. Tambahkan demo di `components/showcase/ComponentShowcase.tsx`.
|
|
319
|
+
4. Tambahkan entri dokumentasi di `lib/docs.ts` dan preview di
|
|
320
|
+
`components/docs/DocPreview.tsx`.
|
|
321
|
+
5. Jalankan `npm run typecheck && npm run lint && npm run build:all`.
|
|
322
|
+
|
|
323
|
+
## Lisensi
|
|
324
|
+
|
|
325
|
+
MIT © 2026 Poinqu.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
## Lucide icons
|
|
4
|
+
|
|
5
|
+
The inline SVG fallback data in `components/ui/icon-data.ts` is generated from
|
|
6
|
+
[lucide-static](https://lucide.dev).
|
|
7
|
+
|
|
8
|
+
ISC License
|
|
9
|
+
|
|
10
|
+
Copyright (c) for portions of Lucide are held by Cole Bemis 2013-2022 as part of
|
|
11
|
+
Feather (MIT). All other copyright (c) for Lucide are held by Lucide
|
|
12
|
+
Contributors 2022-2026.
|
|
13
|
+
|
|
14
|
+
Permission to use, copy, modify, and/or distribute this software for any purpose
|
|
15
|
+
with or without fee is hereby granted, provided that the above copyright notice
|
|
16
|
+
and this permission notice appear in all copies.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
19
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
20
|
+
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
21
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
|
|
22
|
+
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
23
|
+
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
|
|
24
|
+
THIS SOFTWARE.
|