@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,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 TableBodyProps {
7
+ /**
8
+ * Inline CSS style kustom.
9
+ */
10
+ style?: any;
11
+ /**
12
+ * Kustomisasi visual granular tbody (UiProps).
13
+ */
14
+ ui?: UiProps;
15
+
16
+ /**
17
+ * Class CSS kustom.
18
+ */
19
+ className?: string;
20
+
21
+ /**
22
+ * Konten baris data (TableRow).
23
+ */
24
+ children?: any;
25
+ }
26
+
27
+ declare const component: DefineComponent<TableBodyProps>;
28
+ export default component;
@@ -0,0 +1,42 @@
1
+ <template>
2
+ <caption
3
+ :class="`ttdk-table-caption ${className || ''}`.trim()"
4
+ :style="{
5
+ ...buildUiVars(ui),
6
+ ...(typeof style === 'object' ? style : {}),
7
+ }"
8
+ >
9
+ <slot />
10
+ </caption>
11
+ </template>
12
+
13
+ <script setup lang="ts">
14
+ import { buildUiVars, UiProps } from "../../core/types";
15
+
16
+ export interface TableCaptionProps {
17
+ /**
18
+ * Inline CSS style kustom.
19
+ */
20
+ style?: any;
21
+ /**
22
+ * Kustomisasi visual granular caption (UiProps).
23
+ */
24
+ ui?: UiProps;
25
+
26
+ /**
27
+ * Class CSS kustom.
28
+ */
29
+ className?: string;
30
+
31
+ /**
32
+ * Konten caption tabel.
33
+ */
34
+ children?: any;
35
+ }
36
+
37
+ /**
38
+ * Komponen caption tabel `<caption>` (Compound TableCaption).
39
+ */
40
+
41
+ const props = defineProps<TableCaptionProps>();
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 TableCaptionProps {
7
+ /**
8
+ * Inline CSS style kustom.
9
+ */
10
+ style?: any;
11
+ /**
12
+ * Kustomisasi visual granular caption (UiProps).
13
+ */
14
+ ui?: UiProps;
15
+
16
+ /**
17
+ * Class CSS kustom.
18
+ */
19
+ className?: string;
20
+
21
+ /**
22
+ * Konten caption tabel.
23
+ */
24
+ children?: any;
25
+ }
26
+
27
+ declare const component: DefineComponent<TableCaptionProps>;
28
+ export default component;
@@ -0,0 +1,71 @@
1
+ <template>
2
+ <td
3
+ :class="`ttdk-table-cell ${className || ''}`.trim()"
4
+ :colSpan="colSpan"
5
+ :rowSpan="rowSpan"
6
+ :style="{
7
+ textAlign: align || 'left',
8
+ ...(width
9
+ ? {
10
+ width: width,
11
+ }
12
+ : {}),
13
+ ...buildUiVars(ui),
14
+ ...(typeof style === 'object' ? style : {}),
15
+ }"
16
+ >
17
+ <slot />
18
+ </td>
19
+ </template>
20
+
21
+ <script setup lang="ts">
22
+ import { buildUiVars, UiProps } from "../../core/types";
23
+
24
+ export interface TableCellProps {
25
+ /**
26
+ * Inline CSS style kustom.
27
+ */
28
+ style?: any;
29
+ /**
30
+ * Penyelarasan teks sel ('left' | 'center' | 'right').
31
+ * @default 'left'
32
+ */
33
+ align?: "left" | "center" | "right";
34
+
35
+ /**
36
+ * Lebar sel kustom.
37
+ */
38
+ width?: string;
39
+
40
+ /**
41
+ * Jumlah span kolom (colspan).
42
+ */
43
+ colSpan?: number;
44
+
45
+ /**
46
+ * Jumlah span baris (rowspan).
47
+ */
48
+ rowSpan?: number;
49
+
50
+ /**
51
+ * Kustomisasi visual granular td (UiProps).
52
+ */
53
+ ui?: UiProps;
54
+
55
+ /**
56
+ * Class CSS kustom.
57
+ */
58
+ className?: string;
59
+
60
+ /**
61
+ * Konten di dalam sel tabel.
62
+ */
63
+ children?: any;
64
+ }
65
+
66
+ /**
67
+ * Komponen sel data tabel `<td>` (Compound TableCell).
68
+ */
69
+
70
+ const props = defineProps<TableCellProps>();
71
+ </script>
@@ -0,0 +1,49 @@
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 TableCellProps {
7
+ /**
8
+ * Inline CSS style kustom.
9
+ */
10
+ style?: any;
11
+ /**
12
+ * Penyelarasan teks sel ('left' | 'center' | 'right').
13
+ * @default 'left'
14
+ */
15
+ align?: "left" | "center" | "right";
16
+
17
+ /**
18
+ * Lebar sel kustom.
19
+ */
20
+ width?: string;
21
+
22
+ /**
23
+ * Jumlah span kolom (colspan).
24
+ */
25
+ colSpan?: number;
26
+
27
+ /**
28
+ * Jumlah span baris (rowspan).
29
+ */
30
+ rowSpan?: number;
31
+
32
+ /**
33
+ * Kustomisasi visual granular td (UiProps).
34
+ */
35
+ ui?: UiProps;
36
+
37
+ /**
38
+ * Class CSS kustom.
39
+ */
40
+ className?: string;
41
+
42
+ /**
43
+ * Konten di dalam sel tabel.
44
+ */
45
+ children?: any;
46
+ }
47
+
48
+ declare const component: DefineComponent<TableCellProps>;
49
+ export default component;
@@ -0,0 +1,105 @@
1
+ <template>
2
+ <tr
3
+ :class="`ttdk-table-row ttdk-table-empty-row ${className || ''}`.trim()"
4
+ :style="{
5
+ ...buildUiVars(ui),
6
+ ...(typeof style === 'object' ? style : {}),
7
+ }"
8
+ >
9
+ <td class="ttdk-table-cell" :colSpan="colSpan || 10">
10
+ <div class="ttdk-table-empty-wrapper">
11
+ <template v-if="title || description">
12
+ <p class="ttdk-table-empty-title">
13
+ {{ title || "Tidak ada dataset yang cocok" }}
14
+ </p>
15
+
16
+ <template v-if="description">
17
+ <p class="ttdk-table-empty-desc">{{ description }}</p>
18
+ </template>
19
+
20
+ <template v-if="actionLabel">
21
+ <button
22
+ type="button"
23
+ class="ttdk-table-empty-action"
24
+ @click="
25
+ async (event) => {
26
+ if (onAction) {
27
+ onAction();
28
+ }
29
+ }
30
+ "
31
+ >
32
+ {{ actionLabel }}
33
+ </button>
34
+ </template>
35
+
36
+ <slot />
37
+ </template>
38
+
39
+ <template v-else>
40
+ <slot />
41
+ </template>
42
+ </div>
43
+ </td>
44
+ </tr>
45
+ </template>
46
+
47
+ <script setup lang="ts">
48
+ import { buildUiVars, UiProps } from "../../core/types";
49
+
50
+ export interface TableEmptyProps {
51
+ /**
52
+ * Inline CSS style kustom.
53
+ */
54
+ style?: any;
55
+ /**
56
+ * Jumlah span kolom (colspan).
57
+ * @default 10
58
+ */
59
+ colSpan?: number;
60
+
61
+ /**
62
+ * Judul pesan data kosong.
63
+ * @default 'Tidak ada dataset yang cocok'
64
+ */
65
+ title?: string;
66
+
67
+ /**
68
+ * Deskripsi penjelasan data kosong.
69
+ * @default 'Atur ulang filter atau ubah kata kunci pencarian.'
70
+ */
71
+ description?: string;
72
+
73
+ /**
74
+ * Teks tombol aksi reset / refresh.
75
+ * @default 'Atur ulang'
76
+ */
77
+ actionLabel?: string;
78
+
79
+ /**
80
+ * Callback ketika tombol aksi diklik.
81
+ */
82
+ onAction?: () => void;
83
+
84
+ /**
85
+ * Kustomisasi visual granular wadah tr empty (UiProps).
86
+ */
87
+ ui?: UiProps;
88
+
89
+ /**
90
+ * Class CSS kustom.
91
+ */
92
+ className?: string;
93
+
94
+ /**
95
+ * Konten kustom di dalam wadah empty state.
96
+ */
97
+ children?: any;
98
+ }
99
+
100
+ /**
101
+ * Komponen status data kosong tabel (Compound TableEmpty).
102
+ */
103
+
104
+ const props = defineProps<TableEmptyProps>();
105
+ </script>
@@ -0,0 +1,57 @@
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 TableEmptyProps {
7
+ /**
8
+ * Inline CSS style kustom.
9
+ */
10
+ style?: any;
11
+ /**
12
+ * Jumlah span kolom (colspan).
13
+ * @default 10
14
+ */
15
+ colSpan?: number;
16
+
17
+ /**
18
+ * Judul pesan data kosong.
19
+ * @default 'Tidak ada dataset yang cocok'
20
+ */
21
+ title?: string;
22
+
23
+ /**
24
+ * Deskripsi penjelasan data kosong.
25
+ * @default 'Atur ulang filter atau ubah kata kunci pencarian.'
26
+ */
27
+ description?: string;
28
+
29
+ /**
30
+ * Teks tombol aksi reset / refresh.
31
+ * @default 'Atur ulang'
32
+ */
33
+ actionLabel?: string;
34
+
35
+ /**
36
+ * Callback ketika tombol aksi diklik.
37
+ */
38
+ onAction?: () => void;
39
+
40
+ /**
41
+ * Kustomisasi visual granular wadah tr empty (UiProps).
42
+ */
43
+ ui?: UiProps;
44
+
45
+ /**
46
+ * Class CSS kustom.
47
+ */
48
+ className?: string;
49
+
50
+ /**
51
+ * Konten kustom di dalam wadah empty state.
52
+ */
53
+ children?: any;
54
+ }
55
+
56
+ declare const component: DefineComponent<TableEmptyProps>;
57
+ export default component;
@@ -0,0 +1,42 @@
1
+ <template>
2
+ <tfoot
3
+ :class="`ttdk-table-footer ${className || ''}`.trim()"
4
+ :style="{
5
+ ...buildUiVars(ui),
6
+ ...(typeof style === 'object' ? style : {}),
7
+ }"
8
+ >
9
+ <slot />
10
+ </tfoot>
11
+ </template>
12
+
13
+ <script setup lang="ts">
14
+ import { buildUiVars, UiProps } from "../../core/types";
15
+
16
+ export interface TableFooterProps {
17
+ /**
18
+ * Inline CSS style kustom.
19
+ */
20
+ style?: any;
21
+ /**
22
+ * Kustomisasi visual granular tfoot (UiProps).
23
+ */
24
+ ui?: UiProps;
25
+
26
+ /**
27
+ * Class CSS kustom.
28
+ */
29
+ className?: string;
30
+
31
+ /**
32
+ * Konten baris footer (TableRow).
33
+ */
34
+ children?: any;
35
+ }
36
+
37
+ /**
38
+ * Komponen footer tabel `<tfoot>` (Compound TableFooter).
39
+ */
40
+
41
+ const props = defineProps<TableFooterProps>();
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 TableFooterProps {
7
+ /**
8
+ * Inline CSS style kustom.
9
+ */
10
+ style?: any;
11
+ /**
12
+ * Kustomisasi visual granular tfoot (UiProps).
13
+ */
14
+ ui?: UiProps;
15
+
16
+ /**
17
+ * Class CSS kustom.
18
+ */
19
+ className?: string;
20
+
21
+ /**
22
+ * Konten baris footer (TableRow).
23
+ */
24
+ children?: any;
25
+ }
26
+
27
+ declare const component: DefineComponent<TableFooterProps>;
28
+ export default component;
@@ -0,0 +1,78 @@
1
+ <template>
2
+ <th
3
+ :class="`ttdk-table-head ${className || ''}`.trim()"
4
+ :data-sortable="sortable ? 'true' : 'false'"
5
+ :style="{
6
+ textAlign: align || 'left',
7
+ ...(width
8
+ ? {
9
+ width: width,
10
+ }
11
+ : {}),
12
+ ...buildUiVars(ui),
13
+ ...(typeof style === 'object' ? style : {}),
14
+ }"
15
+ @click="
16
+ async (e) => {
17
+ if (onClick) {
18
+ onClick(e);
19
+ }
20
+ }
21
+ "
22
+ >
23
+ <slot />
24
+ </th>
25
+ </template>
26
+
27
+ <script setup lang="ts">
28
+ import { buildUiVars, UiProps } from "../../core/types";
29
+
30
+ export interface TableHeadProps {
31
+ /**
32
+ * Inline CSS style kustom.
33
+ */
34
+ style?: any;
35
+ /**
36
+ * Penyelarasan teks header ('left' | 'center' | 'right').
37
+ * @default 'left'
38
+ */
39
+ align?: "left" | "center" | "right";
40
+
41
+ /**
42
+ * Lebar kolom (misal: '120px', '25%').
43
+ */
44
+ width?: string;
45
+
46
+ /**
47
+ * Menandakan kolom dapat disortir secara interaktif.
48
+ * @default false
49
+ */
50
+ sortable?: boolean;
51
+
52
+ /**
53
+ * Kustomisasi visual granular th (UiProps).
54
+ */
55
+ ui?: UiProps;
56
+
57
+ /**
58
+ * Class CSS kustom.
59
+ */
60
+ className?: string;
61
+
62
+ /**
63
+ * Fungsi callback saat header kolom diklik.
64
+ */
65
+ onClick?: (event: any) => void;
66
+
67
+ /**
68
+ * Konten teks atau komponen di dalam header kolom.
69
+ */
70
+ children?: any;
71
+ }
72
+
73
+ /**
74
+ * Komponen sel header tabel `<th>` (Compound TableHead).
75
+ */
76
+
77
+ const props = defineProps<TableHeadProps>();
78
+ </script>
@@ -0,0 +1,50 @@
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 TableHeadProps {
7
+ /**
8
+ * Inline CSS style kustom.
9
+ */
10
+ style?: any;
11
+ /**
12
+ * Penyelarasan teks header ('left' | 'center' | 'right').
13
+ * @default 'left'
14
+ */
15
+ align?: "left" | "center" | "right";
16
+
17
+ /**
18
+ * Lebar kolom (misal: '120px', '25%').
19
+ */
20
+ width?: string;
21
+
22
+ /**
23
+ * Menandakan kolom dapat disortir secara interaktif.
24
+ * @default false
25
+ */
26
+ sortable?: boolean;
27
+
28
+ /**
29
+ * Kustomisasi visual granular th (UiProps).
30
+ */
31
+ ui?: UiProps;
32
+
33
+ /**
34
+ * Class CSS kustom.
35
+ */
36
+ className?: string;
37
+
38
+ /**
39
+ * Fungsi callback saat header kolom diklik.
40
+ */
41
+ onClick?: (event: any) => void;
42
+
43
+ /**
44
+ * Konten teks atau komponen di dalam header kolom.
45
+ */
46
+ children?: any;
47
+ }
48
+
49
+ declare const component: DefineComponent<TableHeadProps>;
50
+ export default component;
@@ -0,0 +1,42 @@
1
+ <template>
2
+ <thead
3
+ :class="`ttdk-table-header ${className || ''}`.trim()"
4
+ :style="{
5
+ ...buildUiVars(ui),
6
+ ...(typeof style === 'object' ? style : {}),
7
+ }"
8
+ >
9
+ <slot />
10
+ </thead>
11
+ </template>
12
+
13
+ <script setup lang="ts">
14
+ import { buildUiVars, UiProps } from "../../core/types";
15
+
16
+ export interface TableHeaderProps {
17
+ /**
18
+ * Inline CSS style kustom.
19
+ */
20
+ style?: any;
21
+ /**
22
+ * Kustomisasi visual granular thead (UiProps).
23
+ */
24
+ ui?: UiProps;
25
+
26
+ /**
27
+ * Class CSS kustom.
28
+ */
29
+ className?: string;
30
+
31
+ /**
32
+ * Konten baris header (TableRow).
33
+ */
34
+ children?: any;
35
+ }
36
+
37
+ /**
38
+ * Komponen header tabel `<thead>` (Compound TableHeader).
39
+ */
40
+
41
+ const props = defineProps<TableHeaderProps>();
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 TableHeaderProps {
7
+ /**
8
+ * Inline CSS style kustom.
9
+ */
10
+ style?: any;
11
+ /**
12
+ * Kustomisasi visual granular thead (UiProps).
13
+ */
14
+ ui?: UiProps;
15
+
16
+ /**
17
+ * Class CSS kustom.
18
+ */
19
+ className?: string;
20
+
21
+ /**
22
+ * Konten baris header (TableRow).
23
+ */
24
+ children?: any;
25
+ }
26
+
27
+ declare const component: DefineComponent<TableHeaderProps>;
28
+ export default component;