@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,575 @@
1
+ {
2
+ "name": "@ttdk-design-system/input-number",
3
+ "component": "InputNumber",
4
+ "folder": "input-number",
5
+ "description": "Komponen InputNumber TTDK sesuai spesifikasi Anatomy Desain Form & Input: 1. Field title / label (14px Semibold, #141313) 2. (Opsional) label (12px Regular, #9698A2) 3. Border radius 8px default (rounded) 4. Stepper controls (+/- spin buttons) dengan mode right-stacked atau split-counter 5. Input control numerik terproteksi min, max, step, & precision 6. Additional information / Helper text & error message",
6
+ "stylesheets": [
7
+ {
8
+ "theme": "common",
9
+ "file": "input-number.css",
10
+ "importPath": "web/input-number/input-number.css"
11
+ }
12
+ ],
13
+ "props": {},
14
+ "subInterfaces": {
15
+ "InputNumberProps": {
16
+ "label": {
17
+ "name": "label",
18
+ "type": "string",
19
+ "optional": true,
20
+ "default": null,
21
+ "description": "Teks label judul field yang ditampilkan di atas input (14px Semibold, #141313).",
22
+ "example": null,
23
+ "param": null
24
+ },
25
+ "labelStyle": {
26
+ "name": "labelStyle",
27
+ "type": "UiProps",
28
+ "optional": true,
29
+ "default": null,
30
+ "description": "Style kustom untuk elemen label judul field (UiProps).",
31
+ "example": null,
32
+ "param": null
33
+ },
34
+ "labelClass": {
35
+ "name": "labelClass",
36
+ "type": "string",
37
+ "optional": true,
38
+ "default": null,
39
+ "description": "Class CSS kustom untuk elemen label judul field.",
40
+ "example": null,
41
+ "param": null
42
+ },
43
+ "wrapperStyle": {
44
+ "name": "wrapperStyle",
45
+ "type": "UiProps",
46
+ "optional": true,
47
+ "default": null,
48
+ "description": "Style kustom untuk elemen kontainer input wrapper (UiProps).",
49
+ "example": null,
50
+ "param": null
51
+ },
52
+ "wrapperClass": {
53
+ "name": "wrapperClass",
54
+ "type": "string",
55
+ "optional": true,
56
+ "default": null,
57
+ "description": "Class CSS kustom untuk elemen kontainer input wrapper.",
58
+ "example": null,
59
+ "param": null
60
+ },
61
+ "inputStyle": {
62
+ "name": "inputStyle",
63
+ "type": "UiProps",
64
+ "optional": true,
65
+ "default": null,
66
+ "description": "Style kustom untuk elemen input control HTML (UiProps).",
67
+ "example": null,
68
+ "param": null
69
+ },
70
+ "inputClass": {
71
+ "name": "inputClass",
72
+ "type": "string",
73
+ "optional": true,
74
+ "default": null,
75
+ "description": "Class CSS kustom untuk elemen input control HTML.",
76
+ "example": null,
77
+ "param": null
78
+ },
79
+ "controlsStyle": {
80
+ "name": "controlsStyle",
81
+ "type": "UiProps",
82
+ "optional": true,
83
+ "default": null,
84
+ "description": "Style kustom untuk elemen stepper kontrol tombol (UiProps).",
85
+ "example": null,
86
+ "param": null
87
+ },
88
+ "controlsClass": {
89
+ "name": "controlsClass",
90
+ "type": "string",
91
+ "optional": true,
92
+ "default": null,
93
+ "description": "Class CSS kustom untuk elemen stepper kontrol tombol.",
94
+ "example": null,
95
+ "param": null
96
+ },
97
+ "errorMessageStyle": {
98
+ "name": "errorMessageStyle",
99
+ "type": "UiProps",
100
+ "optional": true,
101
+ "default": null,
102
+ "description": "Style kustom untuk elemen pesan error validasi (UiProps).",
103
+ "example": null,
104
+ "param": null
105
+ },
106
+ "errorMessageClass": {
107
+ "name": "errorMessageClass",
108
+ "type": "string",
109
+ "optional": true,
110
+ "default": null,
111
+ "description": "Class CSS kustom untuk elemen pesan error validasi.",
112
+ "example": null,
113
+ "param": null
114
+ },
115
+ "helperTextStyle": {
116
+ "name": "helperTextStyle",
117
+ "type": "UiProps",
118
+ "optional": true,
119
+ "default": null,
120
+ "description": "Style kustom untuk elemen helper text (UiProps).",
121
+ "example": null,
122
+ "param": null
123
+ },
124
+ "helperTextClass": {
125
+ "name": "helperTextClass",
126
+ "type": "string",
127
+ "optional": true,
128
+ "default": null,
129
+ "description": "Class CSS kustom untuk elemen helper text.",
130
+ "example": null,
131
+ "param": null
132
+ },
133
+ "optional": {
134
+ "name": "optional",
135
+ "type": "boolean",
136
+ "optional": true,
137
+ "default": null,
138
+ "description": "Menandai field sebagai opsi opsional dengan menambahkan teks '(Opsional)' (12px Regular, #9698A2).",
139
+ "example": null,
140
+ "param": null
141
+ },
142
+ "optionalText": {
143
+ "name": "optionalText",
144
+ "type": "string",
145
+ "optional": true,
146
+ "default": "(Opsional)",
147
+ "description": "Kustomisasi teks keterangan opsional.",
148
+ "example": null,
149
+ "param": null
150
+ },
151
+ "placeholder": {
152
+ "name": "placeholder",
153
+ "type": "string",
154
+ "optional": true,
155
+ "default": null,
156
+ "description": "Nilai teks placeholder saat input kosong (#9698A2).",
157
+ "example": null,
158
+ "param": null
159
+ },
160
+ "value": {
161
+ "name": "value",
162
+ "type": "number | string",
163
+ "optional": true,
164
+ "default": null,
165
+ "description": "Nilai terkontrol (controlled value) pada input number.",
166
+ "example": null,
167
+ "param": null
168
+ },
169
+ "defaultValue": {
170
+ "name": "defaultValue",
171
+ "type": "number | string",
172
+ "optional": true,
173
+ "default": null,
174
+ "description": "Nilai awal tidak terkontrol (uncontrolled initial value).",
175
+ "example": null,
176
+ "param": null
177
+ },
178
+ "name": {
179
+ "name": "name",
180
+ "type": "string",
181
+ "optional": true,
182
+ "default": null,
183
+ "description": "Nama form field HTML untuk integrasi formulir.",
184
+ "example": null,
185
+ "param": null
186
+ },
187
+ "id": {
188
+ "name": "id",
189
+ "type": "string",
190
+ "optional": true,
191
+ "default": null,
192
+ "description": "Identifier unik elemen input.",
193
+ "example": null,
194
+ "param": null
195
+ },
196
+ "error": {
197
+ "name": "error",
198
+ "type": "boolean",
199
+ "optional": true,
200
+ "default": "false",
201
+ "description": "Status apakah input sedang dalam kondisi error / tidak valid.",
202
+ "example": null,
203
+ "param": null
204
+ },
205
+ "errorMessage": {
206
+ "name": "errorMessage",
207
+ "type": "string",
208
+ "optional": true,
209
+ "default": null,
210
+ "description": "Pesan teks penjelasan kesalahan validasi di bawah field.",
211
+ "example": null,
212
+ "param": null
213
+ },
214
+ "helperText": {
215
+ "name": "helperText",
216
+ "type": "string",
217
+ "optional": true,
218
+ "default": null,
219
+ "description": "Teks petunjuk atau keterangan bantuan di bawah field (12px Regular, #3C4245).",
220
+ "example": null,
221
+ "param": null
222
+ },
223
+ "helperTextPosition": {
224
+ "name": "helperTextPosition",
225
+ "type": "'top' | 'bottom'",
226
+ "optional": true,
227
+ "default": null,
228
+ "description": "Posisi teks helper",
229
+ "example": null,
230
+ "param": null
231
+ },
232
+ "size": {
233
+ "name": "size",
234
+ "type": "'sm' | 'md' | 'lg'",
235
+ "optional": true,
236
+ "default": "md",
237
+ "description": "Skala ukuran input field. - `'sm'`: 38px - `'md'`: 48px (standar) - `'lg'`: 56px",
238
+ "example": null,
239
+ "param": null
240
+ },
241
+ "rounded": {
242
+ "name": "rounded",
243
+ "type": "'none' | 'sm' | 'md' | 'lg' | 'full'",
244
+ "optional": true,
245
+ "default": "md",
246
+ "description": "Bentuk sudut kelengkungan input. - `'none'`: 0px - `'sm'`: 4px - `'md'`: 8px (standar desain) - `'lg'`: 12px - `'full'`: 9999px (kapsul)",
247
+ "example": null,
248
+ "param": null
249
+ },
250
+ "block": {
251
+ "name": "block",
252
+ "type": "boolean",
253
+ "optional": true,
254
+ "default": "false",
255
+ "description": "Menjadikan lebar field input memenuhi kontainer penuh (full-width 100%).",
256
+ "example": null,
257
+ "param": null
258
+ },
259
+ "disabled": {
260
+ "name": "disabled",
261
+ "type": "boolean",
262
+ "optional": true,
263
+ "default": "false",
264
+ "description": "Status apakah field dinonaktifkan (disabled).",
265
+ "example": null,
266
+ "param": null
267
+ },
268
+ "readOnly": {
269
+ "name": "readOnly",
270
+ "type": "boolean",
271
+ "optional": true,
272
+ "default": "false",
273
+ "description": "Status apakah field bersifat hanya-baca (readonly).",
274
+ "example": null,
275
+ "param": null
276
+ },
277
+ "required": {
278
+ "name": "required",
279
+ "type": "boolean",
280
+ "optional": true,
281
+ "default": "false",
282
+ "description": "Menandai field sebagai input wajib diisi (menampilkan tanda bintang merah *).",
283
+ "example": null,
284
+ "param": null
285
+ },
286
+ "iconLeft": {
287
+ "name": "iconLeft",
288
+ "type": "any",
289
+ "optional": true,
290
+ "default": null,
291
+ "description": "Ikon di sebelah kiri dalam input (ukuran 20-24px, misal: Hash, Calculator, Currency).",
292
+ "example": null,
293
+ "param": null
294
+ },
295
+ "iconRight": {
296
+ "name": "iconRight",
297
+ "type": "any",
298
+ "optional": true,
299
+ "default": null,
300
+ "description": "Ikon di sebelah kanan dalam input (ukuran 20-24px).",
301
+ "example": null,
302
+ "param": null
303
+ },
304
+ "addonLeft": {
305
+ "name": "addonLeft",
306
+ "type": "string | any",
307
+ "optional": true,
308
+ "default": null,
309
+ "description": "Addon / teks prefix di sebelah kiri luar input (misal: 'Rp', '+62').",
310
+ "example": null,
311
+ "param": null
312
+ },
313
+ "addonRight": {
314
+ "name": "addonRight",
315
+ "type": "string | any",
316
+ "optional": true,
317
+ "default": null,
318
+ "description": "Addon / teks suffix di sebelah kanan luar input (misal: 'kg', 'pcs', '%').",
319
+ "example": null,
320
+ "param": null
321
+ },
322
+ "autoComplete": {
323
+ "name": "autoComplete",
324
+ "type": "string",
325
+ "optional": true,
326
+ "default": null,
327
+ "description": "Konfigurasi atribut autocomplete HTML.",
328
+ "example": null,
329
+ "param": null
330
+ },
331
+ "min": {
332
+ "name": "min",
333
+ "type": "number",
334
+ "optional": true,
335
+ "default": null,
336
+ "description": "Nilai minimum yang diizinkan untuk input number.",
337
+ "example": null,
338
+ "param": null
339
+ },
340
+ "max": {
341
+ "name": "max",
342
+ "type": "number",
343
+ "optional": true,
344
+ "default": null,
345
+ "description": "Nilai maksimum yang diizinkan untuk input number.",
346
+ "example": null,
347
+ "param": null
348
+ },
349
+ "step": {
350
+ "name": "step",
351
+ "type": "number",
352
+ "optional": true,
353
+ "default": "1",
354
+ "description": "Nilai selisih kenaikan atau penurunan setiap kali stepper ditekan.",
355
+ "example": null,
356
+ "param": null
357
+ },
358
+ "precision": {
359
+ "name": "precision",
360
+ "type": "number",
361
+ "optional": true,
362
+ "default": null,
363
+ "description": "Jumlah angka di belakang koma (presisi desimal).",
364
+ "example": null,
365
+ "param": null
366
+ },
367
+ "thousandSeparator": {
368
+ "name": "thousandSeparator",
369
+ "type": "boolean",
370
+ "optional": true,
371
+ "default": "false",
372
+ "description": "Mengaktifkan format pemisah ribuan otomatis dengan titik '.' (contoh: 1.000 atau 10.000). Nilai yang diteruskan ke callback form (onChange / onValueChange) tetap berupa number murni standar (contoh: 1000).",
373
+ "example": null,
374
+ "param": null
375
+ },
376
+ "allowExponential": {
377
+ "name": "allowExponential",
378
+ "type": "boolean",
379
+ "optional": true,
380
+ "default": "false",
381
+ "description": "Mengizinkan tanda eksponensial ilmiah 'e' / 'E'.",
382
+ "example": null,
383
+ "param": null
384
+ },
385
+ "type": {
386
+ "name": "type",
387
+ "type": "string",
388
+ "optional": true,
389
+ "default": "text",
390
+ "description": "Tipe input HTML. Secara default 'text' dengan inputMode 'numeric'/'decimal' agar mendukung formatting dan pembatasan karakter tanpa bug bawaan browser.",
391
+ "example": null,
392
+ "param": null
393
+ },
394
+ "controls": {
395
+ "name": "controls",
396
+ "type": "boolean",
397
+ "optional": true,
398
+ "default": "true",
399
+ "description": "Menampilkan tombol stepper panah kontrol atas/bawah.",
400
+ "example": null,
401
+ "param": null
402
+ },
403
+ "withoutButton": {
404
+ "name": "withoutButton",
405
+ "type": "boolean",
406
+ "optional": true,
407
+ "default": "false",
408
+ "description": "Menghilangkan tombol kontrol increment dan decrement sehingga tampil seperti input teks biasa.",
409
+ "example": null,
410
+ "param": null
411
+ },
412
+ "controlsPosition": {
413
+ "name": "controlsPosition",
414
+ "type": "'right' | 'split'",
415
+ "optional": true,
416
+ "default": "right",
417
+ "description": "Posisi letak tombol kontrol stepper: - `'right'`: tombol stepper ditumpuk di sisi kanan (standar) - `'split'`: tombol minus di sisi kiri dan tombol plus di sisi kanan (mode counter)",
418
+ "example": null,
419
+ "param": null
420
+ },
421
+ "maxLength": {
422
+ "name": "maxLength",
423
+ "type": "number",
424
+ "optional": true,
425
+ "default": null,
426
+ "description": "Batas maksimum panjang karakter.",
427
+ "example": null,
428
+ "param": null
429
+ },
430
+ "minLength": {
431
+ "name": "minLength",
432
+ "type": "number",
433
+ "optional": true,
434
+ "default": null,
435
+ "description": "Batas minimum panjang karakter.",
436
+ "example": null,
437
+ "param": null
438
+ },
439
+ "style": {
440
+ "name": "style",
441
+ "type": "any",
442
+ "optional": true,
443
+ "default": null,
444
+ "description": "Inline CSS style object native.",
445
+ "example": null,
446
+ "param": null
447
+ },
448
+ "ui": {
449
+ "name": "ui",
450
+ "type": "UiProps",
451
+ "optional": true,
452
+ "default": null,
453
+ "description": "Kustomisasi visual granular root / form-item (UiProps).",
454
+ "example": null,
455
+ "param": null
456
+ },
457
+ "onChange": {
458
+ "name": "onChange",
459
+ "type": "(event: any) => void",
460
+ "optional": true,
461
+ "default": null,
462
+ "description": "Callback event saat nilai input berubah (SyntheticEvent standar HTML).",
463
+ "example": null,
464
+ "param": null
465
+ },
466
+ "onValueChange": {
467
+ "name": "onValueChange",
468
+ "type": "(value: number | undefined) => void",
469
+ "optional": true,
470
+ "default": null,
471
+ "description": "Callback event saat nilai numerik angka berubah.",
472
+ "example": null,
473
+ "param": null
474
+ },
475
+ "onInput": {
476
+ "name": "onInput",
477
+ "type": "(event: any) => void",
478
+ "optional": true,
479
+ "default": null,
480
+ "description": "Callback event saat pengguna mengetik (input event).",
481
+ "example": null,
482
+ "param": null
483
+ },
484
+ "onBlur": {
485
+ "name": "onBlur",
486
+ "type": "(event: any) => void",
487
+ "optional": true,
488
+ "default": null,
489
+ "description": "Callback event saat field input kehilangan fokus.",
490
+ "example": null,
491
+ "param": null
492
+ },
493
+ "onFocus": {
494
+ "name": "onFocus",
495
+ "type": "(event: any) => void",
496
+ "optional": true,
497
+ "default": null,
498
+ "description": "Callback event saat field input mendapatkan fokus.",
499
+ "example": null,
500
+ "param": null
501
+ },
502
+ "inputRef": {
503
+ "name": "inputRef",
504
+ "type": "any",
505
+ "optional": true,
506
+ "default": null,
507
+ "description": "Ref instance elemen input HTML untuk akses kontrol DOM langsung (focus, blur, select).",
508
+ "example": null,
509
+ "param": null
510
+ },
511
+ "className": {
512
+ "name": "className",
513
+ "type": "string",
514
+ "optional": true,
515
+ "default": null,
516
+ "description": "Class CSS kustom.",
517
+ "example": null,
518
+ "param": null
519
+ },
520
+ "onKeyDown": {
521
+ "name": "onKeyDown",
522
+ "type": "(event: any) => void",
523
+ "optional": true,
524
+ "default": null,
525
+ "description": "Callback event tombol keyboard ditekan.",
526
+ "example": null,
527
+ "param": null
528
+ },
529
+ "onKeyUp": {
530
+ "name": "onKeyUp",
531
+ "type": "(event: any) => void",
532
+ "optional": true,
533
+ "default": null,
534
+ "description": "Callback event tombol keyboard dilepaskan.",
535
+ "example": null,
536
+ "param": null
537
+ },
538
+ "onCopy": {
539
+ "name": "onCopy",
540
+ "type": "(event: any) => void",
541
+ "optional": true,
542
+ "default": null,
543
+ "description": "Callback event saat teks di-copy.",
544
+ "example": null,
545
+ "param": null
546
+ },
547
+ "onCut": {
548
+ "name": "onCut",
549
+ "type": "(event: any) => void",
550
+ "optional": true,
551
+ "default": null,
552
+ "description": "Callback event saat teks di-cut.",
553
+ "example": null,
554
+ "param": null
555
+ },
556
+ "loading": {
557
+ "name": "loading",
558
+ "type": "boolean",
559
+ "optional": true,
560
+ "default": "false",
561
+ "description": "Menampilkan spinner dan menonaktifkan interaksi field sementara menunggu proses async.",
562
+ "example": null,
563
+ "param": null
564
+ }
565
+ }
566
+ },
567
+ "supportedFrameworks": [
568
+ "react",
569
+ "vue",
570
+ "svelte"
571
+ ],
572
+ "themes": [
573
+ "tw"
574
+ ]
575
+ }