@threadlabs/looma 0.5.0 → 0.5.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 (313) hide show
  1. package/README.md +1 -1
  2. package/components/shared/input-modality.d.ts +8 -0
  3. package/components/shared/input-modality.js +2 -0
  4. package/components/ui-button/ui-button.html +42 -1
  5. package/components/ui-combobox/ui-combobox.html +12 -4
  6. package/components/ui-dialog/ui-dialog.html +13 -0
  7. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +1 -1
  8. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +1 -1
  9. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +6 -2
  10. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +20 -4
  11. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +8 -4
  12. package/components/ui-form-field/ui-form-field.html +18 -7
  13. package/components/ui-icon/ui-icon.html +5 -1
  14. package/components/ui-icon-button/ui-icon-button.html +44 -1
  15. package/components/ui-popover/ui-popover.js +10 -2
  16. package/components/ui-search-shell/ui-search-shell.html +7 -0
  17. package/components/ui-search-shell/ui-search-shell.js +9 -0
  18. package/components/ui-tabs/ui-tabs.html +1 -1
  19. package/components/ui-toast-region/ui-toast-region.html +1 -1
  20. package/components/ui-tree-item/ui-tree-item.html +6 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.js +2 -2
  23. package/package.json +2 -2
  24. package/styles/ui-affordance-scope.css +1 -1
  25. package/styles/ui-avatar-group.css +1 -1
  26. package/styles/ui-avatar.css +1 -1
  27. package/styles/ui-badge.css +1 -1
  28. package/styles/ui-button.css +42 -2
  29. package/styles/ui-callout.css +1 -1
  30. package/styles/ui-checkbox.css +1 -1
  31. package/styles/ui-cluster.css +1 -1
  32. package/styles/ui-combobox.css +1 -1
  33. package/styles/ui-container.css +1 -1
  34. package/styles/ui-context-menu.css +1 -1
  35. package/styles/ui-dialog.css +18 -1
  36. package/styles/ui-disclosure.css +1 -1
  37. package/styles/ui-editable.css +1 -1
  38. package/styles/ui-editor-insert-table-grid.css +1 -1
  39. package/styles/ui-editor-mention-menu.css +1 -1
  40. package/styles/ui-editor-slash-menu.css +1 -1
  41. package/styles/ui-editor-table-context-menu.css +1 -1
  42. package/styles/ui-editor-table-overlay.css +1 -1
  43. package/styles/ui-editor-table-toolbar.css +1 -1
  44. package/styles/ui-editor-toolbar.css +1 -1
  45. package/styles/ui-floating-action-button.css +1 -1
  46. package/styles/ui-form-field.css +24 -10
  47. package/styles/ui-grid.css +1 -1
  48. package/styles/ui-icon-button.css +52 -2
  49. package/styles/ui-icon.css +1 -1
  50. package/styles/ui-input.css +1 -1
  51. package/styles/ui-menu-item.css +1 -1
  52. package/styles/ui-menu.css +1 -1
  53. package/styles/ui-popover.css +1 -1
  54. package/styles/ui-radio-group.css +1 -1
  55. package/styles/ui-radio.css +1 -1
  56. package/styles/ui-reel.css +1 -1
  57. package/styles/ui-search-result-row.css +1 -1
  58. package/styles/ui-search-shell.css +11 -2
  59. package/styles/ui-select.css +1 -1
  60. package/styles/ui-separator.css +1 -1
  61. package/styles/ui-sidebar.css +1 -1
  62. package/styles/ui-stack.css +1 -1
  63. package/styles/ui-switch.css +1 -1
  64. package/styles/ui-switcher.css +1 -1
  65. package/styles/ui-tabs.css +1 -1
  66. package/styles/ui-textarea.css +1 -1
  67. package/styles/ui-toast-region.css +1 -1
  68. package/styles/ui-tooltip.css +1 -1
  69. package/styles/ui-top-bar.css +1 -1
  70. package/styles/ui-tree-item.css +10 -2
  71. package/styles/ui-tree.css +1 -1
  72. package/vanilla/UiAffordanceScope.d.ts +1 -1
  73. package/vanilla/UiAffordanceScope.js +2 -2
  74. package/vanilla/UiAvatar.d.ts +1 -1
  75. package/vanilla/UiAvatar.js +2 -2
  76. package/vanilla/UiAvatarGroup.d.ts +1 -1
  77. package/vanilla/UiAvatarGroup.js +2 -2
  78. package/vanilla/UiBadge.d.ts +1 -1
  79. package/vanilla/UiBadge.js +2 -2
  80. package/vanilla/UiButton.d.ts +3 -1
  81. package/vanilla/UiButton.js +3 -3
  82. package/vanilla/UiCallout.d.ts +1 -1
  83. package/vanilla/UiCallout.js +2 -2
  84. package/vanilla/UiCheckbox.d.ts +1 -1
  85. package/vanilla/UiCheckbox.js +2 -2
  86. package/vanilla/UiCluster.d.ts +1 -1
  87. package/vanilla/UiCluster.js +2 -2
  88. package/vanilla/UiCombobox.d.ts +1 -1
  89. package/vanilla/UiCombobox.js +3 -3
  90. package/vanilla/UiContainer.d.ts +1 -1
  91. package/vanilla/UiContainer.js +2 -2
  92. package/vanilla/UiContextMenu.d.ts +1 -1
  93. package/vanilla/UiContextMenu.js +2 -2
  94. package/vanilla/UiDialog.d.ts +1 -1
  95. package/vanilla/UiDialog.js +2 -2
  96. package/vanilla/UiDisclosure.d.ts +1 -1
  97. package/vanilla/UiDisclosure.js +2 -2
  98. package/vanilla/UiEditable.d.ts +1 -1
  99. package/vanilla/UiEditable.js +2 -2
  100. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  101. package/vanilla/UiEditorInsertTableGrid.js +3 -3
  102. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  103. package/vanilla/UiEditorMentionMenu.js +3 -3
  104. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  105. package/vanilla/UiEditorSlashMenu.js +2 -2
  106. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  107. package/vanilla/UiEditorTableContextMenu.js +3 -3
  108. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  109. package/vanilla/UiEditorTableOverlay.js +3 -3
  110. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  111. package/vanilla/UiEditorTableToolbar.js +3 -3
  112. package/vanilla/UiEditorToolbar.d.ts +1 -1
  113. package/vanilla/UiEditorToolbar.js +2 -2
  114. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  115. package/vanilla/UiFloatingActionButton.js +2 -2
  116. package/vanilla/UiFormField.d.ts +1 -1
  117. package/vanilla/UiFormField.js +15 -6
  118. package/vanilla/UiGrid.d.ts +1 -1
  119. package/vanilla/UiGrid.js +2 -2
  120. package/vanilla/UiIcon.d.ts +1 -1
  121. package/vanilla/UiIcon.js +3 -3
  122. package/vanilla/UiIconButton.d.ts +1 -1
  123. package/vanilla/UiIconButton.js +2 -2
  124. package/vanilla/UiInput.d.ts +1 -1
  125. package/vanilla/UiInput.js +2 -2
  126. package/vanilla/UiMenu.d.ts +1 -1
  127. package/vanilla/UiMenu.js +2 -2
  128. package/vanilla/UiMenuItem.d.ts +1 -1
  129. package/vanilla/UiMenuItem.js +2 -2
  130. package/vanilla/UiPopover.d.ts +1 -1
  131. package/vanilla/UiPopover.js +2 -2
  132. package/vanilla/UiRadio.d.ts +1 -1
  133. package/vanilla/UiRadio.js +2 -2
  134. package/vanilla/UiRadioGroup.d.ts +1 -1
  135. package/vanilla/UiRadioGroup.js +2 -2
  136. package/vanilla/UiReel.d.ts +1 -1
  137. package/vanilla/UiReel.js +2 -2
  138. package/vanilla/UiSearchResultRow.d.ts +1 -1
  139. package/vanilla/UiSearchResultRow.js +2 -2
  140. package/vanilla/UiSearchShell.d.ts +1 -1
  141. package/vanilla/UiSearchShell.js +2 -2
  142. package/vanilla/UiSelect.d.ts +1 -1
  143. package/vanilla/UiSelect.js +2 -2
  144. package/vanilla/UiSeparator.d.ts +1 -1
  145. package/vanilla/UiSeparator.js +2 -2
  146. package/vanilla/UiSidebar.d.ts +1 -1
  147. package/vanilla/UiSidebar.js +2 -2
  148. package/vanilla/UiStack.d.ts +1 -1
  149. package/vanilla/UiStack.js +2 -2
  150. package/vanilla/UiSwitch.d.ts +1 -1
  151. package/vanilla/UiSwitch.js +2 -2
  152. package/vanilla/UiSwitcher.d.ts +1 -1
  153. package/vanilla/UiSwitcher.js +2 -2
  154. package/vanilla/UiTabs.d.ts +1 -1
  155. package/vanilla/UiTabs.js +3 -3
  156. package/vanilla/UiTextarea.d.ts +1 -1
  157. package/vanilla/UiTextarea.js +2 -2
  158. package/vanilla/UiToastRegion.d.ts +1 -1
  159. package/vanilla/UiToastRegion.js +3 -3
  160. package/vanilla/UiTooltip.d.ts +1 -1
  161. package/vanilla/UiTooltip.js +2 -2
  162. package/vanilla/UiTopBar.d.ts +1 -1
  163. package/vanilla/UiTopBar.js +1 -1
  164. package/vanilla/UiTree.d.ts +1 -1
  165. package/vanilla/UiTree.js +2 -2
  166. package/vanilla/UiTreeItem.d.ts +1 -1
  167. package/vanilla/UiTreeItem.js +2 -2
  168. package/vue/UiAffordanceScope.d.ts +2 -2
  169. package/vue/UiAffordanceScope.vue +92 -73
  170. package/vue/UiAvatar.d.ts +7 -7
  171. package/vue/UiAvatar.vue +145 -105
  172. package/vue/UiAvatarGroup.d.ts +4 -4
  173. package/vue/UiAvatarGroup.vue +134 -118
  174. package/vue/UiBadge.d.ts +4 -4
  175. package/vue/UiBadge.vue +113 -114
  176. package/vue/UiButton.d.ts +10 -6
  177. package/vue/UiButton.vue +289 -220
  178. package/vue/UiCallout.d.ts +2 -2
  179. package/vue/UiCallout.vue +154 -87
  180. package/vue/UiCheckbox.d.ts +14 -10
  181. package/vue/UiCheckbox.vue +228 -162
  182. package/vue/UiCluster.d.ts +2 -2
  183. package/vue/UiCluster.vue +53 -60
  184. package/vue/UiCombobox.d.ts +36 -32
  185. package/vue/UiCombobox.vue +1005 -416
  186. package/vue/UiContainer.d.ts +2 -2
  187. package/vue/UiContainer.vue +48 -51
  188. package/vue/UiContextMenu.d.ts +6 -4
  189. package/vue/UiContextMenu.vue +205 -116
  190. package/vue/UiDialog.d.ts +11 -9
  191. package/vue/UiDialog.vue +287 -212
  192. package/vue/UiDisclosure.d.ts +8 -6
  193. package/vue/UiDisclosure.vue +248 -159
  194. package/vue/UiEditable.d.ts +16 -12
  195. package/vue/UiEditable.vue +325 -205
  196. package/vue/UiEditorInsertTableGrid.d.ts +8 -8
  197. package/vue/UiEditorInsertTableGrid.vue +216 -157
  198. package/vue/UiEditorMentionMenu.d.ts +9 -9
  199. package/vue/UiEditorMentionMenu.vue +265 -222
  200. package/vue/UiEditorSlashMenu.d.ts +7 -7
  201. package/vue/UiEditorSlashMenu.vue +286 -240
  202. package/vue/UiEditorTableContextMenu.d.ts +5 -5
  203. package/vue/UiEditorTableContextMenu.vue +306 -193
  204. package/vue/UiEditorTableOverlay.d.ts +2 -2
  205. package/vue/UiEditorTableOverlay.vue +609 -369
  206. package/vue/UiEditorTableToolbar.d.ts +7 -7
  207. package/vue/UiEditorTableToolbar.vue +443 -268
  208. package/vue/UiEditorToolbar.d.ts +2 -2
  209. package/vue/UiEditorToolbar.vue +134 -121
  210. package/vue/UiFloatingActionButton.d.ts +6 -6
  211. package/vue/UiFloatingActionButton.vue +100 -99
  212. package/vue/UiFormField.d.ts +6 -6
  213. package/vue/UiFormField.vue +112 -80
  214. package/vue/UiGrid.d.ts +2 -2
  215. package/vue/UiGrid.vue +51 -57
  216. package/vue/UiIcon.d.ts +2 -2
  217. package/vue/UiIcon.vue +118 -89
  218. package/vue/UiIconButton.d.ts +11 -11
  219. package/vue/UiIconButton.vue +285 -206
  220. package/vue/UiInput.d.ts +9 -9
  221. package/vue/UiInput.vue +153 -127
  222. package/vue/UiMenu.d.ts +8 -6
  223. package/vue/UiMenu.vue +217 -143
  224. package/vue/UiMenuItem.d.ts +4 -4
  225. package/vue/UiMenuItem.vue +52 -46
  226. package/vue/UiPopover.d.ts +8 -6
  227. package/vue/UiPopover.vue +197 -137
  228. package/vue/UiRadio.d.ts +14 -10
  229. package/vue/UiRadio.vue +183 -117
  230. package/vue/UiRadioGroup.d.ts +14 -12
  231. package/vue/UiRadioGroup.vue +172 -111
  232. package/vue/UiReel.d.ts +3 -3
  233. package/vue/UiReel.vue +77 -77
  234. package/vue/UiSearchResultRow.d.ts +4 -4
  235. package/vue/UiSearchResultRow.vue +124 -115
  236. package/vue/UiSearchShell.d.ts +10 -8
  237. package/vue/UiSearchShell.vue +245 -176
  238. package/vue/UiSelect.d.ts +9 -9
  239. package/vue/UiSelect.vue +162 -134
  240. package/vue/UiSeparator.d.ts +2 -2
  241. package/vue/UiSeparator.vue +22 -27
  242. package/vue/UiSidebar.d.ts +20 -18
  243. package/vue/UiSidebar.vue +312 -224
  244. package/vue/UiStack.d.ts +3 -3
  245. package/vue/UiStack.vue +64 -70
  246. package/vue/UiSwitch.d.ts +12 -8
  247. package/vue/UiSwitch.vue +218 -150
  248. package/vue/UiSwitcher.d.ts +3 -3
  249. package/vue/UiSwitcher.vue +73 -75
  250. package/vue/UiTabs.d.ts +10 -8
  251. package/vue/UiTabs.vue +251 -210
  252. package/vue/UiTextarea.d.ts +11 -11
  253. package/vue/UiTextarea.vue +155 -128
  254. package/vue/UiToastRegion.d.ts +10 -8
  255. package/vue/UiToastRegion.vue +261 -198
  256. package/vue/UiTooltip.d.ts +14 -12
  257. package/vue/UiTooltip.vue +241 -177
  258. package/vue/UiTopBar.vue +51 -42
  259. package/vue/UiTree.d.ts +8 -6
  260. package/vue/UiTree.vue +157 -70
  261. package/vue/UiTreeItem.d.ts +24 -22
  262. package/vue/UiTreeItem.vue +456 -339
  263. package/vue/chunks/UiAffordanceScope.js +9 -16
  264. package/vue/chunks/UiAvatar.js +23 -29
  265. package/vue/chunks/UiAvatarGroup.js +16 -39
  266. package/vue/chunks/UiBadge.js +3 -12
  267. package/vue/chunks/UiButton.js +15 -18
  268. package/vue/chunks/UiCallout.js +8 -17
  269. package/vue/chunks/UiCheckbox.js +37 -40
  270. package/vue/chunks/UiCluster.js +3 -12
  271. package/vue/chunks/UiCombobox.js +224 -266
  272. package/vue/chunks/UiContainer.js +3 -12
  273. package/vue/chunks/UiContextMenu.js +39 -34
  274. package/vue/chunks/UiDialog.js +36 -39
  275. package/vue/chunks/UiDisclosure.js +43 -48
  276. package/vue/chunks/UiEditable.js +55 -57
  277. package/vue/chunks/UiEditorInsertTableGrid.js +55 -73
  278. package/vue/chunks/UiEditorMentionMenu.js +40 -81
  279. package/vue/chunks/UiEditorSlashMenu.js +28 -52
  280. package/vue/chunks/UiEditorTableContextMenu.js +32 -56
  281. package/vue/chunks/UiEditorTableOverlay.js +58 -82
  282. package/vue/chunks/UiEditorTableToolbar.js +61 -85
  283. package/vue/chunks/UiEditorToolbar.js +4 -13
  284. package/vue/chunks/UiFloatingActionButton.js +7 -21
  285. package/vue/chunks/UiFormField.js +15 -12
  286. package/vue/chunks/UiGrid.js +3 -12
  287. package/vue/chunks/UiIcon.js +20 -43
  288. package/vue/chunks/UiIconButton.js +16 -28
  289. package/vue/chunks/UiInput.js +20 -25
  290. package/vue/chunks/UiMenu.js +29 -33
  291. package/vue/chunks/UiMenuItem.js +4 -10
  292. package/vue/chunks/UiPopover.js +28 -29
  293. package/vue/chunks/UiRadio.js +36 -39
  294. package/vue/chunks/UiRadioGroup.js +30 -34
  295. package/vue/chunks/UiReel.js +6 -15
  296. package/vue/chunks/UiSearchResultRow.js +6 -19
  297. package/vue/chunks/UiSearchShell.js +25 -28
  298. package/vue/chunks/UiSelect.js +20 -23
  299. package/vue/chunks/UiSeparator.js +2 -8
  300. package/vue/chunks/UiSidebar.js +39 -44
  301. package/vue/chunks/UiStack.js +6 -15
  302. package/vue/chunks/UiSwitch.js +35 -38
  303. package/vue/chunks/UiSwitcher.js +6 -15
  304. package/vue/chunks/UiTabs.js +47 -85
  305. package/vue/chunks/UiTextarea.js +21 -26
  306. package/vue/chunks/UiToastRegion.js +38 -72
  307. package/vue/chunks/UiTooltip.js +34 -35
  308. package/vue/chunks/UiTopBar.js +1 -1
  309. package/vue/chunks/UiTree.js +20 -15
  310. package/vue/chunks/UiTreeItem.js +85 -102
  311. package/vue/components.css +3994 -3764
  312. package/vue/index.d.ts +1 -0
  313. package/vue/index.js +2 -1
@@ -1,9 +1,8 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
- import { computed, createElementBlock, defineComponent, mergeProps, onBeforeUnmount, onMounted, openBlock, ref, shallowRef, watchEffect } from "vue";
2
+ import { computed, createElementBlock, defineComponent, mergeProps, onBeforeUnmount, onMounted, openBlock, ref, shallowRef, vModelDynamic, watchEffect, withDirectives } from "vue";
3
3
  import * as controllerModule from "@threadlabs/looma/components/ui-input/ui-input.js";
4
4
  //#region .build/vue/UiInput.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = [
6
- "value",
7
6
  "disabled",
8
7
  "readonly",
9
8
  "required",
@@ -16,19 +15,19 @@ var UiInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
16
15
  __name: "UiInput",
17
16
  props: {
18
17
  disabled: {
19
- type: [Boolean, null],
18
+ type: Boolean,
20
19
  default: false
21
20
  },
22
21
  invalid: {
23
- type: [Boolean, null],
22
+ type: Boolean,
24
23
  default: false
25
24
  },
26
25
  readonly: {
27
- type: [Boolean, null],
26
+ type: Boolean,
28
27
  default: false
29
28
  },
30
29
  required: {
31
- type: [Boolean, null],
30
+ type: Boolean,
32
31
  default: false
33
32
  },
34
33
  value: {},
@@ -36,24 +35,21 @@ var UiInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
36
35
  },
37
36
  emits: ["update:modelValue"],
38
37
  setup(__props, { emit: __emit }) {
39
- const hn = {
40
- text: (v) => v === void 0 || v === null ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? "" : String(v),
41
- attr: (v) => v === void 0 || v === null || v === false ? void 0 : v === true ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? void 0 : String(v),
42
- enumerated: (v) => typeof v === "boolean" ? String(v) : hn.attr(v)
43
- };
44
38
  const props = __props;
45
39
  const emit = __emit;
46
- const updateModel = (event) => emit("update:modelValue", event.target.value);
40
+ const model = computed({
41
+ get: () => props.modelValue ?? props.value ?? void 0,
42
+ set: (value) => emit("update:modelValue", value)
43
+ });
47
44
  const root = ref(null);
48
- const refs = {};
49
45
  /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
50
- const dispatch = (name, detail) => {
46
+ function dispatch(name, detail) {
51
47
  return root.value?.dispatchEvent(new CustomEvent(name, {
52
48
  bubbles: true,
53
49
  composed: true,
54
50
  detail
55
51
  })) ?? true;
56
- };
52
+ }
57
53
  function read(name) {
58
54
  return props[name];
59
55
  }
@@ -69,7 +65,7 @@ var UiInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
69
65
  get: (_target, name) => typeof name === "string" ? read(name) : void 0,
70
66
  set: (_target, name, value) => typeof name === "string" && write(name, value)
71
67
  }),
72
- refs,
68
+ refs: {},
73
69
  elements: new Proxy({}, { get: (_target, name) => {
74
70
  if (typeof name !== "string" || root.value === null) return void 0;
75
71
  return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
@@ -119,18 +115,17 @@ var UiInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
119
115
  if (typeof cleanup === "function") cleanup();
120
116
  });
121
117
  return (_ctx, _cache) => {
122
- return openBlock(), createElementBlock("input", mergeProps({ "data-component": "ui-input" }, _ctx.$attrs, {
123
- value: hn.attr(props.modelValue ?? props.value),
124
- disabled: hn.attr(props.disabled),
125
- readonly: hn.attr(props.readonly),
126
- required: hn.attr(props.required),
127
- "aria-invalid": hn.enumerated(props.invalid),
128
- onInput: updateModel,
118
+ return withDirectives((openBlock(), createElementBlock("input", mergeProps({ "data-component": "ui-input" }, _ctx.$attrs, {
119
+ disabled: __props.disabled,
120
+ readonly: __props.readonly,
121
+ required: __props.required,
122
+ "aria-invalid": __props.invalid,
123
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
129
124
  ref_key: "root",
130
125
  ref: root
131
- }), null, 16, _hoisted_1);
126
+ }), null, 16, _hoisted_1)), [[vModelDynamic, model.value]]);
132
127
  };
133
128
  }
134
- }), [["__scopeId", "data-v-cf6676f9"]]);
129
+ }), [["__scopeId", "data-v-e80b5857"]]);
135
130
  //#endregion
136
131
  export { UiInput_default as t };
@@ -12,78 +12,74 @@ var UiMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
12
12
  props: {
13
13
  for: { default: "" },
14
14
  open: {
15
- type: [Boolean, null],
15
+ type: Boolean,
16
16
  default: false
17
17
  },
18
18
  placement: { default: "bottom-start" }
19
19
  },
20
20
  emits: [
21
+ "update:open",
21
22
  "select",
22
23
  "open",
23
24
  "close"
24
25
  ],
25
26
  setup(__props, { emit: __emit }) {
26
- const hn = { t: (v) => v === true || (typeof v === "string" ? v.length > 0 : typeof v === "number" ? v !== 0 && v === v : Array.isArray(v) ? v.length > 0 : v !== null && typeof v === "object" ? Object.keys(v).length > 0 : false) };
27
27
  const props = __props;
28
28
  const emit = __emit;
29
29
  const root = ref(null);
30
- const refs = {};
31
- const state_internalOpen = ref(false);
30
+ const internalOpen = ref(false);
31
+ /** The values the styles' :host-state() rules test. */
32
+ const hostState = computed(() => [internalOpen.value && "internalOpen"].filter(Boolean).join(" "));
32
33
  /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
33
- const dispatch = (name, detail) => {
34
+ function dispatch(name, detail) {
34
35
  const declared = {
35
- "select": {
36
- "bubbles": true,
37
- "composed": true,
38
- "cancelable": false
36
+ select: {
37
+ bubbles: true,
38
+ composed: true,
39
+ cancelable: false
39
40
  },
40
- "open": {
41
- "bubbles": true,
42
- "composed": true,
43
- "cancelable": false
41
+ open: {
42
+ bubbles: true,
43
+ composed: true,
44
+ cancelable: false
44
45
  },
45
- "close": {
46
- "bubbles": true,
47
- "composed": true,
48
- "cancelable": false
46
+ close: {
47
+ bubbles: true,
48
+ composed: true,
49
+ cancelable: false
49
50
  }
50
51
  };
51
52
  const checks = {
52
- "select": (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["value"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => ["value", "trigger"].includes(key)),
53
- "open": (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
53
+ select: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["value"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => ["value", "trigger"].includes(key)),
54
+ open: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
54
55
  "open",
55
56
  "reason",
56
57
  "trigger"
57
58
  ].includes(key)),
58
- "close": (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
59
+ close: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
59
60
  "open",
60
61
  "reason",
61
62
  "trigger"
62
63
  ].includes(key))
63
64
  };
64
65
  if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
65
- emit(name, detail);
66
+ const emitEvent = emit;
67
+ emitEvent(name, detail);
68
+ if (detail !== null && typeof detail === "object" && "open" in detail) emitEvent("update:open", detail["open"]);
66
69
  return root.value?.dispatchEvent(new CustomEvent(name, {
67
70
  bubbles: true,
68
71
  composed: true,
69
72
  ...declared[name],
70
73
  detail
71
74
  })) ?? true;
72
- };
73
- /** The resolved values the styles' :host-state() rules test. */
74
- const hostState = computed(() => ["internalOpen"].flatMap((name) => {
75
- const value = read(name);
76
- const tokens = hn.t(value) ? [name] : [];
77
- if (typeof value === "string" || typeof value === "number") tokens.push(`${name}=${encodeURIComponent(String(value))}`);
78
- return tokens;
79
- }).join(" "));
75
+ }
80
76
  function read(name) {
81
- if (name === "internalOpen") return state_internalOpen.value;
77
+ if (name === "internalOpen") return internalOpen.value;
82
78
  return props[name];
83
79
  }
84
80
  function write(name, value) {
85
81
  if (name === "internalOpen") {
86
- state_internalOpen.value = value;
82
+ internalOpen.value = value;
87
83
  return true;
88
84
  }
89
85
  throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
@@ -97,7 +93,7 @@ var UiMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
97
93
  get: (_target, name) => typeof name === "string" ? read(name) : void 0,
98
94
  set: (_target, name, value) => typeof name === "string" && write(name, value)
99
95
  }),
100
- refs,
96
+ refs: {},
101
97
  elements: new Proxy({}, { get: (_target, name) => {
102
98
  if (typeof name !== "string" || root.value === null) return void 0;
103
99
  return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
@@ -158,6 +154,6 @@ var UiMenu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE_
158
154
  }), [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
159
155
  };
160
156
  }
161
- }), [["__scopeId", "data-v-75d428d7"]]);
157
+ }), [["__scopeId", "data-v-3174acee"]]);
162
158
  //#endregion
163
159
  export { UiMenu_default as t };
@@ -9,29 +9,23 @@ var UiMenuItem_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
9
9
  __name: "UiMenuItem",
10
10
  props: {
11
11
  disabled: {
12
- type: [Boolean, null],
12
+ type: Boolean,
13
13
  default: false
14
14
  },
15
15
  value: { default: "" }
16
16
  },
17
17
  setup(__props) {
18
- const hn = {
19
- text: (v) => v === void 0 || v === null ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? "" : String(v),
20
- attr: (v) => v === void 0 || v === null || v === false ? void 0 : v === true ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? void 0 : String(v),
21
- enumerated: (v) => typeof v === "boolean" ? String(v) : hn.attr(v)
22
- };
23
- const props = __props;
24
18
  return (_ctx, _cache) => {
25
19
  return openBlock(), createElementBlock("div", mergeProps({
26
20
  "data-component": "ui-menu-item",
27
21
  role: "menuitem",
28
22
  tabindex: "-1"
29
23
  }, _ctx.$attrs, {
30
- "aria-disabled": hn.enumerated(props.disabled),
31
- "data-value": hn.attr(props.value)
24
+ "aria-disabled": __props.disabled,
25
+ "data-value": __props.value
32
26
  }), [renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
33
27
  };
34
28
  }
35
- }), [["__scopeId", "data-v-05a8f163"]]);
29
+ }), [["__scopeId", "data-v-732d4711"]]);
36
30
  //#endregion
37
31
  export { UiMenuItem_default as t };
@@ -12,68 +12,67 @@ var UiPopover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
12
12
  props: {
13
13
  for: { default: "" },
14
14
  open: {
15
- type: [Boolean, null],
15
+ type: Boolean,
16
16
  default: false
17
17
  },
18
18
  placement: { default: "bottom-start" }
19
19
  },
20
- emits: ["open", "close"],
20
+ emits: [
21
+ "update:open",
22
+ "open",
23
+ "close"
24
+ ],
21
25
  setup(__props, { emit: __emit }) {
22
- const hn = { t: (v) => v === true || (typeof v === "string" ? v.length > 0 : typeof v === "number" ? v !== 0 && v === v : Array.isArray(v) ? v.length > 0 : v !== null && typeof v === "object" ? Object.keys(v).length > 0 : false) };
23
26
  const props = __props;
24
27
  const emit = __emit;
25
28
  const root = ref(null);
26
- const refs = {};
27
- const state_internalOpen = ref(false);
29
+ const internalOpen = ref(false);
30
+ /** The values the styles' :host-state() rules test. */
31
+ const hostState = computed(() => [internalOpen.value && "internalOpen"].filter(Boolean).join(" "));
28
32
  /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
29
- const dispatch = (name, detail) => {
33
+ function dispatch(name, detail) {
30
34
  const declared = {
31
- "open": {
32
- "bubbles": true,
33
- "composed": true,
34
- "cancelable": false
35
+ open: {
36
+ bubbles: true,
37
+ composed: true,
38
+ cancelable: false
35
39
  },
36
- "close": {
37
- "bubbles": true,
38
- "composed": true,
39
- "cancelable": false
40
+ close: {
41
+ bubbles: true,
42
+ composed: true,
43
+ cancelable: false
40
44
  }
41
45
  };
42
46
  const checks = {
43
- "open": (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
47
+ open: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
44
48
  "open",
45
49
  "reason",
46
50
  "trigger"
47
51
  ].includes(key)),
48
- "close": (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
52
+ close: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["open"] === "boolean" && (detail["reason"] === "action" || detail["reason"] === "programmatic" || detail["reason"] === "light-dismiss" || detail["reason"] === "escape") && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
49
53
  "open",
50
54
  "reason",
51
55
  "trigger"
52
56
  ].includes(key))
53
57
  };
54
58
  if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
55
- emit(name, detail);
59
+ const emitEvent = emit;
60
+ emitEvent(name, detail);
61
+ if (detail !== null && typeof detail === "object" && "open" in detail) emitEvent("update:open", detail["open"]);
56
62
  return root.value?.dispatchEvent(new CustomEvent(name, {
57
63
  bubbles: true,
58
64
  composed: true,
59
65
  ...declared[name],
60
66
  detail
61
67
  })) ?? true;
62
- };
63
- /** The resolved values the styles' :host-state() rules test. */
64
- const hostState = computed(() => ["internalOpen"].flatMap((name) => {
65
- const value = read(name);
66
- const tokens = hn.t(value) ? [name] : [];
67
- if (typeof value === "string" || typeof value === "number") tokens.push(`${name}=${encodeURIComponent(String(value))}`);
68
- return tokens;
69
- }).join(" "));
68
+ }
70
69
  function read(name) {
71
- if (name === "internalOpen") return state_internalOpen.value;
70
+ if (name === "internalOpen") return internalOpen.value;
72
71
  return props[name];
73
72
  }
74
73
  function write(name, value) {
75
74
  if (name === "internalOpen") {
76
- state_internalOpen.value = value;
75
+ internalOpen.value = value;
77
76
  return true;
78
77
  }
79
78
  throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
@@ -87,7 +86,7 @@ var UiPopover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
87
86
  get: (_target, name) => typeof name === "string" ? read(name) : void 0,
88
87
  set: (_target, name, value) => typeof name === "string" && write(name, value)
89
88
  }),
90
- refs,
89
+ refs: {},
91
90
  elements: new Proxy({}, { get: (_target, name) => {
92
91
  if (typeof name !== "string" || root.value === null) return void 0;
93
92
  return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
@@ -144,6 +143,6 @@ var UiPopover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
144
143
  }), [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
145
144
  };
146
145
  }
147
- }), [["__scopeId", "data-v-3d1188bf"]]);
146
+ }), [["__scopeId", "data-v-49809509"]]);
148
147
  //#endregion
149
148
  export { UiPopover_default as t };
@@ -1,5 +1,5 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
- import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, shallowRef, watchEffect } from "vue";
2
+ import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, shallowRef, useTemplateRef, watchEffect } from "vue";
3
3
  import * as controllerModule from "@threadlabs/looma/components/ui-radio/ui-radio.js";
4
4
  //#region .build/vue/UiRadio.vue?vue&type=script&setup=true&lang.ts
5
5
  var _hoisted_1 = ["data-ui-radio-state"];
@@ -18,67 +18,64 @@ var UiRadio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
18
18
  __name: "UiRadio",
19
19
  props: {
20
20
  checked: {
21
- type: [Boolean, null],
21
+ type: Boolean,
22
22
  default: false
23
23
  },
24
24
  disabled: {
25
- type: [Boolean, null],
25
+ type: Boolean,
26
26
  default: false
27
27
  },
28
28
  name: { default: "" },
29
29
  required: {
30
- type: [Boolean, null],
30
+ type: Boolean,
31
31
  default: false
32
32
  },
33
33
  value: { default: "on" }
34
34
  },
35
- emits: ["change"],
35
+ emits: [
36
+ "update:checked",
37
+ "update:value",
38
+ "change"
39
+ ],
36
40
  setup(__props, { emit: __emit }) {
37
- const hn = {
38
- t: (v) => v === true || (typeof v === "string" ? v.length > 0 : typeof v === "number" ? v !== 0 && v === v : Array.isArray(v) ? v.length > 0 : v !== null && typeof v === "object" ? Object.keys(v).length > 0 : false),
39
- text: (v) => v === void 0 || v === null ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? "" : String(v),
40
- attr: (v) => v === void 0 || v === null || v === false ? void 0 : v === true ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? void 0 : String(v)
41
- };
42
41
  const props = __props;
43
42
  const emit = __emit;
44
43
  const root = ref(null);
45
- const refs = {};
46
- const state_internalChecked = ref(false);
44
+ const inputElement = useTemplateRef("input");
45
+ const internalChecked = ref(false);
46
+ /** The values the styles' :host-state() rules test. */
47
+ const hostState = computed(() => [props.disabled && "disabled"].filter(Boolean).join(" "));
47
48
  /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
48
- const dispatch = (name, detail) => {
49
- const declared = { "change": {
50
- "bubbles": true,
51
- "composed": true,
52
- "cancelable": false
49
+ function dispatch(name, detail) {
50
+ const declared = { change: {
51
+ bubbles: true,
52
+ composed: true,
53
+ cancelable: false
53
54
  } };
54
- const checks = { "change": (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["checked"] === "boolean" && typeof detail["value"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
55
+ const checks = { change: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["checked"] === "boolean" && typeof detail["value"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
55
56
  "checked",
56
57
  "value",
57
58
  "trigger"
58
59
  ].includes(key)) };
59
60
  if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
60
- emit(name, detail);
61
+ const emitEvent = emit;
62
+ emitEvent(name, detail);
63
+ if (detail !== null && typeof detail === "object" && "checked" in detail) emitEvent("update:checked", detail["checked"]);
64
+ if (detail !== null && typeof detail === "object" && "value" in detail) emitEvent("update:value", detail["value"]);
61
65
  return root.value?.dispatchEvent(new CustomEvent(name, {
62
66
  bubbles: true,
63
67
  composed: true,
64
68
  ...declared[name],
65
69
  detail
66
70
  })) ?? true;
67
- };
68
- /** The resolved values the styles' :host-state() rules test. */
69
- const hostState = computed(() => ["disabled"].flatMap((name) => {
70
- const value = read(name);
71
- const tokens = hn.t(value) ? [name] : [];
72
- if (typeof value === "string" || typeof value === "number") tokens.push(`${name}=${encodeURIComponent(String(value))}`);
73
- return tokens;
74
- }).join(" "));
71
+ }
75
72
  function read(name) {
76
- if (name === "internalChecked") return state_internalChecked.value;
73
+ if (name === "internalChecked") return internalChecked.value;
77
74
  return props[name];
78
75
  }
79
76
  function write(name, value) {
80
77
  if (name === "internalChecked") {
81
- state_internalChecked.value = value;
78
+ internalChecked.value = value;
82
79
  return true;
83
80
  }
84
81
  throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
@@ -92,7 +89,9 @@ var UiRadio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
92
89
  get: (_target, name) => typeof name === "string" ? read(name) : void 0,
93
90
  set: (_target, name, value) => typeof name === "string" && write(name, value)
94
91
  }),
95
- refs,
92
+ refs: { get input() {
93
+ return inputElement.value;
94
+ } },
96
95
  elements: new Proxy({}, { get: (_target, name) => {
97
96
  if (typeof name !== "string" || root.value === null) return void 0;
98
97
  return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
@@ -148,17 +147,15 @@ var UiRadio_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
148
147
  ref: root
149
148
  }), [createElementVNode("input", {
150
149
  type: "radio",
151
- ".checked": state_internalChecked.value,
152
- disabled: hn.attr(props.disabled),
153
- required: hn.attr(props.required),
154
- value: hn.attr(props.value),
155
- name: hn.attr(props.name),
156
- ref: (element) => {
157
- refs["input"] = element;
158
- }
150
+ ".checked": internalChecked.value,
151
+ disabled: __props.disabled,
152
+ required: __props.required,
153
+ value: __props.value,
154
+ name: __props.name,
155
+ ref: "input"
159
156
  }, null, 40, _hoisted_2), createElementVNode("span", _hoisted_3, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
160
157
  };
161
158
  }
162
- }), [["__scopeId", "data-v-e5d6bc8d"]]);
159
+ }), [["__scopeId", "data-v-cb942e6f"]]);
163
160
  //#endregion
164
161
  export { UiRadio_default as t };
@@ -10,78 +10,74 @@ var UiRadioGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
10
10
  __name: "UiRadioGroup",
11
11
  props: {
12
12
  disabled: {
13
- type: [Boolean, null],
13
+ type: Boolean,
14
14
  default: false
15
15
  },
16
16
  label: { default: "Options" },
17
17
  name: { default: "" },
18
18
  orientation: { default: "horizontal" },
19
19
  required: {
20
- type: [Boolean, null],
20
+ type: Boolean,
21
21
  default: false
22
22
  },
23
23
  value: { default: "" }
24
24
  },
25
- emits: ["select", "change"],
25
+ emits: [
26
+ "update:value",
27
+ "select",
28
+ "change"
29
+ ],
26
30
  setup(__props, { emit: __emit }) {
27
- const hn = {
28
- t: (v) => v === true || (typeof v === "string" ? v.length > 0 : typeof v === "number" ? v !== 0 && v === v : Array.isArray(v) ? v.length > 0 : v !== null && typeof v === "object" ? Object.keys(v).length > 0 : false),
29
- text: (v) => v === void 0 || v === null ? "" : Array.isArray(v) ? v.map(hn.text).join(" ") : typeof v === "object" ? "" : String(v)
30
- };
31
31
  const props = __props;
32
32
  const emit = __emit;
33
33
  const root = ref(null);
34
- const refs = {};
35
- const state_internalValue = ref("");
34
+ const internalValue = ref("");
35
+ /** The values the styles' :host-state() rules test. */
36
+ const hostState = computed(() => [props.orientation && `orientation orientation=${props.orientation}`].filter(Boolean).join(" "));
36
37
  /** Dispatches a component event to Vue listeners and, for controllers and page code, on the root. */
37
- const dispatch = (name, detail) => {
38
+ function dispatch(name, detail) {
38
39
  const declared = {
39
- "select": {
40
- "bubbles": true,
41
- "composed": true,
42
- "cancelable": false
40
+ select: {
41
+ bubbles: true,
42
+ composed: true,
43
+ cancelable: false
43
44
  },
44
- "change": {
45
- "bubbles": true,
46
- "composed": true,
47
- "cancelable": false
45
+ change: {
46
+ bubbles: true,
47
+ composed: true,
48
+ cancelable: false
48
49
  }
49
50
  };
50
51
  const checks = {
51
- "select": (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["value"] === "string" && typeof detail["previousValue"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
52
+ select: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["value"] === "string" && typeof detail["previousValue"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
52
53
  "value",
53
54
  "previousValue",
54
55
  "trigger"
55
56
  ].includes(key)),
56
- "change": (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["checked"] === "boolean" && typeof detail["value"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
57
+ change: (detail) => detail !== null && typeof detail === "object" && !Array.isArray(detail) && typeof detail["checked"] === "boolean" && typeof detail["value"] === "string" && (detail["trigger"] === "keyboard" || detail["trigger"] === "pointer" || detail["trigger"] === "programmatic") && Object.keys(detail).every((key) => [
57
58
  "checked",
58
59
  "value",
59
60
  "trigger"
60
61
  ].includes(key))
61
62
  };
62
63
  if (detail !== void 0 && checks[name] !== void 0 && !checks[name](detail)) throw new TypeError(`HR002: Event \`${name}\` detail does not satisfy its declared type.`);
63
- emit(name, detail);
64
+ const emitEvent = emit;
65
+ emitEvent(name, detail);
66
+ if (detail !== null && typeof detail === "object" && "value" in detail) emitEvent("update:value", detail["value"]);
64
67
  return root.value?.dispatchEvent(new CustomEvent(name, {
65
68
  bubbles: true,
66
69
  composed: true,
67
70
  ...declared[name],
68
71
  detail
69
72
  })) ?? true;
70
- };
71
- /** The resolved values the styles' :host-state() rules test. */
72
- const hostState = computed(() => ["orientation"].flatMap((name) => {
73
- const value = read(name);
74
- const tokens = hn.t(value) ? [name] : [];
75
- if (typeof value === "string" || typeof value === "number") tokens.push(`${name}=${encodeURIComponent(String(value))}`);
76
- return tokens;
77
- }).join(" "));
73
+ }
78
74
  function read(name) {
79
- if (name === "internalValue") return state_internalValue.value;
75
+ if (name === "internalValue") return internalValue.value;
80
76
  return props[name];
81
77
  }
82
78
  function write(name, value) {
83
79
  if (name === "internalValue") {
84
- state_internalValue.value = value;
80
+ internalValue.value = value;
85
81
  return true;
86
82
  }
87
83
  throw new TypeError(`Only declared state is writable; \`${name}\` is not.`);
@@ -95,7 +91,7 @@ var UiRadioGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
95
91
  get: (_target, name) => typeof name === "string" ? read(name) : void 0,
96
92
  set: (_target, name, value) => typeof name === "string" && write(name, value)
97
93
  }),
98
- refs,
94
+ refs: {},
99
95
  elements: new Proxy({}, { get: (_target, name) => {
100
96
  if (typeof name !== "string" || root.value === null) return void 0;
101
97
  return (root.value instanceof HTMLFormElement ? root.value : root.value.querySelector("form"))?.elements.namedItem(name) ?? root.value.querySelector(`[name="${CSS.escape(name)}"]`) ?? void 0;
@@ -152,9 +148,9 @@ var UiRadioGroup_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
152
148
  "data-ui-radio-group-state": hostState.value || void 0,
153
149
  ref_key: "root",
154
150
  ref: root
155
- }), [createElementVNode("legend", null, toDisplayString(hn.text(props.label)), 1), renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
151
+ }), [createElementVNode("legend", null, toDisplayString(__props.label), 1), renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_1);
156
152
  };
157
153
  }
158
- }), [["__scopeId", "data-v-9cda8db8"]]);
154
+ }), [["__scopeId", "data-v-df092584"]]);
159
155
  //#endregion
160
156
  export { UiRadioGroup_default as t };