@threadlabs/looma 0.6.4 → 0.7.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 (259) hide show
  1. package/components/ui-button/ui-button.html +103 -81
  2. package/components/ui-checkbox/ui-checkbox.html +4 -1
  3. package/components/ui-combobox/ui-combobox.html +40 -3
  4. package/components/ui-combobox/ui-combobox.js +27 -5
  5. package/components/ui-select/ui-select.html +3 -5
  6. package/dist/index.js +1 -1
  7. package/package.json +2 -2
  8. package/styles/ui-affordance-scope.css +1 -1
  9. package/styles/ui-avatar-group.css +1 -1
  10. package/styles/ui-avatar.css +1 -1
  11. package/styles/ui-badge.css +1 -1
  12. package/styles/ui-button.css +112 -80
  13. package/styles/ui-callout.css +1 -1
  14. package/styles/ui-checkbox.css +5 -2
  15. package/styles/ui-cluster.css +1 -1
  16. package/styles/ui-combobox.css +38 -1
  17. package/styles/ui-container.css +1 -1
  18. package/styles/ui-context-menu.css +1 -1
  19. package/styles/ui-dialog.css +1 -1
  20. package/styles/ui-disclosure.css +1 -1
  21. package/styles/ui-editable.css +1 -1
  22. package/styles/ui-editor-insert-table-grid.css +1 -1
  23. package/styles/ui-editor-mention-menu.css +1 -1
  24. package/styles/ui-editor-slash-menu.css +1 -1
  25. package/styles/ui-editor-table-context-menu.css +1 -1
  26. package/styles/ui-editor-table-overlay.css +1 -1
  27. package/styles/ui-editor-table-toolbar.css +1 -1
  28. package/styles/ui-editor-toolbar.css +1 -1
  29. package/styles/ui-floating-action-button.css +1 -1
  30. package/styles/ui-form-field.css +1 -1
  31. package/styles/ui-grid.css +1 -1
  32. package/styles/ui-icon-button.css +1 -1
  33. package/styles/ui-icon.css +1 -1
  34. package/styles/ui-input.css +1 -1
  35. package/styles/ui-menu-item.css +1 -1
  36. package/styles/ui-menu.css +1 -1
  37. package/styles/ui-popover.css +1 -1
  38. package/styles/ui-radio-group.css +1 -1
  39. package/styles/ui-radio.css +1 -1
  40. package/styles/ui-reel.css +1 -1
  41. package/styles/ui-search-result-row.css +1 -1
  42. package/styles/ui-search-shell.css +1 -1
  43. package/styles/ui-select.css +4 -5
  44. package/styles/ui-separator.css +1 -1
  45. package/styles/ui-sidebar.css +1 -1
  46. package/styles/ui-stack.css +1 -1
  47. package/styles/ui-switch.css +1 -1
  48. package/styles/ui-switcher.css +1 -1
  49. package/styles/ui-tabs.css +1 -1
  50. package/styles/ui-textarea.css +1 -1
  51. package/styles/ui-toast-region.css +1 -1
  52. package/styles/ui-tooltip.css +1 -1
  53. package/styles/ui-top-bar.css +1 -1
  54. package/styles/ui-tree-item.css +1 -1
  55. package/styles/ui-tree.css +1 -1
  56. package/theme-dark.css +6 -30
  57. package/theme-high-contrast.css +30 -20
  58. package/theme-light.css +2 -16
  59. package/tokens.css +33 -24
  60. package/vanilla/UiAffordanceScope.d.ts +1 -1
  61. package/vanilla/UiAffordanceScope.js +1 -1
  62. package/vanilla/UiAvatar.d.ts +1 -1
  63. package/vanilla/UiAvatar.js +1 -1
  64. package/vanilla/UiAvatarGroup.d.ts +1 -1
  65. package/vanilla/UiAvatarGroup.js +1 -1
  66. package/vanilla/UiBadge.d.ts +1 -1
  67. package/vanilla/UiBadge.js +1 -1
  68. package/vanilla/UiButton.d.ts +2 -2
  69. package/vanilla/UiButton.js +2 -2
  70. package/vanilla/UiCallout.d.ts +1 -1
  71. package/vanilla/UiCallout.js +1 -1
  72. package/vanilla/UiCheckbox.d.ts +1 -1
  73. package/vanilla/UiCheckbox.js +1 -1
  74. package/vanilla/UiCluster.d.ts +1 -1
  75. package/vanilla/UiCluster.js +1 -1
  76. package/vanilla/UiCombobox.d.ts +1 -1
  77. package/vanilla/UiCombobox.js +2 -2
  78. package/vanilla/UiContainer.d.ts +1 -1
  79. package/vanilla/UiContainer.js +1 -1
  80. package/vanilla/UiContextMenu.d.ts +1 -1
  81. package/vanilla/UiContextMenu.js +1 -1
  82. package/vanilla/UiDialog.d.ts +1 -1
  83. package/vanilla/UiDialog.js +1 -1
  84. package/vanilla/UiDisclosure.d.ts +1 -1
  85. package/vanilla/UiDisclosure.js +1 -1
  86. package/vanilla/UiEditable.d.ts +1 -1
  87. package/vanilla/UiEditable.js +1 -1
  88. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  89. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  90. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  91. package/vanilla/UiEditorMentionMenu.js +1 -1
  92. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  93. package/vanilla/UiEditorSlashMenu.js +1 -1
  94. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  95. package/vanilla/UiEditorTableContextMenu.js +1 -1
  96. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  97. package/vanilla/UiEditorTableOverlay.js +1 -1
  98. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  99. package/vanilla/UiEditorTableToolbar.js +1 -1
  100. package/vanilla/UiEditorToolbar.d.ts +1 -1
  101. package/vanilla/UiEditorToolbar.js +1 -1
  102. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  103. package/vanilla/UiFloatingActionButton.js +1 -1
  104. package/vanilla/UiFormField.d.ts +1 -1
  105. package/vanilla/UiFormField.js +1 -1
  106. package/vanilla/UiGrid.d.ts +1 -1
  107. package/vanilla/UiGrid.js +1 -1
  108. package/vanilla/UiIcon.d.ts +1 -1
  109. package/vanilla/UiIcon.js +1 -1
  110. package/vanilla/UiIconButton.d.ts +1 -1
  111. package/vanilla/UiIconButton.js +1 -1
  112. package/vanilla/UiInput.d.ts +1 -1
  113. package/vanilla/UiInput.js +1 -1
  114. package/vanilla/UiMenu.d.ts +1 -1
  115. package/vanilla/UiMenu.js +1 -1
  116. package/vanilla/UiMenuItem.d.ts +1 -1
  117. package/vanilla/UiMenuItem.js +1 -1
  118. package/vanilla/UiPopover.d.ts +1 -1
  119. package/vanilla/UiPopover.js +1 -1
  120. package/vanilla/UiRadio.d.ts +1 -1
  121. package/vanilla/UiRadio.js +1 -1
  122. package/vanilla/UiRadioGroup.d.ts +1 -1
  123. package/vanilla/UiRadioGroup.js +1 -1
  124. package/vanilla/UiReel.d.ts +1 -1
  125. package/vanilla/UiReel.js +1 -1
  126. package/vanilla/UiSearchResultRow.d.ts +1 -1
  127. package/vanilla/UiSearchResultRow.js +1 -1
  128. package/vanilla/UiSearchShell.d.ts +1 -1
  129. package/vanilla/UiSearchShell.js +1 -1
  130. package/vanilla/UiSelect.d.ts +1 -2
  131. package/vanilla/UiSelect.js +4 -7
  132. package/vanilla/UiSeparator.d.ts +1 -1
  133. package/vanilla/UiSeparator.js +1 -1
  134. package/vanilla/UiSidebar.d.ts +1 -1
  135. package/vanilla/UiSidebar.js +1 -1
  136. package/vanilla/UiStack.d.ts +1 -1
  137. package/vanilla/UiStack.js +1 -1
  138. package/vanilla/UiSwitch.d.ts +1 -1
  139. package/vanilla/UiSwitch.js +1 -1
  140. package/vanilla/UiSwitcher.d.ts +1 -1
  141. package/vanilla/UiSwitcher.js +1 -1
  142. package/vanilla/UiTabs.d.ts +1 -1
  143. package/vanilla/UiTabs.js +1 -1
  144. package/vanilla/UiTextarea.d.ts +1 -1
  145. package/vanilla/UiTextarea.js +1 -1
  146. package/vanilla/UiToastRegion.d.ts +1 -1
  147. package/vanilla/UiToastRegion.js +1 -1
  148. package/vanilla/UiTooltip.d.ts +1 -1
  149. package/vanilla/UiTooltip.js +1 -1
  150. package/vanilla/UiTopBar.d.ts +1 -1
  151. package/vanilla/UiTopBar.js +1 -1
  152. package/vanilla/UiTree.d.ts +1 -1
  153. package/vanilla/UiTree.js +1 -1
  154. package/vanilla/UiTreeItem.d.ts +1 -1
  155. package/vanilla/UiTreeItem.js +1 -1
  156. package/vue/UiAffordanceScope.vue +8 -84
  157. package/vue/UiAvatar.d.ts +1 -1
  158. package/vue/UiAvatar.vue +9 -106
  159. package/vue/UiAvatarGroup.vue +9 -96
  160. package/vue/UiBadge.vue +1 -1
  161. package/vue/UiButton.d.ts +2 -2
  162. package/vue/UiButton.vue +104 -97
  163. package/vue/UiCallout.vue +1 -1
  164. package/vue/UiCheckbox.vue +26 -124
  165. package/vue/UiCluster.vue +1 -1
  166. package/vue/UiCombobox.d.ts +1 -1
  167. package/vue/UiCombobox.vue +270 -479
  168. package/vue/UiContainer.vue +1 -1
  169. package/vue/UiContextMenu.vue +34 -141
  170. package/vue/UiDialog.vue +25 -126
  171. package/vue/UiDisclosure.vue +26 -138
  172. package/vue/UiEditable.vue +46 -158
  173. package/vue/UiEditorInsertTableGrid.vue +19 -138
  174. package/vue/UiEditorMentionMenu.vue +17 -124
  175. package/vue/UiEditorSlashMenu.vue +17 -109
  176. package/vue/UiEditorTableContextMenu.vue +34 -122
  177. package/vue/UiEditorTableOverlay.vue +61 -167
  178. package/vue/UiEditorTableToolbar.vue +34 -142
  179. package/vue/UiEditorToolbar.vue +1 -1
  180. package/vue/UiFloatingActionButton.vue +1 -1
  181. package/vue/UiFormField.vue +7 -79
  182. package/vue/UiGrid.vue +1 -1
  183. package/vue/UiIcon.vue +8 -84
  184. package/vue/UiIconButton.vue +7 -79
  185. package/vue/UiInput.vue +7 -79
  186. package/vue/UiMenu.vue +42 -127
  187. package/vue/UiMenuItem.vue +1 -1
  188. package/vue/UiPopover.vue +25 -121
  189. package/vue/UiRadio.vue +22 -123
  190. package/vue/UiRadioGroup.d.ts +1 -1
  191. package/vue/UiRadioGroup.vue +32 -119
  192. package/vue/UiReel.vue +1 -1
  193. package/vue/UiSearchResultRow.vue +1 -1
  194. package/vue/UiSearchShell.vue +25 -121
  195. package/vue/UiSelect.d.ts +0 -2
  196. package/vue/UiSelect.vue +9 -85
  197. package/vue/UiSeparator.vue +1 -1
  198. package/vue/UiSidebar.vue +32 -133
  199. package/vue/UiStack.vue +1 -1
  200. package/vue/UiSwitch.vue +22 -123
  201. package/vue/UiSwitcher.vue +1 -1
  202. package/vue/UiTabs.vue +24 -128
  203. package/vue/UiTextarea.vue +7 -79
  204. package/vue/UiToastRegion.vue +37 -126
  205. package/vue/UiTooltip.vue +25 -124
  206. package/vue/UiTopBar.vue +1 -1
  207. package/vue/UiTree.vue +56 -137
  208. package/vue/UiTreeItem.vue +28 -144
  209. package/vue/chunks/UiAffordanceScope.js +9 -78
  210. package/vue/chunks/UiAvatar.js +13 -89
  211. package/vue/chunks/UiAvatarGroup.js +10 -80
  212. package/vue/chunks/UiBadge.js +1 -1
  213. package/vue/chunks/UiButton.js +3 -3
  214. package/vue/chunks/UiCallout.js +1 -1
  215. package/vue/chunks/UiCheckbox.js +17 -95
  216. package/vue/chunks/UiCluster.js +1 -1
  217. package/vue/chunks/UiCombobox.js +115 -326
  218. package/vue/chunks/UiContainer.js +1 -1
  219. package/vue/chunks/UiContextMenu.js +21 -113
  220. package/vue/chunks/UiDialog.js +20 -99
  221. package/vue/chunks/UiDisclosure.js +22 -112
  222. package/vue/chunks/UiEditable.js +32 -128
  223. package/vue/chunks/UiEditorInsertTableGrid.js +22 -116
  224. package/vue/chunks/UiEditorMentionMenu.js +18 -116
  225. package/vue/chunks/UiEditorSlashMenu.js +15 -101
  226. package/vue/chunks/UiEditorTableContextMenu.js +12 -91
  227. package/vue/chunks/UiEditorTableOverlay.js +29 -120
  228. package/vue/chunks/UiEditorTableToolbar.js +16 -111
  229. package/vue/chunks/UiEditorToolbar.js +1 -1
  230. package/vue/chunks/UiFloatingActionButton.js +1 -1
  231. package/vue/chunks/UiFormField.js +8 -73
  232. package/vue/chunks/UiGrid.js +1 -1
  233. package/vue/chunks/UiIcon.js +9 -78
  234. package/vue/chunks/UiIconButton.js +8 -73
  235. package/vue/chunks/UiInput.js +8 -73
  236. package/vue/chunks/UiMenu.js +25 -111
  237. package/vue/chunks/UiMenuItem.js +1 -1
  238. package/vue/chunks/UiPopover.js +18 -105
  239. package/vue/chunks/UiRadio.js +17 -95
  240. package/vue/chunks/UiRadioGroup.js +23 -105
  241. package/vue/chunks/UiReel.js +1 -1
  242. package/vue/chunks/UiSearchResultRow.js +1 -1
  243. package/vue/chunks/UiSearchShell.js +17 -94
  244. package/vue/chunks/UiSelect.js +8 -79
  245. package/vue/chunks/UiSeparator.js +1 -1
  246. package/vue/chunks/UiSidebar.js +23 -108
  247. package/vue/chunks/UiStack.js +1 -1
  248. package/vue/chunks/UiSwitch.js +17 -95
  249. package/vue/chunks/UiSwitcher.js +1 -1
  250. package/vue/chunks/UiTabs.js +22 -103
  251. package/vue/chunks/UiTextarea.js +8 -73
  252. package/vue/chunks/UiToastRegion.js +27 -112
  253. package/vue/chunks/UiTooltip.js +18 -106
  254. package/vue/chunks/UiTopBar.js +1 -1
  255. package/vue/chunks/UiTree.js +31 -109
  256. package/vue/chunks/UiTreeItem.js +29 -119
  257. package/vue/chunks/host.js +101 -0
  258. package/vue/components.css +844 -797
  259. package/vue/host.ts +154 -0
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiRadioGroupEventMap {
3
3
  select: CustomEvent<{ readonly value: string; readonly previousValue: string; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
4
4
  change: CustomEvent<{ readonly checked: boolean; readonly value: string; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-radio-group/ui-radio-group.js";
4
4
  import "../styles/ui-radio-group.css";
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiReelEventMap {
3
3
  }
4
4
  export interface UiReelElement extends HTMLDivElement {
package/vanilla/UiReel.js CHANGED
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageGeneratedProps } from "@nextwebwg/html-next/generated-runtime";
3
3
  import "../styles/ui-reel.css";
4
4
 
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiSearchResultRowEventMap {
3
3
  }
4
4
  export interface UiSearchResultRowElement extends HTMLButtonElement {
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import "../styles/ui-search-result-row.css";
4
4
 
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiSearchShellEventMap {
3
3
  close: CustomEvent<{ readonly open: boolean; readonly reason: "action" | "programmatic" | "light-dismiss" | "escape"; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
4
4
  }
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-search-shell/ui-search-shell.js";
4
4
  import "../styles/ui-search-shell.css";
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiSelectEventMap {
3
3
  }
4
4
  export interface UiSelectElement extends HTMLSelectElement {
@@ -8,7 +8,6 @@ export interface UiSelectElement extends HTMLSelectElement {
8
8
  export interface UiSelectProps {
9
9
  disabled?: boolean | null;
10
10
  invalid?: boolean | null;
11
- multiple?: boolean | null;
12
11
  required?: boolean | null;
13
12
  value?: string | null;
14
13
  attributes?: Readonly<Record<string, string | number | boolean | null | undefined>>;
@@ -1,9 +1,9 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-select/ui-select.js";
4
4
  import "../styles/ui-select.css";
5
5
 
6
- const definition = {...{"contract":{"tag":"ui-select","props":{"disabled":{"type":"boolean","required":false,"target":{"attribute":"disabled"},"default":false},"invalid":{"type":"boolean","required":false,"target":{"attribute":"aria-invalid"},"default":false},"multiple":{"type":"boolean","required":false,"target":{"attribute":"multiple"},"default":false},"required":{"type":"boolean","required":false,"target":{"attribute":"required"},"default":false},"value":{"type":"string","required":false,"target":{"attribute":"value"}}}},"template":{"kind":"element","name":"select","attributes":[{"kind":"attribute","name":"disabled","expression":"disabled","expressionPlan":{"source":"disabled","ast":{"kind":"id","name":"disabled"},"dependencies":["disabled"]}},{"kind":"attribute","name":"required","expression":"required","expressionPlan":{"source":"required","ast":{"kind":"id","name":"required"},"dependencies":["required"]}},{"kind":"attribute","name":"multiple","expression":"multiple","expressionPlan":{"source":"multiple","ast":{"kind":"id","name":"multiple"},"dependencies":["multiple"]}},{"kind":"attribute","name":"aria-invalid","expression":"invalid","expressionPlan":{"source":"invalid","ast":{"kind":"id","name":"invalid"},"dependencies":["invalid"]}}],"children":[{"kind":"slot"}]},"declarations":[],"root":{"kind":"native","element":"select","choices":["select"]}},source:{file:import.meta.url},css:""};
6
+ const definition = {...{"contract":{"tag":"ui-select","props":{"disabled":{"type":"boolean","required":false,"target":{"attribute":"disabled"},"default":false},"invalid":{"type":"boolean","required":false,"target":{"attribute":"aria-invalid"},"default":false},"required":{"type":"boolean","required":false,"target":{"attribute":"required"},"default":false},"value":{"type":"string","required":false,"target":{"attribute":"value"}}}},"template":{"kind":"element","name":"select","attributes":[{"kind":"attribute","name":"disabled","expression":"disabled","expressionPlan":{"source":"disabled","ast":{"kind":"id","name":"disabled"},"dependencies":["disabled"]}},{"kind":"attribute","name":"required","expression":"required","expressionPlan":{"source":"required","ast":{"kind":"id","name":"required"},"dependencies":["required"]}},{"kind":"attribute","name":"aria-invalid","expression":"invalid","expressionPlan":{"source":"invalid","ast":{"kind":"id","name":"invalid"},"dependencies":["invalid"]}}],"children":[{"kind":"slot"}]},"declarations":[],"root":{"kind":"native","element":"select","choices":["select"]}},source:{file:import.meta.url},css:""};
7
7
 
8
8
  export function createUiSelect(options = {}) {
9
9
  const { attributes = {}, children = [], slots = {}, as, ...componentProps } = options;
@@ -19,11 +19,8 @@ export function createUiSelect(options = {}) {
19
19
  const value1 = componentProps["required"] === undefined ? false : componentProps["required"];
20
20
  if (value1 === true) element.setAttribute("required", "");
21
21
  else element.removeAttribute("required");
22
- const value2 = componentProps["multiple"] === undefined ? false : componentProps["multiple"];
23
- if (value2 === true) element.setAttribute("multiple", "");
24
- else element.removeAttribute("multiple");
25
- const value3 = componentProps["invalid"] === undefined ? false : componentProps["invalid"];
26
- if (typeof value3 === "boolean") element.setAttribute("aria-invalid", String(value3));
22
+ const value2 = componentProps["invalid"] === undefined ? false : componentProps["invalid"];
23
+ if (typeof value2 === "boolean") element.setAttribute("aria-invalid", String(value2));
27
24
  else element.removeAttribute("aria-invalid");
28
25
  element.setAttribute("data-component", "ui-select");
29
26
  if (children.length > 0) {
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiSeparatorEventMap {
3
3
  }
4
4
  export interface UiSeparatorElement extends HTMLHRElement {
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageGeneratedProps } from "@nextwebwg/html-next/generated-runtime";
3
3
  import "../styles/ui-separator.css";
4
4
 
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiSidebarEventMap {
3
3
  resize: CustomEvent<{ readonly width: number; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
4
4
  toggle: CustomEvent<{ readonly open: boolean; readonly mode: "docked" | "drawer"; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-sidebar/ui-sidebar.js";
4
4
  import "../styles/ui-sidebar.css";
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiStackEventMap {
3
3
  }
4
4
  export interface UiStackElement extends HTMLDivElement {
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageGeneratedProps } from "@nextwebwg/html-next/generated-runtime";
3
3
  import "../styles/ui-stack.css";
4
4
 
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiSwitchEventMap {
3
3
  change: CustomEvent<{ readonly checked: boolean; readonly value: string; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
4
4
  }
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-switch/ui-switch.js";
4
4
  import "../styles/ui-switch.css";
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiSwitcherEventMap {
3
3
  }
4
4
  export interface UiSwitcherElement extends HTMLDivElement {
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageGeneratedProps } from "@nextwebwg/html-next/generated-runtime";
3
3
  import "../styles/ui-switcher.css";
4
4
 
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiTabsEventMap {
3
3
  select: CustomEvent<{ readonly value: string; readonly previousValue: string; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
4
4
  }
package/vanilla/UiTabs.js CHANGED
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-tabs/ui-tabs.js";
4
4
  import "../styles/ui-tabs.css";
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiTextareaEventMap {
3
3
  }
4
4
  export interface UiTextareaElement extends HTMLTextAreaElement {
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-textarea/ui-textarea.js";
4
4
  import "../styles/ui-textarea.css";
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiToastRegionEventMap {
3
3
  close: CustomEvent<{ readonly open: boolean; readonly reason: "action" | "timeout" | "programmatic" | "light-dismiss" | "escape"; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
4
4
  dismiss: CustomEvent<{ readonly id: string; readonly reason: "action" | "timeout"; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-toast-region/ui-toast-region.js";
4
4
  import "../styles/ui-toast-region.css";
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiTooltipEventMap {
3
3
  open: CustomEvent<{ readonly open: boolean; readonly reason: "action" | "programmatic" | "light-dismiss" | "escape"; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
4
4
  close: CustomEvent<{ readonly open: boolean; readonly reason: "action" | "programmatic" | "light-dismiss" | "escape"; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-tooltip/ui-tooltip.js";
4
4
  import "../styles/ui-tooltip.css";
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiTopBarEventMap {
3
3
  }
4
4
  export interface UiTopBarElement extends HTMLElement {
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import "../styles/ui-top-bar.css";
3
3
 
4
4
  export function createUiTopBar(options = {}) {
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiTreeEventMap {
3
3
  reorder: CustomEvent<{ readonly sourceId: string; readonly targetId: string; readonly position: "before" | "inside" | "after"; readonly sourceType: string; readonly targetType: string; readonly sourceScope: string; readonly targetScope: string; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
4
4
  "reorder-rejected": CustomEvent<{ readonly sourceId: string; readonly targetId: string; readonly position: "before" | "inside" | "after"; readonly reason: "max-depth"; readonly maxDepth: number; readonly resultingDepth: number; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
package/vanilla/UiTree.js CHANGED
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-tree/ui-tree.js";
4
4
  import "../styles/ui-tree.css";
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  export interface UiTreeItemEventMap {
3
3
  expand: CustomEvent<{ readonly id: string; readonly expanded: boolean; readonly trigger: "keyboard" | "pointer" | "programmatic" }>;
4
4
  }
@@ -1,4 +1,4 @@
1
- // Generated by HTML Next 1.0.0-alpha.2 for Vanilla DOM. Do not edit.
1
+ // Generated by HTML Next 1.0.0-alpha.3 for Vanilla DOM. Do not edit.
2
2
  import { manageComponentLifecycle } from "@nextwebwg/html-next/runtime";
3
3
  import * as controller from "../components/ui-tree-item/ui-tree-item.js";
4
4
  import "../styles/ui-tree-item.css";
@@ -1,7 +1,8 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.2 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.3 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
- import { computed, onBeforeUnmount, onMounted, ref, shallowRef, watchEffect } from 'vue'
3
+ import { computed, ref } from 'vue'
4
4
  import * as controllerModule from '../components/ui-affordance-scope/ui-affordance-scope.js'
5
+ import { createDispatch, useComponentHost } from './host'
5
6
 
6
7
  defineOptions({ inheritAttrs: false })
7
8
 
@@ -24,90 +25,13 @@ const hostState = computed(() =>
24
25
  ].filter(Boolean).join(' ')
25
26
  )
26
27
 
27
- /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
28
- function dispatch(name: string, detail?: unknown): boolean {
29
- return root.value?.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail }))
30
- ?? true
31
- }
32
-
33
- function read(name: string): unknown {
34
- if (name === 'engaged') return engaged.value
35
- return (props as Record<string, unknown>)[name]
36
- }
28
+ const dispatch = createDispatch(root)
37
29
 
38
- function write(name: string, value: unknown): boolean {
39
- if (name === 'engaged') {
40
- engaged.value = value as never
41
- return true
42
- }
43
- throw new TypeError(`Only declared state is writable; \`${name}\` is not.`)
44
- }
45
-
46
- const stops: Array<() => void> = []
47
- const host = {
48
- get element(): Element {
49
- return root.value as Element
50
- },
51
- state: new Proxy({} as Record<string, unknown>, {
52
- get: (_target, name) => typeof name === 'string' ? read(name) : undefined,
53
- set: (_target, name, value) => typeof name === 'string' && write(name, value),
54
- }),
55
- refs: {} as Readonly<Record<string, Element>>,
56
- elements: new Proxy({} as Record<string, Element | RadioNodeList | undefined>, {
57
- get: (_target, name) => {
58
- if (typeof name !== 'string' || root.value === null) return undefined
59
- const form = root.value instanceof HTMLFormElement
60
- ? root.value
61
- : root.value.querySelector('form')
62
- return form?.elements.namedItem(name)
63
- ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? undefined
64
- },
65
- }),
66
- signal<T>(initialValue: T) {
67
- const value = shallowRef(initialValue)
68
- return {
69
- get: (): T => value.value,
70
- set: (next: T): void => {
71
- if (!Object.is(value.value, next)) value.value = next
72
- },
73
- update: (next: (current: T) => T): void => {
74
- const updated = next(value.value)
75
- if (!Object.is(value.value, updated)) value.value = updated
76
- },
77
- }
78
- },
79
- computed<T>(compute: () => T) {
80
- const value = computed(compute)
81
- return { get: (): T => value.value }
82
- },
83
- effect(run: () => void | (() => void)): () => void {
84
- const stop = watchEffect((onCleanup) => {
85
- const cleanup = run()
86
- if (typeof cleanup === 'function') onCleanup(cleanup)
87
- }, { flush: 'post' })
88
- stops.push(stop)
89
- return stop
90
- },
91
- on(event: string, listener: EventListener): () => void {
92
- const element = root.value
93
- element?.addEventListener(event, listener)
94
- const off = (): void => element?.removeEventListener(event, listener)
95
- stops.push(off)
96
- return off
97
- },
30
+ useComponentHost(controllerModule.default, {
31
+ root,
98
32
  dispatch,
99
- }
100
-
101
- let cleanup: void | (() => void)
102
- let ready: Promise<void> | undefined
103
- onMounted(() => {
104
- ready = Promise.resolve(controllerModule.default(host as never)).then((result) => {
105
- cleanup = result
106
- })
107
- })
108
- onBeforeUnmount(() => {
109
- for (const stop of stops.splice(0)) stop()
110
- if (typeof cleanup === 'function') cleanup()
33
+ props,
34
+ state: { engaged },
111
35
  })
112
36
  </script>
113
37
 
package/vue/UiAvatar.d.ts CHANGED
@@ -9,9 +9,9 @@ type __VLS_Slots = {} & {
9
9
  default?: (props: typeof __VLS_1) => any;
10
10
  };
11
11
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
12
+ name: string;
12
13
  alt: string;
13
14
  fallback: string;
14
- name: string;
15
15
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
16
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
17
17
  declare const _default: typeof __VLS_export;
package/vue/UiAvatar.vue CHANGED
@@ -1,15 +1,8 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.2 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.3 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
- import {
4
- computed,
5
- onBeforeUnmount,
6
- onMounted,
7
- ref,
8
- shallowRef,
9
- useTemplateRef,
10
- watchEffect,
11
- } from 'vue'
3
+ import { ref, useTemplateRef } from 'vue'
12
4
  import * as controllerModule from '../components/ui-avatar/ui-avatar.js'
5
+ import { createDispatch, useComponentHost } from './host'
13
6
 
14
7
  defineOptions({ inheritAttrs: false })
15
8
 
@@ -33,104 +26,14 @@ const hasImage = ref(false)
33
26
  const hasAuthoredImage = ref(false)
34
27
  const initials = ref('?')
35
28
 
36
- /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
37
- function dispatch(name: string, detail?: unknown): boolean {
38
- return root.value?.dispatchEvent(new CustomEvent(name, { bubbles: true, composed: true, detail }))
39
- ?? true
40
- }
41
-
42
- function read(name: string): unknown {
43
- if (name === 'hasImage') return hasImage.value
44
- if (name === 'hasAuthoredImage') return hasAuthoredImage.value
45
- if (name === 'initials') return initials.value
46
- return (props as Record<string, unknown>)[name]
47
- }
48
-
49
- function write(name: string, value: unknown): boolean {
50
- if (name === 'hasImage') {
51
- hasImage.value = value as never
52
- return true
53
- }
54
- if (name === 'hasAuthoredImage') {
55
- hasAuthoredImage.value = value as never
56
- return true
57
- }
58
- if (name === 'initials') {
59
- initials.value = value as never
60
- return true
61
- }
62
- throw new TypeError(`Only declared state is writable; \`${name}\` is not.`)
63
- }
29
+ const dispatch = createDispatch(root)
64
30
 
65
- const stops: Array<() => void> = []
66
- const host = {
67
- get element(): Element {
68
- return root.value as Element
69
- },
70
- state: new Proxy({} as Record<string, unknown>, {
71
- get: (_target, name) => typeof name === 'string' ? read(name) : undefined,
72
- set: (_target, name, value) => typeof name === 'string' && write(name, value),
73
- }),
74
- refs: {
75
- get image(): Element {
76
- return imageElement.value as Element
77
- },
78
- } as Readonly<Record<string, Element>>,
79
- elements: new Proxy({} as Record<string, Element | RadioNodeList | undefined>, {
80
- get: (_target, name) => {
81
- if (typeof name !== 'string' || root.value === null) return undefined
82
- const form = root.value instanceof HTMLFormElement
83
- ? root.value
84
- : root.value.querySelector('form')
85
- return form?.elements.namedItem(name)
86
- ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? undefined
87
- },
88
- }),
89
- signal<T>(initialValue: T) {
90
- const value = shallowRef(initialValue)
91
- return {
92
- get: (): T => value.value,
93
- set: (next: T): void => {
94
- if (!Object.is(value.value, next)) value.value = next
95
- },
96
- update: (next: (current: T) => T): void => {
97
- const updated = next(value.value)
98
- if (!Object.is(value.value, updated)) value.value = updated
99
- },
100
- }
101
- },
102
- computed<T>(compute: () => T) {
103
- const value = computed(compute)
104
- return { get: (): T => value.value }
105
- },
106
- effect(run: () => void | (() => void)): () => void {
107
- const stop = watchEffect((onCleanup) => {
108
- const cleanup = run()
109
- if (typeof cleanup === 'function') onCleanup(cleanup)
110
- }, { flush: 'post' })
111
- stops.push(stop)
112
- return stop
113
- },
114
- on(event: string, listener: EventListener): () => void {
115
- const element = root.value
116
- element?.addEventListener(event, listener)
117
- const off = (): void => element?.removeEventListener(event, listener)
118
- stops.push(off)
119
- return off
120
- },
31
+ useComponentHost(controllerModule.default, {
32
+ root,
121
33
  dispatch,
122
- }
123
-
124
- let cleanup: void | (() => void)
125
- let ready: Promise<void> | undefined
126
- onMounted(() => {
127
- ready = Promise.resolve(controllerModule.default(host as never)).then((result) => {
128
- cleanup = result
129
- })
130
- })
131
- onBeforeUnmount(() => {
132
- for (const stop of stops.splice(0)) stop()
133
- if (typeof cleanup === 'function') cleanup()
34
+ props,
35
+ refs: { image: imageElement },
36
+ state: { hasImage, hasAuthoredImage, initials },
134
37
  })
135
38
  </script>
136
39