@central-design-system/components 4.0.0-alpha.2 → 4.0.0-alpha.3

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 (93) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/MIGRATION.md +1 -1
  3. package/dist/cjs/entry.js +10 -10
  4. package/dist/es/entry.js +173 -163
  5. package/dist/es/entry.js.map +1 -1
  6. package/dist/es/src/components/CdsList/CdsList.vue_vue_type_script_setup_true_lang.js +1 -1
  7. package/dist/es/src/components/CdsList/CdsListGroup.vue_vue_type_script_setup_true_lang.js +1 -1
  8. package/dist/es/src/components/CdsList/CdsListItem.vue_vue_type_script_setup_true_lang.js +1 -1
  9. package/dist/es/src/components/CdsList/CdsListSubheader.vue_vue_type_script_setup_true_lang.js +1 -1
  10. package/dist/es/src/components/CdsList/api/CdsList.constants.js +4 -4
  11. package/dist/es/src/components/CdsList/api/CdsList.props.js +2 -2
  12. package/dist/es/src/components/CdsList/index.js +1 -1
  13. package/dist/es/src/components/CdsOtpInput/CdsOtpField.js +2 -0
  14. package/dist/es/src/components/CdsOtpInput/CdsOtpField.js.map +1 -0
  15. package/dist/es/src/components/CdsOtpInput/CdsOtpField.vue_vue_type_script_setup_true_lang.js +62 -0
  16. package/dist/es/src/components/CdsOtpInput/CdsOtpField.vue_vue_type_script_setup_true_lang.js.map +1 -0
  17. package/dist/es/src/components/CdsOtpInput/CdsOtpGroup.js +2 -0
  18. package/dist/es/src/components/CdsOtpInput/CdsOtpGroup.js.map +1 -0
  19. package/dist/es/src/components/CdsOtpInput/CdsOtpGroup.vue_vue_type_script_setup_true_lang.js +51 -0
  20. package/dist/es/src/components/CdsOtpInput/CdsOtpGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  21. package/dist/es/src/components/CdsOtpInput/CdsOtpInput.css +204 -0
  22. package/dist/es/src/components/CdsOtpInput/CdsOtpInput.js +2 -0
  23. package/dist/es/src/components/CdsOtpInput/CdsOtpInput.js.map +1 -0
  24. package/dist/es/src/components/CdsOtpInput/CdsOtpInput.vue_vue_type_script_setup_true_lang.js +338 -0
  25. package/dist/es/src/components/CdsOtpInput/CdsOtpInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  26. package/dist/es/src/components/CdsOtpInput/CdsOtpSeparator.js +2 -0
  27. package/dist/es/src/components/CdsOtpInput/CdsOtpSeparator.js.map +1 -0
  28. package/dist/es/src/components/CdsOtpInput/CdsOtpSeparator.vue_vue_type_script_setup_true_lang.js +34 -0
  29. package/dist/es/src/components/CdsOtpInput/CdsOtpSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -0
  30. package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.constants.js +16 -0
  31. package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.constants.js.map +1 -0
  32. package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.props.js +97 -0
  33. package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.props.js.map +1 -0
  34. package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.types.js +2 -0
  35. package/dist/es/src/components/CdsOtpInput/api/CdsOtpInput.types.js.map +1 -0
  36. package/dist/es/src/components/CdsOtpInput/composables/useOtpInput.js +329 -0
  37. package/dist/es/src/components/CdsOtpInput/composables/useOtpInput.js.map +1 -0
  38. package/dist/es/src/components/CdsOtpInput/index.js +17 -0
  39. package/dist/es/src/components/CdsOtpInput/index.js.map +1 -0
  40. package/dist/es/src/components/index.js +10 -0
  41. package/dist/es/src/components/index.js.map +1 -1
  42. package/dist/es/src/composables/useDisabled/index.js +1 -1
  43. package/dist/es/src/composables/useDisabled/index.js.map +1 -1
  44. package/dist/es/src/composables/useLoader/index.js +1 -1
  45. package/dist/es/src/composables/useLoader/index.js.map +1 -1
  46. package/dist/es/src/composables/useLocation/index.js +1 -1
  47. package/dist/es/src/composables/useLocation/index.js.map +1 -1
  48. package/dist/es/src/composables/useRouter/index.js +1 -1
  49. package/dist/es/src/composables/useRouter/index.js.map +1 -1
  50. package/dist/es/src/locales/ru.js +1 -0
  51. package/dist/es/src/locales/ru.js.map +1 -1
  52. package/dist/esm-node/entry.mjs +173 -163
  53. package/dist/esm-node/src/components/CdsOtpInput/CdsOtpField.mjs +2 -0
  54. package/dist/esm-node/src/components/CdsOtpInput/CdsOtpField.vue_vue_type_script_setup_true_lang.mjs +62 -0
  55. package/dist/esm-node/src/components/CdsOtpInput/CdsOtpGroup.mjs +2 -0
  56. package/dist/esm-node/src/components/CdsOtpInput/CdsOtpGroup.vue_vue_type_script_setup_true_lang.mjs +51 -0
  57. package/dist/esm-node/src/components/CdsOtpInput/CdsOtpInput.css +204 -0
  58. package/dist/esm-node/src/components/CdsOtpInput/CdsOtpInput.mjs +2 -0
  59. package/dist/esm-node/src/components/CdsOtpInput/CdsOtpInput.vue_vue_type_script_setup_true_lang.mjs +336 -0
  60. package/dist/esm-node/src/components/CdsOtpInput/CdsOtpSeparator.mjs +2 -0
  61. package/dist/esm-node/src/components/CdsOtpInput/CdsOtpSeparator.vue_vue_type_script_setup_true_lang.mjs +34 -0
  62. package/dist/esm-node/src/components/CdsOtpInput/api/CdsOtpInput.constants.mjs +16 -0
  63. package/dist/esm-node/src/components/CdsOtpInput/api/CdsOtpInput.props.mjs +97 -0
  64. package/dist/esm-node/src/components/CdsOtpInput/api/CdsOtpInput.types.mjs +2 -0
  65. package/dist/esm-node/src/components/CdsOtpInput/composables/useOtpInput.mjs +329 -0
  66. package/dist/esm-node/src/components/CdsOtpInput/index.mjs +17 -0
  67. package/dist/esm-node/src/components/index.mjs +10 -0
  68. package/dist/esm-node/src/composables/useLoader/index.mjs +1 -1
  69. package/dist/esm-node/src/composables/useLocation/index.mjs +1 -1
  70. package/dist/esm-node/src/composables/useRouter/index.mjs +1 -1
  71. package/dist/esm-node/src/locales/ru.mjs +1 -0
  72. package/dist/iife/entry.js +10 -10
  73. package/dist/styles.css +1 -1
  74. package/dist/types/components/CdsOtpInput/CdsOtpField.vue.d.ts +25 -0
  75. package/dist/types/components/CdsOtpInput/CdsOtpGroup.vue.d.ts +34 -0
  76. package/dist/types/components/CdsOtpInput/CdsOtpInput.vue.d.ts +222 -0
  77. package/dist/types/components/CdsOtpInput/CdsOtpSeparator.vue.d.ts +25 -0
  78. package/dist/types/components/CdsOtpInput/api/CdsOtpInput.constants.d.ts +9 -0
  79. package/dist/types/components/CdsOtpInput/api/CdsOtpInput.props.d.ts +340 -0
  80. package/dist/types/components/CdsOtpInput/api/CdsOtpInput.types.d.ts +47 -0
  81. package/dist/types/components/CdsOtpInput/composables/useOtpInput.d.ts +76 -0
  82. package/dist/types/components/CdsOtpInput/index.d.ts +529 -0
  83. package/dist/types/components/index.d.ts +1 -0
  84. package/dist/types/entry.d.ts +5 -1
  85. package/dist/types/locales/en.d.ts +1 -0
  86. package/dist/types/locales/ru.d.ts +1 -0
  87. package/llms/llms-components.txt +512 -1
  88. package/llms/llms-full.txt +513 -2
  89. package/llms/llms-guides.txt +1 -1
  90. package/llms/llms-migration.txt +2 -2
  91. package/llms/llms-tokens.txt +1 -1
  92. package/llms/llms.txt +4 -3
  93. package/package.json +1 -1
@@ -0,0 +1,51 @@
1
+ import { defineComponent, useSlots, inject, computed, unref, createVNode, Fragment } from "vue";
2
+ import { u as useDefaults } from "../../core/useDefaults.js";
3
+ import { c as classNames } from "../../utils/dom/classNames.js";
4
+ import { a as CdsOtpGroupConstants, d as CdsOtpInputSymbol } from "./api/CdsOtpInput.constants.js";
5
+ import { a as defineCdsOtpGroupProps } from "./api/CdsOtpInput.props.js";
6
+ const _sfc_main = /* @__PURE__ */ defineComponent({
7
+ ...{
8
+ name: CdsOtpGroupConstants.name
9
+ },
10
+ __name: "CdsOtpGroup",
11
+ props: {
12
+ ...defineCdsOtpGroupProps()
13
+ },
14
+ setup(__props) {
15
+ const _props = __props;
16
+ const props = useDefaults(_props);
17
+ const slots = useSlots();
18
+ const otpInput = inject(CdsOtpInputSymbol, null);
19
+ const isMerged = computed(() => props.merged ?? unref(otpInput == null ? void 0 : otpInput.merged) ?? false);
20
+ function countSlotChildren(vnodes) {
21
+ let count = 0;
22
+ for (const vnode of vnodes) {
23
+ if (vnode.type === Fragment && Array.isArray(vnode.children)) {
24
+ count += countSlotChildren(vnode.children);
25
+ } else {
26
+ count++;
27
+ }
28
+ }
29
+ return count;
30
+ }
31
+ return () => {
32
+ var _a;
33
+ const {
34
+ rootClass
35
+ } = CdsOtpGroupConstants;
36
+ const children = ((_a = slots.default) == null ? void 0 : _a.call(slots)) ?? [];
37
+ return createVNode("div", {
38
+ "class": classNames(rootClass, {
39
+ [`${rootClass}--merged`]: unref(isMerged)
40
+ }, props.class),
41
+ "style": [unref(isMerged) ? {
42
+ flex: countSlotChildren(children)
43
+ } : void 0, props.style]
44
+ }, [children]);
45
+ };
46
+ }
47
+ });
48
+ export {
49
+ _sfc_main as _
50
+ };
51
+ //# sourceMappingURL=CdsOtpGroup.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CdsOtpGroup.vue_vue_type_script_setup_true_lang.js","sources":["../../../../../src/components/CdsOtpInput/CdsOtpGroup.vue"],"sourcesContent":["<script setup lang=\"tsx\">\nimport { useDefaults } from '@cds/core';\nimport { classNames } from '@cds/utils';\nimport { computed, Fragment, inject, unref, type VNode } from 'vue';\n\nimport { CdsOtpGroupConstants, CdsOtpInputSymbol } from './api/CdsOtpInput.constants';\nimport { defineCdsOtpGroupProps } from './api/CdsOtpInput.props';\nimport type { CdsOtpGroupSlots } from './api/CdsOtpInput.types';\n\ndefineOptions({\n name: CdsOtpGroupConstants.name\n});\n\nconst _props = defineProps({ ...defineCdsOtpGroupProps() });\nconst props = useDefaults(_props);\nconst slots = defineSlots<CdsOtpGroupSlots>();\n\nconst otpInput = inject(CdsOtpInputSymbol, null);\n\nconst isMerged = computed(() => props.merged ?? unref(otpInput?.merged) ?? false);\n\nfunction countSlotChildren(vnodes: VNode[]): number {\n let count = 0;\n\n for (const vnode of vnodes) {\n if (vnode.type === Fragment && Array.isArray(vnode.children)) {\n count += countSlotChildren(vnode.children as VNode[]);\n } else {\n count++;\n }\n }\n\n return count;\n}\n\ndefineRender(() => {\n const { rootClass } = CdsOtpGroupConstants;\n const children = slots.default?.() ?? [];\n\n return (\n <div\n class={classNames(rootClass, { [`${rootClass}--merged`]: unref(isMerged) }, props.class)}\n style={[unref(isMerged) ? { flex: countSlotChildren(children) } : undefined, props.style]}\n >\n {children}\n </div>\n );\n});\n</script>\n"],"names":["_props","__props","props","useDefaults","slots","_useSlots","otpInput","inject","CdsOtpInputSymbol","isMerged","computed","merged","unref","countSlotChildren","vnodes","count","vnode","type","Fragment","Array","isArray","children","rootClass","CdsOtpGroupConstants","default","_createVNode","classNames","class","flex","undefined","style"],"mappings":";;;;;;;;;;;;;;AAaA,UAAMA,SAASC;AACf,UAAMC,QAAQC,YAAYH,MAAM;AAChC,UAAMI,QAAQC,SAAA;AAEd,UAAMC,WAAWC,OAAOC,mBAAmB,IAAI;AAE/C,UAAMC,WAAWC,SAAS,MAAMR,MAAMS,UAAUC,MAAMN,qCAAUK,MAAM,KAAK,KAAK;AAEhF,aAASE,kBAAkBC,QAAyB;AAClD,UAAIC,QAAQ;AAEZ,iBAAWC,SAASF,QAAQ;AAC1B,YAAIE,MAAMC,SAASC,YAAYC,MAAMC,QAAQJ,MAAMK,QAAQ,GAAG;AAC5DN,mBAASF,kBAAkBG,MAAMK,QAAmB;AAAA,QACtD,OAAO;AACLN;AAAAA,QACF;AAAA,MACF;AAEA,aAAOA;AAAAA,IACT;WAEa,MAAM;;AACjB,YAAM;AAAA,QAAEO;AAAAA,MAAU,IAAIC;AACtB,YAAMF,aAAWjB,WAAMoB,YAANpB,mCAAqB,CAAA;AAEtC,aAAAqB,YAAA,OAAA;AAAA,QAAA,SAEWC,WAAWJ,WAAW;AAAA,UAAE,CAAC,GAAGA,SAAS,UAAU,GAAGV,MAAMH,QAAQ;AAAA,QAAE,GAAGP,MAAMyB,KAAK;AAAA,QAAC,SACjF,CAACf,MAAMH,QAAQ,IAAI;AAAA,UAAEmB,MAAMf,kBAAkBQ,QAAQ;AAAA,QAAE,IAAIQ,QAAW3B,MAAM4B,KAAK;AAAA,MAAC,GAAA,CAExFT,QAAQ,CAAA;AAAA,IAGf;AAAA;;"}
@@ -0,0 +1,204 @@
1
+ @charset "UTF-8";
2
+ /*
3
+ * Easing component
4
+ * @type Map
5
+ */
6
+ /*
7
+ * Get the transition-timing-function for a given easing and motion mode
8
+ * @param {String} $type - Can be `ease-in-out`, `ease-in`, or `ease-out`
9
+ * @param {String} $mode [basic] - Can be `basic` or `accent`
10
+ * @param {Map} $easing [$easing] - Easing's map
11
+ * @return {Function} CSS `cubic-bezier()` function
12
+ */
13
+ /*
14
+ * Set the transition-timing-function for a given easing and motion mode
15
+ * @param {Number} $duration — The dynamic duration in ms
16
+ * @param {String} $type - The name of the easing curve to apply
17
+ * @param {String} $mode - The mode for the easing curve to use
18
+ */
19
+ @layer cds-components {
20
+ .cds-otp-input {
21
+ position: relative;
22
+ display: flex;
23
+ align-items: center;
24
+ justify-content: center;
25
+ }
26
+ .cds-otp-input--disabled {
27
+ pointer-events: none;
28
+ }
29
+ .cds-otp-input--size-xs .cds-otp-field {
30
+ min-width: calc(24px / var(--cds-base-unit) * 1rem);
31
+ }
32
+ .cds-otp-input--size-sm .cds-otp-field {
33
+ min-width: calc(28px / var(--cds-base-unit) * 1rem);
34
+ }
35
+ .cds-otp-input--size-md .cds-otp-field {
36
+ min-width: calc(32px / var(--cds-base-unit) * 1rem);
37
+ }
38
+ .cds-otp-input--size-lg .cds-otp-field {
39
+ min-width: calc(36px / var(--cds-base-unit) * 1rem);
40
+ }
41
+ .cds-otp-input--size-xl .cds-otp-field {
42
+ min-width: calc(40px / var(--cds-base-unit) * 1rem);
43
+ }
44
+ .cds-otp-input--size-xs .cds-otp-field__slot {
45
+ font-family: inherit;
46
+ font-size: var(--cds-font-size-300);
47
+ font-weight: var(--cds-font-weight-regular);
48
+ line-height: var(--cds-font-line-height-400);
49
+ letter-spacing: 0;
50
+ }
51
+ .cds-otp-input--size-sm .cds-otp-field__slot {
52
+ font-family: inherit;
53
+ font-size: var(--cds-font-size-400);
54
+ font-weight: var(--cds-font-weight-regular);
55
+ line-height: var(--cds-font-line-height-400);
56
+ letter-spacing: 0;
57
+ }
58
+ .cds-otp-input--size-md .cds-otp-field__slot {
59
+ font-family: inherit;
60
+ font-size: var(--cds-font-size-500);
61
+ font-weight: var(--cds-font-weight-regular);
62
+ line-height: var(--cds-font-line-height-500);
63
+ letter-spacing: 0;
64
+ }
65
+ .cds-otp-input--size-lg .cds-otp-field__slot {
66
+ font-family: inherit;
67
+ font-size: var(--cds-font-size-600);
68
+ font-weight: var(--cds-font-weight-regular);
69
+ line-height: var(--cds-font-line-height-600);
70
+ letter-spacing: 0;
71
+ }
72
+ .cds-otp-input--size-xl .cds-otp-field__slot {
73
+ font-family: inherit;
74
+ font-size: var(--cds-font-size-700);
75
+ font-weight: var(--cds-font-weight-regular);
76
+ line-height: var(--cds-font-line-height-700);
77
+ letter-spacing: 0;
78
+ }
79
+ .cds-otp-input__content {
80
+ position: relative;
81
+ display: flex;
82
+ gap: var(--cds-spacing-200);
83
+ align-items: stretch;
84
+ justify-content: center;
85
+ width: 100%;
86
+ max-width: calc(320px / var(--cds-base-unit) * 1rem);
87
+ border-radius: var(--cds-border-radius-200);
88
+ }
89
+ .cds-otp-input--divided .cds-otp-input__content {
90
+ max-width: calc(360px / var(--cds-base-unit) * 1rem);
91
+ }
92
+ .cds-otp-input--merged .cds-otp-input__content {
93
+ gap: 0;
94
+ }
95
+ .cds-otp-input__input {
96
+ position: absolute;
97
+ inset-inline-start: 50%;
98
+ bottom: 0;
99
+ width: 1px;
100
+ height: 1px;
101
+ padding: 0;
102
+ margin: 0;
103
+ color: transparent;
104
+ pointer-events: none;
105
+ caret-color: transparent;
106
+ outline: none;
107
+ background: transparent;
108
+ border: 0;
109
+ opacity: 0;
110
+ }
111
+ .cds-otp-input__loader {
112
+ display: flex;
113
+ align-items: center;
114
+ justify-content: center;
115
+ width: 100%;
116
+ height: 100%;
117
+ }
118
+ .cds-otp-group {
119
+ display: contents;
120
+ }
121
+ .cds-otp-group--merged {
122
+ display: flex;
123
+ gap: 0;
124
+ align-items: stretch;
125
+ border-radius: inherit;
126
+ }
127
+ .cds-otp-separator {
128
+ display: flex;
129
+ align-items: center;
130
+ justify-content: center;
131
+ margin-inline: var(--cds-spacing-100);
132
+ color: rgb(var(--cds-color-content-secondary));
133
+ }
134
+ .cds-otp-field {
135
+ flex: 1 1 0;
136
+ min-width: 0;
137
+ transition: 200ms cubic-bezier(0.4, 0, 0.2, 1);
138
+ transition-property: opacity, border-color, box-shadow;
139
+ }
140
+ .cds-otp-field--highlighted {
141
+ opacity: 0.5;
142
+ }
143
+ .cds-otp-group--merged .cds-otp-field {
144
+ border-radius: 0;
145
+ }
146
+ .cds-otp-group--merged .cds-otp-field:not(:first-child) {
147
+ margin-inline-start: calc(var(--cds-border-100) * -1);
148
+ }
149
+ .cds-otp-group--merged .cds-otp-field:first-child {
150
+ border-start-start-radius: var(--cds-border-radius-200);
151
+ border-end-start-radius: var(--cds-border-radius-200);
152
+ }
153
+ .cds-otp-group--merged .cds-otp-field:last-child {
154
+ border-start-end-radius: var(--cds-border-radius-200);
155
+ border-end-end-radius: var(--cds-border-radius-200);
156
+ }
157
+ .cds-otp-group--merged .cds-otp-field:hover {
158
+ z-index: 1;
159
+ }
160
+ .cds-otp-group--merged .cds-otp-field.cds-field--focused {
161
+ z-index: 2;
162
+ }
163
+ .cds-otp-field .cds-field__field {
164
+ justify-content: center;
165
+ }
166
+ .cds-otp-field__slot {
167
+ position: relative;
168
+ display: grid;
169
+ place-content: center;
170
+ place-items: center;
171
+ width: 100%;
172
+ height: 100%;
173
+ color: inherit;
174
+ }
175
+ .cds-otp-field__slot > * {
176
+ grid-area: 1/1;
177
+ }
178
+ .cds-otp-field__spacer {
179
+ display: block;
180
+ pointer-events: none;
181
+ opacity: 0;
182
+ }
183
+ .cds-otp-field__placeholder {
184
+ color: rgb(var(--cds-color-content-tertiary));
185
+ }
186
+ .cds-otp-field__composition {
187
+ color: rgb(var(--cds-color-content-secondary));
188
+ text-decoration: underline;
189
+ }
190
+ .cds-otp-field__caret {
191
+ width: var(--cds-border-100);
192
+ height: 1.2em;
193
+ background: currentcolor;
194
+ animation: cds-otp-blink 1000ms step-end infinite;
195
+ }
196
+ @keyframes cds-otp-blink {
197
+ 0%, 100% {
198
+ opacity: 1;
199
+ }
200
+ 50% {
201
+ opacity: 0;
202
+ }
203
+ }
204
+ }
@@ -0,0 +1,2 @@
1
+ import { _ as _sfc_main } from "./CdsOtpInput.vue_vue_type_script_setup_true_lang.js";
2
+ //# sourceMappingURL=CdsOtpInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CdsOtpInput.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,338 @@
1
+ import { defineComponent, useSlots, useAttrs, ref, toRef, watch, unref, provide, createVNode, Fragment, mergeProps, withDirectives } from "vue";
2
+ import { C as CdsOverlay } from "../CdsOverlay/index.js";
3
+ import { C as CdsProgressCircle } from "../CdsProgressCircle/index.js";
4
+ import { u as useFocus, b as useAutofocus } from "../../composables/useFocus/useFocus.js";
5
+ import { a as useLocale, u as useRtl } from "../../composables/useLocale/useLocale.js";
6
+ import { p as provideTheme } from "../../composables/useTheme/useTheme.js";
7
+ import { u as useDefaults, p as provideDefaults } from "../../core/useDefaults.js";
8
+ import { u as useProxyModel } from "../../core/useProxyModel.js";
9
+ import { D as filterInputAttrs } from "../../utils/helpers.js";
10
+ import { c as classNames } from "../../utils/dom/classNames.js";
11
+ import { c as CdsOtpInputConstants, d as CdsOtpInputSymbol } from "./api/CdsOtpInput.constants.js";
12
+ import { c as defineCdsOtpInputProps } from "./api/CdsOtpInput.props.js";
13
+ import { _ as _sfc_main$2 } from "./CdsOtpField.vue_vue_type_script_setup_true_lang.js";
14
+ import { _ as _sfc_main$1 } from "./CdsOtpGroup.vue_vue_type_script_setup_true_lang.js";
15
+ import { _ as _sfc_main$3 } from "./CdsOtpSeparator.vue_vue_type_script_setup_true_lang.js";
16
+ import { u as useOtpInput } from "./composables/useOtpInput.js";
17
+ import { I as Intersect } from "../../directives/intersect/index.js";
18
+ import { u as useDimensions } from "../../composables/useDimensions/useDimensions.js";
19
+ import { u as useSize } from "../../composables/useSize/useSize.js";
20
+ const _sfc_main = /* @__PURE__ */ defineComponent({
21
+ ...{
22
+ name: CdsOtpInputConstants.name,
23
+ inheritAttrs: false,
24
+ directives: {
25
+ vIntersect: Intersect
26
+ }
27
+ },
28
+ __name: "CdsOtpInput",
29
+ props: {
30
+ ...defineCdsOtpInputProps()
31
+ },
32
+ emits: ["finish", "update:focused", "update:modelValue"],
33
+ setup(__props, {
34
+ expose: __expose,
35
+ emit: __emit
36
+ }) {
37
+ const _props = __props;
38
+ const props = useDefaults(_props);
39
+ const slots = useSlots();
40
+ const emit = __emit;
41
+ const attrs = useAttrs();
42
+ const {
43
+ themeClasses
44
+ } = provideTheme(props);
45
+ const {
46
+ dimensionStyles
47
+ } = useDimensions(props);
48
+ const {
49
+ sizeClasses
50
+ } = useSize(props);
51
+ const {
52
+ isFocused
53
+ } = useFocus(props);
54
+ const {
55
+ onIntersect
56
+ } = useAutofocus(props);
57
+ const {
58
+ t
59
+ } = useLocale();
60
+ const {
61
+ isRtl
62
+ } = useRtl();
63
+ const model = useProxyModel(props, "modelValue", "", (value) => value == null ? "" : String(value));
64
+ const inputRef = ref();
65
+ const length = toRef(() => Number(props.length));
66
+ let focusAtPending = false;
67
+ const otp = useOtpInput({
68
+ value: model,
69
+ length,
70
+ pattern: () => props.pattern,
71
+ type: () => props.type,
72
+ masked: () => props.masked,
73
+ placeholder: () => props.placeholder,
74
+ isFocused
75
+ });
76
+ function applySelection() {
77
+ const input = unref(inputRef);
78
+ const selection = unref(otp.selection);
79
+ if (!input || !selection) return;
80
+ input.setSelectionRange(selection.start, selection.end, selection.direction);
81
+ }
82
+ function syncDOM() {
83
+ const input = unref(inputRef);
84
+ if (!input) return;
85
+ if (input.value !== unref(otp.value)) input.value = unref(otp.value);
86
+ applySelection();
87
+ }
88
+ function onSelectionChange() {
89
+ const input = unref(inputRef);
90
+ if (!input) {
91
+ otp.clearSelection();
92
+ return;
93
+ }
94
+ const result = otp.syncSelection({
95
+ value: input.value,
96
+ selectionStart: input.selectionStart,
97
+ selectionEnd: input.selectionEnd,
98
+ selectionDirection: input.selectionDirection,
99
+ maxLength: unref(length)
100
+ });
101
+ if (!result) return;
102
+ if (input.selectionStart !== result.start || input.selectionEnd !== result.end) {
103
+ input.setSelectionRange(result.start, result.end, result.direction);
104
+ }
105
+ }
106
+ function onInput(event) {
107
+ const inputEvent = event;
108
+ const target = event.target;
109
+ const composing = inputEvent.isComposing || unref(otp.isComposing);
110
+ if (composing && otp.isImeText(target.value)) return;
111
+ const next = otp.setValue(target.value);
112
+ if (target.value !== next) target.value = next;
113
+ }
114
+ function onCompositionstart() {
115
+ otp.startComposition();
116
+ }
117
+ function onCompositionupdate(event) {
118
+ otp.updateComposition(event.data ?? "");
119
+ }
120
+ function onCompositionend(event) {
121
+ otp.endComposition();
122
+ onInput(event);
123
+ }
124
+ function onFocus() {
125
+ isFocused.value = true;
126
+ if (focusAtPending) return;
127
+ if (!unref(inputRef)) return;
128
+ otp.selectAtEnd();
129
+ applySelection();
130
+ }
131
+ function onBlur() {
132
+ isFocused.value = false;
133
+ otp.clearSelection();
134
+ }
135
+ function onKeydown(event) {
136
+ if (event.shiftKey && (event.key === "ArrowLeft" || event.key === "ArrowRight")) {
137
+ const direction = (event.key === "ArrowLeft" ? -1 : 1) * (unref(isRtl) ? -1 : 1);
138
+ if (otp.extendSelection(direction)) {
139
+ event.preventDefault();
140
+ syncDOM();
141
+ }
142
+ return;
143
+ }
144
+ if (event.key !== "Backspace" && event.key !== "Delete") return;
145
+ if (!event.metaKey && !event.ctrlKey && !event.altKey) return;
146
+ event.preventDefault();
147
+ otp.bulkDelete(event.key === "Backspace");
148
+ syncDOM();
149
+ }
150
+ function onBeforeinput(event) {
151
+ const pattern = unref(otp.effectivePattern);
152
+ if (event.inputType === "insertText" && event.data && pattern && !pattern.test(event.data)) {
153
+ event.preventDefault();
154
+ return;
155
+ }
156
+ if (event.inputType === "deleteContentForward") {
157
+ event.preventDefault();
158
+ const input = unref(inputRef);
159
+ if (!input) return;
160
+ const selection = unref(otp.selection);
161
+ otp.deleteRange((selection == null ? void 0 : selection.start) ?? 0, (selection == null ? void 0 : selection.end) ?? input.value.length);
162
+ syncDOM();
163
+ return;
164
+ }
165
+ const isBackward = ["deleteWordBackward", "deleteSoftLineBackward", "deleteHardLineBackward"].includes(event.inputType);
166
+ const isForward = ["deleteWordForward", "deleteSoftLineForward", "deleteHardLineForward"].includes(event.inputType);
167
+ if (!isBackward && !isForward) return;
168
+ event.preventDefault();
169
+ otp.bulkDelete(isBackward);
170
+ syncDOM();
171
+ }
172
+ function onPaste(event) {
173
+ var _a;
174
+ event.preventDefault();
175
+ const input = unref(inputRef);
176
+ if (!input) return;
177
+ const text = ((_a = event.clipboardData) == null ? void 0 : _a.getData("text/plain").trim()) ?? "";
178
+ const selection = unref(otp.selection);
179
+ otp.insert(text, {
180
+ start: (selection == null ? void 0 : selection.start) ?? 0,
181
+ end: (selection == null ? void 0 : selection.end) ?? input.value.length
182
+ });
183
+ syncDOM();
184
+ }
185
+ function focusAt(index) {
186
+ const input = unref(inputRef);
187
+ if (!input) return;
188
+ focusAtPending = true;
189
+ input.focus();
190
+ focusAtPending = false;
191
+ otp.selectSlot(index);
192
+ applySelection();
193
+ }
194
+ function focus() {
195
+ var _a;
196
+ (_a = unref(inputRef)) == null ? void 0 : _a.focus();
197
+ }
198
+ function blur() {
199
+ var _a;
200
+ (_a = unref(inputRef)) == null ? void 0 : _a.blur();
201
+ }
202
+ watch(inputRef, (input, _previous, onCleanup) => {
203
+ if (!input) return;
204
+ input.addEventListener("selectionchange", onSelectionChange);
205
+ onCleanup(() => input.removeEventListener("selectionchange", onSelectionChange));
206
+ }, {
207
+ immediate: true
208
+ });
209
+ watch(model, (value) => {
210
+ if (unref(otp.isComposing)) return;
211
+ if (value.length === unref(length)) emit("finish", value);
212
+ });
213
+ provideDefaults({
214
+ CdsField: {
215
+ color: toRef(() => props.color),
216
+ baseColor: toRef(() => props.baseColor),
217
+ activeColor: toRef(() => props.activeColor),
218
+ bgColor: toRef(() => props.bgColor),
219
+ disabled: toRef(() => props.disabled),
220
+ error: toRef(() => props.error),
221
+ size: toRef(() => props.size)
222
+ }
223
+ }, {
224
+ scoped: true
225
+ });
226
+ provide(CdsOtpInputSymbol, {
227
+ otpSlots: otp.slots,
228
+ isFocused,
229
+ focusAll: toRef(() => props.focusAll),
230
+ divider: toRef(() => props.divider),
231
+ merged: toRef(() => props.merged),
232
+ focusAt
233
+ });
234
+ __expose({
235
+ /** Ref-ссылка на скрытый input, который принимает ввод кода */
236
+ inputRef,
237
+ /** Состояние фокуса поля */
238
+ isFocused,
239
+ /** Установить фокус на поле */
240
+ focus,
241
+ /** Снять фокус с поля */
242
+ blur,
243
+ /** Очистить введённый код */
244
+ reset: otp.reset
245
+ });
246
+ return () => {
247
+ var _a;
248
+ const {
249
+ rootClass
250
+ } = CdsOtpInputConstants;
251
+ const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
252
+ const count = unref(length);
253
+ const fields = props.merged ? createVNode(_sfc_main$1, {
254
+ "merged": true
255
+ }, {
256
+ default: () => [Array.from({
257
+ length: count
258
+ }, (_, index) => createVNode(_sfc_main$2, {
259
+ "key": index,
260
+ "index": index
261
+ }, null))]
262
+ }) : Array.from({
263
+ length: count
264
+ }, (_, index) => createVNode(Fragment, null, [(props.divider || slots.divider) && index !== 0 && createVNode(_sfc_main$3, {
265
+ "key": `divider-${index}`
266
+ }, {
267
+ default: () => {
268
+ var _a2;
269
+ return [((_a2 = slots.divider) == null ? void 0 : _a2.call(slots, {
270
+ index: index - 1
271
+ })) ?? props.divider];
272
+ }
273
+ }), createVNode(_sfc_main$2, {
274
+ "key": index,
275
+ "index": index
276
+ }, null)]));
277
+ return createVNode("div", mergeProps({
278
+ "class": classNames(rootClass, {
279
+ [`${rootClass}--divided`]: !!props.divider || !!slots.divider,
280
+ [`${rootClass}--merged`]: props.merged,
281
+ [`${rootClass}--disabled`]: !!props.disabled,
282
+ [`${rootClass}--error`]: props.error
283
+ }, unref(themeClasses), unref(sizeClasses), props.class),
284
+ "style": [props.style]
285
+ }, rootAttrs), [createVNode("div", {
286
+ "class": `${rootClass}__content`,
287
+ "style": [unref(dimensionStyles)],
288
+ "dir": unref(isRtl) ? "rtl" : "ltr"
289
+ }, [slots.fields ? slots.fields() : fields, withDirectives(createVNode("input", mergeProps({
290
+ "ref": inputRef,
291
+ "class": `${rootClass}__input`,
292
+ "type": "text",
293
+ "inputmode": unref(otp.inputMode),
294
+ "dir": unref(isRtl) ? "rtl" : "ltr",
295
+ "autocomplete": "one-time-code",
296
+ "autocorrect": "off",
297
+ "autocapitalize": "off",
298
+ "spellcheck": false,
299
+ "disabled": !!props.disabled,
300
+ "aria-label": t(props.label),
301
+ "value": unref(model)
302
+ }, inputAttrs, {
303
+ "onInput": onInput,
304
+ "onKeydown": onKeydown,
305
+ "onBeforeinput": onBeforeinput,
306
+ "onFocus": onFocus,
307
+ "onBlur": onBlur,
308
+ "onPaste": onPaste,
309
+ "onCompositionstart": onCompositionstart,
310
+ "onCompositionupdate": onCompositionupdate,
311
+ "onCompositionend": onCompositionend
312
+ }), null), [[Intersect, onIntersect, null, {
313
+ once: true
314
+ }]]), createVNode(CdsOverlay, {
315
+ "contained": true,
316
+ "persistent": true,
317
+ "contentClass": `${rootClass}__loader`,
318
+ "modelValue": !!props.loading
319
+ }, {
320
+ default: () => {
321
+ var _a2;
322
+ return [((_a2 = slots.loader) == null ? void 0 : _a2.call(slots)) ?? createVNode(CdsProgressCircle, {
323
+ "color": typeof props.loading === "boolean" ? void 0 : props.loading,
324
+ "indeterminate": true,
325
+ "size": 24,
326
+ "width": 2
327
+ }, null)];
328
+ }
329
+ }), (_a = slots.default) == null ? void 0 : _a.call(slots)])]);
330
+ };
331
+ }
332
+ });
333
+ export {
334
+ _sfc_main as _
335
+ };
336
+
337
+ import './CdsOtpInput.css';
338
+ //# sourceMappingURL=CdsOtpInput.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CdsOtpInput.vue_vue_type_script_setup_true_lang.js","sources":["../../../../../src/components/CdsOtpInput/CdsOtpInput.vue"],"sourcesContent":["<script setup lang=\"tsx\">\nimport './CdsOtpInput.scss';\n\nimport { CdsOverlay } from '@cds/components/CdsOverlay';\nimport { CdsProgressCircle } from '@cds/components/CdsProgressCircle';\nimport { useDimensions } from '@cds/composables/useDimensions';\nimport { useAutofocus, useFocus } from '@cds/composables/useFocus';\nimport { useLocale, useRtl } from '@cds/composables/useLocale';\nimport { useSize } from '@cds/composables/useSize';\nimport { provideTheme } from '@cds/composables/useTheme';\nimport { provideDefaults, useDefaults, useProxyModel } from '@cds/core';\nimport { Intersect as vIntersect } from '@cds/directives';\nimport { classNames, filterInputAttrs } from '@cds/utils';\nimport { provide, ref, toRef, unref, useAttrs, watch, withDirectives } from 'vue';\n\nimport { CdsOtpInputConstants, CdsOtpInputSymbol } from './api/CdsOtpInput.constants';\nimport { defineCdsOtpInputProps } from './api/CdsOtpInput.props';\nimport type { CdsOtpInputEvents, CdsOtpInputSlots } from './api/CdsOtpInput.types';\nimport CdsOtpField from './CdsOtpField.vue';\nimport CdsOtpGroup from './CdsOtpGroup.vue';\nimport CdsOtpSeparator from './CdsOtpSeparator.vue';\nimport { useOtpInput } from './composables/useOtpInput';\n\ndefineOptions({\n name: CdsOtpInputConstants.name,\n inheritAttrs: false,\n directives: { vIntersect }\n});\n\nconst _props = defineProps({ ...defineCdsOtpInputProps() });\nconst props = useDefaults(_props);\nconst slots = defineSlots<CdsOtpInputSlots>();\nconst emit = defineEmits([\"finish\", \"update:focused\", \"update:modelValue\"]);\nconst attrs = useAttrs();\n\nconst { themeClasses } = provideTheme(props);\nconst { dimensionStyles } = useDimensions(props);\nconst { sizeClasses } = useSize(props);\nconst { isFocused } = useFocus(props);\nconst { onIntersect } = useAutofocus(props);\nconst { t } = useLocale();\nconst { isRtl } = useRtl();\n\nconst model = useProxyModel(props, 'modelValue', '', (value) => (value == null ? '' : String(value)));\nconst inputRef = ref<HTMLInputElement>();\nconst length = toRef(() => Number(props.length));\n\nlet focusAtPending = false;\n\nconst otp = useOtpInput({\n value: model,\n length,\n pattern: () => props.pattern,\n type: () => props.type,\n masked: () => props.masked,\n placeholder: () => props.placeholder,\n isFocused\n});\n\nfunction applySelection() {\n const input = unref(inputRef);\n const selection = unref(otp.selection);\n\n if (!input || !selection) return;\n\n input.setSelectionRange(selection.start, selection.end, selection.direction);\n}\n\nfunction syncDOM() {\n const input = unref(inputRef);\n\n if (!input) return;\n if (input.value !== unref(otp.value)) input.value = unref(otp.value);\n\n applySelection();\n}\n\nfunction onSelectionChange() {\n const input = unref(inputRef);\n\n if (!input) {\n otp.clearSelection();\n return;\n }\n\n const result = otp.syncSelection({\n value: input.value,\n selectionStart: input.selectionStart,\n selectionEnd: input.selectionEnd,\n selectionDirection: input.selectionDirection,\n maxLength: unref(length)\n });\n\n if (!result) return;\n\n if (input.selectionStart !== result.start || input.selectionEnd !== result.end) {\n input.setSelectionRange(result.start, result.end, result.direction);\n }\n}\n\nfunction onInput(event: Event) {\n const inputEvent = event as InputEvent;\n const target = event.target as HTMLInputElement;\n const composing = inputEvent.isComposing || unref(otp.isComposing);\n\n if (composing && otp.isImeText(target.value)) return;\n\n const next = otp.setValue(target.value);\n\n if (target.value !== next) target.value = next;\n}\n\nfunction onCompositionstart() {\n otp.startComposition();\n}\n\nfunction onCompositionupdate(event: CompositionEvent) {\n otp.updateComposition(event.data ?? '');\n}\n\nfunction onCompositionend(event: CompositionEvent) {\n otp.endComposition();\n onInput(event);\n}\n\nfunction onFocus() {\n isFocused.value = true;\n\n if (focusAtPending) return;\n if (!unref(inputRef)) return;\n\n otp.selectAtEnd();\n applySelection();\n}\n\nfunction onBlur() {\n isFocused.value = false;\n otp.clearSelection();\n}\n\nfunction onKeydown(event: KeyboardEvent) {\n if (event.shiftKey && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {\n const direction = ((event.key === 'ArrowLeft' ? -1 : 1) * (unref(isRtl) ? -1 : 1)) as -1 | 1;\n\n if (otp.extendSelection(direction)) {\n event.preventDefault();\n syncDOM();\n }\n\n return;\n }\n\n if (event.key !== 'Backspace' && event.key !== 'Delete') return;\n if (!event.metaKey && !event.ctrlKey && !event.altKey) return;\n\n event.preventDefault();\n otp.bulkDelete(event.key === 'Backspace');\n syncDOM();\n}\n\nfunction onBeforeinput(event: InputEvent) {\n const pattern = unref(otp.effectivePattern);\n\n if (event.inputType === 'insertText' && event.data && pattern && !pattern.test(event.data)) {\n event.preventDefault();\n return;\n }\n\n if (event.inputType === 'deleteContentForward') {\n event.preventDefault();\n\n const input = unref(inputRef);\n\n if (!input) return;\n\n const selection = unref(otp.selection);\n\n otp.deleteRange(selection?.start ?? 0, selection?.end ?? input.value.length);\n syncDOM();\n\n return;\n }\n\n const isBackward = ['deleteWordBackward', 'deleteSoftLineBackward', 'deleteHardLineBackward'].includes(\n event.inputType\n );\n const isForward = ['deleteWordForward', 'deleteSoftLineForward', 'deleteHardLineForward'].includes(event.inputType);\n\n if (!isBackward && !isForward) return;\n\n event.preventDefault();\n otp.bulkDelete(isBackward);\n syncDOM();\n}\n\nfunction onPaste(event: ClipboardEvent) {\n event.preventDefault();\n\n const input = unref(inputRef);\n\n if (!input) return;\n\n const text = event.clipboardData?.getData('text/plain').trim() ?? '';\n const selection = unref(otp.selection);\n\n otp.insert(text, {\n start: selection?.start ?? 0,\n end: selection?.end ?? input.value.length\n });\n\n syncDOM();\n}\n\nfunction focusAt(index: number) {\n const input = unref(inputRef);\n\n if (!input) return;\n\n focusAtPending = true;\n input.focus();\n focusAtPending = false;\n\n otp.selectSlot(index);\n applySelection();\n}\n\nfunction focus() {\n unref(inputRef)?.focus();\n}\n\nfunction blur() {\n unref(inputRef)?.blur();\n}\n\nwatch(\n inputRef,\n (input, _previous, onCleanup) => {\n if (!input) return;\n\n input.addEventListener('selectionchange', onSelectionChange);\n onCleanup(() => input.removeEventListener('selectionchange', onSelectionChange));\n },\n { immediate: true }\n);\n\nwatch(model, (value) => {\n if (unref(otp.isComposing)) return;\n if (value.length === unref(length)) emit('finish', value);\n});\n\nprovideDefaults(\n {\n CdsField: {\n color: toRef(() => props.color),\n baseColor: toRef(() => props.baseColor),\n activeColor: toRef(() => props.activeColor),\n bgColor: toRef(() => props.bgColor),\n disabled: toRef(() => props.disabled),\n error: toRef(() => props.error),\n size: toRef(() => props.size)\n }\n },\n { scoped: true }\n);\n\nprovide(CdsOtpInputSymbol, {\n otpSlots: otp.slots,\n isFocused,\n focusAll: toRef(() => props.focusAll),\n divider: toRef(() => props.divider),\n merged: toRef(() => props.merged),\n focusAt\n});\n\ndefineRender(() => {\n const { rootClass } = CdsOtpInputConstants;\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);\n const count = unref(length);\n\n const fields = props.merged ? (\n <CdsOtpGroup merged>\n {Array.from({ length: count }, (_, index) => (\n <CdsOtpField key={index} index={index} />\n ))}\n </CdsOtpGroup>\n ) : (\n Array.from({ length: count }, (_, index) => (\n <>\n {(props.divider || slots.divider) && index !== 0 && (\n <CdsOtpSeparator key={`divider-${index}`}>\n {slots.divider?.({ index: index - 1 }) ?? props.divider}\n </CdsOtpSeparator>\n )}\n\n <CdsOtpField key={index} index={index} />\n </>\n ))\n );\n\n return (\n <div\n class={classNames(\n rootClass,\n {\n [`${rootClass}--divided`]: !!props.divider || !!slots.divider,\n [`${rootClass}--merged`]: props.merged,\n [`${rootClass}--disabled`]: !!props.disabled,\n [`${rootClass}--error`]: props.error\n },\n unref(themeClasses),\n unref(sizeClasses),\n props.class\n )}\n style={[props.style]}\n {...rootAttrs}\n >\n <div class={`${rootClass}__content`} style={[unref(dimensionStyles)]} dir={unref(isRtl) ? 'rtl' : 'ltr'}>\n {slots.fields ? slots.fields() : fields}\n\n {withDirectives(\n <input\n ref={inputRef}\n class={`${rootClass}__input`}\n type=\"text\"\n inputmode={unref(otp.inputMode)}\n dir={unref(isRtl) ? 'rtl' : 'ltr'}\n autocomplete=\"one-time-code\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck={false}\n disabled={!!props.disabled}\n aria-label={t(props.label)}\n value={unref(model)}\n {...inputAttrs}\n onInput={onInput}\n onKeydown={onKeydown}\n onBeforeinput={onBeforeinput}\n onFocus={onFocus}\n onBlur={onBlur}\n onPaste={onPaste}\n onCompositionstart={onCompositionstart}\n onCompositionupdate={onCompositionupdate}\n onCompositionend={onCompositionend}\n />,\n [[vIntersect, onIntersect, null, { once: true }]]\n )}\n\n <CdsOverlay contained persistent contentClass={`${rootClass}__loader`} modelValue={!!props.loading}>\n {slots.loader?.() ?? (\n <CdsProgressCircle\n color={typeof props.loading === 'boolean' ? undefined : props.loading}\n indeterminate\n size={24}\n width={2}\n />\n )}\n </CdsOverlay>\n\n {slots.default?.()}\n </div>\n </div>\n );\n});\n\ndefineExpose({\n /** Ref-ссылка на скрытый input, который принимает ввод кода */\n inputRef,\n /** Состояние фокуса поля */\n isFocused,\n /** Установить фокус на поле */\n focus,\n /** Снять фокус с поля */\n blur,\n /** Очистить введённый код */\n reset: otp.reset\n});\n</script>\n"],"names":["_props","__props","props","useDefaults","slots","_useSlots","emit","__emit","attrs","useAttrs","themeClasses","provideTheme","dimensionStyles","useDimensions","sizeClasses","useSize","isFocused","useFocus","onIntersect","useAutofocus","t","useLocale","isRtl","useRtl","model","useProxyModel","value","String","inputRef","ref","length","toRef","Number","focusAtPending","otp","useOtpInput","pattern","type","masked","placeholder","applySelection","input","unref","selection","setSelectionRange","start","end","direction","syncDOM","onSelectionChange","clearSelection","result","syncSelection","selectionStart","selectionEnd","selectionDirection","maxLength","onInput","event","inputEvent","target","composing","isComposing","isImeText","next","setValue","onCompositionstart","startComposition","onCompositionupdate","updateComposition","data","onCompositionend","endComposition","onFocus","selectAtEnd","onBlur","onKeydown","shiftKey","key","extendSelection","preventDefault","metaKey","ctrlKey","altKey","bulkDelete","onBeforeinput","effectivePattern","inputType","test","deleteRange","isBackward","includes","isForward","onPaste","text","clipboardData","getData","trim","insert","focusAt","index","focus","selectSlot","blur","watch","_previous","onCleanup","addEventListener","removeEventListener","immediate","provideDefaults","CdsField","color","baseColor","activeColor","bgColor","disabled","error","size","scoped","provide","CdsOtpInputSymbol","otpSlots","focusAll","divider","merged","__expose","reset","rootClass","CdsOtpInputConstants","rootAttrs","inputAttrs","filterInputAttrs","count","fields","_createVNode","CdsOtpGroup","default","Array","from","_","CdsOtpField","_Fragment","CdsOtpSeparator","_mergeProps","classNames","class","style","withDirectives","inputMode","label","vIntersect","once","CdsOverlay","loading","loader","CdsProgressCircle","undefined"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { _ as _sfc_main } from "./CdsOtpSeparator.vue_vue_type_script_setup_true_lang.js";
2
+ //# sourceMappingURL=CdsOtpSeparator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CdsOtpSeparator.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}