@threadlabs/looma 0.19.1 → 0.20.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 (507) hide show
  1. package/components/shared/trigger.js +9 -4
  2. package/components/ui-affordance-scope/ui-affordance-scope.html +1 -1
  3. package/components/ui-avatar/ui-avatar.html +2 -2
  4. package/components/ui-avatar-group/ui-avatar-group.html +1 -1
  5. package/components/ui-avatar-group/ui-avatar-group.js +1 -1
  6. package/components/ui-badge/ui-badge.html +3 -3
  7. package/components/ui-button/ui-button.html +7 -6
  8. package/components/ui-callout/ui-callout.html +1 -1
  9. package/components/ui-card/ui-card.html +5 -4
  10. package/components/ui-checkbox/ui-checkbox.html +6 -2
  11. package/components/ui-cluster/ui-cluster.html +4 -4
  12. package/components/ui-combobox/ui-combobox.html +257 -34
  13. package/components/ui-combobox/ui-combobox.js +21 -20
  14. package/components/ui-container/ui-container.html +2 -2
  15. package/components/ui-context-menu/ui-context-menu.html +17 -5
  16. package/components/ui-cover/ui-cover.html +1 -1
  17. package/components/ui-description-list/ui-description-list.html +3 -3
  18. package/components/ui-dialog/ui-dialog.html +14 -6
  19. package/components/ui-disclosure/ui-disclosure.html +14 -5
  20. package/components/ui-editable/ui-editable.html +15 -4
  21. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +1 -1
  22. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +1 -1
  23. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +26 -6
  24. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +90 -12
  25. package/components/ui-editor-table-overlay/ui-editor-table-overlay.js +5 -5
  26. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +33 -7
  27. package/components/ui-grid/ui-grid.html +2 -2
  28. package/components/ui-icon-button/ui-icon-button.html +2 -2
  29. package/components/ui-input/ui-input.html +28 -6
  30. package/components/ui-list/ui-list.html +5 -4
  31. package/components/ui-list-item/ui-list-item.html +1 -1
  32. package/components/ui-listbox/ui-listbox.html +7 -1
  33. package/components/ui-menu/ui-menu.html +18 -5
  34. package/components/ui-menu-item/ui-menu-item.html +7 -2
  35. package/components/ui-meter/ui-meter.html +2 -2
  36. package/components/ui-nav-item/ui-nav-item.html +5 -4
  37. package/components/ui-page-header/ui-page-header.html +1 -1
  38. package/components/ui-popover/ui-popover.html +14 -5
  39. package/components/ui-radio/ui-radio.html +6 -2
  40. package/components/ui-radio-group/ui-radio-group.html +11 -3
  41. package/components/ui-reel/ui-reel.html +3 -3
  42. package/components/ui-scroll-area/ui-scroll-area.html +1 -1
  43. package/components/ui-search-shell/ui-search-shell.html +6 -2
  44. package/components/ui-section/ui-section.html +2 -2
  45. package/components/ui-select/ui-select.html +1 -1
  46. package/components/ui-separator/ui-separator.html +1 -1
  47. package/components/ui-sidebar/ui-sidebar.html +11 -4
  48. package/components/ui-spinner/ui-spinner.html +1 -1
  49. package/components/ui-stack/ui-stack.html +3 -3
  50. package/components/ui-status-message/ui-status-message.html +2 -2
  51. package/components/ui-switch/ui-switch.html +6 -2
  52. package/components/ui-switcher/ui-switcher.html +3 -3
  53. package/components/ui-table/ui-table.html +1 -1
  54. package/components/ui-tabs/ui-tabs.html +9 -4
  55. package/components/ui-text/ui-text.html +6 -6
  56. package/components/ui-textarea/ui-textarea.html +1 -1
  57. package/components/ui-toast/ui-toast.html +6 -2
  58. package/components/ui-toast-region/ui-toast-region.html +16 -4
  59. package/components/ui-tooltip/ui-tooltip.html +15 -6
  60. package/components/ui-tree/ui-tree.html +30 -7
  61. package/components/ui-tree-item/ui-tree-item.html +5 -1
  62. package/dist/index.js +1 -1
  63. package/editor/table-overlay.d.ts +1 -1
  64. package/package.json +3 -3
  65. package/styles/ui-action-bar.css +1 -1
  66. package/styles/ui-affordance-scope.css +1 -1
  67. package/styles/ui-avatar-group.css +1 -1
  68. package/styles/ui-avatar.css +1 -1
  69. package/styles/ui-badge.css +1 -1
  70. package/styles/ui-breadcrumb-item.css +1 -1
  71. package/styles/ui-breadcrumbs.css +1 -1
  72. package/styles/ui-button.css +1 -1
  73. package/styles/ui-callout.css +1 -1
  74. package/styles/ui-card.css +1 -1
  75. package/styles/ui-checkbox.css +1 -1
  76. package/styles/ui-cluster.css +1 -1
  77. package/styles/ui-combobox.css +1 -1
  78. package/styles/ui-container.css +1 -1
  79. package/styles/ui-context-menu.css +1 -1
  80. package/styles/ui-cover.css +1 -1
  81. package/styles/ui-description-item.css +1 -1
  82. package/styles/ui-description-list.css +1 -1
  83. package/styles/ui-dialog.css +1 -1
  84. package/styles/ui-disclosure.css +1 -1
  85. package/styles/ui-editable.css +1 -1
  86. package/styles/ui-editor-insert-table-grid.css +1 -1
  87. package/styles/ui-editor-mention-menu-item.css +1 -1
  88. package/styles/ui-editor-mention-menu.css +1 -1
  89. package/styles/ui-editor-slash-menu-group.css +1 -1
  90. package/styles/ui-editor-slash-menu-item.css +1 -1
  91. package/styles/ui-editor-slash-menu.css +1 -1
  92. package/styles/ui-editor-table-context-menu.css +1 -1
  93. package/styles/ui-editor-table-overlay.css +1 -1
  94. package/styles/ui-editor-table-toolbar.css +1 -1
  95. package/styles/ui-editor-toolbar.css +1 -1
  96. package/styles/ui-floating-action-button.css +1 -1
  97. package/styles/ui-form-field.css +1 -1
  98. package/styles/ui-grid.css +1 -1
  99. package/styles/ui-icon-button.css +1 -1
  100. package/styles/ui-icon.css +1 -1
  101. package/styles/ui-input-group.css +1 -1
  102. package/styles/ui-input.css +1 -1
  103. package/styles/ui-list-item.css +1 -1
  104. package/styles/ui-list.css +1 -1
  105. package/styles/ui-listbox.css +1 -1
  106. package/styles/ui-menu-group.css +1 -1
  107. package/styles/ui-menu-item.css +1 -1
  108. package/styles/ui-menu.css +1 -1
  109. package/styles/ui-meter.css +1 -1
  110. package/styles/ui-nav-item.css +1 -1
  111. package/styles/ui-page-header.css +1 -1
  112. package/styles/ui-popover.css +1 -1
  113. package/styles/ui-radio-group.css +1 -1
  114. package/styles/ui-radio.css +1 -1
  115. package/styles/ui-reel.css +1 -1
  116. package/styles/ui-scroll-area.css +1 -1
  117. package/styles/ui-search-result-row.css +1 -1
  118. package/styles/ui-search-shell.css +1 -1
  119. package/styles/ui-section.css +1 -1
  120. package/styles/ui-select.css +1 -1
  121. package/styles/ui-separator.css +1 -1
  122. package/styles/ui-sidebar.css +1 -1
  123. package/styles/ui-spinner.css +1 -1
  124. package/styles/ui-stack.css +1 -1
  125. package/styles/ui-status-message.css +1 -1
  126. package/styles/ui-switch.css +1 -1
  127. package/styles/ui-switcher.css +1 -1
  128. package/styles/ui-table.css +1 -1
  129. package/styles/ui-tabs.css +1 -1
  130. package/styles/ui-text.css +1 -1
  131. package/styles/ui-textarea.css +1 -1
  132. package/styles/ui-toast-region.css +1 -1
  133. package/styles/ui-toast.css +1 -1
  134. package/styles/ui-tooltip.css +1 -1
  135. package/styles/ui-top-bar.css +1 -1
  136. package/styles/ui-tree-item.css +1 -1
  137. package/styles/ui-tree.css +1 -1
  138. package/vanilla/UiActionBar.d.ts +1 -1
  139. package/vanilla/UiActionBar.js +5 -1
  140. package/vanilla/UiAffordanceScope.d.ts +1 -1
  141. package/vanilla/UiAffordanceScope.js +3 -2
  142. package/vanilla/UiAvatar.d.ts +1 -1
  143. package/vanilla/UiAvatar.js +4 -3
  144. package/vanilla/UiAvatarGroup.d.ts +1 -1
  145. package/vanilla/UiAvatarGroup.js +3 -2
  146. package/vanilla/UiBadge.d.ts +1 -1
  147. package/vanilla/UiBadge.js +2 -1
  148. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  149. package/vanilla/UiBreadcrumbItem.js +2 -1
  150. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  151. package/vanilla/UiBreadcrumbs.js +4 -7
  152. package/vanilla/UiButton.d.ts +1 -1
  153. package/vanilla/UiButton.js +6 -4
  154. package/vanilla/UiCallout.d.ts +1 -1
  155. package/vanilla/UiCallout.js +3 -2
  156. package/vanilla/UiCard.d.ts +1 -1
  157. package/vanilla/UiCard.js +6 -2
  158. package/vanilla/UiCheckbox.d.ts +1 -1
  159. package/vanilla/UiCheckbox.js +4 -2
  160. package/vanilla/UiCluster.d.ts +1 -1
  161. package/vanilla/UiCluster.js +2 -1
  162. package/vanilla/UiCombobox.d.ts +3 -2
  163. package/vanilla/UiCombobox.js +8 -2
  164. package/vanilla/UiContainer.d.ts +1 -1
  165. package/vanilla/UiContainer.js +2 -1
  166. package/vanilla/UiContextMenu.d.ts +1 -1
  167. package/vanilla/UiContextMenu.js +3 -2
  168. package/vanilla/UiCover.d.ts +1 -1
  169. package/vanilla/UiCover.js +4 -5
  170. package/vanilla/UiDescriptionItem.d.ts +1 -1
  171. package/vanilla/UiDescriptionItem.js +4 -7
  172. package/vanilla/UiDescriptionList.d.ts +1 -1
  173. package/vanilla/UiDescriptionList.js +2 -1
  174. package/vanilla/UiDialog.d.ts +1 -1
  175. package/vanilla/UiDialog.js +4 -2
  176. package/vanilla/UiDisclosure.d.ts +1 -1
  177. package/vanilla/UiDisclosure.js +4 -2
  178. package/vanilla/UiEditable.d.ts +1 -1
  179. package/vanilla/UiEditable.js +2 -2
  180. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  181. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  182. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  183. package/vanilla/UiEditorMentionMenu.js +5 -2
  184. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  185. package/vanilla/UiEditorMentionMenuItem.js +3 -1
  186. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  187. package/vanilla/UiEditorSlashMenu.js +6 -2
  188. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  189. package/vanilla/UiEditorSlashMenuGroup.js +4 -7
  190. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  191. package/vanilla/UiEditorSlashMenuItem.js +2 -1
  192. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  193. package/vanilla/UiEditorTableContextMenu.js +2 -2
  194. package/vanilla/UiEditorTableOverlay.d.ts +12 -2
  195. package/vanilla/UiEditorTableOverlay.js +2 -2
  196. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  197. package/vanilla/UiEditorTableToolbar.js +2 -2
  198. package/vanilla/UiEditorToolbar.d.ts +1 -1
  199. package/vanilla/UiEditorToolbar.js +2 -1
  200. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  201. package/vanilla/UiFloatingActionButton.js +2 -1
  202. package/vanilla/UiFormField.d.ts +1 -1
  203. package/vanilla/UiFormField.js +6 -1
  204. package/vanilla/UiGrid.d.ts +1 -1
  205. package/vanilla/UiGrid.js +4 -3
  206. package/vanilla/UiIcon.d.ts +1 -1
  207. package/vanilla/UiIcon.js +1 -1
  208. package/vanilla/UiIconButton.d.ts +1 -1
  209. package/vanilla/UiIconButton.js +4 -3
  210. package/vanilla/UiInput.d.ts +5 -4
  211. package/vanilla/UiInput.js +16 -13
  212. package/vanilla/UiInputGroup.d.ts +1 -1
  213. package/vanilla/UiInputGroup.js +5 -1
  214. package/vanilla/UiList.d.ts +1 -1
  215. package/vanilla/UiList.js +4 -2
  216. package/vanilla/UiListItem.d.ts +1 -1
  217. package/vanilla/UiListItem.js +5 -1
  218. package/vanilla/UiListbox.d.ts +1 -1
  219. package/vanilla/UiListbox.js +3 -2
  220. package/vanilla/UiMenu.d.ts +1 -1
  221. package/vanilla/UiMenu.js +3 -2
  222. package/vanilla/UiMenuGroup.d.ts +1 -1
  223. package/vanilla/UiMenuGroup.js +2 -1
  224. package/vanilla/UiMenuItem.d.ts +1 -1
  225. package/vanilla/UiMenuItem.js +6 -2
  226. package/vanilla/UiMeter.d.ts +1 -1
  227. package/vanilla/UiMeter.js +2 -2
  228. package/vanilla/UiNavItem.d.ts +2 -2
  229. package/vanilla/UiNavItem.js +11 -5
  230. package/vanilla/UiPageHeader.d.ts +1 -1
  231. package/vanilla/UiPageHeader.js +8 -5
  232. package/vanilla/UiPopover.d.ts +1 -1
  233. package/vanilla/UiPopover.js +3 -2
  234. package/vanilla/UiRadio.d.ts +1 -1
  235. package/vanilla/UiRadio.js +4 -2
  236. package/vanilla/UiRadioGroup.d.ts +1 -1
  237. package/vanilla/UiRadioGroup.js +3 -2
  238. package/vanilla/UiReel.d.ts +1 -1
  239. package/vanilla/UiReel.js +2 -1
  240. package/vanilla/UiScrollArea.d.ts +1 -1
  241. package/vanilla/UiScrollArea.js +3 -2
  242. package/vanilla/UiSearchResultRow.d.ts +1 -1
  243. package/vanilla/UiSearchResultRow.js +6 -1
  244. package/vanilla/UiSearchShell.d.ts +1 -1
  245. package/vanilla/UiSearchShell.js +6 -2
  246. package/vanilla/UiSection.d.ts +1 -1
  247. package/vanilla/UiSection.js +5 -2
  248. package/vanilla/UiSelect.d.ts +1 -1
  249. package/vanilla/UiSelect.js +3 -2
  250. package/vanilla/UiSeparator.d.ts +1 -1
  251. package/vanilla/UiSeparator.js +3 -7
  252. package/vanilla/UiSidebar.d.ts +1 -1
  253. package/vanilla/UiSidebar.js +3 -2
  254. package/vanilla/UiSpinner.d.ts +1 -1
  255. package/vanilla/UiSpinner.js +2 -2
  256. package/vanilla/UiStack.d.ts +1 -1
  257. package/vanilla/UiStack.js +2 -1
  258. package/vanilla/UiStatusMessage.d.ts +1 -1
  259. package/vanilla/UiStatusMessage.js +4 -2
  260. package/vanilla/UiSwitch.d.ts +1 -1
  261. package/vanilla/UiSwitch.js +4 -2
  262. package/vanilla/UiSwitcher.d.ts +1 -1
  263. package/vanilla/UiSwitcher.js +3 -2
  264. package/vanilla/UiTable.d.ts +1 -1
  265. package/vanilla/UiTable.js +3 -2
  266. package/vanilla/UiTabs.d.ts +1 -1
  267. package/vanilla/UiTabs.js +4 -2
  268. package/vanilla/UiText.d.ts +1 -1
  269. package/vanilla/UiText.js +13 -2
  270. package/vanilla/UiTextarea.d.ts +1 -1
  271. package/vanilla/UiTextarea.js +3 -3
  272. package/vanilla/UiToast.d.ts +1 -1
  273. package/vanilla/UiToast.js +4 -2
  274. package/vanilla/UiToastRegion.d.ts +1 -1
  275. package/vanilla/UiToastRegion.js +3 -2
  276. package/vanilla/UiTooltip.d.ts +1 -1
  277. package/vanilla/UiTooltip.js +3 -2
  278. package/vanilla/UiTopBar.d.ts +1 -1
  279. package/vanilla/UiTopBar.js +5 -1
  280. package/vanilla/UiTree.d.ts +1 -1
  281. package/vanilla/UiTree.js +3 -2
  282. package/vanilla/UiTreeItem.d.ts +1 -1
  283. package/vanilla/UiTreeItem.js +8 -4
  284. package/vue/UiActionBar.vue +33 -2
  285. package/vue/UiAffordanceScope.d.ts +23 -8
  286. package/vue/UiAffordanceScope.vue +90 -17
  287. package/vue/UiAvatar.d.ts +77 -19
  288. package/vue/UiAvatar.vue +151 -31
  289. package/vue/UiAvatarGroup.d.ts +50 -13
  290. package/vue/UiAvatarGroup.vue +121 -23
  291. package/vue/UiBadge.d.ts +32 -10
  292. package/vue/UiBadge.vue +104 -17
  293. package/vue/UiBreadcrumbItem.d.ts +14 -6
  294. package/vue/UiBreadcrumbItem.vue +82 -15
  295. package/vue/UiBreadcrumbs.d.ts +14 -6
  296. package/vue/UiBreadcrumbs.vue +78 -10
  297. package/vue/UiButton.d.ts +122 -27
  298. package/vue/UiButton.vue +288 -64
  299. package/vue/UiCallout.d.ts +14 -6
  300. package/vue/UiCallout.vue +84 -16
  301. package/vue/UiCard.d.ts +41 -12
  302. package/vue/UiCard.vue +149 -25
  303. package/vue/UiCheckbox.d.ts +85 -28
  304. package/vue/UiCheckbox.vue +173 -43
  305. package/vue/UiCluster.d.ts +41 -7
  306. package/vue/UiCluster.vue +122 -13
  307. package/vue/UiCombobox.d.ts +303 -110
  308. package/vue/UiCombobox.vue +723 -412
  309. package/vue/UiContainer.d.ts +23 -5
  310. package/vue/UiContainer.vue +89 -9
  311. package/vue/UiContextMenu.d.ts +38 -23
  312. package/vue/UiContextMenu.vue +113 -38
  313. package/vue/UiCover.d.ts +14 -6
  314. package/vue/UiCover.vue +76 -12
  315. package/vue/UiDescriptionItem.d.ts +14 -6
  316. package/vue/UiDescriptionItem.vue +78 -11
  317. package/vue/UiDescriptionList.d.ts +32 -9
  318. package/vue/UiDescriptionList.vue +106 -16
  319. package/vue/UiDialog.d.ts +89 -30
  320. package/vue/UiDialog.vue +168 -38
  321. package/vue/UiDisclosure.d.ts +70 -27
  322. package/vue/UiDisclosure.vue +149 -36
  323. package/vue/UiEditable.d.ts +119 -41
  324. package/vue/UiEditable.vue +220 -62
  325. package/vue/UiEditorInsertTableGrid.d.ts +46 -17
  326. package/vue/UiEditorInsertTableGrid.vue +215 -40
  327. package/vue/UiEditorMentionMenu.d.ts +128 -41
  328. package/vue/UiEditorMentionMenu.vue +211 -37
  329. package/vue/UiEditorMentionMenuItem.d.ts +32 -10
  330. package/vue/UiEditorMentionMenuItem.vue +98 -17
  331. package/vue/UiEditorSlashMenu.d.ts +110 -37
  332. package/vue/UiEditorSlashMenu.vue +189 -31
  333. package/vue/UiEditorSlashMenuGroup.d.ts +14 -6
  334. package/vue/UiEditorSlashMenuGroup.vue +80 -12
  335. package/vue/UiEditorSlashMenuItem.d.ts +50 -14
  336. package/vue/UiEditorSlashMenuItem.vue +120 -23
  337. package/vue/UiEditorTableContextMenu.d.ts +64 -20
  338. package/vue/UiEditorTableContextMenu.vue +326 -91
  339. package/vue/UiEditorTableOverlay.d.ts +170 -44
  340. package/vue/UiEditorTableOverlay.vue +420 -149
  341. package/vue/UiEditorTableToolbar.d.ts +64 -20
  342. package/vue/UiEditorTableToolbar.vue +344 -107
  343. package/vue/UiEditorToolbar.d.ts +14 -6
  344. package/vue/UiEditorToolbar.vue +79 -15
  345. package/vue/UiFloatingActionButton.d.ts +32 -10
  346. package/vue/UiFloatingActionButton.vue +96 -18
  347. package/vue/UiFormField.d.ts +32 -10
  348. package/vue/UiFormField.vue +99 -19
  349. package/vue/UiGrid.d.ts +32 -6
  350. package/vue/UiGrid.vue +95 -11
  351. package/vue/UiIcon.d.ts +14 -6
  352. package/vue/UiIcon.vue +99 -14
  353. package/vue/UiIconButton.d.ts +77 -19
  354. package/vue/UiIconButton.vue +176 -39
  355. package/vue/UiInput.d.ts +50 -19
  356. package/vue/UiInput.vue +326 -33
  357. package/vue/UiInputGroup.d.ts +14 -6
  358. package/vue/UiInputGroup.vue +79 -15
  359. package/vue/UiList.d.ts +41 -12
  360. package/vue/UiList.vue +125 -22
  361. package/vue/UiListItem.d.ts +23 -8
  362. package/vue/UiListItem.vue +88 -16
  363. package/vue/UiListbox.d.ts +86 -27
  364. package/vue/UiListbox.vue +272 -64
  365. package/vue/UiMenu.d.ts +69 -33
  366. package/vue/UiMenu.vue +142 -38
  367. package/vue/UiMenuGroup.d.ts +14 -6
  368. package/vue/UiMenuGroup.vue +80 -11
  369. package/vue/UiMenuItem.d.ts +61 -25
  370. package/vue/UiMenuItem.vue +174 -45
  371. package/vue/UiMeter.d.ts +68 -18
  372. package/vue/UiMeter.vue +215 -41
  373. package/vue/UiNavItem.d.ts +50 -11
  374. package/vue/UiNavItem.vue +163 -29
  375. package/vue/UiPageHeader.d.ts +14 -6
  376. package/vue/UiPageHeader.vue +75 -12
  377. package/vue/UiPopover.d.ts +43 -21
  378. package/vue/UiPopover.vue +147 -27
  379. package/vue/UiRadio.d.ts +67 -24
  380. package/vue/UiRadio.vue +147 -36
  381. package/vue/UiRadioGroup.d.ts +79 -29
  382. package/vue/UiRadioGroup.vue +162 -41
  383. package/vue/UiReel.d.ts +32 -6
  384. package/vue/UiReel.vue +97 -11
  385. package/vue/UiScrollArea.d.ts +14 -6
  386. package/vue/UiScrollArea.vue +83 -14
  387. package/vue/UiSearchResultRow.d.ts +23 -8
  388. package/vue/UiSearchResultRow.vue +86 -16
  389. package/vue/UiSearchShell.d.ts +48 -19
  390. package/vue/UiSearchShell.vue +120 -26
  391. package/vue/UiSection.d.ts +32 -10
  392. package/vue/UiSection.vue +103 -17
  393. package/vue/UiSelect.d.ts +59 -17
  394. package/vue/UiSelect.vue +140 -29
  395. package/vue/UiSeparator.d.ts +14 -6
  396. package/vue/UiSeparator.vue +80 -9
  397. package/vue/UiSidebar.d.ts +95 -31
  398. package/vue/UiSidebar.vue +172 -39
  399. package/vue/UiSpinner.d.ts +23 -8
  400. package/vue/UiSpinner.vue +115 -24
  401. package/vue/UiStack.d.ts +32 -6
  402. package/vue/UiStack.vue +107 -11
  403. package/vue/UiStatusMessage.d.ts +32 -10
  404. package/vue/UiStatusMessage.vue +109 -19
  405. package/vue/UiSwitch.d.ts +67 -24
  406. package/vue/UiSwitch.vue +147 -36
  407. package/vue/UiSwitcher.d.ts +41 -7
  408. package/vue/UiSwitcher.vue +118 -15
  409. package/vue/UiTable.d.ts +23 -8
  410. package/vue/UiTable.vue +91 -17
  411. package/vue/UiTabs.d.ts +66 -23
  412. package/vue/UiTabs.vue +230 -44
  413. package/vue/UiText.d.ts +68 -18
  414. package/vue/UiText.vue +308 -48
  415. package/vue/UiTextarea.d.ts +84 -21
  416. package/vue/UiTextarea.vue +172 -38
  417. package/vue/UiToast.d.ts +28 -13
  418. package/vue/UiToast.vue +103 -24
  419. package/vue/UiToastRegion.d.ts +29 -14
  420. package/vue/UiToastRegion.vue +202 -47
  421. package/vue/UiTooltip.d.ts +81 -31
  422. package/vue/UiTooltip.vue +192 -37
  423. package/vue/UiTopBar.vue +33 -2
  424. package/vue/UiTree.d.ts +72 -29
  425. package/vue/UiTree.vue +170 -49
  426. package/vue/UiTreeItem.d.ts +136 -35
  427. package/vue/UiTreeItem.vue +227 -61
  428. package/vue/chunks/UiActionBar.js +16 -3
  429. package/vue/chunks/UiAffordanceScope.js +66 -11
  430. package/vue/chunks/UiAvatar.js +121 -20
  431. package/vue/chunks/UiAvatarGroup.js +94 -15
  432. package/vue/chunks/UiBadge.js +82 -10
  433. package/vue/chunks/UiBreadcrumbItem.js +43 -9
  434. package/vue/chunks/UiBreadcrumbs.js +41 -5
  435. package/vue/chunks/UiButton.js +237 -51
  436. package/vue/chunks/UiCallout.js +53 -11
  437. package/vue/chunks/UiCard.js +145 -18
  438. package/vue/chunks/UiCheckbox.js +130 -30
  439. package/vue/chunks/UiCluster.js +99 -12
  440. package/vue/chunks/UiCombobox.js +545 -162
  441. package/vue/chunks/UiContainer.js +65 -7
  442. package/vue/chunks/UiContextMenu.js +56 -11
  443. package/vue/chunks/UiCover.js +41 -6
  444. package/vue/chunks/UiDescriptionItem.js +39 -4
  445. package/vue/chunks/UiDescriptionList.js +80 -10
  446. package/vue/chunks/UiDialog.js +125 -18
  447. package/vue/chunks/UiDisclosure.js +102 -17
  448. package/vue/chunks/UiEditable.js +154 -29
  449. package/vue/chunks/UiEditorInsertTableGrid.js +154 -31
  450. package/vue/chunks/UiEditorMentionMenu.js +221 -18
  451. package/vue/chunks/UiEditorMentionMenuItem.js +64 -7
  452. package/vue/chunks/UiEditorSlashMenu.js +201 -14
  453. package/vue/chunks/UiEditorSlashMenuGroup.js +43 -9
  454. package/vue/chunks/UiEditorSlashMenuItem.js +80 -14
  455. package/vue/chunks/UiEditorTableContextMenu.js +220 -49
  456. package/vue/chunks/UiEditorTableOverlay.js +390 -85
  457. package/vue/chunks/UiEditorTableToolbar.js +248 -71
  458. package/vue/chunks/UiEditorToolbar.js +44 -10
  459. package/vue/chunks/UiFloatingActionButton.js +57 -9
  460. package/vue/chunks/UiFormField.js +63 -12
  461. package/vue/chunks/UiGrid.js +80 -9
  462. package/vue/chunks/UiIcon.js +73 -16
  463. package/vue/chunks/UiIconButton.js +126 -28
  464. package/vue/chunks/UiInput.js +328 -22
  465. package/vue/chunks/UiInputGroup.js +44 -10
  466. package/vue/chunks/UiList.js +104 -15
  467. package/vue/chunks/UiListItem.js +57 -8
  468. package/vue/chunks/UiListbox.js +208 -49
  469. package/vue/chunks/UiMenu.js +88 -15
  470. package/vue/chunks/UiMenuGroup.js +41 -5
  471. package/vue/chunks/UiMenuItem.js +111 -32
  472. package/vue/chunks/UiMeter.js +166 -36
  473. package/vue/chunks/UiNavItem.js +133 -37
  474. package/vue/chunks/UiPageHeader.js +41 -6
  475. package/vue/chunks/UiPopover.js +81 -11
  476. package/vue/chunks/UiRadio.js +115 -24
  477. package/vue/chunks/UiRadioGroup.js +108 -19
  478. package/vue/chunks/UiReel.js +81 -10
  479. package/vue/chunks/UiScrollArea.js +47 -10
  480. package/vue/chunks/UiSearchResultRow.js +47 -8
  481. package/vue/chunks/UiSearchShell.js +84 -24
  482. package/vue/chunks/UiSection.js +77 -10
  483. package/vue/chunks/UiSelect.js +108 -20
  484. package/vue/chunks/UiSeparator.js +41 -5
  485. package/vue/chunks/UiSidebar.js +136 -20
  486. package/vue/chunks/UiSpinner.js +64 -19
  487. package/vue/chunks/UiStack.js +87 -10
  488. package/vue/chunks/UiStatusMessage.js +82 -12
  489. package/vue/chunks/UiSwitch.js +115 -24
  490. package/vue/chunks/UiSwitcher.js +103 -15
  491. package/vue/chunks/UiTable.js +63 -11
  492. package/vue/chunks/UiTabs.js +170 -30
  493. package/vue/chunks/UiText.js +365 -38
  494. package/vue/chunks/UiTextarea.js +132 -26
  495. package/vue/chunks/UiToast.js +70 -12
  496. package/vue/chunks/UiToastRegion.js +154 -33
  497. package/vue/chunks/UiTooltip.js +124 -16
  498. package/vue/chunks/UiTopBar.js +16 -3
  499. package/vue/chunks/UiTree.js +107 -15
  500. package/vue/chunks/UiTreeItem.js +167 -43
  501. package/vue/chunks/control.js +171 -0
  502. package/vue/chunks/host.js +170 -27
  503. package/vue/chunks/props.js +477 -0
  504. package/vue/components.css +1192 -1192
  505. package/vue/editor/index.js +58 -15
  506. package/vue/editor/primitives.d.ts +52 -2
  507. package/vue/host.ts +370 -39
@@ -0,0 +1,477 @@
1
+ //#region .build/vue/props.ts
2
+ var CSS_NAMED_COLOR_SET = /* @__PURE__ */ new Set([
3
+ "accentcolor",
4
+ "accentcolortext",
5
+ "activetext",
6
+ "aliceblue",
7
+ "antiquewhite",
8
+ "aqua",
9
+ "aquamarine",
10
+ "azure",
11
+ "beige",
12
+ "bisque",
13
+ "black",
14
+ "blanchedalmond",
15
+ "blue",
16
+ "blueviolet",
17
+ "brown",
18
+ "burlywood",
19
+ "buttonborder",
20
+ "buttonface",
21
+ "buttontext",
22
+ "cadetblue",
23
+ "canvas",
24
+ "canvastext",
25
+ "chartreuse",
26
+ "chocolate",
27
+ "coral",
28
+ "cornflowerblue",
29
+ "cornsilk",
30
+ "crimson",
31
+ "currentcolor",
32
+ "cyan",
33
+ "darkblue",
34
+ "darkcyan",
35
+ "darkgoldenrod",
36
+ "darkgray",
37
+ "darkgreen",
38
+ "darkgrey",
39
+ "darkkhaki",
40
+ "darkmagenta",
41
+ "darkolivegreen",
42
+ "darkorange",
43
+ "darkorchid",
44
+ "darkred",
45
+ "darksalmon",
46
+ "darkseagreen",
47
+ "darkslateblue",
48
+ "darkslategray",
49
+ "darkslategrey",
50
+ "darkturquoise",
51
+ "darkviolet",
52
+ "deeppink",
53
+ "deepskyblue",
54
+ "dimgray",
55
+ "dimgrey",
56
+ "dodgerblue",
57
+ "field",
58
+ "fieldtext",
59
+ "firebrick",
60
+ "floralwhite",
61
+ "forestgreen",
62
+ "fuchsia",
63
+ "gainsboro",
64
+ "ghostwhite",
65
+ "gold",
66
+ "goldenrod",
67
+ "gray",
68
+ "graytext",
69
+ "green",
70
+ "greenyellow",
71
+ "grey",
72
+ "highlight",
73
+ "highlighttext",
74
+ "honeydew",
75
+ "hotpink",
76
+ "indianred",
77
+ "indigo",
78
+ "ivory",
79
+ "khaki",
80
+ "lavender",
81
+ "lavenderblush",
82
+ "lawngreen",
83
+ "lemonchiffon",
84
+ "lightblue",
85
+ "lightcoral",
86
+ "lightcyan",
87
+ "lightgoldenrodyellow",
88
+ "lightgray",
89
+ "lightgreen",
90
+ "lightgrey",
91
+ "lightpink",
92
+ "lightsalmon",
93
+ "lightseagreen",
94
+ "lightskyblue",
95
+ "lightslategray",
96
+ "lightslategrey",
97
+ "lightsteelblue",
98
+ "lightyellow",
99
+ "lime",
100
+ "limegreen",
101
+ "linen",
102
+ "linktext",
103
+ "magenta",
104
+ "mark",
105
+ "marktext",
106
+ "maroon",
107
+ "mediumaquamarine",
108
+ "mediumblue",
109
+ "mediumorchid",
110
+ "mediumpurple",
111
+ "mediumseagreen",
112
+ "mediumslateblue",
113
+ "mediumspringgreen",
114
+ "mediumturquoise",
115
+ "mediumvioletred",
116
+ "midnightblue",
117
+ "mintcream",
118
+ "mistyrose",
119
+ "moccasin",
120
+ "navajowhite",
121
+ "navy",
122
+ "oldlace",
123
+ "olive",
124
+ "olivedrab",
125
+ "orange",
126
+ "orangered",
127
+ "orchid",
128
+ "palegoldenrod",
129
+ "palegreen",
130
+ "paleturquoise",
131
+ "palevioletred",
132
+ "papayawhip",
133
+ "peachpuff",
134
+ "peru",
135
+ "pink",
136
+ "plum",
137
+ "powderblue",
138
+ "purple",
139
+ "rebeccapurple",
140
+ "red",
141
+ "rosybrown",
142
+ "royalblue",
143
+ "saddlebrown",
144
+ "salmon",
145
+ "sandybrown",
146
+ "seagreen",
147
+ "seashell",
148
+ "selecteditem",
149
+ "selecteditemtext",
150
+ "sienna",
151
+ "silver",
152
+ "skyblue",
153
+ "slateblue",
154
+ "slategray",
155
+ "slategrey",
156
+ "snow",
157
+ "springgreen",
158
+ "steelblue",
159
+ "tan",
160
+ "teal",
161
+ "thistle",
162
+ "tomato",
163
+ "transparent",
164
+ "turquoise",
165
+ "violet",
166
+ "visitedtext",
167
+ "wheat",
168
+ "white",
169
+ "whitesmoke",
170
+ "yellow",
171
+ "yellowgreen"
172
+ ]);
173
+ var HTML_EMAIL_PATTERN = /^[a-zA-Z0-9.!#$%&'*+/?=^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
174
+ var HtmlDiagnosticError = class extends Error {
175
+ diagnostic;
176
+ constructor(code, message) {
177
+ super(code + ": " + message);
178
+ this.name = "HtmlDiagnosticError";
179
+ this.diagnostic = Object.freeze({
180
+ code,
181
+ message
182
+ });
183
+ }
184
+ };
185
+ function issue(path, message) {
186
+ return {
187
+ ok: false,
188
+ issues: [path + ": " + message]
189
+ };
190
+ }
191
+ function pathAt(path, key) {
192
+ if (typeof key === "number") return path + "[" + key + "]";
193
+ return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(key) ? path + "." + key : path + "[" + JSON.stringify(key) + "]";
194
+ }
195
+ function plainObject(value) {
196
+ if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
197
+ const prototype = Object.getPrototypeOf(value);
198
+ return prototype === Object.prototype || prototype === null;
199
+ }
200
+ function structured(value) {
201
+ return value;
202
+ }
203
+ function trusted(value, name) {
204
+ if (typeof value !== "object" || value === null) return false;
205
+ if (value.kind === name && "value" in value) return true;
206
+ const expected = name === "trusted-html" ? "TrustedHTML" : "TrustedScript";
207
+ return value.constructor?.name === expected || Object.prototype.toString.call(value) === "[object " + expected + "]";
208
+ }
209
+ function validDate(value) {
210
+ const match = /^([0-9]{4,})-([0-9]{2})-([0-9]{2})$/.exec(value);
211
+ if (match === null || match[1] === "0000") return false;
212
+ const year = Number(match[1]);
213
+ const date = /* @__PURE__ */ new Date(0);
214
+ date.setUTCFullYear(year, Number(match[2]) - 1, Number(match[3]));
215
+ return date.getUTCFullYear() === year && date.getUTCMonth() === Number(match[2]) - 1 && date.getUTCDate() === Number(match[3]);
216
+ }
217
+ function validTime(value) {
218
+ const match = /^([0-9]{2}):([0-9]{2})(?::([0-9]{2})(?:\.([0-9]{1,3}))?)?$/.exec(value);
219
+ return match !== null && Number(match[1]) < 24 && Number(match[2]) < 60 && Number(match[3] ?? 0) < 60;
220
+ }
221
+ function validFunctionalColor(value) {
222
+ const match = /^(rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch|color)\((.*)\)$/i.exec(value);
223
+ if (match === null) return false;
224
+ const body = match[2].trim();
225
+ const parts = body.replaceAll(",", " ").replaceAll("/", " ").split(/\s+/);
226
+ if (match[1].toLowerCase() === "color" && !/^(?:srgb|srgb-linear|display-p3|a98-rgb|prophoto-rgb|rec2020|xyz|xyz-d50|xyz-d65)$/.test(parts.shift() ?? "")) return false;
227
+ if (parts.length < 3 || parts.length > 4) return false;
228
+ if (parts.length === 4 && !body.includes("/") && !body.includes(",")) return false;
229
+ return parts.every((part) => part === "none" || /^[+-]?(?:[0-9]+(?:\.[0-9]*)?|\.[0-9]+)(?:%|deg|rad|grad|turn)?$/.test(part));
230
+ }
231
+ function validFormat(value, name) {
232
+ switch (name) {
233
+ case "keyword": return /^[A-Za-z0-9_-]+$/.test(value);
234
+ case "url": try {
235
+ return new URL(value).protocol !== "";
236
+ } catch {
237
+ return false;
238
+ }
239
+ case "email": return HTML_EMAIL_PATTERN.test(value);
240
+ case "date": return validDate(value);
241
+ case "month": return /^(?!0000)[0-9]{4,}-(?:0[1-9]|1[0-2])$/.test(value);
242
+ case "week": {
243
+ const match = /^([0-9]{4,})-W([0-9]{2})$/.exec(value);
244
+ if (match === null || match[1] === "0000") return false;
245
+ const year = Number(match[1]);
246
+ const week = Number(match[2]);
247
+ const jan1 = /* @__PURE__ */ new Date(0);
248
+ jan1.setUTCFullYear(year, 0, 1);
249
+ const jan1Day = jan1.getUTCDay();
250
+ const leap = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
251
+ return week >= 1 && (week < 53 || week === 53 && (jan1Day === 4 || jan1Day === 3 && leap));
252
+ }
253
+ case "time": return validTime(value);
254
+ case "datetime-local": {
255
+ const match = /^([0-9]{4,}-[0-9]{2}-[0-9]{2})[T ](.+)$/.exec(value);
256
+ return match !== null && validDate(match[1]) && validTime(match[2]);
257
+ }
258
+ case "datetime": {
259
+ const match = /^([0-9]{4,}-[0-9]{2}-[0-9]{2})T([0-9]{2}:[0-9]{2}(?::[0-9]{2}(?:\.[0-9]{1,3})?)?)(Z|[+-](?:0[0-9]|1[0-9]|2[0-3]):[0-5][0-9])$/.exec(value);
260
+ return match !== null && validDate(match[1]) && validTime(match[2]);
261
+ }
262
+ case "color-hex": return /^#[0-9a-fA-F]{3}(?:[0-9a-fA-F]{1}|[0-9a-fA-F]{3}(?:[0-9a-fA-F]{2})?)?$/.test(value);
263
+ case "color": return validFormat(value, "color-hex") || CSS_NAMED_COLOR_SET.has(value.toLowerCase()) || validFunctionalColor(value);
264
+ case "length": return /^-?(?:[0-9]+(?:\.[0-9]+)?|\.[0-9]+)(?:px|em|rem|vw|vh|vmin|vmax|ch|ex|cm|mm|in|pt|pc|q)$/.test(value) || value === "0";
265
+ case "percentage": return /^-?(?:[0-9]+(?:\.[0-9]+)?|\.[0-9]+)%$/.test(value);
266
+ case "duration": return /^-?(?:[0-9]+(?:\.[0-9]+)?|\.[0-9]+)(?:ms|s)$/.test(value);
267
+ default: return false;
268
+ }
269
+ }
270
+ function typeName(node) {
271
+ switch (node.kind) {
272
+ case "terminal": return node.name;
273
+ case "separated-list": return "keyword" + (node.separator === "space" ? "+" : "#");
274
+ case "keyword": return /^[A-Za-z_][A-Za-z0-9_-]*$/.test(node.value) && ![
275
+ "string",
276
+ "boolean",
277
+ "number",
278
+ "integer",
279
+ "null",
280
+ "absent",
281
+ "trusted-html",
282
+ "trusted-script",
283
+ "function",
284
+ "unknown",
285
+ "list",
286
+ "record",
287
+ "object"
288
+ ].includes(node.value) ? node.value : JSON.stringify(node.value);
289
+ case "union": return node.members.map(typeName).join(" | ");
290
+ case "constrained": return typeName(node.base) + " with values " + node.values.map(String).join(", ");
291
+ case "list": return "list(" + typeName(node.item) + ")";
292
+ case "record": return "record(" + typeName(node.value) + ")";
293
+ case "object": return "object({ " + [...node.fields.map((field) => field.name + (field.optional ? "?" : "") + ": " + typeName(field.type)), ...node.open ? ["..."] : []].join(", ") + " })";
294
+ }
295
+ }
296
+ function parse(value, node, path) {
297
+ switch (node.kind) {
298
+ case "terminal":
299
+ switch (node.name) {
300
+ case "string": return typeof value === "string" ? {
301
+ ok: true,
302
+ value
303
+ } : issue(path, "Must be a string.");
304
+ case "keyword":
305
+ case "url":
306
+ case "email":
307
+ case "date":
308
+ case "month":
309
+ case "week":
310
+ case "time":
311
+ case "datetime-local":
312
+ case "datetime":
313
+ case "color":
314
+ case "color-hex":
315
+ case "length":
316
+ case "percentage":
317
+ case "duration": return typeof value === "string" && validFormat(value, node.name) ? {
318
+ ok: true,
319
+ value
320
+ } : issue(path, "Must be a valid " + node.name + " value.");
321
+ case "boolean": return typeof value === "boolean" ? {
322
+ ok: true,
323
+ value
324
+ } : issue(path, "Must be true or false.");
325
+ case "number":
326
+ case "integer": {
327
+ const number = typeof value === "number" ? value : NaN;
328
+ if (!Number.isFinite(number)) return issue(path, node.name === "integer" ? "Must be an integer." : "Must be a finite number.");
329
+ if (node.name === "integer" && !Number.isInteger(number)) return issue(path, "Must be an integer.");
330
+ return {
331
+ ok: true,
332
+ value: number
333
+ };
334
+ }
335
+ case "null": return value === null ? {
336
+ ok: true,
337
+ value
338
+ } : issue(path, "Must be null.");
339
+ case "absent": return value === void 0 ? {
340
+ ok: true,
341
+ value
342
+ } : issue(path, "Must be absent.");
343
+ case "trusted-html":
344
+ case "trusted-script": return trusted(value, node.name) ? {
345
+ ok: true,
346
+ value
347
+ } : issue(path, "Must be a " + (node.name === "trusted-html" ? "TrustedHTML" : "TrustedScript") + " value.");
348
+ case "function": return typeof value === "function" ? {
349
+ ok: true,
350
+ value
351
+ } : issue(path, "Must be a function supplied through a property.");
352
+ case "unknown": return {
353
+ ok: true,
354
+ value
355
+ };
356
+ }
357
+ return issue(path, "Unknown declared type.");
358
+ case "separated-list": return Array.isArray(value) && value.length > 0 && value.every((item) => typeof item === "string" && /^[A-Za-z0-9_-]+$/.test(item)) ? {
359
+ ok: true,
360
+ value
361
+ } : issue(path, "Must be a nonempty keyword list.");
362
+ case "keyword": return value === node.value ? {
363
+ ok: true,
364
+ value
365
+ } : issue(path, "Must be " + JSON.stringify(node.value) + ".");
366
+ case "union":
367
+ for (const member of node.members) {
368
+ const result = parse(value, member, path);
369
+ if (result.ok) return result;
370
+ }
371
+ return issue(path, "Must match " + typeName(node) + ".");
372
+ case "constrained": {
373
+ const parsed = parse(value, node.base, path);
374
+ return parsed.ok && node.values.some((choice) => choice === parsed.value) ? parsed : issue(path, "Must be one of " + node.values.map(String).join(", ") + ".");
375
+ }
376
+ case "list": {
377
+ const input = structured(value);
378
+ if (!Array.isArray(input)) return issue(path, "Must be a list.");
379
+ const output = [];
380
+ const issues = [];
381
+ input.forEach((item, index) => {
382
+ const result = parse(item, node.item, pathAt(path, index));
383
+ if (result.ok) output.push(result.value);
384
+ else issues.push(...result.issues);
385
+ });
386
+ return issues.length === 0 ? {
387
+ ok: true,
388
+ value: output
389
+ } : {
390
+ ok: false,
391
+ issues
392
+ };
393
+ }
394
+ case "record": {
395
+ const input = structured(value);
396
+ if (!plainObject(input)) return issue(path, "Must be a string-keyed record.");
397
+ const output = {};
398
+ const issues = [];
399
+ for (const [key, item] of Object.entries(input)) {
400
+ const result = parse(item, node.value, pathAt(path, key));
401
+ if (result.ok) output[key] = result.value;
402
+ else issues.push(...result.issues);
403
+ }
404
+ return issues.length === 0 ? {
405
+ ok: true,
406
+ value: output
407
+ } : {
408
+ ok: false,
409
+ issues
410
+ };
411
+ }
412
+ case "object": {
413
+ const input = structured(value);
414
+ if (!plainObject(input)) return issue(path, "Must be an object.");
415
+ const output = {};
416
+ const issues = [];
417
+ const fields = new Map(node.fields.map((field) => [field.name, field]));
418
+ for (const field of node.fields) {
419
+ if (!(field.name in input)) {
420
+ if (!field.optional) issues.push(pathAt(path, field.name) + ": Required field is absent.");
421
+ continue;
422
+ }
423
+ const result = parse(input[field.name], field.type, pathAt(path, field.name));
424
+ if (result.ok) output[field.name] = result.value;
425
+ else issues.push(...result.issues);
426
+ }
427
+ for (const [key, item] of Object.entries(input)) {
428
+ if (fields.has(key)) continue;
429
+ if (node.open) output[key] = item;
430
+ else issues.push(pathAt(path, key) + ": Field is not declared by this closed object type.");
431
+ }
432
+ return issues.length === 0 ? {
433
+ ok: true,
434
+ value: output
435
+ } : {
436
+ ok: false,
437
+ issues
438
+ };
439
+ }
440
+ }
441
+ }
442
+ /** Match HTML Next's typed invocation boundary before Vue renders or a controller reads a prop. */
443
+ function selectedPropNode(selector, options) {
444
+ if (selector === null || selector === void 0) return {
445
+ kind: "terminal",
446
+ name: "null"
447
+ };
448
+ const option = options.find((candidate) => candidate.value === selector);
449
+ if (option === void 0) throw new HtmlDiagnosticError("HR002", "A selecting prop has no matching type option.");
450
+ return option.type;
451
+ }
452
+ function checkedProp(value, type, required, name, pattern, values) {
453
+ if (value === void 0) {
454
+ if (required) throw new HtmlDiagnosticError("HC020", "Required prop `" + name + "` was not provided.");
455
+ return null;
456
+ }
457
+ if (value === null) {
458
+ if (required) throw new HtmlDiagnosticError("HC021", "A required prop cannot be null.");
459
+ return null;
460
+ }
461
+ if (required && value === "") throw new HtmlDiagnosticError("HR002", "A required prop cannot be empty.");
462
+ const result = parse(value, type, "$");
463
+ if (!result.ok) throw new HtmlDiagnosticError("HR002", "A prop invocation value does not satisfy its declared type. " + result.issues.join("; "));
464
+ if (values !== void 0 && !values.some((choice) => choice === result.value)) throw new HtmlDiagnosticError("HR002", "A prop invocation value is not among its permitted values.");
465
+ if (pattern !== void 0 && value !== "") {
466
+ let expression;
467
+ try {
468
+ expression = new RegExp("^(?:" + pattern + ")$", "v");
469
+ } catch {
470
+ expression = new RegExp("^(?:" + pattern + ")$", "u");
471
+ }
472
+ if (typeof value !== "string" || !expression.test(value)) throw new HtmlDiagnosticError("HR002", "A prop invocation value does not match its pattern.");
473
+ }
474
+ return result.value;
475
+ }
476
+ //#endregion
477
+ export { selectedPropNode as n, checkedProp as t };