@bridge-ui/vue 0.0.7 → 0.0.8

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 (136) hide show
  1. package/ai/AGENTS.md +31 -0
  2. package/ai/README.md +35 -0
  3. package/ai/guidelines/core.md +44 -0
  4. package/ai/llms.txt +38 -0
  5. package/ai/skills/bridge-ui-components/SKILL.md +37 -0
  6. package/ai/skills/bridge-ui-forms/SKILL.md +38 -0
  7. package/ai/skills/bridge-ui-overlays/SKILL.md +37 -0
  8. package/ai/skills/bridge-ui-setup/SKILL.md +38 -0
  9. package/bin/__tests__/ai.test.ts +319 -0
  10. package/bin/ai.mjs +469 -0
  11. package/dist/Adapters/I18n/useI18nAdapter.d.ts +1 -1
  12. package/dist/Adapters/Icon/useIconAdapter.d.ts +1 -1
  13. package/dist/Components/Autocomplete/Autocomplete.vue.d.ts +5 -5
  14. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +3 -2
  15. package/dist/Components/Autocomplete/composables/useAutocomplete.js +6 -2
  16. package/dist/Components/Avatar/composables/useAvatar.d.ts +1 -1
  17. package/dist/Components/BaseField/BaseField.js +5 -0
  18. package/dist/Components/BaseField/BaseField.vue.d.ts +15 -0
  19. package/dist/Components/BaseField/BaseField.vue_vue_type_script_setup_true_lang.js +41 -0
  20. package/dist/Components/BaseField/BaseFieldLabel.js +5 -0
  21. package/dist/Components/{OtpField/OtpFieldLabel.vue.d.ts → BaseField/BaseFieldLabel.vue.d.ts} +2 -2
  22. package/dist/Components/{OtpField/OtpFieldLabel.vue_vue_type_script_setup_true_lang.js → BaseField/BaseFieldLabel.vue_vue_type_script_setup_true_lang.js} +2 -2
  23. package/dist/Components/BaseField/baseField.types.d.ts +222 -0
  24. package/dist/Components/BaseField/composables/useBaseField.d.ts +55 -0
  25. package/dist/Components/BaseField/composables/useBaseField.js +131 -0
  26. package/dist/Components/BaseField/index.d.ts +4 -0
  27. package/dist/Components/BaseField/index.js +3 -0
  28. package/dist/Components/Button/composables/useButton.d.ts +1 -1
  29. package/dist/Components/Checkbox/composables/useCheckbox.d.ts +1 -1
  30. package/dist/Components/Checkbox/composables/useCheckbox.js +1 -1
  31. package/dist/Components/Chip/Chip.vue.d.ts +1 -1
  32. package/dist/Components/Chip/composables/useChip.d.ts +1 -1
  33. package/dist/Components/Drawer/Drawer.vue.d.ts +2 -2
  34. package/dist/Components/Drawer/composables/useDrawer.d.ts +1 -1
  35. package/dist/Components/FormControl/composables/useFormControl.d.ts +11 -2
  36. package/dist/Components/FormControl/composables/useFormControl.js +57 -53
  37. package/dist/Components/FormControl/index.d.ts +1 -1
  38. package/dist/Components/FormField/composables/useFormField.d.ts +5 -1
  39. package/dist/Components/FormField/composables/useFormField.js +1 -1
  40. package/dist/Components/ListItem/ListItem.vue.d.ts +1 -1
  41. package/dist/Components/ListItem/composables/useListItem.d.ts +1 -1
  42. package/dist/Components/Listbox/Listbox.vue.d.ts +3 -3
  43. package/dist/Components/Listbox/Listbox.vue_vue_type_script_setup_true_lang.js +2 -1
  44. package/dist/Components/Listbox/composables/useListbox.d.ts +10 -1
  45. package/dist/Components/Listbox/composables/useListbox.js +20 -20
  46. package/dist/Components/Listbox/index.d.ts +1 -0
  47. package/dist/Components/Listbox/listbox.types.d.ts +6 -0
  48. package/dist/Components/Menu/Menu.vue.d.ts +2 -2
  49. package/dist/Components/Modal/Modal.vue.d.ts +2 -2
  50. package/dist/Components/Modal/composables/useModal.d.ts +1 -1
  51. package/dist/Components/NumberField/NumberField.vue.d.ts +2 -2
  52. package/dist/Components/NumberField/composables/useNumberField.d.ts +2 -2
  53. package/dist/Components/NumberField/composables/useNumberField.js +4 -1
  54. package/dist/Components/OtpField/OtpField.vue.d.ts +3 -3
  55. package/dist/Components/OtpField/OtpField.vue_vue_type_script_setup_true_lang.js +34 -52
  56. package/dist/Components/OtpField/composables/useOtpField.d.ts +40 -213
  57. package/dist/Components/OtpField/composables/useOtpField.js +92 -150
  58. package/dist/Components/OtpField/otpField.types.d.ts +10 -180
  59. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +2 -2
  60. package/dist/Components/PasswordField/composables/usePasswordField.js +4 -1
  61. package/dist/Components/Radio/composables/useRadio.d.ts +1 -1
  62. package/dist/Components/Radio/composables/useRadio.js +1 -1
  63. package/dist/Components/Select/Select.vue.d.ts +4 -4
  64. package/dist/Components/Select/composables/useSelect.d.ts +3 -2
  65. package/dist/Components/Select/composables/useSelect.js +6 -2
  66. package/dist/Components/Slider/Slider.js +5 -0
  67. package/dist/Components/Slider/Slider.vue.d.ts +25 -0
  68. package/dist/Components/Slider/Slider.vue_vue_type_script_setup_true_lang.js +113 -0
  69. package/dist/Components/Slider/composables/useSlider.d.ts +482 -0
  70. package/dist/Components/Slider/composables/useSlider.js +287 -0
  71. package/dist/Components/Slider/index.d.ts +4 -0
  72. package/dist/Components/Slider/index.js +3 -0
  73. package/dist/Components/Slider/slider.types.d.ts +169 -0
  74. package/dist/Components/Snackbar/Snackbar.vue.d.ts +2 -2
  75. package/dist/Components/Switch/composables/useSwitch.d.ts +1 -1
  76. package/dist/Components/Switch/composables/useSwitch.js +1 -1
  77. package/dist/Components/Tabs/Tabs.vue.d.ts +2 -2
  78. package/dist/Components/TextField/composables/useTextField.d.ts +2 -2
  79. package/dist/Components/TextField/composables/useTextField.js +1 -1
  80. package/dist/Components/Textarea/composables/useTextarea.d.ts +2 -2
  81. package/dist/Components/Textarea/composables/useTextarea.js +1 -0
  82. package/dist/Utils/index.d.ts +3 -3
  83. package/dist/Utils/index.js +5 -2
  84. package/dist/augments.d.ts +29 -17
  85. package/dist/index.d.ts +5 -1
  86. package/dist/index.js +59 -55
  87. package/docs/README.md +56 -0
  88. package/docs/components/Alert.md +96 -0
  89. package/docs/components/Autocomplete.md +198 -0
  90. package/docs/components/Avatar.md +60 -0
  91. package/docs/components/Badge.md +47 -0
  92. package/docs/components/BaseField.md +126 -0
  93. package/docs/components/BridgeUIProvider.md +151 -0
  94. package/docs/components/Button.md +93 -0
  95. package/docs/components/Card.md +287 -0
  96. package/docs/components/Checkbox.md +87 -0
  97. package/docs/components/Divider.md +56 -0
  98. package/docs/components/Drawer.md +137 -0
  99. package/docs/components/FormControl.md +66 -0
  100. package/docs/components/FormField.md +71 -0
  101. package/docs/components/I18n.md +125 -0
  102. package/docs/components/Icon.md +88 -0
  103. package/docs/components/Label.md +31 -0
  104. package/docs/components/Link.md +71 -0
  105. package/docs/components/List.md +167 -0
  106. package/docs/components/Menu.md +97 -0
  107. package/docs/components/Modal.md +154 -0
  108. package/docs/components/NumberField.md +80 -0
  109. package/docs/components/OtpField.md +133 -0
  110. package/docs/components/PasswordField.md +82 -0
  111. package/docs/components/Progress.md +68 -0
  112. package/docs/components/Radio.md +91 -0
  113. package/docs/components/Select.md +181 -0
  114. package/docs/components/Skeleton.md +38 -0
  115. package/docs/components/Slider.md +140 -0
  116. package/docs/components/Snackbar.md +99 -0
  117. package/docs/components/Spinner.md +61 -0
  118. package/docs/components/Switch.md +72 -0
  119. package/docs/components/Tabs.md +207 -0
  120. package/docs/components/TextField.md +72 -0
  121. package/docs/components/Textarea.md +80 -0
  122. package/docs/components/Tooltip.md +125 -0
  123. package/docs/components/useBreakpoint.md +100 -0
  124. package/docs/components/useDialogAction.md +97 -0
  125. package/docs/components/useDrawerAction.md +75 -0
  126. package/docs/components/useModalAction.md +75 -0
  127. package/docs/components/useSnackbarAction.md +85 -0
  128. package/docs/examples/i18n-dictionary.ts +48 -0
  129. package/docs/examples/i18n-vue-i18n.ts +34 -0
  130. package/docs/examples/icon-fontawesome.ts +112 -0
  131. package/docs/examples/icon-heroicons.ts +57 -0
  132. package/docs/examples/icon-lucide.ts +57 -0
  133. package/docs/examples/icon-phosphor.ts +57 -0
  134. package/docs/examples/icon-tabler.ts +57 -0
  135. package/package.json +12 -5
  136. package/dist/Components/OtpField/OtpFieldLabel.js +0 -5
@@ -1,219 +1,58 @@
1
1
  import { MaybeRefOrGetter, Ref } from 'vue';
2
2
  import { LibDefaultsShape, MergeLibDefaults, OtpInputType } from '@bridge-ui/core';
3
- import { LabelProps } from '../../Label/label.types';
4
- import { OtpFieldClasses, OtpFieldOwnProps } from '../otpField.types';
3
+ import { OtpFieldOwnProps } from '../otpField.types';
5
4
  export type UseOtpFieldOptions = {
6
5
  onChange?: (value: string) => void;
7
6
  onComplete?: (value: string) => void;
8
7
  };
9
- export declare const otpFieldBridgeKeys: readonly ["mask", "size", "type", "color", "error", "label", "corner", "length", "classes", "rounded", "variant", "disabled", "readonly", "required", "autoFocus", "controlId", "customProps", "description", "placeholder", "defaultValue", "errorMessage", "hideErrorMessage"];
8
+ export declare const otpFieldBridgeKeys: readonly ["mask", "type", "color", "length", "rounded", "variant", "autoFocus", "placeholder", "defaultValue", "size", "error", "label", "corner", "classes", "disabled", "readonly", "required", "controlId", "customProps", "description", "errorMessage", "hideErrorMessage"];
10
9
  type OtpFieldLibDefaults = LibDefaultsShape<OtpFieldOwnProps, "size" | "type" | "color" | "length" | "rounded" | "variant">;
11
10
  type OtpFieldMerged = MergeLibDefaults<OtpFieldOwnProps, OtpFieldLibDefaults>;
12
11
  /**
13
- * Composes OTP pin state, field chrome binds, and per-pin input handlers.
12
+ * Composes OTP pin state, field chrome via {@link useBaseField}, and per-pin input handlers.
14
13
  */
15
14
  export declare function useOtpField(props: MaybeRefOrGetter<OtpFieldOwnProps>, model: Ref<null | string | undefined>, options?: UseOtpFieldOptions, libDefaults?: OtpFieldLibDefaults): {
16
- slots: Readonly<{
17
- [name: string]: import('vue').Slot<any> | undefined;
18
- }>;
19
15
  merged: import('vue').ComputedRef<OtpFieldMerged>;
20
16
  digits: import('vue').ComputedRef<string[]>;
21
17
  length: import('vue').ComputedRef<number>;
22
18
  pinBind: (_index: number) => import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>;
23
- rootBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {
24
- onCopy?: ((payload: ClipboardEvent) => void) | undefined;
25
- onCut?: ((payload: ClipboardEvent) => void) | undefined;
26
- onPaste?: ((payload: ClipboardEvent) => void) | undefined;
27
- onCompositionend?: ((payload: CompositionEvent) => void) | undefined;
28
- onCompositionstart?: ((payload: CompositionEvent) => void) | undefined;
29
- onCompositionupdate?: ((payload: CompositionEvent) => void) | undefined;
30
- onDrag?: ((payload: DragEvent) => void) | undefined;
31
- onDragend?: ((payload: DragEvent) => void) | undefined;
32
- onDragenter?: ((payload: DragEvent) => void) | undefined;
33
- onDragexit?: ((payload: DragEvent) => void) | undefined;
34
- onDragleave?: ((payload: DragEvent) => void) | undefined;
35
- onDragover?: ((payload: DragEvent) => void) | undefined;
36
- onDragstart?: ((payload: DragEvent) => void) | undefined;
37
- onDrop?: ((payload: DragEvent) => void) | undefined;
38
- onFocus?: ((payload: FocusEvent) => void) | undefined;
39
- onFocusin?: ((payload: FocusEvent) => void) | undefined;
40
- onFocusout?: ((payload: FocusEvent) => void) | undefined;
41
- onBlur?: ((payload: FocusEvent) => void) | undefined;
42
- onBeforeinput?: ((payload: InputEvent) => void) | undefined;
43
- onFormdata?: ((payload: FormDataEvent) => void) | undefined;
44
- onInput?: ((payload: InputEvent) => void) | undefined;
45
- onReset?: ((payload: Event) => void) | undefined;
46
- onSubmit?: ((payload: SubmitEvent) => void) | undefined;
47
- onInvalid?: ((payload: Event) => void) | undefined;
48
- onFullscreenchange?: ((payload: Event) => void) | undefined;
49
- onFullscreenerror?: ((payload: Event) => void) | undefined;
50
- onLoad?: ((payload: Event) => void) | undefined;
51
- onError?: ((payload: Event) => void) | undefined;
52
- onKeydown?: ((payload: KeyboardEvent) => void) | undefined;
53
- onKeypress?: ((payload: KeyboardEvent) => void) | undefined;
54
- onKeyup?: ((payload: KeyboardEvent) => void) | undefined;
55
- onDblclick?: ((payload: MouseEvent) => void) | undefined;
56
- onMousedown?: ((payload: MouseEvent) => void) | undefined;
57
- onMouseenter?: ((payload: MouseEvent) => void) | undefined;
58
- onMouseleave?: ((payload: MouseEvent) => void) | undefined;
59
- onMousemove?: ((payload: MouseEvent) => void) | undefined;
60
- onMouseout?: ((payload: MouseEvent) => void) | undefined;
61
- onMouseover?: ((payload: MouseEvent) => void) | undefined;
62
- onMouseup?: ((payload: MouseEvent) => void) | undefined;
63
- onAbort?: ((payload: UIEvent) => void) | undefined;
64
- onCanplay?: ((payload: Event) => void) | undefined;
65
- onCanplaythrough?: ((payload: Event) => void) | undefined;
66
- onDurationchange?: ((payload: Event) => void) | undefined;
67
- onEmptied?: ((payload: Event) => void) | undefined;
68
- onEncrypted?: ((payload: MediaEncryptedEvent) => void) | undefined;
69
- onEnded?: ((payload: Event) => void) | undefined;
70
- onLoadeddata?: ((payload: Event) => void) | undefined;
71
- onLoadedmetadata?: ((payload: Event) => void) | undefined;
72
- onLoadstart?: ((payload: Event) => void) | undefined;
73
- onPause?: ((payload: Event) => void) | undefined;
74
- onPlay?: ((payload: Event) => void) | undefined;
75
- onPlaying?: ((payload: Event) => void) | undefined;
76
- onProgress?: ((payload: ProgressEvent<EventTarget>) => void) | undefined;
77
- onRatechange?: ((payload: Event) => void) | undefined;
78
- onSeeked?: ((payload: Event) => void) | undefined;
79
- onSeeking?: ((payload: Event) => void) | undefined;
80
- onStalled?: ((payload: Event) => void) | undefined;
81
- onSuspend?: ((payload: Event) => void) | undefined;
82
- onTimeupdate?: ((payload: Event) => void) | undefined;
83
- onVolumechange?: ((payload: Event) => void) | undefined;
84
- onWaiting?: ((payload: Event) => void) | undefined;
85
- onSelect?: ((payload: Event) => void) | undefined;
86
- onScroll?: ((payload: Event) => void) | undefined;
87
- onScrollend?: ((payload: Event) => void) | undefined;
88
- onTouchcancel?: ((payload: TouchEvent) => void) | undefined;
89
- onTouchend?: ((payload: TouchEvent) => void) | undefined;
90
- onTouchmove?: ((payload: TouchEvent) => void) | undefined;
91
- onTouchstart?: ((payload: TouchEvent) => void) | undefined;
92
- onAuxclick?: ((payload: PointerEvent) => void) | undefined;
93
- onClick?: ((payload: PointerEvent) => void) | undefined;
94
- onContextmenu?: ((payload: PointerEvent) => void) | undefined;
95
- onGotpointercapture?: ((payload: PointerEvent) => void) | undefined;
96
- onLostpointercapture?: ((payload: PointerEvent) => void) | undefined;
97
- onPointerdown?: ((payload: PointerEvent) => void) | undefined;
98
- onPointermove?: ((payload: PointerEvent) => void) | undefined;
99
- onPointerup?: ((payload: PointerEvent) => void) | undefined;
100
- onPointercancel?: ((payload: PointerEvent) => void) | undefined;
101
- onPointerenter?: ((payload: PointerEvent) => void) | undefined;
102
- onPointerleave?: ((payload: PointerEvent) => void) | undefined;
103
- onPointerover?: ((payload: PointerEvent) => void) | undefined;
104
- onPointerout?: ((payload: PointerEvent) => void) | undefined;
105
- onBeforetoggle?: ((payload: ToggleEvent) => void) | undefined;
106
- onToggle?: ((payload: ToggleEvent) => void) | undefined;
107
- onWheel?: ((payload: WheelEvent) => void) | undefined;
108
- onAnimationcancel?: ((payload: AnimationEvent) => void) | undefined;
109
- onAnimationstart?: ((payload: AnimationEvent) => void) | undefined;
110
- onAnimationend?: ((payload: AnimationEvent) => void) | undefined;
111
- onAnimationiteration?: ((payload: AnimationEvent) => void) | undefined;
112
- onSecuritypolicyviolation?: ((payload: SecurityPolicyViolationEvent) => void) | undefined;
113
- onTransitioncancel?: ((payload: TransitionEvent) => void) | undefined;
114
- onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
115
- onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
116
- onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
117
- innerHTML?: string | undefined | undefined;
118
- style?: import('vue').StyleValue;
119
- lang?: string | undefined | undefined;
120
- role?: string | undefined | undefined;
121
- tabindex?: (string | number) | undefined;
122
- 'aria-activedescendant'?: string | undefined | undefined;
123
- 'aria-atomic'?: (boolean | "true" | "false") | undefined;
124
- 'aria-autocomplete'?: "none" | "inline" | "list" | "both" | undefined | undefined;
125
- 'aria-busy'?: (boolean | "true" | "false") | undefined;
126
- 'aria-checked'?: (boolean | "true" | "false") | "mixed" | undefined;
127
- 'aria-colcount'?: (string | number) | undefined;
128
- 'aria-colindex'?: (string | number) | undefined;
129
- 'aria-colspan'?: (string | number) | undefined;
130
- 'aria-controls'?: string | undefined | undefined;
131
- 'aria-current'?: (boolean | "true" | "false") | "page" | "step" | "location" | "date" | "time" | undefined;
132
- 'aria-describedby'?: string | undefined | undefined;
133
- 'aria-details'?: string | undefined | undefined;
134
- 'aria-disabled'?: (boolean | "true" | "false") | undefined;
135
- 'aria-dropeffect'?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined | undefined;
136
- 'aria-errormessage'?: string | undefined | undefined;
137
- 'aria-expanded'?: (boolean | "true" | "false") | undefined;
138
- 'aria-flowto'?: string | undefined | undefined;
139
- 'aria-grabbed'?: (boolean | "true" | "false") | undefined;
140
- 'aria-haspopup'?: (boolean | "true" | "false") | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
141
- 'aria-hidden'?: (boolean | "true" | "false") | undefined;
142
- 'aria-invalid'?: (boolean | "true" | "false") | "grammar" | "spelling" | undefined;
143
- 'aria-keyshortcuts'?: string | undefined | undefined;
144
- 'aria-label'?: string | undefined | undefined;
145
- 'aria-labelledby'?: string | undefined | undefined;
146
- 'aria-level'?: (string | number) | undefined;
147
- 'aria-live'?: "off" | "assertive" | "polite" | undefined | undefined;
148
- 'aria-modal'?: (boolean | "true" | "false") | undefined;
149
- 'aria-multiline'?: (boolean | "true" | "false") | undefined;
150
- 'aria-multiselectable'?: (boolean | "true" | "false") | undefined;
151
- 'aria-orientation'?: "horizontal" | "vertical" | undefined | undefined;
152
- 'aria-owns'?: string | undefined | undefined;
153
- 'aria-placeholder'?: string | undefined | undefined;
154
- 'aria-posinset'?: (string | number) | undefined;
155
- 'aria-pressed'?: (boolean | "true" | "false") | "mixed" | undefined;
156
- 'aria-readonly'?: (boolean | "true" | "false") | undefined;
157
- 'aria-relevant'?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
158
- 'aria-required'?: (boolean | "true" | "false") | undefined;
159
- 'aria-roledescription'?: string | undefined | undefined;
160
- 'aria-rowcount'?: (string | number) | undefined;
161
- 'aria-rowindex'?: (string | number) | undefined;
162
- 'aria-rowspan'?: (string | number) | undefined;
163
- 'aria-selected'?: (boolean | "true" | "false") | undefined;
164
- 'aria-setsize'?: (string | number) | undefined;
165
- 'aria-sort'?: "none" | "ascending" | "descending" | "other" | undefined | undefined;
166
- 'aria-valuemax'?: (string | number) | undefined;
167
- 'aria-valuemin'?: (string | number) | undefined;
168
- 'aria-valuenow'?: (string | number) | undefined;
169
- 'aria-valuetext'?: string | undefined | undefined;
170
- accesskey?: string | undefined | undefined;
171
- contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
172
- contextmenu?: string | undefined | undefined;
173
- dir?: string | undefined | undefined;
174
- draggable?: (boolean | "true" | "false") | undefined;
175
- enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
176
- enterKeyHint?: "done" | "enter" | "go" | "next" | "previous" | "search" | "send" | undefined;
177
- hidden?: "" | "until-found" | "hidden" | (boolean | "true" | "false") | undefined;
178
- inert?: (boolean | "true" | "false") | undefined;
179
- spellcheck?: (boolean | "true" | "false") | undefined;
180
- title?: string | undefined | undefined;
181
- translate?: "yes" | "no" | undefined | undefined;
182
- radiogroup?: string | undefined | undefined;
183
- about?: string | undefined | undefined;
184
- datatype?: string | undefined | undefined;
185
- inlist?: any;
186
- prefix?: string | undefined | undefined;
187
- property?: string | undefined | undefined;
188
- resource?: string | undefined | undefined;
189
- typeof?: string | undefined | undefined;
190
- vocab?: string | undefined | undefined;
191
- autocapitalize?: string | undefined | undefined;
192
- autocorrect?: string | undefined | undefined;
193
- autosave?: string | undefined | undefined;
194
- itemprop?: string | undefined | undefined;
195
- itemscope?: (boolean | "true" | "false") | undefined;
196
- itemtype?: string | undefined | undefined;
197
- itemid?: string | undefined | undefined;
198
- itemref?: string | undefined | undefined;
199
- results?: (string | number) | undefined;
200
- security?: string | undefined | undefined;
201
- unselectable?: "on" | "off" | undefined | undefined;
202
- inputmode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
203
- is?: string | undefined | undefined;
204
- exportparts?: string | undefined;
205
- part?: string | undefined;
206
- modelValue?: null | string | undefined;
207
- class: string;
208
- }>>;
209
- errorBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
210
- groupBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {
211
- role: string;
212
- id: string;
213
- "aria-describedby": string | undefined;
214
- "aria-disabled": true | undefined;
215
- "aria-invalid": true | undefined;
216
- }>>;
19
+ pinsBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", {}, {}>>;
20
+ baseField: {
21
+ slots: Readonly<{
22
+ [name: string]: import('vue').Slot<any> | undefined;
23
+ }>;
24
+ merged: import('vue').ComputedRef<Omit<Omit<import('../../BaseField').BaseFieldOwnProps, "field">, "error" | "size" | "hideErrorMessage"> & {
25
+ error: NonNullable<boolean | undefined>;
26
+ size: NonNullable<keyof import('@bridge-ui/core').BaseFieldSize | undefined>;
27
+ hideErrorMessage: NonNullable<boolean | undefined>;
28
+ }>;
29
+ rootBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {
30
+ slots?: import('../../BaseField').BaseFieldSlots | undefined;
31
+ class: string;
32
+ }>>;
33
+ errorBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
34
+ groupBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {
35
+ role: string;
36
+ id: string;
37
+ "aria-describedby": string | undefined;
38
+ "aria-disabled": true | undefined;
39
+ "aria-invalid": true | undefined;
40
+ }>>;
41
+ controlId: import('vue').ComputedRef<string>;
42
+ headerBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
43
+ cornerBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
44
+ isDisabled: import('vue').ComputedRef<boolean>;
45
+ isReadonly: import('vue').ComputedRef<boolean>;
46
+ sizeClasses: import('vue').ComputedRef<import('@bridge-ui/core').BaseFieldSizeItem | undefined>;
47
+ endSlotBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
48
+ invalidated: import('vue').ComputedRef<boolean>;
49
+ startSlotBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
50
+ mergedClasses: import('vue').ComputedRef<Partial<import('../../BaseField').BaseFieldClasses>>;
51
+ ariaDescribedBy: import('vue').ComputedRef<string | undefined>;
52
+ fieldLabelProps: import('vue').ComputedRef<import('../../Label').LabelProps>;
53
+ descriptionBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
54
+ showErrorMessageContent: import('vue').ComputedRef<boolean>;
55
+ };
217
56
  inputBind: (index: number) => import('@bridge-ui/core').MergePartBind<object, "class", {
218
57
  inputmode: "text" | "numeric";
219
58
  maxlength: number;
@@ -438,23 +277,11 @@ export declare function useOtpField(props: MaybeRefOrGetter<OtpFieldOwnProps>, m
438
277
  onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
439
278
  }, {}>;
440
279
  setPinRef: (index: number, element: null | HTMLInputElement) => void;
441
- controlId: import('vue').ComputedRef<string>;
442
280
  inputType: import('vue').ComputedRef<OtpInputType>;
443
- headerBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
444
- cornerBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
445
- isDisabled: import('vue').ComputedRef<boolean>;
446
- isReadonly: import('vue').ComputedRef<boolean>;
447
- endSlotBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
448
- invalidated: import('vue').ComputedRef<boolean>;
449
- startSlotBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
450
- mergedClasses: import('vue').ComputedRef<Partial<OtpFieldClasses>>;
451
281
  handlePinInput: (index: number, event: Event) => void;
452
282
  handlePinFocus: (index: number) => void;
453
283
  handlePinPaste: (index: number, event: ClipboardEvent) => void;
454
- fieldLabelProps: import('vue').ComputedRef<LabelProps>;
455
- descriptionBind: import('vue').ComputedRef<import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>>;
456
284
  handlePinKeyDown: (index: number, event: KeyboardEvent) => void;
457
- showErrorMessageContent: import('vue').ComputedRef<boolean>;
458
285
  };
459
286
  export type UseOtpFieldReturn = ReturnType<typeof useOtpField>;
460
287
  export {};
@@ -1,35 +1,31 @@
1
- import { hasSlotOrProp as e } from "../../../Utils/slotOrProp.js";
2
- import { mergeNestedComponentProps as t, mergePartBind as n, useBridgeUIComponent as r, useBridgeUIMergedRegistryClasses as i } from "../../../Utils/index.js";
3
- import { computed as a, nextTick as o, onMounted as s, ref as c, toValue as l, useAttrs as u, useId as ee, useSlots as te } from "vue";
4
- import { applyOtpInput as ne, applyOtpKeyNavigation as d, applyOtpPaste as f, cn as p, isOtpComplete as m, joinOtpDigits as h, mergeBridgeUILayeredClasses as g, normalizeOtpValue as _, resolveOtpLength as v, splitComponentProps as y, splitOtpValue as b } from "@bridge-ui/core";
5
- import { get as x, isUndefined as S, omit as C } from "es-toolkit/compat";
6
- import { colorProps as w, invalidatedProps as T, roundedProps as re, sizeProps as ie, variantProps as ae } from "@bridge-ui/core/Tokens/OtpField";
1
+ import { mergePartBind as e, useBridgeUIComponent as t, useBridgeUIMergedRegistryClasses as n } from "../../../Utils/index.js";
2
+ import { baseFieldBridgeKeys as r, useBaseField as i } from "../../BaseField/composables/useBaseField.js";
3
+ import { computed as a, nextTick as o, onMounted as s, ref as c, toValue as l, useAttrs as ee } from "vue";
4
+ import { applyOtpInput as u, applyOtpKeyNavigation as d, applyOtpPaste as f, cn as p, isOtpComplete as m, joinOtpDigits as h, mergeBridgeUILayeredClasses as g, normalizeOtpValue as _, resolveOtpLength as te, splitComponentProps as ne, splitOtpValue as re } from "@bridge-ui/core";
5
+ import { get as v, isUndefined as y, omit as ie, pick as ae } from "es-toolkit/compat";
6
+ import { colorProps as b, invalidatedProps as x, roundedProps as S, sizeProps as C, variantProps as w } from "@bridge-ui/core/Tokens/OtpField";
7
7
  //#region src/Components/OtpField/composables/useOtpField.ts
8
8
  var oe = [
9
9
  "mask",
10
- "size",
11
10
  "type",
12
11
  "color",
13
- "error",
14
- "label",
15
- "corner",
16
12
  "length",
17
- "classes",
18
13
  "rounded",
19
14
  "variant",
20
- "disabled",
21
- "readonly",
22
- "required",
23
15
  "autoFocus",
24
- "controlId",
25
- "customProps",
26
- "description",
27
16
  "placeholder",
28
17
  "defaultValue",
29
- "errorMessage",
30
- "hideErrorMessage"
18
+ ...r
31
19
  ];
32
- function E(E, D, O = {}, se = {
20
+ function se(e) {
21
+ if (!e) return;
22
+ let { pin: t, invalidated: n, input: r, ...i } = e;
23
+ return {
24
+ ...i,
25
+ ...n?.errorMessage ? { invalidated: { errorMessage: n.errorMessage } } : {}
26
+ };
27
+ }
28
+ function T(T, E, D = {}, ce = {
33
29
  length: 6,
34
30
  size: "md",
35
31
  rounded: "md",
@@ -37,176 +33,122 @@ function E(E, D, O = {}, se = {
37
33
  color: "primary",
38
34
  variant: "outline"
39
35
  }) {
40
- let ce = u(), k = te(), A = ee(), j = c([]), M = a(() => y({
36
+ let O = ee(), k = c([]), A = a(() => ne({
41
37
  bridgeKeys: oe,
42
38
  props: {
43
- ...ce,
44
- ...l(E)
39
+ ...O,
40
+ ...l(T)
45
41
  }
46
- })), { merged: N, entry: P } = r({
47
- libDefaults: se,
42
+ })), { merged: j, entry: M } = t({
43
+ libDefaults: ce,
44
+ componentName: "OtpField",
45
+ props: () => A.value.componentProps
46
+ }), N = n({
47
+ entry: M,
48
+ props: () => A.value.componentProps
49
+ }), P = a(() => j.value.customProps), F = a(() => se(j.value.customProps)), I = a(() => ({
50
+ ...ae(A.value.componentProps, r),
51
+ customProps: F.value,
52
+ id: A.value.inheritedAttrs.id,
53
+ class: A.value.inheritedAttrs.class,
54
+ ...ie(A.value.inheritedAttrs, ["class", "id"])
55
+ })), L = i(() => I.value, {
56
+ size: "md",
57
+ hideErrorMessage: !1
58
+ }, {
48
59
  componentName: "OtpField",
49
- props: () => M.value.componentProps
50
- }), F = i({
51
- entry: P,
52
- props: () => M.value.componentProps
53
- }), I = a(() => N.value.customProps), L = a(() => v(N.value.length)), R = a(() => N.value.type ?? "numeric"), z = a(() => N.value.error === !0), B = a(() => !!N.value.disabled), V = a(() => !!N.value.readonly), H = a(() => N.value.variant ?? "outline"), U = a(() => H.value === "underlined"), W = a(() => N.value.controlId ?? M.value.inheritedAttrs.id ?? A), G = a(() => !S(D.value)), K = c(_(l(E).defaultValue, L.value, R.value)), le = a(() => G.value ? _(D.value, L.value, R.value) : K.value), q = a(() => b(le.value, L.value));
60
+ labelHtmlFor: (e) => `${e}-0`
61
+ }), { controlId: R, isDisabled: z, isReadonly: B, invalidated: V, ariaDescribedBy: H } = L, U = a(() => te(j.value.length)), W = a(() => j.value.type ?? "numeric"), G = a(() => j.value.variant ?? "outline"), K = a(() => G.value === "underlined"), q = a(() => !y(E.value)), J = c(_(l(T).defaultValue, U.value, W.value)), le = a(() => q.value ? _(E.value, U.value, W.value) : J.value), Y = a(() => re(le.value, U.value));
54
62
  s(() => {
55
- if (!N.value.autoFocus || B.value || V.value) return;
56
- let e = q.value.findIndex((e) => e === ""), t = e === -1 ? 0 : e;
57
- j.value[t]?.focus();
63
+ if (!j.value.autoFocus || z.value || B.value) return;
64
+ let e = Y.value.findIndex((e) => e === ""), t = e === -1 ? 0 : e;
65
+ k.value[t]?.focus();
58
66
  });
59
- let J = (e, t) => {
67
+ let X = (e, t) => {
60
68
  let n = h(e);
61
- G.value || (K.value = n), D.value = n, O.onChange?.(n), m(n, L.value) && O.onComplete?.(n), t != null && o(() => {
62
- j.value[t]?.focus(), j.value[t]?.select();
69
+ q.value || (J.value = n), E.value = n, D.onChange?.(n), m(n, U.value) && D.onComplete?.(n), t != null && o(() => {
70
+ k.value[t]?.focus(), k.value[t]?.select();
63
71
  });
64
- }, Y = a(() => x(g(ie, P.value?.tokens?.size), N.value.size ?? "md")), X = a(() => x(g(w, P.value?.tokens?.color), N.value.color ?? "primary")), ue = a(() => g(T, P.value?.tokens?.invalidated, N.value.customProps?.invalidated)), Z = a(() => z.value ? ue.value : void 0), de = a(() => x(g(re, P.value?.tokens?.rounded), N.value.rounded ?? "md")), fe = a(() => x(g(ae, P.value?.tokens?.variant), H.value)), pe = a(() => !N.value.hideErrorMessage), me = a(() => z.value && e(k, "errorMessage", N.value.errorMessage)), Q = a(() => {
65
- let t = [];
66
- return !z.value && e(k, "description", N.value.description) && t.push(`${W.value}-description`), z.value && !N.value.hideErrorMessage && e(k, "errorMessage", N.value.errorMessage) && t.push(`${W.value}-error`), t.length > 0 ? t.join(" ") : void 0;
67
- }), he = a(() => n(I.value?.root, {
68
- class: p(M.value.inheritedAttrs.class),
69
- ...C(M.value.inheritedAttrs, ["class", "id"])
70
- }, p({
71
- "group w-full relative": !0,
72
- "aria-disabled:pointer-events-none aria-disabled:select-none aria-disabled:opacity-60": !0,
73
- "aria-readonly:pointer-events-none aria-readonly:select-none": !0,
74
- [F.value.root ?? ""]: !0
75
- }))), ge = a(() => n(I.value?.header, {}, p({
76
- "flex w-full gap-x-2 mb-1.5": !0,
77
- "justify-between items-end": e(k, "label", N.value.label),
78
- "justify-end": !e(k, "label", N.value.label),
79
- [F.value.header ?? ""]: !0
80
- }))), $ = a(() => n(I.value?.corner, {}, p({
81
- "text-gray-500 dark:text-gray-400": !0,
82
- [Y.value?.text ?? ""]: !0,
83
- [F.value.corner ?? ""]: !0
84
- }))), _e = a(() => n(I.value?.group, {
85
- role: "group",
86
- id: W.value,
87
- "aria-describedby": Q.value,
88
- "aria-disabled": B.value || void 0,
89
- "aria-invalid": z.value || void 0
90
- }, p({
91
- "flex flex-wrap items-center": !0,
92
- [Y.value?.group ?? ""]: !0,
93
- [F.value.group ?? ""]: !0
94
- }))), ve = a(() => n(I.value?.start, {}, p({
95
- "group/start wrapper-start-slot shrink-0 flex items-center [&>*]:min-h-0": !0,
96
- [F.value.start ?? ""]: !0
97
- }))), ye = a(() => n(I.value?.end, {}, p({
98
- "group/end wrapper-end-slot shrink-0 flex items-center [&>*]:min-h-0": !0,
99
- [F.value.end ?? ""]: !0
100
- }))), be = a(() => n(I.value?.description, {}, p({
101
- "mt-2 text-gray-500 dark:text-gray-400": !0,
102
- [Y.value?.text ?? ""]: !0,
103
- [F.value.description ?? ""]: !0
104
- })));
72
+ }, Z = a(() => v(g(C, M.value?.tokens?.size), j.value.size ?? "md")), Q = a(() => v(g(b, M.value?.tokens?.color), j.value.color ?? "primary")), ue = a(() => g(x, M.value?.tokens?.invalidated, j.value.customProps?.invalidated)), $ = a(() => V.value ? ue.value : void 0), de = a(() => v(g(S, M.value?.tokens?.rounded), j.value.rounded ?? "md")), fe = a(() => v(g(w, M.value?.tokens?.variant), G.value));
105
73
  return {
106
- slots: k,
107
- merged: N,
108
- digits: q,
109
- length: L,
110
- pinBind: (e) => n(I.value?.pin, {}, p({
74
+ merged: j,
75
+ digits: Y,
76
+ length: U,
77
+ pinBind: (t) => e(P.value?.pin, {}, p({
111
78
  "relative flex shrink-0 items-center justify-center overflow-hidden": !0,
112
- [Y.value?.pin ?? ""]: !0,
79
+ [Z.value?.pin ?? ""]: !0,
113
80
  [fe.value?.pin ?? ""]: !0,
114
- [de.value?.pin ?? ""]: !U.value,
115
- [X.value?.pin ?? ""]: !z.value && !U.value,
116
- [X.value?.underlined ?? ""]: !z.value && U.value,
117
- [Z.value?.pin ?? ""]: z.value && !U.value,
118
- [Z.value?.pinUnderlined ?? ""]: z.value && U.value,
119
- [F.value.pin ?? ""]: !0
81
+ [de.value?.pin ?? ""]: !K.value,
82
+ [Q.value?.pin ?? ""]: !V.value && !K.value,
83
+ [Q.value?.underlined ?? ""]: !V.value && K.value,
84
+ [$.value?.pin ?? ""]: V.value && !K.value,
85
+ [$.value?.pinUnderlined ?? ""]: V.value && K.value,
86
+ [N.value.pin ?? ""]: !0
120
87
  })),
121
- rootBind: he,
122
- errorBind: a(() => n(I.value?.errorMessage, {}, p({
123
- "mt-2": !0,
124
- "min-h-[1lh]": pe.value,
125
- [Z.value?.errorMessage ?? ""]: !0,
126
- [Y.value?.text ?? ""]: !0,
127
- [F.value.errorMessage ?? ""]: !0
88
+ pinsBind: a(() => e({}, {}, p({
89
+ "flex flex-wrap items-center": !0,
90
+ [L.sizeClasses.value?.group ?? ""]: !0
128
91
  }))),
129
- groupBind: _e,
130
- inputBind: (e) => {
131
- let t = R.value === "numeric" ? "numeric" : "text";
132
- return n({
133
- ...I.value?.input,
134
- inputmode: t,
135
- maxlength: L.value,
136
- disabled: B.value,
137
- readOnly: V.value,
138
- value: q.value[e] ?? "",
139
- id: `${W.value}-${e}`,
140
- placeholder: N.value.placeholder,
141
- "aria-describedby": Q.value,
142
- type: N.value.mask ? "password" : "text",
143
- "aria-invalid": z.value || void 0,
144
- autocomplete: e === 0 ? "one-time-code" : "off",
145
- "aria-label": `Digit ${e + 1} of ${L.value}`
92
+ baseField: L,
93
+ inputBind: (t) => {
94
+ let n = W.value === "numeric" ? "numeric" : "text";
95
+ return e({
96
+ ...P.value?.input,
97
+ inputmode: n,
98
+ maxlength: U.value,
99
+ disabled: z.value,
100
+ readOnly: B.value,
101
+ value: Y.value[t] ?? "",
102
+ id: `${R.value}-${t}`,
103
+ placeholder: j.value.placeholder,
104
+ "aria-describedby": H.value,
105
+ type: j.value.mask ? "password" : "text",
106
+ "aria-invalid": V.value || void 0,
107
+ autocomplete: t === 0 ? "one-time-code" : "off",
108
+ "aria-label": `Digit ${t + 1} of ${U.value}`
146
109
  }, {}, p({
147
110
  "h-full w-full min-w-0 bg-transparent border-0 shadow-none text-center": !0,
148
111
  "text-gray-900 dark:text-gray-100 placeholder:text-gray-400": !0,
149
112
  "outline-none ring-0 focus:outline-none focus:ring-0": !0,
150
113
  "disabled:cursor-not-allowed": !0,
151
- [Y.value?.input ?? ""]: !0,
152
- [F.value.input ?? ""]: !0
114
+ [Z.value?.input ?? ""]: !0,
115
+ [N.value.input ?? ""]: !0
153
116
  }));
154
117
  },
155
118
  setPinRef: (e, t) => {
156
- j.value[e] = t;
119
+ k.value[e] = t;
157
120
  },
158
- controlId: W,
159
- inputType: R,
160
- headerBind: ge,
161
- cornerBind: $,
162
- isDisabled: B,
163
- isReadonly: V,
164
- endSlotBind: ye,
165
- invalidated: z,
166
- startSlotBind: ve,
167
- mergedClasses: F,
121
+ inputType: W,
168
122
  handlePinInput: (e, t) => {
169
- let n = t.target.value, r = ne({
123
+ let n = t.target.value, r = u({
170
124
  index: e,
171
125
  input: n,
172
- digits: q.value,
173
- type: R.value
126
+ digits: Y.value,
127
+ type: W.value
174
128
  });
175
- J(r.digits, r.focusIndex);
129
+ X(r.digits, r.focusIndex);
176
130
  },
177
131
  handlePinFocus: (e) => {
178
- j.value[e]?.select();
132
+ k.value[e]?.select();
179
133
  },
180
134
  handlePinPaste: (e, t) => {
181
135
  let n = f({
182
136
  index: e,
183
137
  pasted: t.clipboardData?.getData("text") ?? "",
184
- digits: q.value,
185
- type: R.value
138
+ digits: Y.value,
139
+ type: W.value
186
140
  });
187
- n.focusIndex == null && n.digits.every((e, t) => e === q.value[t]) || (t.preventDefault(), J(n.digits, n.focusIndex));
141
+ n.focusIndex == null && n.digits.every((e, t) => e === Y.value[t]) || (t.preventDefault(), X(n.digits, n.focusIndex));
188
142
  },
189
- fieldLabelProps: a(() => t(I.value?.label, {
190
- size: N.value.size,
191
- error: z.value,
192
- for: `${W.value}-0`,
193
- required: N.value.required,
194
- classes: {
195
- required: F.value.required,
196
- root: p({ [F.value.label ?? ""]: !0 })
197
- }
198
- })),
199
- descriptionBind: be,
200
143
  handlePinKeyDown: (e, t) => {
201
144
  let n = d({
202
145
  index: e,
203
146
  key: t.key,
204
- digits: q.value
147
+ digits: Y.value
205
148
  });
206
- n && (t.preventDefault(), J(n.digits, n.focusIndex));
207
- },
208
- showErrorMessageContent: me
149
+ n && (t.preventDefault(), X(n.digits, n.focusIndex));
150
+ }
209
151
  };
210
152
  }
211
153
  //#endregion
212
- export { E as useOtpField };
154
+ export { T as useOtpField };