tyrell-components 1.0.0-TC7

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 (330) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +221 -0
  3. package/css/tyrell.css +1783 -0
  4. package/dist/tyrell.css +1783 -0
  5. package/dist/tyrell.js +2 -0
  6. package/lib/base/ty-component.d.ts +133 -0
  7. package/lib/base/ty-component.d.ts.map +1 -0
  8. package/lib/base/ty-component.js +297 -0
  9. package/lib/base/ty-component.js.map +1 -0
  10. package/lib/components/button.d.ts +126 -0
  11. package/lib/components/button.d.ts.map +1 -0
  12. package/lib/components/button.js +244 -0
  13. package/lib/components/button.js.map +1 -0
  14. package/lib/components/calendar-month.d.ts +132 -0
  15. package/lib/components/calendar-month.d.ts.map +1 -0
  16. package/lib/components/calendar-month.js +440 -0
  17. package/lib/components/calendar-month.js.map +1 -0
  18. package/lib/components/calendar-navigation.d.ts +137 -0
  19. package/lib/components/calendar-navigation.d.ts.map +1 -0
  20. package/lib/components/calendar-navigation.js +366 -0
  21. package/lib/components/calendar-navigation.js.map +1 -0
  22. package/lib/components/calendar.d.ts +166 -0
  23. package/lib/components/calendar.d.ts.map +1 -0
  24. package/lib/components/calendar.js +774 -0
  25. package/lib/components/calendar.js.map +1 -0
  26. package/lib/components/checkbox.d.ts +189 -0
  27. package/lib/components/checkbox.d.ts.map +1 -0
  28. package/lib/components/checkbox.js +400 -0
  29. package/lib/components/checkbox.js.map +1 -0
  30. package/lib/components/copy.d.ts +180 -0
  31. package/lib/components/copy.d.ts.map +1 -0
  32. package/lib/components/copy.js +393 -0
  33. package/lib/components/copy.js.map +1 -0
  34. package/lib/components/date-picker.d.ts +379 -0
  35. package/lib/components/date-picker.d.ts.map +1 -0
  36. package/lib/components/date-picker.js +1586 -0
  37. package/lib/components/date-picker.js.map +1 -0
  38. package/lib/components/dropdown.d.ts +402 -0
  39. package/lib/components/dropdown.d.ts.map +1 -0
  40. package/lib/components/dropdown.js +1564 -0
  41. package/lib/components/dropdown.js.map +1 -0
  42. package/lib/components/icon.d.ts +107 -0
  43. package/lib/components/icon.d.ts.map +1 -0
  44. package/lib/components/icon.js +230 -0
  45. package/lib/components/icon.js.map +1 -0
  46. package/lib/components/input.d.ts +270 -0
  47. package/lib/components/input.d.ts.map +1 -0
  48. package/lib/components/input.js +721 -0
  49. package/lib/components/input.js.map +1 -0
  50. package/lib/components/modal.d.ts +58 -0
  51. package/lib/components/modal.d.ts.map +1 -0
  52. package/lib/components/modal.js +473 -0
  53. package/lib/components/modal.js.map +1 -0
  54. package/lib/components/multiselect.d.ts +397 -0
  55. package/lib/components/multiselect.d.ts.map +1 -0
  56. package/lib/components/multiselect.js +1580 -0
  57. package/lib/components/multiselect.js.map +1 -0
  58. package/lib/components/option.d.ts +66 -0
  59. package/lib/components/option.d.ts.map +1 -0
  60. package/lib/components/option.js +314 -0
  61. package/lib/components/option.js.map +1 -0
  62. package/lib/components/popup.d.ts +43 -0
  63. package/lib/components/popup.d.ts.map +1 -0
  64. package/lib/components/popup.js +380 -0
  65. package/lib/components/popup.js.map +1 -0
  66. package/lib/components/radio.d.ts +198 -0
  67. package/lib/components/radio.d.ts.map +1 -0
  68. package/lib/components/radio.js +437 -0
  69. package/lib/components/radio.js.map +1 -0
  70. package/lib/components/resize-observer.d.ts +48 -0
  71. package/lib/components/resize-observer.d.ts.map +1 -0
  72. package/lib/components/resize-observer.js +108 -0
  73. package/lib/components/resize-observer.js.map +1 -0
  74. package/lib/components/scroll-container.d.ts +51 -0
  75. package/lib/components/scroll-container.d.ts.map +1 -0
  76. package/lib/components/scroll-container.js +239 -0
  77. package/lib/components/scroll-container.js.map +1 -0
  78. package/lib/components/step.d.ts +26 -0
  79. package/lib/components/step.d.ts.map +1 -0
  80. package/lib/components/step.js +75 -0
  81. package/lib/components/step.js.map +1 -0
  82. package/lib/components/switch.d.ts +111 -0
  83. package/lib/components/switch.d.ts.map +1 -0
  84. package/lib/components/switch.js +240 -0
  85. package/lib/components/switch.js.map +1 -0
  86. package/lib/components/tab.d.ts +23 -0
  87. package/lib/components/tab.d.ts.map +1 -0
  88. package/lib/components/tab.js +76 -0
  89. package/lib/components/tab.js.map +1 -0
  90. package/lib/components/tabs.d.ts +93 -0
  91. package/lib/components/tabs.d.ts.map +1 -0
  92. package/lib/components/tabs.js +653 -0
  93. package/lib/components/tabs.js.map +1 -0
  94. package/lib/components/tag.d.ts +144 -0
  95. package/lib/components/tag.d.ts.map +1 -0
  96. package/lib/components/tag.js +314 -0
  97. package/lib/components/tag.js.map +1 -0
  98. package/lib/components/textarea.d.ts +241 -0
  99. package/lib/components/textarea.d.ts.map +1 -0
  100. package/lib/components/textarea.js +585 -0
  101. package/lib/components/textarea.js.map +1 -0
  102. package/lib/components/tooltip.d.ts +40 -0
  103. package/lib/components/tooltip.d.ts.map +1 -0
  104. package/lib/components/tooltip.js +439 -0
  105. package/lib/components/tooltip.js.map +1 -0
  106. package/lib/components/wizard.d.ts +86 -0
  107. package/lib/components/wizard.d.ts.map +1 -0
  108. package/lib/components/wizard.js +636 -0
  109. package/lib/components/wizard.js.map +1 -0
  110. package/lib/icons/fontawesome/brands.d.ts +557 -0
  111. package/lib/icons/fontawesome/brands.d.ts.map +1 -0
  112. package/lib/icons/fontawesome/brands.js +557 -0
  113. package/lib/icons/fontawesome/brands.js.map +1 -0
  114. package/lib/icons/fontawesome/regular.d.ts +281 -0
  115. package/lib/icons/fontawesome/regular.d.ts.map +1 -0
  116. package/lib/icons/fontawesome/regular.js +281 -0
  117. package/lib/icons/fontawesome/regular.js.map +1 -0
  118. package/lib/icons/fontawesome/solid.d.ts +1992 -0
  119. package/lib/icons/fontawesome/solid.d.ts.map +1 -0
  120. package/lib/icons/fontawesome/solid.js +1992 -0
  121. package/lib/icons/fontawesome/solid.js.map +1 -0
  122. package/lib/icons/heroicons/micro.d.ts +324 -0
  123. package/lib/icons/heroicons/micro.d.ts.map +1 -0
  124. package/lib/icons/heroicons/micro.js +1032 -0
  125. package/lib/icons/heroicons/micro.js.map +1 -0
  126. package/lib/icons/heroicons/mini.d.ts +332 -0
  127. package/lib/icons/heroicons/mini.d.ts.map +1 -0
  128. package/lib/icons/heroicons/mini.js +1038 -0
  129. package/lib/icons/heroicons/mini.js.map +1 -0
  130. package/lib/icons/heroicons/outline.d.ts +332 -0
  131. package/lib/icons/heroicons/outline.d.ts.map +1 -0
  132. package/lib/icons/heroicons/outline.js +993 -0
  133. package/lib/icons/heroicons/outline.js.map +1 -0
  134. package/lib/icons/heroicons/solid.d.ts +332 -0
  135. package/lib/icons/heroicons/solid.d.ts.map +1 -0
  136. package/lib/icons/heroicons/solid.js +1063 -0
  137. package/lib/icons/heroicons/solid.js.map +1 -0
  138. package/lib/icons/lucide.d.ts +1872 -0
  139. package/lib/icons/lucide.d.ts.map +1 -0
  140. package/lib/icons/lucide.js +28212 -0
  141. package/lib/icons/lucide.js.map +1 -0
  142. package/lib/icons/material/filled.d.ts +2180 -0
  143. package/lib/icons/material/filled.d.ts.map +1 -0
  144. package/lib/icons/material/filled.js +14003 -0
  145. package/lib/icons/material/filled.js.map +1 -0
  146. package/lib/icons/material/outlined.d.ts +2142 -0
  147. package/lib/icons/material/outlined.d.ts.map +1 -0
  148. package/lib/icons/material/outlined.js +14545 -0
  149. package/lib/icons/material/outlined.js.map +1 -0
  150. package/lib/icons/material/round.d.ts +2147 -0
  151. package/lib/icons/material/round.d.ts.map +1 -0
  152. package/lib/icons/material/round.js +14779 -0
  153. package/lib/icons/material/round.js.map +1 -0
  154. package/lib/icons/material/sharp.d.ts +2147 -0
  155. package/lib/icons/material/sharp.d.ts.map +1 -0
  156. package/lib/icons/material/sharp.js +14189 -0
  157. package/lib/icons/material/sharp.js.map +1 -0
  158. package/lib/icons/material/two-tone.d.ts +2185 -0
  159. package/lib/icons/material/two-tone.d.ts.map +1 -0
  160. package/lib/icons/material/two-tone.js +17152 -0
  161. package/lib/icons/material/two-tone.js.map +1 -0
  162. package/lib/index.d.ts +78 -0
  163. package/lib/index.d.ts.map +1 -0
  164. package/lib/index.js +71 -0
  165. package/lib/index.js.map +1 -0
  166. package/lib/styles/button.d.ts +14 -0
  167. package/lib/styles/button.d.ts.map +1 -0
  168. package/lib/styles/button.js +457 -0
  169. package/lib/styles/button.js.map +1 -0
  170. package/lib/styles/calendar-month.d.ts +6 -0
  171. package/lib/styles/calendar-month.d.ts.map +1 -0
  172. package/lib/styles/calendar-month.js +229 -0
  173. package/lib/styles/calendar-month.js.map +1 -0
  174. package/lib/styles/calendar-navigation.d.ts +6 -0
  175. package/lib/styles/calendar-navigation.d.ts.map +1 -0
  176. package/lib/styles/calendar-navigation.js +125 -0
  177. package/lib/styles/calendar-navigation.js.map +1 -0
  178. package/lib/styles/calendar.d.ts +6 -0
  179. package/lib/styles/calendar.d.ts.map +1 -0
  180. package/lib/styles/calendar.js +28 -0
  181. package/lib/styles/calendar.js.map +1 -0
  182. package/lib/styles/checkbox.d.ts +9 -0
  183. package/lib/styles/checkbox.d.ts.map +1 -0
  184. package/lib/styles/checkbox.js +19 -0
  185. package/lib/styles/checkbox.js.map +1 -0
  186. package/lib/styles/copy.d.ts +7 -0
  187. package/lib/styles/copy.d.ts.map +1 -0
  188. package/lib/styles/copy.js +94 -0
  189. package/lib/styles/copy.js.map +1 -0
  190. package/lib/styles/custom-scrollbar.d.ts +6 -0
  191. package/lib/styles/custom-scrollbar.d.ts.map +1 -0
  192. package/lib/styles/custom-scrollbar.js +157 -0
  193. package/lib/styles/custom-scrollbar.js.map +1 -0
  194. package/lib/styles/date-picker.d.ts +6 -0
  195. package/lib/styles/date-picker.d.ts.map +1 -0
  196. package/lib/styles/date-picker.js +400 -0
  197. package/lib/styles/date-picker.js.map +1 -0
  198. package/lib/styles/dropdown.d.ts +12 -0
  199. package/lib/styles/dropdown.d.ts.map +1 -0
  200. package/lib/styles/dropdown.js +983 -0
  201. package/lib/styles/dropdown.js.map +1 -0
  202. package/lib/styles/icon.d.ts +6 -0
  203. package/lib/styles/icon.d.ts.map +1 -0
  204. package/lib/styles/icon.js +231 -0
  205. package/lib/styles/icon.js.map +1 -0
  206. package/lib/styles/input.d.ts +7 -0
  207. package/lib/styles/input.d.ts.map +1 -0
  208. package/lib/styles/input.js +685 -0
  209. package/lib/styles/input.js.map +1 -0
  210. package/lib/styles/modal.d.ts +8 -0
  211. package/lib/styles/modal.d.ts.map +1 -0
  212. package/lib/styles/modal.js +134 -0
  213. package/lib/styles/modal.js.map +1 -0
  214. package/lib/styles/multiselect.d.ts +6 -0
  215. package/lib/styles/multiselect.d.ts.map +1 -0
  216. package/lib/styles/multiselect.js +774 -0
  217. package/lib/styles/multiselect.js.map +1 -0
  218. package/lib/styles/option.d.ts +6 -0
  219. package/lib/styles/option.d.ts.map +1 -0
  220. package/lib/styles/option.js +116 -0
  221. package/lib/styles/option.js.map +1 -0
  222. package/lib/styles/popup.d.ts +8 -0
  223. package/lib/styles/popup.d.ts.map +1 -0
  224. package/lib/styles/popup.js +95 -0
  225. package/lib/styles/popup.js.map +1 -0
  226. package/lib/styles/radio.d.ts +8 -0
  227. package/lib/styles/radio.d.ts.map +1 -0
  228. package/lib/styles/radio.js +160 -0
  229. package/lib/styles/radio.js.map +1 -0
  230. package/lib/styles/resize-observer.d.ts +6 -0
  231. package/lib/styles/resize-observer.d.ts.map +1 -0
  232. package/lib/styles/resize-observer.js +18 -0
  233. package/lib/styles/resize-observer.js.map +1 -0
  234. package/lib/styles/scroll-container.d.ts +6 -0
  235. package/lib/styles/scroll-container.d.ts.map +1 -0
  236. package/lib/styles/scroll-container.js +198 -0
  237. package/lib/styles/scroll-container.js.map +1 -0
  238. package/lib/styles/step.d.ts +5 -0
  239. package/lib/styles/step.d.ts.map +1 -0
  240. package/lib/styles/step.js +50 -0
  241. package/lib/styles/step.js.map +1 -0
  242. package/lib/styles/switch.d.ts +9 -0
  243. package/lib/styles/switch.d.ts.map +1 -0
  244. package/lib/styles/switch.js +100 -0
  245. package/lib/styles/switch.js.map +1 -0
  246. package/lib/styles/tab.d.ts +5 -0
  247. package/lib/styles/tab.d.ts.map +1 -0
  248. package/lib/styles/tab.js +51 -0
  249. package/lib/styles/tab.js.map +1 -0
  250. package/lib/styles/tabs.d.ts +13 -0
  251. package/lib/styles/tabs.d.ts.map +1 -0
  252. package/lib/styles/tabs.js +184 -0
  253. package/lib/styles/tabs.js.map +1 -0
  254. package/lib/styles/tag.d.ts +6 -0
  255. package/lib/styles/tag.d.ts.map +1 -0
  256. package/lib/styles/tag.js +415 -0
  257. package/lib/styles/tag.js.map +1 -0
  258. package/lib/styles/textarea.d.ts +6 -0
  259. package/lib/styles/textarea.d.ts.map +1 -0
  260. package/lib/styles/textarea.js +350 -0
  261. package/lib/styles/textarea.js.map +1 -0
  262. package/lib/styles/tooltip.d.ts +9 -0
  263. package/lib/styles/tooltip.d.ts.map +1 -0
  264. package/lib/styles/tooltip.js +136 -0
  265. package/lib/styles/tooltip.js.map +1 -0
  266. package/lib/styles/wizard.d.ts +25 -0
  267. package/lib/styles/wizard.d.ts.map +1 -0
  268. package/lib/styles/wizard.js +325 -0
  269. package/lib/styles/wizard.js.map +1 -0
  270. package/lib/types/common.d.ts +143 -0
  271. package/lib/types/common.d.ts.map +1 -0
  272. package/lib/types/common.js +5 -0
  273. package/lib/types/common.js.map +1 -0
  274. package/lib/utils/calendar-utils.d.ts +176 -0
  275. package/lib/utils/calendar-utils.d.ts.map +1 -0
  276. package/lib/utils/calendar-utils.js +370 -0
  277. package/lib/utils/calendar-utils.js.map +1 -0
  278. package/lib/utils/custom-scrollbar.d.ts +82 -0
  279. package/lib/utils/custom-scrollbar.d.ts.map +1 -0
  280. package/lib/utils/custom-scrollbar.js +320 -0
  281. package/lib/utils/custom-scrollbar.js.map +1 -0
  282. package/lib/utils/icon-registry.d.ts +78 -0
  283. package/lib/utils/icon-registry.d.ts.map +1 -0
  284. package/lib/utils/icon-registry.js +304 -0
  285. package/lib/utils/icon-registry.js.map +1 -0
  286. package/lib/utils/locale.d.ts +136 -0
  287. package/lib/utils/locale.d.ts.map +1 -0
  288. package/lib/utils/locale.js +213 -0
  289. package/lib/utils/locale.js.map +1 -0
  290. package/lib/utils/mobile.d.ts +14 -0
  291. package/lib/utils/mobile.d.ts.map +1 -0
  292. package/lib/utils/mobile.js +21 -0
  293. package/lib/utils/mobile.js.map +1 -0
  294. package/lib/utils/number-format.d.ts +83 -0
  295. package/lib/utils/number-format.d.ts.map +1 -0
  296. package/lib/utils/number-format.js +143 -0
  297. package/lib/utils/number-format.js.map +1 -0
  298. package/lib/utils/parse-boolean.d.ts +39 -0
  299. package/lib/utils/parse-boolean.d.ts.map +1 -0
  300. package/lib/utils/parse-boolean.js +58 -0
  301. package/lib/utils/parse-boolean.js.map +1 -0
  302. package/lib/utils/positioning.d.ts +143 -0
  303. package/lib/utils/positioning.d.ts.map +1 -0
  304. package/lib/utils/positioning.js +308 -0
  305. package/lib/utils/positioning.js.map +1 -0
  306. package/lib/utils/property-capture.d.ts +132 -0
  307. package/lib/utils/property-capture.d.ts.map +1 -0
  308. package/lib/utils/property-capture.js +152 -0
  309. package/lib/utils/property-capture.js.map +1 -0
  310. package/lib/utils/property-manager.d.ts +90 -0
  311. package/lib/utils/property-manager.d.ts.map +1 -0
  312. package/lib/utils/property-manager.js +197 -0
  313. package/lib/utils/property-manager.js.map +1 -0
  314. package/lib/utils/resize-observer.d.ts +42 -0
  315. package/lib/utils/resize-observer.d.ts.map +1 -0
  316. package/lib/utils/resize-observer.js +71 -0
  317. package/lib/utils/resize-observer.js.map +1 -0
  318. package/lib/utils/scroll-lock.d.ts +79 -0
  319. package/lib/utils/scroll-lock.d.ts.map +1 -0
  320. package/lib/utils/scroll-lock.js +197 -0
  321. package/lib/utils/scroll-lock.js.map +1 -0
  322. package/lib/utils/styles.d.ts +27 -0
  323. package/lib/utils/styles.d.ts.map +1 -0
  324. package/lib/utils/styles.js +53 -0
  325. package/lib/utils/styles.js.map +1 -0
  326. package/lib/version.d.ts +8 -0
  327. package/lib/version.d.ts.map +1 -0
  328. package/lib/version.js +11 -0
  329. package/lib/version.js.map +1 -0
  330. package/package.json +159 -0
@@ -0,0 +1,144 @@
1
+ /**
2
+ * TyTag Web Component
3
+ * PORTED FROM: clj/ty/components/tag.cljs
4
+ * Tag component with slots and semantic flavors
5
+ */
6
+ import type { Flavor, Size, TyTagElement } from '../types/common.js';
7
+ import { TyComponent } from '../base/ty-component.js';
8
+ import type { PropertyChange } from '../utils/property-manager.js';
9
+ /**
10
+ * Component internal state (for typing TyComponent)
11
+ */
12
+ interface TagState {
13
+ flavor: Flavor;
14
+ size: Size;
15
+ value: string;
16
+ selected: boolean;
17
+ pill: boolean;
18
+ clickable: boolean;
19
+ dismissible: boolean;
20
+ disabled: boolean;
21
+ }
22
+ /**
23
+ * Ty Tag Component
24
+ *
25
+ * @example
26
+ * ```html
27
+ * <ty-tag flavor="primary">Primary Tag</ty-tag>
28
+ * <ty-tag flavor="success" dismissible>Success Tag</ty-tag>
29
+ * <ty-tag flavor="danger" clickable>Clickable Tag</ty-tag>
30
+ * <ty-tag value="tag-1" selected>Selected Tag</ty-tag>
31
+ * ```
32
+ */
33
+ export declare class TyTag extends TyComponent<TagState> implements TyTagElement {
34
+ static formAssociated: boolean;
35
+ protected static properties: {
36
+ flavor: {
37
+ type: "string";
38
+ visual: boolean;
39
+ default: string;
40
+ };
41
+ size: {
42
+ type: "string";
43
+ visual: boolean;
44
+ default: string;
45
+ validate: (v: any) => boolean;
46
+ coerce: (v: any) => any;
47
+ };
48
+ value: {
49
+ type: "string";
50
+ visual: boolean;
51
+ default: string;
52
+ };
53
+ selected: {
54
+ type: "boolean";
55
+ visual: boolean;
56
+ default: boolean;
57
+ };
58
+ pill: {
59
+ type: "boolean";
60
+ visual: boolean;
61
+ default: boolean;
62
+ aliases: {
63
+ 'not-pill': boolean;
64
+ };
65
+ };
66
+ clickable: {
67
+ type: "boolean";
68
+ visual: boolean;
69
+ default: boolean;
70
+ };
71
+ dismissible: {
72
+ type: "boolean";
73
+ visual: boolean;
74
+ default: boolean;
75
+ };
76
+ disabled: {
77
+ type: "boolean";
78
+ visual: boolean;
79
+ default: boolean;
80
+ };
81
+ };
82
+ private _cleanup;
83
+ constructor();
84
+ /**
85
+ * Called when component connects to DOM
86
+ * TyComponent already handled pre-connection property capture
87
+ * TyComponent will call render() automatically after this hook
88
+ */
89
+ protected onConnect(): void;
90
+ /**
91
+ * Called when component disconnects from DOM
92
+ */
93
+ protected onDisconnect(): void;
94
+ /**
95
+ * Handle property changes - called BEFORE render
96
+ */
97
+ protected onPropertiesChanged(_changes: PropertyChange[]): void;
98
+ /**
99
+ * Handle tag click events
100
+ */
101
+ private handleClick;
102
+ /**
103
+ * Handle tag dismiss events
104
+ */
105
+ private handleDismiss;
106
+ /**
107
+ * Handle keyboard interactions
108
+ */
109
+ private handleKeydown;
110
+ /**
111
+ * Dispatch custom tag events
112
+ */
113
+ private dispatchTagEvent;
114
+ /**
115
+ * Clean up existing event listeners
116
+ */
117
+ private cleanupEventListeners;
118
+ /**
119
+ * Setup event listeners for tag interactions
120
+ */
121
+ private setupEventListeners;
122
+ /**
123
+ * Render the tag component
124
+ */
125
+ protected render(): void;
126
+ get flavor(): Flavor;
127
+ set flavor(value: Flavor);
128
+ get size(): Size;
129
+ set size(value: Size);
130
+ get value(): string;
131
+ set value(val: string);
132
+ get selected(): boolean;
133
+ set selected(value: boolean);
134
+ get pill(): boolean;
135
+ set pill(value: boolean);
136
+ get clickable(): boolean;
137
+ set clickable(value: boolean);
138
+ get dismissible(): boolean;
139
+ set dismissible(value: boolean);
140
+ get disabled(): boolean;
141
+ set disabled(value: boolean);
142
+ }
143
+ export {};
144
+ //# sourceMappingURL=tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/components/tag.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAoB,MAAM,oBAAoB,CAAA;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAIlE;;GAEG;AACH,UAAU,QAAQ;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,KAAM,SAAQ,WAAW,CAAC,QAAQ,CAAE,YAAW,YAAY;IACtE,MAAM,CAAC,cAAc,UAAO;IAK5B,SAAS,CAAC,MAAM,CAAC,UAAU;;;;;;;;;;0BAcT,GAAG;wBACL,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAuClB;IAOD,OAAO,CAAC,QAAQ,CAA4B;;IAe5C;;;;OAIG;IACH,SAAS,CAAC,SAAS,IAAI,IAAI;IAQ3B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAI9B;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI;IAQ/D;;OAEG;IACH,OAAO,CAAC,WAAW,CAOlB;IAED;;OAEG;IACH,OAAO,CAAC,aAAa,CAMpB;IAED;;OAEG;IACH,OAAO,CAAC,aAAa,CAyBpB;IAMD;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;OAEG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IA0CxB,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,EAEvB;IAED,IAAI,IAAI,IAAI,IAAI,CAEf;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAEnB;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAEpB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,OAAO,EAEtB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO,EAE3B;IAED,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,EAE7B;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAE1B;CACF"}
@@ -0,0 +1,314 @@
1
+ /**
2
+ * TyTag Web Component
3
+ * PORTED FROM: clj/ty/components/tag.cljs
4
+ * Tag component with slots and semantic flavors
5
+ */
6
+ import { TyComponent } from '../base/ty-component.js';
7
+ import { ensureStyles } from '../utils/styles.js';
8
+ import { tagStyles } from '../styles/tag.js';
9
+ /**
10
+ * Ty Tag Component
11
+ *
12
+ * @example
13
+ * ```html
14
+ * <ty-tag flavor="primary">Primary Tag</ty-tag>
15
+ * <ty-tag flavor="success" dismissible>Success Tag</ty-tag>
16
+ * <ty-tag flavor="danger" clickable>Clickable Tag</ty-tag>
17
+ * <ty-tag value="tag-1" selected>Selected Tag</ty-tag>
18
+ * ```
19
+ */
20
+ export class TyTag extends TyComponent {
21
+ constructor() {
22
+ super(); // TyComponent handles attachInternals() and attachShadow()
23
+ // ============================================================================
24
+ // INTERNAL STATE
25
+ // ============================================================================
26
+ // Event listener cleanup function
27
+ this._cleanup = null;
28
+ // ============================================================================
29
+ // EVENT HANDLERS (arrow functions for stable references)
30
+ // ============================================================================
31
+ /**
32
+ * Handle tag click events
33
+ */
34
+ this.handleClick = (event) => {
35
+ if (this.clickable && !this.disabled) {
36
+ event.preventDefault();
37
+ event.stopPropagation();
38
+ this.dispatchTagEvent('click', { target: this });
39
+ this.dispatchTagEvent('pointerdown', { target: this });
40
+ }
41
+ };
42
+ /**
43
+ * Handle tag dismiss events
44
+ */
45
+ this.handleDismiss = (event) => {
46
+ if (this.dismissible && !this.disabled) {
47
+ event.preventDefault();
48
+ event.stopPropagation();
49
+ this.dispatchTagEvent('dismiss', { target: this });
50
+ }
51
+ };
52
+ /**
53
+ * Handle keyboard interactions
54
+ */
55
+ this.handleKeydown = (event) => {
56
+ const keyboardEvent = event;
57
+ if (this.disabled)
58
+ return;
59
+ const keyCode = keyboardEvent.keyCode;
60
+ switch (keyCode) {
61
+ // ENTER or SPACE - trigger click if clickable
62
+ case 13: // Enter
63
+ case 32: // Space
64
+ if (this.clickable) {
65
+ keyboardEvent.preventDefault();
66
+ this.dispatchTagEvent('click', { target: this });
67
+ }
68
+ break;
69
+ // DELETE or BACKSPACE - trigger dismiss if dismissible
70
+ case 8: // Backspace
71
+ case 46: // Delete
72
+ if (this.dismissible) {
73
+ keyboardEvent.preventDefault();
74
+ this.dispatchTagEvent('dismiss', { target: this });
75
+ }
76
+ break;
77
+ }
78
+ };
79
+ // Apply styles to shadow root
80
+ ensureStyles(this.shadowRoot, { css: tagStyles, id: 'ty-tag' });
81
+ }
82
+ // observedAttributes auto-generated by TyComponent from properties config
83
+ // ============================================================================
84
+ // TYCOMPONENT LIFECYCLE HOOKS
85
+ // ============================================================================
86
+ /**
87
+ * Called when component connects to DOM
88
+ * TyComponent already handled pre-connection property capture
89
+ * TyComponent will call render() automatically after this hook
90
+ */
91
+ onConnect() {
92
+ // Setup event listeners after initial render happens
93
+ // Use queueMicrotask to ensure render() has been called by TyComponent
94
+ queueMicrotask(() => {
95
+ this.setupEventListeners();
96
+ });
97
+ }
98
+ /**
99
+ * Called when component disconnects from DOM
100
+ */
101
+ onDisconnect() {
102
+ this.cleanupEventListeners();
103
+ }
104
+ /**
105
+ * Handle property changes - called BEFORE render
106
+ */
107
+ onPropertiesChanged(_changes) {
108
+ // No special handling needed - TyComponent handles rendering automatically
109
+ }
110
+ // ============================================================================
111
+ // EVENT HELPERS
112
+ // ============================================================================
113
+ /**
114
+ * Dispatch custom tag events
115
+ */
116
+ dispatchTagEvent(eventType, detail) {
117
+ this.dispatchEvent(new CustomEvent(eventType, {
118
+ detail,
119
+ bubbles: true,
120
+ composed: true,
121
+ cancelable: true
122
+ }));
123
+ }
124
+ /**
125
+ * Clean up existing event listeners
126
+ */
127
+ cleanupEventListeners() {
128
+ if (this._cleanup) {
129
+ this._cleanup();
130
+ this._cleanup = null;
131
+ }
132
+ }
133
+ /**
134
+ * Setup event listeners for tag interactions
135
+ */
136
+ setupEventListeners() {
137
+ // Clean up any existing listeners first
138
+ this.cleanupEventListeners();
139
+ const shadow = this.shadowRoot;
140
+ const container = shadow.querySelector('.tag-container');
141
+ const dismissBtn = shadow.querySelector('.tag-dismiss');
142
+ if (!container)
143
+ return;
144
+ // Click handler for main tag
145
+ container.addEventListener('click', this.handleClick);
146
+ container.addEventListener('keydown', this.handleKeydown);
147
+ // Dismiss button handler
148
+ if (dismissBtn) {
149
+ dismissBtn.addEventListener('click', this.handleDismiss);
150
+ }
151
+ // Store cleanup function
152
+ this._cleanup = () => {
153
+ container.removeEventListener('click', this.handleClick);
154
+ container.removeEventListener('keydown', this.handleKeydown);
155
+ if (dismissBtn) {
156
+ dismissBtn.removeEventListener('click', this.handleDismiss);
157
+ }
158
+ };
159
+ }
160
+ // ============================================================================
161
+ // RENDER
162
+ // ============================================================================
163
+ /**
164
+ * Render the tag component
165
+ */
166
+ render() {
167
+ const shadow = this.shadowRoot;
168
+ // Build the tag container
169
+ const tabindex = this.clickable ? ' tabindex="0"' : '';
170
+ const ariaDisabled = this.disabled ? ' aria-disabled="true"' : '';
171
+ const dataValue = this.value ? ` data-value="${this.value}"` : '';
172
+ // Build dismiss button SVG
173
+ const dismissButton = this.dismissible ? `
174
+ <button class="tag-dismiss" type="button" aria-label="Remove tag">
175
+ <svg viewBox="0 0 20 20" fill="currentColor">
176
+ <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd" />
177
+ </svg>
178
+ </button>
179
+ ` : '';
180
+ shadow.innerHTML = `
181
+ <div class="tag-container" part="container"${tabindex}${ariaDisabled}${dataValue}>
182
+ <div class="tag-start">
183
+ <slot name="start" class="tag-start"></slot>
184
+ </div>
185
+ <div class="tag-content">
186
+ <slot></slot>
187
+ </div>
188
+ <div class="tag-end">
189
+ <slot name="end"></slot>
190
+ ${dismissButton}
191
+ </div>
192
+ </div>
193
+ `;
194
+ // Re-setup event listeners after innerHTML replace (destroys old elements)
195
+ if (this._connected) {
196
+ this.setupEventListeners();
197
+ }
198
+ }
199
+ // ============================================================================
200
+ // PROPERTY ACCESSORS - Simple wrappers (no logic!)
201
+ // ============================================================================
202
+ get flavor() {
203
+ return this.getProperty('flavor');
204
+ }
205
+ set flavor(value) {
206
+ this.setProperty('flavor', value);
207
+ }
208
+ get size() {
209
+ return this.getProperty('size');
210
+ }
211
+ set size(value) {
212
+ this.setProperty('size', value);
213
+ }
214
+ get value() {
215
+ return this.getProperty('value');
216
+ }
217
+ set value(val) {
218
+ this.setProperty('value', val);
219
+ }
220
+ get selected() {
221
+ return this.getProperty('selected');
222
+ }
223
+ set selected(value) {
224
+ this.setProperty('selected', value);
225
+ }
226
+ get pill() {
227
+ return this.getProperty('pill');
228
+ }
229
+ set pill(value) {
230
+ this.setProperty('pill', value);
231
+ }
232
+ get clickable() {
233
+ return this.getProperty('clickable');
234
+ }
235
+ set clickable(value) {
236
+ this.setProperty('clickable', value);
237
+ }
238
+ get dismissible() {
239
+ return this.getProperty('dismissible');
240
+ }
241
+ set dismissible(value) {
242
+ this.setProperty('dismissible', value);
243
+ }
244
+ get disabled() {
245
+ return this.getProperty('disabled');
246
+ }
247
+ set disabled(value) {
248
+ this.setProperty('disabled', value);
249
+ }
250
+ }
251
+ TyTag.formAssociated = true;
252
+ // ============================================================================
253
+ // PROPERTY CONFIGURATION - Declarative property lifecycle
254
+ // ============================================================================
255
+ TyTag.properties = {
256
+ flavor: {
257
+ type: 'string',
258
+ visual: true,
259
+ default: 'neutral',
260
+ // Built-in: primary | secondary | success | danger | warning | neutral.
261
+ // Append `+` for stronger or `-` for softer shade (e.g. "primary+",
262
+ // "danger-"). Any other string is passed through — theme custom flavors
263
+ // via :host([flavor="X"]) { --tag-bg: ...; --tag-color: ...; --tag-border-color: ...; }
264
+ },
265
+ size: {
266
+ type: 'string',
267
+ visual: true,
268
+ default: 'md',
269
+ validate: (v) => ['xs', 'sm', 'md', 'lg', 'xl'].includes(v),
270
+ coerce: (v) => {
271
+ if (!['xs', 'sm', 'md', 'lg', 'xl'].includes(v)) {
272
+ console.warn(`[ty-tag] Invalid size '${v}'. Using 'md'.`);
273
+ return 'md';
274
+ }
275
+ return v;
276
+ }
277
+ },
278
+ value: {
279
+ type: 'string',
280
+ visual: true,
281
+ default: ''
282
+ },
283
+ selected: {
284
+ type: 'boolean',
285
+ visual: true,
286
+ default: false
287
+ },
288
+ pill: {
289
+ type: 'boolean',
290
+ visual: true,
291
+ default: true,
292
+ aliases: { 'not-pill': false }
293
+ },
294
+ clickable: {
295
+ type: 'boolean',
296
+ visual: true,
297
+ default: false
298
+ },
299
+ dismissible: {
300
+ type: 'boolean',
301
+ visual: true,
302
+ default: false
303
+ },
304
+ disabled: {
305
+ type: 'boolean',
306
+ visual: true,
307
+ default: false
308
+ }
309
+ };
310
+ // Register the custom element
311
+ if (!customElements.get('ty-tag')) {
312
+ customElements.define('ty-tag', TyTag);
313
+ }
314
+ //# sourceMappingURL=tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/components/tag.ts"],"names":[],"mappings":"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"}