@onereach/ui-components 8.20.3 → 8.21.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 (263) hide show
  1. package/dist/bundled/v2/components/OrDatePickerV3/OrDatePicker.js +1 -1
  2. package/dist/bundled/v2/components/OrDateRangePickerV3/OrDateRangePicker.js +1 -1
  3. package/dist/bundled/v2/components/OrDateTimePickerV3/OrDateTimePicker.js +1 -1
  4. package/dist/bundled/v2/components/OrDateTimePickerV3/index.js +1 -1
  5. package/dist/bundled/v2/components/OrDropAreaV3/OrDropArea.js +191 -0
  6. package/dist/bundled/v2/components/OrDropAreaV3/OrDropArea.vue.d.ts +108 -0
  7. package/dist/bundled/v2/components/OrDropAreaV3/index.d.ts +3 -0
  8. package/dist/bundled/v2/components/OrDropAreaV3/index.js +3 -0
  9. package/dist/bundled/v2/components/OrDropAreaV3/props.d.ts +4 -0
  10. package/dist/bundled/v2/components/OrDropAreaV3/props.js +7 -0
  11. package/dist/bundled/v2/components/OrDropAreaV3/styles.d.ts +9 -0
  12. package/dist/bundled/v2/components/OrDropAreaV3/styles.js +74 -0
  13. package/dist/bundled/v2/components/OrDropAreaV3/utils/approximateFileSize.d.ts +1 -0
  14. package/dist/bundled/v2/components/OrDropAreaV3/utils/approximateFileSize.js +7 -0
  15. package/dist/bundled/v2/components/OrDropAreaV3/utils/index.d.ts +1 -0
  16. package/dist/bundled/v2/components/OrDropAreaV3/utils/index.js +1 -0
  17. package/dist/bundled/v2/components/OrListV3/OrList.js +1 -1
  18. package/dist/bundled/v2/components/OrListV3/index.js +1 -1
  19. package/dist/bundled/v2/components/index.d.ts +1 -0
  20. package/dist/bundled/v2/components/index.js +5 -2
  21. package/dist/bundled/v2/hooks/useResponsive/useResponsive.js +17 -17
  22. package/dist/bundled/v2/index.js +6 -3
  23. package/dist/bundled/v3/components/OrCardCollectionV3/OrCardCollection.js +1 -1
  24. package/dist/bundled/v3/components/OrCardCollectionV3/index.js +1 -1
  25. package/dist/bundled/v3/components/OrCardCollectionV3/props.js +1 -1
  26. package/dist/bundled/v3/components/OrCardCollectionV3/styles.js +1 -1
  27. package/dist/bundled/v3/components/{OrCardCollectionV3-d2f8dc3d.js → OrCardCollectionV3-eb816bb7.js} +2 -2
  28. package/dist/bundled/v3/components/OrCodeV3/OrCode.js +1 -1
  29. package/dist/bundled/v3/components/OrCodeV3/index.js +1 -1
  30. package/dist/bundled/v3/components/OrCodeV3/props.js +1 -1
  31. package/dist/bundled/v3/components/OrCodeV3/styles.js +1 -1
  32. package/dist/bundled/v3/components/{OrCodeV3-90c3a481.js → OrCodeV3-5dd7f3bf.js} +2 -2
  33. package/dist/bundled/v3/components/OrConfirmV3/OrConfirm.js +1 -1
  34. package/dist/bundled/v3/components/OrConfirmV3/index.js +1 -1
  35. package/dist/bundled/v3/components/OrConfirmV3/props.js +1 -1
  36. package/dist/bundled/v3/components/OrConfirmV3/styles.js +1 -1
  37. package/dist/bundled/v3/components/{OrConfirmV3-04865a62.js → OrConfirmV3-d98781c3.js} +1 -1
  38. package/dist/bundled/v3/components/OrContextMenuV3/index.js +3 -3
  39. package/dist/bundled/v3/components/OrContextMenuV3/props.js +1 -1
  40. package/dist/bundled/v3/components/OrDateFormatV3/OrDateFormat.js +1 -1
  41. package/dist/bundled/v3/components/OrDateFormatV3/index.js +1 -1
  42. package/dist/bundled/v3/components/OrDateFormatV3/styles.js +1 -1
  43. package/dist/bundled/v3/components/{OrDateFormatV3-b6b74310.js → OrDateFormatV3-65eaca56.js} +1 -1
  44. package/dist/bundled/v3/components/OrDatePickerV3/OrDatePicker.js +1 -1
  45. package/dist/bundled/v3/components/OrDatePickerV3/index.js +1 -1
  46. package/dist/bundled/v3/components/OrDatePickerV3/styles.js +1 -1
  47. package/dist/bundled/v3/components/{OrDatePickerV3-05c9f073.js → OrDatePickerV3-beeb258b.js} +3 -3
  48. package/dist/bundled/v3/components/OrDateRangePickerV3/OrDateRangePicker.js +1 -1
  49. package/dist/bundled/v3/components/OrDateRangePickerV3/index.js +1 -1
  50. package/dist/bundled/v3/components/OrDateRangePickerV3/styles.js +1 -1
  51. package/dist/bundled/v3/components/{OrDateRangePickerV3-74cdbedb.js → OrDateRangePickerV3-393c6270.js} +3 -3
  52. package/dist/bundled/v3/components/OrDateTimeFormatV3/OrDateTimeFormat.js +1 -1
  53. package/dist/bundled/v3/components/OrDateTimeFormatV3/index.js +1 -1
  54. package/dist/bundled/v3/components/OrDateTimeFormatV3/styles.js +1 -1
  55. package/dist/bundled/v3/components/{OrDateTimeFormatV3-e42b74dd.js → OrDateTimeFormatV3-da3206a5.js} +1 -1
  56. package/dist/bundled/v3/components/OrDateTimePickerV3/OrDateTimePicker.js +1 -1
  57. package/dist/bundled/v3/components/OrDateTimePickerV3/index.js +1 -1
  58. package/dist/bundled/v3/components/OrDateTimePickerV3/props.js +1 -1
  59. package/dist/bundled/v3/components/OrDateTimePickerV3/styles.js +1 -1
  60. package/dist/bundled/v3/components/OrDateTimePickerV3/utils/formatDate.js +1 -1
  61. package/dist/bundled/v3/components/OrDateTimePickerV3/utils/formatTime.js +1 -1
  62. package/dist/bundled/v3/components/OrDateTimePickerV3/utils/getCurrentDate.js +1 -1
  63. package/dist/bundled/v3/components/OrDateTimePickerV3/utils/getDatePlaceholder.js +1 -1
  64. package/dist/bundled/v3/components/OrDateTimePickerV3/utils/getNextMonthDate.js +1 -1
  65. package/dist/bundled/v3/components/OrDateTimePickerV3/utils/getTimePlaceholder.js +1 -1
  66. package/dist/bundled/v3/components/OrDateTimePickerV3/utils/index.js +1 -1
  67. package/dist/bundled/v3/components/{OrDateTimePickerV3-2a6074c8.js → OrDateTimePickerV3-48184097.js} +3 -3
  68. package/dist/bundled/v3/components/OrDropAreaV3/OrDropArea.js +1 -0
  69. package/dist/bundled/v3/components/OrDropAreaV3/OrDropArea.vue.d.ts +78 -0
  70. package/dist/bundled/v3/components/OrDropAreaV3/index.d.ts +3 -0
  71. package/dist/bundled/v3/components/OrDropAreaV3/index.js +1 -0
  72. package/dist/bundled/v3/components/OrDropAreaV3/props.d.ts +4 -0
  73. package/dist/bundled/v3/components/OrDropAreaV3/props.js +1 -0
  74. package/dist/bundled/v3/components/OrDropAreaV3/styles.d.ts +9 -0
  75. package/dist/bundled/v3/components/OrDropAreaV3/styles.js +1 -0
  76. package/dist/bundled/v3/components/OrDropAreaV3/utils/approximateFileSize.d.ts +1 -0
  77. package/dist/bundled/v3/components/OrDropAreaV3/utils/approximateFileSize.js +1 -0
  78. package/dist/bundled/v3/components/OrDropAreaV3/utils/index.d.ts +1 -0
  79. package/dist/bundled/v3/components/OrDropAreaV3/utils/index.js +1 -0
  80. package/dist/bundled/v3/components/OrDropAreaV3-5083baca.js +235 -0
  81. package/dist/bundled/v3/components/OrIconButtonV3/OrIconButton.js +1 -1
  82. package/dist/bundled/v3/components/OrIconButtonV3/index.js +1 -1
  83. package/dist/bundled/v3/components/OrIconButtonV3/props.js +1 -1
  84. package/dist/bundled/v3/components/OrIconButtonV3/styles.js +1 -1
  85. package/dist/bundled/v3/components/{OrIconButtonV3-b37d49d9.js → OrIconButtonV3-1a5e8f8e.js} +1 -1
  86. package/dist/bundled/v3/components/OrInlineInputV3/OrInlineInput.js +1 -1
  87. package/dist/bundled/v3/components/OrInlineInputV3/index.js +1 -1
  88. package/dist/bundled/v3/components/OrInlineInputV3/props.js +1 -1
  89. package/dist/bundled/v3/components/OrInlineInputV3/styles.js +1 -1
  90. package/dist/bundled/v3/components/{OrInlineInputV3-4fa87007.js → OrInlineInputV3-b27f4750.js} +1 -1
  91. package/dist/bundled/v3/components/OrInlineTextareaV3/OrInlineTextarea.js +1 -1
  92. package/dist/bundled/v3/components/OrInlineTextareaV3/index.js +1 -1
  93. package/dist/bundled/v3/components/OrInlineTextareaV3/styles.js +1 -1
  94. package/dist/bundled/v3/components/{OrInlineTextareaV3-4fbf60da.js → OrInlineTextareaV3-75ea4ca0.js} +1 -1
  95. package/dist/bundled/v3/components/OrInputV3/OrInput.js +1 -1
  96. package/dist/bundled/v3/components/OrInputV3/index.js +1 -1
  97. package/dist/bundled/v3/components/OrInputV3/props.js +1 -1
  98. package/dist/bundled/v3/components/OrInputV3/styles.js +1 -1
  99. package/dist/bundled/v3/components/{OrInputV3-60f6d2cc.js → OrInputV3-a68f35c0.js} +1 -1
  100. package/dist/bundled/v3/components/OrListV3/OrList.js +1 -1
  101. package/dist/bundled/v3/components/OrListV3/index.js +1 -1
  102. package/dist/bundled/v3/components/OrListV3/styles.js +1 -1
  103. package/dist/bundled/v3/components/{OrListV3-f6962d33.js → OrListV3-235fb6a6.js} +1 -1
  104. package/dist/bundled/v3/components/OrMenuV3/OrMenu.js +1 -1
  105. package/dist/bundled/v3/components/OrMenuV3/index.js +2 -2
  106. package/dist/bundled/v3/components/OrMenuV3/props.js +1 -1
  107. package/dist/bundled/v3/components/OrMenuV3/styles.js +1 -1
  108. package/dist/bundled/v3/components/{OrMenuV3-4ad46e25.js → OrMenuV3-cc8fa519.js} +1 -1
  109. package/dist/bundled/v3/components/OrModalV3/OrModal.js +1 -1
  110. package/dist/bundled/v3/components/OrModalV3/index.js +1 -1
  111. package/dist/bundled/v3/components/OrModalV3/props.js +1 -1
  112. package/dist/bundled/v3/components/OrModalV3/styles.js +1 -1
  113. package/dist/bundled/v3/components/{OrModalV3-a06678db.js → OrModalV3-6bdc2b71.js} +1 -1
  114. package/dist/bundled/v3/components/OrNotificationV3/OrNotification.js +1 -1
  115. package/dist/bundled/v3/components/OrNotificationV3/index.js +1 -1
  116. package/dist/bundled/v3/components/OrNotificationV3/props.js +1 -1
  117. package/dist/bundled/v3/components/OrNotificationV3/styles.js +1 -1
  118. package/dist/bundled/v3/components/{OrNotificationV3-4461046e.js → OrNotificationV3-ed803802.js} +1 -1
  119. package/dist/bundled/v3/components/OrPaginationV3/OrPagination.js +1 -1
  120. package/dist/bundled/v3/components/OrPaginationV3/index.js +1 -1
  121. package/dist/bundled/v3/components/OrPaginationV3/styles.js +1 -1
  122. package/dist/bundled/v3/components/{OrPaginationV3-71b83e05.js → OrPaginationV3-d4673eb4.js} +1 -1
  123. package/dist/bundled/v3/components/OrPopoverV3/OrPopover.js +1 -1
  124. package/dist/bundled/v3/components/OrPopoverV3/hooks/useFloating.js +1 -1
  125. package/dist/bundled/v3/components/OrPopoverV3/index.js +1 -1
  126. package/dist/bundled/v3/components/OrPopoverV3/props.js +1 -1
  127. package/dist/bundled/v3/components/OrPopoverV3/styles.js +1 -1
  128. package/dist/bundled/v3/components/OrProgressV3/OrProgress.js +1 -1
  129. package/dist/bundled/v3/components/OrProgressV3/index.js +1 -1
  130. package/dist/bundled/v3/components/OrProgressV3/props.js +1 -1
  131. package/dist/bundled/v3/components/OrProgressV3/styles.js +1 -1
  132. package/dist/bundled/v3/components/OrRangeSliderV3/OrRangeSlider.js +1 -1
  133. package/dist/bundled/v3/components/OrRangeSliderV3/index.js +2 -2
  134. package/dist/bundled/v3/components/OrRangeSliderV3/props.js +1 -1
  135. package/dist/bundled/v3/components/OrRangeSliderV3/styles.js +2 -2
  136. package/dist/bundled/v3/components/{OrRangeSliderV3-97bba60a.js → OrRangeSliderV3-73c0ba82.js} +2 -2
  137. package/dist/bundled/v3/components/OrResizeablePanelV3/OrResizeablePanel.js +1 -1
  138. package/dist/bundled/v3/components/OrResizeablePanelV3/index.js +1 -1
  139. package/dist/bundled/v3/components/OrResizeablePanelV3/props.js +1 -1
  140. package/dist/bundled/v3/components/OrResizeablePanelV3/styles.js +1 -1
  141. package/dist/bundled/v3/components/{OrResizeablePanelV3-2f648d2b.js → OrResizeablePanelV3-05022160.js} +1 -1
  142. package/dist/bundled/v3/components/OrRichTextEditorV3/OrRichTextEditor.js +1 -1
  143. package/dist/bundled/v3/components/OrRichTextEditorV3/index.js +1 -1
  144. package/dist/bundled/v3/components/OrRichTextEditorV3/props.js +1 -1
  145. package/dist/bundled/v3/components/OrRichTextEditorV3/styles.js +1 -1
  146. package/dist/bundled/v3/components/OrRichTextEditorV3/utils/codemirror/codemirrorNode.js +1 -1
  147. package/dist/bundled/v3/components/OrRichTextEditorV3/utils/codemirror/codemirrorView.js +1 -1
  148. package/dist/bundled/v3/components/OrRichTextEditorV3/utils/codemirror/index.js +1 -1
  149. package/dist/bundled/v3/components/OrRichTextEditorV3/utils/codemirror/theme.js +1 -1
  150. package/dist/bundled/v3/components/OrRichTextEditorV3/utils/markdown.js +1 -1
  151. package/dist/bundled/v3/components/{OrRichTextEditorV3-02e4de0f.js → OrRichTextEditorV3-8f5b6fef.js} +5 -5
  152. package/dist/bundled/v3/components/OrSearchV3/index.js +1 -1
  153. package/dist/bundled/v3/components/OrSelectV3/OrSelect.js +1 -1
  154. package/dist/bundled/v3/components/OrSelectV3/index.js +1 -1
  155. package/dist/bundled/v3/components/OrSelectV3/styles.js +1 -1
  156. package/dist/bundled/v3/components/{OrSelectV3-c1a82eae.js → OrSelectV3-71af01b4.js} +4 -4
  157. package/dist/bundled/v3/components/OrSidebarV3/OrSidebar.js +1 -1
  158. package/dist/bundled/v3/components/OrSidebarV3/index.js +2 -2
  159. package/dist/bundled/v3/components/OrSidebarV3/props.js +2 -2
  160. package/dist/bundled/v3/components/OrSidebarV3/styles.js +2 -2
  161. package/dist/bundled/v3/components/{OrSidebarV3-14f942dd.js → OrSidebarV3-d089ce77.js} +1 -1
  162. package/dist/bundled/v3/components/OrSliderV3/OrSlider.js +1 -1
  163. package/dist/bundled/v3/components/OrSliderV3/index.js +1 -1
  164. package/dist/bundled/v3/components/OrSliderV3/props.js +1 -1
  165. package/dist/bundled/v3/components/OrSliderV3/styles.js +1 -1
  166. package/dist/bundled/v3/components/{OrSliderV3-a9ffd5dc.js → OrSliderV3-49856430.js} +1 -1
  167. package/dist/bundled/v3/components/OrSortingV3/OrSorting.js +1 -1
  168. package/dist/bundled/v3/components/OrSortingV3/index.js +1 -1
  169. package/dist/bundled/v3/components/OrSortingV3/styles.js +1 -1
  170. package/dist/bundled/v3/components/{OrSortingV3-2cd01463.js → OrSortingV3-b0d450ae.js} +1 -1
  171. package/dist/bundled/v3/components/OrTabsV3/OrTabs.js +1 -1
  172. package/dist/bundled/v3/components/OrTabsV3/index.js +1 -1
  173. package/dist/bundled/v3/components/OrTabsV3/props.js +1 -1
  174. package/dist/bundled/v3/components/OrTabsV3/styles.js +1 -1
  175. package/dist/bundled/v3/components/{OrTabsV3-7ada5959.js → OrTabsV3-2bf15721.js} +1 -1
  176. package/dist/bundled/v3/components/OrTagInputV3/OrTagInput.js +1 -1
  177. package/dist/bundled/v3/components/OrTagInputV3/index.js +1 -1
  178. package/dist/bundled/v3/components/OrTagInputV3/styles.js +1 -1
  179. package/dist/bundled/v3/components/{OrTagInputV3-be04d355.js → OrTagInputV3-31f442b0.js} +3 -3
  180. package/dist/bundled/v3/components/OrTagV3/OrTag.js +1 -1
  181. package/dist/bundled/v3/components/OrTagV3/index.js +1 -1
  182. package/dist/bundled/v3/components/OrTagV3/props.js +1 -1
  183. package/dist/bundled/v3/components/OrTagV3/styles.js +1 -1
  184. package/dist/bundled/v3/components/{OrTagV3-ede7830b.js → OrTagV3-923c4802.js} +1 -1
  185. package/dist/bundled/v3/components/OrTagsV3/OrTags.js +1 -1
  186. package/dist/bundled/v3/components/OrTagsV3/index.js +1 -1
  187. package/dist/bundled/v3/components/OrTagsV3/props.js +1 -1
  188. package/dist/bundled/v3/components/OrTagsV3/styles.js +1 -1
  189. package/dist/bundled/v3/components/OrTagsV3/utils/castToTag.js +1 -1
  190. package/dist/bundled/v3/components/{OrTagsV3-b14b5c4f.js → OrTagsV3-dbb9a0bc.js} +2 -2
  191. package/dist/bundled/v3/components/OrTimeFormatV3/OrTimeFormat.js +1 -1
  192. package/dist/bundled/v3/components/OrTimeFormatV3/index.js +1 -1
  193. package/dist/bundled/v3/components/OrTimeFormatV3/styles.js +1 -1
  194. package/dist/bundled/v3/components/{OrTimeFormatV3-51d64937.js → OrTimeFormatV3-7a04065c.js} +1 -1
  195. package/dist/bundled/v3/components/OrTimePickerV3/OrTimePicker.js +1 -1
  196. package/dist/bundled/v3/components/OrTimePickerV3/index.js +2 -2
  197. package/dist/bundled/v3/components/OrTimePickerV3/props.js +1 -1
  198. package/dist/bundled/v3/components/OrTimePickerV3/styles.js +1 -1
  199. package/dist/bundled/v3/components/{OrTimePickerV3-58c9e50d.js → OrTimePickerV3-e1fed2b5.js} +3 -3
  200. package/dist/bundled/v3/components/OrTimeRangePickerV3/OrTimeRangePicker.js +1 -1
  201. package/dist/bundled/v3/components/OrTimeRangePickerV3/index.js +2 -2
  202. package/dist/bundled/v3/components/OrTimeRangePickerV3/props.js +1 -1
  203. package/dist/bundled/v3/components/OrTimeRangePickerV3/styles.js +1 -1
  204. package/dist/bundled/v3/components/{OrTimeRangePickerV3-54ad4772.js → OrTimeRangePickerV3-844b35ee.js} +3 -3
  205. package/dist/bundled/v3/components/OrToastContainerV3/OrToastContainer.js +1 -1
  206. package/dist/bundled/v3/components/OrToastContainerV3/index.js +1 -1
  207. package/dist/bundled/v3/components/OrToastV3/OrToast.js +1 -1
  208. package/dist/bundled/v3/components/OrToastV3/Timer.js +1 -1
  209. package/dist/bundled/v3/components/OrToastV3/composable/index.js +1 -1
  210. package/dist/bundled/v3/components/OrToastV3/composable/useQueue.js +1 -1
  211. package/dist/bundled/v3/components/OrToastV3/composable/useToast.js +1 -1
  212. package/dist/bundled/v3/components/OrToastV3/composable/useToastEventBus.js +1 -1
  213. package/dist/bundled/v3/components/OrToastV3/index.js +1 -1
  214. package/dist/bundled/v3/components/OrToastV3/props.js +1 -1
  215. package/dist/bundled/v3/components/OrToastV3/styles.js +1 -1
  216. package/dist/bundled/v3/components/{OrToastV3-9bc46337.js → OrToastV3-4d0ca9c7.js} +1 -1
  217. package/dist/bundled/v3/components/OrTooltipV3/OrTooltip.js +1 -1
  218. package/dist/bundled/v3/components/OrTooltipV3/index.js +2 -2
  219. package/dist/bundled/v3/components/OrTooltipV3/props.js +1 -1
  220. package/dist/bundled/v3/components/OrTooltipV3/styles.js +2 -2
  221. package/dist/bundled/v3/components/{OrTooltipV3-6ee8e0d5.js → OrTooltipV3-033f8432.js} +1 -1
  222. package/dist/bundled/v3/components/index.d.ts +1 -0
  223. package/dist/bundled/v3/components/index.js +36 -35
  224. package/dist/bundled/v3/hooks/useResponsive/useResponsive.js +17 -17
  225. package/dist/bundled/v3/index.js +37 -36
  226. package/dist/esm/v2/OrDropArea-8a00339a.js +269 -0
  227. package/dist/esm/v2/approximateFileSize-a48b356b.js +7 -0
  228. package/dist/esm/v2/components/index.d.ts +1 -0
  229. package/dist/esm/v2/components/index.js +2 -0
  230. package/dist/esm/v2/components/or-drop-area-v3/OrDropArea.vue.d.ts +108 -0
  231. package/dist/esm/v2/components/or-drop-area-v3/index.d.ts +3 -0
  232. package/dist/esm/v2/components/or-drop-area-v3/index.js +13 -0
  233. package/dist/esm/v2/components/or-drop-area-v3/props.d.ts +4 -0
  234. package/dist/esm/v2/components/or-drop-area-v3/styles.d.ts +9 -0
  235. package/dist/esm/v2/components/or-drop-area-v3/utils/approximateFileSize.d.ts +1 -0
  236. package/dist/esm/v2/components/or-drop-area-v3/utils/index.d.ts +1 -0
  237. package/dist/esm/v2/components/or-drop-area-v3/utils/index.js +1 -0
  238. package/dist/esm/v2/index.js +2 -0
  239. package/dist/esm/v3/OrDropArea-da30333e.js +233 -0
  240. package/dist/esm/v3/approximateFileSize-a48b356b.js +7 -0
  241. package/dist/esm/v3/components/index.d.ts +1 -0
  242. package/dist/esm/v3/components/index.js +2 -0
  243. package/dist/esm/v3/components/or-drop-area-v3/OrDropArea.vue.d.ts +78 -0
  244. package/dist/esm/v3/components/or-drop-area-v3/index.d.ts +3 -0
  245. package/dist/esm/v3/components/or-drop-area-v3/index.js +13 -0
  246. package/dist/esm/v3/components/or-drop-area-v3/props.d.ts +4 -0
  247. package/dist/esm/v3/components/or-drop-area-v3/styles.d.ts +9 -0
  248. package/dist/esm/v3/components/or-drop-area-v3/utils/approximateFileSize.d.ts +1 -0
  249. package/dist/esm/v3/components/or-drop-area-v3/utils/index.d.ts +1 -0
  250. package/dist/esm/v3/components/or-drop-area-v3/utils/index.js +1 -0
  251. package/dist/esm/v3/index.js +2 -0
  252. package/package.json +3 -3
  253. package/src/components/index.ts +1 -0
  254. package/src/components/or-drop-area-v3/OrDropArea.vue +220 -0
  255. package/src/components/or-drop-area-v3/index.ts +3 -0
  256. package/src/components/or-drop-area-v3/props.ts +4 -0
  257. package/src/components/or-drop-area-v3/styles.ts +133 -0
  258. package/src/components/or-drop-area-v3/utils/approximateFileSize.ts +15 -0
  259. package/src/components/or-drop-area-v3/utils/index.ts +1 -0
  260. /package/dist/bundled/v2/{OrDateTimePickerMonthSelect-b905e98c.js → OrDateTimePickerMonthSelect-508aa10f.js} +0 -0
  261. /package/dist/bundled/v2/{OrList-40eb340c.js → OrList-968e3d1c.js} +0 -0
  262. /package/dist/bundled/v3/components/{OrPopoverV3-6f7b922c.js → OrPopoverV3-f23d857d.js} +0 -0
  263. /package/dist/bundled/v3/components/{OrProgressV3-5c4128fd.js → OrProgressV3-faaea90c.js} +0 -0
@@ -0,0 +1,233 @@
1
+ import { defineComponent, ref, computed, toRef } from 'vue-demi';
2
+ import '@vueuse/core';
3
+ import './dom-aecadd9a.js';
4
+ import { u as useProxyModelValue } from './useProxyModelValue-940010d2.js';
5
+ import { u as useResponsive } from './useResponsive-1baf3485.js';
6
+ import '@onereach/styles/tailwind.config.json';
7
+ import { s as script$1 } from './OrIcon-b2e2d0aa.js';
8
+ import { a as approximateFileSize } from './approximateFileSize-a48b356b.js';
9
+ import { resolveComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, createVNode, renderSlot, Fragment, createTextVNode, createCommentVNode, toDisplayString } from 'vue';
10
+
11
+ var DropAreaSize;
12
+ (function (DropAreaSize) {
13
+ DropAreaSize["M"] = "m";
14
+ DropAreaSize["S"] = "s";
15
+ })(DropAreaSize || (DropAreaSize = {}));
16
+
17
+ const DropArea = [
18
+ // Position
19
+ 'relative',
20
+ // Layout
21
+ 'layout-column',
22
+ // Shape
23
+ 'rounded-md',
24
+ // Spacing
25
+ 'gap-sm',
26
+ // Theme
27
+ 'theme-background-primary-translucent-1', 'dark:theme-background-primary-translucent-1-dark', 'theme-border-1-primary', 'dark:theme-border-1-primary-dark', '!border-dashed',
28
+ // Theme (hover)
29
+ 'hover:theme-background-primary-translucent-2', 'dark:hover:theme-background-primary-translucent-2-dark',
30
+ // Theme (invalid)
31
+ 'invalid:theme-background-error-translucent-1', 'dark:invalid:theme-background-error-translucent-1-dark', 'invalid:theme-border-1-error', 'dark:invalid:theme-border-1-error-dark', 'invalid:!border-dashed',
32
+ // Theme (invalid/hover)
33
+ 'hover:invalid:theme-background-error-translucent-2', 'dark:hover:invalid:theme-background-error-translucent-2-dark'];
34
+ const DropAreaSizes = {
35
+ [DropAreaSize.M]: [
36
+ // Spacing
37
+ 'pt-xl', 'px-xl', 'pb-3xl'],
38
+ [DropAreaSize.S]: [
39
+ // Spacing
40
+ 'pt-md', 'px-xl', 'pb-xl']
41
+ };
42
+ const DropAreaControl = [
43
+ // Position
44
+ 'absolute inset-0',
45
+ // Visibility
46
+ 'opacity-0',
47
+ // Interactivity
48
+ 'interactivity-click'];
49
+ const DropAreaIcon = [
50
+ // Layout
51
+ 'layout-column',
52
+ // Typography
53
+ 'leading-none',
54
+ // Theme
55
+ 'theme-foreground-primary-translucent-2', 'dark:theme-foreground-primary-translucent-2-dark',
56
+ // Theme (invalid)
57
+ 'invalid:theme-foreground-error-translucent-2', 'dark:invalid:theme-foreground-error-translucent-2-dark'];
58
+ const DropAreaIconSizes = {
59
+ [DropAreaSize.M]: [
60
+ // Typography
61
+ 'text-[94px]'],
62
+ [DropAreaSize.S]: [
63
+ // Typography
64
+ 'text-[48px]']
65
+ };
66
+ const DropAreaText = [
67
+ // Layout
68
+ 'layout-column',
69
+ // Typography
70
+ 'typography-body-2-regular text-center',
71
+ // Theme
72
+ 'theme-foreground-default', 'dark:theme-foreground-default-dark'];
73
+ const DropAreaTextEmphasis = [
74
+ // Typography
75
+ 'typography-body-2-bold',
76
+ // Theme
77
+ 'theme-foreground-primary', 'dark:theme-foreground-primary-dark',
78
+ // Theme (invalid)
79
+ 'invalid:theme-foreground-error', 'dark:invalid:theme-foreground-error-dark'];
80
+ const DropAreaConstraints = [
81
+ // Layout
82
+ 'layout-column',
83
+ // Typography
84
+ 'typography-body-2-regular text-center',
85
+ // Theme
86
+ 'theme-foreground-outline', 'dark:theme-foreground-outline-dark'];
87
+
88
+ var script = defineComponent({
89
+ components: {
90
+ OrIcon: script$1
91
+ },
92
+ model: {
93
+ prop: 'modelValue',
94
+ event: 'update:modelValue'
95
+ },
96
+ props: {
97
+ modelValue: {
98
+ type: Array,
99
+ default: () => []
100
+ },
101
+ fileTypes: {
102
+ type: Array,
103
+ default: () => []
104
+ },
105
+ maxFiles: {
106
+ type: Number,
107
+ default: () => 1
108
+ },
109
+ maxFileSize: {
110
+ type: Number,
111
+ default: () => 10485760
112
+ },
113
+ size: {
114
+ type: String,
115
+ default: () => DropAreaSize.M
116
+ },
117
+ disabled: {
118
+ type: Boolean,
119
+ default: () => false
120
+ }
121
+ },
122
+ emits: ['update:modelValue'],
123
+ expose: ['root', 'invalid'],
124
+ setup(props, context) {
125
+ // Refs
126
+ const root = ref();
127
+ // Styles
128
+ const rootStyles = computed(() => ['or-drop-area-v3', ...DropArea, ...DropAreaSizes[props.size]]);
129
+ const controlStyles = computed(() => [...DropAreaControl]);
130
+ const iconStyles = computed(() => [...DropAreaIcon, ...DropAreaIconSizes[props.size]]);
131
+ const textStyles = computed(() => [...DropAreaText]);
132
+ const textEmphasisStyles = computed(() => [...DropAreaTextEmphasis]);
133
+ const constraintsStyles = computed(() => [...DropAreaConstraints]);
134
+ // State
135
+ const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);
136
+ const invalid = computed(() => {
137
+ if (props.fileTypes.length > 0 && proxyModelValue.value.some(file => !props.fileTypes.includes(file.type))) {
138
+ return true;
139
+ }
140
+ if (proxyModelValue.value.length > props.maxFiles) {
141
+ return true;
142
+ }
143
+ if (proxyModelValue.value.some(file => file.size > props.maxFileSize)) {
144
+ return true;
145
+ }
146
+ return false;
147
+ });
148
+ // Handlers
149
+ function onChange(event) {
150
+ proxyModelValue.value = [...event.target.files];
151
+ }
152
+ // Helpers
153
+ const {
154
+ isDesktop,
155
+ isMobile
156
+ } = useResponsive();
157
+ return {
158
+ root,
159
+ rootStyles,
160
+ controlStyles,
161
+ iconStyles,
162
+ textStyles,
163
+ textEmphasisStyles,
164
+ constraintsStyles,
165
+ proxyModelValue,
166
+ invalid,
167
+ onChange,
168
+ isDesktop,
169
+ isMobile,
170
+ approximateFileSize
171
+ };
172
+ }
173
+ });
174
+
175
+ const _hoisted_1 = ["invalid", "disabled"];
176
+ const _hoisted_2 = ["accept", "multiple", "disabled"];
177
+ const _hoisted_3 = ["invalid", "disabled"];
178
+ const _hoisted_4 = ["disabled"];
179
+ const _hoisted_5 = /*#__PURE__*/createElementVNode("div", null, "Drag file here", -1 /* HOISTED */);
180
+ const _hoisted_6 = ["invalid", "disabled"];
181
+ const _hoisted_7 = ["invalid", "disabled"];
182
+ const _hoisted_8 = ["disabled"];
183
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
184
+ const _component_OrIcon = resolveComponent("OrIcon");
185
+ return openBlock(), createElementBlock("div", {
186
+ ref: "root",
187
+ class: normalizeClass(_ctx.rootStyles),
188
+ invalid: _ctx.invalid,
189
+ disabled: _ctx.disabled
190
+ }, [createElementVNode("input", {
191
+ class: normalizeClass(_ctx.controlStyles),
192
+ type: 'file',
193
+ accept: _ctx.fileTypes.join(','),
194
+ multiple: _ctx.maxFiles > 1,
195
+ disabled: _ctx.disabled,
196
+ onChange: _cache[0] || (_cache[0] = $event => _ctx.onChange($event))
197
+ }, null, 42 /* CLASS, PROPS, HYDRATE_EVENTS */, _hoisted_2), createElementVNode("div", {
198
+ class: normalizeClass(_ctx.iconStyles),
199
+ invalid: _ctx.invalid,
200
+ disabled: _ctx.disabled
201
+ }, [createVNode(_component_OrIcon, {
202
+ icon: 'cloud_upload',
203
+ size: 'inherit'
204
+ })], 10 /* CLASS, PROPS */, _hoisted_3), createElementVNode("div", {
205
+ class: normalizeClass(_ctx.textStyles),
206
+ disabled: _ctx.disabled
207
+ }, [renderSlot(_ctx.$slots, "default", {
208
+ invalid: _ctx.invalid,
209
+ disabled: _ctx.disabled
210
+ }, () => [_ctx.isDesktop ? (openBlock(), createElementBlock(Fragment, {
211
+ key: 0
212
+ }, [_hoisted_5, createElementVNode("div", null, [createTextVNode(" or "), createElementVNode("span", {
213
+ class: normalizeClass(_ctx.textEmphasisStyles),
214
+ invalid: _ctx.invalid,
215
+ disabled: _ctx.disabled
216
+ }, " Upload from your computer ", 10 /* CLASS, PROPS */, _hoisted_6)])], 64 /* STABLE_FRAGMENT */)) : createCommentVNode("v-if", true), _ctx.isMobile ? (openBlock(), createElementBlock("span", {
217
+ key: 1,
218
+ class: normalizeClass(_ctx.textEmphasisStyles),
219
+ invalid: _ctx.invalid,
220
+ disabled: _ctx.disabled
221
+ }, " Upload from your device ", 10 /* CLASS, PROPS */, _hoisted_7)) : createCommentVNode("v-if", true)])], 10 /* CLASS, PROPS */, _hoisted_4), createElementVNode("div", {
222
+ class: normalizeClass(_ctx.constraintsStyles),
223
+ disabled: _ctx.disabled
224
+ }, [renderSlot(_ctx.$slots, "constraints", {
225
+ invalid: _ctx.invalid,
226
+ disabled: _ctx.disabled
227
+ }, () => [createTextVNode(" Maximum files: " + toDisplayString(_ctx.maxFiles) + ", maximum file size: " + toDisplayString(_ctx.approximateFileSize(_ctx.maxFileSize)), 1 /* TEXT */)])], 10 /* CLASS, PROPS */, _hoisted_8)], 10 /* CLASS, PROPS */, _hoisted_1);
228
+ }
229
+
230
+ script.render = render;
231
+ script.__file = "src/components/or-drop-area-v3/OrDropArea.vue";
232
+
233
+ export { DropAreaSize as D, script as s };
@@ -0,0 +1,7 @@
1
+ function approximateFileSize(value) {
2
+ const units = ['B', 'kB', 'MB', 'GB'];
3
+ const exponent = Math.min(Math.floor(Math.log(value) / Math.log(1024)), units.length - 1);
4
+ return exponent === 0 ? `${value} B` : `${value / 1024 ** exponent} ${units[exponent]}`;
5
+ }
6
+
7
+ export { approximateFileSize as a };
@@ -28,6 +28,7 @@ export * from './or-date-range-picker-v3';
28
28
  export * from './or-date-time-format-v3';
29
29
  export * from './or-date-time-picker';
30
30
  export * from './or-date-time-picker-v3';
31
+ export * from './or-drop-area-v3';
31
32
  export * from './or-empty-state-v3';
32
33
  export * from './or-error';
33
34
  export * from './or-error-tag-v3';
@@ -44,6 +44,8 @@ export { s as OrDateTimePickerDateControl, a as OrDateTimePickerDateSelect, b as
44
44
  export { D as DateTimePickerTimeFormat, D as TimePickerFormat, D as TimeRangePickerFormat, f as formatDate, a as formatTime, g as getDatePlaceholder, b as getTimePlaceholder } from '../getTimePlaceholder-fd41baed.js';
45
45
  export { g as getCurrentDate } from '../getCurrentDate-046a888d.js';
46
46
  export { g as getNextMonthDate } from '../getNextMonthDate-00c47169.js';
47
+ export { D as DropAreaSize, s as OrDropAreaV3 } from '../OrDropArea-da30333e.js';
48
+ export { a as approximateFileSize } from '../approximateFileSize-a48b356b.js';
47
49
  export { E as EmptyStateSize, s as OrEmptyStateV3 } from '../OrEmptyState-3a7eae61.js';
48
50
  export { s as OrError } from '../OrError-f90296db.js';
49
51
  export { s as OrErrorTagV3 } from '../OrErrorTag-638eceef.js';
@@ -0,0 +1,78 @@
1
+ import { PropType } from 'vue-demi';
2
+ import { DropAreaSize } from './props';
3
+ import { approximateFileSize } from './utils';
4
+ declare const _default: import("vue-demi").DefineComponent<{
5
+ modelValue: {
6
+ type: PropType<File[]>;
7
+ default: () => never[];
8
+ };
9
+ fileTypes: {
10
+ type: PropType<string[]>;
11
+ default: () => never[];
12
+ };
13
+ maxFiles: {
14
+ type: NumberConstructor;
15
+ default: () => number;
16
+ };
17
+ maxFileSize: {
18
+ type: NumberConstructor;
19
+ default: () => number;
20
+ };
21
+ size: {
22
+ type: PropType<"m" | "s">;
23
+ default: () => DropAreaSize;
24
+ };
25
+ disabled: {
26
+ type: BooleanConstructor;
27
+ default: () => boolean;
28
+ };
29
+ }, {
30
+ root: import("vue-demi").Ref<HTMLElement | undefined>;
31
+ rootStyles: import("vue-demi").ComputedRef<string[]>;
32
+ controlStyles: import("vue-demi").ComputedRef<string[]>;
33
+ iconStyles: import("vue-demi").ComputedRef<string[]>;
34
+ textStyles: import("vue-demi").ComputedRef<string[]>;
35
+ textEmphasisStyles: import("vue-demi").ComputedRef<string[]>;
36
+ constraintsStyles: import("vue-demi").ComputedRef<string[]>;
37
+ proxyModelValue: import("../../hooks").UseProxyModelValueReturn<File[]>;
38
+ invalid: import("vue-demi").ComputedRef<boolean>;
39
+ onChange: (event: Event) => void;
40
+ isDesktop: import("vue-demi").ComputedRef<boolean>;
41
+ isMobile: import("vue-demi").ComputedRef<boolean>;
42
+ approximateFileSize: typeof approximateFileSize;
43
+ }, unknown, {}, {}, import("vue-demi").ComponentOptionsMixin, import("vue-demi").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue-demi").VNodeProps & import("vue-demi").AllowedComponentProps & import("vue-demi").ComponentCustomProps, Readonly<import("vue-demi").ExtractPropTypes<{
44
+ modelValue: {
45
+ type: PropType<File[]>;
46
+ default: () => never[];
47
+ };
48
+ fileTypes: {
49
+ type: PropType<string[]>;
50
+ default: () => never[];
51
+ };
52
+ maxFiles: {
53
+ type: NumberConstructor;
54
+ default: () => number;
55
+ };
56
+ maxFileSize: {
57
+ type: NumberConstructor;
58
+ default: () => number;
59
+ };
60
+ size: {
61
+ type: PropType<"m" | "s">;
62
+ default: () => DropAreaSize;
63
+ };
64
+ disabled: {
65
+ type: BooleanConstructor;
66
+ default: () => boolean;
67
+ };
68
+ }>> & {
69
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
70
+ }, {
71
+ modelValue: File[];
72
+ fileTypes: string[];
73
+ maxFiles: number;
74
+ maxFileSize: number;
75
+ size: "m" | "s";
76
+ disabled: boolean;
77
+ }>;
78
+ export default _default;
@@ -0,0 +1,3 @@
1
+ export { default as OrDropAreaV3 } from './OrDropArea.vue';
2
+ export * from './props';
3
+ export * from './utils';
@@ -0,0 +1,13 @@
1
+ export { D as DropAreaSize, s as OrDropAreaV3 } from '../../OrDropArea-da30333e.js';
2
+ export { a as approximateFileSize } from '../../approximateFileSize-a48b356b.js';
3
+ import 'vue-demi';
4
+ import '@vueuse/core';
5
+ import '../../dom-aecadd9a.js';
6
+ import 'lodash/isElement';
7
+ import 'lodash/get';
8
+ import '../../useProxyModelValue-940010d2.js';
9
+ import '../../useResponsive-1baf3485.js';
10
+ import '@onereach/styles/tailwind/plugins/core';
11
+ import '@onereach/styles/tailwind.config.json';
12
+ import '../../OrIcon-b2e2d0aa.js';
13
+ import 'vue';
@@ -0,0 +1,4 @@
1
+ export declare enum DropAreaSize {
2
+ M = "m",
3
+ S = "s"
4
+ }
@@ -0,0 +1,9 @@
1
+ import { DropAreaSize } from './props';
2
+ export declare const DropArea: string[];
3
+ export declare const DropAreaSizes: Record<DropAreaSize, string[]>;
4
+ export declare const DropAreaControl: string[];
5
+ export declare const DropAreaIcon: string[];
6
+ export declare const DropAreaIconSizes: Record<DropAreaSize, string[]>;
7
+ export declare const DropAreaText: string[];
8
+ export declare const DropAreaTextEmphasis: string[];
9
+ export declare const DropAreaConstraints: string[];
@@ -0,0 +1 @@
1
+ export declare function approximateFileSize(value: number): string;
@@ -0,0 +1 @@
1
+ export * from './approximateFileSize';
@@ -0,0 +1 @@
1
+ export { a as approximateFileSize } from '../../../approximateFileSize-a48b356b.js';
@@ -44,6 +44,8 @@ export { s as OrDateTimePickerDateControl, a as OrDateTimePickerDateSelect, b as
44
44
  export { D as DateTimePickerTimeFormat, D as TimePickerFormat, D as TimeRangePickerFormat, f as formatDate, a as formatTime, g as getDatePlaceholder, b as getTimePlaceholder } from './getTimePlaceholder-fd41baed.js';
45
45
  export { g as getCurrentDate } from './getCurrentDate-046a888d.js';
46
46
  export { g as getNextMonthDate } from './getNextMonthDate-00c47169.js';
47
+ export { D as DropAreaSize, s as OrDropAreaV3 } from './OrDropArea-da30333e.js';
48
+ export { a as approximateFileSize } from './approximateFileSize-a48b356b.js';
47
49
  export { E as EmptyStateSize, s as OrEmptyStateV3 } from './OrEmptyState-3a7eae61.js';
48
50
  export { s as OrError } from './OrError-f90296db.js';
49
51
  export { s as OrErrorTagV3 } from './OrErrorTag-638eceef.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@onereach/ui-components",
3
- "version": "8.20.3",
3
+ "version": "8.21.0",
4
4
  "npmUnpacked": "4.15.2",
5
5
  "description": "Vue components library for v2/3",
6
6
  "sideEffects": false,
@@ -40,7 +40,7 @@
40
40
  "@codemirror/lang-json": "6.0.1",
41
41
  "@codemirror/lang-markdown": "6.1.1",
42
42
  "@floating-ui/dom": "1.4.2",
43
- "@onereach/styles": "^6.7.0",
43
+ "@onereach/styles": "^6.8.0",
44
44
  "@splidejs/splide": "4.0.6",
45
45
  "@tiptap/core": "2.0.3",
46
46
  "@tiptap/extension-blockquote": "2.0.3",
@@ -178,5 +178,5 @@
178
178
  },
179
179
  "./package.json": "./package.json"
180
180
  },
181
- "gitHead": "578dfcb67386b55d59b0098ac594fb9eef15afe4"
181
+ "gitHead": "a570f0e56682c67f25c7a24af9d1c3ea0fa9378b"
182
182
  }
@@ -28,6 +28,7 @@ export * from './or-date-range-picker-v3';
28
28
  export * from './or-date-time-format-v3';
29
29
  export * from './or-date-time-picker';
30
30
  export * from './or-date-time-picker-v3';
31
+ export * from './or-drop-area-v3';
31
32
  export * from './or-empty-state-v3';
32
33
  export * from './or-error';
33
34
  export * from './or-error-tag-v3';
@@ -0,0 +1,220 @@
1
+ <template>
2
+ <div
3
+ ref="root"
4
+ :class="rootStyles"
5
+ :invalid="invalid"
6
+ :disabled="disabled"
7
+ >
8
+ <input
9
+ :class="controlStyles"
10
+ :type="'file'"
11
+ :accept="fileTypes.join(',')"
12
+ :multiple="maxFiles > 1"
13
+ :disabled="disabled"
14
+ @change="onChange($event)"
15
+ >
16
+
17
+ <div
18
+ :class="iconStyles"
19
+ :invalid="invalid"
20
+ :disabled="disabled"
21
+ >
22
+ <OrIcon
23
+ :icon="'cloud_upload'"
24
+ :size="'inherit'"
25
+ />
26
+ </div>
27
+
28
+ <div
29
+ :class="textStyles"
30
+ :disabled="disabled"
31
+ >
32
+ <slot
33
+ :invalid="invalid"
34
+ :disabled="disabled"
35
+ >
36
+ <template v-if="isDesktop">
37
+ <div>Drag file here</div>
38
+
39
+ <div>
40
+ or
41
+
42
+ <span
43
+ :class="textEmphasisStyles"
44
+ :invalid="invalid"
45
+ :disabled="disabled"
46
+ >
47
+ Upload from your computer
48
+ </span>
49
+ </div>
50
+ </template>
51
+
52
+ <template v-if="isMobile">
53
+ <span
54
+ :class="textEmphasisStyles"
55
+ :invalid="invalid"
56
+ :disabled="disabled"
57
+ >
58
+ Upload from your device
59
+ </span>
60
+ </template>
61
+ </slot>
62
+ </div>
63
+
64
+ <div
65
+ :class="constraintsStyles"
66
+ :disabled="disabled"
67
+ >
68
+ <slot
69
+ name="constraints"
70
+ :invalid="invalid"
71
+ :disabled="disabled"
72
+ >
73
+ Maximum files: {{ maxFiles }}, maximum file size: {{ approximateFileSize(maxFileSize) }}
74
+ </slot>
75
+ </div>
76
+ </div>
77
+ </template>
78
+
79
+ <script lang="ts">
80
+ import { PropType, computed, defineComponent, ref, toRef } from 'vue-demi';
81
+ import { useProxyModelValue, useResponsive } from '../../hooks';
82
+ import { OrIconV3 as OrIcon } from '../or-icon-v3';
83
+ import { DropAreaSize } from './props';
84
+ import { DropArea, DropAreaConstraints, DropAreaControl, DropAreaIcon, DropAreaIconSizes, DropAreaSizes, DropAreaText, DropAreaTextEmphasis } from './styles';
85
+ import { approximateFileSize } from './utils';
86
+
87
+ export default defineComponent({
88
+ components: {
89
+ OrIcon,
90
+ },
91
+
92
+ model: {
93
+ prop: 'modelValue',
94
+ event: 'update:modelValue',
95
+ },
96
+
97
+ props: {
98
+ modelValue: {
99
+ type: Array as PropType<File[]>,
100
+ default: () => [],
101
+ },
102
+
103
+ fileTypes: {
104
+ type: Array as PropType<string[]>,
105
+ default: () => [],
106
+ },
107
+
108
+ maxFiles: {
109
+ type: Number,
110
+ default: () => 1,
111
+ },
112
+
113
+ maxFileSize: {
114
+ type: Number,
115
+ default: () => 10485760,
116
+ },
117
+
118
+ size: {
119
+ type: String as PropType<`${DropAreaSize}`>,
120
+ default: () => DropAreaSize.M,
121
+ },
122
+
123
+ disabled: {
124
+ type: Boolean,
125
+ default: () => false,
126
+ },
127
+ },
128
+
129
+ emits: [
130
+ 'update:modelValue',
131
+ ],
132
+
133
+ expose: [
134
+ 'root',
135
+
136
+ 'invalid',
137
+ ],
138
+
139
+ setup(props, context) {
140
+ // Refs
141
+ const root = ref<HTMLElement>();
142
+
143
+ // Styles
144
+ const rootStyles = computed(() => [
145
+ 'or-drop-area-v3',
146
+ ...DropArea,
147
+ ...DropAreaSizes[props.size],
148
+ ]);
149
+
150
+ const controlStyles = computed(() => [
151
+ ...DropAreaControl,
152
+ ]);
153
+
154
+ const iconStyles = computed(() => [
155
+ ...DropAreaIcon,
156
+ ...DropAreaIconSizes[props.size],
157
+ ]);
158
+
159
+ const textStyles = computed(() => [
160
+ ...DropAreaText,
161
+ ]);
162
+
163
+ const textEmphasisStyles = computed(() => [
164
+ ...DropAreaTextEmphasis,
165
+ ]);
166
+
167
+ const constraintsStyles = computed(() => [
168
+ ...DropAreaConstraints,
169
+ ]);
170
+
171
+ // State
172
+ const proxyModelValue = useProxyModelValue(toRef(props, 'modelValue'), context.emit);
173
+
174
+ const invalid = computed(() => {
175
+ if (props.fileTypes.length > 0 && proxyModelValue.value.some((file) => !props.fileTypes.includes(file.type))) {
176
+ return true;
177
+ }
178
+
179
+ if (proxyModelValue.value.length > props.maxFiles) {
180
+ return true;
181
+ }
182
+
183
+ if (proxyModelValue.value.some((file) => file.size > props.maxFileSize)) {
184
+ return true;
185
+ }
186
+
187
+ return false;
188
+ });
189
+
190
+ // Handlers
191
+ function onChange(event: Event): void {
192
+ proxyModelValue.value = [...(event.target as HTMLInputElement).files!];
193
+ }
194
+
195
+ // Helpers
196
+ const { isDesktop, isMobile } = useResponsive();
197
+
198
+ return {
199
+ root,
200
+
201
+ rootStyles,
202
+ controlStyles,
203
+ iconStyles,
204
+ textStyles,
205
+ textEmphasisStyles,
206
+ constraintsStyles,
207
+
208
+ proxyModelValue,
209
+ invalid,
210
+
211
+ onChange,
212
+
213
+ isDesktop,
214
+ isMobile,
215
+
216
+ approximateFileSize,
217
+ };
218
+ },
219
+ });
220
+ </script>
@@ -0,0 +1,3 @@
1
+ export { default as OrDropAreaV3 } from './OrDropArea.vue';
2
+ export * from './props';
3
+ export * from './utils';
@@ -0,0 +1,4 @@
1
+ export enum DropAreaSize {
2
+ M = 'm',
3
+ S = 's',
4
+ }