ropav 0.4.0 → 0.5.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 (253) 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/dropdown/dropdown-menu.js +1 -0
  29. package/dist/components/dropdown/dropdown-submenu-trigger.js +1 -1
  30. package/dist/components/dropdown/index.d.ts +4 -2
  31. package/dist/{composables → components/dropdown}/use-safely-mouse-to-submenu.js +1 -1
  32. package/dist/components/icons/icon-overlay-arrow.js +1 -1
  33. package/dist/components/index.d.ts +4 -0
  34. package/dist/components/input/index.d.ts +2 -0
  35. package/dist/components/input/input-root.js +3 -0
  36. package/dist/components/input/input.types.d.ts +5 -0
  37. package/dist/components/input-group/index.d.ts +2 -0
  38. package/dist/components/input-group/input-group-root.js +3 -0
  39. package/dist/components/input-group/input-group.types.d.ts +5 -0
  40. package/dist/components/input-otp/index.d.ts +6 -4
  41. package/dist/components/link/index.d.ts +2 -0
  42. package/dist/components/link/link-root.js +22 -5
  43. package/dist/components/link/link.types.d.ts +14 -3
  44. package/dist/{composables → components/list-box}/drag-collection.d.ts +2 -2
  45. package/dist/{composables → components/list-box}/drag-collection.js +1 -1
  46. package/dist/components/list-box/index.d.ts +4 -0
  47. package/dist/components/list-box/list-box-root.js +53 -32
  48. package/dist/components/list-box/list-box.types.d.ts +2 -0
  49. package/dist/components/menu/index.d.ts +2 -0
  50. package/dist/components/menu/menu-root.js +5 -1
  51. package/dist/components/menu/menu.types.d.ts +3 -0
  52. package/dist/components/number-field/index.d.ts +3 -0
  53. package/dist/components/number-field/number-field-root.js +2 -0
  54. package/dist/components/number-field/number-field.types.d.ts +2 -0
  55. package/dist/components/overlay/overlay-arrow.js +64 -11
  56. package/dist/components/radio/radio-content.js +1 -1
  57. package/dist/components/range-calendar/index.d.ts +18 -15
  58. package/dist/components/router-provider/index.d.ts +5 -0
  59. package/dist/components/router-provider/index.js +3 -0
  60. package/dist/components/router-provider/router-provider.context.d.ts +40 -0
  61. package/dist/components/router-provider/router-provider.context.js +16 -0
  62. package/dist/components/router-provider/router-provider.d.ts +21 -0
  63. package/dist/components/router-provider/router-provider.js +22 -0
  64. package/dist/components/router-provider/router-provider.types.d.ts +23 -0
  65. package/dist/components/scroll-shadow/use-scroll-shadow.js +25 -1
  66. package/dist/components/search-field/index.d.ts +2 -0
  67. package/dist/components/search-field/search-field-root.js +3 -1
  68. package/dist/components/search-field/search-field.types.d.ts +2 -0
  69. package/dist/{composables → components/search-field}/use-search-field.d.ts +2 -2
  70. package/dist/{composables → components/search-field}/use-search-field.js +3 -3
  71. package/dist/components/segmented-control/index.d.ts +134 -0
  72. package/dist/components/segmented-control/index.js +15 -0
  73. package/dist/components/segmented-control/segmented-control-indicator.d.ts +19 -0
  74. package/dist/components/segmented-control/segmented-control-indicator.js +36 -0
  75. package/dist/components/segmented-control/segmented-control-item.d.ts +21 -0
  76. package/dist/components/segmented-control/segmented-control-item.js +96 -0
  77. package/dist/components/segmented-control/segmented-control-root.d.ts +25 -0
  78. package/dist/components/segmented-control/segmented-control-root.js +112 -0
  79. package/dist/components/segmented-control/segmented-control-separator.d.ts +19 -0
  80. package/dist/components/segmented-control/segmented-control-separator.js +18 -0
  81. package/dist/components/segmented-control/segmented-control.context.d.ts +17 -0
  82. package/dist/components/segmented-control/segmented-control.context.js +12 -0
  83. package/dist/components/segmented-control/segmented-control.types.d.ts +67 -0
  84. package/dist/components/select/index.d.ts +3 -0
  85. package/dist/components/select/select-hidden-select.js +1 -1
  86. package/dist/components/select/select-root.js +2 -0
  87. package/dist/components/select/select.types.d.ts +2 -0
  88. package/dist/components/sidebar/index.d.ts +544 -0
  89. package/dist/components/sidebar/index.js +47 -0
  90. package/dist/components/sidebar/sidebar-collapsible-trigger.d.ts +21 -0
  91. package/dist/components/sidebar/sidebar-collapsible-trigger.js +70 -0
  92. package/dist/components/sidebar/sidebar-collapsible.d.ts +24 -0
  93. package/dist/components/sidebar/sidebar-collapsible.js +78 -0
  94. package/dist/components/sidebar/sidebar-content.d.ts +21 -0
  95. package/dist/components/sidebar/sidebar-content.js +37 -0
  96. package/dist/components/sidebar/sidebar-footer.d.ts +21 -0
  97. package/dist/components/sidebar/sidebar-footer.js +24 -0
  98. package/dist/components/sidebar/sidebar-group-label.d.ts +21 -0
  99. package/dist/components/sidebar/sidebar-group-label.js +32 -0
  100. package/dist/components/sidebar/sidebar-group.d.ts +21 -0
  101. package/dist/components/sidebar/sidebar-group.js +48 -0
  102. package/dist/components/sidebar/sidebar-header.d.ts +21 -0
  103. package/dist/components/sidebar/sidebar-header.js +24 -0
  104. package/dist/components/sidebar/sidebar-inset.d.ts +21 -0
  105. package/dist/components/sidebar/sidebar-inset.js +24 -0
  106. package/dist/components/sidebar/sidebar-item-icon.d.ts +21 -0
  107. package/dist/components/sidebar/sidebar-item-icon.js +20 -0
  108. package/dist/components/sidebar/sidebar-item-indicator.d.ts +21 -0
  109. package/dist/components/sidebar/sidebar-item-indicator.js +48 -0
  110. package/dist/components/sidebar/sidebar-item-label.d.ts +21 -0
  111. package/dist/components/sidebar/sidebar-item-label.js +28 -0
  112. package/dist/components/sidebar/sidebar-item-tooltip.d.ts +21 -0
  113. package/dist/components/sidebar/sidebar-item-tooltip.js +38 -0
  114. package/dist/components/sidebar/sidebar-item-trailing.d.ts +21 -0
  115. package/dist/components/sidebar/sidebar-item-trailing.js +28 -0
  116. package/dist/components/sidebar/sidebar-item.d.ts +23 -0
  117. package/dist/components/sidebar/sidebar-item.js +160 -0
  118. package/dist/components/sidebar/sidebar-panel.d.ts +21 -0
  119. package/dist/components/sidebar/sidebar-panel.js +88 -0
  120. package/dist/components/sidebar/sidebar-rail.d.ts +21 -0
  121. package/dist/components/sidebar/sidebar-rail.js +210 -0
  122. package/dist/components/sidebar/sidebar-root.d.ts +31 -0
  123. package/dist/components/sidebar/sidebar-root.js +138 -0
  124. package/dist/components/sidebar/sidebar-separator.d.ts +19 -0
  125. package/dist/components/sidebar/sidebar-separator.js +16 -0
  126. package/dist/components/sidebar/sidebar-sub-menu.d.ts +23 -0
  127. package/dist/components/sidebar/sidebar-sub-menu.js +40 -0
  128. package/dist/components/sidebar/sidebar-trigger.d.ts +21 -0
  129. package/dist/components/sidebar/sidebar-trigger.js +69 -0
  130. package/dist/components/sidebar/sidebar.context.d.ts +75 -0
  131. package/dist/components/sidebar/sidebar.context.js +30 -0
  132. package/dist/components/sidebar/sidebar.state.d.ts +73 -0
  133. package/dist/components/sidebar/sidebar.state.js +76 -0
  134. package/dist/components/sidebar/sidebar.storage.d.ts +8 -0
  135. package/dist/components/sidebar/sidebar.storage.js +45 -0
  136. package/dist/components/sidebar/sidebar.types.d.ts +259 -0
  137. package/dist/components/splitter/index.d.ts +143 -0
  138. package/dist/components/splitter/index.js +13 -0
  139. package/dist/components/splitter/splitter-handle.d.ts +21 -0
  140. package/dist/components/splitter/splitter-handle.js +209 -0
  141. package/dist/components/splitter/splitter-panel.d.ts +21 -0
  142. package/dist/components/splitter/splitter-panel.js +70 -0
  143. package/dist/components/splitter/splitter-root.d.ts +31 -0
  144. package/dist/components/splitter/splitter-root.js +152 -0
  145. package/dist/components/splitter/splitter.context.d.ts +15 -0
  146. package/dist/components/splitter/splitter.context.js +5 -0
  147. package/dist/components/splitter/splitter.state.d.ts +87 -0
  148. package/dist/components/splitter/splitter.state.js +322 -0
  149. package/dist/components/splitter/splitter.storage.d.ts +15 -0
  150. package/dist/components/splitter/splitter.storage.js +56 -0
  151. package/dist/components/splitter/splitter.types.d.ts +98 -0
  152. package/dist/components/switch/switch-content.js +1 -1
  153. package/dist/components/table/index.d.ts +10 -9
  154. package/dist/components/table/table-body.js +13 -13
  155. package/dist/components/table/table-cell.js +49 -46
  156. package/dist/components/table/table-column-resizer.js +1 -1
  157. package/dist/components/table/table-column.js +1 -1
  158. package/dist/components/table/table-content.js +37 -18
  159. package/dist/{composables → components/table}/table-drag-collection.d.ts +1 -1
  160. package/dist/{composables → components/table}/table-drag-collection.js +1 -1
  161. package/dist/components/table/table-drop-indicator.js +3 -1
  162. package/dist/components/table/table-resizable-container.d.ts +4 -5
  163. package/dist/components/table/table-row.js +45 -14
  164. package/dist/components/table/table-virtualizer-item.d.ts +2 -7
  165. package/dist/components/table/table-virtualizer-item.js +20 -9
  166. package/dist/components/table/table.context.d.ts +11 -3
  167. package/dist/components/table/table.types.d.ts +1 -1
  168. package/dist/{composables → components/table}/use-grid-keyboard.d.ts +3 -3
  169. package/dist/{composables → components/table}/use-grid-keyboard.js +57 -55
  170. package/dist/{composables → components/table}/use-grid-selection-announcement.d.ts +2 -2
  171. package/dist/{composables → components/table}/use-grid-selection-announcement.js +2 -2
  172. package/dist/{composables → components/table}/use-table-collection.d.ts +2 -2
  173. package/dist/{composables → components/table}/use-table-collection.js +4 -4
  174. package/dist/{composables → components/table}/use-table-column-layout.d.ts +13 -20
  175. package/dist/components/table/use-table-column-layout.js +115 -0
  176. package/dist/components/textarea/index.d.ts +2 -0
  177. package/dist/components/textarea/textarea-root.js +3 -0
  178. package/dist/components/textarea/textarea.types.d.ts +5 -0
  179. package/dist/components/textfield/index.d.ts +2 -0
  180. package/dist/components/textfield/textfield-root.js +5 -1
  181. package/dist/components/textfield/textfield.context.d.ts +2 -0
  182. package/dist/components/textfield/textfield.types.d.ts +5 -0
  183. package/dist/components/time-field/index.d.ts +1 -0
  184. package/dist/components/toast/index.d.ts +1 -0
  185. package/dist/components/toast/toast-default-content.js +1 -1
  186. package/dist/components/toolbar/index.d.ts +3 -2
  187. package/dist/components/tooltip/index.js +1 -1
  188. package/dist/components/tooltip/tooltip-root.js +1 -1
  189. package/dist/components/virtualizer/index.d.ts +3 -1
  190. package/dist/components/virtualizer/index.js +2 -1
  191. package/dist/components/virtualizer/use-virtualizer-item.d.ts +23 -0
  192. package/dist/components/virtualizer/use-virtualizer-item.js +45 -0
  193. package/dist/components/virtualizer/virtualizer-item.js +7 -41
  194. package/dist/components/virtualizer/virtualizer-scrollbar-track.d.ts +20 -0
  195. package/dist/components/virtualizer/virtualizer-scrollbar-track.js +141 -0
  196. package/dist/components/virtualizer/virtualizer-scrollbar.d.ts +18 -0
  197. package/dist/components/virtualizer/virtualizer-scrollbar.js +55 -0
  198. package/dist/components/virtualizer/virtualizer.context.d.ts +17 -1
  199. package/dist/composables/drag-manager.js +1 -13
  200. package/dist/composables/index.d.ts +3 -71
  201. package/dist/composables/use-collection.d.ts +22 -3
  202. package/dist/composables/use-collection.js +67 -14
  203. package/dist/composables/use-color-area.js +2 -2
  204. package/dist/composables/use-color-field.js +1 -1
  205. package/dist/composables/use-combo-box.js +1 -1
  206. package/dist/composables/use-date-field.js +1 -1
  207. package/dist/composables/use-drag-and-drop.js +1 -1
  208. package/dist/composables/use-drag.d.ts +6 -5
  209. package/dist/composables/use-draggable-item.d.ts +2 -2
  210. package/dist/composables/use-droppable-collection.js +2 -2
  211. package/dist/composables/use-droppable-item.js +1 -1
  212. package/dist/composables/use-form-reset.d.ts +6 -2
  213. package/dist/composables/use-form-reset.js +9 -5
  214. package/dist/composables/use-list-keyboard.js +64 -62
  215. package/dist/composables/use-number-field.js +1 -1
  216. package/dist/composables/use-select.js +2 -2
  217. package/dist/composables/use-selection-manager.js +4 -4
  218. package/dist/composables/use-single-select-list-state.d.ts +37 -0
  219. package/dist/composables/use-single-select-list-state.js +110 -0
  220. package/dist/composables/use-slider-thumb.js +2 -2
  221. package/dist/composables/use-slider.js +1 -1
  222. package/dist/composables/use-tab-list-state.d.ts +10 -29
  223. package/dist/composables/use-tab-list-state.js +10 -99
  224. package/dist/composables/use-text-field.js +1 -1
  225. package/dist/composables/use-virtualizer-scroll.d.ts +52 -2
  226. package/dist/composables/use-virtualizer-scroll.js +79 -13
  227. package/dist/composables/use-virtualizer.d.ts +24 -4
  228. package/dist/composables/use-virtualizer.js +40 -6
  229. package/dist/index.js +52 -80
  230. package/dist/utils/document-order.d.ts +14 -0
  231. package/dist/utils/document-order.js +17 -0
  232. package/dist/utils/flex-sizing.d.ts +41 -0
  233. package/dist/utils/flex-sizing.js +140 -0
  234. package/dist/utils/index.d.ts +2 -0
  235. package/dist/utils/open-link.d.ts +31 -0
  236. package/dist/utils/open-link.js +32 -0
  237. package/dist/utils/story-truncation.d.ts +20 -0
  238. package/dist/utils/story-users.d.ts +11 -0
  239. package/dist/utils/virtualizer-collection.d.ts +14 -4
  240. package/dist/utils/virtualizer-collection.js +9 -14
  241. package/dist/utils/virtualizer-layout-info.js +3 -2
  242. package/dist/utils/virtualizer-list-layout.d.ts +75 -29
  243. package/dist/utils/virtualizer-list-layout.js +182 -99
  244. package/dist/utils/virtualizer-offsets.d.ts +111 -0
  245. package/dist/utils/virtualizer-offsets.js +159 -0
  246. package/dist/utils/virtualizer-overscan.d.ts +9 -15
  247. package/dist/utils/virtualizer-overscan.js +14 -33
  248. package/dist/utils/virtualizer-table-layout.d.ts +50 -21
  249. package/dist/utils/virtualizer-table-layout.js +130 -89
  250. package/dist/version.js +1 -1
  251. package/package.json +19 -3
  252. package/dist/composables/use-table-column-layout.js +0 -214
  253. /package/dist/{composables → components/dropdown}/use-safely-mouse-to-submenu.d.ts +0 -0
@@ -61,13 +61,17 @@ export * from "./progress-circle/index.js";
61
61
  export * from "./radio/index.js";
62
62
  export * from "./radio-group/index.js";
63
63
  export * from "./range-calendar/index.js";
64
+ export * from "./router-provider/index.js";
64
65
  export * from "./scroll-shadow/index.js";
65
66
  export * from "./search-field/index.js";
67
+ export * from "./segmented-control/index.js";
66
68
  export * from "./select/index.js";
67
69
  export * from "./separator/index.js";
70
+ export * from "./sidebar/index.js";
68
71
  export * from "./skeleton/index.js";
69
72
  export * from "./slider/index.js";
70
73
  export * from "./spinner/index.js";
74
+ export * from "./splitter/index.js";
71
75
  export * from "./surface/index.js";
72
76
  export * from "./switch/index.js";
73
77
  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;
@@ -2,7 +2,9 @@ import { dataAttr } from "../../utils/assertion.js";
2
2
  import { useInteractionStates } from "../../composables/use-interaction-states.js";
3
3
  import { usePress } from "../../composables/use-press.js";
4
4
  import { provideLinkContext } from "./link.context.js";
5
+ import { openLink } from "../../utils/open-link.js";
5
6
  import { useFieldsetContext } from "../fieldset/fieldset.context.js";
7
+ import { useRouterContext } from "../router-provider/router-provider.context.js";
6
8
  import { computed, createIf, createSlot, defineVaporComponent, on, renderEffect, setAttr, setClass, setInsertionState, setProp, template, unref } from "vue";
7
9
  import { linkVariants } from "@ropav/styles";
8
10
  //#region src/components/link/link-root.vue?vue&type=script&setup=true&vapor=true&lang.ts
@@ -30,6 +32,7 @@ var link_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
30
32
  type: [Boolean, String],
31
33
  default: void 0
32
34
  },
35
+ routerOptions: { default: void 0 },
33
36
  ariaLabel: {},
34
37
  ariaLabelledby: {},
35
38
  ariaDescribedby: {}
@@ -39,6 +42,7 @@ var link_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
39
42
  const props = __props;
40
43
  const emit = __emit;
41
44
  const fieldset = useFieldsetContext();
45
+ const router = useRouterContext();
42
46
  const resolvedIsDisabled = computed(() => Boolean(props.isDisabled ?? fieldset?.isDisabled.value));
43
47
  const slots = computed(() => linkVariants());
44
48
  provideLinkContext({ slots });
@@ -51,7 +55,12 @@ var link_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
51
55
  const isAnchor = computed(() => Boolean(props.href) && !resolvedIsDisabled.value);
52
56
  const role = computed(() => isAnchor.value ? void 0 : "link");
53
57
  const tabindex = computed(() => resolvedIsDisabled.value ? void 0 : 0);
54
- const isCurrent = computed(() => Boolean(props.ariaCurrent));
58
+ const ariaCurrent = computed(() => {
59
+ if (props.ariaCurrent !== "auto") return props.ariaCurrent;
60
+ return props.href && router?.isCurrent(props.href) ? "page" : void 0;
61
+ });
62
+ const isCurrent = computed(() => Boolean(ariaCurrent.value));
63
+ const resolvedHref = computed(() => props.href === void 0 ? void 0 : router?.resolveHref(props.href) ?? props.href);
55
64
  const onPointerenter = (event) => {
56
65
  interaction.onPointerenter(event);
57
66
  press.handlers.onPointerenter(event);
@@ -60,13 +69,21 @@ var link_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
60
69
  interaction.onPointerleave();
61
70
  press.handlers.onPointerleave(event);
62
71
  };
72
+ const onClick = (event) => {
73
+ press.handlers.onClick(event);
74
+ openLink(event, {
75
+ href: props.href,
76
+ router,
77
+ routerOptions: props.routerOptions
78
+ });
79
+ };
63
80
  return createIf(() => isAnchor.value, () => {
64
81
  const n3 = t0();
65
82
  renderEffect(() => {
66
83
  const _props = props;
67
84
  const _dataAttr = unref(dataAttr);
68
85
  const _interaction = unref(interaction);
69
- setAttr(n3, "aria-current", _props.ariaCurrent);
86
+ setAttr(n3, "aria-current", ariaCurrent.value);
70
87
  setAttr(n3, "aria-describedby", _props.ariaDescribedby);
71
88
  setAttr(n3, "aria-label", _props.ariaLabel);
72
89
  setAttr(n3, "aria-labelledby", _props.ariaLabelledby);
@@ -77,7 +94,7 @@ var link_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
77
94
  setAttr(n3, "data-hovered", _dataAttr(_interaction.isHovered.value));
78
95
  setAttr(n3, "data-pressed", _dataAttr(unref(press).isPressed.value));
79
96
  setProp(n3, "download", _props.download);
80
- setProp(n3, "href", _props.href);
97
+ setProp(n3, "href", resolvedHref.value);
81
98
  setProp(n3, "hreflang", _props.hrefLang);
82
99
  setProp(n3, "ping", _props.ping);
83
100
  setProp(n3, "referrerpolicy", _props.referrerPolicy);
@@ -95,7 +112,7 @@ var link_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
95
112
  isPressed: () => unref(press).isPressed.value
96
113
  });
97
114
  on(n3, "blur", (e) => unref(interaction).onBlur(e));
98
- on(n3, "click", (e) => unref(press).handlers.onClick(e));
115
+ on(n3, "click", onClick);
99
116
  on(n3, "dragstart", (e) => unref(press).handlers.onDragstart(e));
100
117
  on(n3, "focus", (e) => unref(interaction).onFocus(e));
101
118
  on(n3, "keydown", (e) => unref(press).handlers.onKeydown(e));
@@ -112,7 +129,7 @@ var link_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
112
129
  const _resolvedIsDisabled = resolvedIsDisabled.value;
113
130
  const _dataAttr = unref(dataAttr);
114
131
  const _interaction = unref(interaction);
115
- setAttr(n6, "aria-current", _props.ariaCurrent);
132
+ setAttr(n6, "aria-current", ariaCurrent.value);
116
133
  setAttr(n6, "aria-describedby", _props.ariaDescribedby);
117
134
  setAttr(n6, "aria-disabled", _resolvedIsDisabled || void 0);
118
135
  setAttr(n6, "aria-label", _props.ariaLabel);
@@ -1,7 +1,13 @@
1
1
  /** What the browser accepts for `referrerpolicy` on an anchor. */
2
2
  export type LinkReferrerPolicy = "" | "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url";
3
- /** What assistive technology accepts for `aria-current`. */
4
- export type LinkCurrent = boolean | "date" | "false" | "location" | "page" | "step" | "time" | "true";
3
+ /**
4
+ * What assistive technology accepts for `aria-current`, plus `"auto"`.
5
+ *
6
+ * `"auto"` is not an ARIA token and never reaches the DOM. It asks the router supplied by
7
+ * `RouterProvider` whether this link's href addresses the route showing now, resolving to
8
+ * `"page"` when it does and to nothing at all when it does not — or when no router was supplied.
9
+ */
10
+ export type LinkCurrent = boolean | "auto" | "date" | "false" | "location" | "page" | "step" | "time" | "true";
5
11
  export interface LinkRootProps {
6
12
  class?: string;
7
13
  /** Where the link goes. Without one the link renders as a span with a link role. */
@@ -17,8 +23,13 @@ export interface LinkRootProps {
17
23
  * there is no href for the browser to follow, matching React.
18
24
  */
19
25
  isDisabled?: boolean;
20
- /** Marks the link as the one for the current page. */
26
+ /** Marks the link as the one for the current page. `"auto"` asks the router instead. */
21
27
  ariaCurrent?: LinkCurrent;
28
+ /**
29
+ * Passed through to the router's `navigate` alongside the href, for whatever options the
30
+ * application's router accepts. Ignored without a `RouterProvider` above.
31
+ */
32
+ routerOptions?: unknown;
22
33
  ariaLabel?: string;
23
34
  ariaLabelledby?: string;
24
35
  ariaDescribedby?: string;
@@ -1,5 +1,5 @@
1
- import type { DragCollection } from "../utils/dnd-types.js";
2
- import type { UseCollectionReturn } from "./use-collection.js";
1
+ import type { UseCollectionReturn } from "../../composables/use-collection.js";
2
+ import type { DragCollection } from "../../utils/dnd-types.js";
3
3
  /**
4
4
  * A `DragCollection` over an ordinary flat collection.
5
5
  *
@@ -1,4 +1,4 @@
1
- //#region src/composables/drag-collection.ts
1
+ //#region src/components/list-box/drag-collection.ts
2
2
  /**
3
3
  * A `DragCollection` over an ordinary flat collection.
4
4
  *
@@ -22,6 +22,7 @@ export declare const ListBox: (<T>(__VLS_props: NonNullable<Awaited<typeof __VLS
22
22
  disabledBehavior?: import("../../index.js").DisabledBehavior;
23
23
  disallowEmptySelection?: boolean;
24
24
  variant?: import("@ropav/styles").ListBoxVariants["variant"];
25
+ size?: import("@ropav/styles").ListBoxVariants["size"];
25
26
  dragAndDropHooks?: import("../../index.js").DragAndDropHooks;
26
27
  onAction?: ((key: import("../../index.js").CollectionKey) => any) | undefined;
27
28
  onSelectionChange?: ((keys: import("../../index.js").CollectionSelection) => any) | undefined;
@@ -148,6 +149,7 @@ export declare const ListBox: (<T>(__VLS_props: NonNullable<Awaited<typeof __VLS
148
149
  disabledBehavior?: import("../../index.js").DisabledBehavior;
149
150
  disallowEmptySelection?: boolean;
150
151
  variant?: import("@ropav/styles").ListBoxVariants["variant"];
152
+ size?: import("@ropav/styles").ListBoxVariants["size"];
151
153
  dragAndDropHooks?: import("../../index.js").DragAndDropHooks;
152
154
  onAction?: ((key: import("../../index.js").CollectionKey) => any) | undefined;
153
155
  onSelectionChange?: ((keys: import("../../index.js").CollectionSelection) => any) | undefined;
@@ -192,5 +194,7 @@ export { ListBoxDropIndicator, ListBoxLoadMoreItem, ListBoxRoot };
192
194
  export type { ListBoxDropIndicatorProps, ListBoxLoadMoreItemProps, ListBoxRootProps, ListBoxRootProps as ListBoxProps, } from "./list-box.types.js";
193
195
  export { provideListBoxStateContext, useListBoxContext, useListBoxStateContext, } from "./list-box.context.js";
194
196
  export type { ListBoxContext, ListBoxStateContext } from "./list-box.context.js";
197
+ export type { UseDraggableCollectionStateReturn } from "../../composables/use-draggable-collection-state.js";
198
+ export type { UseDroppableCollectionStateReturn } from "../../composables/use-droppable-collection-state.js";
195
199
  export { listboxVariants } from "@ropav/styles";
196
200
  export type { ListBoxVariants } from "@ropav/styles";
@@ -6,8 +6,8 @@ import { useSelectionManager } from "../../composables/use-selection-manager.js"
6
6
  import { provideListBoxContext, useListBoxStateContext } from "./list-box.context.js";
7
7
  import { provideVirtualizerStateContext, useVirtualizerConfigContext } from "../virtualizer/virtualizer.context.js";
8
8
  import virtualizer_item_default from "../virtualizer/virtualizer-item.js";
9
+ import virtualizer_scrollbar_default from "../virtualizer/virtualizer-scrollbar.js";
9
10
  import list_box_drop_indicator_default from "./list-box-drop-indicator.js";
10
- import { toDragCollection } from "../../composables/drag-collection.js";
11
11
  import { useCollectionAutoFocus } from "../../composables/use-collection-auto-focus.js";
12
12
  import { useDndPersistedKeys } from "../../composables/use-dnd-persisted-keys.js";
13
13
  import { useListKeyboard } from "../../composables/use-list-keyboard.js";
@@ -15,6 +15,7 @@ import { useTypeahead } from "../../composables/use-typeahead.js";
15
15
  import { useVirtualizer } from "../../composables/use-virtualizer.js";
16
16
  import { useVirtualizerScroll } from "../../composables/use-virtualizer-scroll.js";
17
17
  import { provideSeparatorContext } from "../separator/separator.context.js";
18
+ import { toDragCollection } from "./drag-collection.js";
18
19
  import { computed, createComponent, createFor, createIf, createSlot, defineVaporComponent, extend, on, onScopeDispose, renderEffect, setAttr, setClass, setInsertionState, setProp, setStaticTemplateRef, setStyle, shallowRef, template, toValue, unref, useSlots } from "vue";
19
20
  import { listboxVariants } from "@ropav/styles";
20
21
  //#region src/components/list-box/list-box-root.vue?vue&type=script&setup=true&vapor=true&lang.ts
@@ -37,6 +38,7 @@ var list_box_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
37
38
  disabledBehavior: {},
38
39
  disallowEmptySelection: { type: Boolean },
39
40
  variant: {},
41
+ size: {},
40
42
  dragAndDropHooks: {}
41
43
  },
42
44
  emits: [
@@ -59,6 +61,7 @@ var list_box_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
59
61
  const itemOf = (node) => node?.content;
60
62
  const styles = computed(() => listboxVariants({
61
63
  class: props.class,
64
+ size: props.size,
62
65
  variant: props.variant
63
66
  }));
64
67
  /**
@@ -163,7 +166,9 @@ var list_box_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
163
166
  onScrollEnd: virtualizer.endScrolling,
164
167
  onScrollStart: virtualizer.startScrolling,
165
168
  onSizeChange: virtualizer.setSize,
166
- onVisibleRectChange: virtualizer.setVisibleRect
169
+ onVisibleRectChange: virtualizer.setVisibleRect,
170
+ scrollAdjustment: () => virtualizer.scrollAdjustment.value,
171
+ takeScrollAdjustment: virtualizer.takeScrollAdjustment
167
172
  });
168
173
  /**
169
174
  * Paging asks the layout where the rows are, not the DOM.
@@ -279,11 +284,18 @@ var list_box_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
279
284
  keyboard,
280
285
  selection
281
286
  });
282
- if (virtualizer && virtualizerConfig) provideVirtualizerStateContext({
287
+ if (virtualizer && virtualizerConfig && scroll) provideVirtualizerStateContext({
283
288
  getIndex: (key) => collection.getIndex(key),
284
289
  getDropTargetLayoutInfo: virtualizerConfig.layout.value.getDropTargetLayoutInfo?.bind(virtualizerConfig.layout.value),
285
290
  getLayoutInfo: virtualizer.getLayoutInfo,
286
291
  itemCount: computed(() => source.value?.itemCount ?? 0),
292
+ scroll: {
293
+ box: scroll.scrollBox,
294
+ offset: scroll.scrollOffset,
295
+ scrollSize: scroll.scrollSize,
296
+ scrollTo: scroll.scrollTo,
297
+ size: virtualizer.size
298
+ },
287
299
  shouldObserveItemSize: virtualizerConfig.shouldObserveItemSize,
288
300
  updateItemSize: virtualizer.updateItemSize
289
301
  });
@@ -293,33 +305,42 @@ var list_box_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
293
305
  };
294
306
  const isEmpty = computed(() => collection.size.value === 0);
295
307
  const hasEmptySlot = computed(() => Boolean(callerSlots["empty"]));
296
- const n19 = t2();
308
+ /**
309
+ * A windowed listbox hides the native scrollbar and draws its own in the content wrapper below: a
310
+ * native thumb is moved by the compositor, a frame ahead of the options, and across a long
311
+ * collection that frame shows an empty list. Wheel, trackpad and keyboard scrolling stay native.
312
+ */
313
+ const rootStyle = computed(() => isVirtualized.value ? { scrollbarWidth: "none" } : void 0);
314
+ const n20 = t2();
297
315
  renderEffect(() => {
298
316
  const _selection = unref(selection);
299
317
  const _dataAttr = unref(dataAttr);
300
- setProp(n19, "id", listId.value);
301
- setAttr(n19, "aria-label", ownerAriaLabel.value);
302
- setAttr(n19, "aria-labelledby", labelledBy.value);
303
- setAttr(n19, "aria-multiselectable", _selection.selectionMode.value === "multiple" ? true : void 0);
304
- setClass(n19, styles.value);
305
- setAttr(n19, "data-collection", unref(collectionId));
306
- setAttr(n19, "data-drop-target", _dataAttr(isRootDropTarget.value));
307
- setAttr(n19, "data-empty", _dataAttr(isEmpty.value));
308
- setAttr(n19, "data-focus-visible", _dataAttr(_selection.isFocused.value));
309
- setProp(n19, "tabindex", unref(keyboard).collectionTabIndex.value);
318
+ setProp(n20, "id", listId.value);
319
+ setAttr(n20, "aria-label", ownerAriaLabel.value);
320
+ setAttr(n20, "aria-labelledby", labelledBy.value);
321
+ setAttr(n20, "aria-multiselectable", _selection.selectionMode.value === "multiple" ? true : void 0);
322
+ setClass(n20, styles.value);
323
+ setAttr(n20, "data-collection", unref(collectionId));
324
+ setAttr(n20, "data-drop-target", _dataAttr(isRootDropTarget.value));
325
+ setAttr(n20, "data-empty", _dataAttr(isEmpty.value));
326
+ setAttr(n20, "data-focus-visible", _dataAttr(_selection.isFocused.value));
327
+ setStyle(n20, rootStyle.value);
328
+ setProp(n20, "tabindex", unref(keyboard).collectionTabIndex.value);
310
329
  });
311
- setInsertionState(n19);
330
+ setInsertionState(n20);
312
331
  createIf(() => hasEmptySlot.value && isEmpty.value, () => {
313
332
  const n3 = t0();
314
333
  setInsertionState(n3);
315
334
  createSlot("empty");
316
335
  return n3;
317
336
  });
318
- setInsertionState(n19, 1);
337
+ setInsertionState(n20, 1);
319
338
  createIf(() => isVirtualized.value, () => {
320
- const n16 = t1();
321
- renderEffect(() => setStyle(n16, unref(scroll)?.contentStyle.value));
322
- setInsertionState(n16);
339
+ const n17 = t1();
340
+ renderEffect(() => setStyle(n17, unref(scroll)?.contentStyle.value));
341
+ setInsertionState(n17);
342
+ createComponent(unref(virtualizer_scrollbar_default));
343
+ setInsertionState(n17, 1);
323
344
  createFor(() => unref(virtualizer)?.visibleViews.value, (_for_item0) => {
324
345
  return [createIf(() => rendersDropIndicators.value, () => {
325
346
  return createComponent(list_box_drop_indicator_default, { target: () => ({
@@ -334,7 +355,7 @@ var list_box_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
334
355
  }, null, 36);
335
356
  }, { _: 8 }))];
336
357
  }, (view) => view.key);
337
- setInsertionState(n16, 1);
358
+ setInsertionState(n17, 2);
338
359
  createIf(() => rendersDropIndicators.value && lastItemKey.value != null, () => {
339
360
  return createComponent(list_box_drop_indicator_default, { target: () => ({
340
361
  dropPosition: "after",
@@ -342,21 +363,21 @@ var list_box_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__
342
363
  type: "item"
343
364
  }) });
344
365
  });
345
- return n16;
366
+ return n17;
346
367
  }, () => {
347
368
  return createSlot();
348
369
  }, 1029);
349
- on(n19, "dragenter", ($event) => unref(droppable)?.handlers.onDragenter($event));
350
- on(n19, "dragleave", ($event) => unref(droppable)?.handlers.onDragleave($event));
351
- on(n19, "dragover", ($event) => unref(droppable)?.handlers.onDragover($event));
352
- on(n19, "drop", ($event) => unref(droppable)?.handlers.onDrop($event));
353
- on(n19, "focusin", (e) => unref(keyboard).onFocusin(e));
354
- on(n19, "focusout", (e) => unref(keyboard).onFocusout(e));
355
- on(n19, "keydown", onKeydown);
356
- on(n19, "keydown", (e) => unref(typeahead).onKeydownCapture(e), { capture: true });
357
- on(n19, "mousedown", onMousedown);
358
- setStaticTemplateRef(n19, element, null, "element");
359
- return n19;
370
+ on(n20, "dragenter", ($event) => unref(droppable)?.handlers.onDragenter($event));
371
+ on(n20, "dragleave", ($event) => unref(droppable)?.handlers.onDragleave($event));
372
+ on(n20, "dragover", ($event) => unref(droppable)?.handlers.onDragover($event));
373
+ on(n20, "drop", ($event) => unref(droppable)?.handlers.onDrop($event));
374
+ on(n20, "focusin", (e) => unref(keyboard).onFocusin(e));
375
+ on(n20, "focusout", (e) => unref(keyboard).onFocusout(e));
376
+ on(n20, "keydown", onKeydown);
377
+ on(n20, "keydown", (e) => unref(typeahead).onKeydownCapture(e), { capture: true });
378
+ on(n20, "mousedown", onMousedown);
379
+ setStaticTemplateRef(n20, element, null, "element");
380
+ return n20;
360
381
  }
361
382
  });
362
383
  //#endregion
@@ -44,6 +44,8 @@ export interface ListBoxRootProps<T = unknown> {
44
44
  disallowEmptySelection?: boolean;
45
45
  /** Visual variant. */
46
46
  variant?: ListBoxVariants["variant"];
47
+ /** How tall a row stands, matching a field of the same size. @default "md" */
48
+ size?: ListBoxVariants["size"];
47
49
  /** Drag and drop behaviour, from `useDragAndDrop`. */
48
50
  dragAndDropHooks?: DragAndDropHooks;
49
51
  }
@@ -9,6 +9,7 @@ export declare const Menu: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setup
9
9
  }, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
10
10
  props: import('vue').PublicProps & {
11
11
  class?: string;
12
+ size?: import("@ropav/styles").MenuVariants["size"];
12
13
  id?: string;
13
14
  ariaLabelledby?: string;
14
15
  ariaLabel?: string;
@@ -48,6 +49,7 @@ export declare const Menu: ((__VLS_props: NonNullable<Awaited<typeof __VLS_setup
48
49
  }, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>['expose'], __VLS_setup?: Promise<{
49
50
  props: import('vue').PublicProps & {
50
51
  class?: string;
52
+ size?: import("@ropav/styles").MenuVariants["size"];
51
53
  id?: string;
52
54
  ariaLabelledby?: string;
53
55
  ariaLabel?: string;
@@ -9,6 +9,7 @@ var menu_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
9
9
  __name: "menu-root",
10
10
  props: {
11
11
  class: {},
12
+ size: {},
12
13
  id: {},
13
14
  ariaLabelledby: {},
14
15
  ariaLabel: {},
@@ -38,7 +39,10 @@ var menu_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /*@__PURE
38
39
  const props = __props;
39
40
  const emit = __emit;
40
41
  const callerSlots = useSlots();
41
- const styles = computed(() => menuVariants({ class: props.class }));
42
+ const styles = computed(() => menuVariants({
43
+ class: props.class,
44
+ size: props.size
45
+ }));
42
46
  provideSeparatorContext({ elementType: "div" });
43
47
  const menu = useMenu({
44
48
  autoFocus: () => props.autoFocus,
@@ -1,8 +1,11 @@
1
1
  import type { CollectionKey } from "../../composables/use-collection.js";
2
2
  import type { FocusStrategy } from "../../composables/use-overlay-trigger-state.js";
3
3
  import type { CollectionSelection, DisabledBehavior, SelectionBehavior, SelectionMode } from "../../composables/use-selection-manager.js";
4
+ import type { MenuVariants } from "@ropav/styles";
4
5
  export interface MenuRootProps {
5
6
  class?: string;
7
+ /** How tall a row stands, matching a field of the same size. @default "md" */
8
+ size?: MenuVariants["size"];
6
9
  /** Overrides the menu's id, which a trigger's `aria-controls` points at. */
7
10
  id?: string;
8
11
  /** The id of the element naming the menu, normally its trigger. */
@@ -13,6 +13,7 @@ export declare const NumberField: ((__VLS_props: NonNullable<Awaited<typeof __VL
13
13
  props: import('vue').PublicProps & {
14
14
  class?: string;
15
15
  variant?: import("@ropav/styles").NumberFieldVariants["variant"];
16
+ size?: import("@ropav/styles").NumberFieldVariants["size"];
16
17
  fullWidth?: boolean;
17
18
  value?: number | null;
18
19
  defaultValue?: number;
@@ -144,6 +145,7 @@ export declare const NumberField: ((__VLS_props: NonNullable<Awaited<typeof __VL
144
145
  props: import('vue').PublicProps & {
145
146
  class?: string;
146
147
  variant?: import("@ropav/styles").NumberFieldVariants["variant"];
148
+ size?: import("@ropav/styles").NumberFieldVariants["size"];
147
149
  fullWidth?: boolean;
148
150
  value?: number | null;
149
151
  defaultValue?: number;
@@ -189,5 +191,6 @@ export { NumberFieldDecrementButton, NumberFieldGroup, NumberFieldIncrementButto
189
191
  export type { NumberFieldRootProps, NumberFieldRootProps as NumberFieldProps, NumberFieldRootSlotProps, NumberFieldGroupProps, NumberFieldGroupSlotProps, NumberFieldInputProps, NumberFieldStepperButtonProps, } from "./number-field.types.js";
190
192
  export { provideNumberFieldContext, useNumberFieldContext } from "./number-field.context.js";
191
193
  export type { NumberFieldContext } from "./number-field.context.js";
194
+ export type { NumberFieldStepper, UseNumberFieldReturn } from "../../composables/use-number-field.js";
192
195
  export { numberFieldVariants } from "@ropav/styles";
193
196
  export type { NumberFieldVariants } from "@ropav/styles";
@@ -13,6 +13,7 @@ var number_field_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /
13
13
  props: {
14
14
  class: {},
15
15
  variant: { default: void 0 },
16
+ size: {},
16
17
  fullWidth: {
17
18
  type: Boolean,
18
19
  default: void 0
@@ -98,6 +99,7 @@ var number_field_root_vue_vue_type_script_setup_true_vapor_true_lang_default = /
98
99
  });
99
100
  const slots = computed(() => numberFieldVariants({
100
101
  fullWidth: props.fullWidth,
102
+ size: props.size,
101
103
  variant: props.variant
102
104
  }));
103
105
  provideFieldIdsContext(field.fieldIds);
@@ -5,6 +5,8 @@ export interface NumberFieldRootProps {
5
5
  class?: string;
6
6
  /** Visual variant. @default "primary" */
7
7
  variant?: NumberFieldVariants["variant"];
8
+ /** How tall the field stands, matching a button of the same size. @default "md" */
9
+ size?: NumberFieldVariants["size"];
8
10
  /** Whether the field stretches to fill its container. */
9
11
  fullWidth?: boolean;
10
12
  /** The number in the field. Makes it controlled. `null` means no number at all. */