@ttdk-design-system/library-vue 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 (232) hide show
  1. package/AI_GUIDE.md +6518 -0
  2. package/llms.txt +6518 -0
  3. package/package.json +1096 -4
  4. package/src/core/index.ts +2 -0
  5. package/src/core/tailwind-preset.cjs +62 -0
  6. package/src/core/tailwind-preset.ts +85 -0
  7. package/src/core/theme/tokens.css +663 -0
  8. package/src/core/types.ts +836 -0
  9. package/src/index.ts +17 -0
  10. package/src/tailwind-preset.cjs +62 -0
  11. package/src/tailwind-preset.ts +85 -0
  12. package/src/types.ts +1 -0
  13. package/src/web/accordion/AI_GUIDE.md +149 -0
  14. package/src/web/accordion/accordion.css +1 -0
  15. package/src/web/accordion/accordion.vue +432 -0
  16. package/src/web/accordion/accordion.vue.d.ts +227 -0
  17. package/src/web/accordion/index.ts +3 -0
  18. package/src/web/accordion/manifest.json +351 -0
  19. package/src/web/alert/AI_GUIDE.md +139 -0
  20. package/src/web/alert/alert.css +1 -0
  21. package/src/web/alert/alert.vue +290 -0
  22. package/src/web/alert/alert.vue.d.ts +154 -0
  23. package/src/web/alert/index.ts +3 -0
  24. package/src/web/alert/manifest.json +240 -0
  25. package/src/web/avatar/AI_GUIDE.md +118 -0
  26. package/src/web/avatar/avatar.css +1 -0
  27. package/src/web/avatar/avatar.vue +217 -0
  28. package/src/web/avatar/avatar.vue.d.ts +135 -0
  29. package/src/web/avatar/index.ts +3 -0
  30. package/src/web/avatar/manifest.json +195 -0
  31. package/src/web/badge/AI_GUIDE.md +94 -0
  32. package/src/web/badge/badge.css +1 -0
  33. package/src/web/badge/badge.vue +135 -0
  34. package/src/web/badge/badge.vue.d.ts +108 -0
  35. package/src/web/badge/index.ts +3 -0
  36. package/src/web/badge/manifest.json +141 -0
  37. package/src/web/banner/AI_GUIDE.md +130 -0
  38. package/src/web/banner/banner.css +1 -0
  39. package/src/web/banner/banner.vue +303 -0
  40. package/src/web/banner/banner.vue.d.ts +162 -0
  41. package/src/web/banner/index.ts +3 -0
  42. package/src/web/banner/manifest.json +240 -0
  43. package/src/web/breadcrumb/AI_GUIDE.md +120 -0
  44. package/src/web/breadcrumb/breadcrumb.css +1 -0
  45. package/src/web/breadcrumb/breadcrumb.vue +313 -0
  46. package/src/web/breadcrumb/breadcrumb.vue.d.ts +139 -0
  47. package/src/web/breadcrumb/index.ts +3 -0
  48. package/src/web/breadcrumb/manifest.json +225 -0
  49. package/src/web/button/AI_GUIDE.md +121 -0
  50. package/src/web/button/button.css +1 -0
  51. package/src/web/button/button.vue +283 -0
  52. package/src/web/button/button.vue.d.ts +147 -0
  53. package/src/web/button/index.ts +3 -0
  54. package/src/web/button/manifest.json +177 -0
  55. package/src/web/calendar/AI_GUIDE.md +151 -0
  56. package/src/web/calendar/calendar.css +1 -0
  57. package/src/web/calendar/calendar.vue +1536 -0
  58. package/src/web/calendar/calendar.vue.d.ts +261 -0
  59. package/src/web/calendar/index.ts +3 -0
  60. package/src/web/calendar/manifest.json +470 -0
  61. package/src/web/card/AI_GUIDE.md +133 -0
  62. package/src/web/card/card.css +1 -0
  63. package/src/web/card/card.vue +423 -0
  64. package/src/web/card/card.vue.d.ts +232 -0
  65. package/src/web/card/index.ts +3 -0
  66. package/src/web/card/manifest.json +357 -0
  67. package/src/web/checkbox/AI_GUIDE.md +146 -0
  68. package/src/web/checkbox/checkbox.css +1 -0
  69. package/src/web/checkbox/checkbox.vue +304 -0
  70. package/src/web/checkbox/checkbox.vue.d.ts +189 -0
  71. package/src/web/checkbox/index.ts +3 -0
  72. package/src/web/checkbox/manifest.json +294 -0
  73. package/src/web/chip/AI_GUIDE.md +186 -0
  74. package/src/web/chip/chip.css +1 -0
  75. package/src/web/chip/chip.vue +220 -0
  76. package/src/web/chip/chip.vue.d.ts +140 -0
  77. package/src/web/chip/index.ts +3 -0
  78. package/src/web/chip/manifest.json +186 -0
  79. package/src/web/dropdown/AI_GUIDE.md +167 -0
  80. package/src/web/dropdown/dropdown.css +1 -0
  81. package/src/web/dropdown/dropdown.vue +1257 -0
  82. package/src/web/dropdown/dropdown.vue.d.ts +381 -0
  83. package/src/web/dropdown/index.ts +3 -0
  84. package/src/web/dropdown/manifest.json +576 -0
  85. package/src/web/flex/AI_GUIDE.md +113 -0
  86. package/src/web/flex/flex-item.vue +94 -0
  87. package/src/web/flex/flex-item.vue.d.ts +84 -0
  88. package/src/web/flex/flex.css +1 -0
  89. package/src/web/flex/flex.vue +103 -0
  90. package/src/web/flex/flex.vue.d.ts +92 -0
  91. package/src/web/flex/index.ts +5 -0
  92. package/src/web/flex/manifest.json +162 -0
  93. package/src/web/form/index.ts +7 -0
  94. package/src/web/grid/AI_GUIDE.md +112 -0
  95. package/src/web/grid/grid-item.vue +109 -0
  96. package/src/web/grid/grid-item.vue.d.ts +99 -0
  97. package/src/web/grid/grid.css +1 -0
  98. package/src/web/grid/grid.vue +94 -0
  99. package/src/web/grid/grid.vue.d.ts +84 -0
  100. package/src/web/grid/index.ts +5 -0
  101. package/src/web/grid/manifest.json +153 -0
  102. package/src/web/index.ts +86 -0
  103. package/src/web/input/AI_GUIDE.md +159 -0
  104. package/src/web/input/index.ts +3 -0
  105. package/src/web/input/input.css +1 -0
  106. package/src/web/input/input.vue +521 -0
  107. package/src/web/input/input.vue.d.ts +274 -0
  108. package/src/web/input/manifest.json +465 -0
  109. package/src/web/input-number/AI_GUIDE.md +164 -0
  110. package/src/web/input-number/index.ts +3 -0
  111. package/src/web/input-number/input-number.css +1 -0
  112. package/src/web/input-number/input-number.vue +1153 -0
  113. package/src/web/input-number/input-number.vue.d.ts +343 -0
  114. package/src/web/input-number/manifest.json +575 -0
  115. package/src/web/modal/AI_GUIDE.md +171 -0
  116. package/src/web/modal/index.ts +3 -0
  117. package/src/web/modal/manifest.json +375 -0
  118. package/src/web/modal/modal.css +1 -0
  119. package/src/web/modal/modal.vue +344 -0
  120. package/src/web/modal/modal.vue.d.ts +64 -0
  121. package/src/web/pagination/AI_GUIDE.md +148 -0
  122. package/src/web/pagination/index.ts +21 -0
  123. package/src/web/pagination/manifest.json +432 -0
  124. package/src/web/pagination/pagination-content.vue +42 -0
  125. package/src/web/pagination/pagination-content.vue.d.ts +28 -0
  126. package/src/web/pagination/pagination-ellipsis.vue +55 -0
  127. package/src/web/pagination/pagination-ellipsis.vue.d.ts +28 -0
  128. package/src/web/pagination/pagination-first.vue +161 -0
  129. package/src/web/pagination/pagination-first.vue.d.ts +67 -0
  130. package/src/web/pagination/pagination-item.vue +42 -0
  131. package/src/web/pagination/pagination-item.vue.d.ts +28 -0
  132. package/src/web/pagination/pagination-last.vue +161 -0
  133. package/src/web/pagination/pagination-last.vue.d.ts +67 -0
  134. package/src/web/pagination/pagination-link.vue +118 -0
  135. package/src/web/pagination/pagination-link.vue.d.ts +61 -0
  136. package/src/web/pagination/pagination-next.vue +160 -0
  137. package/src/web/pagination/pagination-next.vue.d.ts +68 -0
  138. package/src/web/pagination/pagination-previous.vue +160 -0
  139. package/src/web/pagination/pagination-previous.vue.d.ts +68 -0
  140. package/src/web/pagination/pagination.css +1 -0
  141. package/src/web/pagination/pagination.vue +730 -0
  142. package/src/web/pagination/pagination.vue.d.ts +247 -0
  143. package/src/web/popover/AI_GUIDE.md +163 -0
  144. package/src/web/popover/index.ts +3 -0
  145. package/src/web/popover/manifest.json +396 -0
  146. package/src/web/popover/popover.css +1 -0
  147. package/src/web/popover/popover.vue +579 -0
  148. package/src/web/popover/popover.vue.d.ts +83 -0
  149. package/src/web/radio/AI_GUIDE.md +155 -0
  150. package/src/web/radio/index.ts +3 -0
  151. package/src/web/radio/manifest.json +294 -0
  152. package/src/web/radio/radio.css +1 -0
  153. package/src/web/radio/radio.vue +288 -0
  154. package/src/web/radio/radio.vue.d.ts +182 -0
  155. package/src/web/selectbox/AI_GUIDE.md +216 -0
  156. package/src/web/selectbox/index.ts +3 -0
  157. package/src/web/selectbox/manifest.json +477 -0
  158. package/src/web/selectbox/selectbox.css +1 -0
  159. package/src/web/selectbox/selectbox.vue +1024 -0
  160. package/src/web/selectbox/selectbox.vue.d.ts +300 -0
  161. package/src/web/sonner/AI_GUIDE.md +98 -0
  162. package/src/web/sonner/index.ts +114 -0
  163. package/src/web/sonner/manifest.json +132 -0
  164. package/src/web/sonner/sonner.css +1 -0
  165. package/src/web/sonner/sonner.vue +180 -0
  166. package/src/web/sonner/sonner.vue.d.ts +113 -0
  167. package/src/web/table/AI_GUIDE.md +145 -0
  168. package/src/web/table/index.ts +34 -0
  169. package/src/web/table/manifest.json +168 -0
  170. package/src/web/table/table-body.vue +42 -0
  171. package/src/web/table/table-body.vue.d.ts +28 -0
  172. package/src/web/table/table-caption.vue +42 -0
  173. package/src/web/table/table-caption.vue.d.ts +28 -0
  174. package/src/web/table/table-cell.vue +71 -0
  175. package/src/web/table/table-cell.vue.d.ts +49 -0
  176. package/src/web/table/table-empty.vue +105 -0
  177. package/src/web/table/table-empty.vue.d.ts +57 -0
  178. package/src/web/table/table-footer.vue +42 -0
  179. package/src/web/table/table-footer.vue.d.ts +28 -0
  180. package/src/web/table/table-head.vue +78 -0
  181. package/src/web/table/table-head.vue.d.ts +50 -0
  182. package/src/web/table/table-header.vue +42 -0
  183. package/src/web/table/table-header.vue.d.ts +28 -0
  184. package/src/web/table/table-row.vue +70 -0
  185. package/src/web/table/table-row.vue.d.ts +44 -0
  186. package/src/web/table/table.css +1 -0
  187. package/src/web/table/table.vue +298 -0
  188. package/src/web/table/table.vue.d.ts +119 -0
  189. package/src/web/tabs/AI_GUIDE.md +150 -0
  190. package/src/web/tabs/index.ts +2 -0
  191. package/src/web/tabs/manifest.json +315 -0
  192. package/src/web/tabs/tabs.css +1 -0
  193. package/src/web/tabs/tabs.vue +164 -0
  194. package/src/web/tabs/tabs.vue.d.ts +60 -0
  195. package/src/web/text/AI_GUIDE.md +129 -0
  196. package/src/web/text/index.ts +2 -0
  197. package/src/web/text/manifest.json +195 -0
  198. package/src/web/text/text.css +1 -0
  199. package/src/web/text/text.vue +195 -0
  200. package/src/web/text/text.vue.d.ts +161 -0
  201. package/src/web/textarea/AI_GUIDE.md +141 -0
  202. package/src/web/textarea/index.ts +3 -0
  203. package/src/web/textarea/manifest.json +438 -0
  204. package/src/web/textarea/textarea.css +1 -0
  205. package/src/web/textarea/textarea.vue +458 -0
  206. package/src/web/textarea/textarea.vue.d.ts +265 -0
  207. package/src/web/tooltip/AI_GUIDE.md +110 -0
  208. package/src/web/tooltip/index.ts +3 -0
  209. package/src/web/tooltip/manifest.json +222 -0
  210. package/src/web/tooltip/tooltip.css +1 -0
  211. package/src/web/tooltip/tooltip.vue +417 -0
  212. package/src/web/tooltip/tooltip.vue.d.ts +150 -0
  213. package/src/webview/bottomsheet/AI_GUIDE.md +141 -0
  214. package/src/webview/bottomsheet/bottomsheet.css +1 -0
  215. package/src/webview/bottomsheet/bottomsheet.vue +441 -0
  216. package/src/webview/bottomsheet/bottomsheet.vue.d.ts +178 -0
  217. package/src/webview/bottomsheet/index.ts +4 -0
  218. package/src/webview/bottomsheet/manifest.json +377 -0
  219. package/src/webview/button/AI_GUIDE.md +79 -0
  220. package/src/webview/button/button-ios.css +1 -0
  221. package/src/webview/button/button-ios.vue +138 -0
  222. package/src/webview/button/button-ios.vue.d.ts +102 -0
  223. package/src/webview/button/button-material.css +1 -0
  224. package/src/webview/button/button-material.vue +138 -0
  225. package/src/webview/button/button-material.vue.d.ts +102 -0
  226. package/src/webview/button/index.ts +7 -0
  227. package/src/webview/button/manifest.json +148 -0
  228. package/src/webview/index.ts +7 -0
  229. package/tailwind-preset.cjs +62 -0
  230. package/tailwind-preset.js +62 -0
  231. package/ttdk-manifest.json +10188 -0
  232. package/README.md +0 -3
@@ -0,0 +1,432 @@
1
+ {
2
+ "name": "@ttdk-design-system/pagination",
3
+ "component": "Pagination",
4
+ "folder": "pagination",
5
+ "description": "Komponen Pagination navigasi halaman dengan dukungan Compound API (ala Shadcn UI) dan Props-driven mode.",
6
+ "stylesheets": [
7
+ {
8
+ "theme": "common",
9
+ "file": "pagination.css",
10
+ "importPath": "web/pagination/pagination.css"
11
+ }
12
+ ],
13
+ "props": {
14
+ "page": {
15
+ "name": "page",
16
+ "type": "number",
17
+ "optional": true,
18
+ "default": "1",
19
+ "description": "Nomor halaman saat ini (1-indexed).",
20
+ "example": null,
21
+ "param": null
22
+ },
23
+ "maxPages": {
24
+ "name": "maxPages",
25
+ "type": "number",
26
+ "optional": true,
27
+ "default": "1",
28
+ "description": "Jumlah total halaman maksimum (alias untuk totalPages).",
29
+ "example": null,
30
+ "param": null
31
+ },
32
+ "totalPages": {
33
+ "name": "totalPages",
34
+ "type": "number",
35
+ "optional": true,
36
+ "default": "1",
37
+ "description": "Jumlah total halaman (alias maxPages).",
38
+ "example": null,
39
+ "param": null
40
+ },
41
+ "limit": {
42
+ "name": "limit",
43
+ "type": "number",
44
+ "optional": true,
45
+ "default": "10",
46
+ "description": "Jumlah baris/item data per halaman (page size).",
47
+ "example": null,
48
+ "param": null
49
+ },
50
+ "onLimitChange": {
51
+ "name": "onLimitChange",
52
+ "type": "(limit: number) => void",
53
+ "optional": true,
54
+ "default": null,
55
+ "description": "Callback saat jumlah baris per halaman diubah via select box.",
56
+ "example": null,
57
+ "param": null
58
+ },
59
+ "limitOptions": {
60
+ "name": "limitOptions",
61
+ "type": "number[]",
62
+ "optional": true,
63
+ "default": "[10, 20, 50, 100]",
64
+ "description": "Pilihan angka baris per halaman pada select box.",
65
+ "example": null,
66
+ "param": null
67
+ },
68
+ "canPrevPage": {
69
+ "name": "canPrevPage",
70
+ "type": "boolean",
71
+ "optional": true,
72
+ "default": "false",
73
+ "description": "Menentukan apakah navigasi ke halaman sebelumnya diizinkan (false = tombol Previous dinonaktifkan).",
74
+ "example": null,
75
+ "param": null
76
+ },
77
+ "canNextPage": {
78
+ "name": "canNextPage",
79
+ "type": "boolean",
80
+ "optional": true,
81
+ "default": "false",
82
+ "description": "Menentukan apakah navigasi ke halaman berikutnya diizinkan (false = tombol Next dinonaktifkan).",
83
+ "example": null,
84
+ "param": null
85
+ },
86
+ "onFirstPage": {
87
+ "name": "onFirstPage",
88
+ "type": "() => void",
89
+ "optional": true,
90
+ "default": null,
91
+ "description": "Callback saat tombol First Page (halaman pertama) diklik.",
92
+ "example": null,
93
+ "param": null
94
+ },
95
+ "onPrevPage": {
96
+ "name": "onPrevPage",
97
+ "type": "() => void",
98
+ "optional": true,
99
+ "default": null,
100
+ "description": "Callback saat tombol Previous Page (halaman sebelumnya) diklik.",
101
+ "example": null,
102
+ "param": null
103
+ },
104
+ "onNextPage": {
105
+ "name": "onNextPage",
106
+ "type": "() => void",
107
+ "optional": true,
108
+ "default": null,
109
+ "description": "Callback saat tombol Next Page (halaman selanjutnya) diklik.",
110
+ "example": null,
111
+ "param": null
112
+ },
113
+ "onLastPage": {
114
+ "name": "onLastPage",
115
+ "type": "() => void",
116
+ "optional": true,
117
+ "default": null,
118
+ "description": "Callback saat tombol Last Page (halaman terakhir) diklik.",
119
+ "example": null,
120
+ "param": null
121
+ },
122
+ "onPageChange": {
123
+ "name": "onPageChange",
124
+ "type": "(page: number) => void",
125
+ "optional": true,
126
+ "default": null,
127
+ "description": "Callback saat nomor halaman tertentu diklik.",
128
+ "example": null,
129
+ "param": null
130
+ },
131
+ "siblingCount": {
132
+ "name": "siblingCount",
133
+ "type": "number",
134
+ "optional": true,
135
+ "default": "1",
136
+ "description": "Jumlah tetangga nomor halaman di samping kiri dan kanan halaman aktif.",
137
+ "example": null,
138
+ "param": null
139
+ },
140
+ "showEdges": {
141
+ "name": "showEdges",
142
+ "type": "boolean",
143
+ "optional": true,
144
+ "default": "false",
145
+ "description": "Menampilkan tombol First (<<) dan Last (>>).",
146
+ "example": null,
147
+ "param": null
148
+ },
149
+ "showPageNumbers": {
150
+ "name": "showPageNumbers",
151
+ "type": "boolean",
152
+ "optional": true,
153
+ "default": "true",
154
+ "description": "Menampilkan nomor halaman terpaginasi (1, 2, 3...).",
155
+ "example": null,
156
+ "param": null
157
+ },
158
+ "size": {
159
+ "name": "size",
160
+ "type": "'sm' | 'md' | 'lg'",
161
+ "optional": true,
162
+ "default": "md",
163
+ "description": "Skala ukuran pagination: - `'sm'`: 28px - `'md'`: 36px (standar) - `'lg'`: 44px",
164
+ "example": null,
165
+ "param": null
166
+ },
167
+ "style": {
168
+ "name": "style",
169
+ "type": "any",
170
+ "optional": true,
171
+ "default": null,
172
+ "description": "Inline CSS style object native.",
173
+ "example": null,
174
+ "param": null
175
+ },
176
+ "ui": {
177
+ "name": "ui",
178
+ "type": "UiProps",
179
+ "optional": true,
180
+ "default": null,
181
+ "description": "Kustomisasi visual granular root kontainer pagination (UiProps).",
182
+ "example": null,
183
+ "param": null
184
+ },
185
+ "contentStyle": {
186
+ "name": "contentStyle",
187
+ "type": "UiProps",
188
+ "optional": true,
189
+ "default": null,
190
+ "description": "Style kustom untuk kontainer daftar pagination content (ul.ttdk-pagination-content).",
191
+ "example": null,
192
+ "param": null
193
+ },
194
+ "contentClass": {
195
+ "name": "contentClass",
196
+ "type": "string",
197
+ "optional": true,
198
+ "default": null,
199
+ "description": "Class CSS kustom untuk kontainer daftar pagination content.",
200
+ "example": null,
201
+ "param": null
202
+ },
203
+ "linkStyle": {
204
+ "name": "linkStyle",
205
+ "type": "UiProps",
206
+ "optional": true,
207
+ "default": null,
208
+ "description": "Style kustom untuk tombol link nomor halaman / navigasi.",
209
+ "example": null,
210
+ "param": null
211
+ },
212
+ "linkClass": {
213
+ "name": "linkClass",
214
+ "type": "string",
215
+ "optional": true,
216
+ "default": null,
217
+ "description": "Class CSS kustom untuk tombol link nomor halaman / navigasi.",
218
+ "example": null,
219
+ "param": null
220
+ },
221
+ "activeLinkStyle": {
222
+ "name": "activeLinkStyle",
223
+ "type": "UiProps",
224
+ "optional": true,
225
+ "default": null,
226
+ "description": "Style kustom untuk tombol nomor halaman saat aktif.",
227
+ "example": null,
228
+ "param": null
229
+ },
230
+ "activeLinkClass": {
231
+ "name": "activeLinkClass",
232
+ "type": "string",
233
+ "optional": true,
234
+ "default": null,
235
+ "description": "Class CSS kustom untuk tombol nomor halaman saat aktif.",
236
+ "example": null,
237
+ "param": null
238
+ },
239
+ "limitStyle": {
240
+ "name": "limitStyle",
241
+ "type": "UiProps",
242
+ "optional": true,
243
+ "default": null,
244
+ "description": "Style kustom untuk kontainer baris per halaman (limit).",
245
+ "example": null,
246
+ "param": null
247
+ },
248
+ "limitClass": {
249
+ "name": "limitClass",
250
+ "type": "string",
251
+ "optional": true,
252
+ "default": null,
253
+ "description": "Class CSS kustom untuk kontainer baris per halaman (limit).",
254
+ "example": null,
255
+ "param": null
256
+ },
257
+ "limitSelectStyle": {
258
+ "name": "limitSelectStyle",
259
+ "type": "UiProps",
260
+ "optional": true,
261
+ "default": null,
262
+ "description": "Style kustom untuk elemen Selectbox baris per halaman (limit).",
263
+ "example": null,
264
+ "param": null
265
+ },
266
+ "limitSlot": {
267
+ "name": "limitSlot",
268
+ "type": "any",
269
+ "optional": true,
270
+ "default": null,
271
+ "description": "Slot kustom untuk menggantikan elemen limit selector bawaan.",
272
+ "example": null,
273
+ "param": null
274
+ },
275
+ "showLimit": {
276
+ "name": "showLimit",
277
+ "type": "boolean",
278
+ "optional": true,
279
+ "default": null,
280
+ "description": "Menentukan apakah kontrol baris per halaman (limit selectbox) ditampilkan. Jika tidak disetel, otomatis mengikuti keberadaan callback onLimitChange.",
281
+ "example": null,
282
+ "param": null
283
+ },
284
+ "showLimitLabel": {
285
+ "name": "showLimitLabel",
286
+ "type": "boolean",
287
+ "optional": true,
288
+ "default": "true",
289
+ "description": "Menentukan apakah teks label 'Baris per halaman:' ditampilkan di samping selectbox limit.",
290
+ "example": null,
291
+ "param": null
292
+ },
293
+ "limitLabel": {
294
+ "name": "limitLabel",
295
+ "type": "string",
296
+ "optional": true,
297
+ "default": "Baris per halaman:",
298
+ "description": "Teks label untuk opsi baris per halaman.",
299
+ "example": null,
300
+ "param": null
301
+ },
302
+ "firstIcon": {
303
+ "name": "firstIcon",
304
+ "type": "any",
305
+ "optional": true,
306
+ "default": null,
307
+ "description": "Ikon kustom untuk tombol halaman pertama (first page, menggantikan <<).",
308
+ "example": null,
309
+ "param": null
310
+ },
311
+ "prevIcon": {
312
+ "name": "prevIcon",
313
+ "type": "any",
314
+ "optional": true,
315
+ "default": null,
316
+ "description": "Ikon kustom untuk tombol halaman sebelumnya (previous page, menggantikan <).",
317
+ "example": null,
318
+ "param": null
319
+ },
320
+ "nextIcon": {
321
+ "name": "nextIcon",
322
+ "type": "any",
323
+ "optional": true,
324
+ "default": null,
325
+ "description": "Ikon kustom untuk tombol halaman selanjutnya (next page, menggantikan >).",
326
+ "example": null,
327
+ "param": null
328
+ },
329
+ "lastIcon": {
330
+ "name": "lastIcon",
331
+ "type": "any",
332
+ "optional": true,
333
+ "default": null,
334
+ "description": "Ikon kustom untuk tombol halaman terakhir (last page, menggantikan >>).",
335
+ "example": null,
336
+ "param": null
337
+ },
338
+ "ellipsisIcon": {
339
+ "name": "ellipsisIcon",
340
+ "type": "any",
341
+ "optional": true,
342
+ "default": null,
343
+ "description": "Ikon kustom untuk separator elipsis (menggantikan ...).",
344
+ "example": null,
345
+ "param": null
346
+ },
347
+ "prevText": {
348
+ "name": "prevText",
349
+ "type": "string",
350
+ "optional": true,
351
+ "default": "Previous",
352
+ "description": "Label teks tombol Previous.",
353
+ "example": null,
354
+ "param": null
355
+ },
356
+ "nextText": {
357
+ "name": "nextText",
358
+ "type": "string",
359
+ "optional": true,
360
+ "default": "Next",
361
+ "description": "Label teks tombol Next.",
362
+ "example": null,
363
+ "param": null
364
+ },
365
+ "iconOnly": {
366
+ "name": "iconOnly",
367
+ "type": "boolean",
368
+ "optional": true,
369
+ "default": "false",
370
+ "description": "Mode hanya menampilkan ikon pada tombol Previous dan Next tanpa teks label.",
371
+ "example": null,
372
+ "param": null
373
+ },
374
+ "className": {
375
+ "name": "className",
376
+ "type": "string",
377
+ "optional": true,
378
+ "default": null,
379
+ "description": "Class CSS kustom.",
380
+ "example": null,
381
+ "param": null
382
+ },
383
+ "children": {
384
+ "name": "children",
385
+ "type": "any",
386
+ "optional": true,
387
+ "default": null,
388
+ "description": "Konten kustom atau subkomponen compound (PaginationContent, PaginationItem, dll).",
389
+ "example": null,
390
+ "param": null
391
+ }
392
+ },
393
+ "subInterfaces": {
394
+ "PaginationPageItem": {
395
+ "type": {
396
+ "name": "type",
397
+ "type": "'page' | 'ellipsis'",
398
+ "optional": false,
399
+ "default": null,
400
+ "description": "",
401
+ "example": null,
402
+ "param": null
403
+ },
404
+ "value": {
405
+ "name": "value",
406
+ "type": "number | string",
407
+ "optional": false,
408
+ "default": null,
409
+ "description": "",
410
+ "example": null,
411
+ "param": null
412
+ },
413
+ "key": {
414
+ "name": "key",
415
+ "type": "string",
416
+ "optional": false,
417
+ "default": null,
418
+ "description": "",
419
+ "example": null,
420
+ "param": null
421
+ }
422
+ }
423
+ },
424
+ "supportedFrameworks": [
425
+ "react",
426
+ "vue",
427
+ "svelte"
428
+ ],
429
+ "themes": [
430
+ "tw"
431
+ ]
432
+ }
@@ -0,0 +1,42 @@
1
+ <template>
2
+ <ul
3
+ :class="`ttdk-pagination-content ${className || ''}`.trim()"
4
+ :style="{
5
+ ...buildUiVars(ui),
6
+ ...(typeof style === 'object' ? style : {}),
7
+ }"
8
+ >
9
+ <slot />
10
+ </ul>
11
+ </template>
12
+
13
+ <script setup lang="ts">
14
+ import { buildUiVars, UiProps } from "../../core/types";
15
+
16
+ export interface PaginationContentProps {
17
+ /**
18
+ * Inline CSS style kustom.
19
+ */
20
+ style?: any;
21
+ /**
22
+ * Kustomisasi visual granular ul.ttdk-pagination-content (UiProps).
23
+ */
24
+ ui?: UiProps;
25
+
26
+ /**
27
+ * Class CSS kustom.
28
+ */
29
+ className?: string;
30
+
31
+ /**
32
+ * Konten pagination content (kumpulan PaginationItem).
33
+ */
34
+ children?: any;
35
+ }
36
+
37
+ /**
38
+ * Komponen kontainer daftar halaman `<ul>` (Compound PaginationContent ala Shadcn UI).
39
+ */
40
+
41
+ const props = defineProps<PaginationContentProps>();
42
+ </script>
@@ -0,0 +1,28 @@
1
+ /* eslint-disable */
2
+ // Auto-generated by TTDK Design System Vue Type Generator
3
+ import type { DefineComponent } from "vue";
4
+ import { buildUiVars, UiProps } from "../../core/types";
5
+
6
+ export interface PaginationContentProps {
7
+ /**
8
+ * Inline CSS style kustom.
9
+ */
10
+ style?: any;
11
+ /**
12
+ * Kustomisasi visual granular ul.ttdk-pagination-content (UiProps).
13
+ */
14
+ ui?: UiProps;
15
+
16
+ /**
17
+ * Class CSS kustom.
18
+ */
19
+ className?: string;
20
+
21
+ /**
22
+ * Konten pagination content (kumpulan PaginationItem).
23
+ */
24
+ children?: any;
25
+ }
26
+
27
+ declare const component: DefineComponent<PaginationContentProps>;
28
+ export default component;
@@ -0,0 +1,55 @@
1
+ <template>
2
+ <span
3
+ aria-hidden="true"
4
+ :class="`ttdk-pagination-ellipsis ${className || ''}`.trim()"
5
+ :style="{
6
+ ...buildUiVars(ui),
7
+ ...(typeof style === 'object' ? style : {}),
8
+ }"
9
+ >
10
+ <template v-if="icon">
11
+ {{ icon }}
12
+ </template>
13
+
14
+ <template v-if="!icon">
15
+ <svg class="ttdk-pagination-icon" viewBox="0 0 24 24" fill="none">
16
+ <circle cx="12" cy="12" r="1"></circle>
17
+ <circle cx="19" cy="12" r="1"></circle>
18
+ <circle cx="5" cy="12" r="1"></circle>
19
+ </svg>
20
+ </template>
21
+
22
+ <span class="ttdk-sr-only">More pages</span></span
23
+ >
24
+ </template>
25
+
26
+ <script setup lang="ts">
27
+ import { buildUiVars, UiProps } from "../../core/types";
28
+
29
+ export interface PaginationEllipsisProps {
30
+ /**
31
+ * Inline CSS style kustom.
32
+ */
33
+ style?: any;
34
+ /**
35
+ * Kustomisasi visual granular elipsis (UiProps).
36
+ */
37
+ ui?: UiProps;
38
+
39
+ /**
40
+ * Ikon kustom untuk pemisah elipsis (menggantikan ...).
41
+ */
42
+ icon?: any;
43
+
44
+ /**
45
+ * Class CSS kustom.
46
+ */
47
+ className?: string;
48
+ }
49
+
50
+ /**
51
+ * Komponen pemisah elipsis `...` (Compound PaginationEllipsis ala Shadcn UI).
52
+ */
53
+
54
+ const props = defineProps<PaginationEllipsisProps>();
55
+ </script>
@@ -0,0 +1,28 @@
1
+ /* eslint-disable */
2
+ // Auto-generated by TTDK Design System Vue Type Generator
3
+ import type { DefineComponent } from "vue";
4
+ import { buildUiVars, UiProps } from "../../core/types";
5
+
6
+ export interface PaginationEllipsisProps {
7
+ /**
8
+ * Inline CSS style kustom.
9
+ */
10
+ style?: any;
11
+ /**
12
+ * Kustomisasi visual granular elipsis (UiProps).
13
+ */
14
+ ui?: UiProps;
15
+
16
+ /**
17
+ * Ikon kustom untuk pemisah elipsis (menggantikan ...).
18
+ */
19
+ icon?: any;
20
+
21
+ /**
22
+ * Class CSS kustom.
23
+ */
24
+ className?: string;
25
+ }
26
+
27
+ declare const component: DefineComponent<PaginationEllipsisProps>;
28
+ export default component;