@ttdk-design-system/library-svelte 0.0.0-stage → 1.0.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.
Files changed (270) hide show
  1. package/AI_GUIDE.md +6518 -0
  2. package/dist/core/index.d.ts +2 -0
  3. package/dist/core/index.js +2 -0
  4. package/dist/core/tailwind-preset.cjs +62 -0
  5. package/dist/core/tailwind-preset.d.cts +63 -0
  6. package/dist/core/tailwind-preset.d.ts +74 -0
  7. package/dist/core/tailwind-preset.js +79 -0
  8. package/dist/core/theme/tokens.css +663 -0
  9. package/dist/core/types.d.ts +152 -0
  10. package/dist/core/types.js +735 -0
  11. package/dist/index.d.ts +14 -0
  12. package/dist/index.js +15 -0
  13. package/dist/tailwind-preset.cjs +62 -0
  14. package/dist/tailwind-preset.d.cts +63 -0
  15. package/dist/tailwind-preset.d.ts +74 -0
  16. package/dist/tailwind-preset.js +79 -0
  17. package/dist/types.d.ts +1 -0
  18. package/dist/types.js +1 -0
  19. package/dist/web/accordion/AI_GUIDE.md +149 -0
  20. package/dist/web/accordion/accordion.css +1 -0
  21. package/dist/web/accordion/accordion.svelte +217 -0
  22. package/dist/web/accordion/accordion.svelte.d.ts +224 -0
  23. package/dist/web/accordion/index.d.ts +2 -0
  24. package/dist/web/accordion/index.js +2 -0
  25. package/dist/web/accordion/manifest.json +351 -0
  26. package/dist/web/alert/AI_GUIDE.md +139 -0
  27. package/dist/web/alert/alert.css +1 -0
  28. package/dist/web/alert/alert.svelte +175 -0
  29. package/dist/web/alert/alert.svelte.d.ts +165 -0
  30. package/dist/web/alert/index.d.ts +2 -0
  31. package/dist/web/alert/index.js +2 -0
  32. package/dist/web/alert/manifest.json +240 -0
  33. package/dist/web/avatar/AI_GUIDE.md +118 -0
  34. package/dist/web/avatar/avatar.css +1 -0
  35. package/dist/web/avatar/avatar.svelte +108 -0
  36. package/dist/web/avatar/avatar.svelte.d.ts +147 -0
  37. package/dist/web/avatar/index.d.ts +2 -0
  38. package/dist/web/avatar/index.js +2 -0
  39. package/dist/web/avatar/manifest.json +195 -0
  40. package/dist/web/badge/AI_GUIDE.md +94 -0
  41. package/dist/web/badge/badge.css +1 -0
  42. package/dist/web/badge/badge.svelte +50 -0
  43. package/dist/web/badge/badge.svelte.d.ts +111 -0
  44. package/dist/web/badge/index.d.ts +2 -0
  45. package/dist/web/badge/index.js +2 -0
  46. package/dist/web/badge/manifest.json +141 -0
  47. package/dist/web/banner/AI_GUIDE.md +130 -0
  48. package/dist/web/banner/banner.css +1 -0
  49. package/dist/web/banner/banner.svelte +180 -0
  50. package/dist/web/banner/banner.svelte.d.ts +172 -0
  51. package/dist/web/banner/index.d.ts +2 -0
  52. package/dist/web/banner/index.js +2 -0
  53. package/dist/web/banner/manifest.json +240 -0
  54. package/dist/web/breadcrumb/AI_GUIDE.md +120 -0
  55. package/dist/web/breadcrumb/breadcrumb.css +1 -0
  56. package/dist/web/breadcrumb/breadcrumb.svelte +168 -0
  57. package/dist/web/breadcrumb/breadcrumb.svelte.d.ts +141 -0
  58. package/dist/web/breadcrumb/index.d.ts +2 -0
  59. package/dist/web/breadcrumb/index.js +2 -0
  60. package/dist/web/breadcrumb/manifest.json +225 -0
  61. package/dist/web/button/AI_GUIDE.md +121 -0
  62. package/dist/web/button/button.css +1 -0
  63. package/dist/web/button/button.svelte +154 -0
  64. package/dist/web/button/button.svelte.d.ts +159 -0
  65. package/dist/web/button/index.d.ts +2 -0
  66. package/dist/web/button/index.js +2 -0
  67. package/dist/web/button/manifest.json +177 -0
  68. package/dist/web/calendar/AI_GUIDE.md +151 -0
  69. package/dist/web/calendar/calendar.css +1 -0
  70. package/dist/web/calendar/calendar.svelte +1091 -0
  71. package/dist/web/calendar/calendar.svelte.d.ts +268 -0
  72. package/dist/web/calendar/index.d.ts +2 -0
  73. package/dist/web/calendar/index.js +2 -0
  74. package/dist/web/calendar/manifest.json +470 -0
  75. package/dist/web/card/AI_GUIDE.md +133 -0
  76. package/dist/web/card/card.css +1 -0
  77. package/dist/web/card/card.svelte +217 -0
  78. package/dist/web/card/card.svelte.d.ts +242 -0
  79. package/dist/web/card/index.d.ts +2 -0
  80. package/dist/web/card/index.js +2 -0
  81. package/dist/web/card/manifest.json +357 -0
  82. package/dist/web/checkbox/AI_GUIDE.md +146 -0
  83. package/dist/web/checkbox/checkbox.css +1 -0
  84. package/dist/web/checkbox/checkbox.svelte +131 -0
  85. package/dist/web/checkbox/checkbox.svelte.d.ts +199 -0
  86. package/dist/web/checkbox/index.d.ts +2 -0
  87. package/dist/web/checkbox/index.js +2 -0
  88. package/dist/web/checkbox/manifest.json +294 -0
  89. package/dist/web/chip/AI_GUIDE.md +186 -0
  90. package/dist/web/chip/chip.css +1 -0
  91. package/dist/web/chip/chip.svelte +113 -0
  92. package/dist/web/chip/chip.svelte.d.ts +145 -0
  93. package/dist/web/chip/index.d.ts +2 -0
  94. package/dist/web/chip/index.js +2 -0
  95. package/dist/web/chip/manifest.json +186 -0
  96. package/dist/web/dropdown/AI_GUIDE.md +167 -0
  97. package/dist/web/dropdown/dropdown.css +1 -0
  98. package/dist/web/dropdown/dropdown.svelte +844 -0
  99. package/dist/web/dropdown/dropdown.svelte.d.ts +361 -0
  100. package/dist/web/dropdown/index.d.ts +2 -0
  101. package/dist/web/dropdown/index.js +2 -0
  102. package/dist/web/dropdown/manifest.json +576 -0
  103. package/dist/web/flex/AI_GUIDE.md +113 -0
  104. package/dist/web/flex/flex-item.svelte +37 -0
  105. package/dist/web/flex/flex-item.svelte.d.ts +96 -0
  106. package/dist/web/flex/flex.css +1 -0
  107. package/dist/web/flex/flex.svelte +39 -0
  108. package/dist/web/flex/flex.svelte.d.ts +104 -0
  109. package/dist/web/flex/index.d.ts +3 -0
  110. package/dist/web/flex/index.js +3 -0
  111. package/dist/web/flex/manifest.json +162 -0
  112. package/dist/web/form/index.d.ts +1 -0
  113. package/dist/web/form/index.js +2 -0
  114. package/dist/web/grid/AI_GUIDE.md +112 -0
  115. package/dist/web/grid/grid-item.svelte +41 -0
  116. package/dist/web/grid/grid-item.svelte.d.ts +112 -0
  117. package/dist/web/grid/grid.css +1 -0
  118. package/dist/web/grid/grid.svelte +37 -0
  119. package/dist/web/grid/grid.svelte.d.ts +96 -0
  120. package/dist/web/grid/index.d.ts +3 -0
  121. package/dist/web/grid/index.js +3 -0
  122. package/dist/web/grid/manifest.json +153 -0
  123. package/dist/web/index.d.ts +58 -0
  124. package/dist/web/index.js +57 -0
  125. package/dist/web/input/AI_GUIDE.md +159 -0
  126. package/dist/web/input/index.d.ts +2 -0
  127. package/dist/web/input/index.js +2 -0
  128. package/dist/web/input/input.css +1 -0
  129. package/dist/web/input/input.svelte +283 -0
  130. package/dist/web/input/input.svelte.d.ts +283 -0
  131. package/dist/web/input/manifest.json +465 -0
  132. package/dist/web/input-number/AI_GUIDE.md +164 -0
  133. package/dist/web/input-number/index.d.ts +2 -0
  134. package/dist/web/input-number/index.js +2 -0
  135. package/dist/web/input-number/input-number.css +1 -0
  136. package/dist/web/input-number/input-number.svelte +783 -0
  137. package/dist/web/input-number/input-number.svelte.d.ts +352 -0
  138. package/dist/web/input-number/manifest.json +575 -0
  139. package/dist/web/modal/AI_GUIDE.md +171 -0
  140. package/dist/web/modal/index.d.ts +2 -0
  141. package/dist/web/modal/index.js +2 -0
  142. package/dist/web/modal/manifest.json +375 -0
  143. package/dist/web/modal/modal.css +1 -0
  144. package/dist/web/modal/modal.svelte +333 -0
  145. package/dist/web/modal/modal.svelte.d.ts +231 -0
  146. package/dist/web/pagination/AI_GUIDE.md +148 -0
  147. package/dist/web/pagination/index.d.ts +19 -0
  148. package/dist/web/pagination/index.js +19 -0
  149. package/dist/web/pagination/manifest.json +432 -0
  150. package/dist/web/pagination/pagination-content.svelte +25 -0
  151. package/dist/web/pagination/pagination-content.svelte.d.ts +36 -0
  152. package/dist/web/pagination/pagination-ellipsis.svelte +38 -0
  153. package/dist/web/pagination/pagination-ellipsis.svelte.d.ts +35 -0
  154. package/dist/web/pagination/pagination-first.svelte +105 -0
  155. package/dist/web/pagination/pagination-first.svelte.d.ts +74 -0
  156. package/dist/web/pagination/pagination-item.svelte +25 -0
  157. package/dist/web/pagination/pagination-item.svelte.d.ts +36 -0
  158. package/dist/web/pagination/pagination-last.svelte +105 -0
  159. package/dist/web/pagination/pagination-last.svelte.d.ts +74 -0
  160. package/dist/web/pagination/pagination-link.svelte +67 -0
  161. package/dist/web/pagination/pagination-link.svelte.d.ts +69 -0
  162. package/dist/web/pagination/pagination-next.svelte +99 -0
  163. package/dist/web/pagination/pagination-next.svelte.d.ts +75 -0
  164. package/dist/web/pagination/pagination-previous.svelte +99 -0
  165. package/dist/web/pagination/pagination-previous.svelte.d.ts +75 -0
  166. package/dist/web/pagination/pagination.css +1 -0
  167. package/dist/web/pagination/pagination.svelte +471 -0
  168. package/dist/web/pagination/pagination.svelte.d.ts +256 -0
  169. package/dist/web/popover/AI_GUIDE.md +163 -0
  170. package/dist/web/popover/index.d.ts +3 -0
  171. package/dist/web/popover/index.js +3 -0
  172. package/dist/web/popover/manifest.json +396 -0
  173. package/dist/web/popover/popover.css +1 -0
  174. package/dist/web/popover/popover.svelte +497 -0
  175. package/dist/web/popover/popover.svelte.d.ts +116 -0
  176. package/dist/web/radio/AI_GUIDE.md +155 -0
  177. package/dist/web/radio/index.d.ts +2 -0
  178. package/dist/web/radio/index.js +2 -0
  179. package/dist/web/radio/manifest.json +294 -0
  180. package/dist/web/radio/radio.css +1 -0
  181. package/dist/web/radio/radio.svelte +123 -0
  182. package/dist/web/radio/radio.svelte.d.ts +192 -0
  183. package/dist/web/selectbox/AI_GUIDE.md +216 -0
  184. package/dist/web/selectbox/index.d.ts +2 -0
  185. package/dist/web/selectbox/index.js +2 -0
  186. package/dist/web/selectbox/manifest.json +477 -0
  187. package/dist/web/selectbox/selectbox.css +1 -0
  188. package/dist/web/selectbox/selectbox.svelte +704 -0
  189. package/dist/web/selectbox/selectbox.svelte.d.ts +296 -0
  190. package/dist/web/sonner/AI_GUIDE.md +98 -0
  191. package/dist/web/sonner/index.d.ts +46 -0
  192. package/dist/web/sonner/index.js +64 -0
  193. package/dist/web/sonner/manifest.json +132 -0
  194. package/dist/web/sonner/sonner.css +1 -0
  195. package/dist/web/sonner/sonner.svelte +85 -0
  196. package/dist/web/sonner/sonner.svelte.d.ts +105 -0
  197. package/dist/web/table/AI_GUIDE.md +145 -0
  198. package/dist/web/table/index.d.ts +21 -0
  199. package/dist/web/table/index.js +22 -0
  200. package/dist/web/table/manifest.json +168 -0
  201. package/dist/web/table/table-body.svelte +23 -0
  202. package/dist/web/table/table-body.svelte.d.ts +36 -0
  203. package/dist/web/table/table-caption.svelte +23 -0
  204. package/dist/web/table/table-caption.svelte.d.ts +36 -0
  205. package/dist/web/table/table-cell.svelte +35 -0
  206. package/dist/web/table/table-cell.svelte.d.ts +57 -0
  207. package/dist/web/table/table-empty.svelte +56 -0
  208. package/dist/web/table/table-empty.svelte.d.ts +65 -0
  209. package/dist/web/table/table-footer.svelte +23 -0
  210. package/dist/web/table/table-footer.svelte.d.ts +36 -0
  211. package/dist/web/table/table-head.svelte +39 -0
  212. package/dist/web/table/table-head.svelte.d.ts +58 -0
  213. package/dist/web/table/table-header.svelte +23 -0
  214. package/dist/web/table/table-header.svelte.d.ts +36 -0
  215. package/dist/web/table/table-row.svelte +33 -0
  216. package/dist/web/table/table-row.svelte.d.ts +52 -0
  217. package/dist/web/table/table.css +1 -0
  218. package/dist/web/table/table.svelte +178 -0
  219. package/dist/web/table/table.svelte.d.ts +120 -0
  220. package/dist/web/tabs/AI_GUIDE.md +150 -0
  221. package/dist/web/tabs/index.d.ts +2 -0
  222. package/dist/web/tabs/index.js +2 -0
  223. package/dist/web/tabs/manifest.json +315 -0
  224. package/dist/web/tabs/tabs.css +1 -0
  225. package/dist/web/tabs/tabs.svelte +138 -0
  226. package/dist/web/tabs/tabs.svelte.d.ts +204 -0
  227. package/dist/web/text/AI_GUIDE.md +129 -0
  228. package/dist/web/text/index.d.ts +2 -0
  229. package/dist/web/text/index.js +2 -0
  230. package/dist/web/text/manifest.json +195 -0
  231. package/dist/web/text/text.css +1 -0
  232. package/dist/web/text/text.svelte +515 -0
  233. package/dist/web/text/text.svelte.d.ts +168 -0
  234. package/dist/web/textarea/AI_GUIDE.md +141 -0
  235. package/dist/web/textarea/index.d.ts +2 -0
  236. package/dist/web/textarea/index.js +2 -0
  237. package/dist/web/textarea/manifest.json +438 -0
  238. package/dist/web/textarea/textarea.css +1 -0
  239. package/dist/web/textarea/textarea.svelte +224 -0
  240. package/dist/web/textarea/textarea.svelte.d.ts +274 -0
  241. package/dist/web/tooltip/AI_GUIDE.md +110 -0
  242. package/dist/web/tooltip/index.d.ts +2 -0
  243. package/dist/web/tooltip/index.js +2 -0
  244. package/dist/web/tooltip/manifest.json +222 -0
  245. package/dist/web/tooltip/tooltip.css +1 -0
  246. package/dist/web/tooltip/tooltip.svelte +292 -0
  247. package/dist/web/tooltip/tooltip.svelte.d.ts +140 -0
  248. package/dist/webview/bottomsheet/AI_GUIDE.md +141 -0
  249. package/dist/webview/bottomsheet/bottomsheet.css +1 -0
  250. package/dist/webview/bottomsheet/bottomsheet.svelte +462 -0
  251. package/dist/webview/bottomsheet/bottomsheet.svelte.d.ts +200 -0
  252. package/dist/webview/bottomsheet/index.d.ts +4 -0
  253. package/dist/webview/bottomsheet/index.js +3 -0
  254. package/dist/webview/bottomsheet/manifest.json +377 -0
  255. package/dist/webview/button/AI_GUIDE.md +79 -0
  256. package/dist/webview/button/button-ios.css +1 -0
  257. package/dist/webview/button/button-ios.svelte +58 -0
  258. package/dist/webview/button/button-ios.svelte.d.ts +114 -0
  259. package/dist/webview/button/button-material.css +1 -0
  260. package/dist/webview/button/button-material.svelte +58 -0
  261. package/dist/webview/button/button-material.svelte.d.ts +114 -0
  262. package/dist/webview/button/index.d.ts +6 -0
  263. package/dist/webview/button/index.js +4 -0
  264. package/dist/webview/button/manifest.json +148 -0
  265. package/dist/webview/index.d.ts +6 -0
  266. package/dist/webview/index.js +6 -0
  267. package/llms.txt +6518 -0
  268. package/package.json +709 -4
  269. package/ttdk-manifest.json +10188 -0
  270. package/README.md +0 -3
@@ -0,0 +1,396 @@
1
+ {
2
+ "name": "@ttdk-design-system/popover",
3
+ "component": "Popover",
4
+ "folder": "popover",
5
+ "description": "Komponen Popover TTDK Design System — Selaras dengan Spesifikasi Nuxt UI Popover (UPopover): - Mendukung mode 'click' dan mode 'hover' dengan configurable openDelay dan closeDelay - Floating UI otomatis (computePosition, autoUpdate, flip, shift, offset, arrow) - Posisi cerdas (top, bottom, left, right, start, end) - Elemen panah (arrow) penunjuk arah dinamis - Mode modal dengan backdrop overlay - Penanganan dismissible & closePrevent (Esc key, outside click) - Dukungan controlled state (v-model:open) dan uncontrolled defaultOpen",
6
+ "stylesheets": [
7
+ {
8
+ "theme": "common",
9
+ "file": "popover.css",
10
+ "importPath": "web/popover/popover.css"
11
+ }
12
+ ],
13
+ "props": {
14
+ "open": {
15
+ "name": "open",
16
+ "type": "boolean",
17
+ "optional": true,
18
+ "default": null,
19
+ "description": "Status visibilitas popover (mode terkontrol / controlled state). Mendukung `v-model:open` pada Vue 3 dan controlled prop `open` pada React.",
20
+ "example": null,
21
+ "param": null
22
+ },
23
+ "defaultOpen": {
24
+ "name": "defaultOpen",
25
+ "type": "boolean",
26
+ "optional": true,
27
+ "default": "false",
28
+ "description": "Status visibilitas awal saat pertama kali dirender (mode tidak terkontrol / uncontrolled initial state).",
29
+ "example": null,
30
+ "param": null
31
+ },
32
+ "arrow": {
33
+ "name": "arrow",
34
+ "type": "boolean",
35
+ "optional": true,
36
+ "default": "false",
37
+ "description": "Menampilkan elemen panah (arrow) penunjuk arah yang menunjuk ke elemen pemicu.",
38
+ "example": null,
39
+ "param": null
40
+ },
41
+ "dismissible": {
42
+ "name": "dismissible",
43
+ "type": "boolean",
44
+ "optional": true,
45
+ "default": "true",
46
+ "description": "Mengizinkan popover ditutup saat pengguna mengeklik area di luar popover atau menekan tombol `Escape`. Jika bernilai `false`, popover tidak akan tertutup dan event `onClosePrevent` akan dipanggil.",
47
+ "example": null,
48
+ "param": null
49
+ },
50
+ "modal": {
51
+ "name": "modal",
52
+ "type": "boolean",
53
+ "optional": true,
54
+ "default": "false",
55
+ "description": "Mengaktifkan mode modal dengan menampilkan lapisan latar belakang redup (backdrop overlay) serta memblokir interaksi di luar popover dan mengunci scroll latar belakang.",
56
+ "example": null,
57
+ "param": null
58
+ },
59
+ "preventScroll": {
60
+ "name": "preventScroll",
61
+ "type": "boolean",
62
+ "optional": true,
63
+ "default": "false",
64
+ "description": "Mengunci pengguliran halaman web (body scroll lock) saat popover sedang terbuka, sehingga pengguna tidak dapat menggulir halaman di latar belakang. Otomatis aktif saat `modal={true}` kecuali dinyatakan `false`.",
65
+ "example": null,
66
+ "param": null
67
+ },
68
+ "lockScroll": {
69
+ "name": "lockScroll",
70
+ "type": "boolean",
71
+ "optional": true,
72
+ "default": "false",
73
+ "description": "Alias untuk `preventScroll`.",
74
+ "example": null,
75
+ "param": null
76
+ },
77
+ "disabled": {
78
+ "name": "disabled",
79
+ "type": "boolean",
80
+ "optional": true,
81
+ "default": "false",
82
+ "description": "Menonaktifkan pemicu sehingga popover tidak dapat dibuka.",
83
+ "example": null,
84
+ "param": null
85
+ },
86
+ "content": {
87
+ "name": "content",
88
+ "type": "PopoverContentOptions | any",
89
+ "optional": true,
90
+ "default": null,
91
+ "description": "Opsi konfigurasi penempatan dan benturan popover (side, align, sideOffset, dsb.) ATAU elemen konten popover secara langsung jika tidak menggunakan slot/children.",
92
+ "example": null,
93
+ "param": null
94
+ },
95
+ "panel": {
96
+ "name": "panel",
97
+ "type": "any",
98
+ "optional": true,
99
+ "default": null,
100
+ "description": "Konten kustom panel popover (alias untuk konten popover jika `content` dipakai untuk konfigurasi). Menerima ReactNode, VNode, string, atau render function `({ close }) => ReactNode`.",
101
+ "example": null,
102
+ "param": null
103
+ },
104
+ "panelContent": {
105
+ "name": "panelContent",
106
+ "type": "any",
107
+ "optional": true,
108
+ "default": null,
109
+ "description": "Konten kustom panel popover (kompatibilitas selaras dengan Dropdown panelContent). Menerima ReactNode, VNode, string, atau render function `({ close }) => ReactNode`.",
110
+ "example": null,
111
+ "param": null
112
+ },
113
+ "placement": {
114
+ "name": "placement",
115
+ "type": "| 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'left-start'\n | 'left-end'\n | 'right'\n | 'right-start'\n | 'right-end'",
116
+ "optional": true,
117
+ "default": "bottom",
118
+ "description": "Pintasan posisi penempatan panel popover Floating UI ('top', 'bottom', 'left', 'right', dsb.) Selaras dengan konfigurasi content.side dan content.align.",
119
+ "example": null,
120
+ "param": null
121
+ },
122
+ "offsetDistance": {
123
+ "name": "offsetDistance",
124
+ "type": "number",
125
+ "optional": true,
126
+ "default": "8",
127
+ "description": "Jarak offset dalam pixel dari elemen pemicu (shorthand untuk content.sideOffset).",
128
+ "example": null,
129
+ "param": null
130
+ },
131
+ "block": {
132
+ "name": "block",
133
+ "type": "boolean",
134
+ "optional": true,
135
+ "default": "false",
136
+ "description": "Menjadikan popover memenuhi lebar kontainer penuh (full width 100%).",
137
+ "example": null,
138
+ "param": null
139
+ },
140
+ "ui": {
141
+ "name": "ui",
142
+ "type": "PopoverUiProps",
143
+ "optional": true,
144
+ "default": null,
145
+ "description": "Kustomisasi visual granular wrapper utama (UiProps).",
146
+ "example": null,
147
+ "param": null
148
+ },
149
+ "style": {
150
+ "name": "style",
151
+ "type": "any",
152
+ "optional": true,
153
+ "default": null,
154
+ "description": "Style inline CSS native untuk wrapper luar.",
155
+ "example": null,
156
+ "param": null
157
+ },
158
+ "className": {
159
+ "name": "className",
160
+ "type": "string",
161
+ "optional": true,
162
+ "default": null,
163
+ "description": "Class CSS kustom untuk wrapper luar.",
164
+ "example": null,
165
+ "param": null
166
+ },
167
+ "triggerClass": {
168
+ "name": "triggerClass",
169
+ "type": "string",
170
+ "optional": true,
171
+ "default": null,
172
+ "description": "Class CSS kustom untuk pemicu (trigger container).",
173
+ "example": null,
174
+ "param": null
175
+ },
176
+ "triggerStyle": {
177
+ "name": "triggerStyle",
178
+ "type": "UiProps",
179
+ "optional": true,
180
+ "default": null,
181
+ "description": "Style kustom untuk pemicu (UiProps).",
182
+ "example": null,
183
+ "param": null
184
+ },
185
+ "contentClass": {
186
+ "name": "contentClass",
187
+ "type": "string",
188
+ "optional": true,
189
+ "default": null,
190
+ "description": "Class CSS kustom untuk panel popover konten.",
191
+ "example": null,
192
+ "param": null
193
+ },
194
+ "contentStyle": {
195
+ "name": "contentStyle",
196
+ "type": "UiProps",
197
+ "optional": true,
198
+ "default": null,
199
+ "description": "Style kustom untuk panel popover konten (UiProps).",
200
+ "example": null,
201
+ "param": null
202
+ },
203
+ "arrowClass": {
204
+ "name": "arrowClass",
205
+ "type": "string",
206
+ "optional": true,
207
+ "default": null,
208
+ "description": "Class CSS kustom untuk elemen panah (arrow).",
209
+ "example": null,
210
+ "param": null
211
+ },
212
+ "arrowStyle": {
213
+ "name": "arrowStyle",
214
+ "type": "UiProps",
215
+ "optional": true,
216
+ "default": null,
217
+ "description": "Style kustom untuk elemen panah (UiProps).",
218
+ "example": null,
219
+ "param": null
220
+ },
221
+ "overlayClass": {
222
+ "name": "overlayClass",
223
+ "type": "string",
224
+ "optional": true,
225
+ "default": null,
226
+ "description": "Class CSS kustom untuk lapisan latar belakang redup (modal overlay).",
227
+ "example": null,
228
+ "param": null
229
+ },
230
+ "overlayStyle": {
231
+ "name": "overlayStyle",
232
+ "type": "UiProps",
233
+ "optional": true,
234
+ "default": null,
235
+ "description": "Style kustom untuk lapisan latar belakang redup (UiProps).",
236
+ "example": null,
237
+ "param": null
238
+ },
239
+ "onUpdateOpen": {
240
+ "name": "onUpdateOpen",
241
+ "type": "(open: boolean) => void",
242
+ "optional": true,
243
+ "default": null,
244
+ "description": "Callback event saat status terbuka/tertutup berubah (kompatibel dengan v-model:open pada Vue 3).",
245
+ "example": null,
246
+ "param": null
247
+ },
248
+ "onOpenChange": {
249
+ "name": "onOpenChange",
250
+ "type": "(open: boolean) => void",
251
+ "optional": true,
252
+ "default": null,
253
+ "description": "Callback event saat status terbuka/tertutup berubah (alias standar React).",
254
+ "example": null,
255
+ "param": null
256
+ },
257
+ "onOpen": {
258
+ "name": "onOpen",
259
+ "type": "() => void",
260
+ "optional": true,
261
+ "default": null,
262
+ "description": "Callback event saat popover terbuka.",
263
+ "example": null,
264
+ "param": null
265
+ },
266
+ "onClose": {
267
+ "name": "onClose",
268
+ "type": "() => void",
269
+ "optional": true,
270
+ "default": null,
271
+ "description": "Callback event saat popover ditutup.",
272
+ "example": null,
273
+ "param": null
274
+ },
275
+ "onClosePrevent": {
276
+ "name": "onClosePrevent",
277
+ "type": "() => void",
278
+ "optional": true,
279
+ "default": null,
280
+ "description": "Callback event saat pengguna mencoba menutup popover tetapi dicegah karena dismissible={false}.",
281
+ "example": null,
282
+ "param": null
283
+ },
284
+ "children": {
285
+ "name": "children",
286
+ "type": "any",
287
+ "optional": true,
288
+ "default": null,
289
+ "description": "Elemen pemicu (trigger), tombol, atau komponen anak lainnya.",
290
+ "example": null,
291
+ "param": null
292
+ }
293
+ },
294
+ "subInterfaces": {
295
+ "PopoverContentOptions": {
296
+ "side": {
297
+ "name": "side",
298
+ "type": "'top' | 'right' | 'bottom' | 'left'",
299
+ "optional": true,
300
+ "default": "bottom",
301
+ "description": "Sisi penempatan relatif terhadap elemen pemicu (trigger).",
302
+ "example": null,
303
+ "param": null
304
+ },
305
+ "align": {
306
+ "name": "align",
307
+ "type": "'start' | 'center' | 'end'",
308
+ "optional": true,
309
+ "default": "center",
310
+ "description": "Penjajaran di sepanjang sumbu sisi yang dipilih.",
311
+ "example": null,
312
+ "param": null
313
+ },
314
+ "sideOffset": {
315
+ "name": "sideOffset",
316
+ "type": "number",
317
+ "optional": true,
318
+ "default": "8",
319
+ "description": "Jarak offset dalam pixel dari elemen pemicu (trigger).",
320
+ "example": null,
321
+ "param": null
322
+ },
323
+ "alignOffset": {
324
+ "name": "alignOffset",
325
+ "type": "number",
326
+ "optional": true,
327
+ "default": "0",
328
+ "description": "Offset dalam pixel di sepanjang sumbu penjajaran (alignment axis).",
329
+ "example": null,
330
+ "param": null
331
+ },
332
+ "avoidCollisions": {
333
+ "name": "avoidCollisions",
334
+ "type": "boolean",
335
+ "optional": true,
336
+ "default": "true",
337
+ "description": "Mencegah popover terpotong keluar dari batas viewport layar dengan memanfaatkan middleware flip dan shift.",
338
+ "example": null,
339
+ "param": null
340
+ },
341
+ "collisionBoundary": {
342
+ "name": "collisionBoundary",
343
+ "type": "any",
344
+ "optional": true,
345
+ "default": null,
346
+ "description": "Batas kontainer pendeteksi benturan viewport.",
347
+ "example": null,
348
+ "param": null
349
+ },
350
+ "collisionPadding": {
351
+ "name": "collisionPadding",
352
+ "type": "number",
353
+ "optional": true,
354
+ "default": "8",
355
+ "description": "Jarak padding minimal dalam pixel dari tepi layar saat terjadi benturan.",
356
+ "example": null,
357
+ "param": null
358
+ },
359
+ "arrowPadding": {
360
+ "name": "arrowPadding",
361
+ "type": "number",
362
+ "optional": true,
363
+ "default": "8",
364
+ "description": "Jarak padding minimal dalam pixel untuk elemen panah (arrow) dari sudut popover.",
365
+ "example": null,
366
+ "param": null
367
+ },
368
+ "sticky": {
369
+ "name": "sticky",
370
+ "type": "'partial' | 'always'",
371
+ "optional": true,
372
+ "default": null,
373
+ "description": "Perilaku popover saat elemen pemicu tergulung keluar layar ('partial' | 'always').",
374
+ "example": null,
375
+ "param": null
376
+ },
377
+ "hideWhenDetached": {
378
+ "name": "hideWhenDetached",
379
+ "type": "boolean",
380
+ "optional": true,
381
+ "default": "false",
382
+ "description": "Sembunyikan popover ketika pemicu terpisah atau tidak terlihat di viewport.",
383
+ "example": null,
384
+ "param": null
385
+ }
386
+ }
387
+ },
388
+ "supportedFrameworks": [
389
+ "react",
390
+ "vue",
391
+ "svelte"
392
+ ],
393
+ "themes": [
394
+ "tw"
395
+ ]
396
+ }
@@ -0,0 +1 @@
1
+ .ttdk-popover-wrapper{box-sizing:border-box;font-family:var(--ttdk-font-sans);display:inline-block;position:relative}.ttdk-popover-wrapper[data-block=true]{width:100%;display:block}.ttdk-popover-trigger{box-sizing:border-box;cursor:pointer;user-select:none;color:inherit;background:0 0;border:none;outline:none;justify-content:center;align-items:center;margin:0;padding:0;font-family:inherit;transition:opacity .15s,transform .1s;display:inline-flex}.ttdk-popover-trigger[data-disabled=true]{cursor:not-allowed;opacity:.5;pointer-events:none}.ttdk-popover-wrapper[data-block=true] .ttdk-popover-trigger{width:100%;display:flex}.ttdk-popover-overlay{z-index:998;-webkit-backdrop-filter:blur(2px);background-color:#0f172a59;animation:.18s cubic-bezier(.16,1,.3,1) forwards ttdk-popover-overlay-in;position:fixed;inset:0}.dark .ttdk-popover-overlay{background-color:#0009}@keyframes ttdk-popover-overlay-in{0%{opacity:0}to{opacity:1}}.ttdk-popover-content{z-index:999;background:var(--ttdk-ui-bg,var(--ttdk-bg-base-primary,#fff));min-width:200px;max-width:calc(100vw - 32px);color:var(--ttdk-ui-color,var(--ttdk-text-icon-primary,#141313));border:1px solid var(--ttdk-ui-border-color,var(--ttdk-stroke-subtle,#e5e7eb));border-radius:var(--ttdk-ui-radius,var(--ttdk-radius-card-md,12px));box-sizing:border-box;font-family:var(--ttdk-font-sans);will-change:transform, opacity;outline:none;padding:16px;font-size:14px;line-height:20px;animation:.16s cubic-bezier(.16,1,.3,1) forwards ttdk-popover-fade-in;position:absolute;top:0;left:0;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #00000014}.dark .ttdk-popover-content{background:var(--ttdk-ui-bg,var(--ttdk-bg-base-primary,#1e2022));color:var(--ttdk-ui-color,var(--ttdk-text-icon-primary,#f9fafb));border-color:var(--ttdk-ui-border-color,var(--ttdk-stroke-subtle,#2e3235));box-shadow:0 12px 30px -4px #0000008c,0 8px 12px -6px #0006}@keyframes ttdk-popover-fade-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ttdk-popover-arrow{background:inherit;border:1px solid var(--ttdk-ui-border-color,var(--ttdk-stroke-subtle,#e5e7eb));pointer-events:none;box-sizing:border-box;z-index:1000;width:8px;height:8px;position:absolute;transform:rotate(45deg)}.dark .ttdk-popover-arrow{border-color:var(--ttdk-ui-border-color,var(--ttdk-stroke-subtle,#2e3235))}.ttdk-popover-content[data-side=bottom] .ttdk-popover-arrow{border-bottom:none;border-right:none;top:-5px}.ttdk-popover-content[data-side=top] .ttdk-popover-arrow{border-top:none;border-left:none;bottom:-5px}.ttdk-popover-content[data-side=right] .ttdk-popover-arrow{border-top:none;border-right:none;left:-5px}.ttdk-popover-content[data-side=left] .ttdk-popover-arrow{border-bottom:none;border-left:none;right:-5px}.ttdk-popover-header{color:var(--ttdk-text-icon-primary,#141313);margin-bottom:8px;font-size:14px;font-weight:600}.dark .ttdk-popover-header{color:var(--ttdk-text-icon-primary,#f9fafb)}.ttdk-popover-body{color:var(--ttdk-text-icon-secondary,#4b5563);font-size:13px;line-height:18px}.dark .ttdk-popover-body{color:var(--ttdk-text-icon-secondary,#9ca3af)}.ttdk-popover-footer{border-top:1px solid var(--ttdk-stroke-subtle,#e5e7eb);justify-content:flex-end;align-items:center;gap:8px;margin-top:12px;padding-top:10px;display:flex}.dark .ttdk-popover-footer{border-top-color:var(--ttdk-stroke-subtle,#2e3235)}