@indielayer/ui 1.5.2 → 1.6.0

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 (210) hide show
  1. package/README.md +1 -1
  2. package/docs/components/common/DocumentPage.vue +0 -30
  3. package/docs/components/menu/DocsMenu.vue +2 -0
  4. package/docs/pages/component/datepicker/index.vue +35 -0
  5. package/docs/pages/component/datepicker/usage.vue +22 -0
  6. package/docs/pages/component/form/usage.vue +13 -0
  7. package/docs/pages/component/menu/usage.vue +7 -3
  8. package/docs/pages/component/qrCode/index.vue +25 -0
  9. package/docs/pages/component/qrCode/usage.vue +20 -0
  10. package/docs/pages/component/slider/usage.vue +8 -10
  11. package/docs/pages/index.vue +9 -19
  12. package/lib/components/button/Button.vue.d.ts +3 -3
  13. package/lib/components/button/Button.vue.js +2 -2
  14. package/lib/components/button/Button.vue2.js +10 -10
  15. package/lib/components/carousel/Carousel.vue.d.ts +8 -2
  16. package/lib/components/carousel/Carousel.vue.js +51 -48
  17. package/lib/components/checkbox/theme/Checkbox.base.theme.js +1 -1
  18. package/lib/components/datepicker/Datepicker.vue.d.ts +1886 -0
  19. package/lib/components/datepicker/Datepicker.vue.js +328 -0
  20. package/lib/components/datepicker/Datepicker.vue2.js +4 -0
  21. package/lib/components/datepicker/Datepicker.vue3.js +5 -0
  22. package/lib/components/datepicker/__tests__/Datepicker.spec.d.ts +1 -0
  23. package/lib/components/datepicker/index.d.ts +2 -0
  24. package/lib/components/datepicker/theme/Datepicker.base.theme.d.ts +3 -0
  25. package/lib/components/datepicker/theme/Datepicker.base.theme.js +65 -0
  26. package/lib/components/datepicker/theme/Datepicker.carbon.theme.d.ts +3 -0
  27. package/lib/components/datepicker/theme/Datepicker.carbon.theme.js +5 -0
  28. package/lib/components/drawer/Drawer.vue.js +1 -1
  29. package/lib/components/drawer/theme/Drawer.base.theme.js +1 -1
  30. package/lib/components/formGroup/FormGroup.vue.js +42 -36
  31. package/lib/components/index.d.ts +2 -0
  32. package/lib/components/index.js +99 -94
  33. package/lib/components/menu/Menu.vue.d.ts +4 -0
  34. package/lib/components/menu/Menu.vue.js +40 -34
  35. package/lib/components/menu/MenuItem.vue.d.ts +4 -0
  36. package/lib/components/menu/MenuItem.vue.js +1 -1
  37. package/lib/components/menu/MenuItem.vue2.js +43 -39
  38. package/lib/components/menu/theme/MenuItem.base.theme.js +1 -1
  39. package/lib/components/qrCode/QrCode.vue.d.ts +68 -0
  40. package/lib/components/qrCode/QrCode.vue.js +93 -0
  41. package/lib/components/qrCode/QrCode.vue2.js +4 -0
  42. package/lib/components/qrCode/__tests__/QrCode.spec.d.ts +1 -0
  43. package/lib/components/qrCode/index.d.ts +2 -0
  44. package/lib/components/qrCode/qrcodegen.d.ts +94 -0
  45. package/lib/components/qrCode/qrcodegen.js +571 -0
  46. package/lib/components/qrCode/theme/QrCode.base.theme.d.ts +3 -0
  47. package/lib/components/qrCode/theme/QrCode.base.theme.js +8 -0
  48. package/lib/components/qrCode/theme/QrCode.carbon.theme.d.ts +3 -0
  49. package/lib/components/qrCode/theme/QrCode.carbon.theme.js +5 -0
  50. package/lib/components/slider/Slider.vue.d.ts +31 -31
  51. package/lib/components/slider/Slider.vue.js +5 -146
  52. package/lib/components/slider/Slider.vue2.js +101 -2
  53. package/lib/components/slider/Slider.vue3.js +4 -0
  54. package/lib/components/slider/theme/Slider.base.theme.js +14 -10
  55. package/lib/components/slider/theme/Slider.carbon.theme.js +3 -14
  56. package/lib/index.js +117 -113
  57. package/lib/index.umd.js +39 -3
  58. package/lib/node_modules/.pnpm/@vuepic_vue-datepicker@8.0.0_vue@3.3.9/node_modules/@vuepic/vue-datepicker/dist/main.css.js +4 -0
  59. package/lib/node_modules/.pnpm/@vuepic_vue-datepicker@8.0.0_vue@3.3.9/node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js +5011 -0
  60. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/_lib/addLeadingZeros.js +7 -0
  61. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/_lib/defaultOptions.js +7 -0
  62. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/_lib/format/formatters.js +518 -0
  63. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/_lib/format/lightFormatters.js +59 -0
  64. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/_lib/format/longFormatters.js +52 -0
  65. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +18 -0
  66. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/_lib/protectedTokens.js +21 -0
  67. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/add.js +20 -0
  68. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/addDays.js +10 -0
  69. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/addMonths.js +21 -0
  70. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/addQuarters.js +9 -0
  71. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/addYears.js +8 -0
  72. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/constants.js +8 -0
  73. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/constructFrom.js +7 -0
  74. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/differenceInCalendarDays.js +11 -0
  75. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/eachDayOfInterval.js +19 -0
  76. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/eachQuarterOfInterval.js +20 -0
  77. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/endOfQuarter.js +9 -0
  78. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/endOfWeek.js +11 -0
  79. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/endOfYear.js +9 -0
  80. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/format.js +60 -0
  81. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getDay.js +8 -0
  82. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getDayOfYear.js +11 -0
  83. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getDaysInMonth.js +10 -0
  84. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getDefaultOptions.js +8 -0
  85. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getHours.js +8 -0
  86. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getISODay.js +9 -0
  87. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getISOWeek.js +12 -0
  88. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getISOWeekYear.js +15 -0
  89. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getMinutes.js +8 -0
  90. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getMonth.js +8 -0
  91. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getQuarter.js +9 -0
  92. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getSeconds.js +8 -0
  93. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getWeek.js +12 -0
  94. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getWeekYear.js +17 -0
  95. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/getYear.js +8 -0
  96. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/isAfter.js +9 -0
  97. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/isBefore.js +9 -0
  98. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/isDate.js +7 -0
  99. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/isEqual.js +9 -0
  100. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/isSameQuarter.js +9 -0
  101. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/isValid.js +12 -0
  102. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +9 -0
  103. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +18 -0
  104. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/locale/_lib/buildMatchFn.js +31 -0
  105. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +17 -0
  106. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +70 -0
  107. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/locale/en-US/_lib/formatLong.js +33 -0
  108. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +11 -0
  109. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/locale/en-US/_lib/localize.js +155 -0
  110. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/locale/en-US/_lib/match.js +110 -0
  111. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/locale/en-US.js +21 -0
  112. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/Parser.js +22 -0
  113. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/Setter.js +40 -0
  114. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/constants.js +49 -0
  115. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js +49 -0
  116. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js +49 -0
  117. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/DateParser.js +61 -0
  118. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js +51 -0
  119. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/DayParser.js +45 -0
  120. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js +49 -0
  121. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/EraParser.js +30 -0
  122. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js +21 -0
  123. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js +22 -0
  124. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js +32 -0
  125. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js +32 -0
  126. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js +33 -0
  127. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js +33 -0
  128. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js +99 -0
  129. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js +48 -0
  130. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js +48 -0
  131. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js +49 -0
  132. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js +40 -0
  133. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js +74 -0
  134. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js +48 -0
  135. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js +69 -0
  136. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js +32 -0
  137. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/MonthParser.js +71 -0
  138. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js +70 -0
  139. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/SecondParser.js +32 -0
  140. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js +74 -0
  141. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js +71 -0
  142. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js +70 -0
  143. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js +22 -0
  144. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js +22 -0
  145. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers/YearParser.js +49 -0
  146. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/parsers.js +67 -0
  147. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse/_lib/utils.js +103 -0
  148. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parse.js +90 -0
  149. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/parseISO.js +128 -0
  150. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/set.js +11 -0
  151. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/setDay.js +12 -0
  152. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/setHours.js +9 -0
  153. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/setISODay.js +11 -0
  154. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/setISOWeek.js +10 -0
  155. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/setMilliseconds.js +9 -0
  156. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/setMinutes.js +9 -0
  157. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/setMonth.js +13 -0
  158. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/setSeconds.js +9 -0
  159. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/setWeek.js +10 -0
  160. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/setYear.js +10 -0
  161. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/startOfDay.js +9 -0
  162. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/startOfISOWeek.js +8 -0
  163. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/startOfISOWeekYear.js +11 -0
  164. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/startOfQuarter.js +9 -0
  165. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/startOfWeek.js +11 -0
  166. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/startOfWeekYear.js +13 -0
  167. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/startOfYear.js +10 -0
  168. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/sub.js +19 -0
  169. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/subDays.js +8 -0
  170. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/subMonths.js +8 -0
  171. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/subYears.js +8 -0
  172. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/toDate.js +8 -0
  173. package/lib/node_modules/.pnpm/date-fns@3.3.1/node_modules/date-fns/transpose.js +18 -0
  174. package/lib/theme.d.ts +3 -1
  175. package/lib/themes/base/components.d.ts +2 -0
  176. package/lib/themes/base/components.js +82 -78
  177. package/lib/themes/carbon/components.d.ts +2 -0
  178. package/lib/themes/carbon/components.js +82 -78
  179. package/lib/version.d.ts +1 -1
  180. package/lib/version.js +1 -1
  181. package/package.json +2 -1
  182. package/src/components/button/Button.vue +1 -1
  183. package/src/components/carousel/Carousel.vue +8 -3
  184. package/src/components/checkbox/theme/Checkbox.base.theme.ts +1 -1
  185. package/src/components/datepicker/Datepicker.vue +414 -0
  186. package/src/components/datepicker/__tests__/Datepicker.spec.ts +11 -0
  187. package/src/components/datepicker/index.ts +2 -0
  188. package/src/components/datepicker/theme/Datepicker.base.theme.ts +72 -0
  189. package/src/components/datepicker/theme/Datepicker.carbon.theme.ts +7 -0
  190. package/src/components/drawer/Drawer.vue +1 -1
  191. package/src/components/drawer/theme/Drawer.base.theme.ts +1 -1
  192. package/src/components/formGroup/FormGroup.vue +5 -0
  193. package/src/components/index.ts +2 -0
  194. package/src/components/menu/Menu.vue +6 -0
  195. package/src/components/menu/MenuItem.vue +2 -1
  196. package/src/components/menu/theme/MenuItem.base.theme.ts +1 -1
  197. package/src/components/qrCode/QrCode.vue +120 -0
  198. package/src/components/qrCode/__tests__/QrCode.spec.ts +14 -0
  199. package/src/components/qrCode/index.ts +2 -0
  200. package/src/components/qrCode/qrcodegen.ts +991 -0
  201. package/src/components/qrCode/theme/QrCode.base.theme.ts +9 -0
  202. package/src/components/qrCode/theme/QrCode.carbon.theme.ts +7 -0
  203. package/src/components/slider/Slider.vue +63 -137
  204. package/src/components/slider/theme/Slider.base.theme.ts +10 -5
  205. package/src/components/slider/theme/Slider.carbon.theme.ts +2 -16
  206. package/src/theme.ts +4 -0
  207. package/src/themes/base/components.ts +2 -0
  208. package/src/themes/carbon/components.ts +2 -0
  209. package/src/version.ts +1 -1
  210. package/volar.d.ts +2 -0
@@ -0,0 +1,414 @@
1
+ <script lang="ts">
2
+ const vueDatepickerProps = {
3
+ multiCalendars: { type: [Boolean, Number, String, Object] as PropType<VueDatePickerProps['multiCalendars']>, default: undefined },
4
+ modelValue: { type: [String, Date, Array, Object, Number] as PropType<ModelValue>, default: null },
5
+ modelType: { type: String as PropType<VueDatePickerProps['modelType']>, default: null },
6
+ position: { type: String as PropType<VueDatePickerProps['position']>, default: 'center' },
7
+ dark: { type: Boolean as PropType<boolean>, default: false },
8
+ format: {
9
+ type: [String, Function] as PropType<VueDatePickerProps['format']>,
10
+ default: () => null,
11
+ },
12
+ autoPosition: { type: Boolean as PropType<boolean>, default: true },
13
+ altPosition: { type: Function as PropType<VueDatePickerProps['altPosition']>, default: null },
14
+ transitions: { type: [Boolean, Object] as PropType<boolean | Partial<VueDatePickerProps['transitions']>>, default: true },
15
+ formatLocale: { type: Object as PropType<Locale>, default: null },
16
+ utc: { type: [Boolean, String] as PropType<boolean | 'preserve'>, default: false },
17
+ ariaLabels: { type: Object as PropType<Partial<VueDatePickerProps['ariaLabels']>>, default: () => ({}) },
18
+ offset: { type: [Number, String] as PropType<number | string>, default: 10 },
19
+ hideNavigation: { type: Array as PropType<VueDatePickerProps['hideNavigation']>, default: () => [] },
20
+ timezone: { type: [String, Object] as PropType<VueDatePickerProps['timezone']>, default: null },
21
+ emitTimezone: { type: String as PropType<string>, default: null },
22
+ vertical: { type: Boolean as PropType<boolean>, default: false },
23
+ disableMonthYearSelect: { type: Boolean as PropType<boolean>, default: false },
24
+ disableYearSelect: { type: Boolean as PropType<boolean>, default: false },
25
+ menuClassName: { type: String as PropType<string>, default: null },
26
+ dayClass: { type: Function as PropType<(date: Date) => string>, default: null },
27
+ yearRange: { type: Array as PropType<number[]>, default: () => [1900, 2100] },
28
+ calendarCellClassName: { type: String as PropType<string>, default: null },
29
+ enableTimePicker: { type: Boolean as PropType<boolean>, default: true },
30
+ autoApply: { type: Boolean as PropType<boolean>, default: false },
31
+ disabledDates: { type: [Array, Function] as PropType<VueDatePickerProps['disabledDates']>, default: () => [] },
32
+ monthNameFormat: { type: String as PropType<'long' | 'short'>, default: 'short' },
33
+ startDate: { type: [Date, String] as PropType<string | Date>, default: null },
34
+ startTime: { type: [Object, Array] as PropType<VueDatePickerProps['startTime']>, default: null },
35
+ hideOffsetDates: { type: Boolean as PropType<boolean>, default: false },
36
+ autoRange: { type: [Number, String] as PropType<number | string>, default: null },
37
+ noToday: { type: Boolean as PropType<boolean>, default: false },
38
+ disabledWeekDays: { type: Array as PropType<string[] | number[]>, default: () => [] },
39
+ allowedDates: { type: Array as PropType<string[] | Date[]>, default: null },
40
+ nowButtonLabel: { type: String as PropType<string>, default: 'Now' },
41
+ markers: { type: Array as PropType<VueDatePickerProps['markers']>, default: () => [] },
42
+ escClose: { type: Boolean as PropType<boolean>, default: true },
43
+ spaceConfirm: { type: Boolean as PropType<boolean>, default: true },
44
+ monthChangeOnArrows: { type: Boolean as PropType<boolean>, default: true },
45
+ presetDates: { type: Array as PropType<VueDatePickerProps['presetDates']>, default: () => [] },
46
+ flow: { type: Array as PropType<VueDatePickerProps['flow']>, default: () => [] },
47
+ partialFlow: { type: Boolean as PropType<boolean>, default: false },
48
+ preventMinMaxNavigation: { type: Boolean as PropType<boolean>, default: false },
49
+ minRange: { type: [Number, String] as PropType<number | string>, default: null },
50
+ maxRange: { type: [Number, String] as PropType<number | string>, default: null },
51
+ multiDatesLimit: { type: [Number, String] as PropType<number | string>, default: null },
52
+ reverseYears: { type: Boolean as PropType<boolean>, default: false },
53
+ weekPicker: { type: Boolean as PropType<boolean>, default: false },
54
+ filters: { type: Object as PropType<Partial<VueDatePickerProps['filters']>>, default: () => ({}) },
55
+ arrowNavigation: { type: Boolean as PropType<boolean>, default: false },
56
+ disableTimeRangeValidation: { type: Boolean as PropType<boolean>, default: false },
57
+ highlight: {
58
+ type: [Function, Object] as PropType<VueDatePickerProps['highlight']>,
59
+ default: null,
60
+ },
61
+ teleport: { type: [String, Boolean, Object] as PropType<string | boolean | HTMLElement>, default: null },
62
+ teleportCenter: { type: Boolean as PropType<boolean>, default: false },
63
+ locale: { type: String as PropType<string>, default: 'en-Us' },
64
+ weekNumName: { type: String as PropType<string>, default: 'W' },
65
+ weekStart: { type: [Number, String] as PropType<VueDatePickerProps['weekStart']>, default: 1 },
66
+ weekNumbers: {
67
+ type: [String, Function, Object] as PropType<VueDatePickerProps['weekNumbers']>,
68
+ default: null,
69
+ },
70
+ calendarClassName: { type: String as PropType<string>, default: null },
71
+ monthChangeOnScroll: { type: [Boolean, String] as PropType<boolean | 'inverse'>, default: true },
72
+ dayNames: {
73
+ type: [Function, Array] as PropType<((lang: string, weekStart: number) => string[]) | string[]>,
74
+ default: null,
75
+ },
76
+ monthPicker: { type: Boolean as PropType<boolean>, default: false },
77
+ customProps: { type: Object as PropType<Record<string, unknown>>, default: null },
78
+ yearPicker: { type: Boolean as PropType<boolean>, default: false },
79
+ modelAuto: { type: Boolean as PropType<boolean>, default: false },
80
+ selectText: { type: String as PropType<string>, default: 'Select' },
81
+ cancelText: { type: String as PropType<string>, default: 'Cancel' },
82
+ previewFormat: {
83
+ type: [String, Function] as PropType<VueDatePickerProps['previewFormat']>,
84
+ default: () => '',
85
+ },
86
+ multiDates: { type: Boolean as PropType<boolean>, default: false },
87
+ partialRange: { type: Boolean as PropType<boolean>, default: true },
88
+ ignoreTimeValidation: { type: Boolean as PropType<boolean>, default: false },
89
+ minDate: { type: [Date, String] as PropType<Date | string>, default: null },
90
+ maxDate: { type: [Date, String] as PropType<Date | string>, default: null },
91
+ minTime: { type: Object as PropType<Partial<TimeModel>>, default: null },
92
+ maxTime: { type: Object as PropType<Partial<TimeModel>>, default: null },
93
+ placeholder: { type: String as PropType<string>, default: '' },
94
+ hideInputIcon: { type: Boolean as PropType<boolean>, default: false },
95
+ clearable: { type: Boolean as PropType<boolean>, default: true },
96
+ state: { type: Boolean as PropType<VueDatePickerProps['state']>, default: null },
97
+ required: { type: Boolean as PropType<boolean>, default: false },
98
+ autocomplete: { type: String as PropType<string>, default: 'off' },
99
+ inputClassName: { type: String as PropType<string>, default: null },
100
+ fixedStart: { type: Boolean as PropType<boolean>, default: false },
101
+ fixedEnd: { type: Boolean as PropType<boolean>, default: false },
102
+ timePicker: { type: Boolean as PropType<boolean>, default: false },
103
+ enableSeconds: { type: Boolean as PropType<boolean>, default: false },
104
+ is24: { type: Boolean as PropType<boolean>, default: true },
105
+ noHoursOverlay: { type: Boolean as PropType<boolean>, default: false },
106
+ noMinutesOverlay: { type: Boolean as PropType<boolean>, default: false },
107
+ noSecondsOverlay: { type: Boolean as PropType<boolean>, default: false },
108
+ hoursGridIncrement: { type: [String, Number] as PropType<string | number>, default: 1 },
109
+ minutesGridIncrement: { type: [String, Number] as PropType<string | number>, default: 5 },
110
+ secondsGridIncrement: { type: [String, Number] as PropType<string | number>, default: 5 },
111
+ hoursIncrement: { type: [Number, String] as PropType<number | string>, default: 1 },
112
+ minutesIncrement: { type: [Number, String] as PropType<number | string>, default: 1 },
113
+ secondsIncrement: { type: [Number, String] as PropType<number | string>, default: 1 },
114
+ range: { type: [Boolean, Object] as PropType<VueDatePickerProps['range']>, default: false },
115
+ uid: { type: String as PropType<string>, default: null },
116
+ inline: { type: [Boolean, Object] as PropType<VueDatePickerProps['inline']>, default: false },
117
+ textInput: { type: [Boolean, Object] as PropType<VueDatePickerProps['textInput']>, default: false },
118
+ noDisabledRange: { type: Boolean as PropType<boolean>, default: false },
119
+ sixWeeks: { type: [Boolean, String] as PropType<VueDatePickerProps['sixWeeks']>, default: false },
120
+ actionRow: { type: Object as PropType<Partial<any>>, default: () => ({}) },
121
+ focusStartDate: { type: Boolean as PropType<boolean>, default: false },
122
+ disabledTimes: { type: [Function, Array] as PropType<VueDatePickerProps['disabledTimes']>, default: undefined },
123
+ showLastInRange: { type: Boolean as PropType<boolean>, default: true },
124
+ timePickerInline: { type: Boolean as PropType<boolean>, default: false },
125
+ calendar: { type: Function as PropType<VueDatePickerProps['calendar']>, default: null },
126
+ config: { type: Object as PropType<Partial<VueDatePickerProps['config']>>, default: undefined },
127
+ quarterPicker: { type: Boolean as PropType<boolean>, default: false },
128
+ yearFirst: { type: Boolean as PropType<boolean>, default: false },
129
+ }
130
+
131
+ const datepickerProps = {
132
+ ...useCommon.props(),
133
+ ...useInteractive.props(),
134
+ ...useInputtable.props(),
135
+ ...vueDatepickerProps,
136
+ }
137
+
138
+ export type DatepickerProps = ExtractPublicPropTypes<typeof datepickerProps>
139
+
140
+ type InternalClasses = 'wrapper'
141
+ export interface DatepickerTheme extends ThemeComponent<DatepickerProps, InternalClasses> {}
142
+
143
+ export default {
144
+ name: 'XDatepicker',
145
+ }
146
+ </script>
147
+
148
+ <script setup lang="ts">
149
+ import { ref, type ExtractPublicPropTypes, type PropType } from 'vue'
150
+ import { useMutationObserver } from '@vueuse/core'
151
+ import { useCommon } from '../../composables/useCommon'
152
+ import { useInputtable } from '../../composables/useInputtable'
153
+ import { useInteractive } from '../../composables/useInteractive'
154
+ import { useTheme, type ThemeComponent } from '../../composables/useTheme'
155
+ import XInput from '../input/Input.vue'
156
+ import type { Locale } from 'date-fns'
157
+ import VueDatepicker, { type ModelValue, type TimeModel, type VueDatePickerProps } from '@vuepic/vue-datepicker'
158
+ import '@vuepic/vue-datepicker/dist/main.css'
159
+
160
+ const props = defineProps(datepickerProps)
161
+
162
+ const emit = defineEmits(useInputtable.emits())
163
+
164
+ const inputRef = ref<InstanceType<typeof XInput> | null>(null)
165
+
166
+ function onSelect(value: Date | Date[]) {
167
+ emit('update:modelValue', value)
168
+
169
+ setTimeout(validate)
170
+ }
171
+
172
+ function blur() {
173
+ inputRef.value?.blur()
174
+ }
175
+
176
+ function focus() {
177
+ inputRef.value?.focus()
178
+ }
179
+
180
+ function validate() {
181
+ inputRef.value?.validate()
182
+ }
183
+
184
+ const htmlNode = document?.querySelector('html')
185
+ const dark = ref(htmlNode?.classList.contains('dark') ?? false)
186
+
187
+ useMutationObserver(htmlNode, (mutations) => {
188
+ if (mutations[0] && mutations[0].attributeName === 'class') {
189
+ dark.value = htmlNode?.classList.contains('dark') ?? false
190
+ }
191
+ }, {
192
+ attributes: true,
193
+ })
194
+
195
+ defineExpose({ focus, blur, validate })
196
+
197
+ const { styles, classes, className } = useTheme('Datepicker', {}, props)
198
+ </script>
199
+
200
+ <template>
201
+ <div
202
+ :style="styles"
203
+ :class="[
204
+ className,
205
+ classes.wrapper,
206
+ ]"
207
+ >
208
+ <vue-datepicker
209
+ :model-value="modelValue"
210
+ :multi-calendars="multiCalendars"
211
+ :model-type="modelType"
212
+ :position="position"
213
+ :dark="dark"
214
+ :format="format"
215
+ :auto-position="autoPosition"
216
+ :alt-position="altPosition"
217
+ :transitions="transitions"
218
+ :format-locale="formatLocale"
219
+ :utc="utc"
220
+ :aria-labels="ariaLabels"
221
+ :offset="offset"
222
+ :hide-navigation="hideNavigation"
223
+ :timezone="timezone"
224
+ :emit-timezone="emitTimezone"
225
+ :vertical="vertical"
226
+ :disable-month-year-select="disableMonthYearSelect"
227
+ :disable-year-select="disableYearSelect"
228
+ :menu-class-name="menuClassName"
229
+ :day-class="dayClass"
230
+ :year-range="yearRange"
231
+ :calendar-cell-class-name="calendarCellClassName"
232
+ :enable-time-picker="enableTimePicker"
233
+ :auto-apply="autoApply"
234
+ :disabled-dates="disabledDates"
235
+ :month-name-format="monthNameFormat"
236
+ :start-date="startDate"
237
+ :start-time="startTime"
238
+ :hide-offset-dates="hideOffsetDates"
239
+ :auto-range="autoRange"
240
+ :no-today="noToday"
241
+ :disabled-week-days="disabledWeekDays"
242
+ :allowed-dates="allowedDates"
243
+ :now-button-label="nowButtonLabel"
244
+ :markers="markers"
245
+ :esc-close="escClose"
246
+ :space-confirm="spaceConfirm"
247
+ :month-change-on-arrows="monthChangeOnArrows"
248
+ :preset-dates="presetDates"
249
+ :flow="flow"
250
+ :partial-flow="partialFlow"
251
+ :prevent-min-max-navigation="preventMinMaxNavigation"
252
+ :min-range="minRange"
253
+ :max-range="maxRange"
254
+ :multi-dates-limit="multiDatesLimit"
255
+ :reverse-years="reverseYears"
256
+ :week-picker="weekPicker"
257
+ :filters="filters"
258
+ :arrow-navigation="arrowNavigation"
259
+ :disable-time-range-validation="disableTimeRangeValidation"
260
+ :highlight="highlight"
261
+ :teleport="teleport"
262
+ :teleport-center="teleportCenter"
263
+ :locale="locale"
264
+ :week-num-name="weekNumName"
265
+ :week-start="weekStart"
266
+ :week-numbers="weekNumbers"
267
+ :calendar-class-name="calendarClassName"
268
+ :month-change-on-scroll="monthChangeOnScroll"
269
+ :day-names="dayNames"
270
+ :month-picker="monthPicker"
271
+ :custom-props="customProps"
272
+ :year-picker="yearPicker"
273
+ :model-auto="modelAuto"
274
+ :select-text="selectText"
275
+ :cancel-text="cancelText"
276
+ :preview-format="previewFormat"
277
+ :multi-dates="multiDates"
278
+ :partial-range="partialRange"
279
+ :ignore-time-validation="ignoreTimeValidation"
280
+ :min-date="minDate"
281
+ :max-date="maxDate"
282
+ :placeholder="placeholder"
283
+ :hide-input-icon="hideInputIcon"
284
+ :clearable="clearable"
285
+ :state="state"
286
+ :required="required"
287
+ :autocomplete="autocomplete"
288
+ :input-class-name="inputClassName"
289
+ :fixed-start="fixedStart"
290
+ :fixed-end="fixedEnd"
291
+ :time-picker="timePicker"
292
+ :enable-seconds="enableSeconds"
293
+ :no-hours-overlay="noHoursOverlay"
294
+ :no-minutes-overlay="noMinutesOverlay"
295
+ :no-seconds-overlay="noSecondsOverlay"
296
+ :hours-grid-increment="hoursGridIncrement"
297
+ :minutes-grid-increment="minutesGridIncrement"
298
+ :seconds-grid-increment="secondsGridIncrement"
299
+ :hours-increment="hoursIncrement"
300
+ :minutes-increment="minutesIncrement"
301
+ :seconds-increment="secondsIncrement"
302
+ :range="range"
303
+ :uid="uid"
304
+ :inline="inline"
305
+ :text-input="textInput"
306
+ :no-disabled-range="noDisabledRange"
307
+ :six-weeks="sixWeeks"
308
+ :action-row="actionRow"
309
+ :focus-start-date="focusStartDate"
310
+ :disabled-times="disabledTimes"
311
+ :show-last-in-range="showLastInRange"
312
+ :time-picker-inline="timePickerInline"
313
+ :calendar="calendar"
314
+ :config="config"
315
+ :quarter-picker="quarterPicker"
316
+ :year-first="yearFirst"
317
+ @update:model-value="onSelect"
318
+ >
319
+ <template #dp-input="{ value, onEnter, onTab }">
320
+ <x-input
321
+ ref="inputRef"
322
+ readonly
323
+ :model-value="value"
324
+ :label="label"
325
+ :size="size"
326
+ :disabled="disabled"
327
+ :helper="helper"
328
+ icon-right="calendar"
329
+ :loading="loading"
330
+ :name="name"
331
+ :rules="rules"
332
+ :tooltip="tooltip"
333
+ :placeholder="placeholder"
334
+ :required="required"
335
+ :hide-footer="hideFooter"
336
+ @keydown.prevent.enter="onEnter"
337
+ @keydown.tab="onTab"
338
+ >
339
+ <template v-for="(_, name) in $slots" #[name]="slotProps = {}">
340
+ <slot v-bind="slotProps" :name="name"></slot>
341
+ </template>
342
+ </x-input>
343
+ </template>
344
+ </vue-datepicker>
345
+ </div>
346
+ </template>
347
+
348
+ <style lang="postcss">
349
+ /* stylelint-disable selector-class-pattern */
350
+ .dp__menu {
351
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 10%), 0 4px 6px -4px rgb(0 0 0 / 10%);
352
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
353
+
354
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
355
+ }
356
+
357
+ .dp__theme_dark {
358
+ --dp-background-color: var(--x-datepicker-dark-bg, #212121);
359
+ --dp-text-color: var(--x-datepicker-dark-text, #fff);
360
+ --dp-hover-color: var(--x-datepicker-dark-range, #484848);
361
+ --dp-hover-text-color: #fff;
362
+ --dp-hover-icon-color: var(--x-datepicker-dark-icon, #959595);
363
+ --dp-primary-color: var(--x-datepicker-dark-primary, #1976d2);
364
+ --dp-primary-disabled-color: #61a8ea;
365
+ --dp-primary-text-color: #fff;
366
+ --dp-secondary-color: var(--x-datepicker-dark-disabled, #a9a9a9);
367
+ --dp-border-color: var(--x-datepicker-dark-border, #2d2d2d);
368
+ --dp-menu-border-color: var(--x-datepicker-dark-border, #2d2d2d);
369
+ --dp-border-color-hover: #aaaeb7;
370
+ --dp-disabled-color: #737373;
371
+ --dp-disabled-color-text: var(--x-datepicker-dark-disabled, #d0d0d0);
372
+ --dp-scroll-bar-background: #212121;
373
+ --dp-scroll-bar-color: var(--x-datepicker-dark-range, #484848);
374
+ --dp-success-color: #00701a;
375
+ --dp-success-color-disabled: #428f59;
376
+ --dp-icon-color: var(--x-datepicker-dark-icon, #959595);
377
+ --dp-danger-color: #e53935;
378
+ --dp-marker-color: #e53935;
379
+ --dp-tooltip-color: #3e3e3e;
380
+ --dp-highlight-color: rgb(0 92 178 / 20%);
381
+ --dp-range-between-dates-background-color: var(--x-datepicker-dark-range, #484848);
382
+ --dp-range-between-dates-text-color: var(--x-datepicker-dark-text, #fff);
383
+ --dp-range-between-border-color: var(--x-datepicker-dark-text, #fff);
384
+ }
385
+
386
+ .dp__theme_light {
387
+ --dp-background-color: var(--x-datepicker-bg, #fff);
388
+ --dp-text-color: var(--x-datepicker-text, #212121);
389
+ --dp-hover-color: var(--x-datepicker-range, #f3f3f3);
390
+ --dp-hover-text-color: #212121;
391
+ --dp-hover-icon-color: var(--x-datepicker-icon, #959595);
392
+ --dp-primary-color: var(--x-datepicker-primary, #1976d2);
393
+ --dp-primary-disabled-color: #6bacea;
394
+ --dp-primary-text-color: #f8f5f5;
395
+ --dp-secondary-color: var(--x-datepicker-disabled, #c0c4cc);
396
+ --dp-border-color: var(--x-datepicker-border, #ddd);
397
+ --dp-menu-border-color: var(--x-datepicker-border, #ddd);
398
+ --dp-border-color-hover: #aaaeb7;
399
+ --dp-disabled-color: #f6f6f6;
400
+ --dp-scroll-bar-background: var(--x-datepicker-range, #f3f3f3);
401
+ --dp-scroll-bar-color: var(--x-datepicker-icon, #959595);
402
+ --dp-success-color: #76d275;
403
+ --dp-success-color-disabled: #a3d9b1;
404
+ --dp-icon-color: var(--x-datepicker-icon, #959595);
405
+ --dp-danger-color: #ff6f60;
406
+ --dp-marker-color: #ff6f60;
407
+ --dp-tooltip-color: #fafafa;
408
+ --dp-disabled-color-text: var(--x-datepicker-disabled, #8e8e8e);
409
+ --dp-highlight-color: rgb(25 118 210 / 10%);
410
+ --dp-range-between-dates-background-color: var(--x-datepicker-range, #f3f3f3);
411
+ --dp-range-between-dates-text-color: var(--x-datepicker-text, #212121);
412
+ --dp-range-between-border-color: var(--x-datepicker-range, #f3f3f3);
413
+ }
414
+ </style>
@@ -0,0 +1,11 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { mount } from '@vue/test-utils'
3
+ import Datepicker from '../Datepicker.vue'
4
+
5
+ describe('Datepicker', () => {
6
+ it('renders properly', () => {
7
+ const wrapper = mount(Datepicker)
8
+
9
+ expect(wrapper.vm).toBeTruthy()
10
+ })
11
+ })
@@ -0,0 +1,2 @@
1
+ export { default as XDatepicker } from './Datepicker.vue'
2
+ export type { DatepickerProps, DatepickerTheme } from './Datepicker.vue'
@@ -0,0 +1,72 @@
1
+ import type { DatepickerTheme } from '../Datepicker.vue'
2
+
3
+ const theme: DatepickerTheme = {
4
+ classes: {
5
+ wrapper: '',
6
+ },
7
+
8
+ styles({ props, colors, css, data }) {
9
+ const primary = colors.getPalette('primary')
10
+ const secondary = colors.getPalette('secondary')
11
+ const vars: Array<Record<string, string> | string> = [`
12
+ /*General*/
13
+ --dp-font-family: Inter, -apple-system, BlinkMacSystemFont, ui-sans-serif, system-ui, sans-serif;
14
+ "Helvetica Neue", sans-serif;
15
+ --dp-border-radius: 8px; /*Configurable border-radius*/
16
+ --dp-cell-border-radius: 8px; /*Specific border radius for the calendar cell*/
17
+ --dp-common-transition: all 0.1s ease-in; /*Generic transition applied on buttons and calendar cells*/
18
+
19
+ /*Sizing*/
20
+ --dp-button-height: 35px; /*Size for buttons in overlays*/
21
+ --dp-month-year-row-height: 35px; /*Height of the month-year select row*/
22
+ --dp-month-year-row-button-size: 35px; /*Specific height for the next/previous buttons*/
23
+ --dp-button-icon-height: 20px; /*Icon sizing in buttons*/
24
+ --dp-cell-size: 35px; /*Width and height of calendar cell*/
25
+ --dp-cell-padding: 5px; /*Padding in the cell*/
26
+ --dp-common-padding: 10px; /*Common padding used*/
27
+ --dp-input-icon-padding: 35px; /*Padding on the left side of the input if icon is present*/
28
+ --dp-input-padding: 6px 30px 6px 12px; /*Padding in the input*/
29
+ --dp-menu-min-width: 260px; /*Adjust the min width of the menu*/
30
+ --dp-action-buttons-padding: 12px; /*Adjust padding for the action buttons in action row*/
31
+ --dp-row-margin: 5px 0; /*Adjust the spacing between rows in the calendar*/
32
+ --dp-calendar-header-cell-padding: 0.5rem; /*Adjust padding in calendar header cells*/
33
+ --dp-two-calendars-spacing: 10px; /*Space between multiple calendars*/
34
+ --dp-overlay-col-padding: 3px; /*Padding in the overlay column*/
35
+ --dp-time-inc-dec-button-size: 32px; /*Sizing for arrow buttons in the time picker*/
36
+ --dp-menu-padding: 6px 8px; /*Menu padding*/
37
+
38
+ /*Font sizes*/
39
+ --dp-font-size: 0.875rem; /*Default font-size*/
40
+ --dp-preview-font-size: 0.8rem; /*Font size of the date preview in the action row*/
41
+ --dp-time-font-size: 0.8rem; /*Font size in the time picker*/
42
+
43
+ /*Transitions*/
44
+ --dp-animation-duration: 0.1s; /*Transition duration*/
45
+ --dp-menu-appear-transition-timing: cubic-bezier(.4, 0, 1, 1); /*Timing on menu appear animation*/
46
+ --dp-transition-timing: ease-out; /*Timing on slide animations*/
47
+ `]
48
+
49
+ vars.push(css.variables({
50
+ bg: '#fff',
51
+ text: secondary[800],
52
+ disabled: secondary[800],
53
+ range: secondary[200],
54
+ icon: secondary[500],
55
+ primary: primary[500],
56
+ border: secondary[100],
57
+ dark: {
58
+ bg: secondary[800],
59
+ text: secondary[100],
60
+ disabled: secondary[700],
61
+ range: secondary[600],
62
+ icon: secondary[200],
63
+ primary: primary[500],
64
+ border: secondary[700],
65
+ },
66
+ }))
67
+
68
+ return vars
69
+ },
70
+ }
71
+
72
+ export default theme
@@ -0,0 +1,7 @@
1
+ import type { DatepickerTheme } from '../Datepicker.vue'
2
+
3
+ import BaseTheme from './Datepicker.base.theme'
4
+
5
+ const theme: DatepickerTheme = BaseTheme
6
+
7
+ export default theme
@@ -12,7 +12,7 @@ const drawerProps = {
12
12
  },
13
13
  width: {
14
14
  type: [String, Number],
15
- default: 320,
15
+ default: 220,
16
16
  },
17
17
  height: {
18
18
  type: [String, Number],
@@ -2,7 +2,7 @@ import type { DrawerTheme } from '../Drawer.vue'
2
2
 
3
3
  const theme: DrawerTheme = {
4
4
  classes: {
5
- wrapper: 'flex flex-col max-h-full bg-white dark:bg-secondary-800',
5
+ wrapper: 'flex flex-col max-h-full bg-white dark:bg-secondary-800 transition-all',
6
6
 
7
7
  backdrop: 'duration-150 ease-in-out',
8
8
  },
@@ -90,6 +90,10 @@ const listeners = {
90
90
  },
91
91
  }
92
92
 
93
+ function manualValidate() {
94
+ if (props.validateOnInput && !isFirstValidation.value) validate(props.modelValue)
95
+ }
96
+
93
97
  const { styles, classes, className } = useTheme('FormGroup', {}, props, { errorInternal })
94
98
 
95
99
  defineExpose({ focus, blur, reset, validate, setError })
@@ -108,6 +112,7 @@ defineExpose({ focus, blur, reset, validate, setError })
108
112
  ]"
109
113
  :tooltip="tooltip"
110
114
  v-on="listeners"
115
+ @keyup.space="manualValidate"
111
116
  >
112
117
  <div :class="classes.wrapper">
113
118
  <slot></slot>
@@ -8,6 +8,7 @@ export * from './card'
8
8
  export * from './carousel'
9
9
  export * from './checkbox'
10
10
  export * from './container'
11
+ export * from './datepicker'
11
12
  export * from './divider'
12
13
  export * from './drawer'
13
14
  export * from './form'
@@ -25,6 +26,7 @@ export * from './notifications'
25
26
  export * from './pagination'
26
27
  export * from './popover'
27
28
  export * from './progress'
29
+ export * from './qrCode'
28
30
  export * from './radio'
29
31
  export * from './scroll'
30
32
  export * from './select'
@@ -18,6 +18,7 @@ const menuProps = {
18
18
  type: Boolean,
19
19
  default: true,
20
20
  },
21
+ minimal: Boolean,
21
22
  }
22
23
 
23
24
  export type MenuArrayItem = {
@@ -104,6 +105,7 @@ const { styles, classes, className } = useTheme('Menu', {}, props)
104
105
  :filled="item.filled || filled"
105
106
  :size="item.size || size"
106
107
  :disabled="disabled || item.disabled"
108
+ :minimal="minimal"
107
109
  class="font-medium"
108
110
  />
109
111
  </template>
@@ -120,6 +122,7 @@ const { styles, classes, className } = useTheme('Menu', {}, props)
120
122
  :disabled="disabled || item.disabled"
121
123
  :rounded="rounded"
122
124
  :filled="filled"
125
+ :minimal="minimal"
123
126
  @expand="expand(false)"
124
127
  @item-click="$emit('item-click')"
125
128
  />
@@ -133,6 +136,7 @@ const { styles, classes, className } = useTheme('Menu', {}, props)
133
136
  :filled="item.filled || filled"
134
137
  :size="item.size || size"
135
138
  :disabled="disabled || item.disabled"
139
+ :minimal="minimal"
136
140
  class="font-medium"
137
141
  inactive
138
142
  @click="$emit('item-click')"
@@ -147,6 +151,7 @@ const { styles, classes, className } = useTheme('Menu', {}, props)
147
151
  :collapse-icon="item.collapseIcon || collapseIcon"
148
152
  :expanded="item.expanded || expanded"
149
153
  :disabled="disabled || item.disabled"
154
+ :minimal="minimal"
150
155
  :rounded="rounded"
151
156
  :filled="filled"
152
157
  @expand="$emit('expand')"
@@ -163,6 +168,7 @@ const { styles, classes, className } = useTheme('Menu', {}, props)
163
168
  :filled="item.filled || filled"
164
169
  :size="item.size || size"
165
170
  :disabled="disabled || item.disabled"
171
+ :minimal="minimal"
166
172
  :class="{ 'my-2': item.divider }"
167
173
  @click="$emit('item-click')"
168
174
  @active="$emit('expand')"
@@ -31,6 +31,7 @@ const menuItemProps = {
31
31
  },
32
32
  selected: Boolean,
33
33
  disabled: Boolean,
34
+ minimal: Boolean,
34
35
  }
35
36
 
36
37
  export type MenuItemProps = ExtractPublicPropTypes<typeof menuItemProps>
@@ -150,7 +151,7 @@ const { styles, classes, className } = useTheme('MenuItem', {}, computedProps, {
150
151
  </span>
151
152
  <x-icon v-else-if="computedProps.icon" :size="computedProps.size" :icon="computedProps.icon" class="mr-2"/>
152
153
 
153
- <span class="flex-1 truncate">
154
+ <span v-if="!minimal" class="flex-1 truncate">
154
155
  <slot>{{ computedProps.label }}</slot>
155
156
  </span>
156
157
 
@@ -3,7 +3,7 @@ import type { MenuItemTheme } from '../MenuItem.vue'
3
3
  const theme: MenuItemTheme = {
4
4
  classes: {
5
5
  wrapper: ({ props, data }) => {
6
- const classes = ['relative !flex items-center whitespace-nowrap px-3']
6
+ const classes = ['relative !flex items-center whitespace-nowrap px-3 min-h-[2rem]']
7
7
 
8
8
  if (!props.disabled) classes.push('cursor-pointer')
9
9
  if (data.isActive) classes.push('font-medium')