@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,515 @@
1
+ <script context="module"></script>
2
+
3
+ <script>import { buildUiVars, UiProps } from "../../core/types";
4
+ export let as = void 0;
5
+ export let className = void 0;
6
+ export let variant = void 0;
7
+ export let size = void 0;
8
+ export let weight = void 0;
9
+ export let align = void 0;
10
+ export let transform = void 0;
11
+ export let truncate = void 0;
12
+ export let lineClamp = void 0;
13
+ export let noWrap = void 0;
14
+ export let italic = void 0;
15
+ export let underline = void 0;
16
+ export let margin = void 0;
17
+ export let padding = void 0;
18
+ export let ui = void 0;
19
+ export let href = void 0;
20
+ export let target = void 0;
21
+ function stringifyStyles(stylesObj) {
22
+ let styles = "";
23
+ for (let key in stylesObj) {
24
+ const dashedKey = key.replace(/[A-Z]/g, function(match) {
25
+ return "-" + match.toLowerCase();
26
+ });
27
+ styles += dashedKey + ":" + stylesObj[key] + ";";
28
+ }
29
+ return styles;
30
+ }
31
+ </script>
32
+
33
+ {#if as === "p"}
34
+ <p
35
+ style={stringifyStyles({
36
+ ...(margin
37
+ ? {
38
+ margin: margin,
39
+ }
40
+ : {}),
41
+ ...(padding
42
+ ? {
43
+ padding: padding,
44
+ }
45
+ : {}),
46
+ ...buildUiVars(ui),
47
+ })}
48
+ class={`ttdk-text ${className || ""}`.trim()}
49
+ data-variant={variant || "neutral"}
50
+ data-size={size}
51
+ data-weight={weight}
52
+ data-align={align}
53
+ data-transform={transform}
54
+ data-truncate={truncate}
55
+ data-line-clamp={lineClamp}
56
+ data-no-wrap={noWrap}
57
+ data-italic={italic}
58
+ data-underline={underline}
59
+ >
60
+ <slot />
61
+ </p>
62
+ {/if}
63
+
64
+ {#if as === "h1"}
65
+ <h1
66
+ style={stringifyStyles({
67
+ ...(margin
68
+ ? {
69
+ margin: margin,
70
+ }
71
+ : {}),
72
+ ...(padding
73
+ ? {
74
+ padding: padding,
75
+ }
76
+ : {}),
77
+ ...buildUiVars(ui),
78
+ })}
79
+ class={`ttdk-text ${className || ""}`.trim()}
80
+ data-variant={variant || "neutral"}
81
+ data-size={size}
82
+ data-weight={weight}
83
+ data-align={align}
84
+ data-transform={transform}
85
+ data-truncate={truncate}
86
+ data-line-clamp={lineClamp}
87
+ data-no-wrap={noWrap}
88
+ data-italic={italic}
89
+ data-underline={underline}
90
+ >
91
+ <slot />
92
+ </h1>
93
+ {/if}
94
+
95
+ {#if as === "h2"}
96
+ <h2
97
+ style={stringifyStyles({
98
+ ...(margin
99
+ ? {
100
+ margin: margin,
101
+ }
102
+ : {}),
103
+ ...(padding
104
+ ? {
105
+ padding: padding,
106
+ }
107
+ : {}),
108
+ ...buildUiVars(ui),
109
+ })}
110
+ class={`ttdk-text ${className || ""}`.trim()}
111
+ data-variant={variant || "neutral"}
112
+ data-size={size}
113
+ data-weight={weight}
114
+ data-align={align}
115
+ data-transform={transform}
116
+ data-truncate={truncate}
117
+ data-line-clamp={lineClamp}
118
+ data-no-wrap={noWrap}
119
+ data-italic={italic}
120
+ data-underline={underline}
121
+ >
122
+ <slot />
123
+ </h2>
124
+ {/if}
125
+
126
+ {#if as === "h3"}
127
+ <h3
128
+ style={stringifyStyles({
129
+ ...(margin
130
+ ? {
131
+ margin: margin,
132
+ }
133
+ : {}),
134
+ ...(padding
135
+ ? {
136
+ padding: padding,
137
+ }
138
+ : {}),
139
+ ...buildUiVars(ui),
140
+ })}
141
+ class={`ttdk-text ${className || ""}`.trim()}
142
+ data-variant={variant || "neutral"}
143
+ data-size={size}
144
+ data-weight={weight}
145
+ data-align={align}
146
+ data-transform={transform}
147
+ data-truncate={truncate}
148
+ data-line-clamp={lineClamp}
149
+ data-no-wrap={noWrap}
150
+ data-italic={italic}
151
+ data-underline={underline}
152
+ >
153
+ <slot />
154
+ </h3>
155
+ {/if}
156
+
157
+ {#if as === "h4"}
158
+ <h4
159
+ style={stringifyStyles({
160
+ ...(margin
161
+ ? {
162
+ margin: margin,
163
+ }
164
+ : {}),
165
+ ...(padding
166
+ ? {
167
+ padding: padding,
168
+ }
169
+ : {}),
170
+ ...buildUiVars(ui),
171
+ })}
172
+ class={`ttdk-text ${className || ""}`.trim()}
173
+ data-variant={variant || "neutral"}
174
+ data-size={size}
175
+ data-weight={weight}
176
+ data-align={align}
177
+ data-transform={transform}
178
+ data-truncate={truncate}
179
+ data-line-clamp={lineClamp}
180
+ data-no-wrap={noWrap}
181
+ data-italic={italic}
182
+ data-underline={underline}
183
+ >
184
+ <slot />
185
+ </h4>
186
+ {/if}
187
+
188
+ {#if as === "h5"}
189
+ <h5
190
+ style={stringifyStyles({
191
+ ...(margin
192
+ ? {
193
+ margin: margin,
194
+ }
195
+ : {}),
196
+ ...(padding
197
+ ? {
198
+ padding: padding,
199
+ }
200
+ : {}),
201
+ ...buildUiVars(ui),
202
+ })}
203
+ class={`ttdk-text ${className || ""}`.trim()}
204
+ data-variant={variant || "neutral"}
205
+ data-size={size}
206
+ data-weight={weight}
207
+ data-align={align}
208
+ data-transform={transform}
209
+ data-truncate={truncate}
210
+ data-line-clamp={lineClamp}
211
+ data-no-wrap={noWrap}
212
+ data-italic={italic}
213
+ data-underline={underline}
214
+ >
215
+ <slot />
216
+ </h5>
217
+ {/if}
218
+
219
+ {#if as === "h6"}
220
+ <h6
221
+ style={stringifyStyles({
222
+ ...(margin
223
+ ? {
224
+ margin: margin,
225
+ }
226
+ : {}),
227
+ ...(padding
228
+ ? {
229
+ padding: padding,
230
+ }
231
+ : {}),
232
+ ...buildUiVars(ui),
233
+ })}
234
+ class={`ttdk-text ${className || ""}`.trim()}
235
+ data-variant={variant || "neutral"}
236
+ data-size={size}
237
+ data-weight={weight}
238
+ data-align={align}
239
+ data-transform={transform}
240
+ data-truncate={truncate}
241
+ data-line-clamp={lineClamp}
242
+ data-no-wrap={noWrap}
243
+ data-italic={italic}
244
+ data-underline={underline}
245
+ >
246
+ <slot />
247
+ </h6>
248
+ {/if}
249
+
250
+ {#if as === "div"}
251
+ <div
252
+ style={stringifyStyles({
253
+ ...(margin
254
+ ? {
255
+ margin: margin,
256
+ }
257
+ : {}),
258
+ ...(padding
259
+ ? {
260
+ padding: padding,
261
+ }
262
+ : {}),
263
+ ...buildUiVars(ui),
264
+ })}
265
+ class={`ttdk-text ${className || ""}`.trim()}
266
+ data-variant={variant || "neutral"}
267
+ data-size={size}
268
+ data-weight={weight}
269
+ data-align={align}
270
+ data-transform={transform}
271
+ data-truncate={truncate}
272
+ data-line-clamp={lineClamp}
273
+ data-no-wrap={noWrap}
274
+ data-italic={italic}
275
+ data-underline={underline}
276
+ >
277
+ <slot />
278
+ </div>
279
+ {/if}
280
+
281
+ {#if as === "label"}
282
+ <label
283
+ style={stringifyStyles({
284
+ ...(margin
285
+ ? {
286
+ margin: margin,
287
+ }
288
+ : {}),
289
+ ...(padding
290
+ ? {
291
+ padding: padding,
292
+ }
293
+ : {}),
294
+ ...buildUiVars(ui),
295
+ })}
296
+ class={`ttdk-text ${className || ""}`.trim()}
297
+ data-variant={variant || "neutral"}
298
+ data-size={size}
299
+ data-weight={weight}
300
+ data-align={align}
301
+ data-transform={transform}
302
+ data-truncate={truncate}
303
+ data-line-clamp={lineClamp}
304
+ data-no-wrap={noWrap}
305
+ data-italic={italic}
306
+ data-underline={underline}><slot /></label
307
+ >
308
+ {/if}
309
+
310
+ {#if as === "small"}
311
+ <small
312
+ style={stringifyStyles({
313
+ ...(margin
314
+ ? {
315
+ margin: margin,
316
+ }
317
+ : {}),
318
+ ...(padding
319
+ ? {
320
+ padding: padding,
321
+ }
322
+ : {}),
323
+ ...buildUiVars(ui),
324
+ })}
325
+ class={`ttdk-text ${className || ""}`.trim()}
326
+ data-variant={variant || "neutral"}
327
+ data-size={size}
328
+ data-weight={weight}
329
+ data-align={align}
330
+ data-transform={transform}
331
+ data-truncate={truncate}
332
+ data-line-clamp={lineClamp}
333
+ data-no-wrap={noWrap}
334
+ data-italic={italic}
335
+ data-underline={underline}><slot /></small
336
+ >
337
+ {/if}
338
+
339
+ {#if as === "strong"}
340
+ <strong
341
+ style={stringifyStyles({
342
+ ...(margin
343
+ ? {
344
+ margin: margin,
345
+ }
346
+ : {}),
347
+ ...(padding
348
+ ? {
349
+ padding: padding,
350
+ }
351
+ : {}),
352
+ ...buildUiVars(ui),
353
+ })}
354
+ class={`ttdk-text ${className || ""}`.trim()}
355
+ data-variant={variant || "neutral"}
356
+ data-size={size}
357
+ data-weight={weight || "bold"}
358
+ data-align={align}
359
+ data-transform={transform}
360
+ data-truncate={truncate}
361
+ data-line-clamp={lineClamp}
362
+ data-no-wrap={noWrap}
363
+ data-italic={italic}
364
+ data-underline={underline}><slot /></strong
365
+ >
366
+ {/if}
367
+
368
+ {#if as === "em"}
369
+ <em
370
+ style={stringifyStyles({
371
+ ...(margin
372
+ ? {
373
+ margin: margin,
374
+ }
375
+ : {}),
376
+ ...(padding
377
+ ? {
378
+ padding: padding,
379
+ }
380
+ : {}),
381
+ ...buildUiVars(ui),
382
+ })}
383
+ data-italic="true"
384
+ class={`ttdk-text ${className || ""}`.trim()}
385
+ data-variant={variant || "neutral"}
386
+ data-size={size}
387
+ data-weight={weight}
388
+ data-align={align}
389
+ data-transform={transform}
390
+ data-truncate={truncate}
391
+ data-line-clamp={lineClamp}
392
+ data-no-wrap={noWrap}
393
+ data-underline={underline}><slot /></em
394
+ >
395
+ {/if}
396
+
397
+ {#if as === "code"}
398
+ <code
399
+ style={stringifyStyles({
400
+ ...(margin
401
+ ? {
402
+ margin: margin,
403
+ }
404
+ : {}),
405
+ ...(padding
406
+ ? {
407
+ padding: padding,
408
+ }
409
+ : {}),
410
+ ...buildUiVars(ui),
411
+ })}
412
+ class={`ttdk-text ${className || ""}`.trim()}
413
+ data-variant={variant || "neutral"}
414
+ data-size={size}
415
+ data-weight={weight}
416
+ data-align={align}
417
+ data-transform={transform}
418
+ data-truncate={truncate}
419
+ data-line-clamp={lineClamp}
420
+ data-no-wrap={noWrap}
421
+ data-italic={italic}
422
+ data-underline={underline}><slot /></code
423
+ >
424
+ {/if}
425
+
426
+ {#if as === "blockquote"}
427
+ <blockquote
428
+ style={stringifyStyles({
429
+ ...(margin
430
+ ? {
431
+ margin: margin,
432
+ }
433
+ : {}),
434
+ ...(padding
435
+ ? {
436
+ padding: padding,
437
+ }
438
+ : {}),
439
+ ...buildUiVars(ui),
440
+ })}
441
+ data-italic="true"
442
+ class={`ttdk-text ${className || ""}`.trim()}
443
+ data-variant={variant || "neutral"}
444
+ data-size={size}
445
+ data-weight={weight}
446
+ data-align={align}
447
+ data-transform={transform}
448
+ data-truncate={truncate}
449
+ data-line-clamp={lineClamp}
450
+ data-no-wrap={noWrap}
451
+ data-underline={underline}
452
+ >
453
+ <slot />
454
+ </blockquote>
455
+ {/if}
456
+
457
+ {#if as === "a"}
458
+ <a
459
+ style={stringifyStyles({
460
+ ...(margin
461
+ ? {
462
+ margin: margin,
463
+ }
464
+ : {}),
465
+ ...(padding
466
+ ? {
467
+ padding: padding,
468
+ }
469
+ : {}),
470
+ ...buildUiVars(ui),
471
+ })}
472
+ class={`ttdk-text ${className || ""}`.trim()}
473
+ {href}
474
+ {target}
475
+ data-variant={variant || "info"}
476
+ data-size={size}
477
+ data-weight={weight}
478
+ data-align={align}
479
+ data-transform={transform}
480
+ data-truncate={truncate}
481
+ data-line-clamp={lineClamp}
482
+ data-no-wrap={noWrap}
483
+ data-italic={italic}
484
+ data-underline={underline}><slot /></a
485
+ >
486
+ {/if}
487
+
488
+ {#if !as || as === "span"}
489
+ <span
490
+ style={stringifyStyles({
491
+ ...(margin
492
+ ? {
493
+ margin: margin,
494
+ }
495
+ : {}),
496
+ ...(padding
497
+ ? {
498
+ padding: padding,
499
+ }
500
+ : {}),
501
+ ...buildUiVars(ui),
502
+ })}
503
+ class={`ttdk-text ${className || ""}`.trim()}
504
+ data-variant={variant || "neutral"}
505
+ data-size={size}
506
+ data-weight={weight}
507
+ data-align={align}
508
+ data-transform={transform}
509
+ data-truncate={truncate}
510
+ data-line-clamp={lineClamp}
511
+ data-no-wrap={noWrap}
512
+ data-italic={italic}
513
+ data-underline={underline}><slot /></span
514
+ >
515
+ {/if}
@@ -0,0 +1,168 @@
1
+ import { SvelteComponent } from "svelte";
2
+ export type TextUiProps = UiProps;
3
+ export interface TextProps {
4
+ /**
5
+ * Tag elemen HTML semantik yang digunakan untuk me-render teks.
6
+ * - `'span'`: Inline span (default).
7
+ * - `'p'`: Paragraf teks.
8
+ * - `'div'`: Blok generik.
9
+ * - `'h1'` s/d `'h6'`: Heading level 1 sampai 6.
10
+ * - `'label'`: Elemen label formulir.
11
+ * - `'small'`: Teks berukuran kecil / disclaimer.
12
+ * - `'strong'`: Teks tebal berpenekanan penting.
13
+ * - `'em'`: Teks berpenekanan miring.
14
+ * - `'code'`: Format kode inline monospace.
15
+ * - `'blockquote'`: Kutipan blok.
16
+ * - `'a'`: Tautan / link teks.
17
+ *
18
+ * @default 'span'
19
+ */
20
+ as?: "span" | "p" | "div" | "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "label" | "small" | "strong" | "em" | "code" | "blockquote" | "a";
21
+ /**
22
+ * Varian warna semantik teks (disesuaikan dengan Chip / Badge TTDK).
23
+ * - `'primary'`: Warna utama tema penekanan aksi (brand teal).
24
+ * - `'success'`: Warna status sukses (hijau).
25
+ * - `'info'`: Warna status informasi (biru).
26
+ * - `'warning'`: Warna status peringatan (kuning).
27
+ * - `'danger'`: Warna status bahaya / kesalahan (merah).
28
+ * - `'neutral'`: Warna teks dasar foreground (standar).
29
+ *
30
+ * @default 'neutral'
31
+ */
32
+ variant?: "primary" | "success" | "info" | "warning" | "danger" | "neutral";
33
+ /**
34
+ * Ukuran tipografi teks yang memengaruhi font-size dan line-height.
35
+ * - `'xs'`: 12px (line-height: 16px)
36
+ * - `'sm'`: 14px (line-height: 20px)
37
+ * - `'md'`: 16px (line-height: 24px)
38
+ * - `'lg'`: 18px (line-height: 28px)
39
+ * - `'xl'`: 20px (line-height: 28px)
40
+ * - `'2xl'`: 24px (line-height: 32px)
41
+ * - `'3xl'`: 30px (line-height: 36px)
42
+ * - `'4xl'`: 36px (line-height: 40px)
43
+ * - `'5xl'`: 48px (line-height: 1.1)
44
+ * - `'6xl'`: 60px (line-height: 1.05)
45
+ */
46
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "4xl" | "5xl" | "6xl";
47
+ /**
48
+ * Ketebalan font teks.
49
+ * - `'normal'`: 400
50
+ * - `'medium'`: 500
51
+ * - `'semibold'`: 600
52
+ * - `'bold'`: 700
53
+ * - `'extrabold'`: 800
54
+ */
55
+ weight?: "normal" | "medium" | "semibold" | "bold" | "extrabold";
56
+ /**
57
+ * Perataan horizontal teks.
58
+ * - `'left'`: Rata kiri.
59
+ * - `'center'`: Rata tengah.
60
+ * - `'right'`: Rata kanan.
61
+ * - `'justify'`: Rata kiri-kanan.
62
+ */
63
+ align?: "left" | "center" | "right" | "justify";
64
+ /**
65
+ * Transformasi huruf kapital/kecil pada teks.
66
+ * - `'uppercase'`: SEMUA HURUF BESAR.
67
+ * - `'lowercase'`: semua huruf kecil.
68
+ * - `'capitalize'`: Huruf Pertama Besar Setiap Kata.
69
+ * - `'normal'`: Normal sesuai aslinya.
70
+ */
71
+ transform?: "uppercase" | "lowercase" | "capitalize" | "normal";
72
+ /**
73
+ * Memotong teks satu baris yang melebihi batas dengan elipsis (...).
74
+ *
75
+ * @default false
76
+ */
77
+ truncate?: boolean;
78
+ /**
79
+ * Memotong teks multi-baris pada jumlah baris tertentu menggunakan CSS line-clamp.
80
+ */
81
+ lineClamp?: "1" | "2" | "3" | "4" | "5" | "6" | 1 | 2 | 3 | 4 | 5 | 6;
82
+ /**
83
+ * Mencegah teks dari wrapping (white-space: nowrap).
84
+ *
85
+ * @default false
86
+ */
87
+ noWrap?: boolean;
88
+ /**
89
+ * Menampilkan teks dalam gaya miring (italic).
90
+ *
91
+ * @default false
92
+ */
93
+ italic?: boolean;
94
+ /**
95
+ * Menampilkan garis bawah pada teks (underline).
96
+ *
97
+ * @default false
98
+ */
99
+ underline?: boolean;
100
+ /**
101
+ * Margin kustom pada elemen teks (misal: '0 0 16px 0', '8px', '1rem').
102
+ */
103
+ margin?: string;
104
+ /**
105
+ * Padding kustom pada elemen teks (misal: '8px 12px', '4px 8px').
106
+ */
107
+ padding?: string;
108
+ /**
109
+ * URL tujuan jika `as="a"`.
110
+ */
111
+ href?: string;
112
+ /**
113
+ * Target link jika `as="a"`.
114
+ */
115
+ target?: string;
116
+ /**
117
+ * Class CSS kustom.
118
+ */
119
+ className?: string;
120
+ /**
121
+ * Inline CSS style object native.
122
+ */
123
+ style?: any;
124
+ /**
125
+ * Kustomisasi visual granular ala Nuxt UI / Universal UI System (UiProps).
126
+ */
127
+ ui?: UiProps;
128
+ /**
129
+ * Konten teks atau elemen anak di dalam komponen Text.
130
+ */
131
+ children?: any;
132
+ }
133
+ import { UiProps } from "../../core/types";
134
+ declare const __propDef: {
135
+ props: {
136
+ as?: TextProps["as"];
137
+ className?: TextProps["className"];
138
+ variant?: TextProps["variant"];
139
+ size?: TextProps["size"];
140
+ weight?: TextProps["weight"];
141
+ align?: TextProps["align"];
142
+ transform?: TextProps["transform"];
143
+ truncate?: TextProps["truncate"];
144
+ lineClamp?: TextProps["lineClamp"];
145
+ noWrap?: TextProps["noWrap"];
146
+ italic?: TextProps["italic"];
147
+ underline?: TextProps["underline"];
148
+ margin?: TextProps["margin"];
149
+ padding?: TextProps["padding"];
150
+ ui?: TextProps["ui"];
151
+ href?: TextProps["href"];
152
+ target?: TextProps["target"];
153
+ };
154
+ events: {
155
+ [evt: string]: CustomEvent<any>;
156
+ };
157
+ slots: {
158
+ default: {};
159
+ };
160
+ exports?: {} | undefined;
161
+ bindings?: string | undefined;
162
+ };
163
+ type TextProps_ = typeof __propDef.props;
164
+ export type TextEvents = typeof __propDef.events;
165
+ export type TextSlots = typeof __propDef.slots;
166
+ export default class Text extends SvelteComponent<TextProps_, TextEvents, TextSlots> {
167
+ }
168
+ export {};