tyrell-components 1.0.0-RC10

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 (344) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +221 -0
  3. package/css/tyrell-brand.css +767 -0
  4. package/css/tyrell.css +1679 -0
  5. package/dist/tyrell-brand.css +767 -0
  6. package/dist/tyrell.css +1679 -0
  7. package/dist/tyrell.js +2 -0
  8. package/lib/base/ty-component.d.ts +133 -0
  9. package/lib/base/ty-component.d.ts.map +1 -0
  10. package/lib/base/ty-component.js +297 -0
  11. package/lib/base/ty-component.js.map +1 -0
  12. package/lib/components/button.d.ts +135 -0
  13. package/lib/components/button.d.ts.map +1 -0
  14. package/lib/components/button.js +277 -0
  15. package/lib/components/button.js.map +1 -0
  16. package/lib/components/calendar-month.d.ts +132 -0
  17. package/lib/components/calendar-month.d.ts.map +1 -0
  18. package/lib/components/calendar-month.js +440 -0
  19. package/lib/components/calendar-month.js.map +1 -0
  20. package/lib/components/calendar-navigation.d.ts +137 -0
  21. package/lib/components/calendar-navigation.d.ts.map +1 -0
  22. package/lib/components/calendar-navigation.js +366 -0
  23. package/lib/components/calendar-navigation.js.map +1 -0
  24. package/lib/components/calendar.d.ts +166 -0
  25. package/lib/components/calendar.d.ts.map +1 -0
  26. package/lib/components/calendar.js +774 -0
  27. package/lib/components/calendar.js.map +1 -0
  28. package/lib/components/checkbox.d.ts +189 -0
  29. package/lib/components/checkbox.d.ts.map +1 -0
  30. package/lib/components/checkbox.js +400 -0
  31. package/lib/components/checkbox.js.map +1 -0
  32. package/lib/components/copy.d.ts +180 -0
  33. package/lib/components/copy.d.ts.map +1 -0
  34. package/lib/components/copy.js +393 -0
  35. package/lib/components/copy.js.map +1 -0
  36. package/lib/components/date-picker.d.ts +379 -0
  37. package/lib/components/date-picker.d.ts.map +1 -0
  38. package/lib/components/date-picker.js +1586 -0
  39. package/lib/components/date-picker.js.map +1 -0
  40. package/lib/components/dropdown.d.ts +424 -0
  41. package/lib/components/dropdown.d.ts.map +1 -0
  42. package/lib/components/dropdown.js +1640 -0
  43. package/lib/components/dropdown.js.map +1 -0
  44. package/lib/components/file-upload.d.ts +121 -0
  45. package/lib/components/file-upload.d.ts.map +1 -0
  46. package/lib/components/file-upload.js +441 -0
  47. package/lib/components/file-upload.js.map +1 -0
  48. package/lib/components/icon.d.ts +118 -0
  49. package/lib/components/icon.d.ts.map +1 -0
  50. package/lib/components/icon.js +245 -0
  51. package/lib/components/icon.js.map +1 -0
  52. package/lib/components/input.d.ts +270 -0
  53. package/lib/components/input.d.ts.map +1 -0
  54. package/lib/components/input.js +721 -0
  55. package/lib/components/input.js.map +1 -0
  56. package/lib/components/modal.d.ts +78 -0
  57. package/lib/components/modal.d.ts.map +1 -0
  58. package/lib/components/modal.js +497 -0
  59. package/lib/components/modal.js.map +1 -0
  60. package/lib/components/multiselect.d.ts +397 -0
  61. package/lib/components/multiselect.d.ts.map +1 -0
  62. package/lib/components/multiselect.js +1595 -0
  63. package/lib/components/multiselect.js.map +1 -0
  64. package/lib/components/option.d.ts +66 -0
  65. package/lib/components/option.d.ts.map +1 -0
  66. package/lib/components/option.js +314 -0
  67. package/lib/components/option.js.map +1 -0
  68. package/lib/components/popup.d.ts +43 -0
  69. package/lib/components/popup.d.ts.map +1 -0
  70. package/lib/components/popup.js +380 -0
  71. package/lib/components/popup.js.map +1 -0
  72. package/lib/components/radio.d.ts +198 -0
  73. package/lib/components/radio.d.ts.map +1 -0
  74. package/lib/components/radio.js +437 -0
  75. package/lib/components/radio.js.map +1 -0
  76. package/lib/components/resize-observer.d.ts +48 -0
  77. package/lib/components/resize-observer.d.ts.map +1 -0
  78. package/lib/components/resize-observer.js +108 -0
  79. package/lib/components/resize-observer.js.map +1 -0
  80. package/lib/components/scroll-container.d.ts +51 -0
  81. package/lib/components/scroll-container.d.ts.map +1 -0
  82. package/lib/components/scroll-container.js +239 -0
  83. package/lib/components/scroll-container.js.map +1 -0
  84. package/lib/components/step.d.ts +26 -0
  85. package/lib/components/step.d.ts.map +1 -0
  86. package/lib/components/step.js +75 -0
  87. package/lib/components/step.js.map +1 -0
  88. package/lib/components/switch.d.ts +111 -0
  89. package/lib/components/switch.d.ts.map +1 -0
  90. package/lib/components/switch.js +240 -0
  91. package/lib/components/switch.js.map +1 -0
  92. package/lib/components/tab.d.ts +23 -0
  93. package/lib/components/tab.d.ts.map +1 -0
  94. package/lib/components/tab.js +76 -0
  95. package/lib/components/tab.js.map +1 -0
  96. package/lib/components/tabs.d.ts +93 -0
  97. package/lib/components/tabs.d.ts.map +1 -0
  98. package/lib/components/tabs.js +653 -0
  99. package/lib/components/tabs.js.map +1 -0
  100. package/lib/components/tag.d.ts +144 -0
  101. package/lib/components/tag.d.ts.map +1 -0
  102. package/lib/components/tag.js +316 -0
  103. package/lib/components/tag.js.map +1 -0
  104. package/lib/components/textarea.d.ts +241 -0
  105. package/lib/components/textarea.d.ts.map +1 -0
  106. package/lib/components/textarea.js +585 -0
  107. package/lib/components/textarea.js.map +1 -0
  108. package/lib/components/tooltip.d.ts +40 -0
  109. package/lib/components/tooltip.d.ts.map +1 -0
  110. package/lib/components/tooltip.js +439 -0
  111. package/lib/components/tooltip.js.map +1 -0
  112. package/lib/components/wizard.d.ts +86 -0
  113. package/lib/components/wizard.d.ts.map +1 -0
  114. package/lib/components/wizard.js +636 -0
  115. package/lib/components/wizard.js.map +1 -0
  116. package/lib/icons/fontawesome/brands.d.ts +557 -0
  117. package/lib/icons/fontawesome/brands.d.ts.map +1 -0
  118. package/lib/icons/fontawesome/brands.js +557 -0
  119. package/lib/icons/fontawesome/brands.js.map +1 -0
  120. package/lib/icons/fontawesome/regular.d.ts +281 -0
  121. package/lib/icons/fontawesome/regular.d.ts.map +1 -0
  122. package/lib/icons/fontawesome/regular.js +281 -0
  123. package/lib/icons/fontawesome/regular.js.map +1 -0
  124. package/lib/icons/fontawesome/solid.d.ts +1992 -0
  125. package/lib/icons/fontawesome/solid.d.ts.map +1 -0
  126. package/lib/icons/fontawesome/solid.js +1992 -0
  127. package/lib/icons/fontawesome/solid.js.map +1 -0
  128. package/lib/icons/heroicons/micro.d.ts +324 -0
  129. package/lib/icons/heroicons/micro.d.ts.map +1 -0
  130. package/lib/icons/heroicons/micro.js +1032 -0
  131. package/lib/icons/heroicons/micro.js.map +1 -0
  132. package/lib/icons/heroicons/mini.d.ts +332 -0
  133. package/lib/icons/heroicons/mini.d.ts.map +1 -0
  134. package/lib/icons/heroicons/mini.js +1038 -0
  135. package/lib/icons/heroicons/mini.js.map +1 -0
  136. package/lib/icons/heroicons/outline.d.ts +332 -0
  137. package/lib/icons/heroicons/outline.d.ts.map +1 -0
  138. package/lib/icons/heroicons/outline.js +993 -0
  139. package/lib/icons/heroicons/outline.js.map +1 -0
  140. package/lib/icons/heroicons/solid.d.ts +332 -0
  141. package/lib/icons/heroicons/solid.d.ts.map +1 -0
  142. package/lib/icons/heroicons/solid.js +1063 -0
  143. package/lib/icons/heroicons/solid.js.map +1 -0
  144. package/lib/icons/lucide.d.ts +1872 -0
  145. package/lib/icons/lucide.d.ts.map +1 -0
  146. package/lib/icons/lucide.js +28212 -0
  147. package/lib/icons/lucide.js.map +1 -0
  148. package/lib/icons/material/filled.d.ts +2180 -0
  149. package/lib/icons/material/filled.d.ts.map +1 -0
  150. package/lib/icons/material/filled.js +14003 -0
  151. package/lib/icons/material/filled.js.map +1 -0
  152. package/lib/icons/material/outlined.d.ts +2142 -0
  153. package/lib/icons/material/outlined.d.ts.map +1 -0
  154. package/lib/icons/material/outlined.js +14545 -0
  155. package/lib/icons/material/outlined.js.map +1 -0
  156. package/lib/icons/material/round.d.ts +2147 -0
  157. package/lib/icons/material/round.d.ts.map +1 -0
  158. package/lib/icons/material/round.js +14779 -0
  159. package/lib/icons/material/round.js.map +1 -0
  160. package/lib/icons/material/sharp.d.ts +2147 -0
  161. package/lib/icons/material/sharp.d.ts.map +1 -0
  162. package/lib/icons/material/sharp.js +14189 -0
  163. package/lib/icons/material/sharp.js.map +1 -0
  164. package/lib/icons/material/two-tone.d.ts +2185 -0
  165. package/lib/icons/material/two-tone.d.ts.map +1 -0
  166. package/lib/icons/material/two-tone.js +17152 -0
  167. package/lib/icons/material/two-tone.js.map +1 -0
  168. package/lib/index.d.ts +86 -0
  169. package/lib/index.d.ts.map +1 -0
  170. package/lib/index.js +78 -0
  171. package/lib/index.js.map +1 -0
  172. package/lib/styles/button.d.ts +14 -0
  173. package/lib/styles/button.d.ts.map +1 -0
  174. package/lib/styles/button.js +498 -0
  175. package/lib/styles/button.js.map +1 -0
  176. package/lib/styles/calendar-month.d.ts +6 -0
  177. package/lib/styles/calendar-month.d.ts.map +1 -0
  178. package/lib/styles/calendar-month.js +275 -0
  179. package/lib/styles/calendar-month.js.map +1 -0
  180. package/lib/styles/calendar-navigation.d.ts +6 -0
  181. package/lib/styles/calendar-navigation.d.ts.map +1 -0
  182. package/lib/styles/calendar-navigation.js +143 -0
  183. package/lib/styles/calendar-navigation.js.map +1 -0
  184. package/lib/styles/calendar.d.ts +6 -0
  185. package/lib/styles/calendar.d.ts.map +1 -0
  186. package/lib/styles/calendar.js +28 -0
  187. package/lib/styles/calendar.js.map +1 -0
  188. package/lib/styles/checkbox.d.ts +9 -0
  189. package/lib/styles/checkbox.d.ts.map +1 -0
  190. package/lib/styles/checkbox.js +19 -0
  191. package/lib/styles/checkbox.js.map +1 -0
  192. package/lib/styles/copy.d.ts +7 -0
  193. package/lib/styles/copy.d.ts.map +1 -0
  194. package/lib/styles/copy.js +94 -0
  195. package/lib/styles/copy.js.map +1 -0
  196. package/lib/styles/custom-scrollbar.d.ts +6 -0
  197. package/lib/styles/custom-scrollbar.d.ts.map +1 -0
  198. package/lib/styles/custom-scrollbar.js +157 -0
  199. package/lib/styles/custom-scrollbar.js.map +1 -0
  200. package/lib/styles/date-picker.d.ts +6 -0
  201. package/lib/styles/date-picker.d.ts.map +1 -0
  202. package/lib/styles/date-picker.js +438 -0
  203. package/lib/styles/date-picker.js.map +1 -0
  204. package/lib/styles/dropdown.d.ts +12 -0
  205. package/lib/styles/dropdown.d.ts.map +1 -0
  206. package/lib/styles/dropdown.js +1081 -0
  207. package/lib/styles/dropdown.js.map +1 -0
  208. package/lib/styles/file-upload.d.ts +2 -0
  209. package/lib/styles/file-upload.d.ts.map +1 -0
  210. package/lib/styles/file-upload.js +241 -0
  211. package/lib/styles/file-upload.js.map +1 -0
  212. package/lib/styles/icon.d.ts +6 -0
  213. package/lib/styles/icon.d.ts.map +1 -0
  214. package/lib/styles/icon.js +241 -0
  215. package/lib/styles/icon.js.map +1 -0
  216. package/lib/styles/input.d.ts +7 -0
  217. package/lib/styles/input.d.ts.map +1 -0
  218. package/lib/styles/input.js +685 -0
  219. package/lib/styles/input.js.map +1 -0
  220. package/lib/styles/modal.d.ts +8 -0
  221. package/lib/styles/modal.d.ts.map +1 -0
  222. package/lib/styles/modal.js +134 -0
  223. package/lib/styles/modal.js.map +1 -0
  224. package/lib/styles/multiselect.d.ts +6 -0
  225. package/lib/styles/multiselect.d.ts.map +1 -0
  226. package/lib/styles/multiselect.js +825 -0
  227. package/lib/styles/multiselect.js.map +1 -0
  228. package/lib/styles/option.d.ts +6 -0
  229. package/lib/styles/option.d.ts.map +1 -0
  230. package/lib/styles/option.js +116 -0
  231. package/lib/styles/option.js.map +1 -0
  232. package/lib/styles/popup.d.ts +8 -0
  233. package/lib/styles/popup.d.ts.map +1 -0
  234. package/lib/styles/popup.js +95 -0
  235. package/lib/styles/popup.js.map +1 -0
  236. package/lib/styles/radio.d.ts +8 -0
  237. package/lib/styles/radio.d.ts.map +1 -0
  238. package/lib/styles/radio.js +160 -0
  239. package/lib/styles/radio.js.map +1 -0
  240. package/lib/styles/resize-observer.d.ts +6 -0
  241. package/lib/styles/resize-observer.d.ts.map +1 -0
  242. package/lib/styles/resize-observer.js +18 -0
  243. package/lib/styles/resize-observer.js.map +1 -0
  244. package/lib/styles/scroll-container.d.ts +6 -0
  245. package/lib/styles/scroll-container.d.ts.map +1 -0
  246. package/lib/styles/scroll-container.js +198 -0
  247. package/lib/styles/scroll-container.js.map +1 -0
  248. package/lib/styles/step.d.ts +5 -0
  249. package/lib/styles/step.d.ts.map +1 -0
  250. package/lib/styles/step.js +50 -0
  251. package/lib/styles/step.js.map +1 -0
  252. package/lib/styles/switch.d.ts +9 -0
  253. package/lib/styles/switch.d.ts.map +1 -0
  254. package/lib/styles/switch.js +100 -0
  255. package/lib/styles/switch.js.map +1 -0
  256. package/lib/styles/tab.d.ts +5 -0
  257. package/lib/styles/tab.d.ts.map +1 -0
  258. package/lib/styles/tab.js +51 -0
  259. package/lib/styles/tab.js.map +1 -0
  260. package/lib/styles/tabs.d.ts +13 -0
  261. package/lib/styles/tabs.d.ts.map +1 -0
  262. package/lib/styles/tabs.js +184 -0
  263. package/lib/styles/tabs.js.map +1 -0
  264. package/lib/styles/tag.d.ts +6 -0
  265. package/lib/styles/tag.d.ts.map +1 -0
  266. package/lib/styles/tag.js +409 -0
  267. package/lib/styles/tag.js.map +1 -0
  268. package/lib/styles/textarea.d.ts +6 -0
  269. package/lib/styles/textarea.d.ts.map +1 -0
  270. package/lib/styles/textarea.js +350 -0
  271. package/lib/styles/textarea.js.map +1 -0
  272. package/lib/styles/tooltip.d.ts +9 -0
  273. package/lib/styles/tooltip.d.ts.map +1 -0
  274. package/lib/styles/tooltip.js +133 -0
  275. package/lib/styles/tooltip.js.map +1 -0
  276. package/lib/styles/wizard.d.ts +25 -0
  277. package/lib/styles/wizard.d.ts.map +1 -0
  278. package/lib/styles/wizard.js +348 -0
  279. package/lib/styles/wizard.js.map +1 -0
  280. package/lib/types/common.d.ts +143 -0
  281. package/lib/types/common.d.ts.map +1 -0
  282. package/lib/types/common.js +5 -0
  283. package/lib/types/common.js.map +1 -0
  284. package/lib/utils/calendar-utils.d.ts +176 -0
  285. package/lib/utils/calendar-utils.d.ts.map +1 -0
  286. package/lib/utils/calendar-utils.js +370 -0
  287. package/lib/utils/calendar-utils.js.map +1 -0
  288. package/lib/utils/custom-scrollbar.d.ts +82 -0
  289. package/lib/utils/custom-scrollbar.d.ts.map +1 -0
  290. package/lib/utils/custom-scrollbar.js +320 -0
  291. package/lib/utils/custom-scrollbar.js.map +1 -0
  292. package/lib/utils/icon-registry.d.ts +78 -0
  293. package/lib/utils/icon-registry.d.ts.map +1 -0
  294. package/lib/utils/icon-registry.js +304 -0
  295. package/lib/utils/icon-registry.js.map +1 -0
  296. package/lib/utils/loader-registry.d.ts +35 -0
  297. package/lib/utils/loader-registry.d.ts.map +1 -0
  298. package/lib/utils/loader-registry.js +43 -0
  299. package/lib/utils/loader-registry.js.map +1 -0
  300. package/lib/utils/locale.d.ts +136 -0
  301. package/lib/utils/locale.d.ts.map +1 -0
  302. package/lib/utils/locale.js +213 -0
  303. package/lib/utils/locale.js.map +1 -0
  304. package/lib/utils/mobile.d.ts +14 -0
  305. package/lib/utils/mobile.d.ts.map +1 -0
  306. package/lib/utils/mobile.js +21 -0
  307. package/lib/utils/mobile.js.map +1 -0
  308. package/lib/utils/number-format.d.ts +83 -0
  309. package/lib/utils/number-format.d.ts.map +1 -0
  310. package/lib/utils/number-format.js +143 -0
  311. package/lib/utils/number-format.js.map +1 -0
  312. package/lib/utils/parse-boolean.d.ts +39 -0
  313. package/lib/utils/parse-boolean.d.ts.map +1 -0
  314. package/lib/utils/parse-boolean.js +58 -0
  315. package/lib/utils/parse-boolean.js.map +1 -0
  316. package/lib/utils/positioning.d.ts +143 -0
  317. package/lib/utils/positioning.d.ts.map +1 -0
  318. package/lib/utils/positioning.js +308 -0
  319. package/lib/utils/positioning.js.map +1 -0
  320. package/lib/utils/property-capture.d.ts +132 -0
  321. package/lib/utils/property-capture.d.ts.map +1 -0
  322. package/lib/utils/property-capture.js +152 -0
  323. package/lib/utils/property-capture.js.map +1 -0
  324. package/lib/utils/property-manager.d.ts +90 -0
  325. package/lib/utils/property-manager.d.ts.map +1 -0
  326. package/lib/utils/property-manager.js +197 -0
  327. package/lib/utils/property-manager.js.map +1 -0
  328. package/lib/utils/resize-observer.d.ts +42 -0
  329. package/lib/utils/resize-observer.d.ts.map +1 -0
  330. package/lib/utils/resize-observer.js +71 -0
  331. package/lib/utils/resize-observer.js.map +1 -0
  332. package/lib/utils/scroll-lock.d.ts +79 -0
  333. package/lib/utils/scroll-lock.d.ts.map +1 -0
  334. package/lib/utils/scroll-lock.js +197 -0
  335. package/lib/utils/scroll-lock.js.map +1 -0
  336. package/lib/utils/styles.d.ts +27 -0
  337. package/lib/utils/styles.d.ts.map +1 -0
  338. package/lib/utils/styles.js +53 -0
  339. package/lib/utils/styles.js.map +1 -0
  340. package/lib/version.d.ts +8 -0
  341. package/lib/version.d.ts.map +1 -0
  342. package/lib/version.js +11 -0
  343. package/lib/version.js.map +1 -0
  344. package/package.json +163 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../src/components/file-upload.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * TyIcon Web Component
3
+ * PORTED FROM: clj/ty/components/icon.cljs
4
+ * SVG icon component with size variants and animations
5
+ */
6
+ import type { IconSize, IconTempo, TyIconElement } from '../types/common.js';
7
+ import { TyComponent } from '../base/ty-component.js';
8
+ import type { PropertyChange } from '../utils/property-manager.js';
9
+ import * as IconRegistry from '../utils/icon-registry.js';
10
+ /**
11
+ * Component internal state (for typing TyComponent)
12
+ */
13
+ interface IconState {
14
+ name: string;
15
+ size: string;
16
+ spin: boolean;
17
+ pulse: boolean;
18
+ tempo: string;
19
+ }
20
+ /**
21
+ * Ty Icon Component
22
+ *
23
+ * @example
24
+ * ```html
25
+ * <ty-icon name="check"></ty-icon>
26
+ * <ty-icon name="spinner" spin></ty-icon>
27
+ * <ty-icon name="heart" size="xl"></ty-icon>
28
+ * ```
29
+ */
30
+ export declare class TyIcon extends TyComponent<IconState> implements TyIconElement {
31
+ static formAssociated: boolean;
32
+ protected static properties: {
33
+ name: {
34
+ type: "string";
35
+ visual: boolean;
36
+ default: string;
37
+ };
38
+ size: {
39
+ type: "string";
40
+ visual: boolean;
41
+ default: string;
42
+ };
43
+ spin: {
44
+ type: "boolean";
45
+ visual: boolean;
46
+ default: boolean;
47
+ };
48
+ pulse: {
49
+ type: "boolean";
50
+ visual: boolean;
51
+ default: boolean;
52
+ };
53
+ tempo: {
54
+ type: "string";
55
+ visual: boolean;
56
+ default: string;
57
+ };
58
+ };
59
+ private _watchId;
60
+ /** Track currently rendered SVG to avoid unnecessary re-renders */
61
+ private _currentSvg;
62
+ /**
63
+ * Single shadow-DOM <slot> that holds either:
64
+ * - light-DOM children supplied by the user (server-side path: pasted SVG), or
65
+ * - fallback content driven by the registry (`name=`) or NOT_FOUND_ICON.
66
+ *
67
+ * Browser slot semantics handle precedence: when the host has assigned nodes,
68
+ * the slot's fallback content is hidden automatically — no detection logic needed.
69
+ */
70
+ private _slot;
71
+ constructor();
72
+ /**
73
+ * Called when component connects to DOM
74
+ */
75
+ protected onConnect(): void;
76
+ /**
77
+ * Called when component disconnects from DOM
78
+ */
79
+ protected onDisconnect(): void;
80
+ /**
81
+ * Handle property changes - called BEFORE render
82
+ * Detects name changes to update icon registry watcher
83
+ */
84
+ protected onPropertiesChanged(changes: PropertyChange[]): void;
85
+ get name(): string;
86
+ set name(value: string);
87
+ get size(): IconSize | undefined;
88
+ set size(value: IconSize | undefined);
89
+ get spin(): boolean;
90
+ set spin(value: boolean);
91
+ get pulse(): boolean;
92
+ set pulse(value: boolean);
93
+ get tempo(): IconTempo | undefined;
94
+ set tempo(value: IconTempo | undefined);
95
+ /** Build CSS classes for the host element */
96
+ private buildClasses;
97
+ /** Update host element classes */
98
+ private updateClasses;
99
+ /**
100
+ * Render the icon SVG
101
+ * Smart rendering strategy:
102
+ * 1. Check memory registry (instant)
103
+ * 2. If found in memory -> render immediately
104
+ * 3. If not in memory -> show NOT_FOUND_ICON immediately (prevents empty state)
105
+ * 4. Then check cache asynchronously and replace if found
106
+ * 5. Only re-render if SVG actually changed
107
+ */
108
+ protected render(): void;
109
+ /**
110
+ * Update the slot's fallback content.
111
+ * If the user has slotted light-DOM children (e.g., raw <svg>), the browser
112
+ * shows those instead and the fallback stays hidden — but we still keep it
113
+ * up to date so removing the children reveals the right registry/fallback SVG.
114
+ */
115
+ private renderSvg;
116
+ }
117
+ export { IconRegistry };
118
+ //# sourceMappingURL=icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../src/components/icon.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAGlE,OAAO,KAAK,YAAY,MAAM,2BAA2B,CAAA;AAYzD;;GAEG;AACH,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;GASG;AACH,qBAAa,MAAO,SAAQ,WAAW,CAAC,SAAS,CAAE,YAAW,aAAa;IACzE,MAAM,CAAC,cAAc,UAAQ;IAK7B,SAAS,CAAC,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;MAM1B;IAMD,OAAO,CAAC,QAAQ,CAAsB;IAEtC,mEAAmE;IACnE,OAAO,CAAC,WAAW,CAAa;IAEhC;;;;;;;OAOG;IACH,OAAO,CAAC,KAAK,CAA+B;;IAqB5C;;OAEG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAoB3B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAQ9B;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IA6B9D,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IAED,IAAI,IAAI,IAAI,QAAQ,GAAG,SAAS,CAG/B;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAEnC;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAEtB;IAED,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,EAEvB;IAED,IAAI,KAAK,IAAI,SAAS,GAAG,SAAS,CAGjC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,EAErC;IAMD,6CAA6C;IAC7C,OAAO,CAAC,YAAY;IAoCpB,kCAAkC;IAClC,OAAO,CAAC,aAAa;IAOrB;;;;;;;;OAQG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IAkBxB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;CAWlB;AAQD,OAAO,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,245 @@
1
+ /**
2
+ * TyIcon Web Component
3
+ * PORTED FROM: clj/ty/components/icon.cljs
4
+ * SVG icon component with size variants and animations
5
+ */
6
+ import { TyComponent } from '../base/ty-component.js';
7
+ import { ensureStyles } from '../utils/styles.js';
8
+ import { iconStyles } from '../styles/icon.js';
9
+ import * as IconRegistry from '../utils/icon-registry.js';
10
+ let _iconIdCounter = 0;
11
+ /** Fallback SVG for missing icons - More visible to prevent layout shift */
12
+ const NOT_FOUND_ICON = `<svg xmlns="http://www.w3.org/2000/svg"
13
+ viewBox="0 0 512 512"
14
+ fill="currentColor"
15
+ opacity="0.2">
16
+ <path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z"/>
17
+ </svg>`;
18
+ /**
19
+ * Ty Icon Component
20
+ *
21
+ * @example
22
+ * ```html
23
+ * <ty-icon name="check"></ty-icon>
24
+ * <ty-icon name="spinner" spin></ty-icon>
25
+ * <ty-icon name="heart" size="xl"></ty-icon>
26
+ * ```
27
+ */
28
+ export class TyIcon extends TyComponent {
29
+ constructor() {
30
+ super(); // TyComponent handles attachInternals() and attachShadow()
31
+ // ============================================================================
32
+ // INTERNAL STATE - Not managed by PropertyManager
33
+ // ============================================================================
34
+ this._watchId = null;
35
+ /** Track currently rendered SVG to avoid unnecessary re-renders */
36
+ this._currentSvg = '';
37
+ /**
38
+ * Single shadow-DOM <slot> that holds either:
39
+ * - light-DOM children supplied by the user (server-side path: pasted SVG), or
40
+ * - fallback content driven by the registry (`name=`) or NOT_FOUND_ICON.
41
+ *
42
+ * Browser slot semantics handle precedence: when the host has assigned nodes,
43
+ * the slot's fallback content is hidden automatically — no detection logic needed.
44
+ */
45
+ this._slot = null;
46
+ // Apply styles to shadow root
47
+ ensureStyles(this.shadowRoot, { css: iconStyles, id: 'ty-icon' });
48
+ // Build the slot once. Fallback content shows when no light-DOM children are slotted.
49
+ this._slot = document.createElement('slot');
50
+ this._slot.innerHTML = NOT_FOUND_ICON;
51
+ this._currentSvg = NOT_FOUND_ICON;
52
+ this.shadowRoot.appendChild(this._slot);
53
+ }
54
+ // observedAttributes auto-generated by TyComponent from properties config
55
+ // ============================================================================
56
+ // TYCOMPONENT LIFECYCLE HOOKS
57
+ // ============================================================================
58
+ /**
59
+ * Called when component connects to DOM
60
+ */
61
+ onConnect() {
62
+ // Generate unique watch ID
63
+ this._watchId = `ty-icon-${++_iconIdCounter}`;
64
+ // Watch for registry changes that affect this icon
65
+ if (this.name) {
66
+ IconRegistry.addWatcher(this._watchId, this.name, (changedIcons) => {
67
+ // Re-render if our icon changed
68
+ if (this.name && changedIcons.has(this.name)) {
69
+ this.render();
70
+ }
71
+ });
72
+ }
73
+ // Update host element classes
74
+ this.updateClasses();
75
+ // TyComponent will call render() automatically after this hook
76
+ }
77
+ /**
78
+ * Called when component disconnects from DOM
79
+ */
80
+ onDisconnect() {
81
+ // Clean up watcher
82
+ if (this._watchId) {
83
+ IconRegistry.removeWatcher(this._watchId);
84
+ this._watchId = null;
85
+ }
86
+ }
87
+ /**
88
+ * Handle property changes - called BEFORE render
89
+ * Detects name changes to update icon registry watcher
90
+ */
91
+ onPropertiesChanged(changes) {
92
+ for (const change of changes) {
93
+ if (change.name === 'name') {
94
+ // Remove old watcher
95
+ if (this._watchId) {
96
+ IconRegistry.removeWatcher(this._watchId);
97
+ }
98
+ // Re-add watcher for new name
99
+ const newName = change.newValue || '';
100
+ if (newName && this.isConnected) {
101
+ this._watchId = `ty-icon-${++_iconIdCounter}`;
102
+ IconRegistry.addWatcher(this._watchId, newName, (changedIcons) => {
103
+ if (this.name && changedIcons.has(this.name)) {
104
+ this.render();
105
+ }
106
+ });
107
+ }
108
+ }
109
+ }
110
+ // Update host element classes for any visual change
111
+ this.updateClasses();
112
+ }
113
+ // ============================================================================
114
+ // PROPERTY ACCESSORS - Simple wrappers (no logic!)
115
+ // ============================================================================
116
+ get name() {
117
+ return this.getProperty('name');
118
+ }
119
+ set name(value) {
120
+ this.setProperty('name', value);
121
+ }
122
+ get size() {
123
+ const val = this.getProperty('size');
124
+ return val || undefined;
125
+ }
126
+ set size(value) {
127
+ this.setProperty('size', value || '');
128
+ }
129
+ get spin() {
130
+ return this.getProperty('spin');
131
+ }
132
+ set spin(value) {
133
+ this.setProperty('spin', value);
134
+ }
135
+ get pulse() {
136
+ return this.getProperty('pulse');
137
+ }
138
+ set pulse(value) {
139
+ this.setProperty('pulse', value);
140
+ }
141
+ get tempo() {
142
+ const val = this.getProperty('tempo');
143
+ return val || undefined;
144
+ }
145
+ set tempo(value) {
146
+ this.setProperty('tempo', value || '');
147
+ }
148
+ // ============================================================================
149
+ // RENDERING
150
+ // ============================================================================
151
+ /** Build CSS classes for the host element */
152
+ buildClasses() {
153
+ const classes = [];
154
+ // Size class
155
+ const size = this.getProperty('size');
156
+ if (size) {
157
+ classes.push(`icon-${size}`);
158
+ }
159
+ // Animation classes
160
+ if (this.getProperty('spin')) {
161
+ classes.push('icon-spin');
162
+ }
163
+ if (this.getProperty('pulse')) {
164
+ classes.push('icon-pulse');
165
+ }
166
+ // Tempo class
167
+ const tempo = this.getProperty('tempo');
168
+ if (tempo && (this.getProperty('spin') || this.getProperty('pulse'))) {
169
+ classes.push(`icon-tempo-${tempo}`);
170
+ }
171
+ // Preserve user-added classes that don't conflict
172
+ const currentClasses = this.className.split(/\s+/).filter(cls => {
173
+ // Filter out component-managed classes
174
+ return cls &&
175
+ !cls.startsWith('icon-') &&
176
+ cls !== 'icon-spin' &&
177
+ cls !== 'icon-pulse';
178
+ });
179
+ return [...classes, ...currentClasses];
180
+ }
181
+ /** Update host element classes */
182
+ updateClasses() {
183
+ const newClasses = this.buildClasses().join(' ');
184
+ if (this.className !== newClasses) {
185
+ this.className = newClasses;
186
+ }
187
+ }
188
+ /**
189
+ * Render the icon SVG
190
+ * Smart rendering strategy:
191
+ * 1. Check memory registry (instant)
192
+ * 2. If found in memory -> render immediately
193
+ * 3. If not in memory -> show NOT_FOUND_ICON immediately (prevents empty state)
194
+ * 4. Then check cache asynchronously and replace if found
195
+ * 5. Only re-render if SVG actually changed
196
+ */
197
+ render() {
198
+ const name = this.getProperty('name');
199
+ if (!name) {
200
+ this.renderSvg(NOT_FOUND_ICON);
201
+ return;
202
+ }
203
+ // Fast path: Check memory registry first
204
+ const memorySvg = IconRegistry.getIcon(name);
205
+ if (memorySvg) {
206
+ this.renderSvg(memorySvg);
207
+ return;
208
+ }
209
+ this.renderSvg(NOT_FOUND_ICON);
210
+ }
211
+ /**
212
+ * Update the slot's fallback content.
213
+ * If the user has slotted light-DOM children (e.g., raw <svg>), the browser
214
+ * shows those instead and the fallback stays hidden — but we still keep it
215
+ * up to date so removing the children reveals the right registry/fallback SVG.
216
+ */
217
+ renderSvg(svg) {
218
+ // Only render if content actually changed
219
+ if (this._currentSvg === svg) {
220
+ return;
221
+ }
222
+ if (this._slot) {
223
+ this._slot.innerHTML = svg;
224
+ this._currentSvg = svg;
225
+ }
226
+ }
227
+ }
228
+ TyIcon.formAssociated = false;
229
+ // ============================================================================
230
+ // PROPERTY CONFIGURATION - Declarative property lifecycle
231
+ // ============================================================================
232
+ TyIcon.properties = {
233
+ name: { type: 'string', visual: true, default: '' },
234
+ size: { type: 'string', visual: true, default: '' },
235
+ spin: { type: 'boolean', visual: true, default: false },
236
+ pulse: { type: 'boolean', visual: true, default: false },
237
+ tempo: { type: 'string', visual: true, default: '' },
238
+ };
239
+ // Register the custom element
240
+ if (!customElements.get('ty-icon')) {
241
+ customElements.define('ty-icon', TyIcon);
242
+ }
243
+ // Export for use in other modules
244
+ export { IconRegistry };
245
+ //# sourceMappingURL=icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../src/components/icon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,270 @@
1
+ /**
2
+ * TyInput Web Component
3
+ * PORTED FROM: clj/ty/components/input.cljs
4
+ * Phase D: Complete with debounce feature for input and change events
5
+ *
6
+ * Enhanced input component with:
7
+ * - Label, error messages, semantic styling
8
+ * - Icon slots (start/end)
9
+ * - Numeric formatting with shadow values
10
+ * - Currency, percent, compact notation
11
+ * - Format-on-blur / raw-on-focus behavior
12
+ * - Debounce (0-5000ms) for input/change events
13
+ * - Immediate event firing on blur (cancels pending debounce)
14
+ *
15
+ * NOTE: Checkbox functionality is in separate ty-checkbox component
16
+ */
17
+ import type { Flavor, Size, InputType, TyInputElement } from '../types/common.js';
18
+ import { TyComponent } from '../base/ty-component.js';
19
+ import type { PropertyChange } from '../utils/property-manager.js';
20
+ /**
21
+ * Ty Input Component (Phase D - Complete with Debounce)
22
+ *
23
+ * @example
24
+ * ```html
25
+ * <!-- Basic input -->
26
+ * <ty-input label="Email" type="email" placeholder="Enter email" required></ty-input>
27
+ *
28
+ * <!-- With icons -->
29
+ * <ty-input label="Search">
30
+ * <ty-icon slot="start" name="search"></ty-icon>
31
+ * </ty-input>
32
+ *
33
+ * <!-- With debounce (500ms) -->
34
+ * <ty-input
35
+ * label="Search"
36
+ * debounce="500"
37
+ * placeholder="Type to search...">
38
+ * </ty-input>
39
+ *
40
+ * <!-- Currency formatting -->
41
+ * <ty-input
42
+ * label="Price"
43
+ * type="currency"
44
+ * currency="USD"
45
+ * locale="en-US"
46
+ * value="1234.56">
47
+ * </ty-input>
48
+ *
49
+ * <!-- Percent formatting -->
50
+ * <ty-input
51
+ * label="Tax Rate"
52
+ * type="percent"
53
+ * value="15"
54
+ * precision="2">
55
+ * </ty-input>
56
+ * ```
57
+ */
58
+ /**
59
+ * Internal state interface for TyInput component
60
+ */
61
+ interface InputState {
62
+ shadowValue: number | string | null;
63
+ isFocused: boolean;
64
+ listenersSetup: boolean;
65
+ inputHandler: ((e: Event) => void) | null;
66
+ changeHandler: ((e: Event) => void) | null;
67
+ focusHandler: ((e: Event) => void) | null;
68
+ blurHandler: ((e: Event) => void) | null;
69
+ inputDebounceTimer: number | null;
70
+ changeDebounceTimer: number | null;
71
+ localeObserver?: () => void;
72
+ }
73
+ export declare class TyInput extends TyComponent<InputState> implements TyInputElement {
74
+ static formAssociated: boolean;
75
+ protected static properties: {
76
+ type: {
77
+ type: "string";
78
+ visual: boolean;
79
+ default: string;
80
+ validate: (v: any) => boolean;
81
+ coerce: (v: any) => any;
82
+ };
83
+ value: {
84
+ type: "string";
85
+ visual: boolean;
86
+ formValue: boolean;
87
+ emitChange: boolean;
88
+ default: string;
89
+ };
90
+ name: {
91
+ type: "string";
92
+ default: string;
93
+ };
94
+ placeholder: {
95
+ type: "string";
96
+ visual: boolean;
97
+ default: string;
98
+ };
99
+ label: {
100
+ type: "string";
101
+ visual: boolean;
102
+ default: string;
103
+ };
104
+ disabled: {
105
+ type: "boolean";
106
+ visual: boolean;
107
+ default: boolean;
108
+ };
109
+ required: {
110
+ type: "boolean";
111
+ visual: boolean;
112
+ default: boolean;
113
+ };
114
+ error: {
115
+ type: "string";
116
+ visual: boolean;
117
+ default: string;
118
+ };
119
+ size: {
120
+ type: "string";
121
+ visual: boolean;
122
+ default: string;
123
+ validate: (v: any) => boolean;
124
+ coerce: (v: any) => any;
125
+ };
126
+ flavor: {
127
+ type: "string";
128
+ visual: boolean;
129
+ default: string;
130
+ validate: (v: any) => boolean;
131
+ coerce: (v: any) => any;
132
+ };
133
+ currency: {
134
+ type: "string";
135
+ visual: boolean;
136
+ default: string;
137
+ };
138
+ locale: {
139
+ type: "string";
140
+ visual: boolean;
141
+ default: string;
142
+ };
143
+ precision: {
144
+ type: "number";
145
+ visual: boolean;
146
+ default: undefined;
147
+ validate: (v: any) => boolean;
148
+ coerce: (v: any) => number | undefined;
149
+ };
150
+ debounce: {
151
+ type: "number";
152
+ default: number;
153
+ validate: (v: any) => boolean;
154
+ coerce: (v: any) => number;
155
+ };
156
+ };
157
+ private _shadowValue;
158
+ private _isFocused;
159
+ private _listenersSetup;
160
+ private _inputHandler;
161
+ private _changeHandler;
162
+ private _focusHandler;
163
+ private _blurHandler;
164
+ private _inputDebounceTimer;
165
+ private _changeDebounceTimer;
166
+ private _localeObserver?;
167
+ constructor();
168
+ /**
169
+ * Called when component connects to DOM
170
+ * TyComponent already handled pre-connection property capture
171
+ */
172
+ protected onConnect(): void;
173
+ /**
174
+ * Called when component disconnects from DOM
175
+ */
176
+ protected onDisconnect(): void;
177
+ /**
178
+ * Handle property changes - called BEFORE render
179
+ * This replaces the old attributeChangedCallback logic
180
+ */
181
+ protected onPropertiesChanged(changes: PropertyChange[]): void;
182
+ /**
183
+ * Hook: Called when form is reset
184
+ * Clear shadow value and focus state
185
+ */
186
+ protected onFormReset(): void;
187
+ /**
188
+ * Override form value to return shadow value
189
+ * This ensures numeric types submit their parsed values
190
+ */
191
+ protected getFormValue(): FormDataEntryValue | null;
192
+ /**
193
+ * Initialize shadow value from the initial value attribute
194
+ */
195
+ private initializeShadowValue;
196
+ /**
197
+ * Parse a string value to the appropriate shadow value type
198
+ */
199
+ private parseShadowValue;
200
+ /**
201
+ * Check if current input should format numbers
202
+ */
203
+ private shouldFormat;
204
+ /**
205
+ * Get the format configuration for current input
206
+ */
207
+ private getFormatConfig;
208
+ /**
209
+ * Get the display value (formatted or raw)
210
+ */
211
+ private getDisplayValue;
212
+ get type(): InputType;
213
+ set type(v: InputType);
214
+ get value(): string;
215
+ set value(v: string);
216
+ get name(): string;
217
+ set name(v: string);
218
+ get placeholder(): string;
219
+ set placeholder(v: string);
220
+ get label(): string;
221
+ set label(v: string);
222
+ get disabled(): boolean;
223
+ set disabled(v: boolean);
224
+ get required(): boolean;
225
+ set required(v: boolean);
226
+ get error(): string;
227
+ set error(v: string);
228
+ get size(): Size;
229
+ set size(v: Size);
230
+ get flavor(): Flavor;
231
+ set flavor(v: Flavor);
232
+ get currency(): string;
233
+ set currency(v: string);
234
+ get locale(): string;
235
+ set locale(v: string);
236
+ get precision(): number | undefined;
237
+ set precision(v: number | string | undefined);
238
+ get debounce(): number;
239
+ set debounce(v: number | string);
240
+ get form(): HTMLFormElement | null;
241
+ /**
242
+ * Build CSS class list for input wrapper
243
+ */
244
+ private buildClassList;
245
+ /**
246
+ * Dispatch input event (helper method for debouncing)
247
+ */
248
+ private dispatchInputEvent;
249
+ /**
250
+ * Dispatch change event (helper method for debouncing)
251
+ */
252
+ private dispatchChangeEvent;
253
+ /**
254
+ * Remove event listeners for cleanup
255
+ */
256
+ private removeEventListeners;
257
+ /**
258
+ * Setup event listeners for input element
259
+ * IMPORTANT: Only called ONCE, not on every render (like ClojureScript)
260
+ */
261
+ private setupEventListeners;
262
+ /**
263
+ * Render the input component with wrapper and slots
264
+ * Phase C: Uses getDisplayValue() for formatted output
265
+ *
266
+ */
267
+ render(): void;
268
+ }
269
+ export {};
270
+ //# sourceMappingURL=input.d.ts.map