@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,662 @@
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, state, query } from "lit/decorators.js";
9
+ import { ifDefined } from "lit/directives/if-defined.js";
10
+ import { srOnly } from "./sr-only.js";
11
+ import { trackAnchor, placeBelow } from "./floating.js";
12
+ import "./tt-icon.js";
13
+ let uid = 0;
14
+ let TTSelect = class TTSelect extends LitElement {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.internals = this.attachInternals();
18
+ /*
19
+ Reflected, and it has to be.
20
+
21
+ A form-associated custom element is submitted under its name CONTENT
22
+ ATTRIBUTE, not its JS property. Without reflect, setting .name = "x"
23
+ from script leaves the attribute absent and the field vanishes from
24
+ FormData with no error anywhere. It only appeared to work because
25
+ every call site so far wrote name="x" in markup, which sets the
26
+ attribute directly.
27
+ */
28
+ this.name = "";
29
+ this.value = "";
30
+ this.placeholder = "Select an option";
31
+ this.options = [];
32
+ this.label = "";
33
+ this.error = "";
34
+ this.disabled = false;
35
+ this.required = false;
36
+ // small | medium | large, as on tt-input (Oct 2026), so a row of
37
+ // fields can share one height. Reflected: the sizes are :host rules.
38
+ this.size = "medium";
39
+ // Named for a screen reader, invisible on screen. Same contract as
40
+ // tt-input and tt-checkbox.
41
+ this.labelHidden = false;
42
+ this.open = false;
43
+ // Where the arrow keys currently are. Not the same as the selection:
44
+ // you can move the cursor without choosing anything.
45
+ this.activeIndex = -1;
46
+ this.instanceId = ++uid;
47
+ this.listId = `tt-select-list-${this.instanceId}`;
48
+ // Arrow function so the reference stays stable and removeEventListener
49
+ // can find it, and so `this` is the component.
50
+ this.handleDocumentClick = (event) => {
51
+ // composedPath sees through shadow boundaries. event.target alone is
52
+ // retargeted to the host and would report our own clicks as outside.
53
+ if (!event.composedPath().includes(this)) {
54
+ this.closeList(false);
55
+ }
56
+ };
57
+ this.handleReposition = () => {
58
+ if (this.open)
59
+ this.positionList();
60
+ };
61
+ }
62
+ static { this.formAssociated = true; }
63
+ get form() {
64
+ return this.internals.form;
65
+ }
66
+ get validity() {
67
+ return this.internals.validity;
68
+ }
69
+ checkValidity() {
70
+ return this.internals.checkValidity();
71
+ }
72
+ reportValidity() {
73
+ return this.internals.reportValidity();
74
+ }
75
+ connectedCallback() {
76
+ super.connectedCallback();
77
+ this.syncFormState();
78
+ }
79
+ disconnectedCallback() {
80
+ this.removeGlobalListeners();
81
+ super.disconnectedCallback();
82
+ }
83
+ formResetCallback() {
84
+ this.value = "";
85
+ }
86
+ formStateRestoreCallback(state) {
87
+ this.value = state ?? "";
88
+ }
89
+ updated(changed) {
90
+ if (changed.has("value") || changed.has("required")) {
91
+ this.syncFormState();
92
+ }
93
+ if (changed.has("open")) {
94
+ this.syncPopover();
95
+ }
96
+ }
97
+ /* ---- form ---- */
98
+ syncFormState() {
99
+ this.internals.setFormValue(this.value);
100
+ const missing = this.required && !this.value;
101
+ if (missing) {
102
+ this.internals.setValidity({ valueMissing: true }, "Please choose an option.", this.trigger ?? undefined);
103
+ }
104
+ else {
105
+ this.internals.setValidity({});
106
+ }
107
+ }
108
+ /* ---- data ---- */
109
+ get selectedOption() {
110
+ return this.options.find((o) => o.value === this.value);
111
+ }
112
+ /* ---- open / close ---- */
113
+ openList() {
114
+ if (this.disabled || this.open)
115
+ return;
116
+ this.open = true;
117
+ // Start the cursor on the current selection, or the top of the list.
118
+ const index = this.options.findIndex((o) => o.value === this.value);
119
+ this.activeIndex = index >= 0 ? index : 0;
120
+ // The click that opened this is still propagating, but
121
+ // handleDocumentClick ignores clicks whose path includes this element,
122
+ // so it will not immediately close again.
123
+ document.addEventListener("click", this.handleDocumentClick);
124
+ // See floating.ts: scroll events do not cross shadow boundaries, so a
125
+ // window listener misses the container that is actually scrolling.
126
+ this.untrack = trackAnchor(this, this.handleReposition);
127
+ }
128
+ closeList(refocus = true) {
129
+ if (!this.open)
130
+ return;
131
+ this.open = false;
132
+ this.activeIndex = -1;
133
+ this.removeGlobalListeners();
134
+ if (refocus)
135
+ this.trigger?.focus();
136
+ }
137
+ removeGlobalListeners() {
138
+ document.removeEventListener("click", this.handleDocumentClick);
139
+ this.untrack?.();
140
+ this.untrack = undefined;
141
+ }
142
+ toggleOpen() {
143
+ if (this.open)
144
+ this.closeList();
145
+ else
146
+ this.openList();
147
+ }
148
+ /* ---- selection ---- */
149
+ selectOption(option) {
150
+ if (option.disabled)
151
+ return;
152
+ this.value = option.value;
153
+ this.closeList();
154
+ this.dispatchEvent(new CustomEvent("tt-change", {
155
+ detail: { value: this.value },
156
+ bubbles: true,
157
+ composed: true,
158
+ }));
159
+ }
160
+ /* ---- keyboard ---- */
161
+ moveActive(delta) {
162
+ const count = this.options.length;
163
+ if (count === 0)
164
+ return;
165
+ let next = this.activeIndex;
166
+ // Step until a non-disabled option is found, at most one full lap.
167
+ for (let i = 0; i < count; i++) {
168
+ next = (next + delta + count) % count;
169
+ if (!this.options[next].disabled)
170
+ break;
171
+ }
172
+ this.activeIndex = next;
173
+ this.scrollActiveIntoView();
174
+ }
175
+ scrollActiveIntoView() {
176
+ this.updateComplete.then(() => {
177
+ const items = this.list?.querySelectorAll("li");
178
+ items?.[this.activeIndex]?.scrollIntoView({ block: "nearest" });
179
+ });
180
+ }
181
+ handleKeydown(event) {
182
+ if (this.disabled)
183
+ return;
184
+ switch (event.key) {
185
+ case "ArrowDown":
186
+ event.preventDefault();
187
+ if (this.open)
188
+ this.moveActive(1);
189
+ else
190
+ this.openList();
191
+ break;
192
+ case "ArrowUp":
193
+ event.preventDefault();
194
+ if (this.open) {
195
+ this.moveActive(-1);
196
+ }
197
+ else {
198
+ this.openList();
199
+ this.activeIndex = this.options.length - 1;
200
+ }
201
+ break;
202
+ case "Home":
203
+ if (this.open) {
204
+ event.preventDefault();
205
+ this.activeIndex = -1;
206
+ this.moveActive(1);
207
+ }
208
+ break;
209
+ case "End":
210
+ if (this.open) {
211
+ event.preventDefault();
212
+ this.activeIndex = 0;
213
+ this.moveActive(-1);
214
+ }
215
+ break;
216
+ case "Enter":
217
+ case " ":
218
+ event.preventDefault();
219
+ if (this.open) {
220
+ const option = this.options[this.activeIndex];
221
+ if (option)
222
+ this.selectOption(option);
223
+ }
224
+ else {
225
+ this.openList();
226
+ }
227
+ break;
228
+ case "Escape":
229
+ if (this.open) {
230
+ event.preventDefault();
231
+ this.closeList();
232
+ }
233
+ break;
234
+ case "Tab":
235
+ this.closeList(false);
236
+ break;
237
+ }
238
+ }
239
+ /* ---- positioning ---- */
240
+ // The list is rendered in the browser's top layer via the popover API,
241
+ // so no ancestor's overflow:hidden can clip it. Its position has to be
242
+ // set from script because the top layer is outside normal flow.
243
+ syncPopover() {
244
+ const list = this.list;
245
+ if (!list)
246
+ return;
247
+ if (this.open) {
248
+ // Shown first: a closed popover is display:none and measures 0x0,
249
+ // and placeBelow needs the list's real height to decide whether it
250
+ // fits below the field. Same order as tt-dropdown-menu.
251
+ if (!list.matches(":popover-open"))
252
+ list.showPopover();
253
+ this.positionList();
254
+ }
255
+ else if (list.matches(":popover-open")) {
256
+ list.hidePopover();
257
+ }
258
+ }
259
+ /*
260
+ The shared placeBelow, like tt-combobox, tt-dropdown-menu and
261
+ tt-filter. This used to be its own three lines that always opened
262
+ DOWNWARDS: a select near the bottom of the screen opened its list off
263
+ the bottom edge, and nothing kept it inside the viewport sideways.
264
+ Width first, because the width decides how the options wrap, which
265
+ decides the height placeBelow measures.
266
+ */
267
+ positionList() {
268
+ const trigger = this.trigger;
269
+ const list = this.list;
270
+ if (!trigger || !list)
271
+ return;
272
+ list.style.width = `${trigger.getBoundingClientRect().width}px`;
273
+ placeBelow(trigger, list, { align: "start" });
274
+ }
275
+ static { this.styles = [srOnly, css `
276
+ /* The browser's own [hidden] rule loses to any :host display, so a
277
+ hidden element would still show. Important, so it always wins. */
278
+ :host([hidden]) {
279
+ display: none !important;
280
+ }
281
+
282
+ :host {
283
+ /* A grid or flex item defaults to min-width: auto, which floors it at
284
+ its MIN-CONTENT width. See tt-input for what that broke. */
285
+ min-width: 0;
286
+
287
+ display: inline-block;
288
+ width: 100%;
289
+ font-family: var(--tt-font-sans);
290
+ -webkit-font-smoothing: antialiased;
291
+ }
292
+
293
+ .field {
294
+ display: flex;
295
+ flex-direction: column;
296
+ gap: var(--tt-space-2);
297
+ }
298
+
299
+ .label {
300
+ font-size: var(--tt-text-sm);
301
+ font-weight: var(--tt-weight-medium);
302
+ color: var(--tt-foreground);
303
+ }
304
+
305
+ .req {
306
+ margin-left: 2px;
307
+ color: var(--tt-destructive);
308
+ }
309
+
310
+ /* Styled to match tt-input, not tt-button: this is a field. */
311
+ button {
312
+ display: flex;
313
+ align-items: center;
314
+ justify-content: space-between;
315
+ gap: var(--tt-space-2);
316
+
317
+ width: 100%;
318
+ box-sizing: border-box;
319
+ min-height: var(--tt-control-md);
320
+
321
+ /* Horizontal only, like tt-input: min-height sets the height. The
322
+ 10px of vertical padding this had was ADDED to the text, so a
323
+ select measured 41px beside a 36px input in the same row. */
324
+ padding: 0 13px;
325
+
326
+ border: 1px solid var(--tt-input);
327
+ /* tt-button-group flattens this per position, so controls that
328
+ sit together share one edge instead of stacking two. */
329
+ border-radius: var(--tt-group-radius, var(--tt-radius));
330
+
331
+ background: var(--tt-field);
332
+ color: var(--tt-foreground);
333
+
334
+ font-family: inherit;
335
+ font-size: var(--tt-text-sm);
336
+ text-align: left;
337
+
338
+ cursor: pointer;
339
+
340
+ transition:
341
+ border-color var(--tt-duration-normal) var(--tt-ease),
342
+ box-shadow var(--tt-duration-normal) var(--tt-ease);
343
+ }
344
+
345
+ /* The same three steps as tt-input: height from the control token,
346
+ horizontal padding only. */
347
+ :host([size="small"]) button {
348
+ min-height: var(--tt-control-sm);
349
+ padding: 0 11px;
350
+ }
351
+
352
+ :host([size="large"]) button {
353
+ min-height: var(--tt-control-lg);
354
+ padding: 0 16px;
355
+ font-size: var(--tt-text-md);
356
+ }
357
+
358
+ button:hover:not(:disabled):not(.error) {
359
+ border-color: var(--tt-border-strong);
360
+ }
361
+
362
+ button:focus-visible {
363
+ border-color: var(--tt-ring);
364
+
365
+ outline: var(--tt-ring-width) solid var(--tt-ring);
366
+ outline-offset: calc(var(--tt-ring-width) * -1);
367
+ }
368
+
369
+ /*
370
+ A disabled FIELD does not fade. It takes the muted surface and muted
371
+ text, the same as tt-input and tt-textarea, so a disabled row of
372
+ fields reads as one state. It used to fade the whole host as well,
373
+ which made a disabled select look different from a disabled input
374
+ beside it.
375
+ */
376
+ button:disabled {
377
+ cursor: not-allowed;
378
+ background: var(--tt-muted);
379
+ color: var(--tt-muted-foreground);
380
+ }
381
+
382
+ button.error {
383
+ border-color: var(--tt-destructive);
384
+ }
385
+
386
+ /* The ring carries the error colour too, as on tt-input. */
387
+ button.error:focus-visible {
388
+ border-color: var(--tt-destructive);
389
+ outline-color: var(--tt-destructive);
390
+ }
391
+
392
+ /*
393
+ One line, cut with an ellipsis. A label longer than the field used
394
+ to WRAP, and two lines of text made the trigger taller than the
395
+ control height: 42px beside a 40px input in a narrow column. An
396
+ <input> never wraps, so a select must not either.
397
+ */
398
+ .value {
399
+ flex: 1;
400
+ min-width: 0;
401
+
402
+ overflow: hidden;
403
+ white-space: nowrap;
404
+ text-overflow: ellipsis;
405
+ }
406
+
407
+ .placeholder {
408
+ color: var(--tt-muted-foreground);
409
+ }
410
+
411
+ .chevron {
412
+ flex: 0 0 auto;
413
+ color: var(--tt-muted-foreground);
414
+ transition: transform var(--tt-duration-normal) var(--tt-ease);
415
+ }
416
+
417
+ /* aria-expanded, not :host([open]). The open flag is @state, so it never
418
+ reaches the host as an attribute and the old rule never matched:
419
+ the chevron simply did not turn. */
420
+ button[aria-expanded="true"] .chevron {
421
+ transform: rotate(180deg);
422
+ }
423
+
424
+ /* Top layer: position is fixed to the viewport and set from script. */
425
+ ul {
426
+ position: fixed;
427
+ margin: 0;
428
+ padding: var(--tt-space-1);
429
+
430
+ /*
431
+ positionList() assigns this element the field's exact width, and
432
+ without border-box that width described the CONTENT only: the 4px
433
+ padding and 1px border on each side were added on top, so the list
434
+ hung 10px wider than the field it was supposed to line up with.
435
+ A 330px field opened a 340px list.
436
+
437
+ The app's global reset does not reach in here. Shadow DOM does not
438
+ inherit a * selector, so every component sets this for itself.
439
+ */
440
+ box-sizing: border-box;
441
+
442
+ max-height: 260px;
443
+ overflow-y: auto;
444
+
445
+ list-style: none;
446
+
447
+ background: var(--tt-popover);
448
+ color: var(--tt-popover-foreground);
449
+
450
+ border: 1px solid var(--tt-border);
451
+ border-radius: var(--tt-radius);
452
+ box-shadow: var(--tt-elevation-2);
453
+
454
+ z-index: var(--tt-z-dropdown);
455
+ }
456
+
457
+ /* In and out of the top layer, as on tt-dropdown-menu: see the note
458
+ there for why display and overlay ride along, and why translate. */
459
+ ul {
460
+ transition:
461
+ opacity var(--tt-duration-fast) var(--tt-ease-in),
462
+ translate var(--tt-duration-fast) var(--tt-ease-in),
463
+ overlay var(--tt-duration-fast) allow-discrete,
464
+ display var(--tt-duration-fast) allow-discrete;
465
+ }
466
+
467
+ ul:popover-open {
468
+ transition-duration: var(--tt-duration-slow);
469
+ transition-timing-function: var(--tt-ease-out);
470
+ }
471
+
472
+ @starting-style {
473
+ ul:popover-open {
474
+ opacity: 0;
475
+ translate: 0 -4px;
476
+ }
477
+ }
478
+
479
+ /* Closed, and closing: clicks during the fade reach the page. */
480
+ ul:not(:popover-open) {
481
+ display: none;
482
+ opacity: 0;
483
+ translate: 0 -4px;
484
+ pointer-events: none;
485
+ }
486
+
487
+ li {
488
+ padding: var(--tt-space-2) var(--tt-space-3);
489
+ border-radius: var(--tt-radius-sm);
490
+
491
+ font-size: var(--tt-text-sm);
492
+ cursor: pointer;
493
+
494
+ user-select: none;
495
+ }
496
+
497
+ li[aria-selected="true"] {
498
+ font-weight: var(--tt-weight-semibold);
499
+ }
500
+
501
+ li.active {
502
+ background: var(--tt-accent);
503
+ color: var(--tt-accent-foreground);
504
+ }
505
+
506
+ li[aria-disabled="true"] {
507
+ opacity: var(--tt-opacity-disabled);
508
+ cursor: not-allowed;
509
+ }
510
+
511
+ .error-text {
512
+ color: var(--tt-destructive);
513
+ font-size: var(--tt-text-xs);
514
+ font-weight: var(--tt-weight-medium);
515
+ }
516
+
517
+ `]; }
518
+ // Focus has to be forwarded: focusing the host focuses nothing, since the
519
+ // control lives in the shadow root. Same as tt-slider and tt-input.
520
+ focus(options) {
521
+ this.renderRoot
522
+ ?.querySelector('button[role="combobox"]')
523
+ ?.focus(options);
524
+ }
525
+ render() {
526
+ const selected = this.selectedOption;
527
+ const errorId = this.error
528
+ ? `tt-select-error-${this.instanceId}`
529
+ : undefined;
530
+ /*
531
+ role="combobox" is NOT a role that takes its name from its content.
532
+
533
+ As a plain <button> the trigger was named by the text inside it.
534
+ Setting role="combobox" silently removed that, because only certain
535
+ roles (button, link, heading, option...) support name-from-content
536
+ and combobox is not one of them. The visible label sits in a
537
+ sibling span, which names nothing on its own, so the control
538
+ reached a screen reader as an unnamed combobox.
539
+ */
540
+ const labelId = `tt-select-label-${this.instanceId}`;
541
+ return html `
542
+ <div class="field">
543
+ ${this.label
544
+ ? html `
545
+ <span
546
+ class="label ${this.labelHidden ? "sr-only" : ""}"
547
+ part="label"
548
+ id=${labelId}
549
+ >
550
+ ${this.label}
551
+ ${this.required
552
+ ? html `<span class="req" aria-hidden="true">*</span>`
553
+ : ""}
554
+ </span>
555
+ `
556
+ : ""}
557
+
558
+ <button
559
+ part="trigger"
560
+ type="button"
561
+ class=${this.error ? "error" : ""}
562
+ role="combobox"
563
+ aria-labelledby=${ifDefined(this.label ? labelId : undefined)}
564
+ aria-haspopup="listbox"
565
+ aria-expanded=${this.open ? "true" : "false"}
566
+ aria-controls=${this.listId}
567
+ aria-activedescendant=${this.open && this.activeIndex >= 0
568
+ ? `${this.listId}-${this.activeIndex}`
569
+ : ""}
570
+ aria-required=${this.required ? "true" : "false"}
571
+ aria-invalid=${this.error ? "true" : "false"}
572
+ aria-describedby=${errorId ?? ""}
573
+ ?disabled=${this.disabled}
574
+ @click=${this.toggleOpen}
575
+ @keydown=${this.handleKeydown}
576
+ >
577
+ <span class="value ${selected ? "" : "placeholder"}">
578
+ ${selected?.label ?? this.placeholder}
579
+ </span>
580
+
581
+ <tt-icon class="chevron" name="chevron-down" size="16px"></tt-icon>
582
+ </button>
583
+
584
+ <ul
585
+ part="list"
586
+ id=${this.listId}
587
+ popover="manual"
588
+ role="listbox"
589
+ >
590
+ ${this.options.map((option, index) => html `
591
+ <li
592
+ id=${`${this.listId}-${index}`}
593
+ role="option"
594
+ class=${index === this.activeIndex ? "active" : ""}
595
+ aria-selected=${option.value === this.value ? "true" : "false"}
596
+ aria-disabled=${option.disabled ? "true" : "false"}
597
+ @click=${() => this.selectOption(option)}
598
+ @mousemove=${() => (this.activeIndex = index)}
599
+ >
600
+ ${option.label}
601
+ </li>
602
+ `)}
603
+ </ul>
604
+
605
+ ${this.error
606
+ ? html `
607
+ <span id=${ifDefined(errorId)} class="error-text" role="alert">
608
+ ${this.error}
609
+ </span>
610
+ `
611
+ : ""}
612
+ </div>
613
+ `;
614
+ }
615
+ };
616
+ __decorate([
617
+ property({ type: String, reflect: true })
618
+ ], TTSelect.prototype, "name", void 0);
619
+ __decorate([
620
+ property({ type: String })
621
+ ], TTSelect.prototype, "value", void 0);
622
+ __decorate([
623
+ property({ type: String })
624
+ ], TTSelect.prototype, "placeholder", void 0);
625
+ __decorate([
626
+ property({ type: Array })
627
+ ], TTSelect.prototype, "options", void 0);
628
+ __decorate([
629
+ property({ type: String })
630
+ ], TTSelect.prototype, "label", void 0);
631
+ __decorate([
632
+ property({ type: String })
633
+ ], TTSelect.prototype, "error", void 0);
634
+ __decorate([
635
+ property({ type: Boolean, reflect: true })
636
+ ], TTSelect.prototype, "disabled", void 0);
637
+ __decorate([
638
+ property({ type: Boolean })
639
+ ], TTSelect.prototype, "required", void 0);
640
+ __decorate([
641
+ property({ type: String, reflect: true })
642
+ ], TTSelect.prototype, "size", void 0);
643
+ __decorate([
644
+ property({ type: Boolean, attribute: "label-hidden", reflect: true })
645
+ ], TTSelect.prototype, "labelHidden", void 0);
646
+ __decorate([
647
+ state()
648
+ ], TTSelect.prototype, "open", void 0);
649
+ __decorate([
650
+ state()
651
+ ], TTSelect.prototype, "activeIndex", void 0);
652
+ __decorate([
653
+ query("button")
654
+ ], TTSelect.prototype, "trigger", void 0);
655
+ __decorate([
656
+ query("ul")
657
+ ], TTSelect.prototype, "list", void 0);
658
+ TTSelect = __decorate([
659
+ customElement("tt-select")
660
+ ], TTSelect);
661
+ export { TTSelect };
662
+ //# sourceMappingURL=tt-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tt-select.js","sourceRoot":"","sources":["../src/tt-select.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { LitElement } from "lit";
2
+ /**
3
+ * Placeholder shape shown while data loads. Use it in the same layout as
4
+ * the real content so nothing jumps when the data arrives: a skeleton
5
+ * that is a different size than what replaces it is worse than a spinner.
6
+ */
7
+ export declare class TTSkeleton extends LitElement {
8
+ variant: "text" | "title" | "circle" | "rect";
9
+ width: string;
10
+ height: string;
11
+ lines: number;
12
+ static styles: import("lit").CSSResult;
13
+ render(): import("lit-html").TemplateResult<1>;
14
+ }
15
+ declare global {
16
+ interface HTMLElementTagNameMap {
17
+ "tt-skeleton": TTSkeleton;
18
+ }
19
+ }
20
+ //# sourceMappingURL=tt-skeleton.d.ts.map