@threadlabs/looma 0.28.5 → 0.28.7

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 (453) hide show
  1. package/components/ui-editor-block-actions/ui-editor-block-actions.html +20 -0
  2. package/components/ui-editor-block-actions/ui-editor-block-actions.js +14 -0
  3. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.html +7 -6
  4. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.js +2 -1
  5. package/components/ui-editor-link-card/ui-editor-link-card.html +57 -0
  6. package/components/ui-editor-link-card/ui-editor-link-card.js +27 -0
  7. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
  8. package/dist/index.js +36 -34
  9. package/package.json +3 -2
  10. package/styles/ui-action-bar.css +13 -6
  11. package/styles/ui-affordance-scope.css +12 -5
  12. package/styles/ui-avatar-group.css +17 -10
  13. package/styles/ui-avatar.css +23 -16
  14. package/styles/ui-badge.css +78 -71
  15. package/styles/ui-breadcrumb-item.css +12 -5
  16. package/styles/ui-breadcrumbs.css +10 -3
  17. package/styles/ui-button.css +79 -72
  18. package/styles/ui-callout.css +29 -22
  19. package/styles/ui-card.css +25 -18
  20. package/styles/ui-checkbox.css +45 -37
  21. package/styles/ui-cluster.css +34 -27
  22. package/styles/ui-combobox.css +46 -39
  23. package/styles/ui-container.css +20 -13
  24. package/styles/ui-context-menu.css +17 -10
  25. package/styles/ui-cover.css +12 -5
  26. package/styles/ui-description-item.css +10 -3
  27. package/styles/ui-description-list.css +20 -13
  28. package/styles/ui-dialog.css +44 -35
  29. package/styles/ui-disclosure.css +32 -25
  30. package/styles/ui-editable.css +15 -8
  31. package/styles/ui-editor-block-actions.css +1 -0
  32. package/styles/ui-editor-image-toolbar.css +1 -1
  33. package/styles/ui-editor-insert-table-grid.css +11 -4
  34. package/styles/ui-editor-link-card.css +1 -0
  35. package/styles/ui-editor-mention-menu-item.css +17 -8
  36. package/styles/ui-editor-mention-menu.css +14 -7
  37. package/styles/ui-editor-slash-menu-group.css +10 -3
  38. package/styles/ui-editor-slash-menu-item.css +15 -8
  39. package/styles/ui-editor-slash-menu.css +15 -8
  40. package/styles/ui-editor-surface.css +10 -3
  41. package/styles/ui-editor-table-context-menu.css +17 -10
  42. package/styles/ui-editor-table-overlay.css +17 -10
  43. package/styles/ui-editor-table-toolbar.css +22 -15
  44. package/styles/ui-editor-toolbar.css +18 -11
  45. package/styles/ui-floating-action-button.css +21 -14
  46. package/styles/ui-form-field.css +20 -13
  47. package/styles/ui-grid.css +21 -14
  48. package/styles/ui-icon-button.css +80 -73
  49. package/styles/ui-icon.css +14 -7
  50. package/styles/ui-image.css +25 -18
  51. package/styles/ui-input-group.css +34 -27
  52. package/styles/ui-input.css +42 -35
  53. package/styles/ui-list-item.css +33 -26
  54. package/styles/ui-list.css +22 -15
  55. package/styles/ui-listbox.css +22 -14
  56. package/styles/ui-menu-group.css +10 -3
  57. package/styles/ui-menu-item.css +29 -22
  58. package/styles/ui-menu.css +25 -18
  59. package/styles/ui-meter.css +36 -29
  60. package/styles/ui-nav-item.css +26 -19
  61. package/styles/ui-page-header.css +12 -5
  62. package/styles/ui-popover.css +27 -20
  63. package/styles/ui-radio-group.css +14 -6
  64. package/styles/ui-radio.css +24 -17
  65. package/styles/ui-reel.css +28 -21
  66. package/styles/ui-scroll-area.css +22 -15
  67. package/styles/ui-search-result-row.css +28 -21
  68. package/styles/ui-search-shell.css +24 -17
  69. package/styles/ui-section.css +14 -7
  70. package/styles/ui-select.css +33 -26
  71. package/styles/ui-separator.css +17 -10
  72. package/styles/ui-sidebar.css +35 -28
  73. package/styles/ui-spinner.css +32 -23
  74. package/styles/ui-stack.css +29 -21
  75. package/styles/ui-status-message.css +14 -7
  76. package/styles/ui-switch.css +29 -22
  77. package/styles/ui-switcher.css +27 -20
  78. package/styles/ui-table.css +14 -7
  79. package/styles/ui-tabs.css +24 -17
  80. package/styles/ui-text.css +35 -28
  81. package/styles/ui-textarea.css +37 -30
  82. package/styles/ui-toast-region.css +74 -63
  83. package/styles/ui-toast.css +21 -14
  84. package/styles/ui-tooltip.css +38 -31
  85. package/styles/ui-top-bar.css +19 -12
  86. package/styles/ui-tree-item.css +79 -71
  87. package/styles/ui-tree.css +18 -11
  88. package/vanilla/UiActionBar.d.ts +1 -1
  89. package/vanilla/UiActionBar.js +1 -1
  90. package/vanilla/UiAffordanceScope.d.ts +1 -1
  91. package/vanilla/UiAffordanceScope.js +1 -1
  92. package/vanilla/UiAvatar.d.ts +1 -1
  93. package/vanilla/UiAvatar.js +1 -1
  94. package/vanilla/UiAvatarGroup.d.ts +1 -1
  95. package/vanilla/UiAvatarGroup.js +1 -1
  96. package/vanilla/UiBadge.d.ts +1 -1
  97. package/vanilla/UiBadge.js +1 -1
  98. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  99. package/vanilla/UiBreadcrumbItem.js +1 -1
  100. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  101. package/vanilla/UiBreadcrumbs.js +1 -1
  102. package/vanilla/UiButton.d.ts +1 -1
  103. package/vanilla/UiButton.js +19 -57
  104. package/vanilla/UiCallout.d.ts +1 -1
  105. package/vanilla/UiCallout.js +25 -73
  106. package/vanilla/UiCard.d.ts +1 -1
  107. package/vanilla/UiCard.js +1 -1
  108. package/vanilla/UiCheckbox.d.ts +1 -1
  109. package/vanilla/UiCheckbox.js +1 -1
  110. package/vanilla/UiCluster.d.ts +1 -1
  111. package/vanilla/UiCluster.js +1 -1
  112. package/vanilla/UiCombobox.d.ts +1 -1
  113. package/vanilla/UiCombobox.js +60 -166
  114. package/vanilla/UiContainer.d.ts +1 -1
  115. package/vanilla/UiContainer.js +1 -1
  116. package/vanilla/UiContextMenu.d.ts +1 -1
  117. package/vanilla/UiContextMenu.js +1 -1
  118. package/vanilla/UiCover.d.ts +1 -1
  119. package/vanilla/UiCover.js +1 -1
  120. package/vanilla/UiDescriptionItem.d.ts +1 -1
  121. package/vanilla/UiDescriptionItem.js +1 -1
  122. package/vanilla/UiDescriptionList.d.ts +1 -1
  123. package/vanilla/UiDescriptionList.js +1 -1
  124. package/vanilla/UiDialog.d.ts +1 -1
  125. package/vanilla/UiDialog.js +4 -10
  126. package/vanilla/UiDisclosure.d.ts +1 -1
  127. package/vanilla/UiDisclosure.js +1 -1
  128. package/vanilla/UiEditable.d.ts +1 -1
  129. package/vanilla/UiEditable.js +7 -19
  130. package/vanilla/UiEditorBlockActions.d.ts +16 -0
  131. package/vanilla/UiEditorBlockActions.js +41 -0
  132. package/vanilla/UiEditorImageToolbar.d.ts +1 -1
  133. package/vanilla/UiEditorImageToolbar.js +2 -2
  134. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  135. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  136. package/vanilla/UiEditorLinkCard.d.ts +20 -0
  137. package/vanilla/UiEditorLinkCard.js +153 -0
  138. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  139. package/vanilla/UiEditorMentionMenu.js +17 -37
  140. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  141. package/vanilla/UiEditorMentionMenuItem.js +4 -10
  142. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  143. package/vanilla/UiEditorSlashMenu.js +5 -4
  144. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  145. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  146. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  147. package/vanilla/UiEditorSlashMenuItem.js +7 -19
  148. package/vanilla/UiEditorSurface.d.ts +1 -1
  149. package/vanilla/UiEditorSurface.js +1 -1
  150. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  151. package/vanilla/UiEditorTableContextMenu.js +6 -14
  152. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  153. package/vanilla/UiEditorTableOverlay.js +9 -25
  154. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  155. package/vanilla/UiEditorTableToolbar.js +25 -77
  156. package/vanilla/UiEditorToolbar.d.ts +1 -1
  157. package/vanilla/UiEditorToolbar.js +1 -1
  158. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  159. package/vanilla/UiFloatingActionButton.js +1 -1
  160. package/vanilla/UiFormField.d.ts +1 -1
  161. package/vanilla/UiFormField.js +1 -1
  162. package/vanilla/UiGrid.d.ts +1 -1
  163. package/vanilla/UiGrid.js +1 -1
  164. package/vanilla/UiIcon.d.ts +1 -1
  165. package/vanilla/UiIcon.js +15 -47
  166. package/vanilla/UiIconButton.d.ts +1 -1
  167. package/vanilla/UiIconButton.js +4 -10
  168. package/vanilla/UiImage.d.ts +1 -1
  169. package/vanilla/UiImage.js +1 -1
  170. package/vanilla/UiInput.d.ts +1 -1
  171. package/vanilla/UiInput.js +1 -1
  172. package/vanilla/UiInputGroup.d.ts +1 -1
  173. package/vanilla/UiInputGroup.js +1 -1
  174. package/vanilla/UiList.d.ts +1 -1
  175. package/vanilla/UiList.js +1 -1
  176. package/vanilla/UiListItem.d.ts +1 -1
  177. package/vanilla/UiListItem.js +1 -1
  178. package/vanilla/UiListbox.d.ts +1 -1
  179. package/vanilla/UiListbox.js +4 -10
  180. package/vanilla/UiMenu.d.ts +1 -1
  181. package/vanilla/UiMenu.js +1 -1
  182. package/vanilla/UiMenuGroup.d.ts +1 -1
  183. package/vanilla/UiMenuGroup.js +4 -10
  184. package/vanilla/UiMenuItem.d.ts +1 -1
  185. package/vanilla/UiMenuItem.js +4 -10
  186. package/vanilla/UiMeter.d.ts +1 -1
  187. package/vanilla/UiMeter.js +13 -33
  188. package/vanilla/UiNavItem.d.ts +1 -1
  189. package/vanilla/UiNavItem.js +1 -1
  190. package/vanilla/UiPageHeader.d.ts +1 -1
  191. package/vanilla/UiPageHeader.js +1 -1
  192. package/vanilla/UiPopover.d.ts +1 -1
  193. package/vanilla/UiPopover.js +1 -1
  194. package/vanilla/UiRadio.d.ts +1 -1
  195. package/vanilla/UiRadio.js +1 -1
  196. package/vanilla/UiRadioGroup.d.ts +1 -1
  197. package/vanilla/UiRadioGroup.js +1 -1
  198. package/vanilla/UiReel.d.ts +1 -1
  199. package/vanilla/UiReel.js +1 -1
  200. package/vanilla/UiScrollArea.d.ts +1 -1
  201. package/vanilla/UiScrollArea.js +1 -1
  202. package/vanilla/UiSearchResultRow.d.ts +1 -1
  203. package/vanilla/UiSearchResultRow.js +1 -1
  204. package/vanilla/UiSearchShell.d.ts +1 -1
  205. package/vanilla/UiSearchShell.js +1 -1
  206. package/vanilla/UiSection.d.ts +1 -1
  207. package/vanilla/UiSection.js +1 -1
  208. package/vanilla/UiSelect.d.ts +1 -1
  209. package/vanilla/UiSelect.js +1 -1
  210. package/vanilla/UiSeparator.d.ts +1 -1
  211. package/vanilla/UiSeparator.js +1 -1
  212. package/vanilla/UiSidebar.d.ts +1 -1
  213. package/vanilla/UiSidebar.js +1 -1
  214. package/vanilla/UiSpinner.d.ts +1 -1
  215. package/vanilla/UiSpinner.js +1 -1
  216. package/vanilla/UiStack.d.ts +1 -1
  217. package/vanilla/UiStack.js +1 -1
  218. package/vanilla/UiStatusMessage.d.ts +1 -1
  219. package/vanilla/UiStatusMessage.js +1 -1
  220. package/vanilla/UiSwitch.d.ts +1 -1
  221. package/vanilla/UiSwitch.js +1 -1
  222. package/vanilla/UiSwitcher.d.ts +1 -1
  223. package/vanilla/UiSwitcher.js +1 -1
  224. package/vanilla/UiTable.d.ts +1 -1
  225. package/vanilla/UiTable.js +1 -1
  226. package/vanilla/UiTabs.d.ts +1 -1
  227. package/vanilla/UiTabs.js +1 -1
  228. package/vanilla/UiText.d.ts +1 -1
  229. package/vanilla/UiText.js +1 -1
  230. package/vanilla/UiTextarea.d.ts +1 -1
  231. package/vanilla/UiTextarea.js +1 -1
  232. package/vanilla/UiToast.d.ts +1 -1
  233. package/vanilla/UiToast.js +1 -1
  234. package/vanilla/UiToastRegion.d.ts +1 -1
  235. package/vanilla/UiToastRegion.js +1 -1
  236. package/vanilla/UiTooltip.d.ts +1 -1
  237. package/vanilla/UiTooltip.js +1 -1
  238. package/vanilla/UiTopBar.d.ts +1 -1
  239. package/vanilla/UiTopBar.js +1 -1
  240. package/vanilla/UiTree.d.ts +1 -1
  241. package/vanilla/UiTree.js +1 -1
  242. package/vanilla/UiTreeItem.d.ts +1 -1
  243. package/vanilla/UiTreeItem.js +7 -19
  244. package/vanilla/index.js +2 -0
  245. package/vue/UiActionBar.vue +46 -78
  246. package/vue/UiAffordanceScope.vue +27 -66
  247. package/vue/UiAvatar.d.ts +10 -7
  248. package/vue/UiAvatar.vue +100 -218
  249. package/vue/UiAvatarGroup.d.ts +10 -7
  250. package/vue/UiAvatarGroup.vue +78 -160
  251. package/vue/UiBadge.d.ts +1 -1
  252. package/vue/UiBadge.vue +483 -520
  253. package/vue/UiBreadcrumbItem.vue +52 -123
  254. package/vue/UiBreadcrumbs.vue +27 -70
  255. package/vue/UiButton.d.ts +2 -2
  256. package/vue/UiButton.vue +420 -471
  257. package/vue/UiCallout.vue +131 -175
  258. package/vue/UiCard.d.ts +1 -1
  259. package/vue/UiCard.vue +112 -151
  260. package/vue/UiCheckbox.d.ts +13 -10
  261. package/vue/UiCheckbox.vue +160 -221
  262. package/vue/UiCluster.d.ts +1 -1
  263. package/vue/UiCluster.vue +84 -128
  264. package/vue/UiCombobox.d.ts +71 -68
  265. package/vue/UiCombobox.vue +417 -743
  266. package/vue/UiContainer.vue +43 -87
  267. package/vue/UiContextMenu.d.ts +6 -6
  268. package/vue/UiContextMenu.vue +78 -117
  269. package/vue/UiCover.vue +29 -69
  270. package/vue/UiDescriptionItem.vue +39 -82
  271. package/vue/UiDescriptionList.vue +64 -107
  272. package/vue/UiDialog.d.ts +22 -19
  273. package/vue/UiDialog.vue +193 -246
  274. package/vue/UiDisclosure.d.ts +22 -19
  275. package/vue/UiDisclosure.vue +192 -283
  276. package/vue/UiEditable.d.ts +5 -5
  277. package/vue/UiEditable.vue +124 -207
  278. package/vue/UiEditorBlockActions.d.ts +33 -0
  279. package/vue/UiEditorBlockActions.js +2 -0
  280. package/vue/UiEditorBlockActions.vue +125 -0
  281. package/vue/UiEditorImageToolbar.d.ts +2 -2
  282. package/vue/UiEditorImageToolbar.vue +45 -256
  283. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  284. package/vue/UiEditorInsertTableGrid.vue +98 -266
  285. package/vue/UiEditorLinkCard.d.ts +58 -0
  286. package/vue/UiEditorLinkCard.js +2 -0
  287. package/vue/UiEditorLinkCard.vue +319 -0
  288. package/vue/UiEditorMentionMenu.d.ts +15 -12
  289. package/vue/UiEditorMentionMenu.vue +150 -239
  290. package/vue/UiEditorMentionMenuItem.vue +66 -110
  291. package/vue/UiEditorSlashMenu.d.ts +16 -13
  292. package/vue/UiEditorSlashMenu.vue +172 -253
  293. package/vue/UiEditorSlashMenuGroup.vue +25 -69
  294. package/vue/UiEditorSlashMenuItem.vue +67 -115
  295. package/vue/UiEditorSurface.vue +19 -63
  296. package/vue/UiEditorTableContextMenu.vue +135 -269
  297. package/vue/UiEditorTableOverlay.d.ts +2 -2
  298. package/vue/UiEditorTableOverlay.vue +310 -479
  299. package/vue/UiEditorTableToolbar.d.ts +2 -2
  300. package/vue/UiEditorTableToolbar.vue +182 -357
  301. package/vue/UiEditorToolbar.vue +143 -183
  302. package/vue/UiFloatingActionButton.vue +70 -114
  303. package/vue/UiFormField.d.ts +1 -1
  304. package/vue/UiFormField.vue +76 -117
  305. package/vue/UiGrid.d.ts +1 -1
  306. package/vue/UiGrid.vue +65 -103
  307. package/vue/UiIcon.vue +32 -106
  308. package/vue/UiIconButton.d.ts +2 -2
  309. package/vue/UiIconButton.vue +359 -411
  310. package/vue/UiImage.vue +145 -180
  311. package/vue/UiInput.vue +158 -190
  312. package/vue/UiInputGroup.vue +199 -239
  313. package/vue/UiList.vue +67 -109
  314. package/vue/UiListItem.vue +154 -201
  315. package/vue/UiListbox.d.ts +10 -7
  316. package/vue/UiListbox.vue +86 -260
  317. package/vue/UiMenu.d.ts +11 -11
  318. package/vue/UiMenu.vue +118 -152
  319. package/vue/UiMenuGroup.vue +21 -67
  320. package/vue/UiMenuItem.d.ts +19 -16
  321. package/vue/UiMenuItem.vue +169 -262
  322. package/vue/UiMeter.d.ts +4 -4
  323. package/vue/UiMeter.vue +166 -680
  324. package/vue/UiNavItem.vue +140 -213
  325. package/vue/UiPageHeader.vue +81 -127
  326. package/vue/UiPopover.d.ts +7 -7
  327. package/vue/UiPopover.vue +90 -129
  328. package/vue/UiRadio.d.ts +12 -9
  329. package/vue/UiRadio.vue +91 -149
  330. package/vue/UiRadioGroup.d.ts +2 -2
  331. package/vue/UiRadioGroup.vue +47 -85
  332. package/vue/UiReel.vue +89 -130
  333. package/vue/UiScrollArea.d.ts +1 -1
  334. package/vue/UiScrollArea.vue +78 -119
  335. package/vue/UiSearchResultRow.vue +96 -149
  336. package/vue/UiSearchShell.d.ts +2 -2
  337. package/vue/UiSearchShell.vue +159 -196
  338. package/vue/UiSection.vue +105 -149
  339. package/vue/UiSelect.d.ts +1 -1
  340. package/vue/UiSelect.vue +114 -146
  341. package/vue/UiSeparator.vue +42 -85
  342. package/vue/UiSidebar.d.ts +10 -7
  343. package/vue/UiSidebar.vue +193 -260
  344. package/vue/UiSpinner.vue +54 -130
  345. package/vue/UiStack.vue +66 -107
  346. package/vue/UiStatusMessage.d.ts +1 -1
  347. package/vue/UiStatusMessage.vue +61 -135
  348. package/vue/UiSwitch.d.ts +12 -9
  349. package/vue/UiSwitch.vue +136 -194
  350. package/vue/UiSwitcher.vue +69 -107
  351. package/vue/UiTable.vue +121 -156
  352. package/vue/UiTabs.d.ts +1 -1
  353. package/vue/UiTabs.vue +139 -267
  354. package/vue/UiText.d.ts +4 -4
  355. package/vue/UiText.vue +145 -184
  356. package/vue/UiTextarea.d.ts +2 -2
  357. package/vue/UiTextarea.vue +162 -194
  358. package/vue/UiToast.vue +70 -118
  359. package/vue/UiToastRegion.vue +157 -276
  360. package/vue/UiTooltip.d.ts +21 -18
  361. package/vue/UiTooltip.vue +174 -234
  362. package/vue/UiTopBar.vue +48 -76
  363. package/vue/UiTree.vue +46 -79
  364. package/vue/UiTreeItem.d.ts +18 -15
  365. package/vue/UiTreeItem.vue +526 -668
  366. package/vue/chunks/UiActionBar.js +5 -17
  367. package/vue/chunks/UiAffordanceScope.js +7 -26
  368. package/vue/chunks/UiAvatar.js +20 -74
  369. package/vue/chunks/UiAvatarGroup.js +14 -56
  370. package/vue/chunks/UiBadge.js +10 -28
  371. package/vue/chunks/UiBreadcrumbItem.js +11 -41
  372. package/vue/chunks/UiBreadcrumbs.js +7 -25
  373. package/vue/chunks/UiButton.js +80 -103
  374. package/vue/chunks/UiCallout.js +9 -27
  375. package/vue/chunks/UiCard.js +33 -53
  376. package/vue/chunks/UiCheckbox.js +14 -46
  377. package/vue/chunks/UiCluster.js +13 -31
  378. package/vue/chunks/UiCombobox.js +99 -237
  379. package/vue/chunks/UiContainer.js +9 -27
  380. package/vue/chunks/UiContextMenu.js +7 -26
  381. package/vue/chunks/UiCover.js +7 -25
  382. package/vue/chunks/UiDescriptionItem.js +6 -24
  383. package/vue/chunks/UiDescriptionList.js +9 -27
  384. package/vue/chunks/UiDialog.js +18 -47
  385. package/vue/chunks/UiDisclosure.js +19 -66
  386. package/vue/chunks/UiEditable.js +18 -60
  387. package/vue/chunks/UiEditorBlockActions.js +127 -0
  388. package/vue/chunks/UiEditorImageToolbar.js +40 -127
  389. package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
  390. package/vue/chunks/UiEditorLinkCard.js +356 -0
  391. package/vue/chunks/UiEditorMentionMenu.js +16 -54
  392. package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
  393. package/vue/chunks/UiEditorSlashMenu.js +17 -46
  394. package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
  395. package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
  396. package/vue/chunks/UiEditorSurface.js +7 -25
  397. package/vue/chunks/UiEditorTableContextMenu.js +25 -102
  398. package/vue/chunks/UiEditorTableOverlay.js +41 -104
  399. package/vue/chunks/UiEditorTableToolbar.js +44 -122
  400. package/vue/chunks/UiEditorToolbar.js +7 -26
  401. package/vue/chunks/UiFloatingActionButton.js +10 -28
  402. package/vue/chunks/UiFormField.js +8 -27
  403. package/vue/chunks/UiGrid.js +10 -28
  404. package/vue/chunks/UiIcon.js +21 -74
  405. package/vue/chunks/UiIconButton.js +18 -50
  406. package/vue/chunks/UiImage.js +14 -33
  407. package/vue/chunks/UiInput.js +12 -31
  408. package/vue/chunks/UiInputGroup.js +10 -29
  409. package/vue/chunks/UiList.js +17 -37
  410. package/vue/chunks/UiListItem.js +12 -30
  411. package/vue/chunks/UiListbox.js +22 -124
  412. package/vue/chunks/UiMenu.js +13 -32
  413. package/vue/chunks/UiMenuGroup.js +8 -26
  414. package/vue/chunks/UiMenuItem.js +35 -80
  415. package/vue/chunks/UiMeter.js +17 -351
  416. package/vue/chunks/UiNavItem.js +23 -57
  417. package/vue/chunks/UiPageHeader.js +7 -25
  418. package/vue/chunks/UiPopover.js +9 -28
  419. package/vue/chunks/UiRadio.js +11 -43
  420. package/vue/chunks/UiRadioGroup.js +13 -32
  421. package/vue/chunks/UiReel.js +10 -28
  422. package/vue/chunks/UiScrollArea.js +10 -29
  423. package/vue/chunks/UiSearchResultRow.js +10 -28
  424. package/vue/chunks/UiSearchShell.js +9 -28
  425. package/vue/chunks/UiSection.js +9 -27
  426. package/vue/chunks/UiSelect.js +10 -29
  427. package/vue/chunks/UiSeparator.js +10 -28
  428. package/vue/chunks/UiSidebar.js +15 -47
  429. package/vue/chunks/UiSpinner.js +8 -44
  430. package/vue/chunks/UiStack.js +12 -30
  431. package/vue/chunks/UiStatusMessage.js +10 -42
  432. package/vue/chunks/UiSwitch.js +11 -43
  433. package/vue/chunks/UiSwitcher.js +9 -28
  434. package/vue/chunks/UiTable.js +7 -26
  435. package/vue/chunks/UiTabs.js +15 -91
  436. package/vue/chunks/UiText.js +148 -168
  437. package/vue/chunks/UiTextarea.js +16 -35
  438. package/vue/chunks/UiToast.js +13 -37
  439. package/vue/chunks/UiToastRegion.js +16 -88
  440. package/vue/chunks/UiTooltip.js +14 -46
  441. package/vue/chunks/UiTopBar.js +5 -17
  442. package/vue/chunks/UiTree.js +13 -32
  443. package/vue/chunks/UiTreeItem.js +34 -90
  444. package/vue/chunks/_plugin-vue_export-helper.js +904 -1
  445. package/vue/chunks/control.js +3 -0
  446. package/vue/chunks/props.js +1 -1
  447. package/vue/components.css +7689 -7617
  448. package/vue/editor/index.js +30 -95
  449. package/vue/editor/primitives.d.ts +8 -2
  450. package/vue/host.ts +999 -14
  451. package/vue/index.d.ts +2 -0
  452. package/vue/index.js +5 -3
  453. package/vue/chunks/host.js +0 -443
@@ -1,5 +1,4 @@
1
- import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
- import { n as preserveRootFocus, r as useComponentHost, t as createDispatch } from "./host.js";
1
+ import { a as concat, h as preserveRootFocus, i as checkHydratedRoot, o as createDispatch, p as nativeAttrs, r as attribute, t as _plugin_vue_export_helper_default, v as useComponentHost, y as useReflectedProp } from "./_plugin-vue_export-helper.js";
3
2
  import { a as vPropValidity, n as checkedProp, r as propValidityState, t as acceptsControllerWrite } from "./props.js";
4
3
  import { t as UiIcon_default } from "./UiIcon.js";
5
4
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderSlot, unref, useTemplateRef, watchSyncEffect, withDirectives } from "vue";
@@ -49,14 +48,6 @@ var _hoisted_9 = {
49
48
  class: "shortcut",
50
49
  "aria-hidden": "true"
51
50
  };
52
- var htmlNextAuthoredCheck2Reported = /* @__PURE__ */ new Set();
53
- function htmlNextAuthoredCheck2(accepted, location, message) {
54
- if (!accepted && !htmlNextAuthoredCheck2Reported.has(location)) {
55
- htmlNextAuthoredCheck2Reported.add(location);
56
- console.warn(message);
57
- }
58
- return accepted;
59
- }
60
51
  //#endregion
61
52
  //#region .build/vue/UiMenuItem.vue
62
53
  var UiMenuItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -202,18 +193,7 @@ var UiMenuItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
202
193
  watchSyncEffect(() => {
203
194
  checkedProps.value;
204
195
  });
205
- function nativeAttrs(attrs) {
206
- const names = Object.keys(attrs);
207
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs;
208
- return Object.fromEntries(names.map((name) => [Object.hasOwn(Object.prototype, name) ? name === "__proto__" ? "__Proto__" : name[0].toUpperCase() + name.slice(1) : name, attrs[name]]));
209
- }
210
- const componentInstance = getCurrentInstance();
211
- function reflectedProp(name, kebab, value, fallback, bound, separator) {
212
- const incoming = componentInstance?.vnode.props;
213
- if (!bound && (incoming === null || incoming === void 0 || !Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab))) return fallback;
214
- if (value === null || value === void 0) return void 0;
215
- return Array.isArray(value) && separator !== void 0 ? value.join(separator) : typeof value === "object" ? JSON.stringify(value) : String(value);
216
- }
196
+ const reflectedProp = useReflectedProp();
217
197
  const hydrationInstance = getCurrentInstance();
218
198
  const emit = __emit;
219
199
  const root = useTemplateRef("@html-next/root");
@@ -230,32 +210,8 @@ var UiMenuItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
230
210
  false: checkedProps.value.href
231
211
  }, concat(checkedProps.value.disabled)));
232
212
  });
233
- let guardedBindingPrevious;
234
- const guardedBinding = computed(() => {
235
- if (!htmlNextAuthoredCheck2(internalChecked.value == null || typeof internalChecked.value === "boolean", "{ action: null, checkbox: $internalChecked, radio: $internalChecked }[$type]:internalChecked", "./components/ui-menu-item/ui-menu-item.html: HR007: Reference internalChecked does not satisfy its declared type.")) return guardedBindingPrevious;
236
- return guardedBindingPrevious = typeof {
237
- action: null,
238
- checkbox: internalChecked.value,
239
- radio: internalChecked.value
240
- }[checkedProps.value.type] === "boolean" ? String({
241
- action: null,
242
- checkbox: internalChecked.value,
243
- radio: internalChecked.value
244
- }[checkedProps.value.type]) : attribute({
245
- action: null,
246
- checkbox: internalChecked.value,
247
- radio: internalChecked.value
248
- }[checkedProps.value.type]);
249
- });
250
213
  provide("html-next:ui-menu-item:internalChecked", internalChecked);
251
- const hydrationNode = hydrationInstance?.vnode.el;
252
- if (typeof window !== "undefined" && hydrationNode != null && (!(hydrationNode instanceof Element) || hydrationNode.localName !== (checkedProps.value.href && checkedProps.value.type === "action" ? "a" : "div"))) throw Object.assign(/* @__PURE__ */ new Error("HR005: Server markup for <ui-menu-item> has an incompatible root."), {
253
- name: "HtmlDiagnosticError",
254
- diagnostic: Object.freeze({
255
- code: "HR005",
256
- message: "Server markup for <ui-menu-item> has an incompatible root."
257
- })
258
- });
214
+ checkHydratedRoot(checkedProps.value.href && checkedProps.value.type === "action" ? "a" : "div", "ui-menu-item");
259
215
  /** The values the styles' :host-state() rules test. */
260
216
  const hostState = computed(() => [
261
217
  checkedProps.value.tone && "tone",
@@ -308,35 +264,21 @@ var UiMenuItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
308
264
  }, name),
309
265
  state: { internalChecked }
310
266
  });
311
- function text(value) {
312
- if (Array.isArray(value)) return value.map(text).join(" ");
313
- return value === null || value === void 0 || typeof value === "object" ? "" : String(value);
314
- }
315
- function attribute(value) {
316
- if (value === null || value === void 0 || value === false || typeof value === "object" && !Array.isArray(value)) return void 0;
317
- return value === true ? "" : text(value);
318
- }
319
- function concat(...values) {
320
- if (values.some((value) => value === Symbol.for("html-next.invalid-result"))) return Symbol.for("html-next.invalid-result");
321
- if (values.some((value) => value === void 0)) return void 0;
322
- if (values.length === 0 || values.some((value) => typeof value === "object" && value !== null)) return Symbol.for("html-next.invalid-result");
323
- return values.map((value) => value === null ? "" : String(value)).join("");
324
- }
325
267
  return (_ctx, _cache) => {
326
268
  return checkedProps.value.href && checkedProps.value.type === "action" ? withDirectives((openBlock(), createElementBlock("a", mergeProps({
327
269
  key: 0,
328
- "data-component": "ui-menu-item",
270
+ class: "ui-menu-item",
329
271
  role: "menuitem",
330
272
  tabindex: "-1"
331
- }, nativeAttrs(_ctx.$attrs), {
273
+ }, unref(nativeAttrs)(_ctx.$attrs), {
332
274
  "aria-disabled": checkedProps.value.disabled ?? void 0,
333
275
  href: guarded.value,
334
- "data-checked": reflectedProp("checked", "checked", checkedProps.value.checked, void 0, false),
335
- "data-disabled": reflectedProp("disabled", "disabled", checkedProps.value.disabled, void 0, false),
336
- "data-href": reflectedProp("href", "href", checkedProps.value.href, void 0, false),
337
- "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
338
- "data-type": reflectedProp("type", "type", checkedProps.value.type, void 0, false),
339
- "data-value": reflectedProp("value", "value", checkedProps.value.value, void 0, true),
276
+ "data-checked": unref(reflectedProp)("checked", "checked", checkedProps.value.checked, void 0, false),
277
+ "data-disabled": unref(reflectedProp)("disabled", "disabled", checkedProps.value.disabled, void 0, false),
278
+ "data-href": unref(reflectedProp)("href", "href", checkedProps.value.href, void 0, false),
279
+ "data-tone": unref(reflectedProp)("tone", "tone", checkedProps.value.tone, void 0, false),
280
+ "data-type": unref(reflectedProp)("type", "type", checkedProps.value.type, void 0, false),
281
+ "data-value": unref(reflectedProp)("value", "value", checkedProps.value.value, void 0, true),
340
282
  "data-ui-menu-item-state": hostState.value || void 0,
341
283
  ref: "@html-next/root"
342
284
  }), [
@@ -348,27 +290,40 @@ var UiMenuItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
348
290
  values: { ...props }
349
291
  }]]) : withDirectives((openBlock(), createElementBlock("div", mergeProps({
350
292
  key: 1,
351
- "data-component": "ui-menu-item",
293
+ class: "ui-menu-item",
352
294
  tabindex: "-1"
353
- }, nativeAttrs(_ctx.$attrs), {
354
- role: attribute({
295
+ }, unref(nativeAttrs)(_ctx.$attrs), {
296
+ role: unref(attribute)({
355
297
  action: "menuitem",
356
298
  checkbox: "menuitemcheckbox",
357
299
  radio: "menuitemradio"
358
300
  }[checkedProps.value.type]),
359
- "aria-checked": guardedBinding.value,
301
+ "aria-checked": typeof {
302
+ action: null,
303
+ checkbox: internalChecked.value,
304
+ radio: internalChecked.value
305
+ }[checkedProps.value.type] === "boolean" ? String({
306
+ action: null,
307
+ checkbox: internalChecked.value,
308
+ radio: internalChecked.value
309
+ }[checkedProps.value.type]) : unref(attribute)({
310
+ action: null,
311
+ checkbox: internalChecked.value,
312
+ radio: internalChecked.value
313
+ }[checkedProps.value.type]),
360
314
  "aria-disabled": checkedProps.value.disabled ?? void 0,
361
- "data-checked": reflectedProp("checked", "checked", checkedProps.value.checked, void 0, false),
362
- "data-disabled": reflectedProp("disabled", "disabled", checkedProps.value.disabled, void 0, false),
363
- "data-href": reflectedProp("href", "href", checkedProps.value.href, void 0, false),
364
- "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
365
- "data-type": reflectedProp("type", "type", checkedProps.value.type, void 0, false),
366
- "data-value": reflectedProp("value", "value", checkedProps.value.value, void 0, true),
315
+ "data-checked": unref(reflectedProp)("checked", "checked", checkedProps.value.checked, void 0, false),
316
+ "data-disabled": unref(reflectedProp)("disabled", "disabled", checkedProps.value.disabled, void 0, false),
317
+ "data-href": unref(reflectedProp)("href", "href", checkedProps.value.href, void 0, false),
318
+ "data-tone": unref(reflectedProp)("tone", "tone", checkedProps.value.tone, void 0, false),
319
+ "data-type": unref(reflectedProp)("type", "type", checkedProps.value.type, void 0, false),
320
+ "data-value": unref(reflectedProp)("value", "value", checkedProps.value.value, void 0, true),
367
321
  "data-ui-menu-item-state": hostState.value || void 0,
368
322
  ref: "@html-next/root"
369
323
  }), [
370
324
  createElementVNode("span", _hoisted_6, [(checkedProps.value.type === "checkbox" || checkedProps.value.type === "radio") && internalChecked.value ? (openBlock(), createBlock(UiIcon_default, {
371
325
  key: 0,
326
+ class: "ui-icon",
372
327
  name: "check"
373
328
  })) : createCommentVNode("v-if", true)]),
374
329
  createElementVNode("span", _hoisted_7, [renderSlot(_ctx.$slots, "icon")]),
@@ -380,6 +335,6 @@ var UiMenuItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
380
335
  }]]);
381
336
  };
382
337
  }
383
- }), [["__scopeId", "data-v-32e2a3e1"]]);
338
+ }), [["__scopeId", "data-v-50b6e1bc"]]);
384
339
  //#endregion
385
340
  export { UiMenuItem_default as t };
@@ -1,6 +1,6 @@
1
- import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
1
+ import { a as concat, c as decimalMultiply, f as math, i as checkHydratedRoot, l as decimalSubtract, m as number, p as nativeAttrs, r as attribute, s as cycleCheckedComputed, t as _plugin_vue_export_helper_default, u as formatValue, y as useReflectedProp } from "./_plugin-vue_export-helper.js";
2
2
  import { a as vPropValidity, n as checkedProp } from "./props.js";
3
- import { Fragment, computed, createCommentVNode, createElementBlock, defineComponent, getCurrentInstance, mergeProps, normalizeStyle, openBlock, renderList, unref, watchSyncEffect, withDirectives } from "vue";
3
+ import { Fragment, computed, createCommentVNode, createElementBlock, defineComponent, mergeProps, normalizeStyle, openBlock, renderList, unref, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiMeter.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = [
6
6
  "role",
@@ -21,227 +21,6 @@ var _hoisted_1 = [
21
21
  "data-variant",
22
22
  "data-ui-meter-state"
23
23
  ];
24
- function createFormatValue() {
25
- const cache = /* @__PURE__ */ new Map();
26
- function formatterFor(name, locale, options) {
27
- const constructor = Reflect.get(Intl, name);
28
- if (name === "DateTimeFormat" && options.timeZone === void 0) return new constructor(locale, options);
29
- const entries = [];
30
- for (const key of Object.keys(options).sort()) {
31
- const value = options[key];
32
- if (value === void 0) continue;
33
- if (value !== null && typeof value !== "string" && typeof value !== "boolean" && typeof value !== "number" || typeof value === "number" && !Number.isFinite(value)) return new constructor(locale, options);
34
- entries.push([
35
- key,
36
- typeof value,
37
- Object.is(value, -0) ? "-0" : value
38
- ]);
39
- }
40
- const language = locale === void 0 && typeof navigator !== "undefined" ? navigator.language : void 0;
41
- const key = JSON.stringify([
42
- name,
43
- locale,
44
- language,
45
- entries
46
- ]);
47
- if (key.length > 4096) return new constructor(locale, options);
48
- const cached = cache.get(key);
49
- if (cached !== void 0 && cached.constructor === constructor) return cached.value;
50
- const value = new constructor(locale, options);
51
- if (cache.size >= 128 && !cache.has(key)) cache.delete(cache.keys().next().value);
52
- cache.set(key, {
53
- constructor,
54
- value
55
- });
56
- return value;
57
- }
58
- /**
59
- * The native Intl adapter. Self-contained so converters emit this same implementation only when
60
- * authored expressions use formatting, without importing the live parser or interpreter.
61
- * undefined is absence; the shared invalid-result symbol tells each target to retain its output.
62
- */
63
- return function formatValue(value, inputType, operation, ...args) {
64
- const invalid = Symbol.for("html-next.invalid-result");
65
- if (value === invalid || args.includes(invalid)) return invalid;
66
- if (value === void 0 || value === null || args.some((arg) => arg === void 0)) return;
67
- const end = operation === "formatRange" ? args.shift() : void 0;
68
- if (operation === "formatRange" && (end === null || end === void 0)) return;
69
- const format = typeof args[0] === "string" ? args.shift() : Reflect.get({
70
- number: "number",
71
- integer: "number",
72
- percentage: "percent",
73
- date: "date",
74
- time: "time",
75
- datetime: "dateTime",
76
- "datetime-local": "dateTime",
77
- duration: "duration",
78
- list: "list"
79
- }, inputType ?? "");
80
- const options = args.length > 0 ? args.shift() : {};
81
- const locale = args.shift();
82
- if (args.length > 0 || !format || options === null || typeof options !== "object" || Array.isArray(options) || locale !== void 0 && typeof locale !== "string") return invalid;
83
- try {
84
- const durationFields = [
85
- "years",
86
- "months",
87
- "weeks",
88
- "days",
89
- "hours",
90
- "minutes",
91
- "seconds",
92
- "milliseconds",
93
- "microseconds",
94
- "nanoseconds"
95
- ];
96
- const settings = { ...options };
97
- let formatter;
98
- let input = value;
99
- let last = end;
100
- let zoneFree = false;
101
- if ([
102
- "number",
103
- "currency",
104
- "percent",
105
- "unit"
106
- ].includes(format)) {
107
- if (format !== "number") {
108
- if (settings.style !== void 0 && settings.style !== format) return invalid;
109
- settings.style = format;
110
- }
111
- const quantity = (candidate) => {
112
- if (inputType === "percentage" && typeof candidate === "string" && /^-?(?:\d+(?:\.\d+)?|\.\d+)%$/.test(candidate)) return Number(candidate.slice(0, -1)) / 100;
113
- return candidate;
114
- };
115
- input = quantity(input);
116
- last = quantity(last);
117
- if (typeof input !== "number" || !Number.isFinite(input) || operation === "formatRange" && (typeof last !== "number" || !Number.isFinite(last))) return invalid;
118
- formatter = formatterFor("NumberFormat", locale, settings);
119
- } else if ([
120
- "date",
121
- "time",
122
- "dateTime"
123
- ].includes(format)) {
124
- const civil = inputType === "date" || inputType === "time" || inputType === "datetime-local" || typeof input === "string" && !/(?:Z|[+-]\d\d:\d\d)$/.test(input);
125
- zoneFree = civil;
126
- if (civil && (settings.timeZone !== void 0 || settings.timeZoneName !== void 0)) return invalid;
127
- if (format === "date" && (settings.timeStyle !== void 0 || [
128
- "hour",
129
- "minute",
130
- "second",
131
- "dayPeriod",
132
- "fractionalSecondDigits"
133
- ].some((key) => settings[key] !== void 0)) || format === "time" && (settings.dateStyle !== void 0 || [
134
- "year",
135
- "month",
136
- "day",
137
- "weekday",
138
- "era"
139
- ].some((key) => settings[key] !== void 0))) return invalid;
140
- if (settings.dateStyle === void 0 && settings.timeStyle === void 0 && ![
141
- "year",
142
- "month",
143
- "day",
144
- "weekday",
145
- "era",
146
- "hour",
147
- "minute",
148
- "second",
149
- "dayPeriod",
150
- "fractionalSecondDigits"
151
- ].some((key) => settings[key] !== void 0)) {
152
- if (format !== "time") settings.dateStyle = "medium";
153
- if (format !== "date") settings.timeStyle = "medium";
154
- }
155
- if (civil) settings.timeZone = "UTC";
156
- const asDate = (candidate) => {
157
- if (typeof candidate === "number" && Number.isFinite(candidate)) return new Date(candidate);
158
- if (typeof candidate !== "string") return;
159
- let written = candidate.replace(" ", "T");
160
- if (/^\d\d:\d\d(?::\d\d(?:\.\d{1,3})?)?$/.test(written)) {
161
- if (format !== "time") return;
162
- written = "1970-01-01T" + written + "Z";
163
- } else if (/^\d{4,}-\d\d-\d\d$/.test(written)) {
164
- if (format !== "date") return;
165
- written += "T00:00:00Z";
166
- } else if (/^\d{4,}-\d\d-\d\dT\d\d:\d\d(?::\d\d(?:\.\d{1,3})?)?$/.test(written)) written += "Z";
167
- else if (!/^\d{4,}-\d\d-\d\dT\d\d:\d\d(?::\d\d(?:\.\d{1,3})?)?(?:Z|[+-]\d\d:\d\d)$/.test(written)) return;
168
- const date = new Date(written.replace(/^(\d{5,})-/, (_match, year) => "+" + year.padStart(6, "0") + "-"));
169
- if (!Number.isFinite(date.getTime())) return;
170
- const match = /^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d))?/.exec(written);
171
- if (!match) return;
172
- const probe = /* @__PURE__ */ new Date(0);
173
- probe.setUTCFullYear(Number(match[1]), Number(match[2]) - 1, Number(match[3]));
174
- if (Number(match[1]) === 0 || probe.getUTCMonth() !== Number(match[2]) - 1 || probe.getUTCDate() !== Number(match[3]) || Number(match[4]) > 23 || Number(match[5]) > 59 || Number(match[6] ?? 0) > 59) return;
175
- return date;
176
- };
177
- input = asDate(input);
178
- last = operation === "formatRange" ? asDate(last) : void 0;
179
- if (!input || operation === "formatRange" && !last) return invalid;
180
- formatter = formatterFor("DateTimeFormat", locale, settings);
181
- } else {
182
- if (operation === "formatRange") return invalid;
183
- if (format === "relativeTime") {
184
- if (typeof input !== "number" || !Number.isFinite(input) || typeof settings.unit !== "string") return invalid;
185
- const unit = settings.unit;
186
- delete settings.unit;
187
- formatter = formatterFor("RelativeTimeFormat", locale, settings);
188
- return operation === "formatParts" ? formatter.formatToParts(input, unit) : formatter.format(input, unit);
189
- }
190
- if (format === "list") {
191
- if (!Array.isArray(input) || input.some((item) => typeof item !== "string")) return invalid;
192
- formatter = formatterFor("ListFormat", locale, settings);
193
- } else if (format === "duration") {
194
- if (inputType === "duration" && typeof input === "string") {
195
- const match = /^(-?(?:\d+(?:\.\d+)?|\.\d+))(ms|s)$/.exec(input);
196
- if (!match) return invalid;
197
- const milliseconds = Number(match[1]) * (match[2] === "s" ? 1e3 : 1);
198
- if (!Number.isFinite(milliseconds)) return invalid;
199
- input = {
200
- hours: Math.trunc(milliseconds / 36e5),
201
- minutes: Math.trunc(milliseconds % 36e5 / 6e4),
202
- seconds: Math.trunc(milliseconds % 6e4 / 1e3),
203
- milliseconds: Math.trunc(milliseconds % 1e3),
204
- microseconds: Math.trunc((milliseconds - Math.trunc(milliseconds)) * 1e3),
205
- nanoseconds: Math.round((milliseconds * 1e3 - Math.trunc(milliseconds * 1e3)) * 1e3)
206
- };
207
- }
208
- if (input === null || typeof input !== "object" || Array.isArray(input) || Object.keys(input).some((key) => !durationFields.includes(key))) return invalid;
209
- if (!Reflect.get(Intl, "DurationFormat")) return invalid;
210
- formatter = formatterFor("DurationFormat", locale, settings);
211
- } else if (format === "displayName") {
212
- if (typeof input !== "string" || operation === "formatParts") return invalid;
213
- return formatterFor("DisplayNames", locale, settings).of(input);
214
- } else if (format === "plural") {
215
- if (typeof input !== "number" || !Number.isFinite(input) || operation === "formatParts") return invalid;
216
- const forms = settings.forms;
217
- if (!forms || typeof forms !== "object" || Array.isArray(forms) || typeof forms.other !== "string" || Object.entries(forms).some(([key, entry]) => ![
218
- "zero",
219
- "one",
220
- "two",
221
- "few",
222
- "many",
223
- "other"
224
- ].includes(key) || typeof entry !== "string")) return invalid;
225
- delete settings.forms;
226
- const message = forms[formatterFor("PluralRules", locale, settings).select(input)] ?? forms.other;
227
- const numberOptions = { ...settings };
228
- delete numberOptions.type;
229
- delete numberOptions.forms;
230
- const number = formatterFor("NumberFormat", locale, numberOptions).format(input);
231
- return message.replace(/#/g, () => number);
232
- }
233
- }
234
- if (!zoneFree && operation !== "formatParts") return operation === "formatRange" ? formatter.formatRange(input, last) : formatter.format(input);
235
- const parts = operation === "formatRange" ? formatter.formatRangeToParts(input, last) : formatter.formatToParts(input);
236
- if (zoneFree && operation !== "formatParts" && !parts.some((part) => part.type === "timeZoneName")) return operation === "formatRange" ? formatter.formatRange(input, last) : formatter.format(input);
237
- const visible = zoneFree ? parts.filter((part, index) => part.type !== "timeZoneName" && !(part.type === "literal" && /^[\s(),]*$/.test(part.value) && (parts[index - 1]?.type === "timeZoneName" || parts[index + 1]?.type === "timeZoneName"))) : parts;
238
- return operation === "formatParts" ? visible : visible.map((part) => part.value).join("");
239
- } catch {
240
- return invalid;
241
- }
242
- };
243
- }
244
- var moduleFormatValue = createFormatValue();
245
24
  //#endregion
246
25
  //#region .build/vue/UiMeter.vue
247
26
  var UiMeter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -286,7 +65,6 @@ var UiMeter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
286
65
  }
287
66
  },
288
67
  setup(__props) {
289
- const formatValue = moduleFormatValue;
290
68
  const propValidityContract = { props: {
291
69
  label: {
292
70
  type: {
@@ -479,42 +257,7 @@ var UiMeter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
479
257
  watchSyncEffect(() => {
480
258
  checkedProps.value;
481
259
  });
482
- function nativeAttrs(attrs) {
483
- const names = Object.keys(attrs);
484
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs;
485
- return Object.fromEntries(names.map((name) => [Object.hasOwn(Object.prototype, name) ? name === "__proto__" ? "__Proto__" : name[0].toUpperCase() + name.slice(1) : name, attrs[name]]));
486
- }
487
- const componentInstance = getCurrentInstance();
488
- function reflectedProp(name, kebab, value, fallback, bound, separator) {
489
- const incoming = componentInstance?.vnode.props;
490
- if (!bound && (incoming === null || incoming === void 0 || !Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab))) return fallback;
491
- if (value === null || value === void 0) return void 0;
492
- return Array.isArray(value) && separator !== void 0 ? value.join(separator) : typeof value === "object" ? JSON.stringify(value) : String(value);
493
- }
494
- const hydrationInstance = getCurrentInstance();
495
- function cycleCheckedComputed(evaluate) {
496
- const value = computed(evaluate);
497
- let reading = false;
498
- return new Proxy(value, { get(target, property) {
499
- if (property !== "value") return Reflect.get(target, property);
500
- if (reading) {
501
- const message = "A reactive computed value depends on itself.";
502
- throw Object.assign(/* @__PURE__ */ new Error(`HR006: ${message}`), {
503
- name: "HtmlDiagnosticError",
504
- diagnostic: Object.freeze({
505
- code: "HR006",
506
- message
507
- })
508
- });
509
- }
510
- reading = true;
511
- try {
512
- return target.value;
513
- } finally {
514
- reading = false;
515
- }
516
- } });
517
- }
260
+ const reflectedProp = useReflectedProp();
518
261
  let amountPrevious = null;
519
262
  const amount = cycleCheckedComputed(() => {
520
263
  const next = math("clamp", [
@@ -532,7 +275,7 @@ var UiMeter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
532
275
  let percentPrevious = null;
533
276
  const percent = cycleCheckedComputed(() => {
534
277
  const next = ((objectValue, indexValue) => objectValue === Symbol.for("html-next.invalid-result") || indexValue === Symbol.for("html-next.invalid-result") ? Symbol.for("html-next.invalid-result") : objectValue[indexValue])({
535
- true: number(number(amount.value) === void 0 || number(checkedProps.value.max) === void 0 ? void 0 : number(amount.value) / number(checkedProps.value.max)) === void 0 || number(100) === void 0 ? void 0 : number(number(amount.value) === void 0 || number(checkedProps.value.max) === void 0 ? void 0 : number(amount.value) / number(checkedProps.value.max)) * number(100),
278
+ true: number(number(amount.value) === void 0 || number(checkedProps.value.max) === void 0 ? void 0 : number(amount.value) / number(checkedProps.value.max)) === void 0 || number(100) === void 0 ? void 0 : decimalMultiply(number(number(amount.value) === void 0 || number(checkedProps.value.max) === void 0 ? void 0 : number(amount.value) / number(checkedProps.value.max)), number(100)),
536
279
  false: 0
537
280
  }, concat(number(checkedProps.value.max) === void 0 || number(0) === void 0 ? void 0 : number(checkedProps.value.max) > number(0)));
538
281
  if (next === Symbol.for("html-next.invalid-result")) return percentPrevious;
@@ -723,14 +466,7 @@ var UiMeter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
723
466
  if (candidate === Symbol.for("html-next.invalid-result")) return guardedBinding7Previous;
724
467
  return guardedBinding7Previous = candidate;
725
468
  });
726
- const hydrationNode = hydrationInstance?.vnode.el;
727
- if (typeof window !== "undefined" && hydrationNode != null && (!(hydrationNode instanceof Element) || hydrationNode.localName !== "span")) throw Object.assign(/* @__PURE__ */ new Error("HR005: Server markup for <ui-meter> has an incompatible root."), {
728
- name: "HtmlDiagnosticError",
729
- diagnostic: Object.freeze({
730
- code: "HR005",
731
- message: "Server markup for <ui-meter> has an incompatible root."
732
- })
733
- });
469
+ checkHydratedRoot("span", "ui-meter");
734
470
  /** The values the styles' :host-state() rules test. */
735
471
  const hostState = computed(() => [
736
472
  checkedProps.value.size && "size",
@@ -740,78 +476,8 @@ var UiMeter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
740
476
  checkedProps.value.variant && "variant",
741
477
  checkedProps.value.variant != null && `variant=${encodeURIComponent(checkedProps.value.variant)}`
742
478
  ].filter(Boolean).join(" "));
743
- function text(value) {
744
- if (Array.isArray(value)) return value.map(text).join(" ");
745
- return value === null || value === void 0 || typeof value === "object" ? "" : String(value);
746
- }
747
- function attribute(value) {
748
- if (value === null || value === void 0 || value === false || typeof value === "object" && !Array.isArray(value)) return void 0;
749
- return value === true ? "" : text(value);
750
- }
751
- function number(value) {
752
- return typeof value === "number" && !Number.isNaN(value) ? value : void 0;
753
- }
754
- function concat(...values) {
755
- if (values.some((value) => value === Symbol.for("html-next.invalid-result"))) return Symbol.for("html-next.invalid-result");
756
- if (values.some((value) => value === void 0)) return void 0;
757
- if (values.length === 0 || values.some((value) => typeof value === "object" && value !== null)) return Symbol.for("html-next.invalid-result");
758
- return values.map((value) => value === null ? "" : String(value)).join("");
759
- }
760
- function math(fn, kinds, values) {
761
- if (values.includes(Symbol.for("html-next.invalid-result"))) return Symbol.for("html-next.invalid-result");
762
- if (values.some((value) => value === void 0 || value === null)) return void 0;
763
- if ((fn === "abs" || fn === "negate") && values.length !== 1 || fn === "round" && (values.length < 1 || values.length > 2) || (fn === "min" || fn === "max") && values.length === 0 || fn === "clamp" && values.length !== 3) return Symbol.for("html-next.invalid-result");
764
- const kind = kinds[0];
765
- const dimensional = kind === "length" || kind === "percentage" || kind === "duration";
766
- if (!dimensional && kind !== "number") return Symbol.for("html-next.invalid-result");
767
- let unit;
768
- const numbers = [];
769
- for (let index = 0; index < values.length; index++) {
770
- if (kinds[index] !== kind) return Symbol.for("html-next.invalid-result");
771
- const value = values[index];
772
- if (!dimensional) {
773
- if (typeof value !== "number" || !Number.isFinite(value)) return Symbol.for("html-next.invalid-result");
774
- numbers.push(value);
775
- continue;
776
- }
777
- if (typeof value !== "string") return Symbol.for("html-next.invalid-result");
778
- const match = /^(-?(?:\d+(?:\.\d+)?|\.\d+))(vmin|vmax|rem|px|em|vw|vh|ch|ex|cm|mm|in|pt|pc|q|ms|s|%)$/.exec(value);
779
- if (match === null || unit !== void 0 && match[2] !== unit) return Symbol.for("html-next.invalid-result");
780
- unit = match[2];
781
- if ((unit === "%" ? "percentage" : unit === "ms" || unit === "s" ? "duration" : "length") !== kind) return Symbol.for("html-next.invalid-result");
782
- const number = Number(match[1]);
783
- if (!Number.isFinite(number)) return Symbol.for("html-next.invalid-result");
784
- numbers.push(number);
785
- }
786
- let result;
787
- switch (fn) {
788
- case "abs":
789
- result = Math.abs(numbers[0]);
790
- break;
791
- case "negate":
792
- result = -numbers[0];
793
- break;
794
- case "round": {
795
- const step = Math.abs(numbers[1] ?? 1);
796
- if (step === 0) return Symbol.for("html-next.invalid-result");
797
- result = Math.round(numbers[0] / step) * step;
798
- break;
799
- }
800
- case "min":
801
- result = Math.min(...numbers);
802
- break;
803
- case "max":
804
- result = Math.max(...numbers);
805
- break;
806
- case "clamp":
807
- result = Math.max(numbers[0], Math.min(numbers[1], numbers[2]));
808
- break;
809
- default: return Symbol.for("html-next.invalid-result");
810
- }
811
- return !Number.isFinite(result) ? Symbol.for("html-next.invalid-result") : unit === void 0 ? result : String(result) + unit;
812
- }
813
479
  return (_ctx, _cache) => {
814
- return withDirectives((openBlock(), createElementBlock("span", mergeProps({ "data-component": "ui-meter" }, nativeAttrs(_ctx.$attrs), {
480
+ return withDirectives((openBlock(), createElementBlock("span", mergeProps({ class: "ui-meter" }, unref(nativeAttrs)(_ctx.$attrs), {
815
481
  role: guarded.value,
816
482
  "aria-valuemin": guardedBinding.value,
817
483
  "aria-valuemax": guardedBinding2.value,
@@ -819,22 +485,22 @@ var UiMeter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
819
485
  "aria-valuetext": guardedBinding4.value,
820
486
  "aria-label": guardedBinding5.value,
821
487
  "data-ui-meter-segments": guardedBinding6.value,
822
- "data-label": reflectedProp("label", "label", checkedProps.value.label, void 0, false),
823
- "data-max": reflectedProp("max", "max", checkedProps.value.max, void 0, false),
824
- "data-parts": reflectedProp("parts", "parts", checkedProps.value.parts, void 0, false),
825
- "data-segments": reflectedProp("segments", "segments", checkedProps.value.segments, void 0, false),
826
- "data-size": reflectedProp("size", "size", checkedProps.value.size, void 0, false),
827
- "data-tone": reflectedProp("tone", "tone", checkedProps.value.tone, void 0, false),
828
- "data-value": reflectedProp("value", "value", checkedProps.value.value, void 0, false),
829
- "data-value-text": reflectedProp("valueText", "value-text", checkedProps.value.valueText, void 0, false),
830
- "data-variant": reflectedProp("variant", "variant", checkedProps.value.variant, void 0, false),
488
+ "data-label": unref(reflectedProp)("label", "label", checkedProps.value.label, void 0, false),
489
+ "data-max": unref(reflectedProp)("max", "max", checkedProps.value.max, void 0, false),
490
+ "data-parts": unref(reflectedProp)("parts", "parts", checkedProps.value.parts, void 0, false),
491
+ "data-segments": unref(reflectedProp)("segments", "segments", checkedProps.value.segments, void 0, false),
492
+ "data-size": unref(reflectedProp)("size", "size", checkedProps.value.size, void 0, false),
493
+ "data-tone": unref(reflectedProp)("tone", "tone", checkedProps.value.tone, void 0, false),
494
+ "data-value": unref(reflectedProp)("value", "value", checkedProps.value.value, void 0, false),
495
+ "data-value-text": unref(reflectedProp)("valueText", "value-text", checkedProps.value.valueText, void 0, false),
496
+ "data-variant": unref(reflectedProp)("variant", "variant", checkedProps.value.variant, void 0, false),
831
497
  "data-ui-meter-state": hostState.value || void 0
832
498
  }), [checkedProps.value.variant === "progress" ? (openBlock(), createElementBlock("span", {
833
499
  key: 0,
834
500
  class: "fill",
835
501
  style: normalizeStyle({ "inline-size": guardedBinding7.value })
836
502
  }, null, 4)) : createCommentVNode("v-if", true), checkedProps.value.variant === "distribution" ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(checkedProps.value.parts, (part, index) => {
837
- return openBlock(), createElementBlock(Fragment, { key: index }, [part.value > 0 && part.value - part.value === 0 ? (openBlock(), createElementBlock("span", {
503
+ return openBlock(), createElementBlock(Fragment, { key: index }, [part.value > 0 && unref(decimalSubtract)(part.value, part.value) === 0 ? (openBlock(), createElementBlock("span", {
838
504
  key: 0,
839
505
  class: "part",
840
506
  "aria-hidden": "true",
@@ -849,6 +515,6 @@ var UiMeter_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
849
515
  }]]);
850
516
  };
851
517
  }
852
- }), [["__scopeId", "data-v-c308c037"]]);
518
+ }), [["__scopeId", "data-v-4b7c5237"]]);
853
519
  //#endregion
854
520
  export { UiMeter_default as t };