@bridge-ui/vue 0.0.6 → 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 (204) 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/Actions/Snackbar/BridgeSnackbarAction.vue_vue_type_script_setup_true_lang.js +8 -8
  12. package/dist/Actions/Snackbar/BridgeSnackbarHost.vue_vue_type_script_setup_true_lang.js +5 -5
  13. package/dist/Actions/Snackbar/createBridgeSnackbarApi.js +17 -17
  14. package/dist/Adapters/I18n/index.d.ts +1 -1
  15. package/dist/Adapters/I18n/index.js +2 -2
  16. package/dist/Adapters/I18n/useI18nAdapter.d.ts +7 -3
  17. package/dist/Adapters/I18n/useI18nAdapter.js +12 -7
  18. package/dist/Adapters/Icon/useIconAdapter.d.ts +1 -1
  19. package/dist/Adapters/index.d.ts +1 -1
  20. package/dist/Adapters/index.js +3 -3
  21. package/dist/Components/Alert/composables/useAlert.js +17 -17
  22. package/dist/Components/Autocomplete/Autocomplete.js +5 -0
  23. package/dist/Components/Autocomplete/Autocomplete.vue.d.ts +40 -0
  24. package/dist/Components/Autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js +197 -0
  25. package/dist/Components/Autocomplete/AutocompleteOption.js +5 -0
  26. package/dist/Components/Autocomplete/AutocompleteOption.vue.d.ts +4 -0
  27. package/dist/Components/Autocomplete/AutocompleteOption.vue_vue_type_script_setup_true_lang.js +32 -0
  28. package/dist/Components/Autocomplete/autocomplete.types.d.ts +285 -0
  29. package/dist/Components/Autocomplete/autocompleteInjectionKey.d.ts +7 -0
  30. package/dist/Components/Autocomplete/autocompleteInjectionKey.js +4 -0
  31. package/dist/Components/Autocomplete/composables/useAutocomplete.d.ts +763 -0
  32. package/dist/Components/Autocomplete/composables/useAutocomplete.js +386 -0
  33. package/dist/Components/Autocomplete/index.d.ts +4 -0
  34. package/dist/Components/Autocomplete/index.js +4 -0
  35. package/dist/Components/Avatar/composables/useAvatar.d.ts +1 -1
  36. package/dist/Components/Avatar/composables/useAvatar.js +13 -13
  37. package/dist/Components/Badge/composables/useBadge.js +8 -8
  38. package/dist/Components/BaseField/BaseField.js +5 -0
  39. package/dist/Components/BaseField/BaseField.vue.d.ts +15 -0
  40. package/dist/Components/BaseField/BaseField.vue_vue_type_script_setup_true_lang.js +41 -0
  41. package/dist/Components/BaseField/BaseFieldLabel.js +5 -0
  42. package/dist/Components/BaseField/BaseFieldLabel.vue.d.ts +7 -0
  43. package/dist/Components/BaseField/BaseFieldLabel.vue_vue_type_script_setup_true_lang.js +16 -0
  44. package/dist/Components/BaseField/baseField.types.d.ts +222 -0
  45. package/dist/Components/BaseField/composables/useBaseField.d.ts +55 -0
  46. package/dist/Components/BaseField/composables/useBaseField.js +131 -0
  47. package/dist/Components/BaseField/index.d.ts +4 -0
  48. package/dist/Components/BaseField/index.js +3 -0
  49. package/dist/Components/Button/composables/useButton.d.ts +1 -1
  50. package/dist/Components/Button/composables/useButton.js +14 -14
  51. package/dist/Components/Card/composables/useCard.js +27 -27
  52. package/dist/Components/Checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +2 -2
  53. package/dist/Components/Checkbox/composables/useCheckbox.d.ts +3 -3
  54. package/dist/Components/Checkbox/composables/useCheckbox.js +9 -9
  55. package/dist/Components/Chip/Chip.vue.d.ts +1 -1
  56. package/dist/Components/Chip/composables/useChip.d.ts +1 -1
  57. package/dist/Components/Chip/composables/useChip.js +6 -6
  58. package/dist/Components/Divider/composables/useDivider.js +5 -5
  59. package/dist/Components/Drawer/Drawer.vue.d.ts +2 -2
  60. package/dist/Components/Drawer/composables/useDrawer.d.ts +1 -1
  61. package/dist/Components/Drawer/composables/useDrawer.js +23 -23
  62. package/dist/Components/FormControl/FormControl.vue_vue_type_script_setup_true_lang.js +1 -1
  63. package/dist/Components/FormControl/composables/useFormControl.d.ts +13 -4
  64. package/dist/Components/FormControl/composables/useFormControl.js +63 -59
  65. package/dist/Components/FormControl/formControl.types.d.ts +6 -6
  66. package/dist/Components/FormControl/index.d.ts +1 -1
  67. package/dist/Components/FormField/FilledFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  68. package/dist/Components/FormField/NotchedFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  69. package/dist/Components/FormField/OutlinedFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  70. package/dist/Components/FormField/StackedFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  71. package/dist/Components/FormField/UnderlinedFormField.vue_vue_type_script_setup_true_lang.js +2 -2
  72. package/dist/Components/FormField/composables/useFormField.d.ts +7 -3
  73. package/dist/Components/FormField/composables/useFormField.js +29 -29
  74. package/dist/Components/FormField/formField.types.d.ts +14 -14
  75. package/dist/Components/Icon/composables/useIcon.js +5 -5
  76. package/dist/Components/Label/composables/useLabel.js +5 -5
  77. package/dist/Components/Link/composables/useLink.js +9 -9
  78. package/dist/Components/List/composables/useList.js +6 -6
  79. package/dist/Components/ListItem/ListItem.vue.d.ts +1 -1
  80. package/dist/Components/ListItem/composables/useListItem.d.ts +1 -1
  81. package/dist/Components/ListItem/composables/useListItem.js +20 -20
  82. package/dist/Components/ListSection/composables/useListSection.js +8 -8
  83. package/dist/Components/Listbox/Listbox.vue.d.ts +3 -3
  84. package/dist/Components/Listbox/Listbox.vue_vue_type_script_setup_true_lang.js +29 -28
  85. package/dist/Components/Listbox/composables/useListbox.d.ts +10 -1
  86. package/dist/Components/Listbox/composables/useListbox.js +23 -23
  87. package/dist/Components/Listbox/index.d.ts +1 -0
  88. package/dist/Components/Listbox/index.js +3 -3
  89. package/dist/Components/Listbox/listbox.types.d.ts +6 -0
  90. package/dist/Components/Menu/Menu.vue.d.ts +2 -2
  91. package/dist/Components/Menu/composables/useMenu.js +43 -43
  92. package/dist/Components/Modal/Modal.vue.d.ts +2 -2
  93. package/dist/Components/Modal/composables/useModal.d.ts +1 -1
  94. package/dist/Components/Modal/composables/useModal.js +18 -18
  95. package/dist/Components/NumberField/NumberField.vue.d.ts +2 -2
  96. package/dist/Components/NumberField/NumberField.vue_vue_type_script_setup_true_lang.js +34 -34
  97. package/dist/Components/NumberField/composables/useNumberField.d.ts +4 -4
  98. package/dist/Components/NumberField/composables/useNumberField.js +13 -10
  99. package/dist/Components/OtpField/OtpField.js +5 -0
  100. package/dist/Components/OtpField/OtpField.vue.d.ts +31 -0
  101. package/dist/Components/OtpField/OtpField.vue_vue_type_script_setup_true_lang.js +62 -0
  102. package/dist/Components/OtpField/composables/useOtpField.d.ts +287 -0
  103. package/dist/Components/OtpField/composables/useOtpField.js +154 -0
  104. package/dist/Components/OtpField/index.d.ts +4 -0
  105. package/dist/Components/OtpField/index.js +3 -0
  106. package/dist/Components/OtpField/otpField.types.d.ts +120 -0
  107. package/dist/Components/PasswordField/PasswordField.vue_vue_type_script_setup_true_lang.js +23 -23
  108. package/dist/Components/PasswordField/composables/usePasswordField.d.ts +4 -4
  109. package/dist/Components/PasswordField/composables/usePasswordField.js +6 -3
  110. package/dist/Components/Progress/composables/useProgress.js +11 -11
  111. package/dist/Components/Radio/Radio.vue_vue_type_script_setup_true_lang.js +2 -2
  112. package/dist/Components/Radio/composables/useRadio.d.ts +3 -3
  113. package/dist/Components/Radio/composables/useRadio.js +9 -9
  114. package/dist/Components/Select/Select.vue.d.ts +5 -5
  115. package/dist/Components/Select/Select.vue_vue_type_script_setup_true_lang.js +16 -13
  116. package/dist/Components/Select/composables/useSelect.d.ts +5 -4
  117. package/dist/Components/Select/composables/useSelect.js +167 -163
  118. package/dist/Components/Skeleton/composables/useSkeleton.js +5 -5
  119. package/dist/Components/Slider/Slider.js +5 -0
  120. package/dist/Components/Slider/Slider.vue.d.ts +25 -0
  121. package/dist/Components/Slider/Slider.vue_vue_type_script_setup_true_lang.js +113 -0
  122. package/dist/Components/Slider/composables/useSlider.d.ts +482 -0
  123. package/dist/Components/Slider/composables/useSlider.js +287 -0
  124. package/dist/Components/Slider/index.d.ts +4 -0
  125. package/dist/Components/Slider/index.js +3 -0
  126. package/dist/Components/Slider/slider.types.d.ts +169 -0
  127. package/dist/Components/Snackbar/Snackbar.vue.d.ts +2 -2
  128. package/dist/Components/Snackbar/Snackbar.vue_vue_type_script_setup_true_lang.js +54 -54
  129. package/dist/Components/Snackbar/composables/useSnackbar.js +115 -115
  130. package/dist/Components/Spinner/composables/useSpinner.js +11 -11
  131. package/dist/Components/Switch/Switch.vue_vue_type_script_setup_true_lang.js +2 -2
  132. package/dist/Components/Switch/composables/useSwitch.d.ts +3 -3
  133. package/dist/Components/Switch/composables/useSwitch.js +9 -9
  134. package/dist/Components/Tab/composables/useTab.js +11 -11
  135. package/dist/Components/TabList/composables/useTabList.js +7 -7
  136. package/dist/Components/TabPanel/composables/useTabPanel.js +7 -7
  137. package/dist/Components/Tabs/Tabs.vue.d.ts +2 -2
  138. package/dist/Components/Tabs/composables/useTabs.js +22 -22
  139. package/dist/Components/TextField/TextField.vue.d.ts +1 -1
  140. package/dist/Components/TextField/TextField.vue_vue_type_script_setup_true_lang.js +6 -6
  141. package/dist/Components/TextField/composables/useTextField.d.ts +4 -4
  142. package/dist/Components/TextField/composables/useTextField.js +2 -2
  143. package/dist/Components/Textarea/Textarea.vue.d.ts +1 -1
  144. package/dist/Components/Textarea/Textarea.vue_vue_type_script_setup_true_lang.js +6 -6
  145. package/dist/Components/Textarea/composables/useTextarea.d.ts +4 -4
  146. package/dist/Components/Textarea/composables/useTextarea.js +10 -9
  147. package/dist/Components/Tooltip/composables/useTooltip.js +17 -17
  148. package/dist/Provider/bridgeUITypes.d.ts +4 -1
  149. package/dist/Provider/createBridgeUIApi.js +13 -1
  150. package/dist/Utils/index.d.ts +3 -3
  151. package/dist/Utils/index.js +11 -8
  152. package/dist/Utils/useBreakpoint.js +7 -7
  153. package/dist/augments.d.ts +29 -17
  154. package/dist/index.d.ts +11 -3
  155. package/dist/index.js +88 -80
  156. package/docs/README.md +56 -0
  157. package/docs/components/Alert.md +96 -0
  158. package/docs/components/Autocomplete.md +198 -0
  159. package/docs/components/Avatar.md +60 -0
  160. package/docs/components/Badge.md +47 -0
  161. package/docs/components/BaseField.md +126 -0
  162. package/docs/components/BridgeUIProvider.md +151 -0
  163. package/docs/components/Button.md +93 -0
  164. package/docs/components/Card.md +287 -0
  165. package/docs/components/Checkbox.md +87 -0
  166. package/docs/components/Divider.md +56 -0
  167. package/docs/components/Drawer.md +137 -0
  168. package/docs/components/FormControl.md +66 -0
  169. package/docs/components/FormField.md +71 -0
  170. package/docs/components/I18n.md +125 -0
  171. package/docs/components/Icon.md +88 -0
  172. package/docs/components/Label.md +31 -0
  173. package/docs/components/Link.md +71 -0
  174. package/docs/components/List.md +167 -0
  175. package/docs/components/Menu.md +97 -0
  176. package/docs/components/Modal.md +154 -0
  177. package/docs/components/NumberField.md +80 -0
  178. package/docs/components/OtpField.md +133 -0
  179. package/docs/components/PasswordField.md +82 -0
  180. package/docs/components/Progress.md +68 -0
  181. package/docs/components/Radio.md +91 -0
  182. package/docs/components/Select.md +181 -0
  183. package/docs/components/Skeleton.md +38 -0
  184. package/docs/components/Slider.md +140 -0
  185. package/docs/components/Snackbar.md +99 -0
  186. package/docs/components/Spinner.md +61 -0
  187. package/docs/components/Switch.md +72 -0
  188. package/docs/components/Tabs.md +207 -0
  189. package/docs/components/TextField.md +72 -0
  190. package/docs/components/Textarea.md +80 -0
  191. package/docs/components/Tooltip.md +125 -0
  192. package/docs/components/useBreakpoint.md +100 -0
  193. package/docs/components/useDialogAction.md +97 -0
  194. package/docs/components/useDrawerAction.md +75 -0
  195. package/docs/components/useModalAction.md +75 -0
  196. package/docs/components/useSnackbarAction.md +85 -0
  197. package/docs/examples/i18n-dictionary.ts +48 -0
  198. package/docs/examples/i18n-vue-i18n.ts +34 -0
  199. package/docs/examples/icon-fontawesome.ts +112 -0
  200. package/docs/examples/icon-heroicons.ts +57 -0
  201. package/docs/examples/icon-lucide.ts +57 -0
  202. package/docs/examples/icon-phosphor.ts +57 -0
  203. package/docs/examples/icon-tabler.ts +57 -0
  204. package/package.json +13 -5
@@ -0,0 +1,287 @@
1
+ import { MaybeRefOrGetter, Ref } from 'vue';
2
+ import { LibDefaultsShape, MergeLibDefaults, OtpInputType } from '@bridge-ui/core';
3
+ import { OtpFieldOwnProps } from '../otpField.types';
4
+ export type UseOtpFieldOptions = {
5
+ onChange?: (value: string) => void;
6
+ onComplete?: (value: string) => void;
7
+ };
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"];
9
+ type OtpFieldLibDefaults = LibDefaultsShape<OtpFieldOwnProps, "size" | "type" | "color" | "length" | "rounded" | "variant">;
10
+ type OtpFieldMerged = MergeLibDefaults<OtpFieldOwnProps, OtpFieldLibDefaults>;
11
+ /**
12
+ * Composes OTP pin state, field chrome via {@link useBaseField}, and per-pin input handlers.
13
+ */
14
+ export declare function useOtpField(props: MaybeRefOrGetter<OtpFieldOwnProps>, model: Ref<null | string | undefined>, options?: UseOtpFieldOptions, libDefaults?: OtpFieldLibDefaults): {
15
+ merged: import('vue').ComputedRef<OtpFieldMerged>;
16
+ digits: import('vue').ComputedRef<string[]>;
17
+ length: import('vue').ComputedRef<number>;
18
+ pinBind: (_index: number) => import('@bridge-ui/core').MergePartBind<object, "class", import('vue').HTMLAttributes | undefined, {}>;
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
+ };
56
+ inputBind: (index: number) => import('@bridge-ui/core').MergePartBind<object, "class", {
57
+ inputmode: "text" | "numeric";
58
+ maxlength: number;
59
+ disabled: boolean;
60
+ readOnly: boolean;
61
+ value: string;
62
+ id: string;
63
+ placeholder: string | undefined;
64
+ "aria-describedby": string | undefined;
65
+ type: string;
66
+ "aria-invalid": true | undefined;
67
+ autocomplete: string;
68
+ "aria-label": string;
69
+ accept?: string | undefined;
70
+ alt?: string | undefined;
71
+ autofocus?: (boolean | "true" | "false") | undefined;
72
+ capture?: boolean | "user" | "environment" | undefined;
73
+ checked?: (boolean | "true" | "false") | any[] | Set<any> | undefined;
74
+ crossorigin?: string | undefined;
75
+ form?: string | undefined;
76
+ formaction?: string | undefined;
77
+ formenctype?: string | undefined;
78
+ formmethod?: string | undefined;
79
+ formnovalidate?: (boolean | "true" | "false") | undefined;
80
+ formtarget?: string | undefined;
81
+ height?: (string | number) | undefined;
82
+ indeterminate?: boolean | undefined;
83
+ list?: string | undefined;
84
+ max?: (string | number) | undefined;
85
+ min?: (string | number) | undefined;
86
+ minlength?: (string | number) | undefined;
87
+ multiple?: (boolean | "true" | "false") | undefined;
88
+ name?: string | undefined;
89
+ pattern?: string | undefined;
90
+ readonly?: (boolean | "true" | "false") | undefined;
91
+ required?: (boolean | "true" | "false") | undefined;
92
+ size?: (string | number) | undefined;
93
+ src?: string | undefined;
94
+ step?: (string | number) | undefined;
95
+ width?: (string | number) | undefined;
96
+ onCancel?: ((payload: Event) => void) | undefined;
97
+ innerHTML?: string | undefined;
98
+ class?: import('vue').ClassValue | undefined;
99
+ style?: import('vue').StyleValue | undefined;
100
+ accesskey?: string | undefined;
101
+ contenteditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
102
+ contextmenu?: string | undefined;
103
+ dir?: string | undefined;
104
+ draggable?: (boolean | "true" | "false") | undefined;
105
+ enterkeyhint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
106
+ enterKeyHint?: import('vue').HTMLAttributes["enterkeyhint"];
107
+ hidden?: (boolean | "true" | "false") | "" | "hidden" | "until-found" | undefined;
108
+ inert?: (boolean | "true" | "false") | undefined;
109
+ lang?: string | undefined;
110
+ spellcheck?: (boolean | "true" | "false") | undefined;
111
+ tabindex?: (string | number) | undefined;
112
+ title?: string | undefined;
113
+ translate?: "yes" | "no" | undefined;
114
+ radiogroup?: string | undefined;
115
+ role?: string | undefined;
116
+ about?: string | undefined;
117
+ datatype?: string | undefined;
118
+ inlist?: any;
119
+ prefix?: string | undefined;
120
+ property?: string | undefined;
121
+ resource?: string | undefined;
122
+ typeof?: string | undefined;
123
+ vocab?: string | undefined;
124
+ autocapitalize?: string | undefined;
125
+ autocorrect?: string | undefined;
126
+ autosave?: string | undefined;
127
+ color?: string | undefined;
128
+ itemprop?: string | undefined;
129
+ itemscope?: (boolean | "true" | "false") | undefined;
130
+ itemtype?: string | undefined;
131
+ itemid?: string | undefined;
132
+ itemref?: string | undefined;
133
+ results?: (string | number) | undefined;
134
+ security?: string | undefined;
135
+ unselectable?: "on" | "off" | undefined;
136
+ is?: string | undefined;
137
+ exportparts?: string;
138
+ part?: string;
139
+ 'aria-activedescendant'?: string | undefined;
140
+ 'aria-atomic'?: (boolean | "true" | "false") | undefined;
141
+ 'aria-autocomplete'?: "none" | "inline" | "list" | "both" | undefined;
142
+ 'aria-busy'?: (boolean | "true" | "false") | undefined;
143
+ 'aria-checked'?: (boolean | "true" | "false") | "mixed" | undefined;
144
+ 'aria-colcount'?: (string | number) | undefined;
145
+ 'aria-colindex'?: (string | number) | undefined;
146
+ 'aria-colspan'?: (string | number) | undefined;
147
+ 'aria-controls'?: string | undefined;
148
+ 'aria-current'?: (boolean | "true" | "false") | "page" | "step" | "location" | "date" | "time" | undefined;
149
+ 'aria-details'?: string | undefined;
150
+ 'aria-disabled'?: (boolean | "true" | "false") | undefined;
151
+ 'aria-dropeffect'?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
152
+ 'aria-errormessage'?: string | undefined;
153
+ 'aria-expanded'?: (boolean | "true" | "false") | undefined;
154
+ 'aria-flowto'?: string | undefined;
155
+ 'aria-grabbed'?: (boolean | "true" | "false") | undefined;
156
+ 'aria-haspopup'?: (boolean | "true" | "false") | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
157
+ 'aria-hidden'?: (boolean | "true" | "false") | undefined;
158
+ 'aria-keyshortcuts'?: string | undefined;
159
+ 'aria-labelledby'?: string | undefined;
160
+ 'aria-level'?: (string | number) | undefined;
161
+ 'aria-live'?: "off" | "assertive" | "polite" | undefined;
162
+ 'aria-modal'?: (boolean | "true" | "false") | undefined;
163
+ 'aria-multiline'?: (boolean | "true" | "false") | undefined;
164
+ 'aria-multiselectable'?: (boolean | "true" | "false") | undefined;
165
+ 'aria-orientation'?: "horizontal" | "vertical" | undefined;
166
+ 'aria-owns'?: string | undefined;
167
+ 'aria-placeholder'?: string | undefined;
168
+ 'aria-posinset'?: (string | number) | undefined;
169
+ 'aria-pressed'?: (boolean | "true" | "false") | "mixed" | undefined;
170
+ 'aria-readonly'?: (boolean | "true" | "false") | undefined;
171
+ 'aria-relevant'?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
172
+ 'aria-required'?: (boolean | "true" | "false") | undefined;
173
+ 'aria-roledescription'?: string | undefined;
174
+ 'aria-rowcount'?: (string | number) | undefined;
175
+ 'aria-rowindex'?: (string | number) | undefined;
176
+ 'aria-rowspan'?: (string | number) | undefined;
177
+ 'aria-selected'?: (boolean | "true" | "false") | undefined;
178
+ 'aria-setsize'?: (string | number) | undefined;
179
+ 'aria-sort'?: "none" | "ascending" | "descending" | "other" | undefined;
180
+ 'aria-valuemax'?: (string | number) | undefined;
181
+ 'aria-valuemin'?: (string | number) | undefined;
182
+ 'aria-valuenow'?: (string | number) | undefined;
183
+ 'aria-valuetext'?: string | undefined;
184
+ onCopy?: ((payload: ClipboardEvent) => void) | undefined;
185
+ onCut?: ((payload: ClipboardEvent) => void) | undefined;
186
+ onPaste?: ((payload: ClipboardEvent) => void) | undefined;
187
+ onCompositionend?: ((payload: CompositionEvent) => void) | undefined;
188
+ onCompositionstart?: ((payload: CompositionEvent) => void) | undefined;
189
+ onCompositionupdate?: ((payload: CompositionEvent) => void) | undefined;
190
+ onDrag?: ((payload: DragEvent) => void) | undefined;
191
+ onDragend?: ((payload: DragEvent) => void) | undefined;
192
+ onDragenter?: ((payload: DragEvent) => void) | undefined;
193
+ onDragexit?: ((payload: DragEvent) => void) | undefined;
194
+ onDragleave?: ((payload: DragEvent) => void) | undefined;
195
+ onDragover?: ((payload: DragEvent) => void) | undefined;
196
+ onDragstart?: ((payload: DragEvent) => void) | undefined;
197
+ onDrop?: ((payload: DragEvent) => void) | undefined;
198
+ onFocus?: ((payload: FocusEvent) => void) | undefined;
199
+ onFocusin?: ((payload: FocusEvent) => void) | undefined;
200
+ onFocusout?: ((payload: FocusEvent) => void) | undefined;
201
+ onBlur?: ((payload: FocusEvent) => void) | undefined;
202
+ onChange?: ((payload: Event) => void) | undefined;
203
+ onBeforeinput?: ((payload: InputEvent) => void) | undefined;
204
+ onFormdata?: ((payload: FormDataEvent) => void) | undefined;
205
+ onInput?: ((payload: InputEvent) => void) | undefined;
206
+ onReset?: ((payload: Event) => void) | undefined;
207
+ onSubmit?: ((payload: SubmitEvent) => void) | undefined;
208
+ onInvalid?: ((payload: Event) => void) | undefined;
209
+ onFullscreenchange?: ((payload: Event) => void) | undefined;
210
+ onFullscreenerror?: ((payload: Event) => void) | undefined;
211
+ onLoad?: ((payload: Event) => void) | undefined;
212
+ onError?: ((payload: Event) => void) | undefined;
213
+ onKeydown?: ((payload: KeyboardEvent) => void) | undefined;
214
+ onKeypress?: ((payload: KeyboardEvent) => void) | undefined;
215
+ onKeyup?: ((payload: KeyboardEvent) => void) | undefined;
216
+ onDblclick?: ((payload: MouseEvent) => void) | undefined;
217
+ onMousedown?: ((payload: MouseEvent) => void) | undefined;
218
+ onMouseenter?: ((payload: MouseEvent) => void) | undefined;
219
+ onMouseleave?: ((payload: MouseEvent) => void) | undefined;
220
+ onMousemove?: ((payload: MouseEvent) => void) | undefined;
221
+ onMouseout?: ((payload: MouseEvent) => void) | undefined;
222
+ onMouseover?: ((payload: MouseEvent) => void) | undefined;
223
+ onMouseup?: ((payload: MouseEvent) => void) | undefined;
224
+ onAbort?: ((payload: UIEvent) => void) | undefined;
225
+ onCanplay?: ((payload: Event) => void) | undefined;
226
+ onCanplaythrough?: ((payload: Event) => void) | undefined;
227
+ onDurationchange?: ((payload: Event) => void) | undefined;
228
+ onEmptied?: ((payload: Event) => void) | undefined;
229
+ onEncrypted?: ((payload: MediaEncryptedEvent) => void) | undefined;
230
+ onEnded?: ((payload: Event) => void) | undefined;
231
+ onLoadeddata?: ((payload: Event) => void) | undefined;
232
+ onLoadedmetadata?: ((payload: Event) => void) | undefined;
233
+ onLoadstart?: ((payload: Event) => void) | undefined;
234
+ onPause?: ((payload: Event) => void) | undefined;
235
+ onPlay?: ((payload: Event) => void) | undefined;
236
+ onPlaying?: ((payload: Event) => void) | undefined;
237
+ onProgress?: ((payload: ProgressEvent<EventTarget>) => void) | undefined;
238
+ onRatechange?: ((payload: Event) => void) | undefined;
239
+ onSeeked?: ((payload: Event) => void) | undefined;
240
+ onSeeking?: ((payload: Event) => void) | undefined;
241
+ onStalled?: ((payload: Event) => void) | undefined;
242
+ onSuspend?: ((payload: Event) => void) | undefined;
243
+ onTimeupdate?: ((payload: Event) => void) | undefined;
244
+ onVolumechange?: ((payload: Event) => void) | undefined;
245
+ onWaiting?: ((payload: Event) => void) | undefined;
246
+ onSelect?: ((payload: Event) => void) | undefined;
247
+ onScroll?: ((payload: Event) => void) | undefined;
248
+ onScrollend?: ((payload: Event) => void) | undefined;
249
+ onTouchcancel?: ((payload: TouchEvent) => void) | undefined;
250
+ onTouchend?: ((payload: TouchEvent) => void) | undefined;
251
+ onTouchmove?: ((payload: TouchEvent) => void) | undefined;
252
+ onTouchstart?: ((payload: TouchEvent) => void) | undefined;
253
+ onAuxclick?: ((payload: PointerEvent) => void) | undefined;
254
+ onClick?: ((payload: PointerEvent) => void) | undefined;
255
+ onContextmenu?: ((payload: PointerEvent) => void) | undefined;
256
+ onGotpointercapture?: ((payload: PointerEvent) => void) | undefined;
257
+ onLostpointercapture?: ((payload: PointerEvent) => void) | undefined;
258
+ onPointerdown?: ((payload: PointerEvent) => void) | undefined;
259
+ onPointermove?: ((payload: PointerEvent) => void) | undefined;
260
+ onPointerup?: ((payload: PointerEvent) => void) | undefined;
261
+ onPointercancel?: ((payload: PointerEvent) => void) | undefined;
262
+ onPointerenter?: ((payload: PointerEvent) => void) | undefined;
263
+ onPointerleave?: ((payload: PointerEvent) => void) | undefined;
264
+ onPointerover?: ((payload: PointerEvent) => void) | undefined;
265
+ onPointerout?: ((payload: PointerEvent) => void) | undefined;
266
+ onBeforetoggle?: ((payload: ToggleEvent) => void) | undefined;
267
+ onToggle?: ((payload: ToggleEvent) => void) | undefined;
268
+ onWheel?: ((payload: WheelEvent) => void) | undefined;
269
+ onAnimationcancel?: ((payload: AnimationEvent) => void) | undefined;
270
+ onAnimationstart?: ((payload: AnimationEvent) => void) | undefined;
271
+ onAnimationend?: ((payload: AnimationEvent) => void) | undefined;
272
+ onAnimationiteration?: ((payload: AnimationEvent) => void) | undefined;
273
+ onSecuritypolicyviolation?: ((payload: SecurityPolicyViolationEvent) => void) | undefined;
274
+ onTransitioncancel?: ((payload: TransitionEvent) => void) | undefined;
275
+ onTransitionend?: ((payload: TransitionEvent) => void) | undefined;
276
+ onTransitionrun?: ((payload: TransitionEvent) => void) | undefined;
277
+ onTransitionstart?: ((payload: TransitionEvent) => void) | undefined;
278
+ }, {}>;
279
+ setPinRef: (index: number, element: null | HTMLInputElement) => void;
280
+ inputType: import('vue').ComputedRef<OtpInputType>;
281
+ handlePinInput: (index: number, event: Event) => void;
282
+ handlePinFocus: (index: number) => void;
283
+ handlePinPaste: (index: number, event: ClipboardEvent) => void;
284
+ handlePinKeyDown: (index: number, event: KeyboardEvent) => void;
285
+ };
286
+ export type UseOtpFieldReturn = ReturnType<typeof useOtpField>;
287
+ export {};
@@ -0,0 +1,154 @@
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
+ //#region src/Components/OtpField/composables/useOtpField.ts
8
+ var oe = [
9
+ "mask",
10
+ "type",
11
+ "color",
12
+ "length",
13
+ "rounded",
14
+ "variant",
15
+ "autoFocus",
16
+ "placeholder",
17
+ "defaultValue",
18
+ ...r
19
+ ];
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 = {
29
+ length: 6,
30
+ size: "md",
31
+ rounded: "md",
32
+ type: "numeric",
33
+ color: "primary",
34
+ variant: "outline"
35
+ }) {
36
+ let O = ee(), k = c([]), A = a(() => ne({
37
+ bridgeKeys: oe,
38
+ props: {
39
+ ...O,
40
+ ...l(T)
41
+ }
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
+ }, {
59
+ componentName: "OtpField",
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));
62
+ s(() => {
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();
66
+ });
67
+ let X = (e, t) => {
68
+ let n = h(e);
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();
71
+ });
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));
73
+ return {
74
+ merged: j,
75
+ digits: Y,
76
+ length: U,
77
+ pinBind: (t) => e(P.value?.pin, {}, p({
78
+ "relative flex shrink-0 items-center justify-center overflow-hidden": !0,
79
+ [Z.value?.pin ?? ""]: !0,
80
+ [fe.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
87
+ })),
88
+ pinsBind: a(() => e({}, {}, p({
89
+ "flex flex-wrap items-center": !0,
90
+ [L.sizeClasses.value?.group ?? ""]: !0
91
+ }))),
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}`
109
+ }, {}, p({
110
+ "h-full w-full min-w-0 bg-transparent border-0 shadow-none text-center": !0,
111
+ "text-gray-900 dark:text-gray-100 placeholder:text-gray-400": !0,
112
+ "outline-none ring-0 focus:outline-none focus:ring-0": !0,
113
+ "disabled:cursor-not-allowed": !0,
114
+ [Z.value?.input ?? ""]: !0,
115
+ [N.value.input ?? ""]: !0
116
+ }));
117
+ },
118
+ setPinRef: (e, t) => {
119
+ k.value[e] = t;
120
+ },
121
+ inputType: W,
122
+ handlePinInput: (e, t) => {
123
+ let n = t.target.value, r = u({
124
+ index: e,
125
+ input: n,
126
+ digits: Y.value,
127
+ type: W.value
128
+ });
129
+ X(r.digits, r.focusIndex);
130
+ },
131
+ handlePinFocus: (e) => {
132
+ k.value[e]?.select();
133
+ },
134
+ handlePinPaste: (e, t) => {
135
+ let n = f({
136
+ index: e,
137
+ pasted: t.clipboardData?.getData("text") ?? "",
138
+ digits: Y.value,
139
+ type: W.value
140
+ });
141
+ n.focusIndex == null && n.digits.every((e, t) => e === Y.value[t]) || (t.preventDefault(), X(n.digits, n.focusIndex));
142
+ },
143
+ handlePinKeyDown: (e, t) => {
144
+ let n = d({
145
+ index: e,
146
+ key: t.key,
147
+ digits: Y.value
148
+ });
149
+ n && (t.preventDefault(), X(n.digits, n.focusIndex));
150
+ }
151
+ };
152
+ }
153
+ //#endregion
154
+ export { T as useOtpField };
@@ -0,0 +1,4 @@
1
+ export { useOtpField } from './composables/useOtpField';
2
+ export type { UseOtpFieldOptions } from './composables/useOtpField';
3
+ export type { OtpFieldClasses, OtpFieldColorOverrides, OtpFieldCustomProps, OtpFieldEmits, OtpFieldOwnProps, OtpFieldProps, OtpFieldRoundedOverrides, OtpFieldSizeOverrides, OtpFieldSlots, OtpFieldVariantOverrides, } from './otpField.types';
4
+ export { default as OtpField } from './OtpField.vue';
@@ -0,0 +1,3 @@
1
+ import { useOtpField as e } from "./composables/useOtpField.js";
2
+ import t from "./OtpField.js";
3
+ export { t as OtpField, e as useOtpField };
@@ -0,0 +1,120 @@
1
+ import { HTMLAttributes, InputHTMLAttributes } from 'vue';
2
+ import { BaseFieldInvalidated, MergeHtmlProps, MergeProps, OtpFieldColor, OtpFieldInvalidated, OtpFieldRounded, OtpFieldVariant, OtpInputType } from '@bridge-ui/core';
3
+ import { BaseFieldClasses, BaseFieldCustomProps, BaseFieldOwnProps, BaseFieldSlots } from '../BaseField/baseField.types';
4
+ export interface OtpFieldColorOverrides {}
5
+ export interface OtpFieldRoundedOverrides {}
6
+ export interface OtpFieldSizeOverrides {}
7
+ export interface OtpFieldVariantOverrides {}
8
+ export interface OtpFieldClasses extends BaseFieldClasses {
9
+ /**
10
+ * Classes merged onto each pin `<input>`.
11
+ */
12
+ input?: string;
13
+ /**
14
+ * Classes merged onto each pin cell wrapper.
15
+ */
16
+ pin?: string;
17
+ }
18
+ export interface OtpFieldCustomProps extends Omit<BaseFieldCustomProps, "invalidated"> {
19
+ /**
20
+ * Props forwarded to each pin `<input>`.
21
+ */
22
+ input?: Partial<InputHTMLAttributes>;
23
+ /**
24
+ * Pin error chrome (`pin` / `pinUnderlined`). Error message color comes from
25
+ * {@link BaseField} (`Tokens/BaseField`); pass `errorMessage` here to override.
26
+ *
27
+ * @default undefined
28
+ */
29
+ invalidated?: Partial<OtpFieldInvalidated & BaseFieldInvalidated>;
30
+ /**
31
+ * Props forwarded to each pin cell wrapper.
32
+ */
33
+ pin?: HTMLAttributes;
34
+ }
35
+ export interface OtpFieldEmits {
36
+ /**
37
+ * Emitted when the OTP string changes.
38
+ */
39
+ change: [value: string];
40
+ /**
41
+ * Emitted when every pin slot is filled.
42
+ */
43
+ complete: [value: string];
44
+ }
45
+ export interface OtpFieldOwnProps extends Omit<BaseFieldOwnProps, "field" | "slots" | "classes" | "children" | "customProps"> {
46
+ /**
47
+ * Autofocus the first empty pin (or the first pin) on mount.
48
+ *
49
+ * @default false
50
+ */
51
+ autoFocus?: boolean;
52
+ /**
53
+ * Classes for the field chrome and pin cells.
54
+ *
55
+ * @default undefined
56
+ */
57
+ classes?: OtpFieldClasses;
58
+ /**
59
+ * Focus ring / underline color on each pin.
60
+ *
61
+ * @default "primary"
62
+ */
63
+ color?: MergeProps<OtpFieldColor, OtpFieldColorOverrides>;
64
+ /**
65
+ * Extra props for internal parts (`root`, `pin`, `input`, …).
66
+ *
67
+ * @default undefined
68
+ */
69
+ customProps?: OtpFieldCustomProps;
70
+ /**
71
+ * Initial value for uncontrolled usage (when `v-model` / `modelValue` is
72
+ * not bound).
73
+ *
74
+ * @default undefined
75
+ */
76
+ defaultValue?: string;
77
+ /**
78
+ * Number of pin slots.
79
+ *
80
+ * @default 6
81
+ */
82
+ length?: number;
83
+ /**
84
+ * Mask pin values (password-style dots).
85
+ *
86
+ * @default false
87
+ */
88
+ mask?: boolean;
89
+ /**
90
+ * Placeholder character shown in empty pins.
91
+ *
92
+ * @default undefined
93
+ */
94
+ placeholder?: string;
95
+ /**
96
+ * Border radius of each pin cell.
97
+ *
98
+ * @default "md"
99
+ */
100
+ rounded?: MergeProps<OtpFieldRounded, OtpFieldRoundedOverrides>;
101
+ /**
102
+ * Character set accepted by each pin.
103
+ *
104
+ * @default "numeric"
105
+ */
106
+ type?: OtpInputType;
107
+ /**
108
+ * Visual variant applied to each pin cell.
109
+ *
110
+ * @default "outline"
111
+ */
112
+ variant?: MergeProps<OtpFieldVariant, OtpFieldVariantOverrides>;
113
+ }
114
+ export interface OtpFieldSlots extends BaseFieldSlots {}
115
+ export type OtpFieldProps = MergeHtmlProps<OtpFieldOwnProps, Omit<HTMLAttributes, "color" | "onChange">> & {
116
+ /**
117
+ * Bound with `v-model` on the component (`defineModel` internally).
118
+ */
119
+ modelValue?: null | string;
120
+ };
@@ -1,13 +1,13 @@
1
- import { useI18nAdapter as e } from "../../Adapters/I18n/useI18nAdapter.js";
1
+ import { useResolveMessage as e } from "../../Adapters/I18n/useI18nAdapter.js";
2
2
  import { mergePartBind as t, resolveFieldAdornmentIconSize as n } from "../../Utils/index.js";
3
3
  import r from "../Icon/Icon.js";
4
4
  import i from "../FormField/FormField.js";
5
5
  import { usePasswordField as a } from "./composables/usePasswordField.js";
6
6
  import { computed as o, createBlock as s, createElementVNode as c, createVNode as l, defineComponent as u, guardReactiveProps as d, mergeModels as f, mergeProps as p, normalizeProps as m, openBlock as h, ref as g, unref as _, useModel as v, vModelDynamic as y, withCtx as b, withDirectives as x } from "vue";
7
- import { isUndefined as S } from "es-toolkit/compat";
8
- import { cn as C, resolveMessage as w } from "@bridge-ui/core";
7
+ import { cn as S } from "@bridge-ui/core";
8
+ import { isUndefined as C } from "es-toolkit/compat";
9
9
  //#region src/Components/PasswordField/PasswordField.vue?vue&type=script&setup=true&lang.ts
10
- var T = /* @__PURE__ */ u({
10
+ var w = /* @__PURE__ */ u({
11
11
  inheritAttrs: !1,
12
12
  __name: "PasswordField",
13
13
  props: /* @__PURE__ */ f({
@@ -28,46 +28,46 @@ var T = /* @__PURE__ */ u({
28
28
  error: { type: Boolean },
29
29
  errorIcon: {},
30
30
  errorMessage: {},
31
+ hideErrorMessage: { type: Boolean },
31
32
  label: {},
32
33
  readonly: { type: Boolean },
33
34
  required: { type: Boolean },
34
35
  rounded: {},
36
+ showErrorIcon: { type: Boolean },
35
37
  size: {},
36
38
  slots: {},
37
39
  start: {},
38
40
  startIcon: {},
39
- variant: {},
40
- withErrorIcon: { type: Boolean },
41
- withoutErrorMessage: { type: Boolean }
41
+ variant: {}
42
42
  }, {
43
43
  modelValue: {},
44
44
  modelModifiers: {}
45
45
  }),
46
46
  emits: /* @__PURE__ */ f(["visibility-change"], ["update:modelValue"]),
47
47
  setup(u, { emit: f }) {
48
- let T = f, E = v(u, "modelValue"), D = u, O = g(D.defaultValue), k = o({
48
+ let w = f, T = v(u, "modelValue"), E = u, D = g(E.defaultValue), O = o({
49
49
  set: (e) => {
50
- E.value = e, O.value = e;
50
+ T.value = e, D.value = e;
51
51
  },
52
- get: () => S(E.value) ? O.value : E.value
53
- }), A = e(), { formField: j, inputBind: M, isVisible: N, mergedClasses: P, toggleVisibility: F } = a(D, { onVisibilityChange: (e) => T("visibility-change", e) }), I = o(() => t(D.customProps?.toggle, {
52
+ get: () => C(T.value) ? D.value : T.value
53
+ }), k = e(), { formField: A, inputBind: j, isVisible: M, mergedClasses: N, toggleVisibility: P } = a(E, { onVisibilityChange: (e) => w("visibility-change", e) }), F = o(() => t(E.customProps?.toggle, {
54
54
  type: "button",
55
- disabled: D.disabled,
56
- onClick: F,
57
- "aria-label": N.value ? w("Hide password", A.value) : w("Show password", A.value)
58
- }, C({
55
+ disabled: E.disabled,
56
+ onClick: P,
57
+ "aria-label": M.value ? k("Hide password") : k("Show password")
58
+ }, S({
59
59
  "bridge-end-adornment bridge-field-adornment-button inline-flex h-full items-center justify-center px-2.5": !0,
60
- [P.value.toggle ?? ""]: !0
60
+ [N.value.toggle ?? ""]: !0
61
61
  })));
62
- return (e, t) => (h(), s(_(i), { field: _(j) }, {
63
- end: b(() => [c("button", m(d(I.value)), [l(_(r), p({
64
- icon: _(N) ? "eyeOff" : "eye",
65
- size: _(n)(D.size)
66
- }, D.customProps?.toggleIcon), null, 16, ["icon", "size"])], 16)]),
67
- default: b(() => [x(c("input", p({ "onUpdate:modelValue": t[0] ||= (e) => k.value = e }, _(M)), null, 16), [[y, k.value]])]),
62
+ return (e, t) => (h(), s(_(i), { field: _(A) }, {
63
+ end: b(() => [c("button", m(d(F.value)), [l(_(r), p({
64
+ icon: _(M) ? "eyeOff" : "eye",
65
+ size: _(n)(E.size)
66
+ }, E.customProps?.toggleIcon), null, 16, ["icon", "size"])], 16)]),
67
+ default: b(() => [x(c("input", p({ "onUpdate:modelValue": t[0] ||= (e) => O.value = e }, _(j)), null, 16), [[y, O.value]])]),
68
68
  _: 1
69
69
  }, 8, ["field"]));
70
70
  }
71
71
  });
72
72
  //#endregion
73
- export { T as default };
73
+ export { w as default };