@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,38 @@
1
+ import { LitElement } from "lit";
2
+ import type { PropertyValues } from "lit";
3
+ import "./tt-icon.js";
4
+ export type DrawerSide = "right" | "left" | "bottom";
5
+ /**
6
+ * A panel that slides in over the page.
7
+ *
8
+ * Use it instead of a modal when the thing behind still matters: editing
9
+ * a row without losing your place in the list, or a filter panel you
10
+ * adjust while watching results change. A modal says "deal with this
11
+ * first"; a drawer says "here is more, the list is still there".
12
+ */
13
+ export declare class TTDrawer extends LitElement {
14
+ open: boolean;
15
+ side: DrawerSide;
16
+ heading: string;
17
+ size: string;
18
+ persistent: boolean;
19
+ private lastFocused;
20
+ private locked;
21
+ private closing;
22
+ private cancelExit?;
23
+ connectedCallback(): void;
24
+ disconnectedCallback(): void;
25
+ private handleKeydown;
26
+ willUpdate(changed: PropertyValues): void;
27
+ updated(changed: PropertyValues): void;
28
+ private close;
29
+ private handleBackdropClick;
30
+ static styles: import("lit").CSSResult;
31
+ render(): import("lit-html").TemplateResult<1>;
32
+ }
33
+ declare global {
34
+ interface HTMLElementTagNameMap {
35
+ "tt-drawer": TTDrawer;
36
+ }
37
+ }
38
+ //# sourceMappingURL=tt-drawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tt-drawer.d.ts","sourceRoot":"","sources":["../src/tt-drawer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAO1C,OAAO,cAAc,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD;;;;;;;GAOG;AACH,qBACa,QAAS,SAAQ,UAAU;IACM,IAAI,UAAS;IAEd,IAAI,EAAE,UAAU,CAAW;IAE1C,OAAO,SAAM;IAEb,IAAI,SAAM;IAIT,UAAU,UAAS;IAEhD,OAAO,CAAC,WAAW,CAA4B;IAG/C,OAAO,CAAC,MAAM,CAAS;IAGd,OAAO,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,UAAU,CAAC,CAAa;IAEhC,iBAAiB;IAKjB,oBAAoB;IAkBpB,OAAO,CAAC,aAAa,CAmBnB;IAEF,UAAU,CAAC,OAAO,EAAE,cAAc;IAWlC,OAAO,CAAC,OAAO,EAAE,cAAc;IA6C/B,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,mBAAmB;IAI3B,MAAM,CAAC,MAAM,0BAmOX;IAEF,MAAM;CA+CP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -0,0 +1,433 @@
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 } from "lit/decorators.js";
9
+ import { lockScroll, unlockScroll } from "./scroll-lock.js";
10
+ import { deepActiveElement, pushOverlay, removeOverlay, isTopOverlay, trapTab } from "./overlay.js";
11
+ import { afterTransitions } from "./motion.js";
12
+ import "./tt-icon.js";
13
+ /**
14
+ * A panel that slides in over the page.
15
+ *
16
+ * Use it instead of a modal when the thing behind still matters: editing
17
+ * a row without losing your place in the list, or a filter panel you
18
+ * adjust while watching results change. A modal says "deal with this
19
+ * first"; a drawer says "here is more, the list is still there".
20
+ */
21
+ let TTDrawer = class TTDrawer extends LitElement {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.open = false;
25
+ this.side = "right";
26
+ this.heading = "";
27
+ this.size = "";
28
+ // Cannot be dismissed: no close button, Escape and the backdrop do
29
+ // nothing. Same meaning and reason as tt-modal's persistent.
30
+ this.persistent = false;
31
+ this.lastFocused = null;
32
+ // Whether this element currently holds a scroll lock.
33
+ this.locked = false;
34
+ // Drawn, inert, for the length of the exit transition. See tt-modal.
35
+ this.closing = false;
36
+ this.handleKeydown = (event) => {
37
+ if (!this.open || !isTopOverlay(this))
38
+ return;
39
+ if (event.key === "Escape") {
40
+ // Already used by a control inside, e.g. to close its listbox.
41
+ if (event.defaultPrevented || this.persistent)
42
+ return;
43
+ this.close();
44
+ return;
45
+ }
46
+ /*
47
+ aria-modal="true" PROMISES a screen reader that nothing outside this
48
+ panel can be reached, and the drawer used to break that promise: Tab
49
+ walked straight out of the panel into the page behind it.
50
+ */
51
+ if (event.key === "Tab") {
52
+ const panel = this.renderRoot?.querySelector(".panel");
53
+ if (panel)
54
+ trapTab(event, panel);
55
+ }
56
+ };
57
+ }
58
+ connectedCallback() {
59
+ super.connectedCallback();
60
+ window.addEventListener("keydown", this.handleKeydown);
61
+ }
62
+ disconnectedCallback() {
63
+ window.removeEventListener("keydown", this.handleKeydown);
64
+ removeOverlay(this);
65
+ // Release only what this element took. Clearing the body style
66
+ // outright was fine while one component owned it and is wrong now
67
+ // that the lock is counted: it would strand the count above zero.
68
+ if (this.locked) {
69
+ this.locked = false;
70
+ unlockScroll();
71
+ }
72
+ this.cancelExit?.();
73
+ this.closing = false;
74
+ super.disconnectedCallback();
75
+ }
76
+ willUpdate(changed) {
77
+ if (!changed.has("open"))
78
+ return;
79
+ if (this.open) {
80
+ this.cancelExit?.();
81
+ this.closing = false;
82
+ }
83
+ else if (changed.get("open") === true) {
84
+ this.closing = true;
85
+ }
86
+ }
87
+ updated(changed) {
88
+ if (changed.has("closing") && this.closing) {
89
+ const root = this.renderRoot;
90
+ this.cancelExit = afterTransitions([root.querySelector(".backdrop"), root.querySelector(".panel")], () => {
91
+ this.cancelExit = undefined;
92
+ this.closing = false;
93
+ });
94
+ }
95
+ if (changed.has("size")) {
96
+ this.style.setProperty("--_size", this.size);
97
+ }
98
+ if (!changed.has("open"))
99
+ return;
100
+ if (this.open && !this.locked) {
101
+ this.locked = true;
102
+ lockScroll();
103
+ }
104
+ else if (!this.open && this.locked) {
105
+ this.locked = false;
106
+ unlockScroll();
107
+ }
108
+ if (this.open) {
109
+ pushOverlay(this);
110
+ // Remember where focus was so it can go back, otherwise a keyboard
111
+ // user is dumped at the top of the document on close. The DEEP
112
+ // active element: document.activeElement stops at the outermost
113
+ // shadow host, which in an app built from components is the app
114
+ // itself, and focusing that focuses nothing.
115
+ this.lastFocused = deepActiveElement();
116
+ // Directly, not in a frame: see tt-modal. A background tab gets no
117
+ // frames, so the panel never took focus there.
118
+ this.renderRoot?.querySelector(".panel")?.focus();
119
+ }
120
+ else {
121
+ removeOverlay(this);
122
+ this.lastFocused?.focus?.();
123
+ this.lastFocused = null;
124
+ }
125
+ }
126
+ close() {
127
+ if (this.persistent)
128
+ return;
129
+ this.open = false;
130
+ this.dispatchEvent(new CustomEvent("tt-close", { bubbles: true, composed: true }));
131
+ }
132
+ handleBackdropClick(event) {
133
+ if (event.target === event.currentTarget)
134
+ this.close();
135
+ }
136
+ static { this.styles = css `
137
+ /* The browser's own [hidden] rule loses to any :host display, so a
138
+ hidden element would still show. Important, so it always wins. */
139
+ :host([hidden]) {
140
+ display: none !important;
141
+ }
142
+
143
+ /*
144
+ display: contents, so the host NEVER generates a box.
145
+
146
+ Everything this component draws is position:fixed, so it has no
147
+ business taking part in its parent's layout. Without a display of
148
+ its own the host fell back to inline, which is only harmless while
149
+ the rule below is also matching: opening the drawer stopped
150
+ display:none applying and the host became a real box among its
151
+ siblings.
152
+
153
+ That did NOT turn out to be what made the trigger button jump - the
154
+ scroll lock did, see scroll-lock.ts - but a component whose output
155
+ is entirely fixed should not be able to affect a flex gap or an
156
+ inline run at all. tt-confirm already does this.
157
+ */
158
+ :host {
159
+ display: contents;
160
+
161
+ --_size: 420px;
162
+ }
163
+
164
+ /*
165
+ Closed, render() draws nothing at all, so nothing inside can be
166
+ tabbed to. That used to be backed by display: none on a closed host,
167
+ which also cut the exit short: the panel vanished the moment open
168
+ went false. A host with display: contents and nothing rendered has
169
+ no box either way.
170
+ */
171
+
172
+ .backdrop {
173
+ position: fixed;
174
+ inset: 0;
175
+ z-index: var(--tt-z-drawer);
176
+
177
+ background: var(--tt-overlay);
178
+ -webkit-backdrop-filter: blur(2px);
179
+ backdrop-filter: blur(2px);
180
+
181
+ transition: opacity var(--tt-duration-normal) var(--tt-ease);
182
+ }
183
+
184
+ .panel {
185
+ position: fixed;
186
+ z-index: var(--tt-z-drawer);
187
+
188
+ display: flex;
189
+ flex-direction: column;
190
+
191
+ box-sizing: border-box;
192
+
193
+ /* Rung 3 of the elevation ladder: the popover surface, as on
194
+ tt-modal. It used --tt-background, the PAGE colour, so the panel
195
+ read as a grey hole in the page rather than a sheet above it,
196
+ and did not match a modal opened from the same screen. */
197
+ background: var(--tt-popover);
198
+ color: var(--tt-popover-foreground);
199
+
200
+ box-shadow: var(--tt-elevation-3);
201
+ outline: none;
202
+
203
+ font-family: var(--tt-font-sans);
204
+
205
+ transition:
206
+ transform var(--tt-duration-slow) var(--tt-ease-out),
207
+ opacity var(--tt-duration-slow) var(--tt-ease-out);
208
+ }
209
+
210
+ /* Insets keep the panel clear of notches and home indicators. */
211
+ :host([side="right"]) .panel,
212
+ :host([side="left"]) .panel {
213
+ top: 0;
214
+ bottom: 0;
215
+ width: min(var(--_size), 100vw);
216
+ padding-top: env(safe-area-inset-top);
217
+ padding-bottom: env(safe-area-inset-bottom);
218
+ }
219
+
220
+ :host([side="right"]) .panel {
221
+ right: 0;
222
+ border-left: 1px solid var(--tt-border);
223
+ }
224
+
225
+ :host([side="left"]) .panel {
226
+ left: 0;
227
+ border-right: 1px solid var(--tt-border);
228
+ }
229
+
230
+ :host([side="bottom"]) .panel {
231
+ left: 0;
232
+ right: 0;
233
+ bottom: 0;
234
+
235
+ max-height: min(var(--_size, 70vh), 90dvh);
236
+
237
+ border-top: 1px solid var(--tt-border);
238
+ border-radius: var(--tt-radius-lg) var(--tt-radius-lg) 0 0;
239
+
240
+ padding-bottom: env(safe-area-inset-bottom);
241
+ }
242
+
243
+ header {
244
+ display: flex;
245
+ align-items: center;
246
+ justify-content: space-between;
247
+ gap: var(--tt-space-3);
248
+
249
+ flex-shrink: 0;
250
+
251
+ padding: var(--tt-space-4) var(--tt-space-5);
252
+ border-bottom: 1px solid var(--tt-border);
253
+ }
254
+
255
+ h2 {
256
+ margin: 0;
257
+ font-size: var(--tt-text-md);
258
+ font-weight: var(--tt-weight-semibold);
259
+ overflow-wrap: anywhere;
260
+ }
261
+
262
+ .body {
263
+ flex: 1;
264
+ min-height: 0;
265
+ overflow-y: auto;
266
+ padding: var(--tt-space-5);
267
+ }
268
+
269
+ footer {
270
+ flex-shrink: 0;
271
+
272
+ display: flex;
273
+ justify-content: flex-end;
274
+ gap: var(--tt-space-2);
275
+ flex-wrap: wrap;
276
+
277
+ padding: var(--tt-space-4) var(--tt-space-5);
278
+ border-top: 1px solid var(--tt-border);
279
+ }
280
+
281
+ /* Hidden when nothing is slotted, so an empty footer draws no line. */
282
+ footer:not(:has(*)) {
283
+ display: none;
284
+ }
285
+
286
+ .close {
287
+ display: inline-flex;
288
+ align-items: center;
289
+ justify-content: center;
290
+
291
+ /* The control token, not a fixed 30px: the same close button in
292
+ tt-modal and tt-drawer, and it grows to a full touch target
293
+ under pointer: coarse like every other control. */
294
+ width: var(--tt-control-sm);
295
+ height: var(--tt-control-sm);
296
+ margin: -4px -6px -4px 0;
297
+ /* Stays at the end even when the heading is hidden. */
298
+ margin-inline-start: auto;
299
+
300
+ border: none;
301
+ border-radius: var(--tt-radius);
302
+ background: transparent;
303
+ color: var(--tt-muted-foreground);
304
+
305
+ font: inherit;
306
+ cursor: pointer;
307
+
308
+ transition:
309
+ background var(--tt-duration-normal) var(--tt-ease),
310
+ color var(--tt-duration-normal) var(--tt-ease);
311
+ }
312
+
313
+ .close:hover {
314
+ background: var(--tt-accent);
315
+ color: var(--tt-foreground);
316
+ }
317
+
318
+ .close:focus-visible {
319
+ outline: var(--tt-ring-width) solid var(--tt-ring);
320
+ outline-offset: var(--tt-ring-offset);
321
+ }
322
+
323
+ /*
324
+ Entrance and exit are one transition run both ways: in from the
325
+ edge it is attached to as it is first drawn (@starting-style), and
326
+ back out to it on close, quicker and accelerating away. Transitions
327
+ rather than keyframes, so closing mid-entrance turns round where it
328
+ is. Reduced motion is handled by the 1ms durations in tokens.css.
329
+ */
330
+ :host([side="right"]) .panel { --_from: translateX(100%); }
331
+ :host([side="left"]) .panel { --_from: translateX(-100%); }
332
+ :host([side="bottom"]) .panel { --_from: translateY(100%); }
333
+
334
+ @starting-style {
335
+ .backdrop {
336
+ opacity: 0;
337
+ }
338
+
339
+ .panel {
340
+ transform: var(--_from);
341
+ opacity: 0.6;
342
+ }
343
+ }
344
+
345
+ /* Inert and click-through while it goes, so focus is already back
346
+ and the page underneath takes clicks. */
347
+ .closing {
348
+ pointer-events: none;
349
+
350
+ transition-duration: var(--tt-duration-normal);
351
+ transition-timing-function: var(--tt-ease-in);
352
+ }
353
+
354
+ .backdrop.closing {
355
+ opacity: 0;
356
+ }
357
+
358
+ .panel.closing {
359
+ transform: var(--_from);
360
+ opacity: 0.6;
361
+ }
362
+
363
+ `; }
364
+ render() {
365
+ if (!this.open && !this.closing)
366
+ return html ``;
367
+ const closing = this.closing ? "closing" : "";
368
+ return html `
369
+ <div
370
+ class="backdrop ${closing}"
371
+ ?inert=${this.closing}
372
+ @click=${this.handleBackdropClick}
373
+ ></div>
374
+
375
+ <div
376
+ class="panel ${closing}"
377
+ part="panel"
378
+ ?inert=${this.closing}
379
+ role="dialog"
380
+ aria-modal="true"
381
+ aria-label=${this.heading || "Panel"}
382
+ tabindex="-1"
383
+ >
384
+ <header part="header">
385
+ <!-- Hidden, not empty: an empty heading is still a heading, and
386
+ a screen reader lists it as a blank entry in the outline. -->
387
+ <h2 ?hidden=${!this.heading}>${this.heading}</h2>
388
+
389
+ <slot name="header"></slot>
390
+
391
+ ${!this.persistent
392
+ ? html `
393
+ <button class="close" part="close" aria-label="Close" @click=${this.close}>
394
+ <tt-icon name="x" size="16px"></tt-icon>
395
+ </button>
396
+ `
397
+ : ""}
398
+ </header>
399
+
400
+ <div class="body" part="body">
401
+ <slot></slot>
402
+ </div>
403
+
404
+ <footer part="footer">
405
+ <slot name="footer"></slot>
406
+ </footer>
407
+ </div>
408
+ `;
409
+ }
410
+ };
411
+ __decorate([
412
+ property({ type: Boolean, reflect: true })
413
+ ], TTDrawer.prototype, "open", void 0);
414
+ __decorate([
415
+ property({ type: String, reflect: true })
416
+ ], TTDrawer.prototype, "side", void 0);
417
+ __decorate([
418
+ property({ type: String })
419
+ ], TTDrawer.prototype, "heading", void 0);
420
+ __decorate([
421
+ property({ type: String })
422
+ ], TTDrawer.prototype, "size", void 0);
423
+ __decorate([
424
+ property({ type: Boolean })
425
+ ], TTDrawer.prototype, "persistent", void 0);
426
+ __decorate([
427
+ state()
428
+ ], TTDrawer.prototype, "closing", void 0);
429
+ TTDrawer = __decorate([
430
+ customElement("tt-drawer")
431
+ ], TTDrawer);
432
+ export { TTDrawer };
433
+ //# sourceMappingURL=tt-drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tt-drawer.js","sourceRoot":"","sources":["../src/tt-drawer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { LitElement } from "lit";
2
+ import type { PropertyValues } from "lit";
3
+ import "./tt-icon.js";
4
+ export interface MenuAction {
5
+ value: string;
6
+ label: string;
7
+ danger?: boolean;
8
+ disabled?: boolean;
9
+ separated?: boolean;
10
+ }
11
+ /**
12
+ * Actions attached to a thing: the row menu behind a table's dots button,
13
+ * or a settings menu in a header.
14
+ *
15
+ * Distinct from tt-select. A select edits a value and shows what is
16
+ * currently chosen; a menu performs an action and remembers nothing.
17
+ */
18
+ export declare class TTDropdownMenu extends LitElement {
19
+ items: MenuAction[];
20
+ label: string;
21
+ align: "start" | "end";
22
+ disabled: boolean;
23
+ size: "small" | "medium" | "large";
24
+ private open;
25
+ private activeIndex;
26
+ private customTrigger;
27
+ private triggerHasText;
28
+ private trigger;
29
+ private menu;
30
+ private appliedTriggerWidth;
31
+ private menuId;
32
+ private untrack?;
33
+ disconnectedCallback(): void;
34
+ private openMenu;
35
+ private closeMenu;
36
+ private removeGlobalListeners;
37
+ private handleDocumentClick;
38
+ private reposition;
39
+ private handleTriggerClick;
40
+ private choose;
41
+ private move;
42
+ private handleKeydown;
43
+ private handleMenuKeydown;
44
+ updated(changed: PropertyValues): void;
45
+ private syncPopover;
46
+ private position;
47
+ private matchTriggerWidth;
48
+ static styles: import("lit").CSSResult;
49
+ focus(options?: FocusOptions): void;
50
+ render(): import("lit-html").TemplateResult<1>;
51
+ }
52
+ declare global {
53
+ interface HTMLElementTagNameMap {
54
+ "tt-dropdown-menu": TTDropdownMenu;
55
+ }
56
+ }
57
+ //# sourceMappingURL=tt-dropdown-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tt-dropdown-menu.d.ts","sourceRoot":"","sources":["../src/tt-dropdown-menu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1C,OAAO,cAAc,CAAC;AAItB,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;GAMG;AACH,qBACa,cAAe,SAAQ,UAAU;IACjB,KAAK,EAAE,UAAU,EAAE,CAAM;IAExB,KAAK,SAAa;IAGlB,KAAK,EAAE,OAAO,GAAG,KAAK,CAAS;IAEf,QAAQ,UAAS;IAc7D,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAW;IAEpC,OAAO,CAAC,IAAI,CAAS;IAErB,OAAO,CAAC,WAAW,CAAM;IAMzB,OAAO,CAAC,aAAa,CAAS;IAQ9B,OAAO,CAAC,cAAc,CAAS;IAErB,OAAO,CAAC,OAAO,CAAe;IAEjC,OAAO,CAAC,IAAI,CAAe;IAI3C,OAAO,CAAC,mBAAmB,CAAM;IAEjC,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO,CAAC,OAAO,CAAC,CAAa;IAE7B,oBAAoB;IAKpB,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,mBAAmB,CAEzB;IAEF,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,MAAM;IAcd,OAAO,CAAC,IAAI;IAaZ,OAAO,CAAC,aAAa;IAuDrB,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,OAAO,EAAE,cAAc;IAoB/B,OAAO,CAAC,WAAW;IAyBnB,OAAO,CAAC,QAAQ;IAqBhB,OAAO,CAAC,iBAAiB;IAwBzB,MAAM,CAAC,MAAM,0BAsOX;IAIF,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY;IAI5B,MAAM;CA8DP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}