sprintify-ui 0.10.64 → 0.10.65

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 (416) hide show
  1. package/README.md +266 -266
  2. package/dist/{BaseCkeditor-B4PbYw6a.js → BaseCkeditor-D6D4FPEb.js} +2 -2
  3. package/dist/sprintify-ui.es.js +3732 -3594
  4. package/dist/style.css +3 -3
  5. package/dist/tailwindcss/button.js +260 -260
  6. package/dist/tailwindcss/index.js +21 -21
  7. package/dist/tailwindcss/input.js +22 -22
  8. package/dist/tailwindcss/overlay.js +12 -12
  9. package/dist/tailwindcss/table.js +91 -91
  10. package/dist/tailwindcss/theme.js +52 -52
  11. package/dist/types/components/BaseActionButtons.vue.d.ts +1 -1
  12. package/dist/types/components/BaseActionItem.vue.d.ts +10 -7
  13. package/dist/types/components/BaseAddressForm.vue.d.ts +1 -1
  14. package/dist/types/components/BaseAlert.vue.d.ts +11 -24
  15. package/dist/types/components/BaseApp.vue.d.ts +12 -14
  16. package/dist/types/components/BaseAssign.vue.d.ts +1 -1
  17. package/dist/types/components/BaseAutocomplete.vue.d.ts +455 -665
  18. package/dist/types/components/BaseAutocompleteDrawer.vue.d.ts +24 -119
  19. package/dist/types/components/BaseAutocompleteFetch.vue.d.ts +412 -1033
  20. package/dist/types/components/BaseAvatarGroup.vue.d.ts +1 -1
  21. package/dist/types/components/BaseBadge.vue.d.ts +11 -23
  22. package/dist/types/components/BaseBelongsTo.vue.d.ts +411 -998
  23. package/dist/types/components/BaseBelongsToFetch.vue.d.ts +371 -754
  24. package/dist/types/components/BaseBoolean.vue.d.ts +1 -1
  25. package/dist/types/components/BaseBreadcrumbs.vue.d.ts +1 -1
  26. package/dist/types/components/BaseButton.vue.d.ts +16 -78
  27. package/dist/types/components/BaseButtonGroup.vue.d.ts +15 -166
  28. package/dist/types/components/BaseCard.vue.d.ts +12 -26
  29. package/dist/types/components/BaseCardRow.vue.d.ts +11 -20
  30. package/dist/types/components/BaseCharacterCounter.vue.d.ts +1 -1
  31. package/dist/types/components/BaseClipboard.vue.d.ts +13 -45
  32. package/dist/types/components/BaseCollapse.vue.d.ts +20 -41
  33. package/dist/types/components/BaseContainer.vue.d.ts +11 -16
  34. package/dist/types/components/BaseCounter.vue.d.ts +1 -1
  35. package/dist/types/components/BaseCropper.vue.d.ts +30 -55
  36. package/dist/types/components/BaseDataIterator.vue.d.ts +42 -43
  37. package/dist/types/components/BaseDataIteratorSectionBox.vue.d.ts +12 -15
  38. package/dist/types/components/BaseDataIteratorSectionColumns.vue.d.ts +1 -1
  39. package/dist/types/components/BaseDataIteratorSectionModal.vue.d.ts +10 -19
  40. package/dist/types/components/BaseDataTable.vue.d.ts +736 -2088
  41. package/dist/types/components/BaseDataTableTemplate.vue.d.ts +100 -576
  42. package/dist/types/components/BaseDatePicker.vue.d.ts +1 -1
  43. package/dist/types/components/BaseDateSelect.vue.d.ts +1 -1
  44. package/dist/types/components/BaseDescriptionList.vue.d.ts +12 -12
  45. package/dist/types/components/BaseDescriptionListItem.vue.d.ts +15 -16
  46. package/dist/types/components/BaseDialog.vue.d.ts +413 -114
  47. package/dist/types/components/BaseDisplayRelativeTime.vue.d.ts +13 -55
  48. package/dist/types/components/BaseDraggable.vue.d.ts +16 -25
  49. package/dist/types/components/BaseDropdown.vue.d.ts +17 -155
  50. package/dist/types/components/BaseDropdownAutocomplete.vue.d.ts +16 -131
  51. package/dist/types/components/BaseField.vue.d.ts +12 -103
  52. package/dist/types/components/BaseFieldI18n.vue.d.ts +1 -1
  53. package/dist/types/components/BaseFilePicker.vue.d.ts +16 -35
  54. package/dist/types/components/BaseFilePickerCrop.vue.d.ts +42 -87
  55. package/dist/types/components/BaseFileUploader.vue.d.ts +29 -195
  56. package/dist/types/components/BaseForm.vue.d.ts +20 -161
  57. package/dist/types/components/BaseGantt.vue.d.ts +409 -1130
  58. package/dist/types/components/BaseHasMany.vue.d.ts +347 -590
  59. package/dist/types/components/BaseHasManyFetch.vue.d.ts +251 -602
  60. package/dist/types/components/BaseHeader.vue.d.ts +1 -1
  61. package/dist/types/components/BaseIconPicker.vue.d.ts +1 -1
  62. package/dist/types/components/BaseInputError.vue.d.ts +11 -23
  63. package/dist/types/components/BaseJsonReaderItem.vue.d.ts +1 -1
  64. package/dist/types/components/BaseLayoutNotificationItemContent.vue.d.ts +1 -1
  65. package/dist/types/components/BaseLayoutSidebar.vue.d.ts +16 -124
  66. package/dist/types/components/BaseLayoutSidebarConfigurable.vue.d.ts +13 -115
  67. package/dist/types/components/BaseLayoutStacked.vue.d.ts +22 -69
  68. package/dist/types/components/BaseLayoutStackedConfigurable.vue.d.ts +10 -120
  69. package/dist/types/components/BaseLazy.vue.d.ts +15 -20
  70. package/dist/types/components/BaseMediaGallery.vue.d.ts +1 -1
  71. package/dist/types/components/BaseMediaGalleryItem.vue.d.ts +1 -1
  72. package/dist/types/components/BaseMediaItem.vue.d.ts +1 -1
  73. package/dist/types/components/BaseMediaLibrary.vue.d.ts +34 -234
  74. package/dist/types/components/BaseMediaListItem.vue.d.ts +1 -1
  75. package/dist/types/components/BaseMediaPicturesItem.vue.d.ts +1 -1
  76. package/dist/types/components/BaseMenu.vue.d.ts +30 -233
  77. package/dist/types/components/BaseMenuItem.vue.d.ts +1 -1
  78. package/dist/types/components/BaseModalCenter.vue.d.ts +12 -88
  79. package/dist/types/components/BaseModalSide.vue.d.ts +20 -71
  80. package/dist/types/components/BaseNavbar.vue.d.ts +22 -88
  81. package/dist/types/components/BaseNavbarItem.vue.d.ts +1 -1
  82. package/dist/types/components/BaseNavbarItemContent.vue.d.ts +1 -1
  83. package/dist/types/components/BaseNavbarSideItem.vue.d.ts +1 -1
  84. package/dist/types/components/BaseNavbarSideItemContent.vue.d.ts +1 -1
  85. package/dist/types/components/BasePagination.vue.d.ts +1 -1
  86. package/dist/types/components/BaseRadioGroup.vue.d.ts +13 -113
  87. package/dist/types/components/BaseReadMore.vue.d.ts +12 -31
  88. package/dist/types/components/BaseRichText.vue.d.ts +1 -1
  89. package/dist/types/components/BaseSelect.vue.d.ts +12 -149
  90. package/dist/types/components/BaseShortcut.vue.d.ts +1 -1
  91. package/dist/types/components/BaseSideNavigation.vue.d.ts +12 -11
  92. package/dist/types/components/BaseSideNavigationItem.vue.d.ts +13 -22
  93. package/dist/types/components/BaseSkeleton.vue.d.ts +3 -3
  94. package/dist/types/components/BaseStepper.vue.d.ts +1 -1
  95. package/dist/types/components/BaseSwitch.vue.d.ts +10 -118
  96. package/dist/types/components/BaseSystemAlert.vue.d.ts +11 -58
  97. package/dist/types/components/BaseTabItem.vue.d.ts +18 -35
  98. package/dist/types/components/BaseTable.vue.d.ts +14 -29
  99. package/dist/types/components/BaseTableBody.vue.d.ts +12 -9
  100. package/dist/types/components/BaseTableCell.vue.d.ts +15 -40
  101. package/dist/types/components/BaseTableColumn.vue.d.ts +3 -3
  102. package/dist/types/components/BaseTableHead.vue.d.ts +12 -14
  103. package/dist/types/components/BaseTableHeader.vue.d.ts +17 -46
  104. package/dist/types/components/BaseTableRow.vue.d.ts +13 -40
  105. package/dist/types/components/BaseTabs.vue.d.ts +15 -21
  106. package/dist/types/components/BaseTagAutocomplete.vue.d.ts +203 -602
  107. package/dist/types/components/BaseTagAutocompleteFetch.vue.d.ts +348 -807
  108. package/dist/types/components/BaseTextareaAutoresize.vue.d.ts +1 -1
  109. package/dist/types/components/BaseTimeline.vue.d.ts +1 -1
  110. package/dist/types/components/BaseTimelineItem.vue.d.ts +1 -1
  111. package/dist/types/components/BaseToast.vue.d.ts +1 -1
  112. package/dist/types/components/BaseTooltip.vue.d.ts +15 -41
  113. package/dist/types/components/BaseUniqueCode.vue.d.ts +1 -1
  114. package/dist/types/stories/PageInputSizes.vue.d.ts +1 -1
  115. package/dist/types/stories/PageShow.vue.d.ts +1 -1
  116. package/dist/types/svg/BaseEmptyState.vue.d.ts +1 -1
  117. package/dist/types/svg/BaseSpinnerSmall.vue.d.ts +1 -1
  118. package/package.json +135 -135
  119. package/src/assets/base-cropper.css +61 -61
  120. package/src/assets/base-date-picker.css +4 -4
  121. package/src/assets/base-rich-text.css +270 -270
  122. package/src/assets/base-spinner.css +18 -18
  123. package/src/assets/base-tabs.css +4 -4
  124. package/src/assets/base-time-picker.css +9 -9
  125. package/src/assets/flatpickr.css +247 -247
  126. package/src/assets/form.css +6 -6
  127. package/src/assets/google-pac.css +25 -25
  128. package/src/assets/main.css +56 -56
  129. package/src/assets/tailwind.css +2 -2
  130. package/src/changelog.mdx +6 -6
  131. package/src/components/BaseActionButtons.vue +76 -76
  132. package/src/components/BaseActionItem.vue +80 -80
  133. package/src/components/BaseActionItemButton.vue +75 -75
  134. package/src/components/BaseAddressForm.stories.js +114 -114
  135. package/src/components/BaseAddressForm.vue +382 -382
  136. package/src/components/BaseAlert.stories.js +75 -75
  137. package/src/components/BaseAlert.vue +101 -101
  138. package/src/components/BaseApp.vue +16 -16
  139. package/src/components/BaseAppDialogs.vue +126 -126
  140. package/src/components/BaseAppSnackbars.vue +40 -40
  141. package/src/components/BaseAssign.mdx +98 -98
  142. package/src/components/BaseAssign.stories.js +78 -78
  143. package/src/components/BaseAssign.vue +366 -366
  144. package/src/components/BaseAutocomplete.stories.js +243 -243
  145. package/src/components/BaseAutocomplete.vue +603 -603
  146. package/src/components/BaseAutocompleteDrawer.vue +386 -386
  147. package/src/components/BaseAutocompleteFetch.stories.js +224 -224
  148. package/src/components/BaseAutocompleteFetch.vue +314 -314
  149. package/src/components/BaseAvatar.stories.js +39 -39
  150. package/src/components/BaseAvatar.vue +164 -164
  151. package/src/components/BaseAvatarGroup.stories.js +71 -71
  152. package/src/components/BaseAvatarGroup.vue +148 -148
  153. package/src/components/BaseBadge.stories.js +130 -130
  154. package/src/components/BaseBadge.vue +97 -97
  155. package/src/components/BaseBelongsTo.stories.js +220 -220
  156. package/src/components/BaseBelongsTo.vue +164 -164
  157. package/src/components/BaseBelongsToFetch.stories.js +223 -223
  158. package/src/components/BaseBelongsToFetch.vue +213 -213
  159. package/src/components/BaseBoolean.stories.js +35 -35
  160. package/src/components/BaseBoolean.vue +26 -26
  161. package/src/components/BaseBreadcrumbs.stories.js +50 -50
  162. package/src/components/BaseBreadcrumbs.vue +109 -109
  163. package/src/components/BaseButton.stories.js +126 -126
  164. package/src/components/BaseButton.vue +279 -279
  165. package/src/components/BaseButtonGroup.stories.js +114 -114
  166. package/src/components/BaseButtonGroup.vue +193 -193
  167. package/src/components/BaseCard.stories.js +63 -63
  168. package/src/components/BaseCard.vue +49 -49
  169. package/src/components/BaseCardRow.vue +53 -53
  170. package/src/components/BaseCharacterCounter.stories.js +30 -30
  171. package/src/components/BaseCharacterCounter.vue +64 -64
  172. package/src/components/BaseCkeditor.vue +154 -154
  173. package/src/components/BaseClipboard.stories.js +55 -55
  174. package/src/components/BaseClipboard.vue +105 -105
  175. package/src/components/BaseCollapse.stories.js +168 -168
  176. package/src/components/BaseCollapse.vue +98 -98
  177. package/src/components/BaseColor.stories.js +66 -66
  178. package/src/components/BaseColor.vue +155 -155
  179. package/src/components/BaseContainer.stories.js +34 -34
  180. package/src/components/BaseContainer.vue +64 -64
  181. package/src/components/BaseCounter.stories.js +47 -47
  182. package/src/components/BaseCounter.vue +83 -83
  183. package/src/components/BaseCropper.stories.js +113 -113
  184. package/src/components/BaseCropper.vue +390 -390
  185. package/src/components/BaseCropperModal.stories.js +54 -54
  186. package/src/components/BaseCropperModal.vue +143 -143
  187. package/src/components/BaseDataIterator.stories.js +292 -292
  188. package/src/components/BaseDataIterator.vue +986 -986
  189. package/src/components/BaseDataIteratorSectionBox.vue +36 -36
  190. package/src/components/BaseDataIteratorSectionButton.vue +42 -42
  191. package/src/components/BaseDataIteratorSectionColumns.vue +150 -150
  192. package/src/components/BaseDataIteratorSectionModal.vue +41 -41
  193. package/src/components/BaseDataTable.stories.js +393 -393
  194. package/src/components/BaseDataTable.vue +966 -966
  195. package/src/components/BaseDataTableRowAction.vue +70 -70
  196. package/src/components/BaseDataTableTemplate.vue +838 -838
  197. package/src/components/BaseDatePicker.stories.js +166 -166
  198. package/src/components/BaseDatePicker.vue +372 -372
  199. package/src/components/BaseDateSelect.stories.js +68 -68
  200. package/src/components/BaseDateSelect.vue +222 -222
  201. package/src/components/BaseDescriptionList.stories.js +35 -35
  202. package/src/components/BaseDescriptionList.vue +13 -13
  203. package/src/components/BaseDescriptionListItem.vue +47 -47
  204. package/src/components/BaseDialog.stories.js +95 -95
  205. package/src/components/BaseDialog.vue +221 -221
  206. package/src/components/BaseDisplayRelativeTime.stories.js +47 -47
  207. package/src/components/BaseDisplayRelativeTime.vue +126 -126
  208. package/src/components/BaseDraggable.stories.js +34 -34
  209. package/src/components/BaseDraggable.vue +111 -111
  210. package/src/components/BaseDropdown.stories.js +164 -164
  211. package/src/components/BaseDropdown.vue +74 -74
  212. package/src/components/BaseDropdownAutocomplete.stories.js +208 -208
  213. package/src/components/BaseDropdownAutocomplete.vue +203 -203
  214. package/src/components/BaseField.vue +151 -151
  215. package/src/components/BaseFieldI18n.stories.js +37 -37
  216. package/src/components/BaseFieldI18n.vue +170 -170
  217. package/src/components/BaseFilePicker.stories.js +84 -84
  218. package/src/components/BaseFilePicker.vue +163 -163
  219. package/src/components/BaseFilePickerCrop.stories.js +135 -135
  220. package/src/components/BaseFilePickerCrop.vue +130 -130
  221. package/src/components/BaseFileUploader.stories.js +101 -101
  222. package/src/components/BaseFileUploader.vue +185 -185
  223. package/src/components/BaseForm.mdx +87 -87
  224. package/src/components/BaseForm.stories.js +133 -133
  225. package/src/components/BaseForm.vue +372 -372
  226. package/src/components/BaseGantt.stories.js +145 -145
  227. package/src/components/BaseGantt.vue +384 -384
  228. package/src/components/BaseHasMany.stories.js +211 -211
  229. package/src/components/BaseHasMany.vue +135 -135
  230. package/src/components/BaseHasManyFetch.stories.js +278 -278
  231. package/src/components/BaseHasManyFetch.vue +222 -222
  232. package/src/components/BaseHeader.stories.js +137 -137
  233. package/src/components/BaseHeader.vue +141 -141
  234. package/src/components/BaseIconPicker.stories.js +22 -22
  235. package/src/components/BaseIconPicker.vue +225 -225
  236. package/src/components/BaseInput.stories.js +202 -202
  237. package/src/components/BaseInput.vue +402 -402
  238. package/src/components/BaseInputError.vue +39 -39
  239. package/src/components/BaseInputLabel.stories.js +36 -36
  240. package/src/components/BaseInputLabel.vue +83 -83
  241. package/src/components/BaseInputPercent.stories.js +66 -66
  242. package/src/components/BaseInputPercent.vue +139 -139
  243. package/src/components/BaseJsonReader.stories.js +120 -120
  244. package/src/components/BaseJsonReader.vue +51 -51
  245. package/src/components/BaseJsonReaderItem.vue +119 -119
  246. package/src/components/BaseLayoutNotificationDropdown.vue +153 -153
  247. package/src/components/BaseLayoutNotificationItem.vue +53 -53
  248. package/src/components/BaseLayoutNotificationItemContent.vue +41 -41
  249. package/src/components/BaseLayoutSidebar.vue +300 -300
  250. package/src/components/BaseLayoutSidebarConfigurable.stories.js +217 -217
  251. package/src/components/BaseLayoutSidebarConfigurable.vue +202 -202
  252. package/src/components/BaseLayoutStacked.vue +78 -78
  253. package/src/components/BaseLayoutStackedConfigurable.stories.js +181 -181
  254. package/src/components/BaseLayoutStackedConfigurable.vue +196 -196
  255. package/src/components/BaseLazy.stories.js +59 -59
  256. package/src/components/BaseLazy.vue +80 -80
  257. package/src/components/BaseLoadingCover.stories.js +55 -55
  258. package/src/components/BaseLoadingCover.vue +101 -101
  259. package/src/components/BaseMediaGallery.vue +96 -96
  260. package/src/components/BaseMediaGalleryItem.vue +101 -101
  261. package/src/components/BaseMediaItem.stories.js +41 -41
  262. package/src/components/BaseMediaItem.vue +80 -80
  263. package/src/components/BaseMediaLibrary.stories.js +267 -267
  264. package/src/components/BaseMediaLibrary.vue +357 -357
  265. package/src/components/BaseMediaList.vue +67 -67
  266. package/src/components/BaseMediaListItem.vue +213 -213
  267. package/src/components/BaseMediaPictures.vue +64 -64
  268. package/src/components/BaseMediaPicturesItem.vue +100 -100
  269. package/src/components/BaseMediaPreview.stories.js +72 -72
  270. package/src/components/BaseMediaPreview.vue +106 -106
  271. package/src/components/BaseMenu.stories.js +134 -134
  272. package/src/components/BaseMenu.vue +187 -187
  273. package/src/components/BaseMenuItem.vue +177 -177
  274. package/src/components/BaseModalCenter.stories.js +68 -68
  275. package/src/components/BaseModalCenter.vue +128 -128
  276. package/src/components/BaseModalSide.stories.js +61 -55
  277. package/src/components/BaseModalSide.vue +130 -116
  278. package/src/components/BaseNavbar.stories.js +152 -152
  279. package/src/components/BaseNavbar.vue +191 -191
  280. package/src/components/BaseNavbarItem.vue +108 -108
  281. package/src/components/BaseNavbarItemContent.vue +124 -124
  282. package/src/components/BaseNavbarSideItem.vue +187 -187
  283. package/src/components/BaseNavbarSideItemContent.vue +126 -126
  284. package/src/components/BasePagination.stories.js +35 -35
  285. package/src/components/BasePagination.vue +266 -266
  286. package/src/components/BasePanel.stories.js +56 -56
  287. package/src/components/BasePanel.vue +42 -42
  288. package/src/components/BasePassword.stories.js +80 -80
  289. package/src/components/BasePassword.vue +87 -87
  290. package/src/components/BaseProgressCircle.stories.js +27 -27
  291. package/src/components/BaseProgressCircle.vue +80 -80
  292. package/src/components/BaseRadioGroup.stories.js +87 -87
  293. package/src/components/BaseRadioGroup.vue +124 -124
  294. package/src/components/BaseReadMore.stories.js +30 -30
  295. package/src/components/BaseReadMore.vue +73 -73
  296. package/src/components/BaseRichText.stories.js +90 -90
  297. package/src/components/BaseRichText.vue +87 -87
  298. package/src/components/BaseScrollColumn.vue +128 -128
  299. package/src/components/BaseSelect.stories.js +151 -151
  300. package/src/components/BaseSelect.vue +241 -241
  301. package/src/components/BaseShortcut.stories.js +100 -100
  302. package/src/components/BaseShortcut.vue +114 -114
  303. package/src/components/BaseSideNavigation.stories.js +85 -85
  304. package/src/components/BaseSideNavigation.vue +32 -32
  305. package/src/components/BaseSideNavigationItem.vue +99 -99
  306. package/src/components/BaseSkeleton.stories.js +36 -36
  307. package/src/components/BaseSkeleton.vue +40 -40
  308. package/src/components/BaseStatistic.stories.js +51 -51
  309. package/src/components/BaseStatistic.vue +98 -98
  310. package/src/components/BaseStepper.stories.js +94 -94
  311. package/src/components/BaseStepper.vue +72 -72
  312. package/src/components/BaseStepperItem.stories.js +65 -65
  313. package/src/components/BaseStepperItem.vue +149 -149
  314. package/src/components/BaseSwitch.stories.js +133 -133
  315. package/src/components/BaseSwitch.vue +226 -226
  316. package/src/components/BaseSystemAlert.stories.js +63 -63
  317. package/src/components/BaseSystemAlert.vue +89 -89
  318. package/src/components/BaseTabItem.vue +192 -192
  319. package/src/components/BaseTable.stories.js +214 -214
  320. package/src/components/BaseTable.vue +111 -111
  321. package/src/components/BaseTableBody.vue +14 -14
  322. package/src/components/BaseTableCell.vue +204 -204
  323. package/src/components/BaseTableColumn.vue +140 -140
  324. package/src/components/BaseTableHead.vue +38 -38
  325. package/src/components/BaseTableHeader.vue +139 -139
  326. package/src/components/BaseTableRow.vue +197 -197
  327. package/src/components/BaseTabs.stories.js +165 -165
  328. package/src/components/BaseTabs.vue +203 -203
  329. package/src/components/BaseTagAutocomplete.stories.js +271 -271
  330. package/src/components/BaseTagAutocomplete.vue +565 -565
  331. package/src/components/BaseTagAutocompleteFetch.stories.js +211 -211
  332. package/src/components/BaseTagAutocompleteFetch.vue +237 -237
  333. package/src/components/BaseTextarea.stories.js +81 -81
  334. package/src/components/BaseTextarea.vue +138 -138
  335. package/src/components/BaseTextareaAutoresize.stories.js +125 -125
  336. package/src/components/BaseTextareaAutoresize.vue +187 -187
  337. package/src/components/BaseTimePicker.stories.js +68 -68
  338. package/src/components/BaseTimePicker.vue +379 -379
  339. package/src/components/BaseTimeline.stories.js +55 -55
  340. package/src/components/BaseTimeline.vue +38 -38
  341. package/src/components/BaseTimelineItem.stories.js +77 -77
  342. package/src/components/BaseTimelineItem.vue +90 -90
  343. package/src/components/BaseToast.stories.js +50 -50
  344. package/src/components/BaseToast.vue +43 -43
  345. package/src/components/BaseTooltip.stories.js +65 -65
  346. package/src/components/BaseTooltip.vue +93 -93
  347. package/src/components/BaseUniqueCode.stories.js +36 -36
  348. package/src/components/BaseUniqueCode.vue +183 -183
  349. package/src/components/SlotComponent.ts +37 -37
  350. package/src/components/index.ts +222 -222
  351. package/src/composables/breakpoints.ts +94 -94
  352. package/src/composables/clickOutside.ts +80 -80
  353. package/src/composables/field.ts +156 -156
  354. package/src/composables/hasOptions.ts +86 -86
  355. package/src/composables/inputSize.ts +35 -35
  356. package/src/composables/isLastColumn.ts +30 -30
  357. package/src/composables/mediaQuery.ts +42 -42
  358. package/src/composables/modal.ts +73 -73
  359. package/src/composables/paginatedData.ts +76 -76
  360. package/src/composables/tooltip.ts +84 -84
  361. package/src/constants/MyConstants.ts +1 -1
  362. package/src/constants/index.ts +5 -5
  363. package/src/env.d.ts +15 -15
  364. package/src/i18n/index.ts +60 -60
  365. package/src/index.ts +138 -138
  366. package/src/lang/en.json +101 -101
  367. package/src/lang/fr.json +101 -101
  368. package/src/services/gantt/format.ts +133 -133
  369. package/src/services/gantt/timescale.ts +250 -250
  370. package/src/services/gantt/types.ts +81 -81
  371. package/src/services/table/classes.ts +37 -37
  372. package/src/services/table/customKeyActions.ts +2 -2
  373. package/src/services/table/types.ts +27 -27
  374. package/src/stores/dialogs.ts +48 -48
  375. package/src/stores/i18n.ts +14 -14
  376. package/src/stores/snackbars.ts +47 -47
  377. package/src/stores/systemAlerts.ts +32 -32
  378. package/src/stories/InputSizes.stories.js +21 -21
  379. package/src/stories/List.stories.js +136 -136
  380. package/src/stories/PageInputSizes.vue +228 -228
  381. package/src/stories/PageShow.vue +423 -423
  382. package/src/stories/Show.stories.js +21 -21
  383. package/src/svg/BaseEmptyState.vue +38 -38
  384. package/src/svg/BaseSpinnerLarge.vue +40 -40
  385. package/src/svg/BaseSpinnerSmall.vue +13 -13
  386. package/src/types/Color.ts +9 -9
  387. package/src/types/Country.ts +4 -4
  388. package/src/types/ImagePickerResult.ts +5 -5
  389. package/src/types/Media.ts +10 -10
  390. package/src/types/Notification.ts +11 -11
  391. package/src/types/Region.ts +5 -5
  392. package/src/types/Status.ts +5 -5
  393. package/src/types/StepperItem.ts +8 -8
  394. package/src/types/ToolbarOption.ts +1 -1
  395. package/src/types/UploadedFile.ts +11 -11
  396. package/src/types/User.ts +7 -7
  397. package/src/types/index.ts +302 -302
  398. package/src/utils/blob.ts +30 -30
  399. package/src/utils/colors.ts +239 -239
  400. package/src/utils/cropper/avatar.ts +33 -33
  401. package/src/utils/cropper/cover.ts +41 -41
  402. package/src/utils/cropper/presetInterface.ts +16 -16
  403. package/src/utils/cropper/presets.ts +7 -7
  404. package/src/utils/deepIncludes.ts +76 -76
  405. package/src/utils/fileSizeFormat.ts +15 -15
  406. package/src/utils/fileValidations.ts +26 -26
  407. package/src/utils/getApiData.ts +11 -11
  408. package/src/utils/index.ts +18 -18
  409. package/src/utils/resizeImageFromURI.ts +118 -118
  410. package/src/utils/scrollPreventer.ts +11 -11
  411. package/src/utils/sizeBehaviors.ts +3 -3
  412. package/src/utils/sizes.ts +38 -38
  413. package/src/utils/slots.ts +12 -12
  414. package/src/utils/storage.ts +36 -36
  415. package/src/utils/toHumanList.ts +20 -20
  416. package/src/utils/uuid.ts +7 -7
@@ -1,402 +1,402 @@
1
- <template>
2
- <div :class="classes">
3
- <div :class="decorationWrapClasses">
4
- <component
5
- :is="hasLeftListener ? 'button' : 'div'"
6
- v-if="iconLeft"
7
- :type="hasLeftListener ? 'button' : undefined"
8
- :class="[decorationClasses, hasLeftListener ? 'hover:bg-slate-100' : '']"
9
- @click="onIconLeftClickInternal"
10
- >
11
- <BaseIcon
12
- :icon="iconLeft"
13
- :class="iconClasses"
14
- />
15
- </component>
16
- <div
17
- v-if="prefix"
18
- :class="decorationClasses"
19
- @click="focusAction"
20
- >
21
- {{ prefix }}
22
- </div>
23
- </div>
24
-
25
- <input
26
- v-if="maskOptions"
27
- ref="input"
28
- v-maska="maskOptions"
29
- v-bind="bindings"
30
- :value="modelValue"
31
- :type="type"
32
- :autocomplete="autocomplete ? 'on' : 'off'"
33
- :class="baseClasses"
34
- @input="onInput"
35
- @click="onClick"
36
- @keydown="onKeydown"
37
- >
38
- <input
39
- v-else
40
- ref="input"
41
- v-bind="bindings"
42
- :value="modelValue"
43
- :type="type"
44
- :autocomplete="autocomplete ? 'on' : 'off'"
45
- :class="baseClasses"
46
- @input="onInput"
47
- @click="onClick"
48
- @keydown="onKeydown"
49
- >
50
- <div :class="decorationWrapClasses">
51
- <div
52
- v-if="suffix"
53
- :class="decorationClasses"
54
- @click="focusAction"
55
- >
56
- {{ suffix }}
57
- </div>
58
- <component
59
- :is="hasRightListener ? 'button' : 'div'"
60
- v-if="iconRight"
61
- :type="hasRightListener ? 'button' : undefined"
62
- :class="[decorationClasses, hasRightListener ? 'hover:bg-slate-100' : '']"
63
- @click="onIconRightClickInternal"
64
- >
65
- <BaseIcon
66
- :icon="iconRight"
67
- :class="iconClasses"
68
- />
69
- </component>
70
- </div>
71
- </div>
72
- </template>
73
-
74
- <script lang="ts" setup>
75
- import { get } from 'lodash';
76
- import { PropType } from 'vue';
77
- import { Icon as BaseIcon } from '@iconify/vue';
78
- import { useField } from '@/composables/field';
79
- import { vMaska } from 'maska/vue';
80
- import { Size, sizes } from '@/utils/sizes';
81
- import { twMerge } from 'tailwind-merge';
82
- import { MaskInputOptions, MaskType } from 'maska';
83
-
84
- defineOptions({
85
- inheritAttrs: false,
86
- })
87
-
88
- const props = defineProps({
89
- modelValue: {
90
- default: '',
91
- type: [String, Number, null] as PropType<string | number | null>,
92
- },
93
- class: {
94
- default: '',
95
- type: [String, Array] as PropType<string | string[]>,
96
- },
97
- type: {
98
- type: String,
99
- default: 'text',
100
- },
101
- step: {
102
- default: undefined,
103
- type: [null, Number] as PropType<undefined | null | number>,
104
- },
105
- autocomplete: {
106
- default: true,
107
- type: Boolean,
108
- },
109
- /**
110
- * Prevents submit when pressing 'Enter' while the input is focused.
111
- */
112
- preventSubmit: {
113
- default: false,
114
- type: Boolean,
115
- },
116
- name: {
117
- default: undefined,
118
- type: [null, String] as PropType<undefined | null | string>,
119
- },
120
- placeholder: {
121
- default: '',
122
- type: String,
123
- },
124
- disabled: {
125
- default: false,
126
- type: Boolean,
127
- },
128
- required: {
129
- default: undefined,
130
- type: Boolean,
131
- },
132
- iconLeft: {
133
- default: undefined,
134
- type: [null, String] as PropType<undefined | null | string>,
135
- },
136
- iconRight: {
137
- default: undefined,
138
- type: [null, String] as PropType<undefined | null | string>,
139
- },
140
- prefix: {
141
- default: undefined,
142
- type: [null, String] as PropType<undefined | null | string>,
143
- },
144
- suffix: {
145
- default: undefined,
146
- type: [null, String] as PropType<undefined | null | string>,
147
- },
148
- hasError: {
149
- default: false,
150
- type: Boolean,
151
- },
152
- size: {
153
- default: undefined,
154
- type: String as PropType<Size>,
155
- },
156
- min: {
157
- default: undefined,
158
- type: [null, Number] as PropType<undefined | null | number>,
159
- },
160
- max: {
161
- default: undefined,
162
- type: [null, Number] as PropType<undefined | null | number>,
163
- },
164
- mask: {
165
- type: [String, Array, Function] as PropType<string | string[] | MaskType>,
166
- default() {
167
- return null;
168
- },
169
- },
170
- visibleFocus: {
171
- default: true,
172
- type: Boolean,
173
- },
174
- onIconLeftClick: {
175
- default: undefined,
176
- type: Function as PropType<() => void>,
177
- },
178
- onIconRightClick: {
179
- default: undefined,
180
- type: Function as PropType<() => void>,
181
- },
182
- });
183
-
184
- const input = ref<HTMLInputElement | null>(null);
185
- const focus = ref(false);
186
-
187
- const hasLeftDecoration = computed(() => {
188
- return props.iconLeft || props.prefix;
189
- });
190
-
191
- const hasRightDecoration = computed(() => {
192
- return props.iconRight || props.suffix;
193
- });
194
-
195
- const hasLeftListener = computed(() => {
196
- return props.onIconLeftClick !== undefined;
197
- });
198
-
199
- const hasRightListener = computed(() => {
200
- return props.onIconRightClick !== undefined;
201
- });
202
-
203
- const maskOptions = computed(() => {
204
- if (props.mask) {
205
- return {
206
- mask: maskInternal.value,
207
- };
208
- }
209
- return undefined;
210
- });
211
-
212
- const bindings = computed<any>(() => {
213
- return {
214
- name: nameInternal.value,
215
- step: props.step,
216
- min: props.min,
217
- max: props.max,
218
- disabled: props.disabled,
219
- placeholder: props.placeholder,
220
- required: requiredInternal.value,
221
- onKeydown(event: KeyboardEvent) {
222
- if (event.code == 'Enter' && props.preventSubmit) {
223
- event.preventDefault();
224
- }
225
- },
226
- onFocus: (e: Event) => {
227
- emit('focus', e);
228
- focus.value = true;
229
- },
230
- onBlur: (e: Event) => {
231
- emit('blur', e);
232
- focus.value = false;
233
- },
234
- };
235
- });
236
-
237
- const maskInternal = computed(() => {
238
- if (props.mask === 'phone') {
239
- return '(###) ###-####';
240
- }
241
- if (props.mask === 'date') {
242
- return '####-##-##';
243
- }
244
- if (props.mask === 'time') {
245
- return '##:##:##';
246
- }
247
- if (props.mask === 'credit-card') {
248
- return '#### #### #### ####';
249
- }
250
- if (props.mask === 'zip-code-canada') {
251
- return '@#@ #@#';
252
- }
253
-
254
- return props.mask;
255
- });
256
-
257
- const emit = defineEmits(['update:modelValue', 'focus', 'blur', 'click', 'keydown']);
258
-
259
- const { nameInternal, requiredInternal, hasErrorInternal, emitUpdate, sizeInternal } =
260
- useField({
261
- name: computed(() => props.name),
262
- required: computed(() => props.required),
263
- hasError: computed(() => props.hasError),
264
- size: computed(() => props.size),
265
- emit: emit,
266
- });
267
-
268
- function onInput(event: any | null) {
269
- if (event === null) {
270
- emitUpdate(null);
271
- }
272
-
273
- return emitUpdate(get(event, 'target.value', ''));
274
- }
275
-
276
- function onClick(event: MouseEvent) {
277
- emit('click', event);
278
- }
279
-
280
- function onKeydown(event: KeyboardEvent) {
281
- emit('keydown', event);
282
- }
283
-
284
- const classes = computed(() => {
285
- const base = `inline-flex bg-white input-rounded border transition-colors duration-200`;
286
- const border = hasErrorInternal.value ? 'border-red-500' : 'border-slate-300';
287
- const disabled = props.disabled ? 'cursor-not-allowed text-slate-300' : '';
288
-
289
- const sizeConfig = sizes[sizeInternal.value];
290
- let focusClass = '';
291
- if (props.visibleFocus) {
292
- if (hasErrorInternal.value) {
293
- focusClass = 'focus-within:input-focus-error';
294
- } else {
295
- focusClass = 'focus-within:input-focus';
296
- }
297
- }
298
-
299
- return twMerge([
300
- base,
301
- border,
302
- disabled,
303
- sizeConfig.height,
304
- sizeConfig.fontSize,
305
- focusClass,
306
- props.class,
307
- ]);
308
- });
309
-
310
- const baseClasses = computed(() => {
311
- const base = `border-none outline-none bg-transparent grow min-w-0 focus:border-none focus:outline-none focus:ring-0`;
312
- const sizeConfig = sizes[sizeInternal.value];
313
- const disabled = props.disabled ? 'cursor-not-allowed text-slate-300' : '';
314
-
315
- const paddingX = {
316
- xs: [hasLeftDecoration.value ? 'pl-0' : 'pl-2', hasRightDecoration.value ? 'pr-0' : 'pr-2'],
317
- sm: [hasLeftDecoration.value ? 'pl-0' : 'pl-2.5', hasRightDecoration.value ? 'pr-0' : 'pr-2.5'],
318
- md: [hasLeftDecoration.value ? 'pl-0' : 'pl-3', hasRightDecoration.value ? 'pr-1' : 'pr-3'],
319
- lg: [hasLeftDecoration.value ? 'pl-0' : 'pl-4', hasRightDecoration.value ? 'pr-0' : 'pr-4'],
320
- xl: [hasLeftDecoration.value ? 'pl-0' : 'pl-5', hasRightDecoration.value ? 'pr-0' : 'pr-5'],
321
- }[sizeInternal.value];
322
-
323
- return [
324
- base,
325
- disabled,
326
- paddingX,
327
- sizeConfig.fontSize,
328
- ];
329
- });
330
-
331
- const decorationWrapClasses = computed(() => {
332
- const base = `flex justify-center empty:hidden`;
333
- const spacing = {
334
- xs: 'first:pl-0.5 last:pr-0.5 py-0.5',
335
- sm: 'first:pl-1 last:pr-1 py-1',
336
- md: 'first:pl-1 last:pr-1 py-1',
337
- lg: 'first:pl-1 last:pr-1 py-1.5',
338
- xl: 'first:pl-1 last:pr-1 py-2',
339
- }[sizeInternal.value];
340
-
341
- return [
342
- base,
343
- spacing,
344
- ];
345
- });
346
-
347
- const decorationClasses = computed(() => {
348
- const base = `flex items-center justify-center rounded-md whitespace-pre`;
349
- const textColor = hasErrorInternal.value ? 'text-red-800' : 'text-slate-500';
350
- const padding = {
351
- xs: 'p-1',
352
- sm: 'p-1.5',
353
- md: 'p-2',
354
- lg: 'p-1.5',
355
- xl: 'p-1.5',
356
- }[sizeInternal.value];
357
-
358
- return `${base} ${textColor} ${padding}`;
359
- });
360
-
361
- const iconClasses = computed(() => {
362
- const sizeConfig = sizes[sizeInternal.value];
363
-
364
- return [
365
- sizeConfig.iconSize,
366
- ];
367
- });
368
-
369
- function focusAction() {
370
- input.value?.focus();
371
- }
372
-
373
- function blurAction() {
374
- input.value?.blur();
375
- }
376
-
377
- function selectAction() {
378
- input.value?.select();
379
- }
380
-
381
- function onIconLeftClickInternal() {
382
- if (props.onIconLeftClick) {
383
- props.onIconLeftClick();
384
- } else {
385
- focusAction();
386
- }
387
- }
388
-
389
- function onIconRightClickInternal() {
390
- if (props.onIconRightClick) {
391
- props.onIconRightClick();
392
- } else {
393
- blurAction();
394
- }
395
- }
396
-
397
- defineExpose({
398
- focus: focusAction,
399
- blur: blurAction,
400
- select: selectAction,
401
- });
402
- </script>
1
+ <template>
2
+ <div :class="classes">
3
+ <div :class="decorationWrapClasses">
4
+ <component
5
+ :is="hasLeftListener ? 'button' : 'div'"
6
+ v-if="iconLeft"
7
+ :type="hasLeftListener ? 'button' : undefined"
8
+ :class="[decorationClasses, hasLeftListener ? 'hover:bg-slate-100' : '']"
9
+ @click="onIconLeftClickInternal"
10
+ >
11
+ <BaseIcon
12
+ :icon="iconLeft"
13
+ :class="iconClasses"
14
+ />
15
+ </component>
16
+ <div
17
+ v-if="prefix"
18
+ :class="decorationClasses"
19
+ @click="focusAction"
20
+ >
21
+ {{ prefix }}
22
+ </div>
23
+ </div>
24
+
25
+ <input
26
+ v-if="maskOptions"
27
+ ref="input"
28
+ v-maska="maskOptions"
29
+ v-bind="bindings"
30
+ :value="modelValue"
31
+ :type="type"
32
+ :autocomplete="autocomplete ? 'on' : 'off'"
33
+ :class="baseClasses"
34
+ @input="onInput"
35
+ @click="onClick"
36
+ @keydown="onKeydown"
37
+ >
38
+ <input
39
+ v-else
40
+ ref="input"
41
+ v-bind="bindings"
42
+ :value="modelValue"
43
+ :type="type"
44
+ :autocomplete="autocomplete ? 'on' : 'off'"
45
+ :class="baseClasses"
46
+ @input="onInput"
47
+ @click="onClick"
48
+ @keydown="onKeydown"
49
+ >
50
+ <div :class="decorationWrapClasses">
51
+ <div
52
+ v-if="suffix"
53
+ :class="decorationClasses"
54
+ @click="focusAction"
55
+ >
56
+ {{ suffix }}
57
+ </div>
58
+ <component
59
+ :is="hasRightListener ? 'button' : 'div'"
60
+ v-if="iconRight"
61
+ :type="hasRightListener ? 'button' : undefined"
62
+ :class="[decorationClasses, hasRightListener ? 'hover:bg-slate-100' : '']"
63
+ @click="onIconRightClickInternal"
64
+ >
65
+ <BaseIcon
66
+ :icon="iconRight"
67
+ :class="iconClasses"
68
+ />
69
+ </component>
70
+ </div>
71
+ </div>
72
+ </template>
73
+
74
+ <script lang="ts" setup>
75
+ import { get } from 'lodash';
76
+ import { PropType } from 'vue';
77
+ import { Icon as BaseIcon } from '@iconify/vue';
78
+ import { useField } from '@/composables/field';
79
+ import { vMaska } from 'maska/vue';
80
+ import { Size, sizes } from '@/utils/sizes';
81
+ import { twMerge } from 'tailwind-merge';
82
+ import { MaskInputOptions, MaskType } from 'maska';
83
+
84
+ defineOptions({
85
+ inheritAttrs: false,
86
+ })
87
+
88
+ const props = defineProps({
89
+ modelValue: {
90
+ default: '',
91
+ type: [String, Number, null] as PropType<string | number | null>,
92
+ },
93
+ class: {
94
+ default: '',
95
+ type: [String, Array] as PropType<string | string[]>,
96
+ },
97
+ type: {
98
+ type: String,
99
+ default: 'text',
100
+ },
101
+ step: {
102
+ default: undefined,
103
+ type: [null, Number] as PropType<undefined | null | number>,
104
+ },
105
+ autocomplete: {
106
+ default: true,
107
+ type: Boolean,
108
+ },
109
+ /**
110
+ * Prevents submit when pressing 'Enter' while the input is focused.
111
+ */
112
+ preventSubmit: {
113
+ default: false,
114
+ type: Boolean,
115
+ },
116
+ name: {
117
+ default: undefined,
118
+ type: [null, String] as PropType<undefined | null | string>,
119
+ },
120
+ placeholder: {
121
+ default: '',
122
+ type: String,
123
+ },
124
+ disabled: {
125
+ default: false,
126
+ type: Boolean,
127
+ },
128
+ required: {
129
+ default: undefined,
130
+ type: Boolean,
131
+ },
132
+ iconLeft: {
133
+ default: undefined,
134
+ type: [null, String] as PropType<undefined | null | string>,
135
+ },
136
+ iconRight: {
137
+ default: undefined,
138
+ type: [null, String] as PropType<undefined | null | string>,
139
+ },
140
+ prefix: {
141
+ default: undefined,
142
+ type: [null, String] as PropType<undefined | null | string>,
143
+ },
144
+ suffix: {
145
+ default: undefined,
146
+ type: [null, String] as PropType<undefined | null | string>,
147
+ },
148
+ hasError: {
149
+ default: false,
150
+ type: Boolean,
151
+ },
152
+ size: {
153
+ default: undefined,
154
+ type: String as PropType<Size>,
155
+ },
156
+ min: {
157
+ default: undefined,
158
+ type: [null, Number] as PropType<undefined | null | number>,
159
+ },
160
+ max: {
161
+ default: undefined,
162
+ type: [null, Number] as PropType<undefined | null | number>,
163
+ },
164
+ mask: {
165
+ type: [String, Array, Function] as PropType<string | string[] | MaskType>,
166
+ default() {
167
+ return null;
168
+ },
169
+ },
170
+ visibleFocus: {
171
+ default: true,
172
+ type: Boolean,
173
+ },
174
+ onIconLeftClick: {
175
+ default: undefined,
176
+ type: Function as PropType<() => void>,
177
+ },
178
+ onIconRightClick: {
179
+ default: undefined,
180
+ type: Function as PropType<() => void>,
181
+ },
182
+ });
183
+
184
+ const input = ref<HTMLInputElement | null>(null);
185
+ const focus = ref(false);
186
+
187
+ const hasLeftDecoration = computed(() => {
188
+ return props.iconLeft || props.prefix;
189
+ });
190
+
191
+ const hasRightDecoration = computed(() => {
192
+ return props.iconRight || props.suffix;
193
+ });
194
+
195
+ const hasLeftListener = computed(() => {
196
+ return props.onIconLeftClick !== undefined;
197
+ });
198
+
199
+ const hasRightListener = computed(() => {
200
+ return props.onIconRightClick !== undefined;
201
+ });
202
+
203
+ const maskOptions = computed(() => {
204
+ if (props.mask) {
205
+ return {
206
+ mask: maskInternal.value,
207
+ };
208
+ }
209
+ return undefined;
210
+ });
211
+
212
+ const bindings = computed<any>(() => {
213
+ return {
214
+ name: nameInternal.value,
215
+ step: props.step,
216
+ min: props.min,
217
+ max: props.max,
218
+ disabled: props.disabled,
219
+ placeholder: props.placeholder,
220
+ required: requiredInternal.value,
221
+ onKeydown(event: KeyboardEvent) {
222
+ if (event.code == 'Enter' && props.preventSubmit) {
223
+ event.preventDefault();
224
+ }
225
+ },
226
+ onFocus: (e: Event) => {
227
+ emit('focus', e);
228
+ focus.value = true;
229
+ },
230
+ onBlur: (e: Event) => {
231
+ emit('blur', e);
232
+ focus.value = false;
233
+ },
234
+ };
235
+ });
236
+
237
+ const maskInternal = computed(() => {
238
+ if (props.mask === 'phone') {
239
+ return '(###) ###-####';
240
+ }
241
+ if (props.mask === 'date') {
242
+ return '####-##-##';
243
+ }
244
+ if (props.mask === 'time') {
245
+ return '##:##:##';
246
+ }
247
+ if (props.mask === 'credit-card') {
248
+ return '#### #### #### ####';
249
+ }
250
+ if (props.mask === 'zip-code-canada') {
251
+ return '@#@ #@#';
252
+ }
253
+
254
+ return props.mask;
255
+ });
256
+
257
+ const emit = defineEmits(['update:modelValue', 'focus', 'blur', 'click', 'keydown']);
258
+
259
+ const { nameInternal, requiredInternal, hasErrorInternal, emitUpdate, sizeInternal } =
260
+ useField({
261
+ name: computed(() => props.name),
262
+ required: computed(() => props.required),
263
+ hasError: computed(() => props.hasError),
264
+ size: computed(() => props.size),
265
+ emit: emit,
266
+ });
267
+
268
+ function onInput(event: any | null) {
269
+ if (event === null) {
270
+ emitUpdate(null);
271
+ }
272
+
273
+ return emitUpdate(get(event, 'target.value', ''));
274
+ }
275
+
276
+ function onClick(event: MouseEvent) {
277
+ emit('click', event);
278
+ }
279
+
280
+ function onKeydown(event: KeyboardEvent) {
281
+ emit('keydown', event);
282
+ }
283
+
284
+ const classes = computed(() => {
285
+ const base = `inline-flex bg-white input-rounded border transition-colors duration-200`;
286
+ const border = hasErrorInternal.value ? 'border-red-500' : 'border-slate-300';
287
+ const disabled = props.disabled ? 'cursor-not-allowed text-slate-300' : '';
288
+
289
+ const sizeConfig = sizes[sizeInternal.value];
290
+ let focusClass = '';
291
+ if (props.visibleFocus) {
292
+ if (hasErrorInternal.value) {
293
+ focusClass = 'focus-within:input-focus-error';
294
+ } else {
295
+ focusClass = 'focus-within:input-focus';
296
+ }
297
+ }
298
+
299
+ return twMerge([
300
+ base,
301
+ border,
302
+ disabled,
303
+ sizeConfig.height,
304
+ sizeConfig.fontSize,
305
+ focusClass,
306
+ props.class,
307
+ ]);
308
+ });
309
+
310
+ const baseClasses = computed(() => {
311
+ const base = `border-none outline-none bg-transparent grow min-w-0 focus:border-none focus:outline-none focus:ring-0`;
312
+ const sizeConfig = sizes[sizeInternal.value];
313
+ const disabled = props.disabled ? 'cursor-not-allowed text-slate-300' : '';
314
+
315
+ const paddingX = {
316
+ xs: [hasLeftDecoration.value ? 'pl-0' : 'pl-2', hasRightDecoration.value ? 'pr-0' : 'pr-2'],
317
+ sm: [hasLeftDecoration.value ? 'pl-0' : 'pl-2.5', hasRightDecoration.value ? 'pr-0' : 'pr-2.5'],
318
+ md: [hasLeftDecoration.value ? 'pl-0' : 'pl-3', hasRightDecoration.value ? 'pr-1' : 'pr-3'],
319
+ lg: [hasLeftDecoration.value ? 'pl-0' : 'pl-4', hasRightDecoration.value ? 'pr-0' : 'pr-4'],
320
+ xl: [hasLeftDecoration.value ? 'pl-0' : 'pl-5', hasRightDecoration.value ? 'pr-0' : 'pr-5'],
321
+ }[sizeInternal.value];
322
+
323
+ return [
324
+ base,
325
+ disabled,
326
+ paddingX,
327
+ sizeConfig.fontSize,
328
+ ];
329
+ });
330
+
331
+ const decorationWrapClasses = computed(() => {
332
+ const base = `flex justify-center empty:hidden`;
333
+ const spacing = {
334
+ xs: 'first:pl-0.5 last:pr-0.5 py-0.5',
335
+ sm: 'first:pl-1 last:pr-1 py-1',
336
+ md: 'first:pl-1 last:pr-1 py-1',
337
+ lg: 'first:pl-1 last:pr-1 py-1.5',
338
+ xl: 'first:pl-1 last:pr-1 py-2',
339
+ }[sizeInternal.value];
340
+
341
+ return [
342
+ base,
343
+ spacing,
344
+ ];
345
+ });
346
+
347
+ const decorationClasses = computed(() => {
348
+ const base = `flex items-center justify-center rounded-md`;
349
+ const textColor = hasErrorInternal.value ? 'text-red-800' : 'text-slate-500';
350
+ const padding = {
351
+ xs: 'p-1',
352
+ sm: 'p-1.5',
353
+ md: 'p-2',
354
+ lg: 'p-1.5',
355
+ xl: 'p-1.5',
356
+ }[sizeInternal.value];
357
+
358
+ return `${base} ${textColor} ${padding}`;
359
+ });
360
+
361
+ const iconClasses = computed(() => {
362
+ const sizeConfig = sizes[sizeInternal.value];
363
+
364
+ return [
365
+ sizeConfig.iconSize,
366
+ ];
367
+ });
368
+
369
+ function focusAction() {
370
+ input.value?.focus();
371
+ }
372
+
373
+ function blurAction() {
374
+ input.value?.blur();
375
+ }
376
+
377
+ function selectAction() {
378
+ input.value?.select();
379
+ }
380
+
381
+ function onIconLeftClickInternal() {
382
+ if (props.onIconLeftClick) {
383
+ props.onIconLeftClick();
384
+ } else {
385
+ focusAction();
386
+ }
387
+ }
388
+
389
+ function onIconRightClickInternal() {
390
+ if (props.onIconRightClick) {
391
+ props.onIconRightClick();
392
+ } else {
393
+ blurAction();
394
+ }
395
+ }
396
+
397
+ defineExpose({
398
+ focus: focusAction,
399
+ blur: blurAction,
400
+ select: selectAction,
401
+ });
402
+ </script>