@tartaguti/ui-components 0.0.0-stage → 0.1.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 (392) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +21 -0
  3. package/README.md +192 -2
  4. package/THIRD-PARTY-NOTICES.md +29 -0
  5. package/custom-elements.json +16731 -0
  6. package/dist/accordion/tt-accordion-item.d.ts +32 -0
  7. package/dist/accordion/tt-accordion-item.d.ts.map +1 -0
  8. package/dist/accordion/tt-accordion-item.js +247 -0
  9. package/dist/accordion/tt-accordion-item.js.map +1 -0
  10. package/dist/accordion/tt-accordion.d.ts +28 -0
  11. package/dist/accordion/tt-accordion.d.ts.map +1 -0
  12. package/dist/accordion/tt-accordion.js +148 -0
  13. package/dist/accordion/tt-accordion.js.map +1 -0
  14. package/dist/bento/tt-bento-item.d.ts +35 -0
  15. package/dist/bento/tt-bento-item.d.ts.map +1 -0
  16. package/dist/bento/tt-bento-item.js +201 -0
  17. package/dist/bento/tt-bento-item.js.map +1 -0
  18. package/dist/bento/tt-bento.d.ts +25 -0
  19. package/dist/bento/tt-bento.d.ts.map +1 -0
  20. package/dist/bento/tt-bento.js +314 -0
  21. package/dist/bento/tt-bento.js.map +1 -0
  22. package/dist/floating.d.ts +61 -0
  23. package/dist/floating.d.ts.map +1 -0
  24. package/dist/floating.js +120 -0
  25. package/dist/floating.js.map +1 -0
  26. package/dist/index.d.ts +92 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +96 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/interaction/tt-draggable.d.ts +29 -0
  31. package/dist/interaction/tt-draggable.d.ts.map +1 -0
  32. package/dist/interaction/tt-draggable.js +66 -0
  33. package/dist/interaction/tt-draggable.js.map +1 -0
  34. package/dist/interaction/tt-droppable.d.ts +37 -0
  35. package/dist/interaction/tt-droppable.d.ts.map +1 -0
  36. package/dist/interaction/tt-droppable.js +108 -0
  37. package/dist/interaction/tt-droppable.js.map +1 -0
  38. package/dist/interaction/tt-resizable.d.ts +45 -0
  39. package/dist/interaction/tt-resizable.d.ts.map +1 -0
  40. package/dist/interaction/tt-resizable.js +210 -0
  41. package/dist/interaction/tt-resizable.js.map +1 -0
  42. package/dist/interaction/tt-reveal.d.ts +54 -0
  43. package/dist/interaction/tt-reveal.d.ts.map +1 -0
  44. package/dist/interaction/tt-reveal.js +302 -0
  45. package/dist/interaction/tt-reveal.js.map +1 -0
  46. package/dist/motion.d.ts +8 -0
  47. package/dist/motion.d.ts.map +1 -0
  48. package/dist/motion.js +49 -0
  49. package/dist/motion.js.map +1 -0
  50. package/dist/overlay.d.ts +7 -0
  51. package/dist/overlay.d.ts.map +1 -0
  52. package/dist/overlay.js +121 -0
  53. package/dist/overlay.js.map +1 -0
  54. package/dist/safe-url.d.ts +14 -0
  55. package/dist/safe-url.d.ts.map +1 -0
  56. package/dist/safe-url.js +46 -0
  57. package/dist/safe-url.js.map +1 -0
  58. package/dist/scroll-lock.d.ts +22 -0
  59. package/dist/scroll-lock.d.ts.map +1 -0
  60. package/dist/scroll-lock.js +56 -0
  61. package/dist/scroll-lock.js.map +1 -0
  62. package/dist/sidebar/tt-menu-group.d.ts +69 -0
  63. package/dist/sidebar/tt-menu-group.d.ts.map +1 -0
  64. package/dist/sidebar/tt-menu-group.js +358 -0
  65. package/dist/sidebar/tt-menu-group.js.map +1 -0
  66. package/dist/sidebar/tt-menu-item.d.ts +70 -0
  67. package/dist/sidebar/tt-menu-item.d.ts.map +1 -0
  68. package/dist/sidebar/tt-menu-item.js +502 -0
  69. package/dist/sidebar/tt-menu-item.js.map +1 -0
  70. package/dist/sidebar/tt-sidebar-footer.d.ts +39 -0
  71. package/dist/sidebar/tt-sidebar-footer.d.ts.map +1 -0
  72. package/dist/sidebar/tt-sidebar-footer.js +205 -0
  73. package/dist/sidebar/tt-sidebar-footer.js.map +1 -0
  74. package/dist/sidebar/tt-sidebar-header.d.ts +31 -0
  75. package/dist/sidebar/tt-sidebar-header.d.ts.map +1 -0
  76. package/dist/sidebar/tt-sidebar-header.js +150 -0
  77. package/dist/sidebar/tt-sidebar-header.js.map +1 -0
  78. package/dist/sidebar/tt-sidebar.d.ts +72 -0
  79. package/dist/sidebar/tt-sidebar.d.ts.map +1 -0
  80. package/dist/sidebar/tt-sidebar.js +539 -0
  81. package/dist/sidebar/tt-sidebar.js.map +1 -0
  82. package/dist/sr-only.d.ts +15 -0
  83. package/dist/sr-only.d.ts.map +1 -0
  84. package/dist/sr-only.js +27 -0
  85. package/dist/sr-only.js.map +1 -0
  86. package/dist/tokens.css +1124 -0
  87. package/dist/tt-alert.d.ts +26 -0
  88. package/dist/tt-alert.d.ts.map +1 -0
  89. package/dist/tt-alert.js +165 -0
  90. package/dist/tt-alert.js.map +1 -0
  91. package/dist/tt-aspect-ratio.d.ts +40 -0
  92. package/dist/tt-aspect-ratio.d.ts.map +1 -0
  93. package/dist/tt-aspect-ratio.js +98 -0
  94. package/dist/tt-aspect-ratio.js.map +1 -0
  95. package/dist/tt-auth.d.ts +75 -0
  96. package/dist/tt-auth.d.ts.map +1 -0
  97. package/dist/tt-auth.js +520 -0
  98. package/dist/tt-auth.js.map +1 -0
  99. package/dist/tt-avatar.d.ts +26 -0
  100. package/dist/tt-avatar.d.ts.map +1 -0
  101. package/dist/tt-avatar.js +169 -0
  102. package/dist/tt-avatar.js.map +1 -0
  103. package/dist/tt-badge.d.ts +36 -0
  104. package/dist/tt-badge.d.ts.map +1 -0
  105. package/dist/tt-badge.js +135 -0
  106. package/dist/tt-badge.js.map +1 -0
  107. package/dist/tt-breadcrumbs.d.ts +22 -0
  108. package/dist/tt-breadcrumbs.d.ts.map +1 -0
  109. package/dist/tt-breadcrumbs.js +144 -0
  110. package/dist/tt-breadcrumbs.js.map +1 -0
  111. package/dist/tt-button-group.d.ts +32 -0
  112. package/dist/tt-button-group.d.ts.map +1 -0
  113. package/dist/tt-button-group.js +132 -0
  114. package/dist/tt-button-group.js.map +1 -0
  115. package/dist/tt-button.d.ts +31 -0
  116. package/dist/tt-button.d.ts.map +1 -0
  117. package/dist/tt-button.js +483 -0
  118. package/dist/tt-button.js.map +1 -0
  119. package/dist/tt-card.d.ts +26 -0
  120. package/dist/tt-card.d.ts.map +1 -0
  121. package/dist/tt-card.js +429 -0
  122. package/dist/tt-card.js.map +1 -0
  123. package/dist/tt-chart.d.ts +36 -0
  124. package/dist/tt-chart.d.ts.map +1 -0
  125. package/dist/tt-chart.js +332 -0
  126. package/dist/tt-chart.js.map +1 -0
  127. package/dist/tt-checkbox-group.d.ts +38 -0
  128. package/dist/tt-checkbox-group.d.ts.map +1 -0
  129. package/dist/tt-checkbox-group.js +243 -0
  130. package/dist/tt-checkbox-group.js.map +1 -0
  131. package/dist/tt-checkbox.d.ts +35 -0
  132. package/dist/tt-checkbox.d.ts.map +1 -0
  133. package/dist/tt-checkbox.js +354 -0
  134. package/dist/tt-checkbox.js.map +1 -0
  135. package/dist/tt-code-block.d.ts +37 -0
  136. package/dist/tt-code-block.d.ts.map +1 -0
  137. package/dist/tt-code-block.js +409 -0
  138. package/dist/tt-code-block.js.map +1 -0
  139. package/dist/tt-collapsible.d.ts +71 -0
  140. package/dist/tt-collapsible.d.ts.map +1 -0
  141. package/dist/tt-collapsible.js +206 -0
  142. package/dist/tt-collapsible.js.map +1 -0
  143. package/dist/tt-combobox.d.ts +107 -0
  144. package/dist/tt-combobox.d.ts.map +1 -0
  145. package/dist/tt-combobox.js +816 -0
  146. package/dist/tt-combobox.js.map +1 -0
  147. package/dist/tt-company-card.d.ts +30 -0
  148. package/dist/tt-company-card.d.ts.map +1 -0
  149. package/dist/tt-company-card.js +382 -0
  150. package/dist/tt-company-card.js.map +1 -0
  151. package/dist/tt-comparison-table.d.ts +59 -0
  152. package/dist/tt-comparison-table.d.ts.map +1 -0
  153. package/dist/tt-comparison-table.js +441 -0
  154. package/dist/tt-comparison-table.js.map +1 -0
  155. package/dist/tt-component-doc.d.ts +63 -0
  156. package/dist/tt-component-doc.d.ts.map +1 -0
  157. package/dist/tt-component-doc.js +585 -0
  158. package/dist/tt-component-doc.js.map +1 -0
  159. package/dist/tt-confirm.d.ts +45 -0
  160. package/dist/tt-confirm.d.ts.map +1 -0
  161. package/dist/tt-confirm.js +151 -0
  162. package/dist/tt-confirm.js.map +1 -0
  163. package/dist/tt-contact-list.d.ts +18 -0
  164. package/dist/tt-contact-list.d.ts.map +1 -0
  165. package/dist/tt-contact-list.js +101 -0
  166. package/dist/tt-contact-list.js.map +1 -0
  167. package/dist/tt-copy-button.d.ts +25 -0
  168. package/dist/tt-copy-button.d.ts.map +1 -0
  169. package/dist/tt-copy-button.js +194 -0
  170. package/dist/tt-copy-button.js.map +1 -0
  171. package/dist/tt-data-table.d.ts +69 -0
  172. package/dist/tt-data-table.d.ts.map +1 -0
  173. package/dist/tt-data-table.js +542 -0
  174. package/dist/tt-data-table.js.map +1 -0
  175. package/dist/tt-divider.d.ts +19 -0
  176. package/dist/tt-divider.d.ts.map +1 -0
  177. package/dist/tt-divider.js +104 -0
  178. package/dist/tt-divider.js.map +1 -0
  179. package/dist/tt-drawer.d.ts +38 -0
  180. package/dist/tt-drawer.d.ts.map +1 -0
  181. package/dist/tt-drawer.js +433 -0
  182. package/dist/tt-drawer.js.map +1 -0
  183. package/dist/tt-dropdown-menu.d.ts +57 -0
  184. package/dist/tt-dropdown-menu.d.ts.map +1 -0
  185. package/dist/tt-dropdown-menu.js +631 -0
  186. package/dist/tt-dropdown-menu.js.map +1 -0
  187. package/dist/tt-empty-state.d.ts +13 -0
  188. package/dist/tt-empty-state.d.ts.map +1 -0
  189. package/dist/tt-empty-state.js +94 -0
  190. package/dist/tt-empty-state.js.map +1 -0
  191. package/dist/tt-example.d.ts +33 -0
  192. package/dist/tt-example.d.ts.map +1 -0
  193. package/dist/tt-example.js +250 -0
  194. package/dist/tt-example.js.map +1 -0
  195. package/dist/tt-file-upload.d.ts +85 -0
  196. package/dist/tt-file-upload.d.ts.map +1 -0
  197. package/dist/tt-file-upload.js +662 -0
  198. package/dist/tt-file-upload.js.map +1 -0
  199. package/dist/tt-filter.d.ts +62 -0
  200. package/dist/tt-filter.d.ts.map +1 -0
  201. package/dist/tt-filter.js +393 -0
  202. package/dist/tt-filter.js.map +1 -0
  203. package/dist/tt-form.d.ts +33 -0
  204. package/dist/tt-form.d.ts.map +1 -0
  205. package/dist/tt-form.js +202 -0
  206. package/dist/tt-form.js.map +1 -0
  207. package/dist/tt-grid.d.ts +22 -0
  208. package/dist/tt-grid.d.ts.map +1 -0
  209. package/dist/tt-grid.js +106 -0
  210. package/dist/tt-grid.js.map +1 -0
  211. package/dist/tt-icon.d.ts +20 -0
  212. package/dist/tt-icon.d.ts.map +1 -0
  213. package/dist/tt-icon.js +510 -0
  214. package/dist/tt-icon.js.map +1 -0
  215. package/dist/tt-image.d.ts +59 -0
  216. package/dist/tt-image.d.ts.map +1 -0
  217. package/dist/tt-image.js +314 -0
  218. package/dist/tt-image.js.map +1 -0
  219. package/dist/tt-inbox.d.ts +45 -0
  220. package/dist/tt-inbox.d.ts.map +1 -0
  221. package/dist/tt-inbox.js +275 -0
  222. package/dist/tt-inbox.js.map +1 -0
  223. package/dist/tt-input.d.ts +43 -0
  224. package/dist/tt-input.d.ts.map +1 -0
  225. package/dist/tt-input.js +476 -0
  226. package/dist/tt-input.js.map +1 -0
  227. package/dist/tt-kbd.d.ts +39 -0
  228. package/dist/tt-kbd.d.ts.map +1 -0
  229. package/dist/tt-kbd.js +145 -0
  230. package/dist/tt-kbd.js.map +1 -0
  231. package/dist/tt-key-values.d.ts +17 -0
  232. package/dist/tt-key-values.d.ts.map +1 -0
  233. package/dist/tt-key-values.js +126 -0
  234. package/dist/tt-key-values.js.map +1 -0
  235. package/dist/tt-knowledge-doc.d.ts +24 -0
  236. package/dist/tt-knowledge-doc.d.ts.map +1 -0
  237. package/dist/tt-knowledge-doc.js +120 -0
  238. package/dist/tt-knowledge-doc.js.map +1 -0
  239. package/dist/tt-layout.d.ts +36 -0
  240. package/dist/tt-layout.d.ts.map +1 -0
  241. package/dist/tt-layout.js +318 -0
  242. package/dist/tt-layout.js.map +1 -0
  243. package/dist/tt-modal.d.ts +32 -0
  244. package/dist/tt-modal.d.ts.map +1 -0
  245. package/dist/tt-modal.js +553 -0
  246. package/dist/tt-modal.js.map +1 -0
  247. package/dist/tt-navbar.d.ts +33 -0
  248. package/dist/tt-navbar.d.ts.map +1 -0
  249. package/dist/tt-navbar.js +390 -0
  250. package/dist/tt-navbar.js.map +1 -0
  251. package/dist/tt-page-header.d.ts +28 -0
  252. package/dist/tt-page-header.d.ts.map +1 -0
  253. package/dist/tt-page-header.js +166 -0
  254. package/dist/tt-page-header.js.map +1 -0
  255. package/dist/tt-page.d.ts +14 -0
  256. package/dist/tt-page.d.ts.map +1 -0
  257. package/dist/tt-page.js +163 -0
  258. package/dist/tt-page.js.map +1 -0
  259. package/dist/tt-pagination.d.ts +27 -0
  260. package/dist/tt-pagination.d.ts.map +1 -0
  261. package/dist/tt-pagination.js +194 -0
  262. package/dist/tt-pagination.js.map +1 -0
  263. package/dist/tt-preview.d.ts +11 -0
  264. package/dist/tt-preview.d.ts.map +1 -0
  265. package/dist/tt-preview.js +68 -0
  266. package/dist/tt-preview.js.map +1 -0
  267. package/dist/tt-product.d.ts +40 -0
  268. package/dist/tt-product.d.ts.map +1 -0
  269. package/dist/tt-product.js +590 -0
  270. package/dist/tt-product.js.map +1 -0
  271. package/dist/tt-profile-card.d.ts +23 -0
  272. package/dist/tt-profile-card.d.ts.map +1 -0
  273. package/dist/tt-profile-card.js +199 -0
  274. package/dist/tt-profile-card.js.map +1 -0
  275. package/dist/tt-progress.d.ts +26 -0
  276. package/dist/tt-progress.d.ts.map +1 -0
  277. package/dist/tt-progress.js +156 -0
  278. package/dist/tt-progress.js.map +1 -0
  279. package/dist/tt-quantity.d.ts +36 -0
  280. package/dist/tt-quantity.d.ts.map +1 -0
  281. package/dist/tt-quantity.js +396 -0
  282. package/dist/tt-quantity.js.map +1 -0
  283. package/dist/tt-radio-group.d.ts +50 -0
  284. package/dist/tt-radio-group.d.ts.map +1 -0
  285. package/dist/tt-radio-group.js +372 -0
  286. package/dist/tt-radio-group.js.map +1 -0
  287. package/dist/tt-rating.d.ts +54 -0
  288. package/dist/tt-rating.d.ts.map +1 -0
  289. package/dist/tt-rating.js +312 -0
  290. package/dist/tt-rating.js.map +1 -0
  291. package/dist/tt-search.d.ts +47 -0
  292. package/dist/tt-search.d.ts.map +1 -0
  293. package/dist/tt-search.js +360 -0
  294. package/dist/tt-search.js.map +1 -0
  295. package/dist/tt-section.d.ts +13 -0
  296. package/dist/tt-section.d.ts.map +1 -0
  297. package/dist/tt-section.js +98 -0
  298. package/dist/tt-section.js.map +1 -0
  299. package/dist/tt-select.d.ts +62 -0
  300. package/dist/tt-select.d.ts.map +1 -0
  301. package/dist/tt-select.js +662 -0
  302. package/dist/tt-select.js.map +1 -0
  303. package/dist/tt-skeleton.d.ts +20 -0
  304. package/dist/tt-skeleton.d.ts.map +1 -0
  305. package/dist/tt-skeleton.js +143 -0
  306. package/dist/tt-skeleton.js.map +1 -0
  307. package/dist/tt-slider.d.ts +74 -0
  308. package/dist/tt-slider.d.ts.map +1 -0
  309. package/dist/tt-slider.js +426 -0
  310. package/dist/tt-slider.js.map +1 -0
  311. package/dist/tt-social-links.d.ts +34 -0
  312. package/dist/tt-social-links.d.ts.map +1 -0
  313. package/dist/tt-social-links.js +242 -0
  314. package/dist/tt-social-links.js.map +1 -0
  315. package/dist/tt-sparkline.d.ts +19 -0
  316. package/dist/tt-sparkline.d.ts.map +1 -0
  317. package/dist/tt-sparkline.js +191 -0
  318. package/dist/tt-sparkline.js.map +1 -0
  319. package/dist/tt-spinner.d.ts +19 -0
  320. package/dist/tt-spinner.d.ts.map +1 -0
  321. package/dist/tt-spinner.js +93 -0
  322. package/dist/tt-spinner.js.map +1 -0
  323. package/dist/tt-stack.d.ts +42 -0
  324. package/dist/tt-stack.d.ts.map +1 -0
  325. package/dist/tt-stack.js +158 -0
  326. package/dist/tt-stack.js.map +1 -0
  327. package/dist/tt-stat.d.ts +17 -0
  328. package/dist/tt-stat.d.ts.map +1 -0
  329. package/dist/tt-stat.js +134 -0
  330. package/dist/tt-stat.js.map +1 -0
  331. package/dist/tt-switch.d.ts +39 -0
  332. package/dist/tt-switch.d.ts.map +1 -0
  333. package/dist/tt-switch.js +254 -0
  334. package/dist/tt-switch.js.map +1 -0
  335. package/dist/tt-switcher.d.ts +23 -0
  336. package/dist/tt-switcher.d.ts.map +1 -0
  337. package/dist/tt-switcher.js +203 -0
  338. package/dist/tt-switcher.js.map +1 -0
  339. package/dist/tt-table-cell.d.ts +26 -0
  340. package/dist/tt-table-cell.d.ts.map +1 -0
  341. package/dist/tt-table-cell.js +121 -0
  342. package/dist/tt-table-cell.js.map +1 -0
  343. package/dist/tt-table-row.d.ts +31 -0
  344. package/dist/tt-table-row.d.ts.map +1 -0
  345. package/dist/tt-table-row.js +72 -0
  346. package/dist/tt-table-row.js.map +1 -0
  347. package/dist/tt-table.d.ts +44 -0
  348. package/dist/tt-table.d.ts.map +1 -0
  349. package/dist/tt-table.js +270 -0
  350. package/dist/tt-table.js.map +1 -0
  351. package/dist/tt-tabs.d.ts +31 -0
  352. package/dist/tt-tabs.d.ts.map +1 -0
  353. package/dist/tt-tabs.js +223 -0
  354. package/dist/tt-tabs.js.map +1 -0
  355. package/dist/tt-tag-list.d.ts +19 -0
  356. package/dist/tt-tag-list.d.ts.map +1 -0
  357. package/dist/tt-tag-list.js +136 -0
  358. package/dist/tt-tag-list.js.map +1 -0
  359. package/dist/tt-text.d.ts +52 -0
  360. package/dist/tt-text.d.ts.map +1 -0
  361. package/dist/tt-text.js +337 -0
  362. package/dist/tt-text.js.map +1 -0
  363. package/dist/tt-textarea.d.ts +43 -0
  364. package/dist/tt-textarea.d.ts.map +1 -0
  365. package/dist/tt-textarea.js +356 -0
  366. package/dist/tt-textarea.js.map +1 -0
  367. package/dist/tt-thread.d.ts +62 -0
  368. package/dist/tt-thread.d.ts.map +1 -0
  369. package/dist/tt-thread.js +374 -0
  370. package/dist/tt-thread.js.map +1 -0
  371. package/dist/tt-toast.d.ts +49 -0
  372. package/dist/tt-toast.d.ts.map +1 -0
  373. package/dist/tt-toast.js +440 -0
  374. package/dist/tt-toast.js.map +1 -0
  375. package/dist/tt-toggle-group.d.ts +73 -0
  376. package/dist/tt-toggle-group.d.ts.map +1 -0
  377. package/dist/tt-toggle-group.js +273 -0
  378. package/dist/tt-toggle-group.js.map +1 -0
  379. package/dist/tt-toggle.d.ts +54 -0
  380. package/dist/tt-toggle.d.ts.map +1 -0
  381. package/dist/tt-toggle.js +232 -0
  382. package/dist/tt-toggle.js.map +1 -0
  383. package/dist/tt-toolbar.d.ts +26 -0
  384. package/dist/tt-toolbar.d.ts.map +1 -0
  385. package/dist/tt-toolbar.js +164 -0
  386. package/dist/tt-toolbar.js.map +1 -0
  387. package/dist/tt-tooltip.d.ts +42 -0
  388. package/dist/tt-tooltip.d.ts.map +1 -0
  389. package/dist/tt-tooltip.js +299 -0
  390. package/dist/tt-tooltip.js.map +1 -0
  391. package/package.json +84 -4
  392. package/vscode.html-custom-data.json +2907 -0
@@ -0,0 +1,26 @@
1
+ import { LitElement } from "lit";
2
+ import "./tt-icon.js";
3
+ /** "info" is the old name of "neutral" and still works. */
4
+ export type AlertVariant = "neutral" | "info" | "success" | "warning" | "danger";
5
+ /**
6
+ * A message that stays on the page, in context.
7
+ *
8
+ * Not the same thing as tt-toast. A toast is transient and global: "saved".
9
+ * An alert is persistent and local: it sits next to the thing it is about
10
+ * and stays until the situation changes. Use an alert for "this listing is
11
+ * unverified" or "your trial ends in 3 days".
12
+ */
13
+ export declare class TTAlert extends LitElement {
14
+ variant: AlertVariant;
15
+ heading: string;
16
+ closable: boolean;
17
+ private close;
18
+ static styles: import("lit").CSSResult;
19
+ render(): import("lit-html").TemplateResult<1>;
20
+ }
21
+ declare global {
22
+ interface HTMLElementTagNameMap {
23
+ "tt-alert": TTAlert;
24
+ }
25
+ }
26
+ //# sourceMappingURL=tt-alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tt-alert.d.ts","sourceRoot":"","sources":["../src/tt-alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,cAAc,CAAC;AAEtB,2DAA2D;AAC3D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjF;;;;;;;GAOG;AACH,qBACa,OAAQ,SAAQ,UAAU;IAIrC,OAAO,EAAE,YAAY,CAAa;IAEN,OAAO,SAAM;IAEZ,QAAQ,UAAS;IAE9C,OAAO,CAAC,KAAK;IAMb,MAAM,CAAC,MAAM,0BA2FX;IAEF,MAAM;CA6BP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
@@ -0,0 +1,165 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css } from "lit";
8
+ import { customElement, property } from "lit/decorators.js";
9
+ import "./tt-icon.js";
10
+ /**
11
+ * A message that stays on the page, in context.
12
+ *
13
+ * Not the same thing as tt-toast. A toast is transient and global: "saved".
14
+ * An alert is persistent and local: it sits next to the thing it is about
15
+ * and stays until the situation changes. Use an alert for "this listing is
16
+ * unverified" or "your trial ends in 3 days".
17
+ */
18
+ let TTAlert = class TTAlert extends LitElement {
19
+ constructor() {
20
+ super(...arguments);
21
+ // "neutral", as on tt-badge and tt-toast (Oct 2026). It was "info"
22
+ // here only, for the same grey accent; "info" is kept as an alias.
23
+ this.variant = "neutral";
24
+ this.heading = "";
25
+ this.closable = false;
26
+ }
27
+ close() {
28
+ this.dispatchEvent(new CustomEvent("tt-close", { bubbles: true, composed: true }));
29
+ }
30
+ static { this.styles = css `
31
+ /* The browser's own [hidden] rule loses to any :host display, so a
32
+ hidden element would still show. Important, so it always wins. */
33
+ :host([hidden]) {
34
+ display: none !important;
35
+ }
36
+
37
+ :host {
38
+ display: block;
39
+ font-family: var(--tt-font-sans);
40
+
41
+ --_accent: var(--tt-muted-foreground);
42
+ }
43
+
44
+ /* The neutral accent. It borrowed --tt-chart-2, a chart SERIES
45
+ colour, which happened to be grey; a themed chart palette would
46
+ have recoloured every neutral alert with it. */
47
+ :host([variant="neutral"]),
48
+ :host([variant="info"]) { --_accent: var(--tt-muted-foreground); }
49
+ :host([variant="success"]) { --_accent: var(--tt-success); }
50
+ :host([variant="warning"]) { --_accent: var(--tt-warning); }
51
+ :host([variant="danger"]) { --_accent: var(--tt-destructive); }
52
+
53
+ .alert {
54
+ display: flex;
55
+ align-items: flex-start;
56
+ gap: var(--tt-space-3);
57
+
58
+ padding: var(--tt-space-3) var(--tt-space-4);
59
+
60
+ border: 1px solid color-mix(
61
+ in srgb,
62
+ var(--_accent) 30%,
63
+ var(--tt-border)
64
+ );
65
+ border-left-width: 3px;
66
+ border-left-color: var(--_accent);
67
+ border-radius: var(--tt-radius);
68
+
69
+ background: color-mix(in srgb, var(--_accent) 8%, transparent);
70
+
71
+ font-size: var(--tt-text-sm);
72
+ line-height: var(--tt-leading-normal);
73
+ }
74
+
75
+ .body {
76
+ flex: 1;
77
+ min-width: 0;
78
+ overflow-wrap: anywhere;
79
+ color: var(--tt-foreground);
80
+ }
81
+
82
+ .heading {
83
+ margin-bottom: 2px;
84
+ font-weight: var(--tt-weight-semibold);
85
+ }
86
+
87
+ ::slotted(a) {
88
+ color: inherit;
89
+ }
90
+
91
+ ::slotted(*) {
92
+ margin: 0;
93
+ }
94
+
95
+ .close {
96
+ flex: 0 0 auto;
97
+
98
+ width: 20px;
99
+ height: 20px;
100
+ padding: 0;
101
+ margin: -1px -4px 0 0;
102
+
103
+ border: none;
104
+ background: transparent;
105
+ color: var(--tt-muted-foreground);
106
+
107
+ font: inherit;
108
+ line-height: 1;
109
+ cursor: pointer;
110
+ border-radius: var(--tt-radius-sm);
111
+ }
112
+
113
+ .close:hover {
114
+ color: var(--tt-foreground);
115
+ }
116
+
117
+ .close:focus-visible {
118
+ outline: var(--tt-ring-width) solid var(--tt-ring);
119
+ outline-offset: var(--tt-ring-offset);
120
+ }
121
+ `; }
122
+ render() {
123
+ return html `
124
+ <!--
125
+ role=alert only for danger. It interrupts a screen reader
126
+ immediately, which is right for an error and rude for a tip.
127
+ -->
128
+ <div
129
+ class="alert"
130
+ part="alert"
131
+ role=${this.variant === "danger" ? "alert" : "status"}
132
+ >
133
+ <div class="body">
134
+ ${this.heading
135
+ ? html `<div class="heading" part="heading">${this.heading}</div>`
136
+ : ""}
137
+
138
+ <slot></slot>
139
+ </div>
140
+
141
+ ${this.closable
142
+ ? html `
143
+ <button class="close" part="close" aria-label="Dismiss" @click=${this.close}>
144
+ <tt-icon name="x" size="16px"></tt-icon>
145
+ </button>
146
+ `
147
+ : ""}
148
+ </div>
149
+ `;
150
+ }
151
+ };
152
+ __decorate([
153
+ property({ type: String, reflect: true })
154
+ ], TTAlert.prototype, "variant", void 0);
155
+ __decorate([
156
+ property({ type: String })
157
+ ], TTAlert.prototype, "heading", void 0);
158
+ __decorate([
159
+ property({ type: Boolean })
160
+ ], TTAlert.prototype, "closable", void 0);
161
+ TTAlert = __decorate([
162
+ customElement("tt-alert")
163
+ ], TTAlert);
164
+ export { TTAlert };
165
+ //# sourceMappingURL=tt-alert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tt-alert.js","sourceRoot":"","sources":["../src/tt-alert.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,cAAc,CAAC;AAKtB;;;;;;;GAOG;AAEI,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,UAAU;IAAhC;;QACL,mEAAmE;QACnE,mEAAmE;QAEnE,YAAO,GAAiB,SAAS,CAAC;QAEN,YAAO,GAAG,EAAE,CAAC;QAEZ,aAAQ,GAAG,KAAK,CAAC;IAkIhD,CAAC;IAhIS,KAAK;QACX,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/D,CAAC;IACJ,CAAC;aAEM,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2FlB,AA3FY,CA2FX;IAEF,MAAM;QACJ,OAAO,IAAI,CAAA;;;;;;;;eAQA,IAAI,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ;;;YAGjD,IAAI,CAAC,OAAO;YACZ,CAAC,CAAC,IAAI,CAAA,uCAAuC,IAAI,CAAC,OAAO,QAAQ;YACjE,CAAC,CAAC,EAAE;;;;;UAKN,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA;+EAC+D,IAAI,CAAC,KAAK;;;aAG5E;YACH,CAAC,CAAC,EAAE;;KAET,CAAC;IACJ,CAAC;;AArID;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCACR;AAEN;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCAAc;AAEZ;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCAAkB;AARnC,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO,CA0InB"}
@@ -0,0 +1,40 @@
1
+ import { LitElement } from "lit";
2
+ import type { PropertyValues } from "lit";
3
+ /**
4
+ * Holds a box at a fixed width-to-height ratio.
5
+ *
6
+ * For anything whose height must be known before its content arrives: a
7
+ * video embed, a map, an image placeholder, a chart. Without it the page
8
+ * reflows the moment the content loads, which is the single largest
9
+ * cause of layout shift on a media-heavy page.
10
+ *
11
+ * ---------------------------------------------------------------------
12
+ * WHY THIS IS NOT JUST `aspect-ratio` IN YOUR OWN CSS.
13
+ *
14
+ * It nearly is, and if you control the CSS you should write it yourself.
15
+ * This exists for the case where you do not: slotted content, a block
16
+ * someone copied, a cell inside a grid. It also solves the part people
17
+ * get wrong, which is that `aspect-ratio` alone does nothing unless the
18
+ * CHILD is told to fill the box. That is the `::slotted` rule below and
19
+ * it is the whole reason this is a component.
20
+ *
21
+ * ---------------------------------------------------------------------
22
+ * ON THE `ratio` FORMAT.
23
+ *
24
+ * Takes "16/9" or "1.777". Both land in the same CSS property, which
25
+ * accepts either. The string form is kept because "16/9" is what the
26
+ * ratio is CALLED, and a reader recognising it at a glance is worth more
27
+ * than saving a division.
28
+ */
29
+ export declare class TTAspectRatio extends LitElement {
30
+ ratio: string;
31
+ willUpdate(changed: PropertyValues): void;
32
+ static styles: import("lit").CSSResult;
33
+ render(): import("lit-html").TemplateResult<1>;
34
+ }
35
+ declare global {
36
+ interface HTMLElementTagNameMap {
37
+ "tt-aspect-ratio": TTAspectRatio;
38
+ }
39
+ }
40
+ //# sourceMappingURL=tt-aspect-ratio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tt-aspect-ratio.d.ts","sourceRoot":"","sources":["../src/tt-aspect-ratio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,aAAc,SAAQ,UAAU;IACf,KAAK,SAAU;IAE3C,UAAU,CAAC,OAAO,EAAE,cAAc;IAYlC,MAAM,CAAC,MAAM,0BAmCX;IAEF,MAAM;CAGP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,aAAa,CAAC;KAClC;CACF"}
@@ -0,0 +1,98 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css } from "lit";
8
+ import { property, customElement } from "lit/decorators.js";
9
+ /**
10
+ * Holds a box at a fixed width-to-height ratio.
11
+ *
12
+ * For anything whose height must be known before its content arrives: a
13
+ * video embed, a map, an image placeholder, a chart. Without it the page
14
+ * reflows the moment the content loads, which is the single largest
15
+ * cause of layout shift on a media-heavy page.
16
+ *
17
+ * ---------------------------------------------------------------------
18
+ * WHY THIS IS NOT JUST `aspect-ratio` IN YOUR OWN CSS.
19
+ *
20
+ * It nearly is, and if you control the CSS you should write it yourself.
21
+ * This exists for the case where you do not: slotted content, a block
22
+ * someone copied, a cell inside a grid. It also solves the part people
23
+ * get wrong, which is that `aspect-ratio` alone does nothing unless the
24
+ * CHILD is told to fill the box. That is the `::slotted` rule below and
25
+ * it is the whole reason this is a component.
26
+ *
27
+ * ---------------------------------------------------------------------
28
+ * ON THE `ratio` FORMAT.
29
+ *
30
+ * Takes "16/9" or "1.777". Both land in the same CSS property, which
31
+ * accepts either. The string form is kept because "16/9" is what the
32
+ * ratio is CALLED, and a reader recognising it at a glance is worth more
33
+ * than saving a division.
34
+ */
35
+ let TTAspectRatio = class TTAspectRatio extends LitElement {
36
+ constructor() {
37
+ super(...arguments);
38
+ this.ratio = "16/9";
39
+ }
40
+ willUpdate(changed) {
41
+ if (changed.has("ratio")) {
42
+ /*
43
+ Written as a custom property rather than interpolated into the
44
+ stylesheet, because a Lit `static styles` block is created once
45
+ per CLASS, not per instance. Two aspect ratios on one page would
46
+ share whichever value rendered last.
47
+ */
48
+ this.style.setProperty("--_ratio", this.ratio || "16/9");
49
+ }
50
+ }
51
+ static { this.styles = css `
52
+ /* The browser's own [hidden] rule loses to any :host display, so a
53
+ hidden element would still show. Important, so it always wins. */
54
+ :host([hidden]) {
55
+ display: none !important;
56
+ }
57
+
58
+ :host {
59
+ display: block;
60
+
61
+ /* The fallback matters: an invalid or empty ratio would otherwise
62
+ make the whole declaration invalid and the box would collapse to
63
+ its content height, which is the bug this component exists to
64
+ prevent. */
65
+ aspect-ratio: var(--_ratio, 16/9);
66
+
67
+ width: 100%;
68
+ overflow: hidden;
69
+ }
70
+
71
+ /*
72
+ The part people miss. Setting aspect-ratio on the container is only
73
+ half of it: an <img> or <iframe> inside keeps its own intrinsic
74
+ size and either overflows or leaves a gap. This makes the child
75
+ fill the box it was given.
76
+
77
+ object-fit: cover so an image crops rather than distorting. A
78
+ squashed face is worse than a cropped one.
79
+ */
80
+ ::slotted(*) {
81
+ display: block;
82
+ width: 100%;
83
+ height: 100%;
84
+ object-fit: cover;
85
+ }
86
+ `; }
87
+ render() {
88
+ return html `<slot></slot>`;
89
+ }
90
+ };
91
+ __decorate([
92
+ property({ type: String })
93
+ ], TTAspectRatio.prototype, "ratio", void 0);
94
+ TTAspectRatio = __decorate([
95
+ customElement("tt-aspect-ratio")
96
+ ], TTAspectRatio);
97
+ export { TTAspectRatio };
98
+ //# sourceMappingURL=tt-aspect-ratio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tt-aspect-ratio.js","sourceRoot":"","sources":["../src/tt-aspect-ratio.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEI,IAAM,aAAa,GAAnB,MAAM,aAAc,SAAQ,UAAU;IAAtC;;QACuB,UAAK,GAAG,MAAM,CAAC;IAsD7C,CAAC;IApDC,UAAU,CAAC,OAAuB;QAChC,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB;;;;;cAKE;YACF,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;aAEM,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmClB,AAnCY,CAmCX;IAEF,MAAM;QACJ,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AArD2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CAAgB;AADhC,aAAa;IADzB,aAAa,CAAC,iBAAiB,CAAC;GACpB,aAAa,CAuDzB"}
@@ -0,0 +1,75 @@
1
+ import { LitElement } from "lit";
2
+ import "./tt-card.js";
3
+ import "./tt-form.js";
4
+ import "./tt-input.js";
5
+ import "./tt-checkbox.js";
6
+ import "./tt-button.js";
7
+ import "./tt-alert.js";
8
+ import "./tt-divider.js";
9
+ import "./tt-icon.js";
10
+ export type AuthMode = "signIn" | "signUp" | "forgotPsw" | "resetPsw";
11
+ /**
12
+ * The four screens every application needs, as one component.
13
+ *
14
+ * One element with a `mode` rather than four elements, the same choice
15
+ * tt-product and tt-profile-card make with `orientation`. All four share
16
+ * a card, a heading, an error region and a footer; only the fields and
17
+ * the event differ. Four components would repeat that shell four times
18
+ * and let it drift.
19
+ *
20
+ * IT NEVER TALKS TO A SERVER AND NEVER DECIDES ANYTHING. It reports what
21
+ * was typed and what was asked for. Whether the credentials are valid,
22
+ * whether the account exists, and what happens next all belong to
23
+ * whoever is using it. That is what keeps it usable against any backend.
24
+ *
25
+ * The events, for the custom-elements manifest. Its analyzer reads event
26
+ * names from string literals at the dispatch site, and these are chosen at
27
+ * run time, so without the tags the manifest listed a bogus event instead.
28
+ * @fires tt-sign-in - { email, password, remember } from the sign-in form.
29
+ * @fires tt-sign-up - { name, email, password, accepted } from the sign-up form.
30
+ * @fires tt-forgot - { email } from the forgot-password form.
31
+ * @fires tt-reset - { password } from the reset form.
32
+ * @fires tt-mode - { mode }, when a footer link asks for another screen.
33
+ */
34
+ export declare class TTAuth extends LitElement {
35
+ mode: AuthMode;
36
+ heading: string;
37
+ description: string;
38
+ submitLabel: string;
39
+ emailLabel: string;
40
+ passwordLabel: string;
41
+ nameLabel: string;
42
+ email: string;
43
+ name: string;
44
+ rememberMe: boolean;
45
+ loading: boolean;
46
+ sent: boolean;
47
+ error: string;
48
+ private confirmError;
49
+ private get copy();
50
+ private get resolvedHeading();
51
+ private get resolvedSubmit();
52
+ private get resolvedDescription();
53
+ private handleSubmit;
54
+ private emit;
55
+ private goTo;
56
+ private renderEmail;
57
+ private renderPassword;
58
+ private renderConfirm;
59
+ private renderSubmit;
60
+ private link;
61
+ private renderShell;
62
+ private renderSignIn;
63
+ private renderSignUp;
64
+ private renderSent;
65
+ private renderForgot;
66
+ private renderReset;
67
+ static styles: import("lit").CSSResult;
68
+ render(): import("lit-html").TemplateResult<1>;
69
+ }
70
+ declare global {
71
+ interface HTMLElementTagNameMap {
72
+ "tt-auth": TTAuth;
73
+ }
74
+ }
75
+ //# sourceMappingURL=tt-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tt-auth.d.ts","sourceRoot":"","sources":["../src/tt-auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAGrD,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,gBAAgB,CAAC;AACxB,OAAO,eAAe,CAAC;AACvB,OAAO,iBAAiB,CAAC;AACzB,OAAO,cAAc,CAAC;AAEtB,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAmCtE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,MAAO,SAAQ,UAAU;IACR,IAAI,EAAE,QAAQ,CAAY;IAG1B,OAAO,SAAM;IACb,WAAW,SAAM;IACU,WAAW,SAAM;IAElB,UAAU,SAAW;IAClB,aAAa,SAAc;IAC/B,SAAS,SAAe;IAGjD,KAAK,SAAM;IACX,IAAI,SAAM;IAEiB,UAAU,UAAS;IAE7C,OAAO,UAAS;IAShB,IAAI,UAAS;IAId,KAAK,SAAM;IAS9B,OAAO,CAAC,YAAY,CAAM;IAEnC,OAAO,KAAK,IAAI,GAEf;IAED,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAUD,OAAO,CAAC,YAAY;IA+CpB,OAAO,CAAC,IAAI;IAaZ,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,IAAI;IAeZ,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,YAAY;IA2BpB,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IAYnB,MAAM,CAAC,MAAM,0BA4GX;IAEF,MAAM;CAeP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}