@gemafajarramadhan/dynamic-ui 1.0.2 → 1.0.4

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.
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gemafajarramadhan/dynamic-ui",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Vue 3 Dynamic UI Component Library - Compatible with Vue, React, Angular, and any other framework via Web Components",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/index.d.ts CHANGED
@@ -1,5 +1,45 @@
1
1
  declare module '@gemafajarramadhan/dynamic-ui' {
2
- import type { DefineComponent, Plugin } from 'vue'
2
+ import type { DefineComponent, Plugin, App } from 'vue'
3
+
4
+ // ─── API Configuration ────────────────────────────────────────────────────────
5
+
6
+ /**
7
+ * Konfigurasi API untuk komponen DCode yang melakukan HTTP request.
8
+ * Di-set via: app.use(DynamicUI, config) atau setApiConfig(config)
9
+ */
10
+ export interface DynamicUIApiConfig {
11
+ /** Base URL untuk semua request API. Contoh: 'https://api.example.com' */
12
+ apiBaseUrl?: string
13
+ /**
14
+ * Fungsi untuk mendapatkan token auth terkini.
15
+ * Dipanggil setiap kali ada request, sehingga mendukung token refresh.
16
+ * @example () => localStorage.getItem('access_token')
17
+ * @example () => store.getters['auth/token']
18
+ */
19
+ getAuthToken?: () => string | null | undefined
20
+ /**
21
+ * Fungsi untuk menyediakan custom HTTP headers.
22
+ * Jika disediakan, akan di-merge dengan default headers.
23
+ * @example () => ({ Authorization: `Bearer ${store.state.token}`, 'X-Tenant': 'abc' })
24
+ */
25
+ getHeaders?: () => Record<string, string>
26
+ /**
27
+ * Callback yang dipanggil ketika response HTTP 401 diterima.
28
+ * Berguna untuk trigger logout atau redirect ke halaman login.
29
+ * @example () => router.push('/login')
30
+ */
31
+ onUnauthorized?: () => void
32
+ }
33
+
34
+ /**
35
+ * Set konfigurasi API secara manual (tanpa app.use).
36
+ * Berguna untuk setup di luar Vue app (misal: sebelum createApp).
37
+ *
38
+ * @example
39
+ * import { setApiConfig } from '@gemafajarramadhan/dynamic-ui'
40
+ * setApiConfig({ apiBaseUrl: 'https://api.example.com' })
41
+ */
42
+ export function setApiConfig(config: DynamicUIApiConfig): void
3
43
 
4
44
  // ─── Base Components ─────────────────────────────────────────────────────────
5
45
 
@@ -266,6 +306,22 @@ declare module '@gemafajarramadhan/dynamic-ui' {
266
306
 
267
307
  // ─── Vue Plugin ──────────────────────────────────────────────────────────────
268
308
 
269
- declare const DynamicUI: Plugin
309
+ /**
310
+ * Vue Plugin - install semua DCode components secara global.
311
+ *
312
+ * @example
313
+ * import DynamicUI from '@gemafajarramadhan/dynamic-ui'
314
+ * import '@gemafajarramadhan/dynamic-ui/style.css'
315
+ *
316
+ * app.use(DynamicUI, {
317
+ * apiBaseUrl: 'https://api.example.com',
318
+ * getAuthToken: () => localStorage.getItem('access_token'),
319
+ * getHeaders: () => ({ Authorization: `Bearer ${store.state.token}` }),
320
+ * onUnauthorized: () => router.push('/login'),
321
+ * })
322
+ */
323
+ declare const DynamicUI: {
324
+ install(app: App, options?: DynamicUIApiConfig): void
325
+ }
270
326
  export default DynamicUI
271
327
  }