ropav 0.4.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/dist/components/autocomplete/autocomplete-root.js +3 -1
  2. package/dist/components/autocomplete/index.d.ts +3 -0
  3. package/dist/components/breadcrumbs/breadcrumbs-item.js +1 -0
  4. package/dist/components/breadcrumbs/index.d.ts +1 -0
  5. package/dist/components/calendar/index.d.ts +5 -3
  6. package/dist/components/calendar-year-picker/index.d.ts +4 -2
  7. package/dist/components/checkbox/checkbox-content.js +1 -1
  8. package/dist/components/color-field/index.d.ts +1 -0
  9. package/dist/components/color-input-group/color-input-group-root.js +2 -0
  10. package/dist/components/color-input-group/color-input-group.types.d.ts +2 -0
  11. package/dist/components/color-input-group/index.d.ts +2 -0
  12. package/dist/components/combo-box/combo-box-root.js +9 -2
  13. package/dist/components/combo-box/combo-box.types.d.ts +3 -0
  14. package/dist/components/combo-box/index.d.ts +3 -0
  15. package/dist/components/date-field/index.d.ts +1 -0
  16. package/dist/components/date-input-group/date-input-group-root.js +2 -0
  17. package/dist/components/date-input-group/date-input-group-segment.js +1 -1
  18. package/dist/components/date-input-group/date-input-group.types.d.ts +2 -0
  19. package/dist/{composables → components/date-input-group}/use-date-segment.d.ts +2 -2
  20. package/dist/{composables → components/date-input-group}/use-date-segment.js +9 -9
  21. package/dist/components/date-range-picker/date-range-picker-root.js +1 -1
  22. package/dist/components/date-range-picker/index.d.ts +15 -14
  23. package/dist/{composables → components/date-range-picker}/use-date-range-picker.d.ts +7 -7
  24. package/dist/{composables → components/date-range-picker}/use-date-range-picker.js +10 -10
  25. package/dist/components/drawer/drawer-dialog.js +1 -1
  26. package/dist/{composables → components/drawer}/use-drawer-drag.d.ts +1 -1
  27. package/dist/{composables → components/drawer}/use-drawer-drag.js +1 -1
  28. package/dist/components/drop-zone/drop-zone-root.d.ts +23 -0
  29. package/dist/components/drop-zone/drop-zone-root.js +153 -0
  30. package/dist/components/drop-zone/drop-zone-trigger.d.ts +21 -0
  31. package/dist/components/drop-zone/drop-zone-trigger.js +20 -0
  32. package/dist/components/drop-zone/drop-zone.accept.d.ts +19 -0
  33. package/dist/components/drop-zone/drop-zone.accept.js +28 -0
  34. package/dist/components/drop-zone/drop-zone.context.d.ts +6 -0
  35. package/dist/components/drop-zone/drop-zone.context.js +5 -0
  36. package/dist/components/drop-zone/drop-zone.types.d.ts +30 -0
  37. package/dist/components/drop-zone/index.d.ts +86 -0
  38. package/dist/components/drop-zone/index.js +11 -0
  39. package/dist/components/dropdown/dropdown-menu.js +1 -0
  40. package/dist/components/dropdown/dropdown-submenu-trigger.js +1 -1
  41. package/dist/components/dropdown/index.d.ts +4 -2
  42. package/dist/{composables → components/dropdown}/use-safely-mouse-to-submenu.js +1 -1
  43. package/dist/components/icons/icon-overlay-arrow.js +1 -1
  44. package/dist/components/index.d.ts +5 -0
  45. package/dist/components/input/index.d.ts +2 -0
  46. package/dist/components/input/input-root.js +3 -0
  47. package/dist/components/input/input.types.d.ts +5 -0
  48. package/dist/components/input-group/index.d.ts +2 -0
  49. package/dist/components/input-group/input-group-root.js +3 -0
  50. package/dist/components/input-group/input-group.types.d.ts +5 -0
  51. package/dist/components/input-otp/index.d.ts +6 -4
  52. package/dist/components/link/index.d.ts +2 -0
  53. package/dist/components/link/link-root.js +22 -5
  54. package/dist/components/link/link.types.d.ts +14 -3
  55. package/dist/{composables → components/list-box}/drag-collection.d.ts +2 -2
  56. package/dist/{composables → components/list-box}/drag-collection.js +1 -1
  57. package/dist/components/list-box/index.d.ts +4 -0
  58. package/dist/components/list-box/list-box-root.js +53 -32
  59. package/dist/components/list-box/list-box.types.d.ts +2 -0
  60. package/dist/components/menu/index.d.ts +2 -0
  61. package/dist/components/menu/menu-root.js +5 -1
  62. package/dist/components/menu/menu.types.d.ts +3 -0
  63. package/dist/components/number-field/index.d.ts +3 -0
  64. package/dist/components/number-field/number-field-root.js +2 -0
  65. package/dist/components/number-field/number-field.types.d.ts +2 -0
  66. package/dist/components/overlay/overlay-arrow.js +64 -11
  67. package/dist/components/progress-bar/index.d.ts +4 -0
  68. package/dist/components/progress-bar/progress-bar-root.js +4 -0
  69. package/dist/components/progress-bar/progress-bar.types.d.ts +7 -0
  70. package/dist/components/radio/radio-content.js +1 -1
  71. package/dist/components/range-calendar/index.d.ts +18 -15
  72. package/dist/components/router-provider/index.d.ts +5 -0
  73. package/dist/components/router-provider/index.js +3 -0
  74. package/dist/components/router-provider/router-provider.context.d.ts +40 -0
  75. package/dist/components/router-provider/router-provider.context.js +16 -0
  76. package/dist/components/router-provider/router-provider.d.ts +21 -0
  77. package/dist/components/router-provider/router-provider.js +22 -0
  78. package/dist/components/router-provider/router-provider.types.d.ts +23 -0
  79. package/dist/components/scroll-shadow/use-scroll-shadow.js +25 -1
  80. package/dist/components/search-field/index.d.ts +2 -0
  81. package/dist/components/search-field/search-field-root.js +3 -1
  82. package/dist/components/search-field/search-field.types.d.ts +2 -0
  83. package/dist/{composables → components/search-field}/use-search-field.d.ts +2 -2
  84. package/dist/{composables → components/search-field}/use-search-field.js +3 -3
  85. package/dist/components/segmented-control/index.d.ts +134 -0
  86. package/dist/components/segmented-control/index.js +15 -0
  87. package/dist/components/segmented-control/segmented-control-indicator.d.ts +19 -0
  88. package/dist/components/segmented-control/segmented-control-indicator.js +36 -0
  89. package/dist/components/segmented-control/segmented-control-item.d.ts +21 -0
  90. package/dist/components/segmented-control/segmented-control-item.js +96 -0
  91. package/dist/components/segmented-control/segmented-control-root.d.ts +25 -0
  92. package/dist/components/segmented-control/segmented-control-root.js +112 -0
  93. package/dist/components/segmented-control/segmented-control-separator.d.ts +19 -0
  94. package/dist/components/segmented-control/segmented-control-separator.js +18 -0
  95. package/dist/components/segmented-control/segmented-control.context.d.ts +17 -0
  96. package/dist/components/segmented-control/segmented-control.context.js +12 -0
  97. package/dist/components/segmented-control/segmented-control.types.d.ts +67 -0
  98. package/dist/components/select/index.d.ts +3 -0
  99. package/dist/components/select/select-hidden-select.js +1 -1
  100. package/dist/components/select/select-root.js +2 -0
  101. package/dist/components/select/select.types.d.ts +2 -0
  102. package/dist/components/sidebar/index.d.ts +546 -0
  103. package/dist/components/sidebar/index.js +47 -0
  104. package/dist/components/sidebar/sidebar-collapsible-trigger.d.ts +21 -0
  105. package/dist/components/sidebar/sidebar-collapsible-trigger.js +70 -0
  106. package/dist/components/sidebar/sidebar-collapsible.d.ts +24 -0
  107. package/dist/components/sidebar/sidebar-collapsible.js +78 -0
  108. package/dist/components/sidebar/sidebar-content.d.ts +21 -0
  109. package/dist/components/sidebar/sidebar-content.js +37 -0
  110. package/dist/components/sidebar/sidebar-footer.d.ts +21 -0
  111. package/dist/components/sidebar/sidebar-footer.js +24 -0
  112. package/dist/components/sidebar/sidebar-group-label.d.ts +21 -0
  113. package/dist/components/sidebar/sidebar-group-label.js +32 -0
  114. package/dist/components/sidebar/sidebar-group.d.ts +21 -0
  115. package/dist/components/sidebar/sidebar-group.js +48 -0
  116. package/dist/components/sidebar/sidebar-header.d.ts +21 -0
  117. package/dist/components/sidebar/sidebar-header.js +24 -0
  118. package/dist/components/sidebar/sidebar-inset.d.ts +21 -0
  119. package/dist/components/sidebar/sidebar-inset.js +24 -0
  120. package/dist/components/sidebar/sidebar-item-icon.d.ts +21 -0
  121. package/dist/components/sidebar/sidebar-item-icon.js +20 -0
  122. package/dist/components/sidebar/sidebar-item-indicator.d.ts +21 -0
  123. package/dist/components/sidebar/sidebar-item-indicator.js +48 -0
  124. package/dist/components/sidebar/sidebar-item-label.d.ts +21 -0
  125. package/dist/components/sidebar/sidebar-item-label.js +28 -0
  126. package/dist/components/sidebar/sidebar-item-tooltip.d.ts +21 -0
  127. package/dist/components/sidebar/sidebar-item-tooltip.js +38 -0
  128. package/dist/components/sidebar/sidebar-item-trailing.d.ts +21 -0
  129. package/dist/components/sidebar/sidebar-item-trailing.js +28 -0
  130. package/dist/components/sidebar/sidebar-item.d.ts +23 -0
  131. package/dist/components/sidebar/sidebar-item.js +160 -0
  132. package/dist/components/sidebar/sidebar-panel.d.ts +21 -0
  133. package/dist/components/sidebar/sidebar-panel.js +88 -0
  134. package/dist/components/sidebar/sidebar-rail.d.ts +21 -0
  135. package/dist/components/sidebar/sidebar-rail.js +210 -0
  136. package/dist/components/sidebar/sidebar-root.d.ts +31 -0
  137. package/dist/components/sidebar/sidebar-root.js +140 -0
  138. package/dist/components/sidebar/sidebar-separator.d.ts +19 -0
  139. package/dist/components/sidebar/sidebar-separator.js +16 -0
  140. package/dist/components/sidebar/sidebar-sub-menu.d.ts +23 -0
  141. package/dist/components/sidebar/sidebar-sub-menu.js +40 -0
  142. package/dist/components/sidebar/sidebar-trigger.d.ts +21 -0
  143. package/dist/components/sidebar/sidebar-trigger.js +69 -0
  144. package/dist/components/sidebar/sidebar.context.d.ts +75 -0
  145. package/dist/components/sidebar/sidebar.context.js +30 -0
  146. package/dist/components/sidebar/sidebar.state.d.ts +73 -0
  147. package/dist/components/sidebar/sidebar.state.js +76 -0
  148. package/dist/components/sidebar/sidebar.storage.d.ts +8 -0
  149. package/dist/components/sidebar/sidebar.storage.js +45 -0
  150. package/dist/components/sidebar/sidebar.types.d.ts +273 -0
  151. package/dist/components/splitter/index.d.ts +143 -0
  152. package/dist/components/splitter/index.js +13 -0
  153. package/dist/components/splitter/splitter-handle.d.ts +21 -0
  154. package/dist/components/splitter/splitter-handle.js +209 -0
  155. package/dist/components/splitter/splitter-panel.d.ts +21 -0
  156. package/dist/components/splitter/splitter-panel.js +70 -0
  157. package/dist/components/splitter/splitter-root.d.ts +31 -0
  158. package/dist/components/splitter/splitter-root.js +152 -0
  159. package/dist/components/splitter/splitter.context.d.ts +15 -0
  160. package/dist/components/splitter/splitter.context.js +5 -0
  161. package/dist/components/splitter/splitter.state.d.ts +87 -0
  162. package/dist/components/splitter/splitter.state.js +322 -0
  163. package/dist/components/splitter/splitter.storage.d.ts +15 -0
  164. package/dist/components/splitter/splitter.storage.js +56 -0
  165. package/dist/components/splitter/splitter.types.d.ts +98 -0
  166. package/dist/components/switch/switch-content.js +1 -1
  167. package/dist/components/table/index.d.ts +10 -9
  168. package/dist/components/table/table-body.js +13 -13
  169. package/dist/components/table/table-cell.js +49 -46
  170. package/dist/components/table/table-column-resizer.js +1 -1
  171. package/dist/components/table/table-column.js +1 -1
  172. package/dist/components/table/table-content.js +37 -18
  173. package/dist/{composables → components/table}/table-drag-collection.d.ts +1 -1
  174. package/dist/{composables → components/table}/table-drag-collection.js +1 -1
  175. package/dist/components/table/table-drop-indicator.js +3 -1
  176. package/dist/components/table/table-resizable-container.d.ts +4 -5
  177. package/dist/components/table/table-row.js +45 -14
  178. package/dist/components/table/table-virtualizer-item.d.ts +2 -7
  179. package/dist/components/table/table-virtualizer-item.js +20 -9
  180. package/dist/components/table/table.context.d.ts +11 -3
  181. package/dist/components/table/table.types.d.ts +1 -1
  182. package/dist/{composables → components/table}/use-grid-keyboard.d.ts +3 -3
  183. package/dist/{composables → components/table}/use-grid-keyboard.js +57 -55
  184. package/dist/{composables → components/table}/use-grid-selection-announcement.d.ts +2 -2
  185. package/dist/{composables → components/table}/use-grid-selection-announcement.js +2 -2
  186. package/dist/{composables → components/table}/use-table-collection.d.ts +2 -2
  187. package/dist/{composables → components/table}/use-table-collection.js +4 -4
  188. package/dist/{composables → components/table}/use-table-column-layout.d.ts +13 -20
  189. package/dist/components/table/use-table-column-layout.js +115 -0
  190. package/dist/components/textarea/index.d.ts +2 -0
  191. package/dist/components/textarea/textarea-root.js +3 -0
  192. package/dist/components/textarea/textarea.types.d.ts +5 -0
  193. package/dist/components/textfield/index.d.ts +2 -0
  194. package/dist/components/textfield/textfield-root.js +5 -1
  195. package/dist/components/textfield/textfield.context.d.ts +2 -0
  196. package/dist/components/textfield/textfield.types.d.ts +5 -0
  197. package/dist/components/time-field/index.d.ts +1 -0
  198. package/dist/components/toast/index.d.ts +1 -0
  199. package/dist/components/toast/toast-default-content.js +1 -1
  200. package/dist/components/toolbar/index.d.ts +3 -2
  201. package/dist/components/tooltip/index.js +1 -1
  202. package/dist/components/tooltip/tooltip-root.js +1 -1
  203. package/dist/components/virtualizer/index.d.ts +3 -1
  204. package/dist/components/virtualizer/index.js +2 -1
  205. package/dist/components/virtualizer/use-virtualizer-item.d.ts +23 -0
  206. package/dist/components/virtualizer/use-virtualizer-item.js +45 -0
  207. package/dist/components/virtualizer/virtualizer-item.js +7 -41
  208. package/dist/components/virtualizer/virtualizer-scrollbar-track.d.ts +20 -0
  209. package/dist/components/virtualizer/virtualizer-scrollbar-track.js +141 -0
  210. package/dist/components/virtualizer/virtualizer-scrollbar.d.ts +18 -0
  211. package/dist/components/virtualizer/virtualizer-scrollbar.js +55 -0
  212. package/dist/components/virtualizer/virtualizer.context.d.ts +17 -1
  213. package/dist/composables/drag-manager.js +1 -13
  214. package/dist/composables/index.d.ts +3 -70
  215. package/dist/composables/use-collection.d.ts +22 -3
  216. package/dist/composables/use-collection.js +67 -14
  217. package/dist/composables/use-color-area.js +2 -2
  218. package/dist/composables/use-color-field.js +1 -1
  219. package/dist/composables/use-combo-box.js +1 -1
  220. package/dist/composables/use-date-field.js +1 -1
  221. package/dist/composables/use-drag.d.ts +6 -5
  222. package/dist/composables/use-draggable-item.d.ts +2 -2
  223. package/dist/composables/use-droppable-collection.js +3 -3
  224. package/dist/composables/use-droppable-item.js +1 -1
  225. package/dist/composables/use-form-reset.d.ts +6 -2
  226. package/dist/composables/use-form-reset.js +9 -5
  227. package/dist/composables/use-list-keyboard.js +64 -62
  228. package/dist/composables/use-number-field.js +1 -1
  229. package/dist/composables/use-select.js +2 -2
  230. package/dist/composables/use-selection-manager.js +4 -4
  231. package/dist/composables/use-single-select-list-state.d.ts +37 -0
  232. package/dist/composables/use-single-select-list-state.js +110 -0
  233. package/dist/composables/use-slider-thumb.js +2 -2
  234. package/dist/composables/use-slider.js +1 -1
  235. package/dist/composables/use-tab-list-state.d.ts +10 -29
  236. package/dist/composables/use-tab-list-state.js +10 -99
  237. package/dist/composables/use-text-field.js +1 -1
  238. package/dist/composables/use-virtualizer-scroll.d.ts +52 -2
  239. package/dist/composables/use-virtualizer-scroll.js +79 -13
  240. package/dist/composables/use-virtualizer.d.ts +24 -4
  241. package/dist/composables/use-virtualizer.js +40 -6
  242. package/dist/index.js +60 -83
  243. package/dist/utils/document-order.d.ts +14 -0
  244. package/dist/utils/document-order.js +17 -0
  245. package/dist/utils/flex-sizing.d.ts +41 -0
  246. package/dist/utils/flex-sizing.js +140 -0
  247. package/dist/utils/index.d.ts +2 -0
  248. package/dist/utils/open-link.d.ts +31 -0
  249. package/dist/utils/open-link.js +32 -0
  250. package/dist/utils/story-truncation.d.ts +20 -0
  251. package/dist/utils/story-users.d.ts +11 -0
  252. package/dist/utils/virtualizer-collection.d.ts +14 -4
  253. package/dist/utils/virtualizer-collection.js +9 -14
  254. package/dist/utils/virtualizer-layout-info.js +3 -2
  255. package/dist/utils/virtualizer-list-layout.d.ts +75 -29
  256. package/dist/utils/virtualizer-list-layout.js +182 -99
  257. package/dist/utils/virtualizer-offsets.d.ts +111 -0
  258. package/dist/utils/virtualizer-offsets.js +159 -0
  259. package/dist/utils/virtualizer-overscan.d.ts +9 -15
  260. package/dist/utils/virtualizer-overscan.js +14 -33
  261. package/dist/utils/virtualizer-table-layout.d.ts +50 -21
  262. package/dist/utils/virtualizer-table-layout.js +130 -89
  263. package/dist/version.js +1 -1
  264. package/package.json +25 -5
  265. package/dist/composables/use-table-column-layout.js +0 -214
  266. /package/dist/{composables → components/dropdown}/use-safely-mouse-to-submenu.d.ts +0 -0
@@ -0,0 +1,153 @@
1
+ import { dataAttr } from "../../utils/assertion.js";
2
+ import { useFocusWithin, useInteractionStates } from "../../composables/use-interaction-states.js";
3
+ import { visuallyHiddenStyle } from "../../utils/visually-hidden.js";
4
+ import { isVirtualDragging } from "../../composables/drag-manager.js";
5
+ import { useDrop } from "../../composables/use-drop.js";
6
+ import { isDirectoryDropItem, isFileDropItem } from "../../utils/dnd-types.js";
7
+ import { isDragRefused, isFileAccepted, parseAccept } from "./drop-zone.accept.js";
8
+ import { provideDropZoneContext } from "./drop-zone.context.js";
9
+ import { child, computed, createSlot, createTemplateRefSetter, defineVaporComponent, on, renderEffect, setAttr, setClass, setInsertionState, setProp, setStyle, setTemplateRefBinding, shallowRef, template, unref } from "vue";
10
+ import { dropZoneVariants } from "@ropav/styles";
11
+ //#region src/components/drop-zone/drop-zone-root.vue?vue&type=script&setup=true&vapor=true&lang.ts
12
+ var t0 = template("<div data-slot=drop-zone><span><input type=file></span>", 1);
13
+ var drop_zone_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
14
+ __name: "drop-zone-root",
15
+ props: {
16
+ class: {},
17
+ accept: {},
18
+ multiple: { type: Boolean },
19
+ isDisabled: { type: Boolean },
20
+ ariaLabel: {},
21
+ ariaLabelledby: {},
22
+ ariaDescribedby: {}
23
+ },
24
+ emits: ["select"],
25
+ setup(__props, { emit: __emit }) {
26
+ const props = __props;
27
+ const emit = __emit;
28
+ const rootEl = shallowRef(null);
29
+ const inputEl = shallowRef(null);
30
+ const setRootEl = (element) => {
31
+ rootEl.value = element instanceof HTMLElement ? element : null;
32
+ };
33
+ const setInputEl = (element) => {
34
+ inputEl.value = element instanceof HTMLInputElement ? element : null;
35
+ };
36
+ const acceptTokens = computed(() => parseAccept(props.accept));
37
+ /** Refused drags are still entered, so the zone can say no rather than ignore the pointer. */
38
+ const isRefusing = shallowRef(false);
39
+ const interaction = useInteractionStates({ isDisabled: () => props.isDisabled });
40
+ const focusWithin = useFocusWithin({ isDisabled: () => props.isDisabled });
41
+ /**
42
+ * Flattens a drop into plain files, walking any directory that came with it.
43
+ *
44
+ * `for await` covers both the array a drop arrives as and the async iterable a directory hands
45
+ * back, so one function serves both levels.
46
+ */
47
+ const collectFiles = async (items) => {
48
+ const files = [];
49
+ for await (const item of items) if (isFileDropItem(item)) files.push(await item.getFile());
50
+ else if (isDirectoryDropItem(item)) files.push(...await collectFiles(item.getEntries()));
51
+ return files;
52
+ };
53
+ /**
54
+ * What the zone hands on, out of what arrived.
55
+ *
56
+ * Filtering rather than reporting: the browser already filters the picker half silently from
57
+ * the same `accept`, and enforces `multiple` there on its own, so the drop half matches that
58
+ * instead of inventing an error channel this component has no way to show.
59
+ */
60
+ const takeable = (files) => {
61
+ const accepted = files.filter((file) => isFileAccepted(file, acceptTokens.value));
62
+ return props.multiple ? accepted : accepted.slice(0, 1);
63
+ };
64
+ const announce = (files) => {
65
+ if (files.length > 0) emit("select", files);
66
+ };
67
+ const drop = useDrop({
68
+ getDropOperation: (types) => {
69
+ isRefusing.value = isDragRefused(types, acceptTokens.value);
70
+ return "copy";
71
+ },
72
+ hasDropButton: true,
73
+ isDisabled: () => props.isDisabled,
74
+ onDrop: (event) => {
75
+ if (isRefusing.value) return;
76
+ collectFiles(event.items).then((files) => announce(takeable(files)));
77
+ },
78
+ onDropExit: () => {
79
+ isRefusing.value = false;
80
+ },
81
+ ref: rootEl
82
+ });
83
+ const status = computed(() => {
84
+ if (!drop.isDropTarget.value) return "idle";
85
+ return isRefusing.value ? "reject" : "accept";
86
+ });
87
+ const open = () => {
88
+ if (props.isDisabled) return;
89
+ inputEl.value?.click();
90
+ };
91
+ const onClick = (event) => {
92
+ if (event.target === inputEl.value) return;
93
+ if (isVirtualDragging()) return;
94
+ open();
95
+ };
96
+ const onInputChange = (event) => {
97
+ const input = event.target;
98
+ announce(takeable(Array.from(input.files ?? [])));
99
+ input.value = "";
100
+ };
101
+ /** The drag instructions, plus whatever help text the caller wired up. */
102
+ const describedBy = computed(() => {
103
+ const ids = [drop.dropButtonAttrs.value["aria-describedby"], props.ariaDescribedby].filter(Boolean);
104
+ return ids.length > 0 ? ids.join(" ") : void 0;
105
+ });
106
+ const styles = computed(() => dropZoneVariants());
107
+ provideDropZoneContext({ slots: styles });
108
+ const _setTemplateRef = createTemplateRefSetter();
109
+ const n3 = t0();
110
+ const n1 = child(n3);
111
+ const n0 = child(n1);
112
+ on(n0, "change", onInputChange);
113
+ renderEffect(() => {
114
+ const _props = props;
115
+ const _dataAttr = unref(dataAttr);
116
+ setClass(n3, styles.value.base({ class: _props.class }));
117
+ setAttr(n3, "data-disabled", _dataAttr(_props.isDisabled));
118
+ setAttr(n3, "data-drop-target", _dataAttr(unref(drop).isDropTarget.value));
119
+ setAttr(n3, "data-focus-visible", _dataAttr(unref(focusWithin).isFocusVisible.value));
120
+ setAttr(n3, "data-hovered", _dataAttr(unref(interaction).isHovered.value));
121
+ setAttr(n3, "data-status", status.value);
122
+ setStyle(n1, unref(visuallyHiddenStyle));
123
+ setProp(n0, "accept", _props.accept);
124
+ setAttr(n0, "aria-describedby", describedBy.value);
125
+ setAttr(n0, "aria-label", _props.ariaLabel);
126
+ setAttr(n0, "aria-labelledby", _props.ariaLabelledby);
127
+ setProp(n0, "disabled", _props.isDisabled || void 0);
128
+ setProp(n0, "multiple", _props.multiple || void 0);
129
+ _setTemplateRef(n0, setInputEl);
130
+ });
131
+ setInsertionState(n3, 1);
132
+ createSlot("default", {
133
+ isDisabled: () => Boolean(props.isDisabled),
134
+ isDropTarget: () => unref(drop).isDropTarget.value,
135
+ open: () => open,
136
+ status: () => status.value
137
+ });
138
+ on(n3, "click", onClick);
139
+ on(n3, "dragenter", (e) => unref(drop).handlers.onDragenter(e));
140
+ on(n3, "dragleave", (e) => unref(drop).handlers.onDragleave(e));
141
+ on(n3, "dragover", (e) => unref(drop).handlers.onDragover(e));
142
+ on(n3, "drop", (e) => unref(drop).handlers.onDrop(e));
143
+ on(n3, "focusin", (e) => unref(focusWithin).onFocusin(e));
144
+ on(n3, "focusout", (e) => unref(focusWithin).onFocusout(e));
145
+ on(n3, "pointerenter", (e) => unref(interaction).onPointerenter(e));
146
+ on(n3, "pointerleave", (e) => unref(interaction).onPointerleave(e));
147
+ setProp(n3, "tabindex", -1);
148
+ setTemplateRefBinding(n3, () => setRootEl);
149
+ return n3;
150
+ }
151
+ });
152
+ //#endregion
153
+ export { drop_zone_root_vue_vue_type_script_setup_true_vapor_true_lang_default as default };
@@ -0,0 +1,21 @@
1
+ import type { DropZoneTriggerProps } from "./drop-zone.types.js";
2
+ declare const __VLS_export: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, 'attrs' | 'emit' | 'slots'>>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
3
+ props: import('vue').PublicProps & __VLS_PrettifyLocal<DropZoneTriggerProps> & (typeof globalThis extends {
4
+ __VLS_PROPS_FALLBACK: infer P;
5
+ } ? P : {});
6
+ expose: (exposed: {}) => void;
7
+ attrs: any;
8
+ slots: {
9
+ default?: () => unknown;
10
+ };
11
+ emit: {};
12
+ }>) => import('vue').VNode & {
13
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
14
+ };
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
17
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
18
+ [K in keyof T]: T[K];
19
+ } : {
20
+ [K in keyof T as K]: T[K];
21
+ }) & {};
@@ -0,0 +1,20 @@
1
+ import { composeSlotClassName } from "../../utils/compose.js";
2
+ import { useDropZoneContext } from "./drop-zone.context.js";
3
+ import { createSlot, defineVaporComponent, renderEffect, setClass, setInsertionState, template, unref } from "vue";
4
+ //#region src/components/drop-zone/drop-zone-trigger.vue?vue&type=script&setup=true&vapor=true&lang.ts
5
+ var t0 = template("<span data-slot=drop-zone-trigger>", 1);
6
+ var drop_zone_trigger_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
7
+ __name: "drop-zone-trigger",
8
+ props: { class: {} },
9
+ setup(__props) {
10
+ const props = __props;
11
+ const { slots } = useDropZoneContext();
12
+ const n1 = t0();
13
+ renderEffect(() => setClass(n1, unref(composeSlotClassName)(unref(slots).trigger, props.class)));
14
+ setInsertionState(n1);
15
+ createSlot();
16
+ return n1;
17
+ }
18
+ });
19
+ //#endregion
20
+ export { drop_zone_trigger_vue_vue_type_script_setup_true_vapor_true_lang_default as default };
@@ -0,0 +1,19 @@
1
+ import type { DragTypes } from "../../utils/dnd-types.js";
2
+ /** The tokens of an `accept` list, lowercased, with the empties dropped. */
3
+ export declare const parseAccept: (accept: string | undefined) => string[];
4
+ /** Whether one file satisfies an `accept` list. An empty list accepts everything. */
5
+ export declare const isFileAccepted: (file: File, tokens: string[]) => boolean;
6
+ /**
7
+ * Whether a drag still in flight should be refused.
8
+ *
9
+ * A drag advertises mime types and nothing else — never a file name, and never how many files
10
+ * it carries. So the answer is only ever "certainly not takeable"; everything unprovable is
11
+ * left to the drop, which filters what it emits. Three cases are unprovable:
12
+ *
13
+ * - an `.ext` token, which needs a file name;
14
+ * - {@link GENERIC_TYPE}, which is what a file with no known mime type reports — and also what
15
+ * a directory reports, since the two are indistinguishable until the drop;
16
+ * - a transfer whose types are hidden, which `DragTypes` already answers `true` to for
17
+ * everything (Safari reports no items at all while dragging files).
18
+ */
19
+ export declare const isDragRefused: (types: DragTypes, tokens: string[]) => boolean;
@@ -0,0 +1,28 @@
1
+ import "../../utils/dnd-constants.js";
2
+ //#region src/components/drop-zone/drop-zone.accept.ts
3
+ /** The tokens of an `accept` list, lowercased, with the empties dropped. */
4
+ var parseAccept = (accept) => accept?.split(",").map((token) => token.trim().toLowerCase()).filter(Boolean) ?? [];
5
+ var matchesMimeToken = (type, token) => token.endsWith("/*") ? type.startsWith(token.slice(0, -1)) : type === token;
6
+ /** Whether one file satisfies an `accept` list. An empty list accepts everything. */
7
+ var isFileAccepted = (file, tokens) => tokens.length === 0 || tokens.some((token) => token.startsWith(".") ? file.name.toLowerCase().endsWith(token) : matchesMimeToken(file.type.toLowerCase(), token));
8
+ /**
9
+ * Whether a drag still in flight should be refused.
10
+ *
11
+ * A drag advertises mime types and nothing else — never a file name, and never how many files
12
+ * it carries. So the answer is only ever "certainly not takeable"; everything unprovable is
13
+ * left to the drop, which filters what it emits. Three cases are unprovable:
14
+ *
15
+ * - an `.ext` token, which needs a file name;
16
+ * - {@link GENERIC_TYPE}, which is what a file with no known mime type reports — and also what
17
+ * a directory reports, since the two are indistinguishable until the drop;
18
+ * - a transfer whose types are hidden, which `DragTypes` already answers `true` to for
19
+ * everything (Safari reports no items at all while dragging files).
20
+ */
21
+ var isDragRefused = (types, tokens) => {
22
+ if (tokens.length === 0) return false;
23
+ if (tokens.some((token) => token.startsWith("."))) return false;
24
+ if (types.has("application/octet-stream")) return false;
25
+ return !tokens.some((token) => types.has(token));
26
+ };
27
+ //#endregion
28
+ export { isDragRefused, isFileAccepted, parseAccept };
@@ -0,0 +1,6 @@
1
+ import type { dropZoneVariants } from "@ropav/styles";
2
+ import type { ComputedRef } from "vue";
3
+ export interface DropZoneContext {
4
+ slots: ComputedRef<ReturnType<typeof dropZoneVariants>>;
5
+ }
6
+ export declare const useDropZoneContext: () => DropZoneContext, provideDropZoneContext: (value: DropZoneContext) => DropZoneContext;
@@ -0,0 +1,5 @@
1
+ import { createContext } from "../../utils/create-context.js";
2
+ //#region src/components/drop-zone/drop-zone.context.ts
3
+ var [useDropZoneContext, provideDropZoneContext] = createContext({ name: "DropZoneContext" });
4
+ //#endregion
5
+ export { provideDropZoneContext, useDropZoneContext };
@@ -0,0 +1,30 @@
1
+ /** What the zone makes of the drag currently over it. */
2
+ export type DropZoneStatus = "accept" | "idle" | "reject";
3
+ export interface DropZoneRootProps {
4
+ class?: string;
5
+ /**
6
+ * Which files to take, spelled the way the native `accept` attribute spells it: a comma
7
+ * separated list of mime types, `type/*` wildcards and `.ext` suffixes.
8
+ *
9
+ * It filters the picker, judges a drag while it is still moving, and filters what a drop
10
+ * emits. A drag is only refused where the refusal is certain — see `drop-zone-root.vue`.
11
+ */
12
+ accept?: string;
13
+ /** Whether more than one file may arrive at once. */
14
+ multiple?: boolean;
15
+ isDisabled?: boolean;
16
+ ariaLabel?: string;
17
+ ariaLabelledby?: string;
18
+ ariaDescribedby?: string;
19
+ }
20
+ export interface DropZoneSlotProps {
21
+ status: DropZoneStatus;
22
+ /** Whether a drag the zone would take is over it. */
23
+ isDropTarget: boolean;
24
+ isDisabled: boolean;
25
+ /** Opens the file picker, as clicking the zone does. */
26
+ open: () => void;
27
+ }
28
+ export interface DropZoneTriggerProps {
29
+ class?: string;
30
+ }
@@ -0,0 +1,86 @@
1
+ import DropZoneRoot from "./drop-zone-root.js";
2
+ import DropZoneTrigger from "./drop-zone-trigger.js";
3
+ export declare const DropZone: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
4
+ attrs: any;
5
+ slots: {
6
+ default?: (props: import("./drop-zone.types.js").DropZoneSlotProps) => unknown;
7
+ };
8
+ emit: (evt: "select", files: File[]) => void;
9
+ }, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
10
+ props: import('vue').PublicProps & {
11
+ class?: string;
12
+ accept?: string;
13
+ multiple?: boolean;
14
+ isDisabled?: boolean;
15
+ ariaLabel?: string;
16
+ ariaLabelledby?: string;
17
+ ariaDescribedby?: string;
18
+ onSelect?: ((files: File[]) => any) | undefined;
19
+ } & (typeof globalThis extends {
20
+ __VLS_PROPS_FALLBACK: infer P;
21
+ } ? P : {});
22
+ expose: (exposed: {}) => void;
23
+ attrs: any;
24
+ slots: {
25
+ default?: (props: import("./drop-zone.types.js").DropZoneSlotProps) => unknown;
26
+ };
27
+ emit: (evt: "select", files: File[]) => void;
28
+ }>) => import('vue').VNode & {
29
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
30
+ }) & {
31
+ Root: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
32
+ attrs: any;
33
+ slots: {
34
+ default?: (props: import("./drop-zone.types.js").DropZoneSlotProps) => unknown;
35
+ };
36
+ emit: (evt: "select", files: File[]) => void;
37
+ }, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
38
+ props: import('vue').PublicProps & {
39
+ class?: string;
40
+ accept?: string;
41
+ multiple?: boolean;
42
+ isDisabled?: boolean;
43
+ ariaLabel?: string;
44
+ ariaLabelledby?: string;
45
+ ariaDescribedby?: string;
46
+ onSelect?: ((files: File[]) => any) | undefined;
47
+ } & (typeof globalThis extends {
48
+ __VLS_PROPS_FALLBACK: infer P;
49
+ } ? P : {});
50
+ expose: (exposed: {}) => void;
51
+ attrs: any;
52
+ slots: {
53
+ default?: (props: import("./drop-zone.types.js").DropZoneSlotProps) => unknown;
54
+ };
55
+ emit: (evt: "select", files: File[]) => void;
56
+ }>) => import('vue').VNode & {
57
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
58
+ };
59
+ Trigger: (__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'], __VLS_ctx?: {
60
+ attrs: any;
61
+ slots: {
62
+ default?: () => unknown;
63
+ };
64
+ emit: {};
65
+ }, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
66
+ props: import('vue').PublicProps & {
67
+ class?: string;
68
+ } & (typeof globalThis extends {
69
+ __VLS_PROPS_FALLBACK: infer P;
70
+ } ? P : {});
71
+ expose: (exposed: {}) => void;
72
+ attrs: any;
73
+ slots: {
74
+ default?: () => unknown;
75
+ };
76
+ emit: {};
77
+ }>) => import('vue').VNode & {
78
+ __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
79
+ };
80
+ };
81
+ export { DropZoneRoot, DropZoneTrigger };
82
+ export type { DropZoneRootProps, DropZoneRootProps as DropZoneProps, DropZoneSlotProps, DropZoneStatus, DropZoneTriggerProps, } from "./drop-zone.types.js";
83
+ export { useDropZoneContext, provideDropZoneContext } from "./drop-zone.context.js";
84
+ export type { DropZoneContext } from "./drop-zone.context.js";
85
+ export { dropZoneVariants } from "@ropav/styles";
86
+ export type { DropZoneVariants } from "@ropav/styles";
@@ -0,0 +1,11 @@
1
+ import { provideDropZoneContext, useDropZoneContext } from "./drop-zone.context.js";
2
+ import drop_zone_root_default from "./drop-zone-root.js";
3
+ import drop_zone_trigger_default from "./drop-zone-trigger.js";
4
+ import { dropZoneVariants } from "@ropav/styles";
5
+ //#region src/components/drop-zone/index.ts
6
+ var DropZone = Object.assign(drop_zone_root_default, {
7
+ Root: drop_zone_root_default,
8
+ Trigger: drop_zone_trigger_default
9
+ });
10
+ //#endregion
11
+ export { DropZone, drop_zone_root_default as DropZoneRoot, drop_zone_trigger_default as DropZoneTrigger, dropZoneVariants, provideDropZoneContext, useDropZoneContext };
@@ -9,6 +9,7 @@ var dropdown_menu_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
9
9
  __name: "dropdown-menu",
10
10
  props: {
11
11
  class: {},
12
+ size: {},
12
13
  selectionMode: {},
13
14
  selectionBehavior: {},
14
15
  selectedKeys: {},
@@ -3,7 +3,7 @@ import { useSubmenuTriggerState } from "../../composables/use-overlay-trigger-st
3
3
  import { provideMenuItemPopupContext } from "../menu-item/menu-item.context.js";
4
4
  import { useMenuContext } from "../menu/menu.context.js";
5
5
  import { provideDropdownPopoverTarget, useDropdownContext } from "./dropdown.context.js";
6
- import { useSafelyMouseToSubmenu } from "../../composables/use-safely-mouse-to-submenu.js";
6
+ import { useSafelyMouseToSubmenu } from "./use-safely-mouse-to-submenu.js";
7
7
  import { computed, createSlot, defineVaporComponent, onScopeDispose, shallowRef, watch } from "vue";
8
8
  var dropdown_submenu_trigger_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
9
9
  __name: "dropdown-submenu-trigger",
@@ -16,7 +16,7 @@ export declare const Dropdown: ((__VLS_props: NonNullable<Awaited<typeof __VLS_s
16
16
  emit: ((evt: "openChange", isOpen: boolean) => void) & ((evt: "update:isOpen", isOpen: boolean) => void);
17
17
  }, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
18
18
  props: import('vue').PublicProps & {
19
- trigger?: import("../../composables/use-menu-trigger.js").MenuTriggerType;
19
+ trigger?: import("./index.js").MenuTriggerType;
20
20
  isOpen?: boolean;
21
21
  defaultOpen?: boolean;
22
22
  isDisabled?: boolean;
@@ -91,6 +91,7 @@ export declare const Dropdown: ((__VLS_props: NonNullable<Awaited<typeof __VLS_s
91
91
  }, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
92
92
  props: import('vue').PublicProps & {
93
93
  class?: string;
94
+ size?: import("@ropav/styles").MenuVariants["size"];
94
95
  selectionMode?: import("../../index.js").SelectionMode;
95
96
  selectionBehavior?: import("../../index.js").SelectionBehavior;
96
97
  selectedKeys?: "all" | Iterable<import("../../index.js").CollectionKey>;
@@ -151,7 +152,7 @@ export declare const Dropdown: ((__VLS_props: NonNullable<Awaited<typeof __VLS_s
151
152
  emit: ((evt: "openChange", isOpen: boolean) => void) & ((evt: "update:isOpen", isOpen: boolean) => void);
152
153
  }, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
153
154
  props: import('vue').PublicProps & {
154
- trigger?: import("../../composables/use-menu-trigger.js").MenuTriggerType;
155
+ trigger?: import("./index.js").MenuTriggerType;
155
156
  isOpen?: boolean;
156
157
  defaultOpen?: boolean;
157
158
  isDisabled?: boolean;
@@ -269,5 +270,6 @@ export { DropdownMenu, DropdownPopover, DropdownRoot, DropdownSubmenuTrigger, Dr
269
270
  export type { DropdownMenuProps, DropdownPopoverProps, DropdownRootEmits, DropdownRootProps, DropdownRootProps as DropdownProps, DropdownTriggerProps, } from "./dropdown.types.js";
270
271
  export { useDropdownContext, useDropdownPopoverTarget } from "./dropdown.context.js";
271
272
  export type { DropdownContext, DropdownPopoverTarget } from "./dropdown.context.js";
273
+ export type { MenuTriggerType } from "../../composables/use-menu-trigger.js";
272
274
  export { dropdownVariants } from "@ropav/styles";
273
275
  export type { DropdownVariants } from "@ropav/styles";
@@ -1,5 +1,5 @@
1
1
  import { onScopeDispose, toValue, watch } from "vue";
2
- //#region src/composables/use-safely-mouse-to-submenu.ts
2
+ //#region src/components/dropdown/use-safely-mouse-to-submenu.ts
3
3
  /** How many consecutive moves away from the submenu it takes to give up on the journey. */
4
4
  var ALLOWED_INVALID_MOVEMENTS = 2;
5
5
  /** Pointer moves arrive far faster than the geometry changes. */
@@ -1,6 +1,6 @@
1
1
  import { defineVaporComponent, renderEffect, setClass, template } from "vue";
2
2
  //#region src/components/icons/icon-overlay-arrow.vue?vue&type=script&setup=true&vapor=true&lang.ts
3
- var t0 = template("<svg fill=none height=12 viewBox=\"0 0 12 12\" width=12 xmlns=http://www.w3.org/2000/svg><path d=\"M0 0C5.48483 8 6.5 8 12 0Z\">", 1, 1);
3
+ var t0 = template("<svg fill=none height=12 viewBox=\"0 0 12 12\" width=12 xmlns=http://www.w3.org/2000/svg><path d=\"M1 0V2C3.2 2 4.3 8 6 8C7.7 8 8.8 2 11 2V0Z\">", 1, 1);
4
4
  var icon_overlay_arrow_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE__*/ defineVaporComponent({
5
5
  __name: "icon-overlay-arrow",
6
6
  props: { class: {} },
@@ -30,6 +30,7 @@ export * from "./disclosure/index.js";
30
30
  export * from "./disclosure-group/index.js";
31
31
  export * from "./dnd/index.js";
32
32
  export * from "./drawer/index.js";
33
+ export * from "./drop-zone/index.js";
33
34
  export * from "./dropdown/index.js";
34
35
  export * from "./empty-state/index.js";
35
36
  export * from "./error-message/index.js";
@@ -61,13 +62,17 @@ export * from "./progress-circle/index.js";
61
62
  export * from "./radio/index.js";
62
63
  export * from "./radio-group/index.js";
63
64
  export * from "./range-calendar/index.js";
65
+ export * from "./router-provider/index.js";
64
66
  export * from "./scroll-shadow/index.js";
65
67
  export * from "./search-field/index.js";
68
+ export * from "./segmented-control/index.js";
66
69
  export * from "./select/index.js";
67
70
  export * from "./separator/index.js";
71
+ export * from "./sidebar/index.js";
68
72
  export * from "./skeleton/index.js";
69
73
  export * from "./slider/index.js";
70
74
  export * from "./spinner/index.js";
75
+ export * from "./splitter/index.js";
71
76
  export * from "./surface/index.js";
72
77
  export * from "./switch/index.js";
73
78
  export * from "./switch-group/index.js";
@@ -8,6 +8,7 @@ export declare const Input: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setu
8
8
  class?: string;
9
9
  value?: string;
10
10
  variant?: import("@ropav/styles").InputVariants["variant"];
11
+ size?: import("@ropav/styles").InputVariants["size"];
11
12
  fullWidth?: boolean;
12
13
  placeholder?: string;
13
14
  onChange?: ((value: string) => any) | undefined;
@@ -31,6 +32,7 @@ export declare const Input: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setu
31
32
  class?: string;
32
33
  value?: string;
33
34
  variant?: import("@ropav/styles").InputVariants["variant"];
35
+ size?: import("@ropav/styles").InputVariants["size"];
34
36
  fullWidth?: boolean;
35
37
  placeholder?: string;
36
38
  onChange?: ((value: string) => any) | undefined;
@@ -13,6 +13,7 @@ var input_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PUR
13
13
  class: {},
14
14
  value: {},
15
15
  variant: { default: void 0 },
16
+ size: {},
16
17
  fullWidth: {
17
18
  type: Boolean,
18
19
  default: void 0
@@ -31,9 +32,11 @@ var input_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PUR
31
32
  control?.registerElement(element.value);
32
33
  };
33
34
  const resolvedVariant = computed(() => props.variant ?? textField?.variant.value);
35
+ const resolvedSize = computed(() => props.size ?? textField?.size.value);
34
36
  const styles = computed(() => inputVariants({
35
37
  class: props.class,
36
38
  fullWidth: props.fullWidth,
39
+ size: resolvedSize.value,
37
40
  variant: resolvedVariant.value
38
41
  }));
39
42
  const attrs = computed(() => {
@@ -9,6 +9,11 @@ export interface InputRootProps {
9
9
  value?: string;
10
10
  /** Visual variant. Taken from the surrounding field when unset. @default "primary" */
11
11
  variant?: InputVariants["variant"];
12
+ /**
13
+ * How tall the control stands, matching a button of the same size. Taken from the surrounding
14
+ * field when unset. @default "md"
15
+ */
16
+ size?: InputVariants["size"];
12
17
  /** Whether the control stretches to fill its container. */
13
18
  fullWidth?: boolean;
14
19
  /**
@@ -13,6 +13,7 @@ export declare const InputGroup: ((__VLS_props: NonNullable<Awaited<typeof __VLS
13
13
  props: import('vue').PublicProps & {
14
14
  class?: string;
15
15
  variant?: import("@ropav/styles").InputGroupVariants["variant"];
16
+ size?: import("@ropav/styles").InputGroupVariants["size"];
16
17
  fullWidth?: boolean;
17
18
  isDisabled?: boolean;
18
19
  isInvalid?: boolean;
@@ -81,6 +82,7 @@ export declare const InputGroup: ((__VLS_props: NonNullable<Awaited<typeof __VLS
81
82
  props: import('vue').PublicProps & {
82
83
  class?: string;
83
84
  variant?: import("@ropav/styles").InputGroupVariants["variant"];
85
+ size?: import("@ropav/styles").InputGroupVariants["size"];
84
86
  fullWidth?: boolean;
85
87
  isDisabled?: boolean;
86
88
  isInvalid?: boolean;
@@ -12,6 +12,7 @@ var input_group_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*
12
12
  props: {
13
13
  class: {},
14
14
  variant: { default: void 0 },
15
+ size: { default: void 0 },
15
16
  fullWidth: {
16
17
  type: Boolean,
17
18
  default: void 0
@@ -38,10 +39,12 @@ var input_group_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*
38
39
  element.value = next instanceof HTMLDivElement ? next : null;
39
40
  };
40
41
  const resolvedVariant = computed(() => props.variant ?? textField?.variant.value);
42
+ const resolvedSize = computed(() => props.size ?? textField?.size.value);
41
43
  const resolvedIsDisabled = computed(() => props.isDisabled ?? control?.isDisabled.value ?? false);
42
44
  const resolvedIsInvalid = computed(() => props.isInvalid ?? control?.isInvalid.value ?? false);
43
45
  const slots = computed(() => inputGroupVariants({
44
46
  fullWidth: props.fullWidth,
47
+ size: resolvedSize.value,
45
48
  variant: resolvedVariant.value
46
49
  }));
47
50
  provideInputGroupContext({ slots });
@@ -3,6 +3,11 @@ export interface InputGroupRootProps {
3
3
  class?: string;
4
4
  /** Visual variant. Taken from the surrounding field when unset. @default "primary" */
5
5
  variant?: InputGroupVariants["variant"];
6
+ /**
7
+ * How tall the group stands, matching a button of the same size. Taken from the surrounding
8
+ * field when unset. @default "md"
9
+ */
10
+ size?: InputGroupVariants["size"];
6
11
  /** Whether the group stretches to fill its container. */
7
12
  fullWidth?: boolean;
8
13
  /**
@@ -18,14 +18,14 @@ export declare const InputOTP: ((__VLS_props: NonNullable<Awaited<typeof __VLS_s
18
18
  defaultValue?: string;
19
19
  pattern?: RegExp | string;
20
20
  placeholder?: string;
21
- textAlign?: import("../../index.js").InputOTPTextAlign;
21
+ textAlign?: import("./index.js").InputOTPTextAlign;
22
22
  inputMode?: string;
23
23
  autoComplete?: string;
24
24
  isDisabled?: boolean;
25
25
  isInvalid?: boolean;
26
26
  validationErrors?: string[];
27
27
  validationDetails?: import("../../index.js").ValidationDetails;
28
- pushPasswordManagerStrategy?: import("../../index.js").PushPasswordManagerStrategy;
28
+ pushPasswordManagerStrategy?: import("./index.js").PushPasswordManagerStrategy;
29
29
  pasteTransformer?: (pasted: string) => string;
30
30
  name?: string;
31
31
  form?: string;
@@ -85,14 +85,14 @@ export declare const InputOTP: ((__VLS_props: NonNullable<Awaited<typeof __VLS_s
85
85
  defaultValue?: string;
86
86
  pattern?: RegExp | string;
87
87
  placeholder?: string;
88
- textAlign?: import("../../index.js").InputOTPTextAlign;
88
+ textAlign?: import("./index.js").InputOTPTextAlign;
89
89
  inputMode?: string;
90
90
  autoComplete?: string;
91
91
  isDisabled?: boolean;
92
92
  isInvalid?: boolean;
93
93
  validationErrors?: string[];
94
94
  validationDetails?: import("../../index.js").ValidationDetails;
95
- pushPasswordManagerStrategy?: import("../../index.js").PushPasswordManagerStrategy;
95
+ pushPasswordManagerStrategy?: import("./index.js").PushPasswordManagerStrategy;
96
96
  pasteTransformer?: (pasted: string) => string;
97
97
  name?: string;
98
98
  form?: string;
@@ -156,5 +156,7 @@ export type { InputOTPRootProps, InputOTPRootProps as InputOTPProps, InputOTPGro
156
156
  export { REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, } from "../../composables/use-input-otp.js";
157
157
  export { provideInputOTPContext, useInputOTPContext } from "./input-otp.context.js";
158
158
  export type { InputOTPContext } from "./input-otp.context.js";
159
+ export type { InputOTPTextAlign } from "../../composables/use-input-otp.js";
160
+ export type { PushPasswordManagerStrategy } from "../../composables/use-password-manager-badge.js";
159
161
  export { inputOTPVariants } from "@ropav/styles";
160
162
  export type { InputOTPVariants } from "@ropav/styles";
@@ -18,6 +18,7 @@ export declare const Link: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setup
18
18
  hrefLang?: string;
19
19
  isDisabled?: boolean;
20
20
  ariaCurrent?: import("./link.types.js").LinkCurrent;
21
+ routerOptions?: unknown;
21
22
  ariaLabel?: string;
22
23
  ariaLabelledby?: string;
23
24
  ariaDescribedby?: string;
@@ -73,6 +74,7 @@ export declare const Link: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setup
73
74
  hrefLang?: string;
74
75
  isDisabled?: boolean;
75
76
  ariaCurrent?: import("./link.types.js").LinkCurrent;
77
+ routerOptions?: unknown;
76
78
  ariaLabel?: string;
77
79
  ariaLabelledby?: string;
78
80
  ariaDescribedby?: string;