@threadlabs/looma 0.37.4 → 0.37.6

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 (132) hide show
  1. package/components/shared/active-item-reveal.js +74 -0
  2. package/components/shared/menu-navigation.js +3 -1
  3. package/components/ui-button/ui-button.html +13 -0
  4. package/components/ui-combobox/ui-combobox.js +3 -1
  5. package/components/ui-context-menu/ui-context-menu.js +4 -1
  6. package/components/ui-editor-link-form/ui-editor-link-form.js +3 -1
  7. package/components/ui-editor-mention-menu/ui-editor-mention-menu.js +12 -5
  8. package/components/ui-editor-slash-menu/ui-editor-slash-menu.js +12 -5
  9. package/components/ui-listbox/ui-listbox.js +3 -1
  10. package/components/ui-menu/ui-menu.js +5 -1
  11. package/components/ui-pagination/ui-pagination.html +74 -0
  12. package/components/ui-pagination/ui-pagination.js +19 -0
  13. package/components/ui-search-shell/ui-search-shell.js +7 -4
  14. package/components/ui-skeleton/ui-skeleton.html +91 -0
  15. package/dist/index.js +20 -19
  16. package/docs/catalog.json +491 -1
  17. package/docs/examples/ui-pagination/examples/01-numbered.behavior.js +11 -0
  18. package/package.json +1 -1
  19. package/styles/ui-button.css +12 -0
  20. package/styles/ui-pagination.css +1 -0
  21. package/styles/ui-skeleton.css +91 -0
  22. package/vanilla/UiButton.d.ts +1 -0
  23. package/vanilla/UiButton.js +31 -31
  24. package/vanilla/UiPagination.d.ts +35 -0
  25. package/vanilla/UiPagination.js +202 -0
  26. package/vanilla/UiSkeleton.d.ts +26 -0
  27. package/vanilla/UiSkeleton.js +42 -0
  28. package/vanilla/index.js +2 -0
  29. package/vue/UiButton.d.ts +6 -0
  30. package/vue/UiButton.vue +34 -0
  31. package/vue/UiPagination.d.ts +115 -0
  32. package/vue/UiPagination.js +2 -0
  33. package/vue/UiPagination.vue +598 -0
  34. package/vue/UiSkeleton.d.ts +37 -0
  35. package/vue/UiSkeleton.js +2 -0
  36. package/vue/UiSkeleton.vue +235 -0
  37. package/vue/chunks/UiActionBar.js +1 -1
  38. package/vue/chunks/UiAffordanceScope.js +1 -1
  39. package/vue/chunks/UiAvatar.js +1 -1
  40. package/vue/chunks/UiAvatarGroup.js +1 -1
  41. package/vue/chunks/UiBadge.js +1 -1
  42. package/vue/chunks/UiBreadcrumbItem.js +1 -1
  43. package/vue/chunks/UiBreadcrumbs.js +1 -1
  44. package/vue/chunks/UiButton.js +30 -2
  45. package/vue/chunks/UiCallout.js +1 -1
  46. package/vue/chunks/UiCard.js +1 -1
  47. package/vue/chunks/UiCheckbox.js +1 -1
  48. package/vue/chunks/UiCluster.js +1 -1
  49. package/vue/chunks/UiColorPicker.js +1 -1
  50. package/vue/chunks/UiCombobox.js +1 -1
  51. package/vue/chunks/UiContainer.js +1 -1
  52. package/vue/chunks/UiContextMenu.js +1 -1
  53. package/vue/chunks/UiCover.js +1 -1
  54. package/vue/chunks/UiCurveEditor.js +1 -1
  55. package/vue/chunks/UiCycleButton.js +1 -1
  56. package/vue/chunks/UiDescriptionItem.js +1 -1
  57. package/vue/chunks/UiDescriptionList.js +1 -1
  58. package/vue/chunks/UiDialog.js +1 -1
  59. package/vue/chunks/UiDisclosure.js +1 -1
  60. package/vue/chunks/UiEditable.js +1 -1
  61. package/vue/chunks/UiEditorBlockActions.js +1 -1
  62. package/vue/chunks/UiEditorChipEditor.js +1 -1
  63. package/vue/chunks/UiEditorCodeLanguage.js +1 -1
  64. package/vue/chunks/UiEditorFootnoteEditor.js +1 -1
  65. package/vue/chunks/UiEditorImageToolbar.js +1 -1
  66. package/vue/chunks/UiEditorInsertTableGrid.js +1 -1
  67. package/vue/chunks/UiEditorLinkCard.js +1 -1
  68. package/vue/chunks/UiEditorLinkForm.js +1 -1
  69. package/vue/chunks/UiEditorMentionMenu.js +1 -1
  70. package/vue/chunks/UiEditorMentionMenuItem.js +1 -1
  71. package/vue/chunks/UiEditorSlashMenu.js +1 -1
  72. package/vue/chunks/UiEditorSlashMenuGroup.js +1 -1
  73. package/vue/chunks/UiEditorSlashMenuItem.js +1 -1
  74. package/vue/chunks/UiEditorSurface.js +1 -1
  75. package/vue/chunks/UiEditorTableContextMenu.js +1 -1
  76. package/vue/chunks/UiEditorTableOverlay.js +1 -1
  77. package/vue/chunks/UiEditorTableToolbar.js +1 -1
  78. package/vue/chunks/UiEditorToolbar.js +1 -1
  79. package/vue/chunks/UiFloatingActionButton.js +1 -1
  80. package/vue/chunks/UiFormField.js +1 -1
  81. package/vue/chunks/UiGrid.js +1 -1
  82. package/vue/chunks/UiIcon.js +1 -1
  83. package/vue/chunks/UiIconButton.js +1 -1
  84. package/vue/chunks/UiImage.js +1 -1
  85. package/vue/chunks/UiInput.js +1 -1
  86. package/vue/chunks/UiInputGroup.js +1 -1
  87. package/vue/chunks/UiLightEditor.js +1 -1
  88. package/vue/chunks/UiList.js +1 -1
  89. package/vue/chunks/UiListItem.js +1 -1
  90. package/vue/chunks/UiListbox.js +1 -1
  91. package/vue/chunks/UiMenu.js +1 -1
  92. package/vue/chunks/UiMenuGroup.js +1 -1
  93. package/vue/chunks/UiMenuItem.js +1 -1
  94. package/vue/chunks/UiMeter.js +1 -1
  95. package/vue/chunks/UiNavItem.js +1 -1
  96. package/vue/chunks/UiNumberInput.js +1 -1
  97. package/vue/chunks/UiPageHeader.js +1 -1
  98. package/vue/chunks/UiPagination.js +551 -0
  99. package/vue/chunks/UiPopover.js +1 -1
  100. package/vue/chunks/UiRadio.js +1 -1
  101. package/vue/chunks/UiRadioGroup.js +1 -1
  102. package/vue/chunks/UiReel.js +1 -1
  103. package/vue/chunks/UiScrollArea.js +1 -1
  104. package/vue/chunks/UiSearchResultRow.js +1 -1
  105. package/vue/chunks/UiSearchShell.js +1 -1
  106. package/vue/chunks/UiSection.js +1 -1
  107. package/vue/chunks/UiSelect.js +1 -1
  108. package/vue/chunks/UiSeparator.js +1 -1
  109. package/vue/chunks/UiSidebar.js +1 -1
  110. package/vue/chunks/UiSkeleton.js +151 -0
  111. package/vue/chunks/UiSlider.js +1 -1
  112. package/vue/chunks/UiSpinner.js +1 -1
  113. package/vue/chunks/UiStack.js +1 -1
  114. package/vue/chunks/UiStatusMessage.js +1 -1
  115. package/vue/chunks/UiSwatch.js +1 -1
  116. package/vue/chunks/UiSwitch.js +1 -1
  117. package/vue/chunks/UiSwitcher.js +1 -1
  118. package/vue/chunks/UiTable.js +1 -1
  119. package/vue/chunks/UiTabs.js +1 -1
  120. package/vue/chunks/UiText.js +1 -1
  121. package/vue/chunks/UiTextarea.js +1 -1
  122. package/vue/chunks/UiToast.js +1 -1
  123. package/vue/chunks/UiToastRegion.js +1 -1
  124. package/vue/chunks/UiTooltip.js +1 -1
  125. package/vue/chunks/UiTopBar.js +1 -1
  126. package/vue/chunks/UiTree.js +1 -1
  127. package/vue/chunks/UiTreeItem.js +1 -1
  128. package/vue/chunks/_plugin-vue_export-helper.js +27 -2
  129. package/vue/components.css +93 -0
  130. package/vue/editor/index.js +139 -35
  131. package/vue/index.d.ts +2 -0
  132. package/vue/index.js +3 -1
@@ -0,0 +1,151 @@
1
+ import { C as useReflectedProp, _ as nativeAttrs, a as checkHydratedRoot, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
+ import { h as vuePropInputs, i as checkPropInput, m as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
+ import { computed, createElementBlock, defineComponent, mergeProps, openBlock, unref, watchSyncEffect, withDirectives } from "vue";
4
+ //#region .build/vue/UiSkeleton.vue?vue&type=script&setup=true&lang.ts
5
+ var _hoisted_1 = [
6
+ "data-ui-skeleton-prop-animated",
7
+ "data-ui-skeleton-prop-height",
8
+ "data-ui-skeleton-prop-shape",
9
+ "data-ui-skeleton-prop-width",
10
+ "data-ui-skeleton-state"
11
+ ];
12
+ //#endregion
13
+ //#region .build/vue/UiSkeleton.vue
14
+ var UiSkeleton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
15
+ inheritAttrs: false,
16
+ __name: "UiSkeleton",
17
+ props: {
18
+ animated: { type: null },
19
+ height: { type: null },
20
+ shape: { type: null },
21
+ width: { type: null },
22
+ [BINDING_INPUTS_PROP]: { type: null }
23
+ },
24
+ setup(__props) {
25
+ const propValidityContract = { props: {
26
+ animated: {
27
+ type: {
28
+ kind: "terminal",
29
+ name: "boolean"
30
+ },
31
+ required: false,
32
+ target: { attribute: "animated" },
33
+ description: "Gently pulses the placeholder. Off by default, and always still when the reader requests reduced motion.",
34
+ default: false
35
+ },
36
+ height: {
37
+ type: {
38
+ kind: "terminal",
39
+ name: "string"
40
+ },
41
+ required: false,
42
+ target: { attribute: "height" },
43
+ description: "Block size as a CSS length. Empty reserves one line for text, a square for circles, or 8rem for rectangles. Set only width to keep a circle square.",
44
+ default: ""
45
+ },
46
+ shape: {
47
+ type: {
48
+ kind: "terminal",
49
+ name: "keyword"
50
+ },
51
+ required: false,
52
+ target: { attribute: "shape" },
53
+ description: "The content's silhouette. text reserves one inherited line box with a shorter bar inside it; circle matches a medium Avatar; rectangle reserves a media\n area.",
54
+ values: [
55
+ "text",
56
+ "circle",
57
+ "rectangle"
58
+ ],
59
+ default: "text"
60
+ },
61
+ width: {
62
+ type: {
63
+ kind: "terminal",
64
+ name: "string"
65
+ },
66
+ required: false,
67
+ target: { attribute: "width" },
68
+ description: "Inline size as a CSS length or percentage, constrained to the container. Empty fills the available width for text and rectangles, or matches a medium\n Avatar's outer size for circles.",
69
+ default: ""
70
+ }
71
+ } };
72
+ const props = __props;
73
+ const inputTracking = vuePropInputs({
74
+ animated: false,
75
+ height: "",
76
+ shape: "text",
77
+ width: ""
78
+ }, {
79
+ animated: false,
80
+ height: "",
81
+ shape: "text",
82
+ width: ""
83
+ }, (name, value, source, values) => {
84
+ switch (name) {
85
+ case "animated": return checkPropInput(value, {
86
+ kind: "terminal",
87
+ name: "boolean"
88
+ }, true, true);
89
+ case "height": return checkPropInput(value, {
90
+ kind: "terminal",
91
+ name: "string"
92
+ }, true, true);
93
+ case "shape": return checkPropInput(value, {
94
+ kind: "terminal",
95
+ name: "keyword"
96
+ }, true, true);
97
+ case "width": return checkPropInput(value, {
98
+ kind: "terminal",
99
+ name: "string"
100
+ }, true, true);
101
+ default: return { ok: false };
102
+ }
103
+ }, () => {
104
+ checkedProps.value;
105
+ });
106
+ const propInputs = inputTracking.inputs;
107
+ const checkedProps = computed(() => {
108
+ inputTracking.version.value;
109
+ return {
110
+ animated: propInputs.value("animated", props["animated"], props[BINDING_INPUTS_PROP]),
111
+ height: propInputs.value("height", props["height"], props[BINDING_INPUTS_PROP]),
112
+ shape: propInputs.value("shape", props["shape"], props[BINDING_INPUTS_PROP]),
113
+ width: propInputs.value("width", props["width"], props[BINDING_INPUTS_PROP])
114
+ };
115
+ });
116
+ checkedProps.value;
117
+ watchSyncEffect(() => {
118
+ checkedProps.value;
119
+ });
120
+ const reflectedProp = useReflectedProp();
121
+ checkHydratedRoot("span", "ui-skeleton");
122
+ /** The values the styles' :host() and :state() rules test. */
123
+ const hostState = computed(() => [
124
+ checkedProps.value.shape && "shape",
125
+ checkedProps.value.shape != null && `shape=${encodeURIComponent(checkedProps.value.shape)}`,
126
+ checkedProps.value.animated && "animated"
127
+ ].filter(Boolean).join(" "));
128
+ return (_ctx, _cache) => {
129
+ return withDirectives((openBlock(), createElementBlock("span", mergeProps({
130
+ class: "ui-skeleton",
131
+ "aria-hidden": "true"
132
+ }, unref(nativeAttrs)(_ctx.$attrs), {
133
+ "data-hn": "",
134
+ style: {
135
+ "--ui-skeleton-width": checkedProps.value.width ?? void 0,
136
+ "--ui-skeleton-height": checkedProps.value.height ?? void 0
137
+ },
138
+ "data-ui-skeleton-prop-animated": unref(reflectedProp)("animated", "animated", checkedProps.value.animated, void 0, false),
139
+ "data-ui-skeleton-prop-height": unref(reflectedProp)("height", "height", checkedProps.value.height, void 0, false),
140
+ "data-ui-skeleton-prop-shape": unref(reflectedProp)("shape", "shape", checkedProps.value.shape, void 0, false),
141
+ "data-ui-skeleton-prop-width": unref(reflectedProp)("width", "width", checkedProps.value.width, void 0, false),
142
+ "data-ui-skeleton-state": hostState.value || void 0
143
+ }), null, 16, _hoisted_1)), [[unref(vPropValidity), {
144
+ contract: propValidityContract,
145
+ values: { ...props }
146
+ }]]);
147
+ };
148
+ }
149
+ }), [["__scopeId", "data-v-ee40410c"]]);
150
+ //#endregion
151
+ export { UiSkeleton_default as t };
@@ -1,4 +1,4 @@
1
- import { S as warnUnless, a as concat, b as useReflectedProp, d as initializedState, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, S as useComponentHost, T as warnUnless, _ as nativeAttrs, a as checkHydratedRoot, o as concat, p as initializedState, s as createDispatch, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { d as propValidityState, f as requireInputStatus, h as vuePropInputs, i as checkPropInput, m as vPropValidity, n as READY_INPUT, o as copyStateSeed, r as acceptsControllerWrite, s as evaluateInput, t as BINDING_INPUTS_PROP, u as inputRead } from "./props.js";
3
3
  import { t as UiNumberInput_default } from "./UiNumberInput.js";
4
4
  import { Fragment, computed, createBlock, createElementBlock, createElementVNode, createTextVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderList, toDisplayString, unref, useTemplateRef, watchSyncEffect, withDirectives } from "vue";
@@ -1,4 +1,4 @@
1
- import { a as concat, b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, r as attribute, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, _ as nativeAttrs, a as checkHydratedRoot, i as attribute, o as concat, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { h as vuePropInputs, i as checkPropInput, m as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, unref, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiSpinner.vue?vue&type=script&setup=true&lang.ts
@@ -1,4 +1,4 @@
1
- import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, _ as nativeAttrs, a as checkHydratedRoot, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { h as vuePropInputs, i as checkPropInput, m as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { computed, createElementBlock, defineComponent, mergeProps, openBlock, renderSlot, unref, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiStack.vue?vue&type=script&setup=true&lang.ts
@@ -1,4 +1,4 @@
1
- import { a as concat, b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, r as attribute, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, _ as nativeAttrs, a as checkHydratedRoot, i as attribute, o as concat, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { h as vuePropInputs, i as checkPropInput, m as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { t as UiSpinner_default } from "./UiSpinner.js";
4
4
  import { computed, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeProps, openBlock, renderSlot, toDisplayString, unref, watchSyncEffect, withDirectives } from "vue";
@@ -1,4 +1,4 @@
1
- import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, r as attribute, s as cycleCheckedComputed, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, _ as nativeAttrs, a as checkHydratedRoot, c as cycleCheckedComputed, i as attribute, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { c as inputComputed, h as vuePropInputs, i as checkPropInput, m as vPropValidity, t as BINDING_INPUTS_PROP, u as inputRead } from "./props.js";
3
3
  import { computed, createElementBlock, defineComponent, mergeProps, openBlock, unref, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiSwatch.vue?vue&type=script&setup=true&lang.ts
@@ -1,4 +1,4 @@
1
- import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, S as useComponentHost, _ as nativeAttrs, a as checkHydratedRoot, s as createDispatch, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { d as propValidityState, h as vuePropInputs, i as checkPropInput, m as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { r as vBindControl } from "./control.js";
4
4
  import { computed, createElementBlock, createElementVNode, createTextVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderSlot, toDisplayString, unref, useTemplateRef, watchSyncEffect, withDirectives } from "vue";
@@ -1,4 +1,4 @@
1
- import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, S as useComponentHost, _ as nativeAttrs, a as checkHydratedRoot, s as createDispatch, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { d as propValidityState, h as vuePropInputs, i as checkPropInput, m as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { computed, createElementBlock, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderSlot, unref, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiSwitcher.vue?vue&type=script&setup=true&lang.ts
@@ -1,4 +1,4 @@
1
- import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, S as useComponentHost, _ as nativeAttrs, a as checkHydratedRoot, s as createDispatch, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { d as propValidityState, h as vuePropInputs, i as checkPropInput, m as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { computed, createElementBlock, defineComponent, getCurrentInstance, mergeProps, openBlock, ref, renderSlot, unref, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiTable.vue?vue&type=script&setup=true&lang.ts
@@ -1,4 +1,4 @@
1
- import { a as concat, b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, n as KeyedBoundary, o as createDispatch, t as _plugin_vue_export_helper_default, v as uniqueKeys, y as useComponentHost } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, S as useComponentHost, _ as nativeAttrs, a as checkHydratedRoot, n as KeyedBoundary, o as concat, s as createDispatch, t as _plugin_vue_export_helper_default, x as uniqueKeys } from "./_plugin-vue_export-helper.js";
2
2
  import { d as propValidityState, h as vuePropInputs, i as checkPropInput, m as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { Fragment, computed, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderList, renderSlot, toDisplayString, unref, useTemplateRef, watchSyncEffect, withCtx, withDirectives } from "vue";
4
4
  //#region .build/vue/UiTabs.vue?vue&type=script&setup=true&lang.ts
@@ -1,4 +1,4 @@
1
- import { b as useReflectedProp, g as preserveRootFocus, i as checkHydratedRoot, m as nativeAttrs, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, _ as nativeAttrs, a as checkHydratedRoot, t as _plugin_vue_export_helper_default, y as preserveRootFocus } from "./_plugin-vue_export-helper.js";
2
2
  import { h as vuePropInputs, i as checkPropInput, m as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { computed, createElementBlock, defineComponent, mergeProps, openBlock, renderSlot, unref, useTemplateRef, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiText.vue?vue&type=script&setup=true&lang.ts
@@ -1,4 +1,4 @@
1
- import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, S as useComponentHost, _ as nativeAttrs, a as checkHydratedRoot, s as createDispatch, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { a as checkedProp, d as propValidityState, h as vuePropInputs, i as checkPropInput, m as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { n as readBoundControl, r as vBindControl } from "./control.js";
4
4
  import { computed, createElementBlock, defineComponent, getCurrentInstance, mergeProps, openBlock, ref, unref, watchSyncEffect, withDirectives } from "vue";
@@ -1,4 +1,4 @@
1
- import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, r as attribute, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, S as useComponentHost, _ as nativeAttrs, a as checkHydratedRoot, i as attribute, s as createDispatch, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { d as propValidityState, h as vuePropInputs, i as checkPropInput, m as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { t as UiIcon_default } from "./UiIcon.js";
4
4
  import { t as UiIconButton_default } from "./UiIconButton.js";
@@ -1,4 +1,4 @@
1
- import { a as concat, b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, n as KeyedBoundary, o as createDispatch, t as _plugin_vue_export_helper_default, v as uniqueKeys, y as useComponentHost } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, S as useComponentHost, _ as nativeAttrs, a as checkHydratedRoot, n as KeyedBoundary, o as concat, s as createDispatch, t as _plugin_vue_export_helper_default, x as uniqueKeys } from "./_plugin-vue_export-helper.js";
2
2
  import { d as propValidityState, h as vuePropInputs, i as checkPropInput, m as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { t as UiIcon_default } from "./UiIcon.js";
4
4
  import { t as UiIconButton_default } from "./UiIconButton.js";
@@ -1,4 +1,4 @@
1
- import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, S as useComponentHost, _ as nativeAttrs, a as checkHydratedRoot, s as createDispatch, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { d as propValidityState, h as vuePropInputs, i as checkPropInput, m as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { computed, createElementBlock, createElementVNode, createTextVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderSlot, toDisplayString, unref, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiTooltip.vue?vue&type=script&setup=true&lang.ts
@@ -1,4 +1,4 @@
1
- import { i as checkHydratedRoot, m as nativeAttrs, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
1
+ import { _ as nativeAttrs, a as checkHydratedRoot, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, renderSlot, unref } from "vue";
3
3
  //#region .build/vue/UiTopBar.vue?vue&type=script&setup=true&lang.ts
4
4
  var _hoisted_1 = {
@@ -1,4 +1,4 @@
1
- import { b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, S as useComponentHost, _ as nativeAttrs, a as checkHydratedRoot, s as createDispatch, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { d as propValidityState, h as vuePropInputs, i as checkPropInput, m as vPropValidity, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { computed, createElementBlock, defineComponent, getCurrentInstance, mergeProps, openBlock, ref, renderSlot, unref, watchSyncEffect, withDirectives } from "vue";
4
4
  //#region .build/vue/UiTree.vue?vue&type=script&setup=true&lang.ts
@@ -1,4 +1,4 @@
1
- import { a as concat, b as useReflectedProp, i as checkHydratedRoot, m as nativeAttrs, o as createDispatch, r as attribute, t as _plugin_vue_export_helper_default, y as useComponentHost } from "./_plugin-vue_export-helper.js";
1
+ import { C as useReflectedProp, S as useComponentHost, _ as nativeAttrs, a as checkHydratedRoot, i as attribute, o as concat, s as createDispatch, t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
2
  import { d as propValidityState, h as vuePropInputs, i as checkPropInput, m as vPropValidity, r as acceptsControllerWrite, t as BINDING_INPUTS_PROP } from "./props.js";
3
3
  import { t as UiButton_default } from "./UiButton.js";
4
4
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, getCurrentInstance, mergeProps, openBlock, provide, ref, renderSlot, toDisplayString, unref, useTemplateRef, watchSyncEffect, withCtx, withDirectives } from "vue";
@@ -1,4 +1,4 @@
1
- import { Fragment, computed, customRef, defineComponent, getCurrentInstance, h, onBeforeUnmount, onBeforeUpdate, onMounted, onUpdated, ref, shallowRef, useSlots, watch, watchEffect } from "vue";
1
+ import { Fragment, computed, createTextVNode, customRef, defineComponent, getCurrentInstance, h, onBeforeUnmount, onBeforeUpdate, onMounted, onUpdated, ref, shallowRef, useSlots, watch, watchEffect } from "vue";
2
2
  //#region .build/vue/host.ts
3
3
  var READY_INPUT = {
4
4
  ready: true,
@@ -839,6 +839,26 @@ function useScopedSlotName() {
839
839
  return name;
840
840
  };
841
841
  }
842
+ function inlineTextSegment(value, accepted, text) {
843
+ return {
844
+ value,
845
+ accepted,
846
+ text: accepted && value !== Symbol.for("html-next.invalid-result") ? text(value) ?? "" : ""
847
+ };
848
+ }
849
+ var RetainedInlineText = /* @__PURE__ */ defineComponent({
850
+ props: { segments: {
851
+ type: Array,
852
+ required: true
853
+ } },
854
+ setup(props) {
855
+ const previous = [];
856
+ return () => createTextVNode(props.segments.map((segment, index) => {
857
+ if (segment.accepted && segment.value !== Symbol.for("html-next.invalid-result")) previous[index] = segment.text;
858
+ return previous[index] ?? "";
859
+ }).join(""));
860
+ }
861
+ });
842
862
  var KeyedFailure = /* @__PURE__ */ defineComponent({
843
863
  props: { error: {
844
864
  type: null,
@@ -997,6 +1017,11 @@ function decimalResult(result, a, b, left, right, places, combine) {
997
1017
  const integer = combine(Math.round(a * 10 ** left), Math.round(b * 10 ** right));
998
1018
  return places > 22 && integer !== 0 ? Number(`${integer}e-${places}`) : integer / 10 ** places;
999
1019
  }
1020
+ /** `a + b` at the larger operand's decimal places: `decimalAdd(0.1, 0.2)` is 0.3. */
1021
+ function decimalAdd(a, b) {
1022
+ const places = Math.max(decimalPlaces(a), decimalPlaces(b));
1023
+ return decimalResult(a + b, a, b, places, places, places, (x, y) => x + y);
1024
+ }
1000
1025
  /** `a - b` at the larger operand's decimal places: `decimalSubtract(0.3, 0.1)` is 0.2. */
1001
1026
  function decimalSubtract(a, b) {
1002
1027
  const places = Math.max(decimalPlaces(a), decimalPlaces(b));
@@ -1237,4 +1262,4 @@ var _plugin_vue_export_helper_default = (sfc, props) => {
1237
1262
  return target;
1238
1263
  };
1239
1264
  //#endregion
1240
- export { warnUnless as S, text as _, concat as a, useReflectedProp as b, decimalMultiply as c, initializedState as d, list as f, preserveRootFocus as g, number as h, checkHydratedRoot as i, decimalSubtract as l, nativeAttrs as m, KeyedBoundary as n, createDispatch as o, math as p, attribute as r, cycleCheckedComputed as s, _plugin_vue_export_helper_default as t, formatValue as u, uniqueKeys as v, useScopedSlotName as x, useComponentHost as y };
1265
+ export { useReflectedProp as C, useComponentHost as S, warnUnless as T, nativeAttrs as _, checkHydratedRoot as a, text as b, cycleCheckedComputed as c, decimalSubtract as d, formatValue as f, math as g, list as h, attribute as i, decimalAdd as l, inlineTextSegment as m, KeyedBoundary as n, concat as o, initializedState as p, RetainedInlineText as r, createDispatch as s, _plugin_vue_export_helper_default as t, decimalMultiply as u, number as v, useScopedSlotName as w, uniqueKeys as x, preserveRootFocus as y };
@@ -1115,6 +1115,8 @@ svg,.arc {
1115
1115
  /* A count is an adornment, not another line of label text. Keep the standard control height
1116
1116
  with enough inset for a 24px mark; large content can still grow the button naturally. */
1117
1117
 
1118
+ /* Short numeric and icon actions share a minimum box; large values remain readable. */
1119
+
1118
1120
  /* Card actions inherit Button's palette and behavior; only their shared layout changes.
1119
1121
  The icon may contain any decorative composition. Empty icons remove their column. */
1120
1122
 
@@ -1206,6 +1208,7 @@ svg,.arc {
1206
1208
  inline-size: 100%;
1207
1209
  }
1208
1210
  :scope:where([data-hn-ui-button]) {
1211
+ --_button-square-size: var(--ui-button-min-block-size, var(--ui-control-size-md));
1209
1212
  appearance: none;
1210
1213
  min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md));
1211
1214
  border-style: solid;
@@ -1261,6 +1264,7 @@ svg,.arc {
1261
1264
  }
1262
1265
  }
1263
1266
  :scope[data-ui-button-state~="size=xs"]:where([data-hn-ui-button]) {
1267
+ --_button-square-size: 1.5rem;
1264
1268
  min-block-size: 1.5rem;
1265
1269
  padding: calc(var(--ui-space-0-5) * 1.5) calc(var(--ui-space-1) * 1.25) !important;
1266
1270
  font-size: var(--ui-font-size-xs);
@@ -1269,17 +1273,23 @@ svg,.arc {
1269
1273
  border-radius: var(--ui-button-radius, var(--ui-radius-round));
1270
1274
  }
1271
1275
  :scope[data-ui-button-state~="size=sm"]:where([data-hn-ui-button]) {
1276
+ --_button-square-size: var(--ui-control-size-sm);
1272
1277
  min-block-size: var(--ui-control-size-sm);
1273
1278
  padding: var(--ui-control-inset-block-sm, var(--ui-space-1))
1274
1279
  var(--ui-action-inset-sm, var(--ui-space-2)) !important;
1275
1280
  font-size: var(--ui-font-size-sm);
1276
1281
  }
1277
1282
  :scope[data-ui-button-state~="size=lg"]:where([data-hn-ui-button]) {
1283
+ --_button-square-size: var(--ui-control-size-lg);
1278
1284
  min-block-size: var(--ui-control-size-lg);
1279
1285
  padding: var(--ui-control-inset-block-lg, var(--ui-space-3))
1280
1286
  var(--ui-action-inset-lg, var(--ui-space-4)) !important;
1281
1287
  font-size: var(--ui-font-size-md);
1282
1288
  }
1289
+ :scope[data-ui-button-state~="square"]:not([data-appearance="link"], [data-appearance="card"]):where([data-hn-ui-button]) {
1290
+ min-inline-size: var(--_button-square-size);
1291
+ padding-inline: var(--ui-space-1) !important;
1292
+ }
1283
1293
  :scope[data-appearance="card"]:where([data-hn-ui-button]) {
1284
1294
  display: grid !important;
1285
1295
  grid-template-columns: auto minmax(0, 1fr) auto;
@@ -10391,6 +10401,77 @@ dialog:where([data-hn-ui-search-shell]) {
10391
10401
  }
10392
10402
  }
10393
10403
 
10404
+ /* Dimensions belong to this placeholder, never a nested or neighbouring one. */
10405
+ @property --ui-skeleton-width {
10406
+ syntax: "*";
10407
+ inherits: false;
10408
+ }
10409
+ @property --ui-skeleton-height {
10410
+ syntax: "*";
10411
+ inherits: false;
10412
+ }
10413
+ @keyframes ui-skeleton-pulse-ee40410c {
10414
+ 50% {
10415
+ opacity: 0.45;
10416
+ }
10417
+ }
10418
+ @scope (.ui-skeleton) to ([data-hn]) {
10419
+ :scope {
10420
+ display: block !important;
10421
+ position: relative;
10422
+ box-sizing: border-box !important;
10423
+ flex: none;
10424
+ min-inline-size: 0;
10425
+ max-inline-size: 100%;
10426
+ inline-size: var(--ui-skeleton-width, 100%);
10427
+ block-size: var(--ui-skeleton-height, 1lh);
10428
+ margin: 0 !important;
10429
+ font: inherit;
10430
+ }
10431
+ :scope::before {
10432
+ content: "";
10433
+ position: absolute;
10434
+ inset: 0;
10435
+ border-radius: var(--ui-radius-sm);
10436
+ background: color-mix(in srgb, var(--ui-text-primary) 16%, transparent);
10437
+ }
10438
+ :scope[data-ui-skeleton-state~="shape=text"]::before {
10439
+ inset-block: 22%;
10440
+ }
10441
+ :scope[data-ui-skeleton-state~="shape=circle"] {
10442
+ inline-size: var(--ui-skeleton-width, calc(2.5rem + 2 * var(--ui-border-width)));
10443
+ block-size: var(--ui-skeleton-height, auto);
10444
+ aspect-ratio: 1;
10445
+ }
10446
+ :scope[data-ui-skeleton-state~="shape=circle"]::before {
10447
+ border-radius: var(--ui-radius-round);
10448
+ }
10449
+ :scope[data-ui-skeleton-state~="shape=rectangle"] {
10450
+ block-size: var(--ui-skeleton-height, 8rem);
10451
+ }
10452
+ :scope[data-ui-skeleton-state~="shape=rectangle"]::before {
10453
+ border-radius: var(--ui-radius-md);
10454
+ }
10455
+ :scope[data-ui-skeleton-state~="animated"]::before {
10456
+ animation: ui-skeleton-pulse-ee40410c 1.6s ease-in-out infinite;
10457
+ }
10458
+ @media (prefers-reduced-motion: reduce) {
10459
+ :scope[data-ui-skeleton-state~="animated"]::before {
10460
+ animation: none;
10461
+ }
10462
+ }
10463
+ @media (forced-colors: active) {
10464
+ :scope::before {
10465
+ background: CanvasText;
10466
+ opacity: 0.2;
10467
+ animation: none;
10468
+ }
10469
+ }
10470
+ :scope[hidden] {
10471
+ display: none !important;
10472
+ }
10473
+ }
10474
+
10394
10475
  @scope (.ui-slider) to ([data-hn]) {
10395
10476
  :scope {
10396
10477
  display: grid !important;
@@ -13530,6 +13611,7 @@ html[data-ui-input-modality="touch"]
13530
13611
  }
13531
13612
 
13532
13613
  :scope:where([data-component~="ui-button"]) {
13614
+ --_button-square-size: var(--ui-button-min-block-size, var(--ui-control-size-md));
13533
13615
  appearance: none;
13534
13616
  min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md));
13535
13617
  border-style: solid;
@@ -13594,6 +13676,7 @@ html[data-ui-input-modality="touch"]
13594
13676
  }
13595
13677
 
13596
13678
  :scope:where([data-component~="ui-button"])[data-ui-button-state~="size=xs"] {
13679
+ --_button-square-size: 1.5rem;
13597
13680
  min-block-size: 1.5rem;
13598
13681
  padding: calc(var(--ui-space-0-5) * 1.5) calc(var(--ui-space-1) * 1.25) !important;
13599
13682
  font-size: var(--ui-font-size-xs);
@@ -13604,17 +13687,25 @@ html[data-ui-input-modality="touch"]
13604
13687
  }
13605
13688
 
13606
13689
  :scope:where([data-component~="ui-button"])[data-ui-button-state~="size=sm"] {
13690
+ --_button-square-size: var(--ui-control-size-sm);
13607
13691
  min-block-size: var(--ui-control-size-sm);
13608
13692
  padding: var(--ui-control-inset-block-sm, var(--ui-space-1)) var(--ui-action-inset-sm, var(--ui-space-2)) !important;
13609
13693
  font-size: var(--ui-font-size-sm);
13610
13694
  }
13611
13695
 
13612
13696
  :scope:where([data-component~="ui-button"])[data-ui-button-state~="size=lg"] {
13697
+ --_button-square-size: var(--ui-control-size-lg);
13613
13698
  min-block-size: var(--ui-control-size-lg);
13614
13699
  padding: var(--ui-control-inset-block-lg, var(--ui-space-3)) var(--ui-action-inset-lg, var(--ui-space-4)) !important;
13615
13700
  font-size: var(--ui-font-size-md);
13616
13701
  }
13617
13702
 
13703
+ /* Short numeric and icon actions share a minimum box; large values remain readable. */
13704
+ :scope:where([data-component~="ui-button"])[data-ui-button-state~="square"]:not([data-appearance="link"], [data-appearance="card"]) {
13705
+ min-inline-size: var(--_button-square-size);
13706
+ padding-inline: var(--ui-space-1) !important;
13707
+ }
13708
+
13618
13709
  /* Card actions inherit Button's palette and behavior; only their shared layout changes.
13619
13710
  The icon may contain any decorative composition. Empty icons remove their column. */
13620
13711
  :scope:where([data-component~="ui-button"])[data-appearance="card"] {
@@ -13931,6 +14022,8 @@ html[data-ui-input-modality="touch"]
13931
14022
  @supports (text-box-trim: trim-both) {
13932
14023
  }
13933
14024
 
14025
+ /* Short numeric and icon actions share a minimum box; large values remain readable. */
14026
+
13934
14027
  /* Card actions inherit Button's palette and behavior; only their shared layout changes.
13935
14028
  The icon may contain any decorative composition. Empty icons remove their column. */
13936
14029