@threadlabs/looma 0.24.1 → 0.25.1

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 (498) hide show
  1. package/README.md +1 -1
  2. package/components/ui-affordance-scope/ui-affordance-scope.html +1 -1
  3. package/components/ui-affordance-scope/ui-affordance-scope.js +6 -1
  4. package/components/ui-avatar/ui-avatar.html +4 -4
  5. package/components/ui-avatar/ui-avatar.js +6 -1
  6. package/components/ui-avatar-group/ui-avatar-group.html +2 -2
  7. package/components/ui-avatar-group/ui-avatar-group.js +6 -1
  8. package/components/ui-badge/ui-badge.html +30 -30
  9. package/components/ui-breadcrumb-item/ui-breadcrumb-item.html +1 -1
  10. package/components/ui-button/ui-button.html +33 -33
  11. package/components/ui-button/ui-button.js +6 -1
  12. package/components/ui-callout/ui-callout.html +4 -4
  13. package/components/ui-card/ui-card.html +9 -9
  14. package/components/ui-checkbox/ui-checkbox.html +11 -11
  15. package/components/ui-checkbox/ui-checkbox.js +6 -1
  16. package/components/ui-cluster/ui-cluster.html +12 -12
  17. package/components/ui-combobox/ui-combobox.html +15 -17
  18. package/components/ui-combobox/ui-combobox.js +13 -15
  19. package/components/ui-container/ui-container.html +5 -5
  20. package/components/ui-context-menu/ui-context-menu.js +6 -1
  21. package/components/ui-cover/ui-cover.html +1 -1
  22. package/components/ui-description-list/ui-description-list.html +10 -10
  23. package/components/ui-dialog/ui-dialog.html +4 -4
  24. package/components/ui-dialog/ui-dialog.js +6 -1
  25. package/components/ui-disclosure/ui-disclosure.html +13 -13
  26. package/components/ui-disclosure/ui-disclosure.js +6 -1
  27. package/components/ui-editable/ui-editable.html +1 -1
  28. package/components/ui-editable/ui-editable.js +6 -1
  29. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.js +6 -1
  30. package/components/ui-editor-mention-menu/ui-editor-mention-menu.js +6 -1
  31. package/components/ui-editor-slash-menu/ui-editor-slash-menu.js +6 -1
  32. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.js +6 -1
  33. package/components/ui-editor-table-overlay/ui-editor-table-overlay.js +6 -1
  34. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.js +6 -1
  35. package/components/ui-editor-toolbar/ui-editor-toolbar.html +4 -4
  36. package/components/ui-editor-toolbar/ui-editor-toolbar.js +6 -1
  37. package/components/ui-floating-action-button/ui-floating-action-button.html +1 -1
  38. package/components/ui-form-field/ui-form-field.html +1 -1
  39. package/components/ui-form-field/ui-form-field.js +6 -1
  40. package/components/ui-grid/ui-grid.html +7 -7
  41. package/components/ui-icon-button/ui-icon-button.html +26 -26
  42. package/components/ui-icon-button/ui-icon-button.js +6 -1
  43. package/components/ui-image/ui-image.html +11 -11
  44. package/components/ui-image/ui-image.js +6 -1
  45. package/components/ui-input/ui-input.html +9 -7
  46. package/components/ui-input/ui-input.js +6 -1
  47. package/components/ui-input-group/ui-input-group.html +37 -8
  48. package/components/ui-input-group/ui-input-group.js +8 -3
  49. package/components/ui-list/ui-list.html +6 -6
  50. package/components/ui-list-item/ui-list-item.html +8 -8
  51. package/components/ui-listbox/ui-listbox.js +6 -1
  52. package/components/ui-menu/ui-menu.html +3 -3
  53. package/components/ui-menu/ui-menu.js +6 -1
  54. package/components/ui-menu-item/ui-menu-item.html +3 -3
  55. package/components/ui-menu-item/ui-menu-item.js +6 -1
  56. package/components/ui-meter/ui-meter.html +7 -7
  57. package/components/ui-nav-item/ui-nav-item.html +6 -6
  58. package/components/ui-page-header/ui-page-header.html +2 -2
  59. package/components/ui-popover/ui-popover.html +3 -3
  60. package/components/ui-popover/ui-popover.js +6 -1
  61. package/components/ui-radio/ui-radio.html +10 -10
  62. package/components/ui-radio/ui-radio.js +6 -1
  63. package/components/ui-radio-group/ui-radio-group.html +2 -2
  64. package/components/ui-radio-group/ui-radio-group.js +6 -1
  65. package/components/ui-reel/ui-reel.html +11 -11
  66. package/components/ui-scroll-area/ui-scroll-area.html +4 -4
  67. package/components/ui-scroll-area/ui-scroll-area.js +6 -1
  68. package/components/ui-search-result-row/ui-search-result-row.html +5 -5
  69. package/components/ui-search-shell/ui-search-shell.js +6 -1
  70. package/components/ui-section/ui-section.html +4 -4
  71. package/components/ui-select/ui-select.html +3 -3
  72. package/components/ui-select/ui-select.js +6 -1
  73. package/components/ui-separator/ui-separator.html +4 -4
  74. package/components/ui-sidebar/ui-sidebar.html +6 -6
  75. package/components/ui-sidebar/ui-sidebar.js +6 -1
  76. package/components/ui-spinner/ui-spinner.html +1 -1
  77. package/components/ui-stack/ui-stack.html +12 -12
  78. package/components/ui-status-message/ui-status-message.html +4 -4
  79. package/components/ui-switch/ui-switch.html +11 -11
  80. package/components/ui-switch/ui-switch.js +6 -1
  81. package/components/ui-switcher/ui-switcher.html +11 -11
  82. package/components/ui-switcher/ui-switcher.js +6 -1
  83. package/components/ui-table/ui-table.html +2 -2
  84. package/components/ui-table/ui-table.js +6 -1
  85. package/components/ui-tabs/ui-tabs.html +8 -8
  86. package/components/ui-tabs/ui-tabs.js +6 -1
  87. package/components/ui-text/ui-text.html +20 -20
  88. package/components/ui-textarea/ui-textarea.html +46 -18
  89. package/components/ui-textarea/ui-textarea.js +6 -1
  90. package/components/ui-toast/ui-toast.html +4 -4
  91. package/components/ui-toast/ui-toast.js +6 -1
  92. package/components/ui-toast-region/ui-toast-region.html +16 -11
  93. package/components/ui-toast-region/ui-toast-region.js +12 -9
  94. package/components/ui-tooltip/ui-tooltip.html +1 -1
  95. package/components/ui-tooltip/ui-tooltip.js +6 -1
  96. package/components/ui-tree/ui-tree.html +2 -2
  97. package/components/ui-tree/ui-tree.js +6 -1
  98. package/components/ui-tree-item/ui-tree-item.html +4 -4
  99. package/components/ui-tree-item/ui-tree-item.js +6 -1
  100. package/dist/index.js +10 -4
  101. package/package.json +3 -3
  102. package/styles/ui-action-bar.css +1 -1
  103. package/styles/ui-affordance-scope.css +1 -1
  104. package/styles/ui-avatar-group.css +1 -1
  105. package/styles/ui-avatar.css +1 -1
  106. package/styles/ui-badge.css +1 -1
  107. package/styles/ui-breadcrumb-item.css +1 -1
  108. package/styles/ui-breadcrumbs.css +1 -1
  109. package/styles/ui-button.css +1 -1
  110. package/styles/ui-callout.css +1 -1
  111. package/styles/ui-card.css +1 -1
  112. package/styles/ui-checkbox.css +1 -1
  113. package/styles/ui-cluster.css +1 -1
  114. package/styles/ui-combobox.css +1 -1
  115. package/styles/ui-container.css +1 -1
  116. package/styles/ui-context-menu.css +1 -1
  117. package/styles/ui-cover.css +1 -1
  118. package/styles/ui-description-item.css +1 -1
  119. package/styles/ui-description-list.css +1 -1
  120. package/styles/ui-dialog.css +1 -1
  121. package/styles/ui-disclosure.css +2 -2
  122. package/styles/ui-editable.css +1 -1
  123. package/styles/ui-editor-insert-table-grid.css +1 -1
  124. package/styles/ui-editor-mention-menu-item.css +1 -1
  125. package/styles/ui-editor-mention-menu.css +1 -1
  126. package/styles/ui-editor-slash-menu-group.css +1 -1
  127. package/styles/ui-editor-slash-menu-item.css +1 -1
  128. package/styles/ui-editor-slash-menu.css +1 -1
  129. package/styles/ui-editor-table-context-menu.css +1 -1
  130. package/styles/ui-editor-table-overlay.css +1 -1
  131. package/styles/ui-editor-table-toolbar.css +1 -1
  132. package/styles/ui-editor-toolbar.css +1 -1
  133. package/styles/ui-floating-action-button.css +1 -1
  134. package/styles/ui-form-field.css +1 -1
  135. package/styles/ui-grid.css +1 -1
  136. package/styles/ui-icon-button.css +1 -1
  137. package/styles/ui-icon.css +1 -1
  138. package/styles/ui-image.css +1 -1
  139. package/styles/ui-input-group.css +36 -6
  140. package/styles/ui-input.css +1 -1
  141. package/styles/ui-list-item.css +1 -1
  142. package/styles/ui-list.css +1 -1
  143. package/styles/ui-listbox.css +1 -1
  144. package/styles/ui-menu-group.css +1 -1
  145. package/styles/ui-menu-item.css +1 -1
  146. package/styles/ui-menu.css +1 -1
  147. package/styles/ui-meter.css +1 -1
  148. package/styles/ui-nav-item.css +1 -1
  149. package/styles/ui-page-header.css +1 -1
  150. package/styles/ui-popover.css +1 -1
  151. package/styles/ui-radio-group.css +1 -1
  152. package/styles/ui-radio.css +1 -1
  153. package/styles/ui-reel.css +1 -1
  154. package/styles/ui-scroll-area.css +1 -1
  155. package/styles/ui-search-result-row.css +1 -1
  156. package/styles/ui-search-shell.css +1 -1
  157. package/styles/ui-section.css +1 -1
  158. package/styles/ui-select.css +1 -1
  159. package/styles/ui-separator.css +1 -1
  160. package/styles/ui-sidebar.css +2 -2
  161. package/styles/ui-spinner.css +1 -1
  162. package/styles/ui-stack.css +1 -1
  163. package/styles/ui-status-message.css +1 -1
  164. package/styles/ui-switch.css +1 -1
  165. package/styles/ui-switcher.css +1 -1
  166. package/styles/ui-table.css +1 -1
  167. package/styles/ui-tabs.css +1 -1
  168. package/styles/ui-text.css +1 -1
  169. package/styles/ui-textarea.css +43 -15
  170. package/styles/ui-toast-region.css +1 -1
  171. package/styles/ui-toast.css +1 -1
  172. package/styles/ui-tooltip.css +1 -1
  173. package/styles/ui-top-bar.css +1 -1
  174. package/styles/ui-tree-item.css +1 -1
  175. package/styles/ui-tree.css +1 -1
  176. package/vanilla/UiActionBar.d.ts +1 -1
  177. package/vanilla/UiActionBar.js +1 -1
  178. package/vanilla/UiAffordanceScope.d.ts +1 -1
  179. package/vanilla/UiAffordanceScope.js +1 -1
  180. package/vanilla/UiAvatar.d.ts +1 -1
  181. package/vanilla/UiAvatar.js +1 -1
  182. package/vanilla/UiAvatarGroup.d.ts +1 -1
  183. package/vanilla/UiAvatarGroup.js +1 -1
  184. package/vanilla/UiBadge.d.ts +1 -1
  185. package/vanilla/UiBadge.js +1 -1
  186. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  187. package/vanilla/UiBreadcrumbItem.js +1 -1
  188. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  189. package/vanilla/UiBreadcrumbs.js +1 -1
  190. package/vanilla/UiButton.d.ts +1 -1
  191. package/vanilla/UiButton.js +1 -1
  192. package/vanilla/UiCallout.d.ts +1 -1
  193. package/vanilla/UiCallout.js +1 -1
  194. package/vanilla/UiCard.d.ts +1 -1
  195. package/vanilla/UiCard.js +1 -1
  196. package/vanilla/UiCheckbox.d.ts +1 -1
  197. package/vanilla/UiCheckbox.js +1 -1
  198. package/vanilla/UiCluster.d.ts +1 -1
  199. package/vanilla/UiCluster.js +1 -1
  200. package/vanilla/UiCombobox.d.ts +1 -3
  201. package/vanilla/UiCombobox.js +2 -2
  202. package/vanilla/UiContainer.d.ts +1 -1
  203. package/vanilla/UiContainer.js +1 -1
  204. package/vanilla/UiContextMenu.d.ts +1 -1
  205. package/vanilla/UiContextMenu.js +1 -1
  206. package/vanilla/UiCover.d.ts +1 -1
  207. package/vanilla/UiCover.js +1 -1
  208. package/vanilla/UiDescriptionItem.d.ts +1 -1
  209. package/vanilla/UiDescriptionItem.js +1 -1
  210. package/vanilla/UiDescriptionList.d.ts +1 -1
  211. package/vanilla/UiDescriptionList.js +1 -1
  212. package/vanilla/UiDialog.d.ts +1 -1
  213. package/vanilla/UiDialog.js +1 -1
  214. package/vanilla/UiDisclosure.d.ts +1 -1
  215. package/vanilla/UiDisclosure.js +1 -1
  216. package/vanilla/UiEditable.d.ts +1 -1
  217. package/vanilla/UiEditable.js +1 -1
  218. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  219. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  220. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  221. package/vanilla/UiEditorMentionMenu.js +1 -1
  222. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  223. package/vanilla/UiEditorMentionMenuItem.js +1 -1
  224. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  225. package/vanilla/UiEditorSlashMenu.js +1 -1
  226. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  227. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  228. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  229. package/vanilla/UiEditorSlashMenuItem.js +1 -1
  230. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  231. package/vanilla/UiEditorTableContextMenu.js +1 -1
  232. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  233. package/vanilla/UiEditorTableOverlay.js +1 -1
  234. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  235. package/vanilla/UiEditorTableToolbar.js +1 -1
  236. package/vanilla/UiEditorToolbar.d.ts +1 -1
  237. package/vanilla/UiEditorToolbar.js +1 -1
  238. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  239. package/vanilla/UiFloatingActionButton.js +1 -1
  240. package/vanilla/UiFormField.d.ts +1 -1
  241. package/vanilla/UiFormField.js +1 -1
  242. package/vanilla/UiGrid.d.ts +1 -1
  243. package/vanilla/UiGrid.js +1 -1
  244. package/vanilla/UiIcon.d.ts +1 -1
  245. package/vanilla/UiIcon.js +1 -1
  246. package/vanilla/UiIconButton.d.ts +1 -1
  247. package/vanilla/UiIconButton.js +1 -1
  248. package/vanilla/UiImage.d.ts +1 -1
  249. package/vanilla/UiImage.js +1 -1
  250. package/vanilla/UiInput.d.ts +4 -4
  251. package/vanilla/UiInput.js +2 -2
  252. package/vanilla/UiInputGroup.d.ts +2 -1
  253. package/vanilla/UiInputGroup.js +2 -2
  254. package/vanilla/UiList.d.ts +1 -1
  255. package/vanilla/UiList.js +1 -1
  256. package/vanilla/UiListItem.d.ts +1 -1
  257. package/vanilla/UiListItem.js +1 -1
  258. package/vanilla/UiListbox.d.ts +1 -1
  259. package/vanilla/UiListbox.js +1 -1
  260. package/vanilla/UiMenu.d.ts +1 -1
  261. package/vanilla/UiMenu.js +1 -1
  262. package/vanilla/UiMenuGroup.d.ts +1 -1
  263. package/vanilla/UiMenuGroup.js +1 -1
  264. package/vanilla/UiMenuItem.d.ts +1 -1
  265. package/vanilla/UiMenuItem.js +1 -1
  266. package/vanilla/UiMeter.d.ts +1 -1
  267. package/vanilla/UiMeter.js +1 -1
  268. package/vanilla/UiNavItem.d.ts +1 -1
  269. package/vanilla/UiNavItem.js +1 -1
  270. package/vanilla/UiPageHeader.d.ts +1 -1
  271. package/vanilla/UiPageHeader.js +1 -1
  272. package/vanilla/UiPopover.d.ts +1 -1
  273. package/vanilla/UiPopover.js +1 -1
  274. package/vanilla/UiRadio.d.ts +1 -1
  275. package/vanilla/UiRadio.js +1 -1
  276. package/vanilla/UiRadioGroup.d.ts +1 -1
  277. package/vanilla/UiRadioGroup.js +1 -1
  278. package/vanilla/UiReel.d.ts +1 -1
  279. package/vanilla/UiReel.js +1 -1
  280. package/vanilla/UiScrollArea.d.ts +1 -1
  281. package/vanilla/UiScrollArea.js +1 -1
  282. package/vanilla/UiSearchResultRow.d.ts +1 -1
  283. package/vanilla/UiSearchResultRow.js +1 -1
  284. package/vanilla/UiSearchShell.d.ts +1 -1
  285. package/vanilla/UiSearchShell.js +1 -1
  286. package/vanilla/UiSection.d.ts +1 -1
  287. package/vanilla/UiSection.js +1 -1
  288. package/vanilla/UiSelect.d.ts +1 -1
  289. package/vanilla/UiSelect.js +1 -1
  290. package/vanilla/UiSeparator.d.ts +1 -1
  291. package/vanilla/UiSeparator.js +1 -1
  292. package/vanilla/UiSidebar.d.ts +1 -1
  293. package/vanilla/UiSidebar.js +1 -1
  294. package/vanilla/UiSpinner.d.ts +1 -1
  295. package/vanilla/UiSpinner.js +1 -1
  296. package/vanilla/UiStack.d.ts +1 -1
  297. package/vanilla/UiStack.js +1 -1
  298. package/vanilla/UiStatusMessage.d.ts +1 -1
  299. package/vanilla/UiStatusMessage.js +1 -1
  300. package/vanilla/UiSwitch.d.ts +1 -1
  301. package/vanilla/UiSwitch.js +1 -1
  302. package/vanilla/UiSwitcher.d.ts +1 -1
  303. package/vanilla/UiSwitcher.js +1 -1
  304. package/vanilla/UiTable.d.ts +1 -1
  305. package/vanilla/UiTable.js +1 -1
  306. package/vanilla/UiTabs.d.ts +1 -1
  307. package/vanilla/UiTabs.js +1 -1
  308. package/vanilla/UiText.d.ts +1 -1
  309. package/vanilla/UiText.js +1 -1
  310. package/vanilla/UiTextarea.d.ts +1 -1
  311. package/vanilla/UiTextarea.js +1 -1
  312. package/vanilla/UiToast.d.ts +1 -1
  313. package/vanilla/UiToast.js +1 -1
  314. package/vanilla/UiToastRegion.d.ts +2 -2
  315. package/vanilla/UiToastRegion.js +2 -2
  316. package/vanilla/UiTooltip.d.ts +1 -1
  317. package/vanilla/UiTooltip.js +1 -1
  318. package/vanilla/UiTopBar.d.ts +1 -1
  319. package/vanilla/UiTopBar.js +1 -1
  320. package/vanilla/UiTree.d.ts +1 -1
  321. package/vanilla/UiTree.js +1 -1
  322. package/vanilla/UiTreeItem.d.ts +1 -1
  323. package/vanilla/UiTreeItem.js +1 -1
  324. package/vue/UiActionBar.vue +1 -1
  325. package/vue/UiAffordanceScope.vue +8 -1
  326. package/vue/UiAvatar.d.ts +6 -9
  327. package/vue/UiAvatar.vue +71 -20
  328. package/vue/UiAvatarGroup.d.ts +7 -10
  329. package/vue/UiAvatarGroup.vue +45 -12
  330. package/vue/UiBadge.vue +1 -1
  331. package/vue/UiBreadcrumbItem.vue +1 -1
  332. package/vue/UiBreadcrumbs.vue +1 -1
  333. package/vue/UiButton.vue +1 -1
  334. package/vue/UiCallout.vue +1 -1
  335. package/vue/UiCard.vue +1 -1
  336. package/vue/UiCheckbox.d.ts +8 -11
  337. package/vue/UiCheckbox.vue +34 -11
  338. package/vue/UiCluster.vue +1 -1
  339. package/vue/UiCombobox.d.ts +60 -66
  340. package/vue/UiCombobox.vue +476 -124
  341. package/vue/UiContainer.vue +1 -1
  342. package/vue/UiContextMenu.vue +18 -9
  343. package/vue/UiCover.vue +1 -1
  344. package/vue/UiDescriptionItem.vue +1 -1
  345. package/vue/UiDescriptionList.vue +1 -1
  346. package/vue/UiDialog.d.ts +8 -11
  347. package/vue/UiDialog.vue +39 -12
  348. package/vue/UiDisclosure.d.ts +12 -15
  349. package/vue/UiDisclosure.vue +70 -24
  350. package/vue/UiEditable.d.ts +3 -3
  351. package/vue/UiEditable.vue +60 -21
  352. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  353. package/vue/UiEditorInsertTableGrid.vue +75 -14
  354. package/vue/UiEditorMentionMenu.d.ts +10 -13
  355. package/vue/UiEditorMentionMenu.vue +50 -7
  356. package/vue/UiEditorMentionMenuItem.vue +1 -1
  357. package/vue/UiEditorSlashMenu.d.ts +12 -15
  358. package/vue/UiEditorSlashMenu.vue +48 -7
  359. package/vue/UiEditorSlashMenuGroup.vue +1 -1
  360. package/vue/UiEditorSlashMenuItem.vue +1 -1
  361. package/vue/UiEditorTableContextMenu.vue +73 -4
  362. package/vue/UiEditorTableOverlay.d.ts +2 -2
  363. package/vue/UiEditorTableOverlay.vue +202 -38
  364. package/vue/UiEditorTableToolbar.d.ts +2 -2
  365. package/vue/UiEditorTableToolbar.vue +128 -7
  366. package/vue/UiEditorToolbar.vue +3 -3
  367. package/vue/UiFloatingActionButton.vue +1 -1
  368. package/vue/UiFormField.vue +1 -1
  369. package/vue/UiGrid.vue +1 -1
  370. package/vue/UiIcon.vue +1 -1
  371. package/vue/UiIconButton.vue +1 -1
  372. package/vue/UiImage.vue +7 -6
  373. package/vue/UiInput.d.ts +5 -5
  374. package/vue/UiInput.vue +15 -3
  375. package/vue/UiInputGroup.d.ts +9 -0
  376. package/vue/UiInputGroup.vue +57 -8
  377. package/vue/UiList.vue +1 -1
  378. package/vue/UiListItem.vue +1 -1
  379. package/vue/UiListbox.d.ts +6 -9
  380. package/vue/UiListbox.vue +70 -19
  381. package/vue/UiMenu.vue +20 -10
  382. package/vue/UiMenuGroup.vue +1 -1
  383. package/vue/UiMenuItem.d.ts +13 -16
  384. package/vue/UiMenuItem.vue +30 -7
  385. package/vue/UiMeter.vue +1 -1
  386. package/vue/UiNavItem.vue +1 -1
  387. package/vue/UiPageHeader.vue +1 -1
  388. package/vue/UiPopover.vue +12 -4
  389. package/vue/UiRadio.d.ts +8 -11
  390. package/vue/UiRadio.vue +34 -11
  391. package/vue/UiRadioGroup.vue +16 -7
  392. package/vue/UiReel.vue +1 -1
  393. package/vue/UiScrollArea.vue +3 -3
  394. package/vue/UiSearchResultRow.vue +1 -1
  395. package/vue/UiSearchShell.vue +14 -6
  396. package/vue/UiSection.vue +1 -1
  397. package/vue/UiSelect.vue +3 -2
  398. package/vue/UiSeparator.vue +1 -1
  399. package/vue/UiSidebar.d.ts +7 -10
  400. package/vue/UiSidebar.vue +44 -12
  401. package/vue/UiSpinner.vue +1 -1
  402. package/vue/UiStack.vue +1 -1
  403. package/vue/UiStatusMessage.vue +1 -1
  404. package/vue/UiSwitch.d.ts +8 -11
  405. package/vue/UiSwitch.vue +34 -11
  406. package/vue/UiSwitcher.vue +8 -1
  407. package/vue/UiTable.vue +1 -1
  408. package/vue/UiTabs.vue +30 -8
  409. package/vue/UiText.vue +1 -1
  410. package/vue/UiTextarea.vue +78 -17
  411. package/vue/UiToast.vue +7 -6
  412. package/vue/UiToastRegion.d.ts +15 -3
  413. package/vue/UiToastRegion.vue +90 -45
  414. package/vue/UiTooltip.d.ts +9 -12
  415. package/vue/UiTooltip.vue +30 -7
  416. package/vue/UiTopBar.vue +1 -1
  417. package/vue/UiTree.vue +17 -13
  418. package/vue/UiTreeItem.d.ts +15 -18
  419. package/vue/UiTreeItem.vue +79 -30
  420. package/vue/chunks/UiActionBar.js +1 -1
  421. package/vue/chunks/UiAffordanceScope.js +6 -2
  422. package/vue/chunks/UiAvatar.js +37 -10
  423. package/vue/chunks/UiAvatarGroup.js +26 -7
  424. package/vue/chunks/UiBadge.js +2 -2
  425. package/vue/chunks/UiBreadcrumbItem.js +2 -2
  426. package/vue/chunks/UiBreadcrumbs.js +2 -2
  427. package/vue/chunks/UiButton.js +2 -2
  428. package/vue/chunks/UiCallout.js +2 -2
  429. package/vue/chunks/UiCard.js +2 -2
  430. package/vue/chunks/UiCheckbox.js +25 -12
  431. package/vue/chunks/UiCluster.js +2 -2
  432. package/vue/chunks/UiCombobox.js +628 -117
  433. package/vue/chunks/UiContainer.js +2 -2
  434. package/vue/chunks/UiContextMenu.js +14 -10
  435. package/vue/chunks/UiCover.js +2 -2
  436. package/vue/chunks/UiDescriptionItem.js +2 -2
  437. package/vue/chunks/UiDescriptionList.js +2 -2
  438. package/vue/chunks/UiDialog.js +29 -11
  439. package/vue/chunks/UiDisclosure.js +44 -14
  440. package/vue/chunks/UiEditable.js +33 -9
  441. package/vue/chunks/UiEditorInsertTableGrid.js +98 -14
  442. package/vue/chunks/UiEditorMentionMenu.js +76 -9
  443. package/vue/chunks/UiEditorMentionMenuItem.js +2 -2
  444. package/vue/chunks/UiEditorSlashMenu.js +70 -11
  445. package/vue/chunks/UiEditorSlashMenuGroup.js +2 -2
  446. package/vue/chunks/UiEditorSlashMenuItem.js +2 -2
  447. package/vue/chunks/UiEditorTableContextMenu.js +120 -2
  448. package/vue/chunks/UiEditorTableOverlay.js +306 -12
  449. package/vue/chunks/UiEditorTableToolbar.js +215 -3
  450. package/vue/chunks/UiEditorToolbar.js +8 -8
  451. package/vue/chunks/UiFloatingActionButton.js +2 -2
  452. package/vue/chunks/UiFormField.js +2 -2
  453. package/vue/chunks/UiGrid.js +2 -2
  454. package/vue/chunks/UiIcon.js +2 -2
  455. package/vue/chunks/UiIconButton.js +2 -2
  456. package/vue/chunks/UiImage.js +12 -12
  457. package/vue/chunks/UiInput.js +34 -4
  458. package/vue/chunks/UiInputGroup.js +30 -4
  459. package/vue/chunks/UiList.js +2 -2
  460. package/vue/chunks/UiListItem.js +2 -2
  461. package/vue/chunks/UiListbox.js +96 -12
  462. package/vue/chunks/UiMenu.js +6 -2
  463. package/vue/chunks/UiMenuGroup.js +2 -2
  464. package/vue/chunks/UiMenuItem.js +15 -3
  465. package/vue/chunks/UiMeter.js +2 -2
  466. package/vue/chunks/UiNavItem.js +2 -2
  467. package/vue/chunks/UiPageHeader.js +2 -2
  468. package/vue/chunks/UiPopover.js +6 -2
  469. package/vue/chunks/UiRadio.js +25 -12
  470. package/vue/chunks/UiRadioGroup.js +6 -2
  471. package/vue/chunks/UiReel.js +2 -2
  472. package/vue/chunks/UiScrollArea.js +8 -8
  473. package/vue/chunks/UiSearchResultRow.js +2 -2
  474. package/vue/chunks/UiSearchShell.js +9 -4
  475. package/vue/chunks/UiSection.js +2 -2
  476. package/vue/chunks/UiSelect.js +5 -3
  477. package/vue/chunks/UiSeparator.js +2 -2
  478. package/vue/chunks/UiSidebar.js +28 -5
  479. package/vue/chunks/UiSpinner.js +2 -2
  480. package/vue/chunks/UiStack.js +2 -2
  481. package/vue/chunks/UiStatusMessage.js +2 -2
  482. package/vue/chunks/UiSwitch.js +25 -12
  483. package/vue/chunks/UiSwitcher.js +6 -2
  484. package/vue/chunks/UiTable.js +2 -2
  485. package/vue/chunks/UiTabs.js +39 -10
  486. package/vue/chunks/UiText.js +2 -2
  487. package/vue/chunks/UiTextarea.js +3 -2
  488. package/vue/chunks/UiToast.js +8 -8
  489. package/vue/chunks/UiToastRegion.js +86 -20
  490. package/vue/chunks/UiTooltip.js +15 -3
  491. package/vue/chunks/UiTopBar.js +1 -1
  492. package/vue/chunks/UiTree.js +2 -2
  493. package/vue/chunks/UiTreeItem.js +84 -51
  494. package/vue/chunks/control.js +9 -2
  495. package/vue/chunks/host.js +203 -29
  496. package/vue/chunks/props.js +43 -7
  497. package/vue/components.css +1447 -1360
  498. package/vue/host.ts +286 -42
@@ -53,64 +53,64 @@
53
53
  font-weight: inherit;
54
54
  }
55
55
 
56
- :host-state([size="xs"]) {
56
+ :host([size="xs"]) {
57
57
  font-size: var(--ui-font-size-xs);
58
58
  line-height: var(--ui-line-height);
59
59
  }
60
- :host-state([size="sm"]) {
60
+ :host([size="sm"]) {
61
61
  font-size: var(--ui-font-size-sm);
62
62
  line-height: var(--ui-line-height);
63
63
  }
64
- :host-state([size="md"]) {
64
+ :host([size="md"]) {
65
65
  font-size: var(--ui-font-size-md);
66
66
  line-height: var(--ui-line-height);
67
67
  }
68
- :host-state([size="lg"]) {
68
+ :host([size="lg"]) {
69
69
  font-size: var(--ui-font-size-lg);
70
70
  line-height: var(--ui-line-height-relaxed);
71
71
  }
72
72
 
73
- :host-state([tone="secondary"]) {
73
+ :host([tone="secondary"]) {
74
74
  color: var(--ui-text-secondary);
75
75
  }
76
- :host-state([tone="muted"]) {
76
+ :host([tone="muted"]) {
77
77
  color: var(--ui-text-muted);
78
78
  }
79
- :host-state([tone="accent"]) {
79
+ :host([tone="accent"]) {
80
80
  color: var(--ui-accent-active);
81
81
  }
82
82
  /* Every status tone uses the text-safe token a subtle badge sets its words in, so text and badges
83
83
  in one tone match, and each holds 4.5:1 on sunken surfaces where some base colours fall short. */
84
- :host-state([tone="danger"]) {
84
+ :host([tone="danger"]) {
85
85
  color: var(--ui-danger-subtle-text);
86
86
  }
87
- :host-state([tone="success"]) {
87
+ :host([tone="success"]) {
88
88
  color: var(--ui-success-subtle-text);
89
89
  }
90
- :host-state([tone="info"]) {
90
+ :host([tone="info"]) {
91
91
  color: var(--ui-info-subtle-text);
92
92
  }
93
- :host-state([tone="warning"]) {
93
+ :host([tone="warning"]) {
94
94
  color: var(--ui-warning-subtle-text);
95
95
  }
96
96
 
97
- :host-state([weight="normal"]) {
97
+ :host([weight="normal"]) {
98
98
  font-weight: var(--ui-font-normal);
99
99
  }
100
- :host-state([weight="medium"]) {
100
+ :host([weight="medium"]) {
101
101
  font-weight: var(--ui-font-medium);
102
102
  }
103
- :host-state([weight="semibold"]) {
103
+ :host([weight="semibold"]) {
104
104
  font-weight: var(--ui-font-semibold);
105
105
  }
106
106
 
107
- :host-state([variant="eyebrow"]) {
107
+ :host([variant="eyebrow"]) {
108
108
  font-size: var(--ui-font-size-xs);
109
109
  font-weight: var(--ui-font-semibold);
110
110
  letter-spacing: 0.06em;
111
111
  text-transform: uppercase;
112
112
  }
113
- :host-state([variant="code"]) {
113
+ :host([variant="code"]) {
114
114
  font-family: var(--ui-font-family-mono);
115
115
  }
116
116
 
@@ -123,21 +123,21 @@
123
123
  text-underline-offset: 0.18em;
124
124
  }
125
125
 
126
- :host-state([truncate]) {
126
+ :host([truncate]) {
127
127
  overflow: hidden;
128
128
  text-overflow: ellipsis;
129
129
  white-space: nowrap;
130
130
  }
131
131
 
132
- :host-state([align="center"]) {
132
+ :host([align="center"]) {
133
133
  text-align: center;
134
134
  }
135
135
 
136
- :host-state([font="sans"]) {
136
+ :host([font="sans"]) {
137
137
  font-family: var(--ui-font-family-sans, sans-serif);
138
138
  }
139
139
 
140
- :host-state([wrap="anywhere"]) {
140
+ :host([wrap="anywhere"]) {
141
141
  overflow-wrap: anywhere;
142
142
  }
143
143
 
@@ -26,6 +26,30 @@
26
26
  ></textarea>
27
27
  <style>
28
28
  /* This component's hooks style the element they are set on, and never a nested one. */
29
+ @property --ui-textarea-border-width {
30
+ syntax: "*";
31
+ inherits: false;
32
+ }
33
+ @property --ui-textarea-border {
34
+ syntax: "*";
35
+ inherits: false;
36
+ }
37
+ @property --ui-textarea-border-hover {
38
+ syntax: "*";
39
+ inherits: false;
40
+ }
41
+ @property --ui-textarea-focus-border {
42
+ syntax: "*";
43
+ inherits: false;
44
+ }
45
+ @property --ui-textarea-focus-outline {
46
+ syntax: "*";
47
+ inherits: false;
48
+ }
49
+ @property --ui-textarea-surface {
50
+ syntax: "*";
51
+ inherits: false;
52
+ }
29
53
  @property --ui-textarea-focus-shadow {
30
54
  syntax: "*";
31
55
  inherits: false;
@@ -58,13 +82,14 @@
58
82
  padding: var(--ui-space-2) var(--ui-space-3);
59
83
  appearance: none;
60
84
  resize: vertical;
61
- border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
62
- border-radius: var(--ui-textarea-radius, var(--ui-field-radius, var(--ui-radius-md)));
63
- background: var(--ui-control-surface, var(--ui-surface-elevated));
85
+ border: var(--ui-textarea-border-width, var(--_ui-default-textarea-border-width, var(--ui-border-width))) solid
86
+ var(--ui-textarea-border, var(--_ui-default-textarea-border, var(--ui-control-border, var(--ui-border-strong))));
87
+ border-radius: var(--ui-textarea-radius, var(--_ui-default-textarea-radius, var(--ui-field-radius, var(--ui-radius-md))));
88
+ background: var(--ui-textarea-surface, var(--_ui-default-textarea-surface, var(--ui-control-surface, var(--ui-surface-elevated))));
64
89
  color: var(--ui-text-primary);
65
90
  font: inherit;
66
91
  line-height: var(--ui-line-height-md);
67
- box-shadow: var(--ui-textarea-shadow, var(--ui-control-inset));
92
+ box-shadow: var(--ui-textarea-shadow, var(--_ui-default-textarea-shadow, var(--ui-control-inset)));
68
93
  transition:
69
94
  border-color var(--ui-motion-fast) var(--ui-motion-ease),
70
95
  box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
@@ -83,29 +108,32 @@
83
108
  }
84
109
 
85
110
  :host:hover:not(:focus):not(:disabled):not(:read-only):not([aria-invalid="true"]):not(:user-invalid) {
86
- border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
111
+ border-color: var(--ui-textarea-border-hover, var(--_ui-default-textarea-border-hover, var(--ui-control-border-hover, var(--ui-text-secondary))));
87
112
  }
88
113
 
89
114
  :host:focus-visible {
90
- border-color: var(--ui-control-focus, var(--ui-accent-solid));
91
- outline: none;
92
- box-shadow: var(--ui-textarea-focus-shadow, var(--ui-control-inset), var(--ui-control-focus-halo-shadow));
115
+ border-color: var(--ui-textarea-focus-border, var(--_ui-default-textarea-focus-border, var(--ui-control-focus, var(--ui-accent-solid))));
116
+ outline: var(--ui-textarea-focus-outline, var(--_ui-default-textarea-focus-outline, none));
117
+ box-shadow: var(--ui-textarea-focus-shadow, var(--_ui-default-textarea-focus-shadow, var(--ui-control-inset), var(--ui-control-focus-halo-shadow)));
93
118
  }
94
119
 
95
120
  /* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
96
121
  :host[aria-invalid="true"],
97
122
  :host:user-invalid {
98
- border-color: var(--ui-textarea-invalid-border, var(--ui-field-danger, var(--ui-danger-solid)));
123
+ border-color: var(--ui-textarea-invalid-border, var(--_ui-default-textarea-invalid-border, var(--ui-field-danger, var(--ui-danger-solid))));
99
124
  }
100
125
 
101
126
  :host:is([aria-invalid="true"], :user-invalid):focus-visible {
102
127
  box-shadow: var(
103
128
  --ui-textarea-invalid-focus-shadow,
104
- var(--ui-control-inset),
105
- 0 0 0 calc(var(--ui-focus-width) * 1.5) color-mix(
106
- in srgb,
107
- var(--ui-textarea-invalid-border, var(--ui-field-danger, var(--ui-danger-solid))) 22%,
108
- transparent
129
+ var(
130
+ --_ui-default-textarea-invalid-focus-shadow,
131
+ var(--ui-control-inset),
132
+ 0 0 0 calc(var(--ui-focus-width) * 1.5) color-mix(
133
+ in srgb,
134
+ var(--ui-textarea-invalid-border, var(--_ui-default-textarea-invalid-border, var(--ui-field-danger, var(--ui-danger-solid)))) 22%,
135
+ transparent
136
+ )
109
137
  )
110
138
  );
111
139
  }
@@ -117,20 +145,20 @@
117
145
  cursor: not-allowed;
118
146
  }
119
147
 
120
- :host-state([size="sm"]) {
148
+ :host([size="sm"]) {
121
149
  --_padding-block: var(--ui-space-1);
122
150
  padding: var(--ui-space-1) var(--ui-space-2);
123
151
  font-size: var(--ui-font-size-sm);
124
152
  }
125
153
 
126
- :host-state([size="lg"]) {
154
+ :host([size="lg"]) {
127
155
  --_padding-block: var(--ui-space-3);
128
156
  padding: var(--ui-space-3) var(--ui-space-4);
129
157
  font-size: var(--ui-font-size-md);
130
158
  }
131
159
 
132
160
  @supports (field-sizing: content) {
133
- :host-state([autosize]) {
161
+ :host([autosize]) {
134
162
  field-sizing: content;
135
163
  min-block-size: calc(var(--_rows) * 1lh + var(--_padding-block) + var(--_padding-block) + 2px);
136
164
  }
@@ -138,7 +166,7 @@
138
166
 
139
167
  /* Below 16px, iOS zooms the page into the focused field, so touch keeps body-size text. */
140
168
  @media (pointer: coarse) {
141
- :host-state([size="sm"]) {
169
+ :host([size="sm"]) {
142
170
  font-size: inherit;
143
171
  }
144
172
  }
@@ -1,6 +1,6 @@
1
1
  // The value attribute only sets the default; a controlled value is applied to the live textarea. The
2
2
  // value is also made the native default, so a form reset returns to it.
3
- export default function controller(host) {
3
+ function connect(host) {
4
4
  return host.effect(() => {
5
5
  const value = host.props.value.value;
6
6
  if (value === undefined || value === null) return;
@@ -8,3 +8,8 @@ export default function controller(host) {
8
8
  if (host.element.value !== String(value)) host.element.value = String(value);
9
9
  });
10
10
  }
11
+
12
+ /** Keep DOM setup and its cleanup tied to each connection, including reconnects. */
13
+ export default function controller(host) {
14
+ host.on("connect", () => connect(host));
15
+ }
@@ -61,16 +61,16 @@
61
61
  pointer-events: auto;
62
62
  }
63
63
 
64
- :host-state([tone="info"]) {
64
+ :host([tone="info"]) {
65
65
  --_ui-toast-accent: var(--ui-info-solid);
66
66
  }
67
- :host-state([tone="success"]) {
67
+ :host([tone="success"]) {
68
68
  --_ui-toast-accent: var(--ui-success-solid);
69
69
  }
70
- :host-state([tone="warning"]) {
70
+ :host([tone="warning"]) {
71
71
  --_ui-toast-accent: var(--ui-warning-solid);
72
72
  }
73
- :host-state([tone="danger"]) {
73
+ :host([tone="danger"]) {
74
74
  --_ui-toast-accent: var(--ui-danger-solid);
75
75
  }
76
76
 
@@ -5,7 +5,7 @@ function inputFor(event) {
5
5
  }
6
6
 
7
7
  /** Authored toasts request dismissal; their consumer owns removal from the rendered list. */
8
- export default function controller(host) {
8
+ function connect(host) {
9
9
  const element = host.element;
10
10
  const { action } = host.refs;
11
11
  if (!element.id) element.id = `ui-toast-authored-${++toastSequence}`;
@@ -66,3 +66,8 @@ export default function controller(host) {
66
66
  element.removeEventListener("focusout", onFocusOut);
67
67
  };
68
68
  }
69
+
70
+ /** Keep DOM setup and its cleanup tied to each connection, including reconnects. */
71
+ export default function controller(host) {
72
+ host.on("connect", () => connect(host));
73
+ }
@@ -3,7 +3,7 @@
3
3
  <template component="ui-toast-region" controller="./ui-toast-region.js">
4
4
  <defs>
5
5
  <prop name="duration" type="number" default="0"
6
- >Default milliseconds for toasts added with show() or the show command; 0 keeps each until dismissed. Hover or focus pauses a timer.</prop>
6
+ >Default milliseconds for toasts added with the show-toast event or command; 0 keeps each until dismissed. Hover or focus pauses a timer.</prop>
7
7
  <prop name="placement" type="keyword" values="top, top-start, top-end, bottom, bottom-start, bottom-end" default="top"
8
8
  >Screen edge where the stack appears. Start and end follow the writing direction.</prop>
9
9
  <state
@@ -24,7 +24,12 @@
24
24
  <prop name="reason" required type="keyword" values="action, timeout"></prop>
25
25
  <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
26
26
  </event>
27
- <method name="show" export="show" returns="promise(string)"></method>
27
+ <event name="show-toast" type="object">
28
+ <prop name="message" required type="string"></prop>
29
+ <prop name="id" type="string"></prop>
30
+ <prop name="tone" type="keyword" values="neutral, info, success, warning, danger"></prop>
31
+ <prop name="duration" type="number"></prop>
32
+ </event>
28
33
  </defs>
29
34
  <div role="region" aria-label="Notifications" aria-live="polite" popover="manual">
30
35
  <slot></slot>
@@ -107,25 +112,25 @@
107
112
  display: none;
108
113
  }
109
114
 
110
- :host-state([placement="top-start"]),
111
- :host-state([placement="bottom-start"]) {
115
+ :host([placement="top-start"]),
116
+ :host([placement="bottom-start"]) {
112
117
  left: auto;
113
118
  right: auto;
114
119
  inset-inline-start: calc(var(--ui-space-4) + env(safe-area-inset-left));
115
120
  transform: none;
116
121
  }
117
122
 
118
- :host-state([placement="top-end"]),
119
- :host-state([placement="bottom-end"]) {
123
+ :host([placement="top-end"]),
124
+ :host([placement="bottom-end"]) {
120
125
  left: auto;
121
126
  right: auto;
122
127
  inset-inline-end: calc(var(--ui-space-4) + env(safe-area-inset-right));
123
128
  transform: none;
124
129
  }
125
130
 
126
- :host-state([placement="bottom"]),
127
- :host-state([placement="bottom-start"]),
128
- :host-state([placement="bottom-end"]) {
131
+ :host([placement="bottom"]),
132
+ :host([placement="bottom-start"]),
133
+ :host([placement="bottom-end"]) {
129
134
  top: auto;
130
135
  bottom: calc(var(--ui-space-4) + env(safe-area-inset-bottom));
131
136
  }
@@ -168,11 +173,11 @@
168
173
  pointer-events: none;
169
174
  }
170
175
 
171
- :is(:host-state([placement="bottom"]), :host-state([placement="bottom-start"]), :host-state([placement="bottom-end"])) .toast {
176
+ :is(:host([placement="bottom"]), :host([placement="bottom-start"]), :host([placement="bottom-end"])) .toast {
172
177
  animation-name: ui-toast-enter-bottom;
173
178
  }
174
179
 
175
- :is(:host-state([placement="bottom"]), :host-state([placement="bottom-start"]), :host-state([placement="bottom-end"])) .toast.closing {
180
+ :is(:host([placement="bottom"]), :host([placement="bottom-start"]), :host([placement="bottom-end"])) .toast.closing {
176
181
  animation-name: ui-toast-exit-bottom;
177
182
  }
178
183
 
@@ -1,18 +1,13 @@
1
1
  import { announceOverlayOpen } from "../shared/overlay.js";
2
2
  import { trackTrigger } from "../shared/trigger.js";
3
3
 
4
- const instances = new WeakMap();
5
4
  let toastIds = 0;
6
5
 
7
- export async function show(host, message, options = {}) {
8
- return instances.get(host.element)?.show(message, options);
9
- }
10
-
11
6
  /**
12
7
  * Shows the region while it has authored or generated messages. Generated messages dismiss by
13
8
  * action or timeout; authored ui-toast children own their removal through the dismiss event.
14
9
  */
15
- export default function controller(host) {
10
+ function connect(host) {
16
11
  const element = host.element;
17
12
  const [trigger, stopTracking] = trackTrigger(host);
18
13
  const toasts = () => host.state.toasts ?? [];
@@ -85,24 +80,28 @@ export default function controller(host) {
85
80
  if (id) dismiss(id, "action", trigger());
86
81
  };
87
82
  const onCommand = (event) => {
88
- if (event.command === "--show-toast" && event.source?.value) add(event.source.value);
83
+ if (event.target === element && event.command === "--show-toast" && event.source?.value) add(event.source.value);
84
+ };
85
+ const onShowToast = (event) => {
86
+ if (event.target === element && typeof event.detail?.message === "string") add(event.detail.message, event.detail);
89
87
  };
90
88
  const stop = host.effect(sync);
91
89
  const observer = new MutationObserver(sync);
92
90
  observer.observe(element, { childList: true });
93
91
  element.addEventListener("click", onClick);
94
92
  element.addEventListener("command", onCommand);
93
+ element.addEventListener("show-toast", onShowToast);
95
94
  element.addEventListener("pointerenter", pauseTimers);
96
95
  element.addEventListener("pointerleave", resumeTimers);
97
96
  element.addEventListener("focusin", pauseTimers);
98
97
  element.addEventListener("focusout", resumeTimers);
99
- instances.set(element, { show: add });
100
98
  return () => {
101
99
  stop();
102
100
  stopTracking();
103
101
  observer.disconnect();
104
102
  element.removeEventListener("click", onClick);
105
103
  element.removeEventListener("command", onCommand);
104
+ element.removeEventListener("show-toast", onShowToast);
106
105
  element.removeEventListener("pointerenter", pauseTimers);
107
106
  element.removeEventListener("pointerleave", resumeTimers);
108
107
  element.removeEventListener("focusin", pauseTimers);
@@ -110,6 +109,10 @@ export default function controller(host) {
110
109
  for (const timer of timers.values()) clearTimeout(timer.handle);
111
110
  timers.clear();
112
111
  if (element.matches(":popover-open")) element.hidePopover();
113
- instances.delete(element);
114
112
  };
115
113
  }
114
+
115
+ /** Keep DOM setup and its cleanup tied to each connection, including reconnects. */
116
+ export default function controller(host) {
117
+ host.on("connect", () => connect(host));
118
+ }
@@ -152,7 +152,7 @@
152
152
  font: inherit;
153
153
  }
154
154
 
155
- :host-state([inverse]) .surface {
155
+ :host([inverse]) .surface {
156
156
  --_tooltip-line: var(--_ui-tooltip-inverse-surface, var(--ui-text-primary));
157
157
  background: var(--_ui-tooltip-inverse-surface, var(--ui-text-primary));
158
158
  color: var(--_ui-tooltip-inverse-text, var(--ui-surface-default));
@@ -2,7 +2,7 @@ import { closeOverlay, createAnchoredSurface, createIdResolver, onOverlayOpen, o
2
2
 
3
3
  const warmTooltips = new WeakMap();
4
4
 
5
- export default function controller(host) {
5
+ function connect(host) {
6
6
  const element = host.element;
7
7
  const document = element.ownerDocument;
8
8
  const warm = warmTooltips.get(document) ?? { active: 0, until: 0 };
@@ -190,3 +190,8 @@ export default function controller(host) {
190
190
  closeOverlay(document, overlayId);
191
191
  };
192
192
  }
193
+
194
+ /** Keep DOM setup and its cleanup tied to each connection, including reconnects. */
195
+ export default function controller(host) {
196
+ host.on("connect", () => connect(host));
197
+ }
@@ -75,12 +75,12 @@
75
75
 
76
76
  /* Reaches the items the way density does, so the setting lives on the tree the way a reader
77
77
  thinks about it: this list scrolls its long names. */
78
- :host-state([marquee]) {
78
+ :host([marquee]) {
79
79
  --_ui-default-tree-item-marquee: 1;
80
80
  }
81
81
 
82
82
  /* The items' defaults for this density: an item's own hook still wins. */
83
- :host-state([density="compact"]) {
83
+ :host([density="compact"]) {
84
84
  --_ui-default-tree-item-min-block-size: var(--ui-control-size-sm);
85
85
  --_ui-default-tree-item-font-size: var(--ui-font-size-sm);
86
86
  --_ui-default-tree-item-label-padding-block: 0;
@@ -16,7 +16,7 @@ function parentItem(item, tree) {
16
16
  return parent && tree.contains(parent) ? parent : null;
17
17
  }
18
18
 
19
- export default function controller(host) {
19
+ function connect(host) {
20
20
  const element = host.element;
21
21
  const document = element.ownerDocument;
22
22
  const itemSelector = '[role="treeitem"]';
@@ -483,3 +483,8 @@ export default function controller(host) {
483
483
  element.removeEventListener("click", onMoveClick, true);
484
484
  };
485
485
  }
486
+
487
+ /** Keep DOM setup and its cleanup tied to each connection, including reconnects. */
488
+ export default function controller(host) {
489
+ host.on("connect", () => connect(host));
490
+ }
@@ -179,15 +179,15 @@
179
179
  }
180
180
 
181
181
  /* Selection is the same surface recipe as destination and choice rows. */
182
- :host-state([selected]) > .row {
182
+ :host([selected]) > .row {
183
183
  color: var(--ui-selection-text);
184
184
  background: var(--ui-selection-surface);
185
185
  }
186
- :host-state([selected]):not([aria-disabled="true"]) > .row > .leading {
186
+ :host([selected]):not([aria-disabled="true"]) > .row > .leading {
187
187
  color: var(--ui-selection-text);
188
188
  }
189
189
 
190
- :host-state([disabled]) .row {
190
+ :host([disabled]) .row {
191
191
  color: var(--ui-disabled-text);
192
192
  background: var(--ui-disabled-surface);
193
193
  }
@@ -687,7 +687,7 @@
687
687
  outline: var(--ui-focus-width) solid Highlight;
688
688
  outline-offset: calc(-1 * var(--ui-focus-width));
689
689
  }
690
- :host-state([selected]):not(:focus-visible):not([aria-disabled="true"]) > .row {
690
+ :host([selected]):not(:focus-visible):not([aria-disabled="true"]) > .row {
691
691
  outline: var(--ui-border-width) solid Highlight;
692
692
  outline-offset: calc(-1 * var(--ui-border-width));
693
693
  }
@@ -17,7 +17,7 @@ const CONTROLS = [
17
17
  "radio", "switch", "tab", "slider", "spinbutton", "combobox", "textbox", "dialog"].map((role) => `[role="${role}"]`),
18
18
  ].join(", ");
19
19
 
20
- export default function controller(host) {
20
+ function connect(host) {
21
21
  const element = host.element;
22
22
  const { row, disclosure, children, leading, label, actions, labelText } = host.refs;
23
23
  // Touch use enlarges rows and hides drag handles (see the template's styles).
@@ -233,3 +233,8 @@ export default function controller(host) {
233
233
  row.removeEventListener("click", onRowClick);
234
234
  };
235
235
  }
236
+
237
+ /** Keep DOM setup and its cleanup tied to each connection, including reconnects. */
238
+ export default function controller(host) {
239
+ host.on("connect", () => connect(host));
240
+ }