ropav 0.12.1 → 0.12.3

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 (99) hide show
  1. package/dist/components/alert-dialog/alert-dialog-container.js +2 -4
  2. package/dist/components/alert-dialog/alert-dialog-trigger.js +26 -19
  3. package/dist/components/autocomplete/autocomplete-indicator.js +32 -19
  4. package/dist/components/autocomplete/autocomplete-value.js +1 -1
  5. package/dist/components/avatar-group/avatar-group-overflow.js +1 -1
  6. package/dist/components/breadcrumbs/breadcrumbs-item.js +6 -3
  7. package/dist/components/button/button-root.js +44 -25
  8. package/dist/components/calendar/calendar-cell.js +60 -40
  9. package/dist/components/calendar/calendar-grid.js +17 -9
  10. package/dist/components/calendar/calendar-nav-button.js +31 -18
  11. package/dist/components/calendar/calendar-root.js +2 -1
  12. package/dist/components/calendar-year-picker/calendar-year-picker-grid.js +1 -0
  13. package/dist/components/close-button/close-button-root.js +45 -26
  14. package/dist/components/color-area/color-area-root.js +5 -4
  15. package/dist/components/color-area/color-area-thumb.js +28 -13
  16. package/dist/components/color-input-group/color-input-group-input.js +31 -19
  17. package/dist/components/color-picker/color-picker-trigger.js +30 -19
  18. package/dist/components/color-slider/color-slider-output.js +2 -1
  19. package/dist/components/color-slider/color-slider-thumb.js +6 -4
  20. package/dist/components/color-slider/color-slider-track.js +7 -5
  21. package/dist/components/combo-box/combo-box-trigger.js +33 -20
  22. package/dist/components/combo-box/combo-box-value.js +1 -1
  23. package/dist/components/date-input-group/date-input-group-hidden-input.js +2 -1
  24. package/dist/components/date-input-group/date-input-group-input.js +23 -13
  25. package/dist/components/date-input-group/date-input-group-root.js +21 -13
  26. package/dist/components/date-input-group/date-input-group-segment.js +21 -12
  27. package/dist/components/date-picker/date-picker-trigger.js +19 -10
  28. package/dist/components/date-range-picker/date-range-picker-trigger.js +19 -10
  29. package/dist/components/drawer/drawer-content.js +2 -4
  30. package/dist/components/drawer/drawer-trigger.js +39 -23
  31. package/dist/components/dropdown/dropdown-menu.js +17 -10
  32. package/dist/components/dropdown/dropdown-trigger.js +39 -23
  33. package/dist/components/input/input-root.js +30 -18
  34. package/dist/components/input-group/input-group-input.js +30 -18
  35. package/dist/components/input-group/input-group-textarea.js +30 -18
  36. package/dist/components/input-otp/input-otp-root.js +38 -21
  37. package/dist/components/list-box/list-box-drop-indicator.js +4 -6
  38. package/dist/components/list-box-item/list-box-item-root.js +38 -16
  39. package/dist/components/menu/menu-root.js +17 -9
  40. package/dist/components/modal/modal-container.js +2 -4
  41. package/dist/components/modal/modal-trigger.js +26 -19
  42. package/dist/components/number-field/number-field-decrement-button.js +30 -18
  43. package/dist/components/number-field/number-field-group.js +25 -13
  44. package/dist/components/number-field/number-field-increment-button.js +30 -18
  45. package/dist/components/number-field/number-field-input.js +31 -19
  46. package/dist/components/popover/popover-trigger.js +31 -19
  47. package/dist/components/radio-group/radio-group-root.js +2 -1
  48. package/dist/components/range-calendar/range-calendar-cell.js +65 -43
  49. package/dist/components/range-calendar/range-calendar-grid.js +17 -9
  50. package/dist/components/range-calendar/range-calendar-nav-button.js +31 -18
  51. package/dist/components/range-calendar/range-calendar-root.js +13 -8
  52. package/dist/components/search-field/search-field-input.js +30 -18
  53. package/dist/components/search-field/search-field-search-icon.js +1 -1
  54. package/dist/components/segmented-control/segmented-control-root.js +1 -3
  55. package/dist/components/segmented-control/segmented-control.types.d.ts +0 -1
  56. package/dist/components/select/select-trigger.js +36 -22
  57. package/dist/components/select/select-value.js +1 -1
  58. package/dist/components/slider/slider-output.js +2 -1
  59. package/dist/components/slider/slider-root.js +5 -4
  60. package/dist/components/slider/slider-thumb.js +5 -4
  61. package/dist/components/splitter/splitter.state.js +6 -1
  62. package/dist/components/table/table-body.js +1 -1
  63. package/dist/components/table/table-cell.js +3 -1
  64. package/dist/components/table/table-column-resizer.js +2 -1
  65. package/dist/components/table/table-drop-indicator.js +9 -6
  66. package/dist/components/table/table-load-more.js +1 -1
  67. package/dist/components/table/table-row.js +9 -6
  68. package/dist/components/table/use-grid-selection-announcement.js +3 -1
  69. package/dist/components/table/use-table-collection.js +3 -0
  70. package/dist/components/tabs/tabs-list-container.js +2 -1
  71. package/dist/components/tabs/tabs-root.js +1 -3
  72. package/dist/components/tabs/tabs.types.d.ts +0 -1
  73. package/dist/components/textarea/textarea-root.js +30 -18
  74. package/dist/components/toast/toast-default-content.js +1 -1
  75. package/dist/components/toast/toast-provider.js +19 -13
  76. package/dist/components/toast/toast-renderable.js +1 -1
  77. package/dist/components/toast/toast-root.js +10 -1
  78. package/dist/components/tooltip/tooltip-trigger.js +27 -15
  79. package/dist/composables/use-calendar-grid.js +2 -1
  80. package/dist/composables/use-collection.js +12 -0
  81. package/dist/composables/use-color-field.js +31 -29
  82. package/dist/composables/use-combo-box-state.js +2 -1
  83. package/dist/composables/use-combo-box.js +2 -1
  84. package/dist/composables/use-disclosure-panel.js +2 -1
  85. package/dist/composables/use-drag.js +9 -6
  86. package/dist/composables/use-drop.js +2 -1
  87. package/dist/composables/use-droppable-collection.js +2 -1
  88. package/dist/composables/use-input-otp.js +5 -2
  89. package/dist/composables/use-move.js +2 -1
  90. package/dist/composables/use-single-select-list-state.js +1 -0
  91. package/dist/composables/use-time-field-state.js +2 -1
  92. package/dist/composables/use-virtualizer.js +1 -0
  93. package/dist/ropav.min.css +1 -1
  94. package/dist/utils/create-context.js +2 -1
  95. package/dist/utils/platform.js +2 -1
  96. package/dist/utils/position.js +4 -2
  97. package/dist/version.js +1 -1
  98. package/package.json +2 -6
  99. package/dist/styles-compat-0.10.css +0 -3
@@ -25,9 +25,11 @@ var registry = () => {
25
25
  const version = shallowRef(0);
26
26
  return {
27
27
  get: (key) => {
28
+ version.value;
28
29
  return items.get(key);
29
30
  },
30
31
  keys: computed(() => {
32
+ version.value;
31
33
  return sortByDocumentOrder([...items.entries()], ([, meta]) => meta.element()).map(([key]) => key);
32
34
  }),
33
35
  register: (key, meta) => {
@@ -83,7 +85,8 @@ var useSplitterState = (options) => {
83
85
  const indexOf = (key) => panels.keys.value.indexOf(key);
84
86
  const getPanelSize = (key) => layout.value[indexOf(key)] ?? 0;
85
87
  const boundsOf = (index) => {
86
- const panel = panels.get(panels.keys.value[index]);
88
+ const key = panels.keys.value[index];
89
+ const panel = panels.get(key);
87
90
  const available = availableSize.value;
88
91
  const min = getMinSize(panel.minSize(), available);
89
92
  const shut = panel.isCollapsible() ? getMinSize(panel.collapsedSize() ?? 0, available) : min;
@@ -206,6 +209,8 @@ var useSplitterState = (options) => {
206
209
  };
207
210
  };
208
211
  const neighbourCache = computed(() => {
212
+ panels.keys.value;
213
+ handles.keys.value;
209
214
  return /* @__PURE__ */ new Map();
210
215
  });
211
216
  const neighboursOf = (handleKey) => {
@@ -107,7 +107,7 @@ var table_body_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PUR
107
107
  return createDynamicComponent(() => unref(virtualizer) ? "div" : "td", {
108
108
  "aria-colspan": () => unref(virtualizer) ? columnCount.value : void 0,
109
109
  colspan: () => unref(virtualizer) ? void 0 : columnCount.value,
110
- role: "rowheader",
110
+ role: "gridcell",
111
111
  style: () => emptyStateStyle.value
112
112
  }, extend(() => {
113
113
  return createSlot("empty", null, null, 4);
@@ -58,7 +58,8 @@ var table_cell_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PUR
58
58
  const virtualizer = useTableVirtualizerContext();
59
59
  const layoutInfo = computed(() => {
60
60
  if (!virtualizer || columnKey.value == null) return null;
61
- return virtualizer.getLayoutInfo(virtualizer.collection.value.cellKey(rowKey.value, columnKey.value));
61
+ const collection = virtualizer.collection.value;
62
+ return virtualizer.getLayoutInfo(collection.cellKey(rowKey.value, columnKey.value));
62
63
  });
63
64
  const parentLayoutInfo = computed(() => virtualizer ? virtualizer.getLayoutInfo(rowKey.value) : null);
64
65
  const placement = virtualizer ? useVirtualizerItem({
@@ -69,6 +70,7 @@ var table_cell_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PUR
69
70
  const n1 = createDynamicComponent(() => unref(virtualizer) ? "div" : "td", {
70
71
  id: () => cellId.value,
71
72
  "aria-colindex": () => unref(virtualizer) && index.value >= 0 ? index.value + 1 : void 0,
73
+ "aria-label": () => isRowHeader.value ? props.textValue : void 0,
72
74
  class: () => ["rp-table__cell", props.class],
73
75
  "data-collection": () => unref(collectionId),
74
76
  "data-column-index": () => index.value < 0 ? void 0 : index.value,
@@ -103,7 +103,8 @@ var table_column_resizer_vue_vue_type_script_setup_true_vapor_true_lang_default
103
103
  * arrow press does.
104
104
  */
105
105
  const onChange = (event) => {
106
- resize(parseFloat(event.target.value) > columnWidth.value ? columnWidth.value + KEYBOARD_STEP : columnWidth.value - KEYBOARD_STEP);
106
+ const next = parseFloat(event.target.value);
107
+ resize(next > columnWidth.value ? columnWidth.value + KEYBOARD_STEP : columnWidth.value - KEYBOARD_STEP);
107
108
  };
108
109
  const n1 = t0();
109
110
  const n0 = child(n1);
@@ -3,7 +3,7 @@ import { useVirtualizerStateContext } from "../virtualizer/virtualizer.context.j
3
3
  import { visuallyHiddenStyle } from "../../utils/visually-hidden.js";
4
4
  import { useTableGridContext, useTableVirtualizerContext } from "./table.context.js";
5
5
  import table_virtualizer_item_default from "./table-virtualizer-item.js";
6
- import { computed, createComponent, createDynamicComponent, createIf, defineVaporComponent, extend, on, renderEffect, setDynamicProps, setStaticTemplateRef, shallowRef, template, unref } from "vue";
6
+ import { computed, createComponent, createDynamicComponent, createIf, defineVaporComponent, extend, renderEffect, setDynamicProps, setStaticTemplateRef, shallowRef, template, unref } from "vue";
7
7
  //#region src/components/table/table-drop-indicator.vue?vue&type=script&setup=true&vapor=true&lang.ts
8
8
  var t0 = template("<div>");
9
9
  /**
@@ -81,12 +81,15 @@ var table_drop_indicator_vue_vue_type_script_setup_true_vapor_true_lang_default
81
81
  style: { padding: 0 }
82
82
  }, () => {
83
83
  const n2 = t0();
84
- on(n2, "click", () => unref(indicator)?.handlers.onClick());
85
84
  setStaticTemplateRef(n2, element, null, "element");
86
- renderEffect(() => setDynamicProps(n2, [unref(indicator)?.attrs.value, {
87
- role: "button",
88
- style: unref(visuallyHiddenStyle)
89
- }]));
85
+ renderEffect(() => {
86
+ const _indicator = unref(indicator);
87
+ setDynamicProps(n2, [_indicator?.attrs.value, {
88
+ role: "button",
89
+ style: unref(visuallyHiddenStyle),
90
+ onClick: () => _indicator?.handlers.onClick()
91
+ }]);
92
+ });
90
93
  return n2;
91
94
  }, 4);
92
95
  }, { _: 1 }), 4);
@@ -100,7 +100,7 @@ var table_load_more_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@
100
100
  return createDynamicComponent(() => unref(virtualizer) ? "div" : "td", {
101
101
  "aria-colspan": () => unref(virtualizer) ? columnCount.value : void 0,
102
102
  colspan: () => unref(virtualizer) ? void 0 : columnCount.value,
103
- role: "rowheader",
103
+ role: "gridcell",
104
104
  style: () => indicatorStyle.value
105
105
  }, extend(() => {
106
106
  return createSlot("default", null, null, 4);
@@ -6,7 +6,7 @@ import { useVirtualizerItem } from "../virtualizer/use-virtualizer-item.js";
6
6
  import { visuallyHiddenStyle } from "../../utils/visually-hidden.js";
7
7
  import { provideTableRowContext, useTableGridContext, useTableVirtualizerContext } from "./table.context.js";
8
8
  import { createTableRegistry, tableCellId } from "./use-table-collection.js";
9
- import { computed, createDynamicComponent, createIf, createSlot, defineVaporComponent, extend, on, renderEffect, setDynamicProps, setStaticTemplateRef, shallowRef, template, unref, watch } from "vue";
9
+ import { computed, createDynamicComponent, createIf, createSlot, defineVaporComponent, extend, renderEffect, setDynamicProps, setStaticTemplateRef, shallowRef, template, unref, watch } from "vue";
10
10
  //#region src/components/table/table-row.vue?vue&type=script&setup=true&vapor=true&lang.ts
11
11
  var t0 = template("<div>");
12
12
  var table_row_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
@@ -173,12 +173,15 @@ var table_row_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
173
173
  style: { padding: 0 }
174
174
  }, () => {
175
175
  const n2 = t0();
176
- on(n2, "click", () => unref(dropIndicator).handlers.onClick());
177
176
  setStaticTemplateRef(n2, dropIndicatorElement, null, "dropIndicatorElement");
178
- renderEffect(() => setDynamicProps(n2, [unref(dropIndicator).attrs.value, {
179
- role: "button",
180
- style: unref(visuallyHiddenStyle)
181
- }]));
177
+ renderEffect(() => {
178
+ const _dropIndicator = unref(dropIndicator);
179
+ setDynamicProps(n2, [_dropIndicator.attrs.value, {
180
+ role: "button",
181
+ style: unref(visuallyHiddenStyle),
182
+ onClick: () => _dropIndicator.handlers.onClick()
183
+ }]);
184
+ });
182
185
  return n2;
183
186
  }, 4);
184
187
  }, { _: 1 }));
@@ -41,7 +41,9 @@ var useGridSelectionAnnouncement = (options) => {
41
41
  else if (added.size === 1 && removed.size === 0) single([...added][0], "selected");
42
42
  else if (removed.size === 1 && added.size === 0) single([...removed][0], "not selected");
43
43
  if (selection.selectionMode.value === "multiple") {
44
- if (messages.length === 0 || current === "all" || (current === "all" ? 0 : current.size) > 1 || last === "all" || (last === "all" ? 0 : last.size) > 1) messages.push(current === "all" ? "All items selected." : countMessage(selection.selectedKeys.value.size));
44
+ const size = current === "all" ? 0 : current.size;
45
+ const lastSize = last === "all" ? 0 : last.size;
46
+ if (messages.length === 0 || current === "all" || size > 1 || last === "all" || lastSize > 1) messages.push(current === "all" ? "All items selected." : countMessage(selection.selectedKeys.value.size));
45
47
  }
46
48
  if (messages.length > 0) announce(messages.join(" "));
47
49
  });
@@ -19,10 +19,12 @@ var createTableRegistry = () => {
19
19
  const items = /* @__PURE__ */ new Map();
20
20
  const version = shallowRef(0);
21
21
  const orderedKeys = computed(() => {
22
+ version.value;
22
23
  return [...items.entries()].filter(([, meta]) => meta.element()?.isConnected).sort(([, a], [, b]) => a.element().compareDocumentPosition(b.element()) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1).map(([key]) => key);
23
24
  });
24
25
  return {
25
26
  getItem: (key) => {
27
+ version.value;
26
28
  return items.get(key);
27
29
  },
28
30
  indexOf: (key) => orderedKeys.value.indexOf(key),
@@ -39,6 +41,7 @@ var createTableRegistry = () => {
39
41
  };
40
42
  },
41
43
  size: computed(() => {
44
+ version.value;
42
45
  return orderedKeys.value.length;
43
46
  })
44
47
  };
@@ -26,7 +26,8 @@ var tabs_list_container_vue_vue_type_script_setup_true_vapor_true_lang_default =
26
26
  if (!element) return;
27
27
  const vertical = isVertical.value;
28
28
  const size = vertical ? element.clientHeight : element.clientWidth;
29
- const maxScroll = Math.max(0, (vertical ? element.scrollHeight : element.scrollWidth) - size);
29
+ const scrollSize = vertical ? element.scrollHeight : element.scrollWidth;
30
+ const maxScroll = Math.max(0, scrollSize - size);
30
31
  const isRtl = !vertical && getComputedStyle(element).direction === "rtl";
31
32
  const delta = direction * size * SCROLL_FRACTION * (isRtl ? -1 : 1);
32
33
  const current = vertical ? element.scrollTop : element.scrollLeft;
@@ -23,8 +23,7 @@ var tabs_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
23
23
  },
24
24
  orientation: { default: void 0 },
25
25
  variant: { default: void 0 },
26
- id: {},
27
- onSelectionChange: {}
26
+ id: {}
28
27
  },
29
28
  emits: ["selectionChange", "update:selectedKey"],
30
29
  setup(__props, { emit: __emit }) {
@@ -43,7 +42,6 @@ var tabs_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
43
42
  id: () => props.id,
44
43
  isDisabled: () => props.isDisabled,
45
44
  onSelectionChange: (key) => {
46
- props.onSelectionChange?.(key);
47
45
  emit("selectionChange", key);
48
46
  emit("update:selectedKey", key);
49
47
  },
@@ -32,7 +32,6 @@ export interface TabsRootProps {
32
32
  * for itself.
33
33
  */
34
34
  id?: string;
35
- onSelectionChange?: (key: CollectionKey) => void;
36
35
  }
37
36
  export interface TabsRootSlotProps {
38
37
  orientation: TabsOrientation;
@@ -4,10 +4,17 @@ import { setFormValue } from "../../utils/form-value.js";
4
4
  import { useTextFieldControlContext } from "../../composables/use-text-field.js";
5
5
  import { useTextFieldContext } from "../textfield/textfield.context.js";
6
6
  import { useTextareaAutosize } from "../../composables/use-textarea-autosize.js";
7
- import { computed, createTemplateRefSetter, defineVaporComponent, on, renderEffect, setDynamicProps, shallowRef, template, unref, watch } from "vue";
7
+ import { computed, createTemplateRefSetter, defineVaporComponent, renderEffect, setDynamicProps, shallowRef, template, unref, watch } from "vue";
8
8
  import { textAreaVariants } from "@ropav/styles";
9
9
  //#region src/components/textarea/textarea-root.vue?vue&type=script&setup=true&vapor=true&lang.ts
10
10
  var t0 = template("<textarea>", 1);
11
+ var k0 = [
12
+ "data-disabled",
13
+ "data-focus-visible",
14
+ "data-focused",
15
+ "data-hovered",
16
+ "data-invalid"
17
+ ];
11
18
  var textarea_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
12
19
  __name: "textarea-root",
13
20
  props: {
@@ -101,27 +108,32 @@ var textarea_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
101
108
  };
102
109
  const _setTemplateRef = createTemplateRefSetter();
103
110
  const n0 = t0();
104
- on(n0, "blur", onBlur);
105
- on(n0, "focus", onFocus);
106
- on(n0, "input", onInput);
107
- on(n0, "keydown", (e) => unref(control)?.handlers.onKeydown(e));
108
- on(n0, "keyup", (e) => unref(control)?.handlers.onKeyup(e));
109
- on(n0, "pointerdown", (e) => unref(interaction).onPointerdown(e));
110
- on(n0, "pointerenter", (e) => unref(interaction).onPointerenter(e));
111
- on(n0, "pointerleave", (e) => unref(interaction).onPointerleave(e));
112
111
  renderEffect(() => {
113
112
  const _dataAttr = unref(dataAttr);
114
113
  const _control = unref(control);
115
114
  const _interaction = unref(interaction);
116
- setDynamicProps(n0, [{
117
- class: styles.value,
118
- "data-disabled": _dataAttr(_control?.isDisabled.value),
119
- "data-focus-visible": _dataAttr(_interaction.isFocusVisible.value),
120
- "data-focused": _dataAttr(_interaction.isFocused.value),
121
- "data-hovered": _dataAttr(_interaction.isHovered.value),
122
- "data-invalid": _dataAttr(_control?.isInvalid.value),
123
- "data-slot": "textarea"
124
- }, attrs.value]);
115
+ setDynamicProps(n0, [
116
+ {
117
+ class: styles.value,
118
+ "data-disabled": _dataAttr(_control?.isDisabled.value),
119
+ "data-focus-visible": _dataAttr(_interaction.isFocusVisible.value),
120
+ "data-focused": _dataAttr(_interaction.isFocused.value),
121
+ "data-hovered": _dataAttr(_interaction.isHovered.value),
122
+ "data-invalid": _dataAttr(_control?.isInvalid.value),
123
+ "data-slot": "textarea"
124
+ },
125
+ attrs.value,
126
+ {
127
+ onBlur,
128
+ onFocus,
129
+ onInput,
130
+ onKeydown: (e) => _control?.handlers.onKeydown(e),
131
+ onKeyup: (e) => _control?.handlers.onKeyup(e),
132
+ onPointerdown: (e) => _interaction.onPointerdown(e),
133
+ onPointerenter: (e) => _interaction.onPointerenter(e),
134
+ onPointerleave: (e) => _interaction.onPointerleave(e)
135
+ }
136
+ ], k0);
125
137
  _setTemplateRef(n0, setElement);
126
138
  });
127
139
  return n0;
@@ -73,7 +73,7 @@ var toast_default_content_vue_vue_type_script_setup_true_vapor_true_lang_default
73
73
  variant: () => content.value.variant
74
74
  });
75
75
  }, 517), 261);
76
- }),
76
+ }, null, 2),
77
77
  createComponent(toast_content_default, null, extend(() => {
78
78
  return [
79
79
  createIf(() => Boolean(content.value.title), () => {
@@ -6,11 +6,12 @@ import { DEFAULT_SCALE_FACTOR, EXIT_FALLBACK } from "./toast.constants.js";
6
6
  import { useToastRegion } from "../../composables/use-toast-region.js";
7
7
  import toast_default_content_default from "./toast-default-content.js";
8
8
  import { toastQueue, useToastQueue } from "./toast-queue.js";
9
- import { VaporTeleport, child, computed, createComponent, createFor, createIf, createSlot, defineVaporComponent, on, onScopeDispose, renderEffect, setDynamicProps, setInsertionState, setStyle, setTemplateRefBinding, shallowRef, template, unref, watch } from "vue";
9
+ import { VaporTeleport, child, computed, createComponent, createFor, createIf, createSlot, defineVaporComponent, onScopeDispose, renderEffect, setDynamicProps, setInsertionState, setStyle, setTemplateRefBinding, shallowRef, template, unref, watch } from "vue";
10
10
  import { toastVariants } from "@ropav/styles";
11
11
  //#region src/components/toast/toast-provider.vue?vue&type=script&setup=true&vapor=true&lang.ts
12
12
  var t0 = template("<li>");
13
13
  var t1 = template("<div><ol>");
14
+ var k0 = ["data-expanded", "dir"];
14
15
  var toast_provider_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
15
16
  __name: "toast-provider",
16
17
  props: {
@@ -133,13 +134,23 @@ var toast_provider_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@_
133
134
  const n8 = child(n9);
134
135
  renderEffect(() => {
135
136
  const _region = unref(region);
136
- setDynamicProps(n9, [{
137
- class: styles.value,
138
- "data-expanded": unref(dataAttr)(_region.isExpanded.value),
139
- "data-slot": "toast-region",
140
- dir: unref(locale).direction,
141
- style: regionStyle.value
142
- }, _region.regionAttrs.value]);
137
+ setDynamicProps(n9, [
138
+ {
139
+ class: styles.value,
140
+ "data-expanded": unref(dataAttr)(_region.isExpanded.value),
141
+ "data-slot": "toast-region",
142
+ dir: unref(locale).direction,
143
+ style: regionStyle.value
144
+ },
145
+ _region.regionAttrs.value,
146
+ {
147
+ onFocusin: (e) => _region.onFocusin(e),
148
+ onFocusout: (e) => _region.onFocusout(e),
149
+ onPointerenter: (e) => _region.onPointerenter(e),
150
+ onPointerleave: (e) => _region.onPointerleave(e),
151
+ onPointermove: (e) => _region.onPointermove(e)
152
+ }
153
+ ], k0);
143
154
  setStyle(n8, CONTENTS_STYLE);
144
155
  });
145
156
  setInsertionState(n8);
@@ -155,11 +166,6 @@ var toast_provider_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@_
155
166
  });
156
167
  return n7;
157
168
  }, (entry) => entry.key, 9);
158
- on(n9, "focusin", (e) => unref(region).onFocusin(e));
159
- on(n9, "focusout", (e) => unref(region).onFocusout(e));
160
- on(n9, "pointerenter", (e) => unref(region).onPointerenter(e));
161
- on(n9, "pointerleave", (e) => unref(region).onPointerleave(e));
162
- on(n9, "pointermove", (e) => unref(region).onPointermove(e));
163
169
  setTemplateRefBinding(n9, () => setElement);
164
170
  return n9;
165
171
  }, true);
@@ -22,7 +22,7 @@ var toast_renderable_vue_vue_type_script_setup_true_vapor_true_lang_default = /*
22
22
  return n3;
23
23
  }, () => {
24
24
  return createDynamicComponent(() => props.value, null, null, 1);
25
- }, 517), 260);
25
+ }, 518), 262);
26
26
  }
27
27
  });
28
28
  //#endregion
@@ -7,6 +7,15 @@ import { useToast } from "../../composables/use-toast.js";
7
7
  import { computed, createSlot, defineVaporComponent, onMounted, onScopeDispose, renderEffect, setDynamicProps, setInsertionState, setTemplateRefBinding, shallowRef, template, unref, watch } from "vue";
8
8
  //#region src/components/toast/toast-root.vue?vue&type=script&setup=true&vapor=true&lang.ts
9
9
  var t0 = template("<div>", 1);
10
+ var k0 = [
11
+ "data-entering",
12
+ "data-exiting",
13
+ "data-expanded",
14
+ "data-frontmost",
15
+ "data-hidden",
16
+ "data-index",
17
+ "tabindex"
18
+ ];
10
19
  var toast_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
11
20
  __name: "toast-root",
12
21
  props: {
@@ -143,7 +152,7 @@ var toast_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PUR
143
152
  "data-slot": "toast",
144
153
  style: style.value,
145
154
  tabindex: _isFrontmost && !_isExiting ? 0 : -1
146
- }, unref(api).toastAttrs.value]);
155
+ }, unref(api).toastAttrs.value], k0);
147
156
  });
148
157
  setInsertionState(n1);
149
158
  createSlot();
@@ -2,9 +2,15 @@ import { dataAttr } from "../../utils/assertion.js";
2
2
  import { useInteractionStates } from "../../composables/use-interaction-states.js";
3
3
  import { composeFocusResponder, useFocusResponder } from "../../composables/focus-responder.js";
4
4
  import { FOCUSABLE_SELECTOR } from "../../utils/focus.js";
5
- import { computed, createSlot, defineVaporComponent, on, renderEffect, setDynamicProps, setInsertionState, setTemplateRefBinding, shallowRef, template, unref, watch } from "vue";
5
+ import { computed, createSlot, defineVaporComponent, renderEffect, setDynamicProps, setInsertionState, setTemplateRefBinding, shallowRef, template, unref, watch } from "vue";
6
6
  //#region src/components/tooltip/tooltip-trigger.vue?vue&type=script&setup=true&vapor=true&lang.ts
7
7
  var t0 = template("<div>", 1);
8
+ var k0 = [
9
+ "data-focus-visible",
10
+ "data-hovered",
11
+ "role",
12
+ "tabindex"
13
+ ];
8
14
  var tooltip_trigger_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
9
15
  __name: "tooltip-trigger",
10
16
  props: { class: {} },
@@ -32,23 +38,29 @@ var tooltip_trigger_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@
32
38
  renderEffect(() => {
33
39
  const _dataAttr = unref(dataAttr);
34
40
  const _states = unref(states);
35
- setDynamicProps(n1, [{
36
- class: ["rp-tooltip__trigger", props.class],
37
- "data-focus-visible": _dataAttr(_states.isFocusVisible.value),
38
- "data-hovered": _dataAttr(_states.isHovered.value),
39
- "data-slot": "tooltip-trigger",
40
- role: hasFocusableContent.value ? void 0 : "button",
41
- tabindex: hasFocusableContent.value ? void 0 : 0
42
- }, wrapperAttrs.value]);
41
+ const _focus = unref(focus);
42
+ setDynamicProps(n1, [
43
+ {
44
+ class: ["rp-tooltip__trigger", props.class],
45
+ "data-focus-visible": _dataAttr(_states.isFocusVisible.value),
46
+ "data-hovered": _dataAttr(_states.isHovered.value),
47
+ "data-slot": "tooltip-trigger",
48
+ role: hasFocusableContent.value ? void 0 : "button",
49
+ tabindex: hasFocusableContent.value ? void 0 : 0
50
+ },
51
+ wrapperAttrs.value,
52
+ {
53
+ onBlur: (e) => _focus.onBlur(e),
54
+ onFocus: (e) => _focus.onFocus(e),
55
+ onKeydown: (e) => _focus.onKeydown(e),
56
+ onPointerdown: (e) => _focus.onPointerdown(e),
57
+ onPointerenter: (e) => _focus.onPointerenter(e),
58
+ onPointerleave: (e) => _focus.onPointerleave(e)
59
+ }
60
+ ], k0);
43
61
  });
44
62
  setInsertionState(n1);
45
63
  createSlot();
46
- on(n1, "blur", (e) => unref(focus).onBlur(e));
47
- on(n1, "focus", (e) => unref(focus).onFocus(e));
48
- on(n1, "keydown", (e) => unref(focus).onKeydown(e));
49
- on(n1, "pointerdown", (e) => unref(focus).onPointerdown(e));
50
- on(n1, "pointerenter", (e) => unref(focus).onPointerenter(e));
51
- on(n1, "pointerleave", (e) => unref(focus).onPointerleave(e));
52
64
  setTemplateRefBinding(n1, () => setElement);
53
65
  return n1;
54
66
  }
@@ -92,7 +92,8 @@ var useCalendarGrid = (options, state, shared) => {
92
92
  const isDayView = Boolean(duration.days && duration.days < 7);
93
93
  const firstDayOfWeek = toValue(options.firstDayOfWeek);
94
94
  const weekStart = isDayView ? startDate.value : startOfWeek(today(state.timeZone.value), locale.value.locale, firstDayOfWeek);
95
- return Array.from({ length: isDayView ? duration.days : 7 }, (_, index) => dayFormatter.value.format(weekStart.add({ days: index }).toDate(state.timeZone.value)));
95
+ const days = isDayView ? duration.days : 7;
96
+ return Array.from({ length: days }, (_, index) => dayFormatter.value.format(weekStart.add({ days: index }).toDate(state.timeZone.value)));
96
97
  });
97
98
  return {
98
99
  attrs: computed(() => ({
@@ -123,13 +123,24 @@ var useCollection = (options = {}) => {
123
123
  if (index === -1) return null;
124
124
  return keys[index + step] ?? null;
125
125
  };
126
+ /**
127
+ * Read the registration counter, so a lookup made inside a `computed` re-runs once the item
128
+ * it asked about registers. `getItem` and `getElement` are read during render — an item's
129
+ * own disabled state and tabindex come from them — unlike `orderedKeys()`, which is only ever
130
+ * read on an interaction and so deliberately stays outside reactivity.
131
+ */
132
+ const track = () => {
133
+ version.value;
134
+ };
126
135
  return {
127
136
  getElement: (key) => {
137
+ track();
128
138
  return items.get(key)?.element() ?? null;
129
139
  },
130
140
  getFirstKey: () => keyAt(0),
131
141
  getIndex: (key) => order().indexOf(key),
132
142
  getItem: (key) => {
143
+ track();
133
144
  return items.get(key) ?? metaFromSource(key);
134
145
  },
135
146
  getKeyAfter: (key) => neighbour(key, 1),
@@ -138,6 +149,7 @@ var useCollection = (options = {}) => {
138
149
  orderedKeys,
139
150
  register,
140
151
  size: computed(() => {
152
+ track();
141
153
  return source()?.itemCount ?? items.size;
142
154
  }),
143
155
  withOrder
@@ -108,38 +108,40 @@ var useColorField = (options = {}) => {
108
108
  else if (deltaY < 0) state.decrement();
109
109
  }
110
110
  });
111
+ const attrs = computed(() => {
112
+ const all = {
113
+ ...field.attrs.value,
114
+ "aria-disabled": isDisabled.value || void 0,
115
+ "aria-readonly": isReadOnly.value || void 0
116
+ };
117
+ for (const key of Object.keys(all)) if (all[key] === void 0) delete all[key];
118
+ return all;
119
+ });
120
+ const handlers = {
121
+ onBlur: (event) => {
122
+ isFocused.value = false;
123
+ spin.onBlur();
124
+ state.commit();
125
+ reassert();
126
+ field.handlers.onBlur(event);
127
+ },
128
+ onFocus: (event) => {
129
+ isFocused.value = true;
130
+ spin.onFocus();
131
+ field.handlers.onFocus(event);
132
+ },
133
+ onInput: field.handlers.onInput,
134
+ onKeydown: (event) => {
135
+ spin.onKeydown(event);
136
+ field.handlers.onKeydown(event);
137
+ },
138
+ onKeyup: field.handlers.onKeyup
139
+ };
111
140
  return {
112
- attrs: computed(() => {
113
- const all = {
114
- ...field.attrs.value,
115
- "aria-disabled": isDisabled.value || void 0,
116
- "aria-readonly": isReadOnly.value || void 0
117
- };
118
- for (const key of Object.keys(all)) if (all[key] === void 0) delete all[key];
119
- return all;
120
- }),
141
+ attrs,
121
142
  element,
122
143
  fieldIds: field.fieldIds,
123
- handlers: {
124
- onBlur: (event) => {
125
- isFocused.value = false;
126
- spin.onBlur();
127
- state.commit();
128
- reassert();
129
- field.handlers.onBlur(event);
130
- },
131
- onFocus: (event) => {
132
- isFocused.value = true;
133
- spin.onFocus();
134
- field.handlers.onFocus(event);
135
- },
136
- onInput: field.handlers.onInput,
137
- onKeydown: (event) => {
138
- spin.onKeydown(event);
139
- field.handlers.onKeydown(event);
140
- },
141
- onKeyup: field.handlers.onKeyup
142
- },
144
+ handlers,
143
145
  isDisabled,
144
146
  isInvalid: field.isInvalid,
145
147
  isReadOnly,
@@ -128,7 +128,8 @@ var useComboBoxState = (options) => {
128
128
  const given = toValue(options.defaultInputValue);
129
129
  if (given != null) return given;
130
130
  const value = defaultValue.value;
131
- return selectionMode.value === "single" ? textOf(Array.isArray(value) ? value[0] ?? null : value) : "";
131
+ const key = Array.isArray(value) ? value[0] ?? null : value;
132
+ return selectionMode.value === "single" ? textOf(key) : "";
132
133
  });
133
134
  const input = useControllableState({
134
135
  defaultValue: defaultInputValue.value,
@@ -176,7 +176,8 @@ var useComboBox = (options, state) => {
176
176
  },
177
177
  onPressStart: (event) => {
178
178
  if (event.pointerType === "touch") return;
179
- state.toggle(event.pointerType === "keyboard" || event.pointerType === "virtual" ? "first" : null, "manual");
179
+ const strategy = event.pointerType === "keyboard" || event.pointerType === "virtual" ? "first" : null;
180
+ state.toggle(strategy, "manual");
180
181
  focusInput();
181
182
  },
182
183
  preventFocusOnPress: true
@@ -34,7 +34,8 @@ var useDisclosurePanel = (options) => {
34
34
  panel.style.setProperty("--disclosure-panel-height", height);
35
35
  };
36
36
  const applyPanelState = (panel, expanded) => {
37
- if (wasExpanded === null || !(typeof panel.getAnimations === "function")) {
37
+ const canAnimate = typeof panel.getAnimations === "function";
38
+ if (wasExpanded === null || !canAnimate) {
38
39
  if (expanded) {
39
40
  panel.removeAttribute("hidden");
40
41
  setSize(panel, "auto", "auto");
@@ -160,12 +160,15 @@ var useDrag = (options) => {
160
160
  };
161
161
  const onDragend = (event) => {
162
162
  event.stopPropagation();
163
- if (options.onDragEnd) options.onDragEnd({
164
- dropOperation: DROP_EFFECT_TO_DROP_OPERATION[globalDropEffect ?? event.dataTransfer?.dropEffect ?? "none"] ?? "cancel",
165
- type: "dragend",
166
- x: event.clientX,
167
- y: event.clientY
168
- });
163
+ if (options.onDragEnd) {
164
+ const dropEffect = event.dataTransfer?.dropEffect ?? "none";
165
+ options.onDragEnd({
166
+ dropOperation: DROP_EFFECT_TO_DROP_OPERATION[globalDropEffect ?? dropEffect] ?? "cancel",
167
+ type: "dragend",
168
+ x: event.clientX,
169
+ y: event.clientY
170
+ });
171
+ }
169
172
  draggingElement.value = null;
170
173
  releaseDropGuard?.();
171
174
  releaseDropGuard = null;
@@ -14,7 +14,8 @@ var DROP_ACTIVATE_TIMEOUT = 800;
14
14
  * Ported from React Aria's `getAllowedOperations`.
15
15
  */
16
16
  var getAllowedOperations = (event) => {
17
- let allowed = DROP_OPERATION_ALLOWED[event.dataTransfer?.effectAllowed ?? "uninitialized"] ?? DROP_OPERATION.all;
17
+ const effectAllowed = event.dataTransfer?.effectAllowed ?? "uninitialized";
18
+ let allowed = DROP_OPERATION_ALLOWED[effectAllowed] ?? DROP_OPERATION.all;
18
19
  if (globalAllowedDropOperations) allowed &= globalAllowedDropOperations;
19
20
  let allowedModifiers = DROP_OPERATION.none;
20
21
  if (isMac()) {
@@ -100,7 +100,8 @@ var useDroppableCollection = (options, state, element) => {
100
100
  if (inserted.length > 0) {
101
101
  selectionManager.setSelectedKeys(inserted);
102
102
  if (selectionManager.focusedKey.value === focusedKey) {
103
- selectionManager.setFocusedKey(inserted[0]);
103
+ const first = inserted[0];
104
+ selectionManager.setFocusedKey(first);
104
105
  if (selectionManager.selectionMode.value === "none") setInteractionModality("keyboard");
105
106
  }
106
107
  }