@bitrix24/b24ui-nuxt 2.0.9 → 2.1.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 (145) hide show
  1. package/dist/meta.d.mts +77776 -42923
  2. package/dist/meta.mjs +77776 -42923
  3. package/dist/module.json +1 -1
  4. package/dist/module.mjs +3 -3
  5. package/dist/runtime/components/Advice.d.vue.ts +1 -1
  6. package/dist/runtime/components/Advice.vue +1 -3
  7. package/dist/runtime/components/Advice.vue.d.ts +1 -1
  8. package/dist/runtime/components/App.d.vue.ts +1 -1
  9. package/dist/runtime/components/App.vue +2 -1
  10. package/dist/runtime/components/App.vue.d.ts +1 -1
  11. package/dist/runtime/components/Avatar.d.vue.ts +2 -1
  12. package/dist/runtime/components/Avatar.vue.d.ts +2 -1
  13. package/dist/runtime/components/Button.vue +1 -0
  14. package/dist/runtime/components/ChatPrompt.d.vue.ts +2 -2
  15. package/dist/runtime/components/ChatPrompt.vue +5 -5
  16. package/dist/runtime/components/ChatPrompt.vue.d.ts +2 -2
  17. package/dist/runtime/components/ChatPromptSubmit.d.vue.ts +5 -5
  18. package/dist/runtime/components/ChatPromptSubmit.vue +53 -4
  19. package/dist/runtime/components/ChatPromptSubmit.vue.d.ts +5 -5
  20. package/dist/runtime/components/Checkbox.d.vue.ts +2 -1
  21. package/dist/runtime/components/Checkbox.vue.d.ts +2 -1
  22. package/dist/runtime/components/CommandPalette.vue +5 -4
  23. package/dist/runtime/components/DashboardSearch.d.vue.ts +3 -6
  24. package/dist/runtime/components/DashboardSearch.vue +2 -3
  25. package/dist/runtime/components/DashboardSearch.vue.d.ts +3 -6
  26. package/dist/runtime/components/DashboardSearchButton.d.vue.ts +2 -3
  27. package/dist/runtime/components/DashboardSearchButton.vue +44 -6
  28. package/dist/runtime/components/DashboardSearchButton.vue.d.ts +2 -3
  29. package/dist/runtime/components/Error.d.vue.ts +1 -1
  30. package/dist/runtime/components/Error.vue.d.ts +1 -1
  31. package/dist/runtime/components/FileUpload.d.vue.ts +3 -2
  32. package/dist/runtime/components/FileUpload.vue +9 -9
  33. package/dist/runtime/components/FileUpload.vue.d.ts +3 -2
  34. package/dist/runtime/components/Form.d.vue.ts +2 -1
  35. package/dist/runtime/components/Form.vue.d.ts +2 -1
  36. package/dist/runtime/components/Input.d.vue.ts +7 -7
  37. package/dist/runtime/components/Input.vue +2 -2
  38. package/dist/runtime/components/Input.vue.d.ts +7 -7
  39. package/dist/runtime/components/InputDate.d.vue.ts +115 -0
  40. package/dist/runtime/components/InputDate.vue +198 -0
  41. package/dist/runtime/components/InputDate.vue.d.ts +115 -0
  42. package/dist/runtime/components/InputMenu.d.vue.ts +7 -128
  43. package/dist/runtime/components/InputMenu.vue +3 -3
  44. package/dist/runtime/components/InputMenu.vue.d.ts +7 -128
  45. package/dist/runtime/components/InputNumber.d.vue.ts +25 -124
  46. package/dist/runtime/components/InputNumber.vue +3 -3
  47. package/dist/runtime/components/InputNumber.vue.d.ts +25 -124
  48. package/dist/runtime/components/InputTags.d.vue.ts +6 -109
  49. package/dist/runtime/components/InputTags.vue +8 -8
  50. package/dist/runtime/components/InputTags.vue.d.ts +6 -109
  51. package/dist/runtime/components/InputTime.d.vue.ts +99 -0
  52. package/dist/runtime/components/InputTime.vue +170 -0
  53. package/dist/runtime/components/InputTime.vue.d.ts +99 -0
  54. package/dist/runtime/components/Link.d.vue.ts +4 -49
  55. package/dist/runtime/components/Link.vue +1 -0
  56. package/dist/runtime/components/Link.vue.d.ts +4 -49
  57. package/dist/runtime/components/Modal.d.vue.ts +1 -1
  58. package/dist/runtime/components/Modal.vue.d.ts +1 -1
  59. package/dist/runtime/components/Pagination.d.vue.ts +2 -2
  60. package/dist/runtime/components/Pagination.vue.d.ts +2 -2
  61. package/dist/runtime/components/PinInput.d.vue.ts +3 -3
  62. package/dist/runtime/components/PinInput.vue.d.ts +3 -3
  63. package/dist/runtime/components/Progress.d.vue.ts +1 -1
  64. package/dist/runtime/components/Progress.vue.d.ts +1 -1
  65. package/dist/runtime/components/Select.d.vue.ts +6 -107
  66. package/dist/runtime/components/Select.vue +3 -3
  67. package/dist/runtime/components/Select.vue.d.ts +6 -107
  68. package/dist/runtime/components/SelectMenu.d.vue.ts +7 -106
  69. package/dist/runtime/components/SelectMenu.vue +3 -3
  70. package/dist/runtime/components/SelectMenu.vue.d.ts +7 -106
  71. package/dist/runtime/components/Slideover.d.vue.ts +1 -1
  72. package/dist/runtime/components/Slideover.vue.d.ts +1 -1
  73. package/dist/runtime/components/Switch.d.vue.ts +2 -1
  74. package/dist/runtime/components/Switch.vue.d.ts +2 -1
  75. package/dist/runtime/components/Table.d.vue.ts +5 -4
  76. package/dist/runtime/components/Table.vue +4 -3
  77. package/dist/runtime/components/Table.vue.d.ts +5 -4
  78. package/dist/runtime/components/Textarea.d.vue.ts +7 -6
  79. package/dist/runtime/components/Textarea.vue +2 -2
  80. package/dist/runtime/components/Textarea.vue.d.ts +7 -6
  81. package/dist/runtime/components/Toast.vue +5 -5
  82. package/dist/runtime/components/Toaster.d.vue.ts +1 -1
  83. package/dist/runtime/components/Toaster.vue.d.ts +1 -1
  84. package/dist/runtime/components/color-mode/ColorModeAvatar.d.vue.ts +3 -3
  85. package/dist/runtime/components/color-mode/ColorModeAvatar.vue +16 -4
  86. package/dist/runtime/components/color-mode/ColorModeAvatar.vue.d.ts +3 -3
  87. package/dist/runtime/components/color-mode/ColorModeButton.d.vue.ts +3 -3
  88. package/dist/runtime/components/color-mode/ColorModeButton.vue +54 -6
  89. package/dist/runtime/components/color-mode/ColorModeButton.vue.d.ts +3 -3
  90. package/dist/runtime/components/color-mode/ColorModeImage.d.vue.ts +4 -3
  91. package/dist/runtime/components/color-mode/ColorModeImage.vue +4 -0
  92. package/dist/runtime/components/color-mode/ColorModeImage.vue.d.ts +4 -3
  93. package/dist/runtime/components/color-mode/ColorModeSelect.d.vue.ts +5 -3
  94. package/dist/runtime/components/color-mode/ColorModeSelect.vue +47 -5
  95. package/dist/runtime/components/color-mode/ColorModeSelect.vue.d.ts +5 -3
  96. package/dist/runtime/components/color-mode/ColorModeSwitch.d.vue.ts +2 -2
  97. package/dist/runtime/components/color-mode/ColorModeSwitch.vue +29 -5
  98. package/dist/runtime/components/color-mode/ColorModeSwitch.vue.d.ts +2 -2
  99. package/dist/runtime/components/content/ContentSearch.d.vue.ts +3 -6
  100. package/dist/runtime/components/content/ContentSearch.vue +2 -3
  101. package/dist/runtime/components/content/ContentSearch.vue.d.ts +3 -6
  102. package/dist/runtime/components/content/ContentSearchButton.d.vue.ts +2 -3
  103. package/dist/runtime/components/content/ContentSearchButton.vue +43 -5
  104. package/dist/runtime/components/content/ContentSearchButton.vue.d.ts +2 -3
  105. package/dist/runtime/components/content/ContentSurround.vue +7 -1
  106. package/dist/runtime/components/locale/LocaleSelect.d.vue.ts +11 -7
  107. package/dist/runtime/components/locale/LocaleSelect.vue +50 -6
  108. package/dist/runtime/components/locale/LocaleSelect.vue.d.ts +11 -7
  109. package/dist/runtime/components/prose/Callout.vue +4 -0
  110. package/dist/runtime/composables/index.d.ts +8 -0
  111. package/dist/runtime/composables/index.js +8 -0
  112. package/dist/runtime/composables/useFileUpload.d.ts +2 -1
  113. package/dist/runtime/composables/useFileUpload.js +13 -4
  114. package/dist/runtime/inertia/components/Link.d.vue.ts +17 -10
  115. package/dist/runtime/inertia/components/Link.vue +8 -6
  116. package/dist/runtime/inertia/components/Link.vue.d.ts +17 -10
  117. package/dist/runtime/inertia/stubs.d.ts +1 -1
  118. package/dist/runtime/types/html.d.ts +8 -0
  119. package/dist/runtime/types/html.js +0 -0
  120. package/dist/runtime/types/index.d.ts +2 -0
  121. package/dist/runtime/types/index.js +2 -0
  122. package/dist/runtime/types/input.d.ts +5 -5
  123. package/dist/runtime/types/utils.d.ts +2 -0
  124. package/dist/runtime/utils/content.d.ts +2 -2
  125. package/dist/runtime/utils/dashboard.d.ts +1 -1
  126. package/dist/runtime/utils/link.d.ts +1 -0
  127. package/dist/runtime/utils/link.js +40 -24
  128. package/dist/runtime/vue/components/Link.d.vue.ts +8 -37
  129. package/dist/runtime/vue/components/Link.vue +6 -11
  130. package/dist/runtime/vue/components/Link.vue.d.ts +8 -37
  131. package/dist/runtime/vue/components/color-mode/ColorModeButton.d.vue.ts +2 -2
  132. package/dist/runtime/vue/components/color-mode/ColorModeButton.vue +55 -5
  133. package/dist/runtime/vue/components/color-mode/ColorModeButton.vue.d.ts +2 -2
  134. package/dist/runtime/vue/components/color-mode/ColorModeSelect.d.vue.ts +5 -3
  135. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue +46 -3
  136. package/dist/runtime/vue/components/color-mode/ColorModeSelect.vue.d.ts +5 -3
  137. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.d.vue.ts +1 -1
  138. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue +24 -3
  139. package/dist/runtime/vue/components/color-mode/ColorModeSwitch.vue.d.ts +1 -1
  140. package/dist/runtime/vue/stubs.d.ts +2 -2
  141. package/dist/runtime/vue/stubs.js +1 -1
  142. package/dist/shared/{b24ui-nuxt.4XNR9Ysu.mjs → b24ui-nuxt.CXLCGBie.mjs} +135 -1
  143. package/dist/unplugin.mjs +1 -1
  144. package/dist/vite.mjs +1 -1
  145. package/package.json +24 -14
@@ -3,6 +3,7 @@ import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/b24ui/select';
4
4
  import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
5
  import type { AvatarProps, ChipProps, BadgeProps, IconComponent } from '../types';
6
+ import type { ButtonHTMLAttributes } from '../types/html';
6
7
  import type { AcceptableValue, ArrayOrNested, GetItemKeys, GetModelValue, GetModelValueEmits, NestedItem, EmitsToProps } from '../types/utils';
7
8
  import type { ComponentConfig } from '../types/tv';
8
9
  type Select = ComponentConfig<typeof theme, AppConfig, 'select'>;
@@ -30,7 +31,7 @@ export type SelectItem = SelectValue | {
30
31
  b24ui?: Pick<Select['slots'], 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChipSize' | 'itemLeadingChip' | 'itemWrapper' | 'itemLabel' | 'itemDescription' | 'itemTrailing' | 'itemTrailingIcon'>;
31
32
  [key: string]: any;
32
33
  };
33
- export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = 'value', M extends boolean = false> extends Omit<SelectRootProps<T>, 'dir' | 'multiple' | 'modelValue' | 'defaultValue' | 'by'>, UseComponentIconsProps {
34
+ export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = 'value', M extends boolean = false> extends Omit<SelectRootProps<T>, 'dir' | 'multiple' | 'modelValue' | 'defaultValue' | 'by'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
34
35
  id?: string;
35
36
  /** The placeholder text when the select is empty. */
36
37
  placeholder?: string;
@@ -58,7 +59,7 @@ export interface SelectProps<T extends ArrayOrNested<SelectItem> = ArrayOrNested
58
59
  */
59
60
  underline?: boolean;
60
61
  /**
61
- * Rounds the corners of the button
62
+ * Rounds the corners of the select
62
63
  * @defaultValue false
63
64
  */
64
65
  rounded?: boolean;
@@ -165,120 +166,18 @@ export interface SelectSlots<A extends ArrayOrNested<SelectItem> = ArrayOrNested
165
166
  }
166
167
  declare const __VLS_export: <T extends ArrayOrNested<SelectItem>, VK extends GetItemKeys<T> = "value", M extends boolean = false>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
167
168
  props: __VLS_PrettifyLocal<SelectProps<T, VK, M> & {
168
- onBlur?: ((event: FocusEvent) => any) | undefined;
169
169
  onChange?: ((event: Event) => any) | undefined;
170
+ onBlur?: ((event: FocusEvent) => any) | undefined;
170
171
  onFocus?: ((event: FocusEvent) => any) | undefined;
171
172
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
172
173
  "onUpdate:modelValue"?: ((value: GetModelValue<T, VK, M>) => any) | undefined;
173
174
  }> & import("vue").PublicProps;
174
175
  expose: (exposed: import("vue").ShallowUnwrapRef<{
175
- triggerRef: import("vue").Ref<({
176
- $: import("vue").ComponentInternalInstance;
177
- $data: {};
178
- $props: {
179
- readonly disabled?: boolean | undefined;
180
- readonly reference?: import("reka-ui").ReferenceElement | undefined;
181
- readonly asChild?: boolean | undefined;
182
- readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
183
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
184
- $attrs: {
185
- [x: string]: unknown;
186
- };
187
- $refs: {
188
- [x: string]: unknown;
189
- };
190
- $slots: Readonly<{
191
- [name: string]: import("vue").Slot<any> | undefined;
192
- }>;
193
- $root: import("vue").ComponentPublicInstance | null;
194
- $parent: import("vue").ComponentPublicInstance | null;
195
- $host: Element | null;
196
- $emit: (event: string, ...args: any[]) => void;
197
- $el: any;
198
- $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").SelectTriggerProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
199
- as: import("reka-ui").AsTag | import("vue").Component;
200
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
201
- beforeCreate?: (() => void) | (() => void)[];
202
- created?: (() => void) | (() => void)[];
203
- beforeMount?: (() => void) | (() => void)[];
204
- mounted?: (() => void) | (() => void)[];
205
- beforeUpdate?: (() => void) | (() => void)[];
206
- updated?: (() => void) | (() => void)[];
207
- activated?: (() => void) | (() => void)[];
208
- deactivated?: (() => void) | (() => void)[];
209
- beforeDestroy?: (() => void) | (() => void)[];
210
- beforeUnmount?: (() => void) | (() => void)[];
211
- destroyed?: (() => void) | (() => void)[];
212
- unmounted?: (() => void) | (() => void)[];
213
- renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
214
- renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
215
- errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
216
- };
217
- $forceUpdate: () => void;
218
- $nextTick: typeof import("vue").nextTick;
219
- $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
220
- } & Readonly<{
221
- as: import("reka-ui").AsTag | import("vue").Component;
222
- }> & Omit<Readonly<import("reka-ui").SelectTriggerProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
223
- $slots: {
224
- default?: (props: {}) => any;
225
- };
226
- }) | null, ({
227
- $: import("vue").ComponentInternalInstance;
228
- $data: {};
229
- $props: {
230
- readonly disabled?: boolean | undefined;
231
- readonly reference?: import("reka-ui").ReferenceElement | undefined;
232
- readonly asChild?: boolean | undefined;
233
- readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
234
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
235
- $attrs: {
236
- [x: string]: unknown;
237
- };
238
- $refs: {
239
- [x: string]: unknown;
240
- };
241
- $slots: Readonly<{
242
- [name: string]: import("vue").Slot<any> | undefined;
243
- }>;
244
- $root: import("vue").ComponentPublicInstance | null;
245
- $parent: import("vue").ComponentPublicInstance | null;
246
- $host: Element | null;
247
- $emit: (event: string, ...args: any[]) => void;
248
- $el: any;
249
- $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").SelectTriggerProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
250
- as: import("reka-ui").AsTag | import("vue").Component;
251
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
252
- beforeCreate?: (() => void) | (() => void)[];
253
- created?: (() => void) | (() => void)[];
254
- beforeMount?: (() => void) | (() => void)[];
255
- mounted?: (() => void) | (() => void)[];
256
- beforeUpdate?: (() => void) | (() => void)[];
257
- updated?: (() => void) | (() => void)[];
258
- activated?: (() => void) | (() => void)[];
259
- deactivated?: (() => void) | (() => void)[];
260
- beforeDestroy?: (() => void) | (() => void)[];
261
- beforeUnmount?: (() => void) | (() => void)[];
262
- destroyed?: (() => void) | (() => void)[];
263
- unmounted?: (() => void) | (() => void)[];
264
- renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
265
- renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
266
- errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
267
- };
268
- $forceUpdate: () => void;
269
- $nextTick: typeof import("vue").nextTick;
270
- $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
271
- } & Readonly<{
272
- as: import("reka-ui").AsTag | import("vue").Component;
273
- }> & Omit<Readonly<import("reka-ui").SelectTriggerProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
274
- $slots: {
275
- default?: (props: {}) => any;
276
- };
277
- }) | null>;
176
+ triggerRef: Readonly<import("vue").Ref<HTMLButtonElement, HTMLButtonElement>>;
278
177
  }>) => void;
279
178
  attrs: any;
280
179
  slots: SelectSlots<T, VK, M, NestedItem<T>>;
281
- emit: ((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void);
180
+ emit: ((evt: "change", event: Event) => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void);
282
181
  }>) => import("vue").VNode & {
283
182
  __ctx?: Awaited<typeof __VLS_setup>;
284
183
  };
@@ -3,6 +3,7 @@ import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/b24ui/select-menu';
4
4
  import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
5
  import type { AvatarProps, ChipProps, InputProps, BadgeProps, IconComponent } from '../types';
6
+ import type { ButtonHTMLAttributes } from '../types/html';
6
7
  import type { AcceptableValue, ArrayOrNested, GetItemKeys, GetModelValue, GetModelValueEmits, NestedItem, EmitsToProps } from '../types/utils';
7
8
  import type { ComponentConfig } from '../types/tv';
8
9
  type SelectMenu = ComponentConfig<typeof theme, AppConfig, 'selectMenu'>;
@@ -29,7 +30,7 @@ export type SelectMenuItem = SelectMenuValue | {
29
30
  b24ui?: Pick<SelectMenu['slots'], 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChipSize' | 'itemLeadingChip' | 'itemWrapper' | 'itemLabel' | 'itemDescription' | 'itemTrailing' | 'itemTrailingIcon'>;
30
31
  [key: string]: any;
31
32
  };
32
- export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = ArrayOrNested<SelectMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false> extends Pick<ComboboxRootProps<T>, 'open' | 'defaultOpen' | 'disabled' | 'name' | 'resetSearchTermOnBlur' | 'resetSearchTermOnSelect' | 'highlightOnHover'>, UseComponentIconsProps {
33
+ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = ArrayOrNested<SelectMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false> extends Pick<ComboboxRootProps<T>, 'open' | 'defaultOpen' | 'disabled' | 'name' | 'resetSearchTermOnBlur' | 'resetSearchTermOnSelect' | 'highlightOnHover'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
33
34
  id?: string;
34
35
  /** The placeholder text when the select is empty. */
35
36
  placeholder?: string;
@@ -64,7 +65,7 @@ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = Array
64
65
  */
65
66
  underline?: boolean;
66
67
  /**
67
- * Rounds the corners of the button
68
+ * Rounds the corners of the select
68
69
  * @defaultValue false
69
70
  */
70
71
  rounded?: boolean;
@@ -226,11 +227,11 @@ declare const __VLS_export: <T extends ArrayOrNested<SelectMenuItem>, VK extends
226
227
  props: __VLS_PrettifyLocal<(SelectMenuProps<T, VK, M> & {
227
228
  searchTerm?: string;
228
229
  }) & {
229
- onBlur?: ((event: FocusEvent) => any) | undefined;
230
230
  onChange?: ((event: Event) => any) | undefined;
231
+ onBlur?: ((event: FocusEvent) => any) | undefined;
231
232
  onFocus?: ((event: FocusEvent) => any) | undefined;
232
- onCreate?: ((item: string) => any) | undefined;
233
233
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
234
+ onCreate?: ((item: string) => any) | undefined;
234
235
  "onUpdate:modelValue"?: ((value: GetModelValue<T, VK, M>) => any) | undefined;
235
236
  onHighlight?: ((payload: {
236
237
  ref: HTMLElement;
@@ -239,111 +240,11 @@ declare const __VLS_export: <T extends ArrayOrNested<SelectMenuItem>, VK extends
239
240
  "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
240
241
  }> & import("vue").PublicProps;
241
242
  expose: (exposed: import("vue").ShallowUnwrapRef<{
242
- triggerRef: import("vue").Ref<({
243
- $: import("vue").ComponentInternalInstance;
244
- $data: {};
245
- $props: {
246
- readonly disabled?: boolean | undefined;
247
- readonly asChild?: boolean | undefined;
248
- readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
249
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
250
- $attrs: {
251
- [x: string]: unknown;
252
- };
253
- $refs: {
254
- [x: string]: unknown;
255
- };
256
- $slots: Readonly<{
257
- [name: string]: import("vue").Slot<any> | undefined;
258
- }>;
259
- $root: import("vue").ComponentPublicInstance | null;
260
- $parent: import("vue").ComponentPublicInstance | null;
261
- $host: Element | null;
262
- $emit: (event: string, ...args: any[]) => void;
263
- $el: any;
264
- $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").ComboboxTriggerProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
265
- as: import("reka-ui").AsTag | import("vue").Component;
266
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
267
- beforeCreate?: (() => void) | (() => void)[];
268
- created?: (() => void) | (() => void)[];
269
- beforeMount?: (() => void) | (() => void)[];
270
- mounted?: (() => void) | (() => void)[];
271
- beforeUpdate?: (() => void) | (() => void)[];
272
- updated?: (() => void) | (() => void)[];
273
- activated?: (() => void) | (() => void)[];
274
- deactivated?: (() => void) | (() => void)[];
275
- beforeDestroy?: (() => void) | (() => void)[];
276
- beforeUnmount?: (() => void) | (() => void)[];
277
- destroyed?: (() => void) | (() => void)[];
278
- unmounted?: (() => void) | (() => void)[];
279
- renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
280
- renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
281
- errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
282
- };
283
- $forceUpdate: () => void;
284
- $nextTick: typeof import("vue").nextTick;
285
- $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
286
- } & Readonly<{
287
- as: import("reka-ui").AsTag | import("vue").Component;
288
- }> & Omit<Readonly<import("reka-ui").ComboboxTriggerProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
289
- $slots: {
290
- default?: (props: {}) => any;
291
- };
292
- }) | null, ({
293
- $: import("vue").ComponentInternalInstance;
294
- $data: {};
295
- $props: {
296
- readonly disabled?: boolean | undefined;
297
- readonly asChild?: boolean | undefined;
298
- readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
299
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
300
- $attrs: {
301
- [x: string]: unknown;
302
- };
303
- $refs: {
304
- [x: string]: unknown;
305
- };
306
- $slots: Readonly<{
307
- [name: string]: import("vue").Slot<any> | undefined;
308
- }>;
309
- $root: import("vue").ComponentPublicInstance | null;
310
- $parent: import("vue").ComponentPublicInstance | null;
311
- $host: Element | null;
312
- $emit: (event: string, ...args: any[]) => void;
313
- $el: any;
314
- $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").ComboboxTriggerProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
315
- as: import("reka-ui").AsTag | import("vue").Component;
316
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
317
- beforeCreate?: (() => void) | (() => void)[];
318
- created?: (() => void) | (() => void)[];
319
- beforeMount?: (() => void) | (() => void)[];
320
- mounted?: (() => void) | (() => void)[];
321
- beforeUpdate?: (() => void) | (() => void)[];
322
- updated?: (() => void) | (() => void)[];
323
- activated?: (() => void) | (() => void)[];
324
- deactivated?: (() => void) | (() => void)[];
325
- beforeDestroy?: (() => void) | (() => void)[];
326
- beforeUnmount?: (() => void) | (() => void)[];
327
- destroyed?: (() => void) | (() => void)[];
328
- unmounted?: (() => void) | (() => void)[];
329
- renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
330
- renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
331
- errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
332
- };
333
- $forceUpdate: () => void;
334
- $nextTick: typeof import("vue").nextTick;
335
- $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
336
- } & Readonly<{
337
- as: import("reka-ui").AsTag | import("vue").Component;
338
- }> & Omit<Readonly<import("reka-ui").ComboboxTriggerProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
339
- $slots: {
340
- default?: (props: {}) => any;
341
- };
342
- }) | null>;
243
+ triggerRef: Readonly<import("vue").Ref<HTMLButtonElement, HTMLButtonElement>>;
343
244
  }>) => void;
344
245
  attrs: any;
345
246
  slots: SelectMenuSlots<T, VK, M, NestedItem<T>>;
346
- emit: (((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "create", item: string) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void) & ((evt: "highlight", payload: {
247
+ emit: (((evt: "change", event: Event) => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "create", item: string) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void) & ((evt: "highlight", payload: {
347
248
  ref: HTMLElement;
348
249
  value: GetModelValue<T, VK, M>;
349
250
  } | undefined) => void)) & ((evt: "update:searchTerm", value: string) => void);
@@ -3,7 +3,7 @@ import theme from "#build/b24ui/select-menu";
3
3
  </script>
4
4
 
5
5
  <script setup>
6
- import { ref, computed, onMounted, toRef, toRaw } from "vue";
6
+ import { useTemplateRef, computed, onMounted, toRef, toRaw } from "vue";
7
7
  import { Primitive, ComboboxRoot, ComboboxArrow, ComboboxAnchor, ComboboxInput, ComboboxTrigger, ComboboxPortal, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxVirtualizer, ComboboxLabel, ComboboxSeparator, ComboboxItem, ComboboxItemIndicator, FocusScope, useForwardPropsEmits, useFilter } from "reka-ui";
8
8
  import { defu } from "defu";
9
9
  import { reactivePick, createReusableTemplate } from "@vueuse/core";
@@ -174,7 +174,7 @@ const createItem = computed(() => {
174
174
  return !filteredItems.value.length;
175
175
  });
176
176
  const createItemPosition = computed(() => typeof props.createItem === "object" ? props.createItem.position : "bottom");
177
- const triggerRef = ref(null);
177
+ const triggerRef = useTemplateRef("triggerRef");
178
178
  function autoFocus() {
179
179
  if (props.autofocus) {
180
180
  triggerRef.value?.$el?.focus({
@@ -232,7 +232,7 @@ function isSelectItem(item) {
232
232
  return typeof item === "object" && item !== null;
233
233
  }
234
234
  defineExpose({
235
- triggerRef
235
+ triggerRef: toRef(() => triggerRef.value?.$el)
236
236
  });
237
237
  </script>
238
238
 
@@ -3,6 +3,7 @@ import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/b24ui/select-menu';
4
4
  import type { UseComponentIconsProps } from '../composables/useComponentIcons';
5
5
  import type { AvatarProps, ChipProps, InputProps, BadgeProps, IconComponent } from '../types';
6
+ import type { ButtonHTMLAttributes } from '../types/html';
6
7
  import type { AcceptableValue, ArrayOrNested, GetItemKeys, GetModelValue, GetModelValueEmits, NestedItem, EmitsToProps } from '../types/utils';
7
8
  import type { ComponentConfig } from '../types/tv';
8
9
  type SelectMenu = ComponentConfig<typeof theme, AppConfig, 'selectMenu'>;
@@ -29,7 +30,7 @@ export type SelectMenuItem = SelectMenuValue | {
29
30
  b24ui?: Pick<SelectMenu['slots'], 'label' | 'separator' | 'item' | 'itemLeadingIcon' | 'itemLeadingAvatarSize' | 'itemLeadingAvatar' | 'itemLeadingChipSize' | 'itemLeadingChip' | 'itemWrapper' | 'itemLabel' | 'itemDescription' | 'itemTrailing' | 'itemTrailingIcon'>;
30
31
  [key: string]: any;
31
32
  };
32
- export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = ArrayOrNested<SelectMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false> extends Pick<ComboboxRootProps<T>, 'open' | 'defaultOpen' | 'disabled' | 'name' | 'resetSearchTermOnBlur' | 'resetSearchTermOnSelect' | 'highlightOnHover'>, UseComponentIconsProps {
33
+ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = ArrayOrNested<SelectMenuItem>, VK extends GetItemKeys<T> | undefined = undefined, M extends boolean = false> extends Pick<ComboboxRootProps<T>, 'open' | 'defaultOpen' | 'disabled' | 'name' | 'resetSearchTermOnBlur' | 'resetSearchTermOnSelect' | 'highlightOnHover'>, UseComponentIconsProps, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
33
34
  id?: string;
34
35
  /** The placeholder text when the select is empty. */
35
36
  placeholder?: string;
@@ -64,7 +65,7 @@ export interface SelectMenuProps<T extends ArrayOrNested<SelectMenuItem> = Array
64
65
  */
65
66
  underline?: boolean;
66
67
  /**
67
- * Rounds the corners of the button
68
+ * Rounds the corners of the select
68
69
  * @defaultValue false
69
70
  */
70
71
  rounded?: boolean;
@@ -226,11 +227,11 @@ declare const __VLS_export: <T extends ArrayOrNested<SelectMenuItem>, VK extends
226
227
  props: __VLS_PrettifyLocal<(SelectMenuProps<T, VK, M> & {
227
228
  searchTerm?: string;
228
229
  }) & {
229
- onBlur?: ((event: FocusEvent) => any) | undefined;
230
230
  onChange?: ((event: Event) => any) | undefined;
231
+ onBlur?: ((event: FocusEvent) => any) | undefined;
231
232
  onFocus?: ((event: FocusEvent) => any) | undefined;
232
- onCreate?: ((item: string) => any) | undefined;
233
233
  "onUpdate:open"?: ((value: boolean) => any) | undefined;
234
+ onCreate?: ((item: string) => any) | undefined;
234
235
  "onUpdate:modelValue"?: ((value: GetModelValue<T, VK, M>) => any) | undefined;
235
236
  onHighlight?: ((payload: {
236
237
  ref: HTMLElement;
@@ -239,111 +240,11 @@ declare const __VLS_export: <T extends ArrayOrNested<SelectMenuItem>, VK extends
239
240
  "onUpdate:searchTerm"?: ((value: string) => any) | undefined;
240
241
  }> & import("vue").PublicProps;
241
242
  expose: (exposed: import("vue").ShallowUnwrapRef<{
242
- triggerRef: import("vue").Ref<({
243
- $: import("vue").ComponentInternalInstance;
244
- $data: {};
245
- $props: {
246
- readonly disabled?: boolean | undefined;
247
- readonly asChild?: boolean | undefined;
248
- readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
249
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
250
- $attrs: {
251
- [x: string]: unknown;
252
- };
253
- $refs: {
254
- [x: string]: unknown;
255
- };
256
- $slots: Readonly<{
257
- [name: string]: import("vue").Slot<any> | undefined;
258
- }>;
259
- $root: import("vue").ComponentPublicInstance | null;
260
- $parent: import("vue").ComponentPublicInstance | null;
261
- $host: Element | null;
262
- $emit: (event: string, ...args: any[]) => void;
263
- $el: any;
264
- $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").ComboboxTriggerProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
265
- as: import("reka-ui").AsTag | import("vue").Component;
266
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
267
- beforeCreate?: (() => void) | (() => void)[];
268
- created?: (() => void) | (() => void)[];
269
- beforeMount?: (() => void) | (() => void)[];
270
- mounted?: (() => void) | (() => void)[];
271
- beforeUpdate?: (() => void) | (() => void)[];
272
- updated?: (() => void) | (() => void)[];
273
- activated?: (() => void) | (() => void)[];
274
- deactivated?: (() => void) | (() => void)[];
275
- beforeDestroy?: (() => void) | (() => void)[];
276
- beforeUnmount?: (() => void) | (() => void)[];
277
- destroyed?: (() => void) | (() => void)[];
278
- unmounted?: (() => void) | (() => void)[];
279
- renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
280
- renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
281
- errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
282
- };
283
- $forceUpdate: () => void;
284
- $nextTick: typeof import("vue").nextTick;
285
- $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
286
- } & Readonly<{
287
- as: import("reka-ui").AsTag | import("vue").Component;
288
- }> & Omit<Readonly<import("reka-ui").ComboboxTriggerProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
289
- $slots: {
290
- default?: (props: {}) => any;
291
- };
292
- }) | null, ({
293
- $: import("vue").ComponentInternalInstance;
294
- $data: {};
295
- $props: {
296
- readonly disabled?: boolean | undefined;
297
- readonly asChild?: boolean | undefined;
298
- readonly as?: (import("reka-ui").AsTag | import("vue").Component) | undefined;
299
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps;
300
- $attrs: {
301
- [x: string]: unknown;
302
- };
303
- $refs: {
304
- [x: string]: unknown;
305
- };
306
- $slots: Readonly<{
307
- [name: string]: import("vue").Slot<any> | undefined;
308
- }>;
309
- $root: import("vue").ComponentPublicInstance | null;
310
- $parent: import("vue").ComponentPublicInstance | null;
311
- $host: Element | null;
312
- $emit: (event: string, ...args: any[]) => void;
313
- $el: any;
314
- $options: import("vue").ComponentOptionsBase<Readonly<import("reka-ui").ComboboxTriggerProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
315
- as: import("reka-ui").AsTag | import("vue").Component;
316
- }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & {
317
- beforeCreate?: (() => void) | (() => void)[];
318
- created?: (() => void) | (() => void)[];
319
- beforeMount?: (() => void) | (() => void)[];
320
- mounted?: (() => void) | (() => void)[];
321
- beforeUpdate?: (() => void) | (() => void)[];
322
- updated?: (() => void) | (() => void)[];
323
- activated?: (() => void) | (() => void)[];
324
- deactivated?: (() => void) | (() => void)[];
325
- beforeDestroy?: (() => void) | (() => void)[];
326
- beforeUnmount?: (() => void) | (() => void)[];
327
- destroyed?: (() => void) | (() => void)[];
328
- unmounted?: (() => void) | (() => void)[];
329
- renderTracked?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
330
- renderTriggered?: ((e: import("vue").DebuggerEvent) => void) | ((e: import("vue").DebuggerEvent) => void)[];
331
- errorCaptured?: ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import("vue").ComponentPublicInstance | null, info: string) => boolean | void)[];
332
- };
333
- $forceUpdate: () => void;
334
- $nextTick: typeof import("vue").nextTick;
335
- $watch<T_1 extends string | ((...args: any) => any)>(source: T_1, cb: T_1 extends (...args: any) => infer R ? (...args: [R, R, import("@vue/reactivity").OnCleanup]) => any : (...args: [any, any, import("@vue/reactivity").OnCleanup]) => any, options?: import("vue").WatchOptions): import("vue").WatchStopHandle;
336
- } & Readonly<{
337
- as: import("reka-ui").AsTag | import("vue").Component;
338
- }> & Omit<Readonly<import("reka-ui").ComboboxTriggerProps> & Readonly<{}>, "as"> & import("vue").ShallowUnwrapRef<{}> & {} & import("vue").ComponentCustomProperties & {} & {
339
- $slots: {
340
- default?: (props: {}) => any;
341
- };
342
- }) | null>;
243
+ triggerRef: Readonly<import("vue").Ref<HTMLButtonElement, HTMLButtonElement>>;
343
244
  }>) => void;
344
245
  attrs: any;
345
246
  slots: SelectMenuSlots<T, VK, M, NestedItem<T>>;
346
- emit: (((evt: "blur", event: FocusEvent) => void) & ((evt: "change", event: Event) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "create", item: string) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void) & ((evt: "highlight", payload: {
247
+ emit: (((evt: "change", event: Event) => void) & ((evt: "blur", event: FocusEvent) => void) & ((evt: "focus", event: FocusEvent) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "create", item: string) => void) & ((evt: "update:modelValue", value: GetModelValue<T, VK, M>) => void) & ((evt: "highlight", payload: {
347
248
  ref: HTMLElement;
348
249
  value: GetModelValue<T, VK, M>;
349
250
  } | undefined) => void)) & ((evt: "update:searchTerm", value: string) => void);
@@ -107,11 +107,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<Slideo
107
107
  "onAfter:enter"?: (() => any) | undefined;
108
108
  "onClose:prevent"?: (() => any) | undefined;
109
109
  }>, {
110
+ overlay: boolean;
110
111
  close: boolean | Partial<ButtonProps>;
111
112
  transition: boolean;
112
113
  modal: boolean;
113
114
  portal: boolean | string | HTMLElement;
114
- overlay: boolean;
115
115
  side: Slideover["variants"]["side"];
116
116
  overlayBlur: Slideover["variants"]["overlayBlur"];
117
117
  dismissible: boolean;
@@ -107,11 +107,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<Slideo
107
107
  "onAfter:enter"?: (() => any) | undefined;
108
108
  "onClose:prevent"?: (() => any) | undefined;
109
109
  }>, {
110
+ overlay: boolean;
110
111
  close: boolean | Partial<ButtonProps>;
111
112
  transition: boolean;
112
113
  modal: boolean;
113
114
  portal: boolean | string | HTMLElement;
114
- overlay: boolean;
115
115
  side: Slideover["variants"]["side"];
116
116
  overlayBlur: Slideover["variants"]["overlayBlur"];
117
117
  dismissible: boolean;
@@ -2,9 +2,10 @@ import type { SwitchRootProps } from 'reka-ui';
2
2
  import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/b24ui/switch';
4
4
  import type { IconComponent } from '../types';
5
+ import type { ButtonHTMLAttributes } from '../types/html';
5
6
  import type { ComponentConfig } from '../types/tv';
6
7
  type Switch = ComponentConfig<typeof theme, AppConfig, 'switch'>;
7
- export interface SwitchProps extends Pick<SwitchRootProps, 'disabled' | 'id' | 'name' | 'required' | 'value' | 'defaultValue'> {
8
+ export interface SwitchProps extends Pick<SwitchRootProps, 'disabled' | 'id' | 'name' | 'required' | 'value' | 'defaultValue'>, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
8
9
  /**
9
10
  * The element or component this component should render as.
10
11
  * @defaultValue 'div'
@@ -2,9 +2,10 @@ import type { SwitchRootProps } from 'reka-ui';
2
2
  import type { AppConfig } from '@nuxt/schema';
3
3
  import theme from '#build/b24ui/switch';
4
4
  import type { IconComponent } from '../types';
5
+ import type { ButtonHTMLAttributes } from '../types/html';
5
6
  import type { ComponentConfig } from '../types/tv';
6
7
  type Switch = ComponentConfig<typeof theme, AppConfig, 'switch'>;
7
- export interface SwitchProps extends Pick<SwitchRootProps, 'disabled' | 'id' | 'name' | 'required' | 'value' | 'defaultValue'> {
8
+ export interface SwitchProps extends Pick<SwitchRootProps, 'disabled' | 'id' | 'name' | 'required' | 'value' | 'defaultValue'>, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled' | 'name'> {
8
9
  /**
9
10
  * The element or component this component should render as.
10
11
  * @defaultValue 'div'
@@ -1,9 +1,10 @@
1
- import type { Ref, WatchOptions } from 'vue';
1
+ import type { WatchOptions } from 'vue';
2
2
  import type { AppConfig } from '@nuxt/schema';
3
3
  import type { Cell, Header, RowData, TableMeta } from '@tanstack/table-core';
4
4
  import type { CellContext, ColumnDef, ColumnFiltersOptions, ColumnFiltersState, ColumnOrderState, ColumnPinningOptions, ColumnPinningState, ColumnSizingInfoState, ColumnSizingOptions, ColumnSizingState, CoreOptions, ExpandedOptions, ExpandedState, FacetedOptions, GlobalFilterOptions, GroupingOptions, GroupingState, HeaderContext, PaginationOptions, PaginationState, Row, RowPinningOptions, RowPinningState, RowSelectionOptions, RowSelectionState, SortingOptions, SortingState, VisibilityOptions, VisibilityState } from '@tanstack/vue-table';
5
5
  import type { VirtualizerOptions } from '@tanstack/vue-virtual';
6
6
  import theme from '#build/b24ui/table';
7
+ import type { TableHTMLAttributes } from '../types/html';
7
8
  import type { ComponentConfig } from '../types/tv';
8
9
  declare module '@tanstack/table-core' {
9
10
  interface ColumnMeta<TData extends RowData, TValue> {
@@ -40,7 +41,7 @@ export interface TableOptions<T extends TableData = TableData> extends Omit<Core
40
41
  onStateChange?: CoreOptions<T>['onStateChange'];
41
42
  renderFallbackValue?: CoreOptions<T>['renderFallbackValue'];
42
43
  }
43
- export interface TableProps<T extends TableData = TableData> extends TableOptions<T> {
44
+ export interface TableProps<T extends TableData = TableData> extends TableOptions<T>, /** @vue-ignore */ TableHTMLAttributes {
44
45
  /**
45
46
  * The element or component this component should render as.
46
47
  * @defaultValue 'div'
@@ -205,8 +206,8 @@ declare const __VLS_export: <T extends TableData>(__VLS_props: NonNullable<Await
205
206
  "onUpdate:pagination"?: ((value: PaginationState) => any) | undefined;
206
207
  }> & import("vue").PublicProps;
207
208
  expose: (exposed: import("vue").ShallowUnwrapRef<{
208
- readonly $el: any;
209
- tableRef: Ref<HTMLTableElement | null, HTMLTableElement | null>;
209
+ readonly $el: HTMLElement;
210
+ tableRef: Readonly<import("vue").ShallowRef<HTMLTableElement | null>>;
210
211
  tableApi: import("@tanstack/table-core").Table<T>;
211
212
  }>) => void;
212
213
  attrs: any;
@@ -3,7 +3,7 @@ import theme from "#build/b24ui/table";
3
3
  </script>
4
4
 
5
5
  <script setup>
6
- import { computed, ref, watch, toRef } from "vue";
6
+ import { ref, computed, useTemplateRef, watch, toRef } from "vue";
7
7
  import { Primitive } from "reka-ui";
8
8
  import { upperFirst } from "scule";
9
9
  import { defu } from "defu";
@@ -134,8 +134,8 @@ const sortingState = defineModel("sorting", { type: Array, ...{ default: [] } })
134
134
  const groupingState = defineModel("grouping", { type: Array, ...{ default: [] } });
135
135
  const expandedState = defineModel("expanded", { type: [Boolean, Object], ...{ default: {} } });
136
136
  const paginationState = defineModel("pagination", { type: Object, ...{ default: {} } });
137
- const rootRef = ref();
138
- const tableRef = ref(null);
137
+ const rootRef = useTemplateRef("rootRef");
138
+ const tableRef = useTemplateRef("tableRef");
139
139
  const tableApi = useVueTable({
140
140
  ...reactiveOmit(props, "as", "data", "columns", "virtualize", "caption", "sticky", "loading", "loadingColor", "loadingAnimation", "class", "b24ui"),
141
141
  data,
@@ -349,6 +349,7 @@ defineExpose({
349
349
  ],
350
350
  pinned: !!header.column.getIsPinned()
351
351
  })"
352
+ :style="resolveValue(header.column.columnDef.meta?.style?.th, header)"
352
353
  >
353
354
  <slot :name="`${header.id}-header`" v-bind="header.getContext()">
354
355
  <FlexRender v-if="!header.isPlaceholder" :render="header.column.columnDef.header" :props="header.getContext()" />