@threadlabs/looma 0.10.0 → 0.10.2

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 (247) hide show
  1. package/components/ui-editor-toolbar/ui-editor-toolbar.html +70 -20
  2. package/components/ui-editor-toolbar/ui-editor-toolbar.js +24 -0
  3. package/dist/index.js +20 -19
  4. package/package.json +2 -2
  5. package/styles/ui-affordance-scope.css +1 -1
  6. package/styles/ui-avatar-group.css +1 -1
  7. package/styles/ui-avatar.css +1 -1
  8. package/styles/ui-badge.css +1 -1
  9. package/styles/ui-button.css +1 -1
  10. package/styles/ui-callout.css +1 -1
  11. package/styles/ui-checkbox.css +1 -1
  12. package/styles/ui-cluster.css +1 -1
  13. package/styles/ui-combobox.css +1 -1
  14. package/styles/ui-container.css +1 -1
  15. package/styles/ui-context-menu.css +1 -1
  16. package/styles/ui-dialog.css +1 -1
  17. package/styles/ui-disclosure.css +1 -1
  18. package/styles/ui-editable.css +1 -1
  19. package/styles/ui-editor-insert-table-grid.css +1 -1
  20. package/styles/ui-editor-mention-menu.css +1 -1
  21. package/styles/ui-editor-slash-menu.css +1 -1
  22. package/styles/ui-editor-table-context-menu.css +1 -1
  23. package/styles/ui-editor-table-overlay.css +1 -1
  24. package/styles/ui-editor-table-toolbar.css +1 -1
  25. package/styles/ui-editor-toolbar.css +73 -19
  26. package/styles/ui-floating-action-button.css +1 -1
  27. package/styles/ui-form-field.css +1 -1
  28. package/styles/ui-grid.css +1 -1
  29. package/styles/ui-icon-button.css +1 -1
  30. package/styles/ui-icon.css +1 -1
  31. package/styles/ui-input.css +1 -1
  32. package/styles/ui-menu-item.css +1 -1
  33. package/styles/ui-menu.css +1 -1
  34. package/styles/ui-popover.css +1 -1
  35. package/styles/ui-radio-group.css +1 -1
  36. package/styles/ui-radio.css +1 -1
  37. package/styles/ui-reel.css +1 -1
  38. package/styles/ui-search-result-row.css +1 -1
  39. package/styles/ui-search-shell.css +1 -1
  40. package/styles/ui-select.css +1 -1
  41. package/styles/ui-separator.css +1 -1
  42. package/styles/ui-sidebar.css +1 -1
  43. package/styles/ui-stack.css +1 -1
  44. package/styles/ui-switch.css +1 -1
  45. package/styles/ui-switcher.css +1 -1
  46. package/styles/ui-tabs.css +1 -1
  47. package/styles/ui-textarea.css +1 -1
  48. package/styles/ui-toast-region.css +1 -1
  49. package/styles/ui-tooltip.css +1 -1
  50. package/styles/ui-top-bar.css +1 -1
  51. package/styles/ui-tree-item.css +1 -1
  52. package/styles/ui-tree.css +1 -1
  53. package/vanilla/UiAffordanceScope.d.ts +1 -1
  54. package/vanilla/UiAffordanceScope.js +1 -1
  55. package/vanilla/UiAvatar.d.ts +1 -1
  56. package/vanilla/UiAvatar.js +1 -1
  57. package/vanilla/UiAvatarGroup.d.ts +1 -1
  58. package/vanilla/UiAvatarGroup.js +1 -1
  59. package/vanilla/UiBadge.d.ts +1 -1
  60. package/vanilla/UiBadge.js +1 -1
  61. package/vanilla/UiButton.d.ts +1 -1
  62. package/vanilla/UiButton.js +1 -1
  63. package/vanilla/UiCallout.d.ts +1 -1
  64. package/vanilla/UiCallout.js +1 -1
  65. package/vanilla/UiCheckbox.d.ts +1 -1
  66. package/vanilla/UiCheckbox.js +1 -1
  67. package/vanilla/UiCluster.d.ts +1 -1
  68. package/vanilla/UiCluster.js +1 -1
  69. package/vanilla/UiCombobox.d.ts +1 -1
  70. package/vanilla/UiCombobox.js +1 -1
  71. package/vanilla/UiContainer.d.ts +1 -1
  72. package/vanilla/UiContainer.js +1 -1
  73. package/vanilla/UiContextMenu.d.ts +1 -1
  74. package/vanilla/UiContextMenu.js +1 -1
  75. package/vanilla/UiDialog.d.ts +1 -1
  76. package/vanilla/UiDialog.js +1 -1
  77. package/vanilla/UiDisclosure.d.ts +1 -1
  78. package/vanilla/UiDisclosure.js +1 -1
  79. package/vanilla/UiEditable.d.ts +1 -1
  80. package/vanilla/UiEditable.js +1 -1
  81. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  82. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  83. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  84. package/vanilla/UiEditorMentionMenu.js +1 -1
  85. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  86. package/vanilla/UiEditorSlashMenu.js +1 -1
  87. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  88. package/vanilla/UiEditorTableContextMenu.js +1 -1
  89. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  90. package/vanilla/UiEditorTableOverlay.js +1 -1
  91. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  92. package/vanilla/UiEditorTableToolbar.js +1 -1
  93. package/vanilla/UiEditorToolbar.d.ts +1 -1
  94. package/vanilla/UiEditorToolbar.js +12 -7
  95. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  96. package/vanilla/UiFloatingActionButton.js +1 -1
  97. package/vanilla/UiFormField.d.ts +1 -1
  98. package/vanilla/UiFormField.js +1 -1
  99. package/vanilla/UiGrid.d.ts +1 -1
  100. package/vanilla/UiGrid.js +1 -1
  101. package/vanilla/UiIcon.d.ts +1 -1
  102. package/vanilla/UiIcon.js +1 -1
  103. package/vanilla/UiIconButton.d.ts +1 -1
  104. package/vanilla/UiIconButton.js +1 -1
  105. package/vanilla/UiInput.d.ts +1 -1
  106. package/vanilla/UiInput.js +1 -1
  107. package/vanilla/UiMenu.d.ts +1 -1
  108. package/vanilla/UiMenu.js +1 -1
  109. package/vanilla/UiMenuItem.d.ts +1 -1
  110. package/vanilla/UiMenuItem.js +1 -1
  111. package/vanilla/UiPopover.d.ts +1 -1
  112. package/vanilla/UiPopover.js +1 -1
  113. package/vanilla/UiRadio.d.ts +1 -1
  114. package/vanilla/UiRadio.js +1 -1
  115. package/vanilla/UiRadioGroup.d.ts +1 -1
  116. package/vanilla/UiRadioGroup.js +1 -1
  117. package/vanilla/UiReel.d.ts +1 -1
  118. package/vanilla/UiReel.js +1 -1
  119. package/vanilla/UiSearchResultRow.d.ts +1 -1
  120. package/vanilla/UiSearchResultRow.js +1 -1
  121. package/vanilla/UiSearchShell.d.ts +1 -1
  122. package/vanilla/UiSearchShell.js +1 -1
  123. package/vanilla/UiSelect.d.ts +1 -1
  124. package/vanilla/UiSelect.js +1 -1
  125. package/vanilla/UiSeparator.d.ts +1 -1
  126. package/vanilla/UiSeparator.js +1 -1
  127. package/vanilla/UiSidebar.d.ts +1 -1
  128. package/vanilla/UiSidebar.js +1 -1
  129. package/vanilla/UiStack.d.ts +1 -1
  130. package/vanilla/UiStack.js +1 -1
  131. package/vanilla/UiSwitch.d.ts +1 -1
  132. package/vanilla/UiSwitch.js +1 -1
  133. package/vanilla/UiSwitcher.d.ts +1 -1
  134. package/vanilla/UiSwitcher.js +1 -1
  135. package/vanilla/UiTabs.d.ts +1 -1
  136. package/vanilla/UiTabs.js +1 -1
  137. package/vanilla/UiTextarea.d.ts +1 -1
  138. package/vanilla/UiTextarea.js +1 -1
  139. package/vanilla/UiToastRegion.d.ts +1 -1
  140. package/vanilla/UiToastRegion.js +1 -1
  141. package/vanilla/UiTooltip.d.ts +1 -1
  142. package/vanilla/UiTooltip.js +1 -1
  143. package/vanilla/UiTopBar.d.ts +1 -1
  144. package/vanilla/UiTopBar.js +1 -1
  145. package/vanilla/UiTree.d.ts +1 -1
  146. package/vanilla/UiTree.js +1 -1
  147. package/vanilla/UiTreeItem.d.ts +1 -1
  148. package/vanilla/UiTreeItem.js +1 -1
  149. package/vue/UiAffordanceScope.vue +1 -1
  150. package/vue/UiAvatar.vue +1 -1
  151. package/vue/UiAvatarGroup.vue +1 -1
  152. package/vue/UiBadge.vue +1 -1
  153. package/vue/UiButton.vue +1 -1
  154. package/vue/UiCallout.vue +1 -1
  155. package/vue/UiCheckbox.vue +1 -1
  156. package/vue/UiCluster.vue +1 -1
  157. package/vue/UiCombobox.vue +1 -1
  158. package/vue/UiContainer.vue +1 -1
  159. package/vue/UiContextMenu.vue +1 -1
  160. package/vue/UiDialog.vue +1 -1
  161. package/vue/UiDisclosure.vue +1 -1
  162. package/vue/UiEditable.vue +1 -1
  163. package/vue/UiEditorInsertTableGrid.vue +1 -1
  164. package/vue/UiEditorMentionMenu.vue +1 -1
  165. package/vue/UiEditorSlashMenu.vue +1 -1
  166. package/vue/UiEditorTableContextMenu.vue +1 -1
  167. package/vue/UiEditorTableOverlay.vue +1 -1
  168. package/vue/UiEditorTableToolbar.vue +1 -1
  169. package/vue/UiEditorToolbar.vue +91 -21
  170. package/vue/UiFloatingActionButton.vue +1 -1
  171. package/vue/UiFormField.vue +1 -1
  172. package/vue/UiGrid.vue +1 -1
  173. package/vue/UiIcon.vue +1 -1
  174. package/vue/UiIconButton.vue +1 -1
  175. package/vue/UiInput.vue +1 -1
  176. package/vue/UiMenu.vue +1 -1
  177. package/vue/UiMenuItem.vue +1 -1
  178. package/vue/UiPopover.vue +1 -1
  179. package/vue/UiRadio.vue +1 -1
  180. package/vue/UiRadioGroup.vue +1 -1
  181. package/vue/UiReel.vue +1 -1
  182. package/vue/UiSearchResultRow.vue +1 -1
  183. package/vue/UiSearchShell.vue +1 -1
  184. package/vue/UiSelect.vue +1 -1
  185. package/vue/UiSeparator.vue +1 -1
  186. package/vue/UiSidebar.vue +1 -1
  187. package/vue/UiStack.vue +1 -1
  188. package/vue/UiSwitch.vue +1 -1
  189. package/vue/UiSwitcher.vue +1 -1
  190. package/vue/UiTabs.vue +1 -1
  191. package/vue/UiTextarea.vue +1 -1
  192. package/vue/UiToastRegion.vue +1 -1
  193. package/vue/UiTooltip.vue +1 -1
  194. package/vue/UiTopBar.vue +1 -1
  195. package/vue/UiTree.vue +1 -1
  196. package/vue/UiTreeItem.vue +1 -1
  197. package/vue/chunks/UiAffordanceScope.js +1 -1
  198. package/vue/chunks/UiAvatar.js +1 -1
  199. package/vue/chunks/UiAvatarGroup.js +1 -1
  200. package/vue/chunks/UiBadge.js +1 -1
  201. package/vue/chunks/UiButton.js +1 -1
  202. package/vue/chunks/UiCallout.js +1 -1
  203. package/vue/chunks/UiCheckbox.js +1 -1
  204. package/vue/chunks/UiCluster.js +1 -1
  205. package/vue/chunks/UiCombobox.js +1 -1
  206. package/vue/chunks/UiContainer.js +1 -1
  207. package/vue/chunks/UiContextMenu.js +1 -1
  208. package/vue/chunks/UiDialog.js +1 -1
  209. package/vue/chunks/UiDisclosure.js +1 -1
  210. package/vue/chunks/UiEditable.js +1 -1
  211. package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
  212. package/vue/chunks/UiEditorMentionMenu.js +1 -1
  213. package/vue/chunks/UiEditorSlashMenu.js +1 -1
  214. package/vue/chunks/UiEditorTableContextMenu.js +1 -1
  215. package/vue/chunks/UiEditorTableOverlay.js +1 -1
  216. package/vue/chunks/UiEditorTableToolbar.js +1 -1
  217. package/vue/chunks/UiEditorToolbar.js +33 -4
  218. package/vue/chunks/UiFloatingActionButton.js +1 -1
  219. package/vue/chunks/UiFormField.js +1 -1
  220. package/vue/chunks/UiGrid.js +1 -1
  221. package/vue/chunks/UiIcon.js +1 -1
  222. package/vue/chunks/UiIconButton.js +1 -1
  223. package/vue/chunks/UiInput.js +1 -1
  224. package/vue/chunks/UiMenu.js +1 -1
  225. package/vue/chunks/UiMenuItem.js +1 -1
  226. package/vue/chunks/UiPopover.js +1 -1
  227. package/vue/chunks/UiRadio.js +1 -1
  228. package/vue/chunks/UiRadioGroup.js +1 -1
  229. package/vue/chunks/UiReel.js +1 -1
  230. package/vue/chunks/UiSearchResultRow.js +1 -1
  231. package/vue/chunks/UiSearchShell.js +1 -1
  232. package/vue/chunks/UiSelect.js +1 -1
  233. package/vue/chunks/UiSeparator.js +1 -1
  234. package/vue/chunks/UiSidebar.js +1 -1
  235. package/vue/chunks/UiStack.js +1 -1
  236. package/vue/chunks/UiSwitch.js +1 -1
  237. package/vue/chunks/UiSwitcher.js +1 -1
  238. package/vue/chunks/UiTabs.js +1 -1
  239. package/vue/chunks/UiTextarea.js +1 -1
  240. package/vue/chunks/UiToastRegion.js +1 -1
  241. package/vue/chunks/UiTooltip.js +1 -1
  242. package/vue/chunks/UiTopBar.js +1 -1
  243. package/vue/chunks/UiTree.js +1 -1
  244. package/vue/chunks/UiTreeItem.js +1 -1
  245. package/vue/chunks/host.js +8 -2
  246. package/vue/components.css +769 -725
  247. package/vue/host.ts +11 -2
@@ -83,6 +83,6 @@ var UiButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
83
83
  ]);
84
84
  };
85
85
  }
86
- }), [["__scopeId", "data-v-1cd0b390"]]);
86
+ }), [["__scopeId", "data-v-0c121308"]]);
87
87
  //#endregion
88
88
  export { UiButton_default as t };
@@ -103,6 +103,6 @@ var UiCallout_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
103
103
  ]), createElementVNode("div", _hoisted_8, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
104
104
  };
105
105
  }
106
- }), [["__scopeId", "data-v-c6e92976"]]);
106
+ }), [["__scopeId", "data-v-2fd6ab30"]]);
107
107
  //#endregion
108
108
  export { UiCallout_default as t };
@@ -84,6 +84,6 @@ var UiCheckbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
84
84
  }, null, 40, _hoisted_2), createElementVNode("span", _hoisted_3, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
85
85
  };
86
86
  }
87
- }), [["__scopeId", "data-v-44d93832"]]);
87
+ }), [["__scopeId", "data-v-9c9d1eaa"]]);
88
88
  //#endregion
89
89
  export { UiCheckbox_default as t };
@@ -19,6 +19,6 @@ var UiCluster_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
19
19
  return openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-cluster" }, _ctx.$attrs, { "data-ui-cluster-state": hostState.value || void 0 }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
20
20
  };
21
21
  }
22
- }), [["__scopeId", "data-v-9a0304f1"]]);
22
+ }), [["__scopeId", "data-v-c4f9b76d"]]);
23
23
  //#endregion
24
24
  export { UiCluster_default as t };
@@ -479,6 +479,6 @@ var UiCombobox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
479
479
  ], 16, _hoisted_1);
480
480
  };
481
481
  }
482
- }), [["__scopeId", "data-v-cd33b9b7"]]);
482
+ }), [["__scopeId", "data-v-0bd7ecc4"]]);
483
483
  //#endregion
484
484
  export { UiCombobox_default as t };
@@ -19,6 +19,6 @@ var UiContainer_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
19
19
  return openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-container" }, _ctx.$attrs, { "data-ui-container-state": hostState.value || void 0 }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
20
20
  };
21
21
  }
22
- }), [["__scopeId", "data-v-89d8ad17"]]);
22
+ }), [["__scopeId", "data-v-b1605eab"]]);
23
23
  //#endregion
24
24
  export { UiContainer_default as t };
@@ -61,6 +61,6 @@ var UiContextMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
61
61
  }), [createElementVNode("div", _hoisted_1, [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 512)], 16);
62
62
  };
63
63
  }
64
- }), [["__scopeId", "data-v-607c2847"]]);
64
+ }), [["__scopeId", "data-v-06309584"]]);
65
65
  //#endregion
66
66
  export { UiContextMenu_default as t };
@@ -75,6 +75,6 @@ var UiDialog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
75
75
  ], 16, _hoisted_1);
76
76
  };
77
77
  }
78
- }), [["__scopeId", "data-v-cac753c9"]]);
78
+ }), [["__scopeId", "data-v-d43d3a22"]]);
79
79
  //#endregion
80
80
  export { UiDialog_default as t };
@@ -86,6 +86,6 @@ var UiDisclosure_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
86
86
  }, [createElementVNode("div", _hoisted_4, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 8, _hoisted_3)], 16, _hoisted_1);
87
87
  };
88
88
  }
89
- }), [["__scopeId", "data-v-20cbcb83"]]);
89
+ }), [["__scopeId", "data-v-54a22a7e"]]);
90
90
  //#endregion
91
91
  export { UiDisclosure_default as t };
@@ -120,6 +120,6 @@ var UiEditable_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
120
120
  }, "Cancel", -1)])])) : createCommentVNode("v-if", true)], 16, _hoisted_1);
121
121
  };
122
122
  }
123
- }), [["__scopeId", "data-v-c1b523c6"]]);
123
+ }), [["__scopeId", "data-v-8fe1c571"]]);
124
124
  //#endregion
125
125
  export { UiEditable_default as t };
@@ -104,6 +104,6 @@ var UiEditorInsertTableGrid_default = /*#__PURE__*/ _plugin_vue_export_helper_de
104
104
  ], 16, _hoisted_1);
105
105
  };
106
106
  }
107
- }), [["__scopeId", "data-v-7b1e476f"]]);
107
+ }), [["__scopeId", "data-v-fd963634"]]);
108
108
  //#endregion
109
109
  export { UiEditorInsertTableGrid_default as t };
@@ -101,6 +101,6 @@ var UiEditorMentionMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_defaul
101
101
  ], 16, _hoisted_1);
102
102
  };
103
103
  }
104
- }), [["__scopeId", "data-v-78edc5f6"]]);
104
+ }), [["__scopeId", "data-v-9c76e661"]]);
105
105
  //#endregion
106
106
  export { UiEditorMentionMenu_default as t };
@@ -95,6 +95,6 @@ var UiEditorSlashMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
95
95
  ], 16, _hoisted_1);
96
96
  };
97
97
  }
98
- }), [["__scopeId", "data-v-e7d0f904"]]);
98
+ }), [["__scopeId", "data-v-afcbaee6"]]);
99
99
  //#endregion
100
100
  export { UiEditorSlashMenu_default as t };
@@ -93,6 +93,6 @@ var UiEditorTableContextMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_d
93
93
  }), 128))], 16, _hoisted_1);
94
94
  };
95
95
  }
96
- }), [["__scopeId", "data-v-2d9eb67c"]]);
96
+ }), [["__scopeId", "data-v-64488d5e"]]);
97
97
  //#endregion
98
98
  export { UiEditorTableContextMenu_default as t };
@@ -181,6 +181,6 @@ var UiEditorTableOverlay_default = /*#__PURE__*/ _plugin_vue_export_helper_defau
181
181
  ], 16, _hoisted_1);
182
182
  };
183
183
  }
184
- }), [["__scopeId", "data-v-61a70a30"]]);
184
+ }), [["__scopeId", "data-v-fed0c263"]]);
185
185
  //#endregion
186
186
  export { UiEditorTableOverlay_default as t };
@@ -175,6 +175,6 @@ var UiEditorTableToolbar_default = /*#__PURE__*/ _plugin_vue_export_helper_defau
175
175
  ], 16, _hoisted_1);
176
176
  };
177
177
  }
178
- }), [["__scopeId", "data-v-1b253cb1"]]);
178
+ }), [["__scopeId", "data-v-fdb800d4"]]);
179
179
  //#endregion
180
180
  export { UiEditorTableToolbar_default as t };
@@ -1,7 +1,13 @@
1
+ import { n as useComponentHost, t as createDispatch } from "./host.js";
1
2
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
- import { computed, createElementBlock, defineComponent, mergeProps, openBlock, renderSlot } from "vue";
3
+ import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, ref, renderSlot, useTemplateRef } from "vue";
4
+ import * as controllerModule from "@threadlabs/looma/components/ui-editor-toolbar/ui-editor-toolbar.js";
3
5
  //#region .build/vue/UiEditorToolbar.vue?vue&type=script&setup=true&lang.ts
4
6
  var _hoisted_1 = ["data-ui-editor-toolbar-state"];
7
+ var _hoisted_2 = {
8
+ class: "strip",
9
+ ref: "strip"
10
+ };
5
11
  //#endregion
6
12
  //#region .build/vue/UiEditorToolbar.vue
7
13
  var UiEditorToolbar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -13,16 +19,39 @@ var UiEditorToolbar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
13
19
  } },
14
20
  setup(__props) {
15
21
  const props = __props;
22
+ const root = ref(null);
23
+ const stripElement = useTemplateRef("strip");
24
+ const overflowStart = ref(false);
25
+ const overflowEnd = ref(false);
16
26
  /** The values the styles' :host-state() rules test. */
17
- const hostState = computed(() => [props.floating && "floating"].filter(Boolean).join(" "));
27
+ const hostState = computed(() => [
28
+ overflowStart.value && "overflowStart",
29
+ overflowEnd.value && "overflowEnd",
30
+ props.floating && "floating"
31
+ ].filter(Boolean).join(" "));
32
+ const dispatch = createDispatch(root);
33
+ useComponentHost(controllerModule.default, {
34
+ root,
35
+ dispatch,
36
+ props,
37
+ refs: { strip: stripElement },
38
+ state: {
39
+ overflowStart,
40
+ overflowEnd
41
+ }
42
+ });
18
43
  return (_ctx, _cache) => {
19
44
  return openBlock(), createElementBlock("div", mergeProps({
20
45
  "data-component": "ui-editor-toolbar",
21
46
  role: "toolbar",
22
47
  "aria-label": "Editor toolbar"
23
- }, _ctx.$attrs, { "data-ui-editor-toolbar-state": hostState.value || void 0 }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1);
48
+ }, _ctx.$attrs, {
49
+ "data-ui-editor-toolbar-state": hostState.value || void 0,
50
+ ref_key: "root",
51
+ ref: root
52
+ }), [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default")], 512)], 16, _hoisted_1);
24
53
  };
25
54
  }
26
- }), [["__scopeId", "data-v-b71db5ba"]]);
55
+ }), [["__scopeId", "data-v-8f7cefb2"]]);
27
56
  //#endregion
28
57
  export { UiEditorToolbar_default as t };
@@ -37,6 +37,6 @@ var UiFloatingActionButton_default = /*#__PURE__*/ _plugin_vue_export_helper_def
37
37
  }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1);
38
38
  };
39
39
  }
40
- }), [["__scopeId", "data-v-62b77471"]]);
40
+ }), [["__scopeId", "data-v-dc9b5621"]]);
41
41
  //#endregion
42
42
  export { UiFloatingActionButton_default as t };
@@ -46,6 +46,6 @@ var UiFormField_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
46
46
  ], 16);
47
47
  };
48
48
  }
49
- }), [["__scopeId", "data-v-13b85af2"]]);
49
+ }), [["__scopeId", "data-v-eba1e76b"]]);
50
50
  //#endregion
51
51
  export { UiFormField_default as t };
@@ -19,6 +19,6 @@ var UiGrid_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
19
19
  return openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-grid" }, _ctx.$attrs, { "data-ui-grid-state": hostState.value || void 0 }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
20
20
  };
21
21
  }
22
- }), [["__scopeId", "data-v-9635be0b"]]);
22
+ }), [["__scopeId", "data-v-84466559"]]);
23
23
  //#endregion
24
24
  export { UiGrid_default as t };
@@ -73,6 +73,6 @@ var UiIcon_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
73
73
  }), 128))]))], 16);
74
74
  };
75
75
  }
76
- }), [["__scopeId", "data-v-7b1048a0"]]);
76
+ }), [["__scopeId", "data-v-3d48bd86"]]);
77
77
  //#endregion
78
78
  export { UiIcon_default as t };
@@ -59,6 +59,6 @@ var UiIconButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
59
59
  }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1);
60
60
  };
61
61
  }
62
- }), [["__scopeId", "data-v-23aa723d"]]);
62
+ }), [["__scopeId", "data-v-bcedd63e"]]);
63
63
  //#endregion
64
64
  export { UiIconButton_default as t };
@@ -61,6 +61,6 @@ var UiInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
61
61
  }), null, 16, _hoisted_1)), [[vModelDynamic, model.value]]);
62
62
  };
63
63
  }
64
- }), [["__scopeId", "data-v-0c0dde58"]]);
64
+ }), [["__scopeId", "data-v-f84acfe8"]]);
65
65
  //#endregion
66
66
  export { UiInput_default as t };
@@ -69,6 +69,6 @@ var UiMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
69
69
  }), [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
70
70
  };
71
71
  }
72
- }), [["__scopeId", "data-v-e8df970a"]]);
72
+ }), [["__scopeId", "data-v-ad1dce95"]]);
73
73
  //#endregion
74
74
  export { UiMenu_default as t };
@@ -26,6 +26,6 @@ var UiMenuItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
26
26
  }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
27
27
  };
28
28
  }
29
- }), [["__scopeId", "data-v-40124183"]]);
29
+ }), [["__scopeId", "data-v-4bd9e602"]]);
30
30
  //#endregion
31
31
  export { UiMenuItem_default as t };
@@ -56,6 +56,6 @@ var UiPopover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
56
56
  }), [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
57
57
  };
58
58
  }
59
- }), [["__scopeId", "data-v-3675062e"]]);
59
+ }), [["__scopeId", "data-v-00194c85"]]);
60
60
  //#endregion
61
61
  export { UiPopover_default as t };
@@ -78,6 +78,6 @@ var UiRadio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
78
78
  }, null, 40, _hoisted_2), createElementVNode("span", _hoisted_3, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
79
79
  };
80
80
  }
81
- }), [["__scopeId", "data-v-2c20c2e3"]]);
81
+ }), [["__scopeId", "data-v-e31949a7"]]);
82
82
  //#endregion
83
83
  export { UiRadio_default as t };
@@ -75,6 +75,6 @@ var UiRadioGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
75
75
  }), [createElementVNode("legend", null, toDisplayString(__props.label), 1), renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
76
76
  };
77
77
  }
78
- }), [["__scopeId", "data-v-f54344c6"]]);
78
+ }), [["__scopeId", "data-v-b97195d1"]]);
79
79
  //#endregion
80
80
  export { UiRadioGroup_default as t };
@@ -28,6 +28,6 @@ var UiReel_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
28
28
  }, _ctx.$attrs, { "data-ui-reel-state": hostState.value || void 0 }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1);
29
29
  };
30
30
  }
31
- }), [["__scopeId", "data-v-0d41608a"]]);
31
+ }), [["__scopeId", "data-v-b373e396"]]);
32
32
  //#endregion
33
33
  export { UiReel_default as t };
@@ -50,6 +50,6 @@ var UiSearchResultRow_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
50
50
  ], 16, _hoisted_1);
51
51
  };
52
52
  }
53
- }), [["__scopeId", "data-v-c2562cce"]]);
53
+ }), [["__scopeId", "data-v-b0d24e6e"]]);
54
54
  //#endregion
55
55
  export { UiSearchResultRow_default as t };
@@ -67,6 +67,6 @@ var UiSearchShell_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
67
67
  ])], 8, _hoisted_1)], 16);
68
68
  };
69
69
  }
70
- }), [["__scopeId", "data-v-d27d0d8a"]]);
70
+ }), [["__scopeId", "data-v-d749a869"]]);
71
71
  //#endregion
72
72
  export { UiSearchShell_default as t };
@@ -55,6 +55,6 @@ var UiSelect_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
55
55
  }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1)), [[vModelSelect, model.value]]);
56
56
  };
57
57
  }
58
- }), [["__scopeId", "data-v-2a885e02"]]);
58
+ }), [["__scopeId", "data-v-f9be4ab9"]]);
59
59
  //#endregion
60
60
  export { UiSelect_default as t };
@@ -13,6 +13,6 @@ var UiSeparator_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
13
13
  return openBlock(), createElementBlock("hr", mergeProps({ "data-component": "ui-separator" }, _ctx.$attrs, { "aria-orientation": __props.orientation }), null, 16, _hoisted_1);
14
14
  };
15
15
  }
16
- }), [["__scopeId", "data-v-f07c3800"]]);
16
+ }), [["__scopeId", "data-v-357ad177"]]);
17
17
  //#endregion
18
18
  export { UiSeparator_default as t };
@@ -85,6 +85,6 @@ var UiSidebar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
85
85
  }, null, -1)])], 8, _hoisted_3)], 16, _hoisted_1);
86
86
  };
87
87
  }
88
- }), [["__scopeId", "data-v-4bcdb743"]]);
88
+ }), [["__scopeId", "data-v-d5bc9278"]]);
89
89
  //#endregion
90
90
  export { UiSidebar_default as t };
@@ -24,6 +24,6 @@ var UiStack_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
24
24
  return openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-stack" }, _ctx.$attrs, { "data-ui-stack-state": hostState.value || void 0 }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
25
25
  };
26
26
  }
27
- }), [["__scopeId", "data-v-43678d8b"]]);
27
+ }), [["__scopeId", "data-v-e8d52a11"]]);
28
28
  //#endregion
29
29
  export { UiStack_default as t };
@@ -79,6 +79,6 @@ var UiSwitch_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
79
79
  }, null, 40, _hoisted_2), createElementVNode("span", _hoisted_3, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
80
80
  };
81
81
  }
82
- }), [["__scopeId", "data-v-aeb44053"]]);
82
+ }), [["__scopeId", "data-v-26ab3add"]]);
83
83
  //#endregion
84
84
  export { UiSwitch_default as t };
@@ -24,6 +24,6 @@ var UiSwitcher_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
24
24
  return openBlock(), createElementBlock("div", mergeProps({ "data-component": "ui-switcher" }, _ctx.$attrs, { "data-ui-switcher-state": hostState.value || void 0 }), [renderSlot(_ctx.$slots, "default")], 16, _hoisted_1);
25
25
  };
26
26
  }
27
- }), [["__scopeId", "data-v-3ed2c685"]]);
27
+ }), [["__scopeId", "data-v-e00fcda9"]]);
28
28
  //#endregion
29
29
  export { UiSwitcher_default as t };
@@ -91,6 +91,6 @@ var UiTabs_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
91
91
  }), 128))], 8, _hoisted_2), createElementVNode("div", _hoisted_4, [renderSlot(_ctx.$slots, "default")], 512)], 16, _hoisted_1);
92
92
  };
93
93
  }
94
- }), [["__scopeId", "data-v-f288c3b2"]]);
94
+ }), [["__scopeId", "data-v-cf12d253"]]);
95
95
  //#endregion
96
96
  export { UiTabs_default as t };
@@ -64,6 +64,6 @@ var UiTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
64
64
  }), null, 16, _hoisted_1)), [[vModelText, model.value]]);
65
65
  };
66
66
  }
67
- }), [["__scopeId", "data-v-fd749c95"]]);
67
+ }), [["__scopeId", "data-v-0352d397"]]);
68
68
  //#endregion
69
69
  export { UiTextarea_default as t };
@@ -103,6 +103,6 @@ var UiToastRegion_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
103
103
  }), 128))], 16);
104
104
  };
105
105
  }
106
- }), [["__scopeId", "data-v-925e00c2"]]);
106
+ }), [["__scopeId", "data-v-94472df4"]]);
107
107
  //#endregion
108
108
  export { UiToastRegion_default as t };
@@ -72,6 +72,6 @@ var UiTooltip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
72
72
  }), [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
73
73
  };
74
74
  }
75
- }), [["__scopeId", "data-v-5952fbd4"]]);
75
+ }), [["__scopeId", "data-v-c4cff7e8"]]);
76
76
  //#endregion
77
77
  export { UiTooltip_default as t };
@@ -20,6 +20,6 @@ var UiTopBar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
20
20
  ], 16);
21
21
  };
22
22
  }
23
- }), [["__scopeId", "data-v-d08120f9"]]);
23
+ }), [["__scopeId", "data-v-72f788b1"]]);
24
24
  //#endregion
25
25
  export { UiTopBar_default as t };
@@ -68,6 +68,6 @@ var UiTree_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
68
68
  }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
69
69
  };
70
70
  }
71
- }), [["__scopeId", "data-v-89a4437c"]]);
71
+ }), [["__scopeId", "data-v-a2bb2dca"]]);
72
72
  //#endregion
73
73
  export { UiTree_default as t };
@@ -210,6 +210,6 @@ var UiTreeItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
210
210
  ], 16, _hoisted_1);
211
211
  };
212
212
  }
213
- }), [["__scopeId", "data-v-d093d318"]]);
213
+ }), [["__scopeId", "data-v-48465a46"]]);
214
214
  //#endregion
215
215
  export { UiTreeItem_default as t };
@@ -82,12 +82,18 @@ function useComponentHost(controller, options) {
82
82
  /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
83
83
  function createDispatch(root, emit, options = {}) {
84
84
  const { declared = {}, checks = {}, modeled = [] } = options;
85
+ const reported = /* @__PURE__ */ new Map();
85
86
  return (name, detail) => {
86
87
  const check = checks[name];
87
88
  if (detail !== void 0 && check !== void 0 && !check(detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
88
89
  emit?.(name, detail);
89
- if (detail !== null && typeof detail === "object") {
90
- for (const prop of modeled) if (prop in detail) emit?.(`update:${prop}`, detail[prop]);
90
+ if (detail !== null && typeof detail === "object") for (const prop of modeled) {
91
+ if (!(prop in detail)) continue;
92
+ const value = detail[prop];
93
+ if (reported.has(prop) && Object.is(reported.get(prop), value)) continue;
94
+ if (reported.size === 0) queueMicrotask(() => reported.clear());
95
+ reported.set(prop, value);
96
+ emit?.(`update:${prop}`, value);
91
97
  }
92
98
  return root.value?.dispatchEvent(new CustomEvent(name, {
93
99
  bubbles: true,