@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
@@ -0,0 +1,99 @@
1
+ import type { ComponentPublicInstance } from 'vue';
2
+ import type { TimeFieldRootProps, TimeFieldRootEmits } from 'reka-ui';
3
+ import type { AppConfig } from '@nuxt/schema';
4
+ import theme from '#build/b24ui/input-time';
5
+ import type { UseComponentIconsProps } from '../composables/useComponentIcons';
6
+ import type { BadgeProps } from '../types';
7
+ import type { ComponentConfig } from '../types/tv';
8
+ type InputTime = ComponentConfig<typeof theme, AppConfig, 'inputTime'>;
9
+ export interface InputTimeProps extends Omit<TimeFieldRootProps, 'as' | 'asChild' | 'locale' | 'dir'>, UseComponentIconsProps {
10
+ /**
11
+ * The element or component this component should render as.
12
+ * @defaultValue 'div'
13
+ */
14
+ as?: any;
15
+ /**
16
+ * @defaultValue 'air-primary'
17
+ */
18
+ color?: InputTime['variants']['color'];
19
+ /**
20
+ * @defaultValue 'md'
21
+ */
22
+ size?: InputTime['variants']['size'];
23
+ /**
24
+ * Removes padding from input
25
+ * @defaultValue false
26
+ */
27
+ noPadding?: boolean;
28
+ /**
29
+ * Removes all borders (rings)
30
+ * @defaultValue false
31
+ */
32
+ noBorder?: boolean;
33
+ /**
34
+ * Removes all borders (rings) except the bottom one
35
+ * @defaultValue false
36
+ */
37
+ underline?: boolean;
38
+ /**
39
+ * Rounds the corners of the input
40
+ * @defaultValue false
41
+ */
42
+ rounded?: boolean;
43
+ tag?: string;
44
+ /**
45
+ * @defaultValue 'air-primary'
46
+ */
47
+ tagColor?: BadgeProps['color'];
48
+ /** Highlight the ring color like a focus state. */
49
+ highlight?: boolean;
50
+ autofocus?: boolean;
51
+ autofocusDelay?: number;
52
+ /**
53
+ * The locale to use for formatting and parsing numbers.
54
+ * @defaultValue B24App.locale.code
55
+ */
56
+ locale?: string;
57
+ class?: any;
58
+ b24ui?: InputTime['slots'];
59
+ }
60
+ export interface InputTimeEmits extends TimeFieldRootEmits {
61
+ change: [event: Event];
62
+ blur: [event: FocusEvent];
63
+ focus: [event: FocusEvent];
64
+ }
65
+ export interface InputTimeSlots {
66
+ leading(props: {
67
+ b24ui: InputTime['b24ui'];
68
+ }): any;
69
+ default(props: {
70
+ b24ui: InputTime['b24ui'];
71
+ }): any;
72
+ trailing(props: {
73
+ b24ui: InputTime['b24ui'];
74
+ }): any;
75
+ }
76
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<InputTimeProps, {
77
+ inputsRef: import("vue").Ref<ComponentPublicInstance[], ComponentPublicInstance[]>;
78
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
79
+ change: (event: Event) => any;
80
+ blur: (event: FocusEvent) => any;
81
+ focus: (event: FocusEvent) => any;
82
+ "update:modelValue": (date: (import("@internationalized/date").CalendarDateTime | import("@internationalized/date").ZonedDateTime | import("@internationalized/date").Time) | undefined) => any;
83
+ "update:placeholder": (date: import("@internationalized/date").CalendarDateTime | import("@internationalized/date").ZonedDateTime | import("@internationalized/date").Time) => any;
84
+ }, string, import("vue").PublicProps, Readonly<InputTimeProps> & Readonly<{
85
+ onChange?: ((event: Event) => any) | undefined;
86
+ onBlur?: ((event: FocusEvent) => any) | undefined;
87
+ onFocus?: ((event: FocusEvent) => any) | undefined;
88
+ "onUpdate:modelValue"?: ((date: (import("@internationalized/date").CalendarDateTime | import("@internationalized/date").ZonedDateTime | import("@internationalized/date").Time) | undefined) => any) | undefined;
89
+ "onUpdate:placeholder"?: ((date: import("@internationalized/date").CalendarDateTime | import("@internationalized/date").ZonedDateTime | import("@internationalized/date").Time) => any) | undefined;
90
+ }>, {
91
+ autofocusDelay: number;
92
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, InputTimeSlots>;
93
+ declare const _default: typeof __VLS_export;
94
+ export default _default;
95
+ type __VLS_WithSlots<T, S> = T & {
96
+ new (): {
97
+ $slots: S;
98
+ };
99
+ };
@@ -1,51 +1,6 @@
1
- import type { ButtonHTMLAttributes } from 'vue';
2
- import type { RouterLinkProps, RouteLocationRaw } from 'vue-router';
3
- interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
4
- /**
5
- * Route Location the link should navigate to when clicked on.
6
- */
7
- to?: RouteLocationRaw;
8
- /**
9
- * An alias for `to`. If used with `to`, `href` will be ignored
10
- */
11
- href?: NuxtLinkProps['to'];
12
- /**
13
- * Forces the link to be considered as external (true) or internal (false). This is helpful to handle edge-cases
14
- */
15
- external?: boolean;
16
- /**
17
- * Where to display the linked URL, as the name for a browsing context.
18
- */
19
- target?: '_blank' | '_parent' | '_self' | '_top' | (string & {}) | null;
20
- /**
21
- * A rel attribute value to apply on the link. Defaults to "noopener noreferrer" for external links.
22
- */
23
- rel?: 'noopener' | 'noreferrer' | 'nofollow' | 'sponsored' | 'ugc' | (string & {}) | null;
24
- /**
25
- * If set to true, no rel attribute will be added to the link
26
- */
27
- noRel?: boolean;
28
- /**
29
- * A class to apply to links that have been prefetched.
30
- */
31
- prefetchedClass?: string;
32
- /**
33
- * When enabled will prefetch middleware, layouts and payloads of links in the viewport.
34
- */
35
- prefetch?: boolean;
36
- /**
37
- * Allows controlling when to prefetch links. By default, prefetch is triggered only on visibility.
38
- */
39
- prefetchOn?: 'visibility' | 'interaction' | Partial<{
40
- visibility: boolean;
41
- interaction: boolean;
42
- }>;
43
- /**
44
- * Escape hatch to disable `prefetch` attribute.
45
- */
46
- noPrefetch?: boolean;
47
- }
48
- export interface LinkProps extends NuxtLinkProps {
1
+ import type { NuxtLinkProps } from '#app';
2
+ import type { ButtonHTMLAttributes, AnchorHTMLAttributes } from '../types/html';
3
+ export interface LinkProps extends Omit<NuxtLinkProps, 'custom'>, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled'>, /** @vue-ignore */ Omit<AnchorHTMLAttributes, 'href' | 'target' | 'rel' | 'type'> {
49
4
  /**
50
5
  * The element or component this component should render as when not a link.
51
6
  * @defaultValue 'button'
@@ -82,8 +37,8 @@ export interface LinkSlots {
82
37
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<LinkProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkProps> & Readonly<{}>, {
83
38
  as: any;
84
39
  type: "reset" | "submit" | "button";
85
- ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
86
40
  active: boolean;
41
+ ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
87
42
  isAction: boolean;
88
43
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, LinkSlots>;
89
44
  declare const _default: typeof __VLS_export;
@@ -37,6 +37,7 @@ const props = defineProps({
37
37
  prefetch: { type: Boolean, required: false },
38
38
  prefetchOn: { type: [String, Object], required: false },
39
39
  noPrefetch: { type: Boolean, required: false },
40
+ trailingSlash: { type: String, required: false },
40
41
  activeClass: { type: String, required: false },
41
42
  exactActiveClass: { type: String, required: false },
42
43
  ariaCurrentValue: { type: String, required: false, default: "page" },
@@ -1,51 +1,6 @@
1
- import type { ButtonHTMLAttributes } from 'vue';
2
- import type { RouterLinkProps, RouteLocationRaw } from 'vue-router';
3
- interface NuxtLinkProps extends Omit<RouterLinkProps, 'to'> {
4
- /**
5
- * Route Location the link should navigate to when clicked on.
6
- */
7
- to?: RouteLocationRaw;
8
- /**
9
- * An alias for `to`. If used with `to`, `href` will be ignored
10
- */
11
- href?: NuxtLinkProps['to'];
12
- /**
13
- * Forces the link to be considered as external (true) or internal (false). This is helpful to handle edge-cases
14
- */
15
- external?: boolean;
16
- /**
17
- * Where to display the linked URL, as the name for a browsing context.
18
- */
19
- target?: '_blank' | '_parent' | '_self' | '_top' | (string & {}) | null;
20
- /**
21
- * A rel attribute value to apply on the link. Defaults to "noopener noreferrer" for external links.
22
- */
23
- rel?: 'noopener' | 'noreferrer' | 'nofollow' | 'sponsored' | 'ugc' | (string & {}) | null;
24
- /**
25
- * If set to true, no rel attribute will be added to the link
26
- */
27
- noRel?: boolean;
28
- /**
29
- * A class to apply to links that have been prefetched.
30
- */
31
- prefetchedClass?: string;
32
- /**
33
- * When enabled will prefetch middleware, layouts and payloads of links in the viewport.
34
- */
35
- prefetch?: boolean;
36
- /**
37
- * Allows controlling when to prefetch links. By default, prefetch is triggered only on visibility.
38
- */
39
- prefetchOn?: 'visibility' | 'interaction' | Partial<{
40
- visibility: boolean;
41
- interaction: boolean;
42
- }>;
43
- /**
44
- * Escape hatch to disable `prefetch` attribute.
45
- */
46
- noPrefetch?: boolean;
47
- }
48
- export interface LinkProps extends NuxtLinkProps {
1
+ import type { NuxtLinkProps } from '#app';
2
+ import type { ButtonHTMLAttributes, AnchorHTMLAttributes } from '../types/html';
3
+ export interface LinkProps extends Omit<NuxtLinkProps, 'custom'>, /** @vue-ignore */ Omit<ButtonHTMLAttributes, 'type' | 'disabled'>, /** @vue-ignore */ Omit<AnchorHTMLAttributes, 'href' | 'target' | 'rel' | 'type'> {
49
4
  /**
50
5
  * The element or component this component should render as when not a link.
51
6
  * @defaultValue 'button'
@@ -82,8 +37,8 @@ export interface LinkSlots {
82
37
  declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<LinkProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkProps> & Readonly<{}>, {
83
38
  as: any;
84
39
  type: "reset" | "submit" | "button";
85
- ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
86
40
  active: boolean;
41
+ ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
87
42
  isAction: boolean;
88
43
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, LinkSlots>;
89
44
  declare const _default: typeof __VLS_export;
@@ -104,11 +104,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ModalP
104
104
  "onAfter:enter"?: (() => any) | undefined;
105
105
  "onClose:prevent"?: (() => any) | undefined;
106
106
  }>, {
107
+ overlay: boolean;
107
108
  close: boolean | Partial<ButtonProps>;
108
109
  transition: boolean;
109
110
  modal: boolean;
110
111
  portal: boolean | string | HTMLElement;
111
- overlay: boolean;
112
112
  overlayBlur: Modal["variants"]["overlayBlur"];
113
113
  dismissible: boolean;
114
114
  scrollbarThin: boolean;
@@ -104,11 +104,11 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<ModalP
104
104
  "onAfter:enter"?: (() => any) | undefined;
105
105
  "onClose:prevent"?: (() => any) | undefined;
106
106
  }>, {
107
+ overlay: boolean;
107
108
  close: boolean | Partial<ButtonProps>;
108
109
  transition: boolean;
109
110
  modal: boolean;
110
111
  portal: boolean | string | HTMLElement;
111
- overlay: boolean;
112
112
  overlayBlur: Modal["variants"]["overlayBlur"];
113
113
  dismissible: boolean;
114
114
  scrollbarThin: boolean;
@@ -92,8 +92,8 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<Pagina
92
92
  }, string, import("vue").PublicProps, Readonly<PaginationProps> & Readonly<{
93
93
  "onUpdate:page"?: ((value: number) => any) | undefined;
94
94
  }>, {
95
- color: "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-accent" | "air-secondary-accent-1" | "air-tertiary" | "default" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai" | "air-secondary-alert" | "air-secondary-accent-2" | "air-secondary-no-accent" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost";
96
- activeColor: "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-accent" | "air-secondary-accent-1" | "air-tertiary" | "default" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai" | "air-secondary-alert" | "air-secondary-accent-2" | "air-secondary-no-accent" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost";
95
+ color: "default" | "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-accent" | "air-secondary-accent-1" | "air-tertiary" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai" | "air-secondary-alert" | "air-secondary-accent-2" | "air-secondary-no-accent" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost";
96
+ activeColor: "default" | "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-accent" | "air-secondary-accent-1" | "air-tertiary" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai" | "air-secondary-alert" | "air-secondary-accent-2" | "air-secondary-no-accent" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost";
97
97
  itemsPerPage: number;
98
98
  showEdges: boolean;
99
99
  siblingCount: number;
@@ -92,8 +92,8 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<Pagina
92
92
  }, string, import("vue").PublicProps, Readonly<PaginationProps> & Readonly<{
93
93
  "onUpdate:page"?: ((value: number) => any) | undefined;
94
94
  }>, {
95
- color: "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-accent" | "air-secondary-accent-1" | "air-tertiary" | "default" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai" | "air-secondary-alert" | "air-secondary-accent-2" | "air-secondary-no-accent" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost";
96
- activeColor: "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-accent" | "air-secondary-accent-1" | "air-tertiary" | "default" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai" | "air-secondary-alert" | "air-secondary-accent-2" | "air-secondary-no-accent" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost";
95
+ color: "default" | "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-accent" | "air-secondary-accent-1" | "air-tertiary" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai" | "air-secondary-alert" | "air-secondary-accent-2" | "air-secondary-no-accent" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost";
96
+ activeColor: "default" | "link" | "air-primary" | "air-primary-success" | "air-primary-alert" | "air-primary-copilot" | "air-secondary" | "air-secondary-accent" | "air-secondary-accent-1" | "air-tertiary" | "danger" | "success" | "warning" | "primary" | "secondary" | "collab" | "ai" | "air-secondary-alert" | "air-secondary-accent-2" | "air-secondary-no-accent" | "air-tertiary-accent" | "air-tertiary-no-accent" | "air-selection" | "air-boost";
97
97
  itemsPerPage: number;
98
98
  showEdges: boolean;
99
99
  siblingCount: number;
@@ -25,7 +25,7 @@ export interface PinInputProps<T extends PinInputType = 'text'> extends Pick<Pin
25
25
  */
26
26
  underline?: boolean;
27
27
  /**
28
- * Rounds the corners of the button
28
+ * Rounds the corners of the input
29
29
  * @defaultValue false
30
30
  */
31
31
  rounded?: boolean;
@@ -51,8 +51,8 @@ export type PinInputEmits<T extends PinInputType = 'text'> = PinInputRootEmits<T
51
51
  };
52
52
  declare const __VLS_export: <T extends PinInputType>(__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<{
53
53
  props: __VLS_PrettifyLocal<PinInputProps<T> & {
54
- onBlur?: ((event: Event) => any) | undefined;
55
54
  onChange?: ((event: Event) => any) | undefined;
55
+ onBlur?: ((event: Event) => any) | undefined;
56
56
  "onUpdate:modelValue"?: ((value: [T] extends ["number"] ? number[] : string[]) => any) | undefined;
57
57
  onComplete?: ((value: [T] extends ["number"] ? number[] : string[]) => any) | undefined;
58
58
  }> & import("vue").PublicProps;
@@ -61,7 +61,7 @@ declare const __VLS_export: <T extends PinInputType>(__VLS_props: NonNullable<Aw
61
61
  }>) => void;
62
62
  attrs: any;
63
63
  slots: {};
64
- emit: ((evt: "blur", event: Event) => void) & ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: [T] extends ["number"] ? number[] : string[]) => void) & ((evt: "complete", value: [T] extends ["number"] ? number[] : string[]) => void);
64
+ emit: ((evt: "change", event: Event) => void) & ((evt: "blur", event: Event) => void) & ((evt: "update:modelValue", value: [T] extends ["number"] ? number[] : string[]) => void) & ((evt: "complete", value: [T] extends ["number"] ? number[] : string[]) => void);
65
65
  }>) => import("vue").VNode & {
66
66
  __ctx?: Awaited<typeof __VLS_setup>;
67
67
  };
@@ -25,7 +25,7 @@ export interface PinInputProps<T extends PinInputType = 'text'> extends Pick<Pin
25
25
  */
26
26
  underline?: boolean;
27
27
  /**
28
- * Rounds the corners of the button
28
+ * Rounds the corners of the input
29
29
  * @defaultValue false
30
30
  */
31
31
  rounded?: boolean;
@@ -51,8 +51,8 @@ export type PinInputEmits<T extends PinInputType = 'text'> = PinInputRootEmits<T
51
51
  };
52
52
  declare const __VLS_export: <T extends PinInputType>(__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<{
53
53
  props: __VLS_PrettifyLocal<PinInputProps<T> & {
54
- onBlur?: ((event: Event) => any) | undefined;
55
54
  onChange?: ((event: Event) => any) | undefined;
55
+ onBlur?: ((event: Event) => any) | undefined;
56
56
  "onUpdate:modelValue"?: ((value: [T] extends ["number"] ? number[] : string[]) => any) | undefined;
57
57
  onComplete?: ((value: [T] extends ["number"] ? number[] : string[]) => any) | undefined;
58
58
  }> & import("vue").PublicProps;
@@ -61,7 +61,7 @@ declare const __VLS_export: <T extends PinInputType>(__VLS_props: NonNullable<Aw
61
61
  }>) => void;
62
62
  attrs: any;
63
63
  slots: {};
64
- emit: ((evt: "blur", event: Event) => void) & ((evt: "change", event: Event) => void) & ((evt: "update:modelValue", value: [T] extends ["number"] ? number[] : string[]) => void) & ((evt: "complete", value: [T] extends ["number"] ? number[] : string[]) => void);
64
+ emit: ((evt: "change", event: Event) => void) & ((evt: "blur", event: Event) => void) & ((evt: "update:modelValue", value: [T] extends ["number"] ? number[] : string[]) => void) & ((evt: "complete", value: [T] extends ["number"] ? number[] : string[]) => void);
65
65
  }>) => import("vue").VNode & {
66
66
  __ctx?: Awaited<typeof __VLS_setup>;
67
67
  };
@@ -60,9 +60,9 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<Progre
60
60
  "onUpdate:modelValue"?: ((value: string[] | undefined) => any) | undefined;
61
61
  "onUpdate:max"?: ((value: number) => any) | undefined;
62
62
  }>, {
63
+ modelValue: number | null;
63
64
  inverted: boolean;
64
65
  orientation: Progress["variants"]["orientation"];
65
- modelValue: number | null;
66
66
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ProgressSlots>;
67
67
  declare const _default: typeof __VLS_export;
68
68
  export default _default;
@@ -60,9 +60,9 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<Progre
60
60
  "onUpdate:modelValue"?: ((value: string[] | undefined) => any) | undefined;
61
61
  "onUpdate:max"?: ((value: number) => any) | undefined;
62
62
  }>, {
63
+ modelValue: number | null;
63
64
  inverted: boolean;
64
65
  orientation: Progress["variants"]["orientation"];
65
- modelValue: number | null;
66
66
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, ProgressSlots>;
67
67
  declare const _default: typeof __VLS_export;
68
68
  export default _default;
@@ -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,7 +3,7 @@ import theme from "#build/b24ui/select";
3
3
  </script>
4
4
 
5
5
  <script setup>
6
- import { ref, computed, onMounted, toRef } from "vue";
6
+ import { useTemplateRef, computed, onMounted, toRef } from "vue";
7
7
  import { Primitive, SelectRoot, SelectArrow, SelectTrigger, SelectPortal, SelectContent, SelectLabel, SelectGroup, SelectItem as RSelectItem, SelectItemIndicator, SelectItemText, SelectSeparator, useForwardPropsEmits } from "reka-ui";
8
8
  import { defu } from "defu";
9
9
  import { reactivePick } from "@vueuse/core";
@@ -105,7 +105,7 @@ function displayValue(value) {
105
105
  valueKey: props.valueKey
106
106
  });
107
107
  }
108
- const triggerRef = ref(null);
108
+ const triggerRef = useTemplateRef("triggerRef");
109
109
  function autoFocus() {
110
110
  if (props.autofocus) {
111
111
  triggerRef.value?.$el?.focus({
@@ -139,7 +139,7 @@ function isSelectItem(item) {
139
139
  return typeof item === "object" && item !== null;
140
140
  }
141
141
  defineExpose({
142
- triggerRef
142
+ triggerRef: toRef(() => triggerRef.value?.$el)
143
143
  });
144
144
  </script>
145
145