@antify/ui 2.4.10 → 2.4.11

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.
@@ -36,6 +36,7 @@ const props = withDefaults(defineProps<{
36
36
  label?: string;
37
37
  placeholder?: string;
38
38
  description?: string;
39
+ inputRef?: null | HTMLInputElement;
39
40
  size?: Size;
40
41
  state?: InputState;
41
42
  disabled?: boolean;
@@ -43,6 +44,7 @@ const props = withDefaults(defineProps<{
43
44
  messages?: string[];
44
45
  }>(), {
45
46
  state: InputState.base,
47
+ inputRef: null,
46
48
  disabled: false,
47
49
  skeleton: false,
48
50
  size: Size.md,
@@ -50,9 +52,11 @@ const props = withDefaults(defineProps<{
50
52
  });
51
53
  const emit = defineEmits([
52
54
  'update:modelValue',
55
+ 'update:inputRef',
53
56
  'validate',
54
57
  ]);
55
58
  const _modelValue = useVModel(props, 'modelValue', emit);
59
+ const _inputRef = useVModel(props, 'inputRef', emit);
56
60
  const isVisible = ref(false);
57
61
  const iconSize = computed(() => {
58
62
  if (props.size === Size.xs2 || props.size === Size.xs) {
@@ -94,6 +98,7 @@ onMounted(() => {
94
98
  <div class="flex relative">
95
99
  <AntBaseInput
96
100
  v-model="_modelValue"
101
+ v-model:input-ref="_inputRef"
97
102
  :type="isVisible ? BaseInputType.text : BaseInputType.password"
98
103
  :state="state"
99
104
  :size="size"
@@ -30,6 +30,7 @@ defineOptions({
30
30
  const emit = defineEmits([
31
31
  'update:modelValue',
32
32
  'update:skeleton',
33
+ 'update:inputRef',
33
34
  'validate',
34
35
  ]);
35
36
  const props = withDefaults(defineProps<{
@@ -43,11 +44,13 @@ const props = withDefaults(defineProps<{
43
44
  readonly?: boolean;
44
45
  skeleton?: boolean;
45
46
  type?: TextInputType;
47
+ inputRef?: null | HTMLInputElement;
46
48
  limiter?: boolean;
47
49
  max?: number;
48
50
  messages?: string[];
49
51
  }>(), {
50
52
  state: InputState.base,
53
+ inputRef: null,
51
54
  disabled: false,
52
55
  readonly: false,
53
56
  skeleton: false,
@@ -58,6 +61,7 @@ const props = withDefaults(defineProps<{
58
61
  });
59
62
 
60
63
  const _value = useVModel(props, 'modelValue', emit);
64
+ const _inputRef = useVModel(props, 'inputRef', emit);
61
65
 
62
66
  onMounted(() => {
63
67
  handleEnumValidation(props.size, Size, 'size');
@@ -79,6 +83,7 @@ onMounted(() => {
79
83
  >
80
84
  <AntBaseInput
81
85
  v-model="_value"
86
+ v-model:input-ref="_inputRef"
82
87
  :type="type as unknown as BaseInputType"
83
88
  wrapper-class="grow"
84
89
  :state="state"
@@ -7,4 +7,5 @@ export declare const Docs: Story;
7
7
  export declare const Nullable: Story;
8
8
  export declare const IconLeft: Story;
9
9
  export declare const IconRight: Story;
10
+ export declare const Autofocus: Story;
10
11
  export declare const Summary: Story;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- module.exports = exports.Summary = exports.Nullable = exports.IconRight = exports.IconLeft = exports.Docs = void 0;
6
+ module.exports = exports.Summary = exports.Nullable = exports.IconRight = exports.IconLeft = exports.Docs = exports.Autofocus = void 0;
7
7
  var _Size = require("../../../../enums/Size.enum");
8
8
  var _AntBaseInput = require("../__types/AntBaseInput.types");
9
9
  var _AntBaseInput2 = _interopRequireDefault(require("../AntBaseInput.vue"));
@@ -15,6 +15,7 @@ var _enums = require("../../../../enums");
15
15
  var _AntFormGroup = _interopRequireDefault(require("../../../forms/AntFormGroup.vue"));
16
16
  var _AntFormGroupLabel = _interopRequireDefault(require("../../../forms/AntFormGroupLabel.vue"));
17
17
  var _Direction = require("../../../../enums/Direction.enum");
18
+ var _vue = require("vue");
18
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
20
  const meta = {
20
21
  computed: {
@@ -174,6 +175,39 @@ const IconRight = exports.IconRight = {
174
175
  ...Docs.args
175
176
  }
176
177
  };
178
+ const Autofocus = exports.Autofocus = {
179
+ render: args => ({
180
+ components: {
181
+ AntBaseInput: _AntBaseInput2.default,
182
+ AntFormGroup: _AntFormGroup.default,
183
+ AntButton: _AntButton.default
184
+ },
185
+ setup: () => {
186
+ const inputRef = (0, _vue.ref)(null);
187
+ return {
188
+ inputRef,
189
+ clickAutofocus: () => {
190
+ inputRef.value?.focus();
191
+ },
192
+ args
193
+ };
194
+ },
195
+ template: `
196
+ <AntFormGroup>
197
+ <AntButton @click="clickAutofocus">Focus element</AntButton>
198
+
199
+ <AntBaseInput
200
+ v-model="args.modelValue"
201
+ v-bind="args"
202
+ v-model:input-ref="inputRef"
203
+ />
204
+ </AntFormGroup>
205
+ `
206
+ }),
207
+ args: {
208
+ ...Docs.args
209
+ }
210
+ };
177
211
  const Summary = exports.Summary = {
178
212
  parameters: {
179
213
  chromatic: {
@@ -22,6 +22,9 @@ import AntFormGroupLabel from "../../../forms/AntFormGroupLabel.vue";
22
22
  import {
23
23
  Direction
24
24
  } from "../../../../enums/Direction.enum.mjs";
25
+ import {
26
+ ref
27
+ } from "vue";
25
28
  const meta = {
26
29
  computed: {
27
30
  Direction() {
@@ -180,6 +183,39 @@ export const IconRight = {
180
183
  ...Docs.args
181
184
  }
182
185
  };
186
+ export const Autofocus = {
187
+ render: (args) => ({
188
+ components: {
189
+ AntBaseInput,
190
+ AntFormGroup,
191
+ AntButton
192
+ },
193
+ setup: () => {
194
+ const inputRef = ref(null);
195
+ return {
196
+ inputRef,
197
+ clickAutofocus: () => {
198
+ inputRef.value?.focus();
199
+ },
200
+ args
201
+ };
202
+ },
203
+ template: `
204
+ <AntFormGroup>
205
+ <AntButton @click="clickAutofocus">Focus element</AntButton>
206
+
207
+ <AntBaseInput
208
+ v-model="args.modelValue"
209
+ v-bind="args"
210
+ v-model:input-ref="inputRef"
211
+ />
212
+ </AntFormGroup>
213
+ `
214
+ }),
215
+ args: {
216
+ ...Docs.args
217
+ }
218
+ };
183
219
  export const Summary = {
184
220
  parameters: {
185
221
  chromatic: {
@@ -1,7 +1,8 @@
1
- import { type Meta, type StoryObj } from '@storybook/vue3';
1
+ import type { Meta, StoryObj } from '@storybook/vue3';
2
2
  import AntPasswordInput from '../AntPasswordInput.vue';
3
3
  declare const meta: Meta<typeof AntPasswordInput>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof AntPasswordInput>;
6
6
  export declare const Docs: Story;
7
+ export declare const Autofocus: Story;
7
8
  export declare const Summary: Story;
@@ -3,12 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- module.exports = exports.Summary = exports.Docs = void 0;
6
+ module.exports = exports.Summary = exports.Docs = exports.Autofocus = void 0;
7
7
  var _Size = require("../../../enums/Size.enum");
8
8
  var _enums = require("../../../enums");
9
9
  var _AntPasswordInput = _interopRequireDefault(require("../AntPasswordInput.vue"));
10
10
  var _AntFormGroup = _interopRequireDefault(require("../../forms/AntFormGroup.vue"));
11
11
  var _AntFormGroupLabel = _interopRequireDefault(require("../../forms/AntFormGroupLabel.vue"));
12
+ var _AntButton = _interopRequireDefault(require("../../buttons/AntButton.vue"));
13
+ var _vue = require("vue");
12
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
15
  const meta = {
14
16
  title: "Inputs/Password Input",
@@ -76,6 +78,39 @@ const Docs = exports.Docs = {
76
78
  description: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod"
77
79
  }
78
80
  };
81
+ const Autofocus = exports.Autofocus = {
82
+ render: args => ({
83
+ components: {
84
+ AntPasswordInput: _AntPasswordInput.default,
85
+ AntFormGroup: _AntFormGroup.default,
86
+ AntButton: _AntButton.default
87
+ },
88
+ setup: () => {
89
+ const inputRef = (0, _vue.ref)(null);
90
+ return {
91
+ inputRef,
92
+ clickAutofocus: () => {
93
+ inputRef.value?.focus();
94
+ },
95
+ args
96
+ };
97
+ },
98
+ template: `
99
+ <AntFormGroup>
100
+ <AntButton @click="clickAutofocus">Focus element</AntButton>
101
+
102
+ <AntPasswordInput
103
+ v-model="args.modelValue"
104
+ v-bind="args"
105
+ v-model:input-ref="inputRef"
106
+ />
107
+ </AntFormGroup>
108
+ `
109
+ }),
110
+ args: {
111
+ ...Docs.args
112
+ }
113
+ };
79
114
  const Summary = exports.Summary = {
80
115
  parameters: {
81
116
  chromatic: {
@@ -7,6 +7,10 @@ import {
7
7
  import AntPasswordInput from "../AntPasswordInput.vue";
8
8
  import AntFormGroup from "../../forms/AntFormGroup.vue";
9
9
  import AntFormGroupLabel from "../../forms/AntFormGroupLabel.vue";
10
+ import AntButton from "../../buttons/AntButton.vue";
11
+ import {
12
+ ref
13
+ } from "vue";
10
14
  const meta = {
11
15
  title: "Inputs/Password Input",
12
16
  component: AntPasswordInput,
@@ -73,6 +77,39 @@ export const Docs = {
73
77
  description: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod"
74
78
  }
75
79
  };
80
+ export const Autofocus = {
81
+ render: (args) => ({
82
+ components: {
83
+ AntPasswordInput,
84
+ AntFormGroup,
85
+ AntButton
86
+ },
87
+ setup: () => {
88
+ const inputRef = ref(null);
89
+ return {
90
+ inputRef,
91
+ clickAutofocus: () => {
92
+ inputRef.value?.focus();
93
+ },
94
+ args
95
+ };
96
+ },
97
+ template: `
98
+ <AntFormGroup>
99
+ <AntButton @click="clickAutofocus">Focus element</AntButton>
100
+
101
+ <AntPasswordInput
102
+ v-model="args.modelValue"
103
+ v-bind="args"
104
+ v-model:input-ref="inputRef"
105
+ />
106
+ </AntFormGroup>
107
+ `
108
+ }),
109
+ args: {
110
+ ...Docs.args
111
+ }
112
+ };
76
113
  export const Summary = {
77
114
  parameters: {
78
115
  chromatic: {
@@ -1,7 +1,8 @@
1
- import { type Meta, type StoryObj } from '@storybook/vue3';
1
+ import type { Meta, StoryObj } from '@storybook/vue3';
2
2
  import AntTextInput from '../AntTextInput.vue';
3
3
  declare const meta: Meta<typeof AntTextInput>;
4
4
  export default meta;
5
5
  type Story = StoryObj<typeof AntTextInput>;
6
6
  export declare const Docs: Story;
7
+ export declare const Autofocus: Story;
7
8
  export declare const Summary: Story;
@@ -3,11 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- module.exports = exports.Summary = exports.Docs = void 0;
6
+ module.exports = exports.Summary = exports.Docs = exports.Autofocus = void 0;
7
7
  var _Size = require("../../../enums/Size.enum");
8
8
  var _AntTextInput = _interopRequireDefault(require("../AntTextInput.vue"));
9
9
  var _AntTextInput2 = require("../__types/AntTextInput.types");
10
10
  var _enums = require("../../../enums");
11
+ var _AntFormGroup = _interopRequireDefault(require("../../forms/AntFormGroup.vue"));
12
+ var _AntButton = _interopRequireDefault(require("../../buttons/AntButton.vue"));
13
+ var _vue = require("vue");
11
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
15
  const meta = {
13
16
  title: "Inputs/Text Input",
@@ -86,6 +89,39 @@ const Docs = exports.Docs = {
86
89
  description: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod"
87
90
  }
88
91
  };
92
+ const Autofocus = exports.Autofocus = {
93
+ render: args => ({
94
+ components: {
95
+ AntTextInput: _AntTextInput.default,
96
+ AntFormGroup: _AntFormGroup.default,
97
+ AntButton: _AntButton.default
98
+ },
99
+ setup: () => {
100
+ const inputRef = (0, _vue.ref)(null);
101
+ return {
102
+ inputRef,
103
+ clickAutofocus: () => {
104
+ inputRef.value?.focus();
105
+ },
106
+ args
107
+ };
108
+ },
109
+ template: `
110
+ <AntFormGroup>
111
+ <AntButton @click="clickAutofocus">Focus element</AntButton>
112
+
113
+ <AntTextInput
114
+ v-model="args.modelValue"
115
+ v-bind="args"
116
+ v-model:input-ref="inputRef"
117
+ />
118
+ </AntFormGroup>
119
+ `
120
+ }),
121
+ args: {
122
+ ...Docs.args
123
+ }
124
+ };
89
125
  const Summary = exports.Summary = {
90
126
  parameters: {
91
127
  chromatic: {
@@ -8,6 +8,11 @@ import {
8
8
  import {
9
9
  InputState
10
10
  } from "../../../enums/index.mjs";
11
+ import AntFormGroup from "../../forms/AntFormGroup.vue";
12
+ import AntButton from "../../buttons/AntButton.vue";
13
+ import {
14
+ ref
15
+ } from "vue";
11
16
  const meta = {
12
17
  title: "Inputs/Text Input",
13
18
  component: AntTextInput,
@@ -85,6 +90,39 @@ export const Docs = {
85
90
  description: "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod"
86
91
  }
87
92
  };
93
+ export const Autofocus = {
94
+ render: (args) => ({
95
+ components: {
96
+ AntTextInput,
97
+ AntFormGroup,
98
+ AntButton
99
+ },
100
+ setup: () => {
101
+ const inputRef = ref(null);
102
+ return {
103
+ inputRef,
104
+ clickAutofocus: () => {
105
+ inputRef.value?.focus();
106
+ },
107
+ args
108
+ };
109
+ },
110
+ template: `
111
+ <AntFormGroup>
112
+ <AntButton @click="clickAutofocus">Focus element</AntButton>
113
+
114
+ <AntTextInput
115
+ v-model="args.modelValue"
116
+ v-bind="args"
117
+ v-model:input-ref="inputRef"
118
+ />
119
+ </AntFormGroup>
120
+ `
121
+ }),
122
+ args: {
123
+ ...Docs.args
124
+ }
125
+ };
88
126
  export const Summary = {
89
127
  parameters: {
90
128
  chromatic: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antify/ui",
3
- "version": "2.4.10",
3
+ "version": "2.4.11",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "exports": {