@ynput/ayon-frontend-shared 0.2.17 → 0.2.18

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 (385) hide show
  1. package/dist/DetailsPanel.cjs.js +6 -3
  2. package/dist/DetailsPanel.cjs.js.map +1 -1
  3. package/dist/DetailsPanel.es.js +6 -3
  4. package/dist/DetailsPanel.es.js.map +1 -1
  5. package/dist/_virtual/index.cjs10.js +4 -4
  6. package/dist/_virtual/index.cjs5.js +3 -5
  7. package/dist/_virtual/index.cjs5.js.map +1 -1
  8. package/dist/_virtual/index.cjs6.js +5 -3
  9. package/dist/_virtual/index.cjs6.js.map +1 -1
  10. package/dist/_virtual/index.cjs8.js +4 -4
  11. package/dist/_virtual/index.cjs9.js +4 -4
  12. package/dist/_virtual/index.es10.js +4 -4
  13. package/dist/_virtual/index.es5.js +2 -5
  14. package/dist/_virtual/index.es5.js.map +1 -1
  15. package/dist/_virtual/index.es6.js +5 -2
  16. package/dist/_virtual/index.es6.js.map +1 -1
  17. package/dist/_virtual/index.es8.js +4 -4
  18. package/dist/_virtual/index.es9.js +4 -4
  19. package/dist/api.cjs.js +7 -0
  20. package/dist/api.cjs.js.map +1 -1
  21. package/dist/api.es.js +7 -0
  22. package/dist/api.es.js.map +1 -1
  23. package/dist/components.cjs.js +9 -4
  24. package/dist/components.cjs.js.map +1 -1
  25. package/dist/components.es.js +10 -5
  26. package/dist/components.es.js.map +1 -1
  27. package/dist/index.cjs.js +6 -3
  28. package/dist/index.cjs.js.map +1 -1
  29. package/dist/index.es.js +6 -3
  30. package/dist/index.es.js.map +1 -1
  31. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +2 -2
  32. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  33. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  34. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  35. package/dist/node_modules/rehype-prism-plus/dist/index.es.cjs.js +1 -1
  36. package/dist/node_modules/rehype-prism-plus/dist/index.es.es.js +1 -1
  37. package/dist/node_modules/remove-accents/index.cjs.js +1 -1
  38. package/dist/node_modules/remove-accents/index.es.js +1 -1
  39. package/dist/node_modules/vfile/lib/index.cjs.js +1 -1
  40. package/dist/node_modules/vfile/lib/index.es.js +1 -1
  41. package/dist/shared/src/api/generated/graphql.cjs.js +26 -23
  42. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  43. package/dist/shared/src/api/generated/graphql.es.js +26 -23
  44. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  45. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js +4 -1
  46. package/dist/shared/src/api/queries/entities/getEntityPanel.cjs.js.map +1 -1
  47. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js +4 -1
  48. package/dist/shared/src/api/queries/entities/getEntityPanel.es.js.map +1 -1
  49. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +13 -1
  50. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  51. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +13 -1
  52. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  53. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +2 -0
  54. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  55. package/dist/shared/src/api/queries/entities/updateEntity.es.js +2 -0
  56. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  57. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +2 -0
  58. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  59. package/dist/shared/src/api/queries/overview/updateOverview.es.js +2 -0
  60. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  61. package/dist/shared/src/api/queries/products/createProduct.cjs.js +54 -0
  62. package/dist/shared/src/api/queries/products/createProduct.cjs.js.map +1 -0
  63. package/dist/shared/src/api/queries/products/createProduct.es.js +54 -0
  64. package/dist/shared/src/api/queries/products/createProduct.es.js.map +1 -0
  65. package/dist/shared/src/api/queries/users/getUsers.cjs.js +2 -0
  66. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  67. package/dist/shared/src/api/queries/users/getUsers.es.js +2 -0
  68. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  69. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js +80 -0
  70. package/dist/shared/src/api/queries/versions/updateVersions.cjs.js.map +1 -0
  71. package/dist/shared/src/api/queries/versions/updateVersions.es.js +80 -0
  72. package/dist/shared/src/api/queries/versions/updateVersions.es.js.map +1 -0
  73. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +2 -0
  74. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  75. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +2 -0
  76. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  77. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js +2 -0
  78. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.cjs.js.map +1 -1
  79. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js +2 -0
  80. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributes.es.js.map +1 -1
  81. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js +1 -1
  82. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js.map +1 -1
  83. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js +1 -1
  84. package/dist/shared/src/components/DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js.map +1 -1
  85. package/dist/shared/src/components/EntityPanelUploader/Dropzone.cjs.js +13 -0
  86. package/dist/shared/src/components/EntityPanelUploader/Dropzone.cjs.js.map +1 -0
  87. package/dist/shared/src/components/EntityPanelUploader/Dropzone.es.js +14 -0
  88. package/dist/shared/src/components/EntityPanelUploader/Dropzone.es.js.map +1 -0
  89. package/dist/shared/src/components/{EntityThumbnailUploader/EntityThumbnailUploader.cjs.js → EntityPanelUploader/EntityPanelUploader.cjs.js} +378 -119
  90. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -0
  91. package/dist/shared/src/components/{EntityThumbnailUploader/EntityThumbnailUploader.es.js → EntityPanelUploader/EntityPanelUploader.es.js} +378 -119
  92. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -0
  93. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js +95 -0
  94. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js.map +1 -0
  95. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.es.js +95 -0
  96. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.styled.es.js.map +1 -0
  97. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js +76 -0
  98. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.cjs.js.map +1 -0
  99. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js +77 -0
  100. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploaderDialog.es.js.map +1 -0
  101. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js +1 -1
  102. package/dist/shared/src/components/Powerpack/PowerpackButton.cjs.js.map +1 -1
  103. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js +1 -1
  104. package/dist/shared/src/components/Powerpack/PowerpackButton.es.js.map +1 -1
  105. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +2 -0
  106. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  107. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +2 -0
  108. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  109. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +2 -0
  110. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  111. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +2 -0
  112. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  113. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +6 -3
  114. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  115. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +6 -3
  116. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  117. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +29 -102
  118. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  119. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +29 -102
  120. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  121. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +6 -3
  122. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  123. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +6 -3
  124. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  125. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +212 -0
  126. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -0
  127. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +212 -0
  128. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -0
  129. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +2 -0
  130. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  131. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +2 -0
  132. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  133. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js +2 -2
  134. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.cjs.js.map +1 -1
  135. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js +2 -2
  136. package/dist/shared/src/components/SettingsPanel/SettingsPanelItemTemplate.es.js.map +1 -1
  137. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +6 -3
  138. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  139. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +6 -3
  140. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  141. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js +85 -0
  142. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.cjs.js.map +1 -0
  143. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js +85 -0
  144. package/dist/shared/src/components/VersionUploader/components/UploadVersionDialog.es.js.map +1 -0
  145. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +401 -0
  146. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -0
  147. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +401 -0
  148. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -0
  149. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +308 -0
  150. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -0
  151. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +308 -0
  152. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -0
  153. package/dist/shared/src/components/Watchers/Watchers.cjs.js +2 -0
  154. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  155. package/dist/shared/src/components/Watchers/Watchers.es.js +2 -0
  156. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  157. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +6 -3
  158. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  159. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +6 -3
  160. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  161. package/dist/shared/src/containers/Actions/Actions.cjs.js +2 -0
  162. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  163. package/dist/shared/src/containers/Actions/Actions.es.js +2 -0
  164. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  165. package/dist/shared/src/containers/Actions/Actions.styled.cjs.js +1 -1
  166. package/dist/shared/src/containers/Actions/Actions.styled.cjs.js.map +1 -1
  167. package/dist/shared/src/containers/Actions/Actions.styled.es.js +1 -1
  168. package/dist/shared/src/containers/Actions/Actions.styled.es.js.map +1 -1
  169. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +6 -3
  170. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  171. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +6 -3
  172. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  173. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +9 -4
  174. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  175. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +9 -4
  176. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  177. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +6 -3
  178. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  179. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +6 -3
  180. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  181. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +6 -3
  182. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  183. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +6 -3
  184. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  185. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +10 -5
  186. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  187. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +10 -5
  188. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  189. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js +1 -1
  190. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js.map +1 -1
  191. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js +1 -1
  192. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.styled.es.js.map +1 -1
  193. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +2 -0
  194. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  195. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +2 -0
  196. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  197. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +2 -0
  198. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  199. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +2 -0
  200. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  201. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js +2 -2
  202. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js.map +1 -1
  203. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.es.js +2 -2
  204. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.es.js.map +1 -1
  205. package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js +1 -1
  206. package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js.map +1 -1
  207. package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js +1 -1
  208. package/dist/shared/src/containers/Feed/components/FileUploadPreview/FileUploadPreview.styled.es.js.map +1 -1
  209. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +2 -0
  210. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  211. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +2 -0
  212. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  213. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +2 -0
  214. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  215. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +2 -0
  216. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  217. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +4 -2
  218. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  219. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +4 -2
  220. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  221. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +6 -3
  222. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  223. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +6 -3
  224. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  225. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js +3 -3
  226. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.cjs.js.map +1 -1
  227. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js +3 -3
  228. package/dist/shared/src/containers/ProjectTreeTable/components/HeaderActionButton.es.js.map +1 -1
  229. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +2 -0
  230. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  231. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +2 -0
  232. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  233. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.cjs.js.map +1 -1
  234. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableContext.es.js.map +1 -1
  235. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js +7 -1
  236. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.cjs.js.map +1 -1
  237. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js +7 -1
  238. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectTableProvider.es.js.map +1 -1
  239. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +2 -0
  240. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  241. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +2 -0
  242. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  243. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +2 -0
  244. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  245. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +2 -0
  246. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  247. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +2 -0
  248. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  249. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +2 -0
  250. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  251. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js +1 -0
  252. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.cjs.js.map +1 -1
  253. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js +1 -0
  254. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFolderRelationships.es.js.map +1 -1
  255. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +2 -0
  256. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
  257. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +2 -0
  258. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
  259. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +2 -0
  260. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
  261. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +2 -0
  262. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
  263. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js +3 -2
  264. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.cjs.js.map +1 -1
  265. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js +3 -2
  266. package/dist/shared/src/containers/ProjectTreeTable/utils/getTableFieldOptions.es.js.map +1 -1
  267. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +1 -1
  268. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  269. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +1 -1
  270. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  271. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js +1 -1
  272. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js.map +1 -1
  273. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js +1 -1
  274. package/dist/shared/src/containers/ProjectTreeTable/widgets/GroupHeaderWidget.es.js.map +1 -1
  275. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +6 -3
  276. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  277. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +6 -3
  278. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  279. package/dist/shared/src/context/AddonProjectContext.cjs.js +2 -0
  280. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  281. package/dist/shared/src/context/AddonProjectContext.es.js +2 -0
  282. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  283. package/dist/shared/src/context/DetailsPanelContext.cjs.js +2 -0
  284. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  285. package/dist/shared/src/context/DetailsPanelContext.es.js +2 -0
  286. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  287. package/dist/shared/src/context/PowerpackContext.cjs.js +2 -0
  288. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  289. package/dist/shared/src/context/PowerpackContext.es.js +2 -0
  290. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  291. package/dist/shared/src/context/RemoteModulesContext.cjs.js +2 -0
  292. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  293. package/dist/shared/src/context/RemoteModulesContext.es.js +2 -0
  294. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  295. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js +15 -4
  296. package/dist/shared/src/context/ThumbnailUploaderContext.cjs.js.map +1 -1
  297. package/dist/shared/src/context/ThumbnailUploaderContext.es.js +15 -4
  298. package/dist/shared/src/context/ThumbnailUploaderContext.es.js.map +1 -1
  299. package/dist/shared/src/context/pip/PiPWrapper.cjs.js +1 -1
  300. package/dist/shared/src/context/pip/PiPWrapper.cjs.js.map +1 -1
  301. package/dist/shared/src/context/pip/PiPWrapper.es.js +1 -1
  302. package/dist/shared/src/context/pip/PiPWrapper.es.js.map +1 -1
  303. package/dist/shared/src/hooks/useActionTriggers.cjs.js +2 -0
  304. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  305. package/dist/shared/src/hooks/useActionTriggers.es.js +2 -0
  306. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  307. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +2 -0
  308. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  309. package/dist/shared/src/hooks/useEntityUpdate.es.js +2 -0
  310. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  311. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +2 -0
  312. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  313. package/dist/shared/src/hooks/useScopedStatuses.es.js +2 -0
  314. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  315. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +2 -0
  316. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  317. package/dist/shared/src/hooks/useUserProjectConfig.es.js +2 -0
  318. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  319. package/dist/shared/src/util/productTypes.cjs.js +1 -0
  320. package/dist/shared/src/util/productTypes.cjs.js.map +1 -1
  321. package/dist/shared/src/util/productTypes.es.js +1 -0
  322. package/dist/shared/src/util/productTypes.es.js.map +1 -1
  323. package/dist/shared/src/utils/extractVersionFromFilename.cjs.js +32 -0
  324. package/dist/shared/src/utils/extractVersionFromFilename.cjs.js.map +1 -0
  325. package/dist/shared/src/utils/extractVersionFromFilename.es.js +32 -0
  326. package/dist/shared/src/utils/extractVersionFromFilename.es.js.map +1 -0
  327. package/dist/shared/src/utils/versionUploadHelpers.cjs.js +121 -0
  328. package/dist/shared/src/utils/versionUploadHelpers.cjs.js.map +1 -0
  329. package/dist/shared/src/utils/versionUploadHelpers.es.js +121 -0
  330. package/dist/shared/src/utils/versionUploadHelpers.es.js.map +1 -0
  331. package/dist/types/api/generated/graphql.d.ts +47 -36
  332. package/dist/types/api/queries/activities/getActivities.d.ts +4 -4
  333. package/dist/types/api/queries/activities/updateActivities.d.ts +8 -8
  334. package/dist/types/api/queries/entities/getEntity.d.ts +4 -4
  335. package/dist/types/api/queries/entities/getEntityPanel.d.ts +4 -4
  336. package/dist/types/api/queries/entities/updateEntity.d.ts +4 -4
  337. package/dist/types/api/queries/entityLists/getLists.d.ts +4 -4
  338. package/dist/types/api/queries/index.d.ts +2 -0
  339. package/dist/types/api/queries/overview/getOverview.d.ts +4 -4
  340. package/dist/types/api/queries/products/createProduct.d.ts +161 -0
  341. package/dist/types/api/queries/products/index.d.ts +1 -0
  342. package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +4 -4
  343. package/dist/types/api/queries/users/getUsers.d.ts +4 -4
  344. package/dist/types/api/queries/versions/index.d.ts +1 -0
  345. package/dist/types/api/queries/versions/updateVersions.d.ts +685 -0
  346. package/dist/types/components/EntityPanelUploader/Dropzone.d.ts +11 -0
  347. package/dist/types/components/{EntityThumbnailUploader/EntityThumbnailUploader.d.ts → EntityPanelUploader/EntityPanelUploader.d.ts} +3 -3
  348. package/dist/types/components/EntityPanelUploader/EntityPanelUploader.styled.d.ts +8 -0
  349. package/dist/types/components/EntityPanelUploader/EntityPanelUploaderDialog.d.ts +10 -0
  350. package/dist/types/components/EntityPanelUploader/index.d.ts +1 -0
  351. package/dist/types/components/ReviewablesList/index.d.ts +1 -0
  352. package/dist/types/components/ReviewablesList/useReviewablesUpload.d.ts +19 -0
  353. package/dist/types/components/VersionUploader/components/UploadVersionDialog.d.ts +5 -0
  354. package/dist/types/components/VersionUploader/components/UploadVersionForm.d.ts +18 -0
  355. package/dist/types/components/VersionUploader/context/VersionUploadContext.d.ts +54 -0
  356. package/dist/types/components/VersionUploader/index.d.ts +2 -0
  357. package/dist/types/components/index.d.ts +2 -2
  358. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +2 -1
  359. package/dist/types/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.d.ts +3 -1
  360. package/dist/types/containers/ProjectTreeTable/context/ProjectTableContext.d.ts +1 -0
  361. package/dist/types/containers/ProjectTreeTable/context/ProjectTableProvider.d.ts +2 -1
  362. package/dist/types/containers/ProjectTreeTable/hooks/useCellContextMenu.d.ts +2 -1
  363. package/dist/types/containers/ProjectTreeTable/utils/getTableFieldOptions.d.ts +2 -1
  364. package/dist/types/context/ThumbnailUploaderContext.d.ts +3 -2
  365. package/dist/types/utils/versionUploadHelpers.d.ts +63 -0
  366. package/package.json +1 -1
  367. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.cjs.js.map +0 -1
  368. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.es.js.map +0 -1
  369. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js +0 -12
  370. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js.map +0 -1
  371. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js +0 -12
  372. package/dist/shared/src/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js.map +0 -1
  373. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.cjs.js +0 -112
  374. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.cjs.js.map +0 -1
  375. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.es.js +0 -112
  376. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.es.js.map +0 -1
  377. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js +0 -104
  378. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.cjs.js.map +0 -1
  379. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.es.js +0 -104
  380. package/dist/shared/src/components/ThumbnailUploader/ThumbnailUploader.styled.es.js.map +0 -1
  381. package/dist/types/components/EntityThumbnailUploader/EntityThumbnailUploader.styled.d.ts +0 -1
  382. package/dist/types/components/EntityThumbnailUploader/index.d.ts +0 -1
  383. package/dist/types/components/ThumbnailUploader/ThumbnailUploader.d.ts +0 -17
  384. package/dist/types/components/ThumbnailUploader/ThumbnailUploader.styled.d.ts +0 -4
  385. package/dist/types/components/ThumbnailUploader/index.d.ts +0 -1
@@ -41,7 +41,7 @@ const Item = styled.li`
41
41
  user-select: none;
42
42
  pointer-events: none;
43
43
  &:hover {
44
- background-color: unset;
44
+ background-color: unset !important;
45
45
  }
46
46
  }
47
47
  `;
@@ -51,7 +51,7 @@ const Actions = styled.div`
51
51
  margin-left: auto;
52
52
  `;
53
53
  const ActionButton = styled(Button)`
54
- background-color: unset;
54
+ background-color: unset !important;
55
55
  padding: 4px;
56
56
 
57
57
  &.active {
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsPanelItemTemplate.es.js","sources":["../../../../../src/components/SettingsPanel/SettingsPanelItemTemplate.tsx"],"sourcesContent":["import { Button, ButtonProps, Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef } from 'react'\nimport styled from 'styled-components'\n\nconst Item = styled.li`\n display: flex;\n padding: 2px;\n padding-left: 8px;\n height: 32px;\n justify-content: space-between;\n align-items: center;\n gap: var(--base-gap-large);\n cursor: pointer;\n border-radius: 4px;\n cursor: default;\n user-select: none;\n overflow: hidden;\n\n .label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.highlighted {\n background-color: var(--md-sys-color-secondary-container);\n color: var(--md-sys-color-on-secondary-container);\n\n &:hover {\n background-color: var(--md-sys-color-secondary-container-hover);\n }\n }\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-high);\n }\n\n &.disabled {\n opacity: 0.5;\n user-select: none;\n pointer-events: none;\n &:hover {\n background-color: unset;\n }\n }\n`\n\nconst Actions = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n margin-left: auto;\n`\n\nconst ActionButton = styled(Button)`\n background-color: unset;\n padding: 4px;\n\n &.active {\n .icon {\n font-variation-settings: 'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 10;\n }\n }\n\n &.active {\n opacity: 1;\n }\n`\n\ninterface Action extends ButtonProps {\n active?: boolean\n ['data-tooltip']?: string\n ['data-shortcut']?: string\n}\n\nexport type SettingsPanelItem = {\n value: string\n label: string\n icon?: string\n}\n\nexport interface SettingsPanelItemTemplateProps extends React.HTMLAttributes<HTMLLIElement> {\n item: SettingsPanelItem\n isHighlighted?: boolean\n isDisabled?: boolean\n startContent?: React.ReactNode\n endContent?: React.ReactNode\n actions?: Action[]\n}\n\nexport const SettingsPanelItemTemplate = forwardRef<HTMLLIElement, SettingsPanelItemTemplateProps>(\n (\n { item, actions, startContent, endContent, isHighlighted, isDisabled, className, ...props },\n ref,\n ) => {\n return (\n <Item\n className={clsx('setting-item', className, {\n highlighted: isHighlighted,\n disabled: isDisabled,\n })}\n {...props}\n ref={ref}\n >\n {startContent}\n {item.icon && <Icon icon={item.icon} />}\n <span className=\"label\">{item.label}</span>\n <Actions className=\"actions\">\n {actions?.map(({ icon, className, active, onClick, ...action }, index) => (\n <ActionButton\n key={index}\n className={clsx('action', className, { active })}\n onClick={!isDisabled ? onClick : undefined}\n {...action}\n >\n {icon && <Icon icon={icon} />}\n {action.children}\n </ActionButton>\n ))}\n </Actions>\n {endContent}\n </Item>\n )\n },\n)\n"],"names":["jsxs","jsx","className"],"mappings":";;;;;AAKA,MAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2CpB,MAAM,UAAU,OAAO;AAAA;AAAA;AAAA;AAAA;AAMvB,MAAM,eAAe,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoC3B,MAAM,4BAA4B;AAAA,EACvC,CACE,EAAE,MAAM,SAAS,cAAc,YAAY,eAAe,YAAY,WAAW,GAAG,MAAM,GAC1F,QACG;AAED,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,KAAK,gBAAgB,WAAW;AAAA,UACzC,aAAa;AAAA,UACb,UAAU;AAAA,QAAA,CACX;AAAA,QACA,GAAG;AAAA,QACJ;AAAA,QAEC,UAAA;AAAA,UAAA;AAAA,UACA,KAAK,QAAQC,sCAAC,MAAK,EAAA,MAAM,KAAK,MAAM;AAAA,UACpCA,kCAAA,IAAA,QAAA,EAAK,WAAU,SAAS,eAAK,OAAM;AAAA,gDACnC,SAAQ,EAAA,WAAU,WAChB,UAAA,mCAAS,IAAI,CAAC,EAAE,MAAM,WAAAC,YAAW,QAAQ,SAAS,GAAG,OAAA,GAAU,UAC9DF,kCAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,WAAW,KAAK,UAAUE,YAAW,EAAE,QAAQ;AAAA,cAC/C,SAAS,CAAC,aAAa,UAAU;AAAA,cAChC,GAAG;AAAA,cAEH,UAAA;AAAA,gBAAQ,QAAAD,kCAAA,IAAC,QAAK,KAAY,CAAA;AAAA,gBAC1B,OAAO;AAAA,cAAA;AAAA,YAAA;AAAA,YANH;AAAA,UAQR,IACH;AAAA,UACC;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"SettingsPanelItemTemplate.es.js","sources":["../../../../../src/components/SettingsPanel/SettingsPanelItemTemplate.tsx"],"sourcesContent":["import { Button, ButtonProps, Icon } from '@ynput/ayon-react-components'\nimport clsx from 'clsx'\nimport { forwardRef } from 'react'\nimport styled from 'styled-components'\n\nconst Item = styled.li`\n display: flex;\n padding: 2px;\n padding-left: 8px;\n height: 32px;\n justify-content: space-between;\n align-items: center;\n gap: var(--base-gap-large);\n cursor: pointer;\n border-radius: 4px;\n cursor: default;\n user-select: none;\n overflow: hidden;\n\n .label {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n &.highlighted {\n background-color: var(--md-sys-color-secondary-container);\n color: var(--md-sys-color-on-secondary-container);\n\n &:hover {\n background-color: var(--md-sys-color-secondary-container-hover);\n }\n }\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-high);\n }\n\n &.disabled {\n opacity: 0.5;\n user-select: none;\n pointer-events: none;\n &:hover {\n background-color: unset !important;\n }\n }\n`\n\nconst Actions = styled.div`\n display: flex;\n gap: var(--base-gap-small);\n margin-left: auto;\n`\n\nconst ActionButton = styled(Button)`\n background-color: unset !important;\n padding: 4px;\n\n &.active {\n .icon {\n font-variation-settings: 'FILL' 1, 'wght' 200, 'GRAD' 200, 'opsz' 10;\n }\n }\n\n &.active {\n opacity: 1;\n }\n`\n\ninterface Action extends ButtonProps {\n active?: boolean\n ['data-tooltip']?: string\n ['data-shortcut']?: string\n}\n\nexport type SettingsPanelItem = {\n value: string\n label: string\n icon?: string\n}\n\nexport interface SettingsPanelItemTemplateProps extends React.HTMLAttributes<HTMLLIElement> {\n item: SettingsPanelItem\n isHighlighted?: boolean\n isDisabled?: boolean\n startContent?: React.ReactNode\n endContent?: React.ReactNode\n actions?: Action[]\n}\n\nexport const SettingsPanelItemTemplate = forwardRef<HTMLLIElement, SettingsPanelItemTemplateProps>(\n (\n { item, actions, startContent, endContent, isHighlighted, isDisabled, className, ...props },\n ref,\n ) => {\n return (\n <Item\n className={clsx('setting-item', className, {\n highlighted: isHighlighted,\n disabled: isDisabled,\n })}\n {...props}\n ref={ref}\n >\n {startContent}\n {item.icon && <Icon icon={item.icon} />}\n <span className=\"label\">{item.label}</span>\n <Actions className=\"actions\">\n {actions?.map(({ icon, className, active, onClick, ...action }, index) => (\n <ActionButton\n key={index}\n className={clsx('action', className, { active })}\n onClick={!isDisabled ? onClick : undefined}\n {...action}\n >\n {icon && <Icon icon={icon} />}\n {action.children}\n </ActionButton>\n ))}\n </Actions>\n {endContent}\n </Item>\n )\n },\n)\n"],"names":["jsxs","jsx","className"],"mappings":";;;;;AAKA,MAAM,OAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2CpB,MAAM,UAAU,OAAO;AAAA;AAAA;AAAA;AAAA;AAMvB,MAAM,eAAe,OAAO,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAoC3B,MAAM,4BAA4B;AAAA,EACvC,CACE,EAAE,MAAM,SAAS,cAAc,YAAY,eAAe,YAAY,WAAW,GAAG,MAAM,GAC1F,QACG;AAED,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,KAAK,gBAAgB,WAAW;AAAA,UACzC,aAAa;AAAA,UACb,UAAU;AAAA,QAAA,CACX;AAAA,QACA,GAAG;AAAA,QACJ;AAAA,QAEC,UAAA;AAAA,UAAA;AAAA,UACA,KAAK,QAAQC,sCAAC,MAAK,EAAA,MAAM,KAAK,MAAM;AAAA,UACpCA,kCAAA,IAAA,QAAA,EAAK,WAAU,SAAS,eAAK,OAAM;AAAA,gDACnC,SAAQ,EAAA,WAAU,WAChB,UAAA,mCAAS,IAAI,CAAC,EAAE,MAAM,WAAAC,YAAW,QAAQ,SAAS,GAAG,OAAA,GAAU,UAC9DF,kCAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,WAAW,KAAK,UAAUE,YAAW,EAAE,QAAQ;AAAA,cAC/C,SAAS,CAAC,aAAa,UAAU;AAAA,cAChC,GAAG;AAAA,cAEH,UAAA;AAAA,gBAAQ,QAAAD,kCAAA,IAAC,QAAK,KAAY,CAAA;AAAA,gBAC1B,OAAO;AAAA,cAAA;AAAA,YAAA;AAAA,YANH;AAAA,UAQR,IACH;AAAA,UACC;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAGN;"}
@@ -77,6 +77,8 @@ require("../../api/queries/users/updateUsers.cjs.js");
77
77
  require("../../api/queries/watchers/getWatchers.cjs.js");
78
78
  require("../../api/queries/permissions/getPermissions.cjs.js");
79
79
  require("../../api/queries/grouping/getGrouping.cjs.js");
80
+ require("../../api/queries/versions/updateVersions.cjs.js");
81
+ require("../../api/queries/products/createProduct.cjs.js");
80
82
  require("@dnd-kit/core");
81
83
  require("@dnd-kit/sortable");
82
84
  require("../ReviewablesList/ReviewablesList.styled.cjs.js");
@@ -84,8 +86,8 @@ require("../../containers/ContextMenu/ContextMenuContext.cjs.js");
84
86
  ;/* empty css */
85
87
  require("lodash");
86
88
  require("../../util/pubsub.cjs.js");
87
- require("axios");
88
89
  require("../ReviewablesList/ReviewablesUpload.styled.cjs.js");
90
+ require("axios");
89
91
  require("../../context/RemoteModulesContext.cjs.js");
90
92
  require("../../context/DetailsPanelContext.cjs.js");
91
93
  require("../../context/ThumbnailUploaderContext.cjs.js");
@@ -165,8 +167,7 @@ require("../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating
165
167
  require("../../containers/Actions/Actions.styled.cjs.js");
166
168
  require("../../containers/Actions/ActionsDropdown/ActionsDropdown.cjs.js");
167
169
  require("../../containers/Actions/ActionIcon.cjs.js");
168
- require("../EntityThumbnailUploader/EntityThumbnailUploader.styled.cjs.js");
169
- require("../ThumbnailUploader/ThumbnailUploader.styled.cjs.js");
170
+ require("../EntityPanelUploader/EntityPanelUploader.styled.cjs.js");
170
171
  require("../EntityPath/EntityPath.styled.cjs.js");
171
172
  require("../EntityPath/SegmentProvider.cjs.js");
172
173
  require("../DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");
@@ -181,6 +182,8 @@ require("../AttributeEditor/components/MinMaxField.cjs.js");
181
182
  require("../EnumEditor/EnumEditor.styled.cjs.js");
182
183
  require("../SearchFilter/filterDates.cjs.js");
183
184
  const Badge = require("../Badge/Badge.cjs.js");
185
+ require("../VersionUploader/components/UploadVersionDialog.cjs.js");
186
+ require("../VersionUploader/context/VersionUploadContext.cjs.js");
184
187
  const getDefaults = (fields, values) => {
185
188
  const defaults = {};
186
189
  fields.forEach((field) => {
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleFormDialog.cjs.js","sources":["../../../../../src/components/SimpleFormDialog/SimpleFormDialog.tsx"],"sourcesContent":["import styled from 'styled-components'\nimport React, { useState, useEffect } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport {\n Button,\n Spacer,\n Dialog,\n FormLayout,\n FormRow,\n InputNumber,\n InputText,\n InputSwitch,\n Dropdown,\n DefaultItemTemplate,\n} from '@ynput/ayon-react-components'\nimport { Badge } from '@shared/components'\n\nimport type { FormSelectOption, SimpleFormField } from '@shared/api'\n\nexport type SimpleFormValue = string | number | boolean | string[] | null | undefined\nexport type SimpleFormValueDict = Record<string, SimpleFormValue>\n\nconst getDefaults = (fields: SimpleFormField[], values: SimpleFormValueDict) => {\n const defaults: SimpleFormValueDict = {}\n fields.forEach((field) => {\n if (field.name in values) {\n defaults[field.name] = values[field.name]\n } else if (field.value) {\n defaults[field.name] = field.value\n } else if (field.type === 'boolean') {\n defaults[field.name] = false\n } else if (field.type === 'integer') {\n defaults[field.name] = 0\n } else if (field.type === 'float') {\n defaults[field.name] = 0.0\n } else if (field.type === 'text') {\n defaults[field.name] = ''\n } else if (field.type === 'multiselect') {\n defaults[field.name] = []\n }\n })\n return defaults\n}\n\nconst LabelContainer = styled.div`\n &.normal {\n // maybe something here\n }\n\n &.info,\n &.warning,\n &.error {\n padding: 0.5rem;\n text-align: center;\n font-weight: bold;\n margin: 1rem 0;\n }\n\n &.info {\n background-color: var(--md-sys-color-on-secondary-dark);\n }\n &.warning {\n background-color: var(--md-sys-color-warning-container-dark);\n }\n &.error {\n background-color: var(--md-sys-color-on-error-dark);\n }\n`\n\ntype FormLabelProps = {\n field: SimpleFormField\n}\n\nconst FormLabel = ({ field }: FormLabelProps) => {\n const text = typeof field.value === 'string' ? field.value : 'Invalid label value'\n\n return (\n <LabelContainer className={field.highlight || 'normal'}>\n <ReactMarkdown>{text}</ReactMarkdown>\n </LabelContainer>\n )\n}\n\ntype FormFieldProps = {\n field: SimpleFormField\n value: SimpleFormValue\n onChange: (value: SimpleFormValue) => void\n}\n\nconst DropdownItemTemplate = (option: FormSelectOption) => {\n const endContent = (\n <>\n <div style={{ flex: 1 }} />\n {option.badges && option.badges.map((badge, index) => <Badge key={index}>{badge}</Badge>)}\n </>\n )\n return (\n <DefaultItemTemplate\n option={option}\n dataKey={'value'}\n labelKey={'label'}\n value={[option.value]}\n endContent={endContent}\n />\n )\n}\n\nconst FormField = ({ field, value, onChange }: FormFieldProps) => {\n if (field.type === 'text') {\n const parsedValue = typeof value === 'string' ? value : ''\n return (\n <InputText\n value={parsedValue}\n onChange={(e) => onChange(e.target.value)}\n placeholder={field.placeholder || ''}\n />\n )\n }\n if (field.type === 'boolean') {\n const parsedValue = typeof value === 'boolean' ? value : false\n\n const handleCheckboxEvent = (\n event: React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement>,\n ) => {\n if ('target' in event && 'checked' in event.target) {\n onChange((event.target as HTMLInputElement).checked)\n }\n }\n\n return <InputSwitch checked={parsedValue} onChange={handleCheckboxEvent} />\n }\n if (field.type === 'integer') {\n const parsedValue = typeof value === 'number' ? value : 0\n return (\n <InputNumber\n value={parsedValue}\n onChange={(e) => onChange(parseInt(e.target.value))}\n placeholder={field.placeholder || ''}\n />\n )\n }\n if (field.type === 'float') {\n const parsedValue = typeof value === 'number' ? value : 0.0\n return (\n <InputNumber\n type=\"number\"\n value={parsedValue}\n onChange={(e) => onChange(parseFloat(e.target.value))}\n placeholder={field.placeholder || ''}\n />\n )\n }\n\n if (field.type === 'select') {\n const parsedValue = typeof value === 'string' ? value : ''\n return (\n <Dropdown\n widthExpand\n options={field.options || []}\n value={parsedValue ? [parsedValue] : []}\n onSelectionChange={(e) => onChange(e[0])}\n className={`form-field`}\n multiSelect={false}\n itemTemplate={DropdownItemTemplate}\n />\n )\n } // Handle select\n\n if (field.type === 'multiselect') {\n const parsedValue = Array.isArray(value) ? value : []\n return (\n <Dropdown\n widthExpand\n options={field.options || []}\n value={parsedValue}\n onSelectionChange={(e) => onChange(e)}\n className={`form-field`}\n multiSelect={true}\n itemTemplate={DropdownItemTemplate}\n />\n )\n }\n}\n\nexport interface SimpleFormDialogProps {\n title: string\n fields: SimpleFormField[]\n values?: SimpleFormValueDict\n submitLabel?: string\n cancelLabel?: string\n submitIcon?: string\n cancelIcon?: string\n onClose: () => void\n onSubmit: (values: SimpleFormValueDict) => void\n isOpen: boolean\n}\n\nexport const SimpleFormDialog = ({\n fields,\n values,\n onClose,\n onSubmit,\n isOpen,\n title,\n submitLabel,\n cancelLabel,\n submitIcon,\n cancelIcon,\n}: SimpleFormDialogProps) => {\n const [formData, setFormData] = useState<SimpleFormValueDict | null>(null)\n\n useEffect(() => {\n if (isOpen) {\n const defaults = getDefaults(fields, values || {})\n setFormData(defaults)\n }\n }, [isOpen, fields, values])\n\n if (!isOpen) return null\n if (!formData) return null\n\n const footer = (\n <div style={{ display: 'flex', flexDirection: 'row', gap: 8 }}>\n <Spacer />\n {cancelLabel && <Button onClick={() => onClose()} label={cancelLabel} icon={cancelIcon} />}\n {submitLabel && (\n <Button\n onClick={() => onSubmit(formData)}\n label={submitLabel}\n icon={submitIcon}\n variant=\"filled\"\n />\n )}\n </div>\n )\n\n return (\n <Dialog\n isOpen={isOpen}\n onClose={onClose}\n header={title}\n footer={footer}\n style={{ minHeight: 500, minWidth: 600 }}\n >\n <FormLayout\n style={{ width: '95%' }}\n onKeyDown={(e) => {\n e.stopPropagation()\n }}\n >\n {fields.map((field: SimpleFormField) => {\n if (field.type === 'label') {\n return <FormLabel key={field.name} field={field} />\n }\n\n return (\n <FormRow key={field.name} label={field.label || ''}>\n <FormField\n field={field}\n value={formData[field.name]}\n onChange={(value) => {\n setFormData((prev) => ({\n ...prev,\n [field.name]: value,\n }))\n }}\n />\n </FormRow>\n )\n })}\n </FormLayout>\n </Dialog>\n )\n}\n"],"names":["jsx","jsxs","Fragment","Badge","DefaultItemTemplate","InputText","InputSwitch","InputNumber","Dropdown","useState","useEffect","Spacer","Button","Dialog","FormLayout","FormRow"],"mappings":"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"}
1
+ {"version":3,"file":"SimpleFormDialog.cjs.js","sources":["../../../../../src/components/SimpleFormDialog/SimpleFormDialog.tsx"],"sourcesContent":["import styled from 'styled-components'\nimport React, { useState, useEffect } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport {\n Button,\n Spacer,\n Dialog,\n FormLayout,\n FormRow,\n InputNumber,\n InputText,\n InputSwitch,\n Dropdown,\n DefaultItemTemplate,\n} from '@ynput/ayon-react-components'\nimport { Badge } from '@shared/components'\n\nimport type { FormSelectOption, SimpleFormField } from '@shared/api'\n\nexport type SimpleFormValue = string | number | boolean | string[] | null | undefined\nexport type SimpleFormValueDict = Record<string, SimpleFormValue>\n\nconst getDefaults = (fields: SimpleFormField[], values: SimpleFormValueDict) => {\n const defaults: SimpleFormValueDict = {}\n fields.forEach((field) => {\n if (field.name in values) {\n defaults[field.name] = values[field.name]\n } else if (field.value) {\n defaults[field.name] = field.value\n } else if (field.type === 'boolean') {\n defaults[field.name] = false\n } else if (field.type === 'integer') {\n defaults[field.name] = 0\n } else if (field.type === 'float') {\n defaults[field.name] = 0.0\n } else if (field.type === 'text') {\n defaults[field.name] = ''\n } else if (field.type === 'multiselect') {\n defaults[field.name] = []\n }\n })\n return defaults\n}\n\nconst LabelContainer = styled.div`\n &.normal {\n // maybe something here\n }\n\n &.info,\n &.warning,\n &.error {\n padding: 0.5rem;\n text-align: center;\n font-weight: bold;\n margin: 1rem 0;\n }\n\n &.info {\n background-color: var(--md-sys-color-on-secondary-dark);\n }\n &.warning {\n background-color: var(--md-sys-color-warning-container-dark);\n }\n &.error {\n background-color: var(--md-sys-color-on-error-dark);\n }\n`\n\ntype FormLabelProps = {\n field: SimpleFormField\n}\n\nconst FormLabel = ({ field }: FormLabelProps) => {\n const text = typeof field.value === 'string' ? field.value : 'Invalid label value'\n\n return (\n <LabelContainer className={field.highlight || 'normal'}>\n <ReactMarkdown>{text}</ReactMarkdown>\n </LabelContainer>\n )\n}\n\ntype FormFieldProps = {\n field: SimpleFormField\n value: SimpleFormValue\n onChange: (value: SimpleFormValue) => void\n}\n\nconst DropdownItemTemplate = (option: FormSelectOption) => {\n const endContent = (\n <>\n <div style={{ flex: 1 }} />\n {option.badges && option.badges.map((badge, index) => <Badge key={index}>{badge}</Badge>)}\n </>\n )\n return (\n <DefaultItemTemplate\n option={option}\n dataKey={'value'}\n labelKey={'label'}\n value={[option.value]}\n endContent={endContent}\n />\n )\n}\n\nconst FormField = ({ field, value, onChange }: FormFieldProps) => {\n if (field.type === 'text') {\n const parsedValue = typeof value === 'string' ? value : ''\n return (\n <InputText\n value={parsedValue}\n onChange={(e) => onChange(e.target.value)}\n placeholder={field.placeholder || ''}\n />\n )\n }\n if (field.type === 'boolean') {\n const parsedValue = typeof value === 'boolean' ? value : false\n\n const handleCheckboxEvent = (\n event: React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement>,\n ) => {\n if ('target' in event && 'checked' in event.target) {\n onChange((event.target as HTMLInputElement).checked)\n }\n }\n\n return <InputSwitch checked={parsedValue} onChange={handleCheckboxEvent} />\n }\n if (field.type === 'integer') {\n const parsedValue = typeof value === 'number' ? value : 0\n return (\n <InputNumber\n value={parsedValue}\n onChange={(e) => onChange(parseInt(e.target.value))}\n placeholder={field.placeholder || ''}\n />\n )\n }\n if (field.type === 'float') {\n const parsedValue = typeof value === 'number' ? value : 0.0\n return (\n <InputNumber\n type=\"number\"\n value={parsedValue}\n onChange={(e) => onChange(parseFloat(e.target.value))}\n placeholder={field.placeholder || ''}\n />\n )\n }\n\n if (field.type === 'select') {\n const parsedValue = typeof value === 'string' ? value : ''\n return (\n <Dropdown\n widthExpand\n options={field.options || []}\n value={parsedValue ? [parsedValue] : []}\n onSelectionChange={(e) => onChange(e[0])}\n className={`form-field`}\n multiSelect={false}\n itemTemplate={DropdownItemTemplate}\n />\n )\n } // Handle select\n\n if (field.type === 'multiselect') {\n const parsedValue = Array.isArray(value) ? value : []\n return (\n <Dropdown\n widthExpand\n options={field.options || []}\n value={parsedValue}\n onSelectionChange={(e) => onChange(e)}\n className={`form-field`}\n multiSelect={true}\n itemTemplate={DropdownItemTemplate}\n />\n )\n }\n}\n\nexport interface SimpleFormDialogProps {\n title: string\n fields: SimpleFormField[]\n values?: SimpleFormValueDict\n submitLabel?: string\n cancelLabel?: string\n submitIcon?: string\n cancelIcon?: string\n onClose: () => void\n onSubmit: (values: SimpleFormValueDict) => void\n isOpen: boolean\n}\n\nexport const SimpleFormDialog = ({\n fields,\n values,\n onClose,\n onSubmit,\n isOpen,\n title,\n submitLabel,\n cancelLabel,\n submitIcon,\n cancelIcon,\n}: SimpleFormDialogProps) => {\n const [formData, setFormData] = useState<SimpleFormValueDict | null>(null)\n\n useEffect(() => {\n if (isOpen) {\n const defaults = getDefaults(fields, values || {})\n setFormData(defaults)\n }\n }, [isOpen, fields, values])\n\n if (!isOpen) return null\n if (!formData) return null\n\n const footer = (\n <div style={{ display: 'flex', flexDirection: 'row', gap: 8 }}>\n <Spacer />\n {cancelLabel && <Button onClick={() => onClose()} label={cancelLabel} icon={cancelIcon} />}\n {submitLabel && (\n <Button\n onClick={() => onSubmit(formData)}\n label={submitLabel}\n icon={submitIcon}\n variant=\"filled\"\n />\n )}\n </div>\n )\n\n return (\n <Dialog\n isOpen={isOpen}\n onClose={onClose}\n header={title}\n footer={footer}\n style={{ minHeight: 500, minWidth: 600 }}\n >\n <FormLayout\n style={{ width: '95%' }}\n onKeyDown={(e) => {\n e.stopPropagation()\n }}\n >\n {fields.map((field: SimpleFormField) => {\n if (field.type === 'label') {\n return <FormLabel key={field.name} field={field} />\n }\n\n return (\n <FormRow key={field.name} label={field.label || ''}>\n <FormField\n field={field}\n value={formData[field.name]}\n onChange={(value) => {\n setFormData((prev) => ({\n ...prev,\n [field.name]: value,\n }))\n }}\n />\n </FormRow>\n )\n })}\n </FormLayout>\n </Dialog>\n )\n}\n"],"names":["jsx","jsxs","Fragment","Badge","DefaultItemTemplate","InputText","InputSwitch","InputNumber","Dropdown","useState","useEffect","Spacer","Button","Dialog","FormLayout","FormRow"],"mappings":"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"}
@@ -75,6 +75,8 @@ import "../../api/queries/users/updateUsers.es.js";
75
75
  import "../../api/queries/watchers/getWatchers.es.js";
76
76
  import "../../api/queries/permissions/getPermissions.es.js";
77
77
  import "../../api/queries/grouping/getGrouping.es.js";
78
+ import "../../api/queries/versions/updateVersions.es.js";
79
+ import "../../api/queries/products/createProduct.es.js";
78
80
  import "@dnd-kit/core";
79
81
  import "@dnd-kit/sortable";
80
82
  import "../ReviewablesList/ReviewablesList.styled.es.js";
@@ -82,8 +84,8 @@ import "../../containers/ContextMenu/ContextMenuContext.es.js";
82
84
  /* empty css */
83
85
  import "lodash";
84
86
  import "../../util/pubsub.es.js";
85
- import "axios";
86
87
  import "../ReviewablesList/ReviewablesUpload.styled.es.js";
88
+ import "axios";
87
89
  import "../../context/RemoteModulesContext.es.js";
88
90
  import "../../context/DetailsPanelContext.es.js";
89
91
  import "../../context/ThumbnailUploaderContext.es.js";
@@ -163,8 +165,7 @@ import "../../containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.
163
165
  import "../../containers/Actions/Actions.styled.es.js";
164
166
  import "../../containers/Actions/ActionsDropdown/ActionsDropdown.es.js";
165
167
  import "../../containers/Actions/ActionIcon.es.js";
166
- import "../EntityThumbnailUploader/EntityThumbnailUploader.styled.es.js";
167
- import "../ThumbnailUploader/ThumbnailUploader.styled.es.js";
168
+ import "../EntityPanelUploader/EntityPanelUploader.styled.es.js";
168
169
  import "../EntityPath/EntityPath.styled.es.js";
169
170
  import "../EntityPath/SegmentProvider.es.js";
170
171
  import "../DetailsPanelAttributes/DetailsPanelAttributesEditor.es.js";
@@ -179,6 +180,8 @@ import "../AttributeEditor/components/MinMaxField.es.js";
179
180
  import "../EnumEditor/EnumEditor.styled.es.js";
180
181
  import "../SearchFilter/filterDates.es.js";
181
182
  import { Badge } from "../Badge/Badge.es.js";
183
+ import "../VersionUploader/components/UploadVersionDialog.es.js";
184
+ import "../VersionUploader/context/VersionUploadContext.es.js";
182
185
  const getDefaults = (fields, values) => {
183
186
  const defaults = {};
184
187
  fields.forEach((field) => {
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleFormDialog.es.js","sources":["../../../../../src/components/SimpleFormDialog/SimpleFormDialog.tsx"],"sourcesContent":["import styled from 'styled-components'\nimport React, { useState, useEffect } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport {\n Button,\n Spacer,\n Dialog,\n FormLayout,\n FormRow,\n InputNumber,\n InputText,\n InputSwitch,\n Dropdown,\n DefaultItemTemplate,\n} from '@ynput/ayon-react-components'\nimport { Badge } from '@shared/components'\n\nimport type { FormSelectOption, SimpleFormField } from '@shared/api'\n\nexport type SimpleFormValue = string | number | boolean | string[] | null | undefined\nexport type SimpleFormValueDict = Record<string, SimpleFormValue>\n\nconst getDefaults = (fields: SimpleFormField[], values: SimpleFormValueDict) => {\n const defaults: SimpleFormValueDict = {}\n fields.forEach((field) => {\n if (field.name in values) {\n defaults[field.name] = values[field.name]\n } else if (field.value) {\n defaults[field.name] = field.value\n } else if (field.type === 'boolean') {\n defaults[field.name] = false\n } else if (field.type === 'integer') {\n defaults[field.name] = 0\n } else if (field.type === 'float') {\n defaults[field.name] = 0.0\n } else if (field.type === 'text') {\n defaults[field.name] = ''\n } else if (field.type === 'multiselect') {\n defaults[field.name] = []\n }\n })\n return defaults\n}\n\nconst LabelContainer = styled.div`\n &.normal {\n // maybe something here\n }\n\n &.info,\n &.warning,\n &.error {\n padding: 0.5rem;\n text-align: center;\n font-weight: bold;\n margin: 1rem 0;\n }\n\n &.info {\n background-color: var(--md-sys-color-on-secondary-dark);\n }\n &.warning {\n background-color: var(--md-sys-color-warning-container-dark);\n }\n &.error {\n background-color: var(--md-sys-color-on-error-dark);\n }\n`\n\ntype FormLabelProps = {\n field: SimpleFormField\n}\n\nconst FormLabel = ({ field }: FormLabelProps) => {\n const text = typeof field.value === 'string' ? field.value : 'Invalid label value'\n\n return (\n <LabelContainer className={field.highlight || 'normal'}>\n <ReactMarkdown>{text}</ReactMarkdown>\n </LabelContainer>\n )\n}\n\ntype FormFieldProps = {\n field: SimpleFormField\n value: SimpleFormValue\n onChange: (value: SimpleFormValue) => void\n}\n\nconst DropdownItemTemplate = (option: FormSelectOption) => {\n const endContent = (\n <>\n <div style={{ flex: 1 }} />\n {option.badges && option.badges.map((badge, index) => <Badge key={index}>{badge}</Badge>)}\n </>\n )\n return (\n <DefaultItemTemplate\n option={option}\n dataKey={'value'}\n labelKey={'label'}\n value={[option.value]}\n endContent={endContent}\n />\n )\n}\n\nconst FormField = ({ field, value, onChange }: FormFieldProps) => {\n if (field.type === 'text') {\n const parsedValue = typeof value === 'string' ? value : ''\n return (\n <InputText\n value={parsedValue}\n onChange={(e) => onChange(e.target.value)}\n placeholder={field.placeholder || ''}\n />\n )\n }\n if (field.type === 'boolean') {\n const parsedValue = typeof value === 'boolean' ? value : false\n\n const handleCheckboxEvent = (\n event: React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement>,\n ) => {\n if ('target' in event && 'checked' in event.target) {\n onChange((event.target as HTMLInputElement).checked)\n }\n }\n\n return <InputSwitch checked={parsedValue} onChange={handleCheckboxEvent} />\n }\n if (field.type === 'integer') {\n const parsedValue = typeof value === 'number' ? value : 0\n return (\n <InputNumber\n value={parsedValue}\n onChange={(e) => onChange(parseInt(e.target.value))}\n placeholder={field.placeholder || ''}\n />\n )\n }\n if (field.type === 'float') {\n const parsedValue = typeof value === 'number' ? value : 0.0\n return (\n <InputNumber\n type=\"number\"\n value={parsedValue}\n onChange={(e) => onChange(parseFloat(e.target.value))}\n placeholder={field.placeholder || ''}\n />\n )\n }\n\n if (field.type === 'select') {\n const parsedValue = typeof value === 'string' ? value : ''\n return (\n <Dropdown\n widthExpand\n options={field.options || []}\n value={parsedValue ? [parsedValue] : []}\n onSelectionChange={(e) => onChange(e[0])}\n className={`form-field`}\n multiSelect={false}\n itemTemplate={DropdownItemTemplate}\n />\n )\n } // Handle select\n\n if (field.type === 'multiselect') {\n const parsedValue = Array.isArray(value) ? value : []\n return (\n <Dropdown\n widthExpand\n options={field.options || []}\n value={parsedValue}\n onSelectionChange={(e) => onChange(e)}\n className={`form-field`}\n multiSelect={true}\n itemTemplate={DropdownItemTemplate}\n />\n )\n }\n}\n\nexport interface SimpleFormDialogProps {\n title: string\n fields: SimpleFormField[]\n values?: SimpleFormValueDict\n submitLabel?: string\n cancelLabel?: string\n submitIcon?: string\n cancelIcon?: string\n onClose: () => void\n onSubmit: (values: SimpleFormValueDict) => void\n isOpen: boolean\n}\n\nexport const SimpleFormDialog = ({\n fields,\n values,\n onClose,\n onSubmit,\n isOpen,\n title,\n submitLabel,\n cancelLabel,\n submitIcon,\n cancelIcon,\n}: SimpleFormDialogProps) => {\n const [formData, setFormData] = useState<SimpleFormValueDict | null>(null)\n\n useEffect(() => {\n if (isOpen) {\n const defaults = getDefaults(fields, values || {})\n setFormData(defaults)\n }\n }, [isOpen, fields, values])\n\n if (!isOpen) return null\n if (!formData) return null\n\n const footer = (\n <div style={{ display: 'flex', flexDirection: 'row', gap: 8 }}>\n <Spacer />\n {cancelLabel && <Button onClick={() => onClose()} label={cancelLabel} icon={cancelIcon} />}\n {submitLabel && (\n <Button\n onClick={() => onSubmit(formData)}\n label={submitLabel}\n icon={submitIcon}\n variant=\"filled\"\n />\n )}\n </div>\n )\n\n return (\n <Dialog\n isOpen={isOpen}\n onClose={onClose}\n header={title}\n footer={footer}\n style={{ minHeight: 500, minWidth: 600 }}\n >\n <FormLayout\n style={{ width: '95%' }}\n onKeyDown={(e) => {\n e.stopPropagation()\n }}\n >\n {fields.map((field: SimpleFormField) => {\n if (field.type === 'label') {\n return <FormLabel key={field.name} field={field} />\n }\n\n return (\n <FormRow key={field.name} label={field.label || ''}>\n <FormField\n field={field}\n value={formData[field.name]}\n onChange={(value) => {\n setFormData((prev) => ({\n ...prev,\n [field.name]: value,\n }))\n }}\n />\n </FormRow>\n )\n })}\n </FormLayout>\n </Dialog>\n )\n}\n"],"names":["jsx","jsxs","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"SimpleFormDialog.es.js","sources":["../../../../../src/components/SimpleFormDialog/SimpleFormDialog.tsx"],"sourcesContent":["import styled from 'styled-components'\nimport React, { useState, useEffect } from 'react'\nimport ReactMarkdown from 'react-markdown'\nimport {\n Button,\n Spacer,\n Dialog,\n FormLayout,\n FormRow,\n InputNumber,\n InputText,\n InputSwitch,\n Dropdown,\n DefaultItemTemplate,\n} from '@ynput/ayon-react-components'\nimport { Badge } from '@shared/components'\n\nimport type { FormSelectOption, SimpleFormField } from '@shared/api'\n\nexport type SimpleFormValue = string | number | boolean | string[] | null | undefined\nexport type SimpleFormValueDict = Record<string, SimpleFormValue>\n\nconst getDefaults = (fields: SimpleFormField[], values: SimpleFormValueDict) => {\n const defaults: SimpleFormValueDict = {}\n fields.forEach((field) => {\n if (field.name in values) {\n defaults[field.name] = values[field.name]\n } else if (field.value) {\n defaults[field.name] = field.value\n } else if (field.type === 'boolean') {\n defaults[field.name] = false\n } else if (field.type === 'integer') {\n defaults[field.name] = 0\n } else if (field.type === 'float') {\n defaults[field.name] = 0.0\n } else if (field.type === 'text') {\n defaults[field.name] = ''\n } else if (field.type === 'multiselect') {\n defaults[field.name] = []\n }\n })\n return defaults\n}\n\nconst LabelContainer = styled.div`\n &.normal {\n // maybe something here\n }\n\n &.info,\n &.warning,\n &.error {\n padding: 0.5rem;\n text-align: center;\n font-weight: bold;\n margin: 1rem 0;\n }\n\n &.info {\n background-color: var(--md-sys-color-on-secondary-dark);\n }\n &.warning {\n background-color: var(--md-sys-color-warning-container-dark);\n }\n &.error {\n background-color: var(--md-sys-color-on-error-dark);\n }\n`\n\ntype FormLabelProps = {\n field: SimpleFormField\n}\n\nconst FormLabel = ({ field }: FormLabelProps) => {\n const text = typeof field.value === 'string' ? field.value : 'Invalid label value'\n\n return (\n <LabelContainer className={field.highlight || 'normal'}>\n <ReactMarkdown>{text}</ReactMarkdown>\n </LabelContainer>\n )\n}\n\ntype FormFieldProps = {\n field: SimpleFormField\n value: SimpleFormValue\n onChange: (value: SimpleFormValue) => void\n}\n\nconst DropdownItemTemplate = (option: FormSelectOption) => {\n const endContent = (\n <>\n <div style={{ flex: 1 }} />\n {option.badges && option.badges.map((badge, index) => <Badge key={index}>{badge}</Badge>)}\n </>\n )\n return (\n <DefaultItemTemplate\n option={option}\n dataKey={'value'}\n labelKey={'label'}\n value={[option.value]}\n endContent={endContent}\n />\n )\n}\n\nconst FormField = ({ field, value, onChange }: FormFieldProps) => {\n if (field.type === 'text') {\n const parsedValue = typeof value === 'string' ? value : ''\n return (\n <InputText\n value={parsedValue}\n onChange={(e) => onChange(e.target.value)}\n placeholder={field.placeholder || ''}\n />\n )\n }\n if (field.type === 'boolean') {\n const parsedValue = typeof value === 'boolean' ? value : false\n\n const handleCheckboxEvent = (\n event: React.ChangeEvent<HTMLInputElement> | React.KeyboardEvent<HTMLInputElement>,\n ) => {\n if ('target' in event && 'checked' in event.target) {\n onChange((event.target as HTMLInputElement).checked)\n }\n }\n\n return <InputSwitch checked={parsedValue} onChange={handleCheckboxEvent} />\n }\n if (field.type === 'integer') {\n const parsedValue = typeof value === 'number' ? value : 0\n return (\n <InputNumber\n value={parsedValue}\n onChange={(e) => onChange(parseInt(e.target.value))}\n placeholder={field.placeholder || ''}\n />\n )\n }\n if (field.type === 'float') {\n const parsedValue = typeof value === 'number' ? value : 0.0\n return (\n <InputNumber\n type=\"number\"\n value={parsedValue}\n onChange={(e) => onChange(parseFloat(e.target.value))}\n placeholder={field.placeholder || ''}\n />\n )\n }\n\n if (field.type === 'select') {\n const parsedValue = typeof value === 'string' ? value : ''\n return (\n <Dropdown\n widthExpand\n options={field.options || []}\n value={parsedValue ? [parsedValue] : []}\n onSelectionChange={(e) => onChange(e[0])}\n className={`form-field`}\n multiSelect={false}\n itemTemplate={DropdownItemTemplate}\n />\n )\n } // Handle select\n\n if (field.type === 'multiselect') {\n const parsedValue = Array.isArray(value) ? value : []\n return (\n <Dropdown\n widthExpand\n options={field.options || []}\n value={parsedValue}\n onSelectionChange={(e) => onChange(e)}\n className={`form-field`}\n multiSelect={true}\n itemTemplate={DropdownItemTemplate}\n />\n )\n }\n}\n\nexport interface SimpleFormDialogProps {\n title: string\n fields: SimpleFormField[]\n values?: SimpleFormValueDict\n submitLabel?: string\n cancelLabel?: string\n submitIcon?: string\n cancelIcon?: string\n onClose: () => void\n onSubmit: (values: SimpleFormValueDict) => void\n isOpen: boolean\n}\n\nexport const SimpleFormDialog = ({\n fields,\n values,\n onClose,\n onSubmit,\n isOpen,\n title,\n submitLabel,\n cancelLabel,\n submitIcon,\n cancelIcon,\n}: SimpleFormDialogProps) => {\n const [formData, setFormData] = useState<SimpleFormValueDict | null>(null)\n\n useEffect(() => {\n if (isOpen) {\n const defaults = getDefaults(fields, values || {})\n setFormData(defaults)\n }\n }, [isOpen, fields, values])\n\n if (!isOpen) return null\n if (!formData) return null\n\n const footer = (\n <div style={{ display: 'flex', flexDirection: 'row', gap: 8 }}>\n <Spacer />\n {cancelLabel && <Button onClick={() => onClose()} label={cancelLabel} icon={cancelIcon} />}\n {submitLabel && (\n <Button\n onClick={() => onSubmit(formData)}\n label={submitLabel}\n icon={submitIcon}\n variant=\"filled\"\n />\n )}\n </div>\n )\n\n return (\n <Dialog\n isOpen={isOpen}\n onClose={onClose}\n header={title}\n footer={footer}\n style={{ minHeight: 500, minWidth: 600 }}\n >\n <FormLayout\n style={{ width: '95%' }}\n onKeyDown={(e) => {\n e.stopPropagation()\n }}\n >\n {fields.map((field: SimpleFormField) => {\n if (field.type === 'label') {\n return <FormLabel key={field.name} field={field} />\n }\n\n return (\n <FormRow key={field.name} label={field.label || ''}>\n <FormField\n field={field}\n value={formData[field.name]}\n onChange={(value) => {\n setFormData((prev) => ({\n ...prev,\n [field.name]: value,\n }))\n }}\n />\n </FormRow>\n )\n })}\n </FormLayout>\n </Dialog>\n )\n}\n"],"names":["jsx","jsxs","Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAM,cAAc,CAAC,QAA2B,WAAgC;AAC9E,QAAM,WAAgC,CAAC;AAChC,SAAA,QAAQ,CAAC,UAAU;AACpB,QAAA,MAAM,QAAQ,QAAQ;AACxB,eAAS,MAAM,IAAI,IAAI,OAAO,MAAM,IAAI;AAAA,IAAA,WAC/B,MAAM,OAAO;AACb,eAAA,MAAM,IAAI,IAAI,MAAM;AAAA,IAAA,WACpB,MAAM,SAAS,WAAW;AAC1B,eAAA,MAAM,IAAI,IAAI;AAAA,IAAA,WACd,MAAM,SAAS,WAAW;AAC1B,eAAA,MAAM,IAAI,IAAI;AAAA,IAAA,WACd,MAAM,SAAS,SAAS;AACxB,eAAA,MAAM,IAAI,IAAI;AAAA,IAAA,WACd,MAAM,SAAS,QAAQ;AACvB,eAAA,MAAM,IAAI,IAAI;AAAA,IAAA,WACd,MAAM,SAAS,eAAe;AAC9B,eAAA,MAAM,IAAI,IAAI,CAAC;AAAA,IAAA;AAAA,EAC1B,CACD;AACM,SAAA;AACT;AAEA,MAAM,iBAAiB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6B9B,MAAM,YAAY,CAAC,EAAE,YAA4B;AAC/C,QAAM,OAAO,OAAO,MAAM,UAAU,WAAW,MAAM,QAAQ;AAG3D,SAAAA,kCAAA,IAAC,kBAAe,WAAW,MAAM,aAAa,UAC5C,UAAAA,kCAAAA,IAAC,eAAe,EAAA,UAAA,KAAA,CAAK,EACvB,CAAA;AAEJ;AAQA,MAAM,uBAAuB,CAAC,WAA6B;AACzD,QAAM,aAEFC,kCAAAA,KAAAC,kBAAA,UAAA,EAAA,UAAA;AAAA,IAAAF,kCAAA,IAAC,OAAI,EAAA,OAAO,EAAE,MAAM,KAAK;AAAA,IACxB,OAAO,UAAU,OAAO,OAAO,IAAI,CAAC,OAAO,UAAWA,kCAAAA,IAAA,OAAA,EAAmB,UAAR,MAAA,GAAA,KAAc,CAAQ;AAAA,EAAA,GAC1F;AAGA,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,SAAS;AAAA,MACT,UAAU;AAAA,MACV,OAAO,CAAC,OAAO,KAAK;AAAA,MACpB;AAAA,IAAA;AAAA,EACF;AAEJ;AAEA,MAAM,YAAY,CAAC,EAAE,OAAO,OAAO,eAA+B;AAC5D,MAAA,MAAM,SAAS,QAAQ;AACzB,UAAM,cAAc,OAAO,UAAU,WAAW,QAAQ;AAEtD,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,KAAK;AAAA,QACxC,aAAa,MAAM,eAAe;AAAA,MAAA;AAAA,IACpC;AAAA,EAAA;AAGA,MAAA,MAAM,SAAS,WAAW;AAC5B,UAAM,cAAc,OAAO,UAAU,YAAY,QAAQ;AAEnD,UAAA,sBAAsB,CAC1B,UACG;AACH,UAAI,YAAY,SAAS,aAAa,MAAM,QAAQ;AACxC,iBAAA,MAAM,OAA4B,OAAO;AAAA,MAAA;AAAA,IAEvD;AAEA,WAAQA,kCAAAA,IAAA,aAAA,EAAY,SAAS,aAAa,UAAU,qBAAqB;AAAA,EAAA;AAEvE,MAAA,MAAM,SAAS,WAAW;AAC5B,UAAM,cAAc,OAAO,UAAU,WAAW,QAAQ;AAEtD,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,SAAS,SAAS,EAAE,OAAO,KAAK,CAAC;AAAA,QAClD,aAAa,MAAM,eAAe;AAAA,MAAA;AAAA,IACpC;AAAA,EAAA;AAGA,MAAA,MAAM,SAAS,SAAS;AAC1B,UAAM,cAAc,OAAO,UAAU,WAAW,QAAQ;AAEtD,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,SAAS,WAAW,EAAE,OAAO,KAAK,CAAC;AAAA,QACpD,aAAa,MAAM,eAAe;AAAA,MAAA;AAAA,IACpC;AAAA,EAAA;AAIA,MAAA,MAAM,SAAS,UAAU;AAC3B,UAAM,cAAc,OAAO,UAAU,WAAW,QAAQ;AAEtD,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,aAAW;AAAA,QACX,SAAS,MAAM,WAAW,CAAC;AAAA,QAC3B,OAAO,cAAc,CAAC,WAAW,IAAI,CAAC;AAAA,QACtC,mBAAmB,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC;AAAA,QACvC,WAAW;AAAA,QACX,aAAa;AAAA,QACb,cAAc;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AAIA,MAAA,MAAM,SAAS,eAAe;AAChC,UAAM,cAAc,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC;AAElD,WAAAA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,aAAW;AAAA,QACX,SAAS,MAAM,WAAW,CAAC;AAAA,QAC3B,OAAO;AAAA,QACP,mBAAmB,CAAC,MAAM,SAAS,CAAC;AAAA,QACpC,WAAW;AAAA,QACX,aAAa;AAAA,QACb,cAAc;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AAGN;AAeO,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AAC3B,QAAM,CAAC,UAAU,WAAW,IAAI,SAAqC,IAAI;AAEzE,YAAU,MAAM;AACd,QAAI,QAAQ;AACV,YAAM,WAAW,YAAY,QAAQ,UAAU,CAAA,CAAE;AACjD,kBAAY,QAAQ;AAAA,IAAA;AAAA,EAErB,GAAA,CAAC,QAAQ,QAAQ,MAAM,CAAC;AAEvB,MAAA,CAAC,OAAe,QAAA;AAChB,MAAA,CAAC,SAAiB,QAAA;AAEhB,QAAA,SACHC,kCAAA,KAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,OAAO,KAAK,EAAA,GACxD,UAAA;AAAA,IAAAD,kCAAA,IAAC,QAAO,EAAA;AAAA,IACP,eAAgBA,kCAAA,IAAA,QAAA,EAAO,SAAS,MAAM,QAAW,GAAA,OAAO,aAAa,MAAM,WAAY,CAAA;AAAA,IACvF,eACCA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAM,SAAS,QAAQ;AAAA,QAChC,OAAO;AAAA,QACP,MAAM;AAAA,QACN,SAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EACV,GAEJ;AAIA,SAAAA,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,MACA,OAAO,EAAE,WAAW,KAAK,UAAU,IAAI;AAAA,MAEvC,UAAAA,kCAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAO,EAAE,OAAO,MAAM;AAAA,UACtB,WAAW,CAAC,MAAM;AAChB,cAAE,gBAAgB;AAAA,UACpB;AAAA,UAEC,UAAA,OAAO,IAAI,CAAC,UAA2B;AAClC,gBAAA,MAAM,SAAS,SAAS;AAC1B,qBAAQA,kCAAAA,IAAA,WAAA,EAA2B,MAAZ,GAAA,MAAM,IAAoB;AAAA,YAAA;AAGnD,mBACGA,kCAAA,IAAA,SAAA,EAAyB,OAAO,MAAM,SAAS,IAC9C,UAAAA,kCAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC;AAAA,gBACA,OAAO,SAAS,MAAM,IAAI;AAAA,gBAC1B,UAAU,CAAC,UAAU;AACnB,8BAAY,CAAC,UAAU;AAAA,oBACrB,GAAG;AAAA,oBACH,CAAC,MAAM,IAAI,GAAG;AAAA,kBAAA,EACd;AAAA,gBAAA;AAAA,cACJ;AAAA,YAAA,EACF,GAVY,MAAM,IAWpB;AAAA,UAEH,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EACF;AAEJ;"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const jsxRuntime = require("../../../../../_virtual/jsx-runtime.cjs.js");
4
+ const ayonReactComponents = require("@ynput/ayon-react-components");
5
+ const VersionUploadContext = require("../context/VersionUploadContext.cjs.js");
6
+ const UploadVersionForm = require("./UploadVersionForm.cjs.js");
7
+ const styled = require("styled-components");
8
+ const toVersionString = (number) => {
9
+ let numStr = String(number);
10
+ let paddingNeeded = Math.max(0, 3 - numStr.length);
11
+ let padding = "0".repeat(paddingNeeded);
12
+ return `v${padding}${numStr}`;
13
+ };
14
+ const ErrorMessage = styled.span`
15
+ background-color: var(--md-sys-color-error-container);
16
+ color: var(--md-sys-color-on-error-container);
17
+ padding: var(--padding-s);
18
+ border-radius: var(--border-radius-m);
19
+ `;
20
+ const UploadVersionDialog = () => {
21
+ const {
22
+ isOpen,
23
+ onCloseVersionUpload,
24
+ productId,
25
+ taskId,
26
+ projectName,
27
+ form,
28
+ version,
29
+ handleFormChange,
30
+ handleFormSubmit,
31
+ isSubmitting,
32
+ error,
33
+ createdProductId,
34
+ createdVersionId
35
+ } = VersionUploadContext.useVersionUploadContext();
36
+ const currentProductId = productId || createdProductId;
37
+ const currentVersionId = createdVersionId;
38
+ const footer = /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs("div", { style: { display: "flex", flexDirection: "row", gap: 8 }, children: [
39
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.Spacer, {}),
40
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ayonReactComponents.Button, { onClick: onCloseVersionUpload, label: "Cancel", variant: "text" }),
41
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
42
+ ayonReactComponents.SaveButton,
43
+ {
44
+ type: "submit",
45
+ form: "upload-version-form",
46
+ label: `Create ${toVersionString(form.version)}`,
47
+ icon: "upload",
48
+ active: true,
49
+ saving: isSubmitting
50
+ }
51
+ )
52
+ ] });
53
+ const creatingOnEntityType = productId ? "Product" : taskId ? "Task" : "Folder";
54
+ const title = "Create new version - " + creatingOnEntityType;
55
+ return /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsxs(
56
+ ayonReactComponents.Dialog,
57
+ {
58
+ isOpen,
59
+ onClose: onCloseVersionUpload,
60
+ header: title,
61
+ size: "md",
62
+ footer,
63
+ style: { width: 600, maxHeight: "80vh" },
64
+ children: [
65
+ /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(
66
+ UploadVersionForm.UploadVersionForm,
67
+ {
68
+ formData: form,
69
+ minVersion: version == null ? void 0 : version.version,
70
+ onChange: handleFormChange,
71
+ onSubmit: handleFormSubmit,
72
+ hidden: productId ? ["name", "productType"] : [],
73
+ projectName,
74
+ versionId: currentVersionId,
75
+ productId: currentProductId
76
+ }
77
+ ),
78
+ error && /* @__PURE__ */ jsxRuntime.jsxRuntimeExports.jsx(ErrorMessage, { className: "error", children: JSON.stringify(error) })
79
+ ]
80
+ }
81
+ );
82
+ };
83
+ exports.UploadVersionDialog = UploadVersionDialog;
84
+ exports.default = UploadVersionDialog;
85
+ //# sourceMappingURL=UploadVersionDialog.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadVersionDialog.cjs.js","sources":["../../../../../../src/components/VersionUploader/components/UploadVersionDialog.tsx"],"sourcesContent":["import { Dialog, Button, Spacer, SaveButton } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport { useVersionUploadContext } from '../context/VersionUploadContext'\nimport { UploadVersionForm } from './UploadVersionForm'\nimport styled from 'styled-components'\n\nconst toVersionString = (number: number) => {\n // Convert the number to a string\n let numStr = String(number)\n\n // Calculate how many zeros are needed for padding\n // If the number of digits is less than 3, we need 3 - numStr.length zeros.\n // Otherwise, no padding is needed.\n let paddingNeeded = Math.max(0, 3 - numStr.length)\n\n // Create the padding string\n let padding = '0'.repeat(paddingNeeded)\n\n // Combine to form the version string\n return `v${padding}${numStr}`\n}\n\nconst ErrorMessage = styled.span`\n background-color: var(--md-sys-color-error-container);\n color: var(--md-sys-color-on-error-container);\n padding: var(--padding-s);\n border-radius: var(--border-radius-m);\n`\n\ninterface UploadVersionDialogProps {}\n\nexport const UploadVersionDialog: FC<UploadVersionDialogProps> = () => {\n const {\n isOpen,\n onCloseVersionUpload,\n productId,\n taskId,\n projectName,\n form,\n version,\n handleFormChange,\n handleFormSubmit,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n } = useVersionUploadContext()\n\n // Use existing productId if available, otherwise use created one\n const currentProductId = productId || createdProductId\n const currentVersionId = createdVersionId\n\n const footer = (\n <div style={{ display: 'flex', flexDirection: 'row', gap: 8 }}>\n <Spacer />\n <Button onClick={onCloseVersionUpload} label=\"Cancel\" variant=\"text\" />\n <SaveButton\n type=\"submit\"\n form=\"upload-version-form\"\n label={`Create ${toVersionString(form.version)}`}\n icon={'upload'}\n active\n saving={isSubmitting}\n />\n </div>\n )\n\n const creatingOnEntityType = productId ? 'Product' : taskId ? 'Task' : 'Folder'\n const title = 'Create new version' + ' - ' + creatingOnEntityType\n\n return (\n <Dialog\n isOpen={isOpen}\n onClose={onCloseVersionUpload}\n header={title}\n size=\"md\"\n footer={footer}\n style={{ width: 600, maxHeight: '80vh' }}\n >\n <UploadVersionForm\n formData={form}\n minVersion={version?.version}\n onChange={handleFormChange}\n onSubmit={handleFormSubmit}\n hidden={productId ? ['name', 'productType'] : []}\n projectName={projectName}\n versionId={currentVersionId}\n productId={currentProductId}\n />\n {error && <ErrorMessage className=\"error\">{JSON.stringify(error)}</ErrorMessage>}\n </Dialog>\n )\n}\n\nexport default UploadVersionDialog\n"],"names":["useVersionUploadContext","jsxs","jsx","Spacer","Button","SaveButton","Dialog","UploadVersionForm"],"mappings":";;;;;;;AAMA,MAAM,kBAAkB,CAAC,WAAmB;AAEtC,MAAA,SAAS,OAAO,MAAM;AAK1B,MAAI,gBAAgB,KAAK,IAAI,GAAG,IAAI,OAAO,MAAM;AAG7C,MAAA,UAAU,IAAI,OAAO,aAAa;AAG/B,SAAA,IAAI,OAAO,GAAG,MAAM;AAC7B;AAEA,MAAM,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AASrB,MAAM,sBAAoD,MAAM;AAC/D,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACEA,6CAAwB;AAG5B,QAAM,mBAAmB,aAAa;AACtC,QAAM,mBAAmB;AAEnB,QAAA,SACHC,2BAAA,kBAAA,KAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,OAAO,KAAK,EAAA,GACxD,UAAA;AAAA,IAAAC,2BAAA,kBAAA,IAACC,oBAAO,QAAA,EAAA;AAAA,qDACPC,oBAAAA,QAAO,EAAA,SAAS,sBAAsB,OAAM,UAAS,SAAQ,QAAO;AAAA,IACrEF,2BAAA,kBAAA;AAAA,MAACG,oBAAA;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,MAAK;AAAA,QACL,OAAO,UAAU,gBAAgB,KAAK,OAAO,CAAC;AAAA,QAC9C,MAAM;AAAA,QACN,QAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EACV,GACF;AAGF,QAAM,uBAAuB,YAAY,YAAY,SAAS,SAAS;AACvE,QAAM,QAAQ,0BAA+B;AAG3C,SAAAJ,2BAAA,kBAAA;AAAA,IAACK,oBAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAK;AAAA,MACL;AAAA,MACA,OAAO,EAAE,OAAO,KAAK,WAAW,OAAO;AAAA,MAEvC,UAAA;AAAA,QAAAJ,2BAAA,kBAAA;AAAA,UAACK,kBAAA;AAAA,UAAA;AAAA,YACC,UAAU;AAAA,YACV,YAAY,mCAAS;AAAA,YACrB,UAAU;AAAA,YACV,UAAU;AAAA,YACV,QAAQ,YAAY,CAAC,QAAQ,aAAa,IAAI,CAAC;AAAA,YAC/C;AAAA,YACA,WAAW;AAAA,YACX,WAAW;AAAA,UAAA;AAAA,QACb;AAAA,QACC,0DAAU,cAAa,EAAA,WAAU,SAAS,UAAK,KAAA,UAAU,KAAK,EAAE,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACnE;AAEJ;;;"}
@@ -0,0 +1,85 @@
1
+ import { j as jsxRuntimeExports } from "../../../../../_virtual/jsx-runtime.es.js";
2
+ import { Spacer, Button, SaveButton, Dialog } from "@ynput/ayon-react-components";
3
+ import { useVersionUploadContext } from "../context/VersionUploadContext.es.js";
4
+ import { UploadVersionForm } from "./UploadVersionForm.es.js";
5
+ import styled from "styled-components";
6
+ const toVersionString = (number) => {
7
+ let numStr = String(number);
8
+ let paddingNeeded = Math.max(0, 3 - numStr.length);
9
+ let padding = "0".repeat(paddingNeeded);
10
+ return `v${padding}${numStr}`;
11
+ };
12
+ const ErrorMessage = styled.span`
13
+ background-color: var(--md-sys-color-error-container);
14
+ color: var(--md-sys-color-on-error-container);
15
+ padding: var(--padding-s);
16
+ border-radius: var(--border-radius-m);
17
+ `;
18
+ const UploadVersionDialog = () => {
19
+ const {
20
+ isOpen,
21
+ onCloseVersionUpload,
22
+ productId,
23
+ taskId,
24
+ projectName,
25
+ form,
26
+ version,
27
+ handleFormChange,
28
+ handleFormSubmit,
29
+ isSubmitting,
30
+ error,
31
+ createdProductId,
32
+ createdVersionId
33
+ } = useVersionUploadContext();
34
+ const currentProductId = productId || createdProductId;
35
+ const currentVersionId = createdVersionId;
36
+ const footer = /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { style: { display: "flex", flexDirection: "row", gap: 8 }, children: [
37
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Spacer, {}),
38
+ /* @__PURE__ */ jsxRuntimeExports.jsx(Button, { onClick: onCloseVersionUpload, label: "Cancel", variant: "text" }),
39
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
40
+ SaveButton,
41
+ {
42
+ type: "submit",
43
+ form: "upload-version-form",
44
+ label: `Create ${toVersionString(form.version)}`,
45
+ icon: "upload",
46
+ active: true,
47
+ saving: isSubmitting
48
+ }
49
+ )
50
+ ] });
51
+ const creatingOnEntityType = productId ? "Product" : taskId ? "Task" : "Folder";
52
+ const title = "Create new version - " + creatingOnEntityType;
53
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs(
54
+ Dialog,
55
+ {
56
+ isOpen,
57
+ onClose: onCloseVersionUpload,
58
+ header: title,
59
+ size: "md",
60
+ footer,
61
+ style: { width: 600, maxHeight: "80vh" },
62
+ children: [
63
+ /* @__PURE__ */ jsxRuntimeExports.jsx(
64
+ UploadVersionForm,
65
+ {
66
+ formData: form,
67
+ minVersion: version == null ? void 0 : version.version,
68
+ onChange: handleFormChange,
69
+ onSubmit: handleFormSubmit,
70
+ hidden: productId ? ["name", "productType"] : [],
71
+ projectName,
72
+ versionId: currentVersionId,
73
+ productId: currentProductId
74
+ }
75
+ ),
76
+ error && /* @__PURE__ */ jsxRuntimeExports.jsx(ErrorMessage, { className: "error", children: JSON.stringify(error) })
77
+ ]
78
+ }
79
+ );
80
+ };
81
+ export {
82
+ UploadVersionDialog,
83
+ UploadVersionDialog as default
84
+ };
85
+ //# sourceMappingURL=UploadVersionDialog.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UploadVersionDialog.es.js","sources":["../../../../../../src/components/VersionUploader/components/UploadVersionDialog.tsx"],"sourcesContent":["import { Dialog, Button, Spacer, SaveButton } from '@ynput/ayon-react-components'\nimport { FC } from 'react'\nimport { useVersionUploadContext } from '../context/VersionUploadContext'\nimport { UploadVersionForm } from './UploadVersionForm'\nimport styled from 'styled-components'\n\nconst toVersionString = (number: number) => {\n // Convert the number to a string\n let numStr = String(number)\n\n // Calculate how many zeros are needed for padding\n // If the number of digits is less than 3, we need 3 - numStr.length zeros.\n // Otherwise, no padding is needed.\n let paddingNeeded = Math.max(0, 3 - numStr.length)\n\n // Create the padding string\n let padding = '0'.repeat(paddingNeeded)\n\n // Combine to form the version string\n return `v${padding}${numStr}`\n}\n\nconst ErrorMessage = styled.span`\n background-color: var(--md-sys-color-error-container);\n color: var(--md-sys-color-on-error-container);\n padding: var(--padding-s);\n border-radius: var(--border-radius-m);\n`\n\ninterface UploadVersionDialogProps {}\n\nexport const UploadVersionDialog: FC<UploadVersionDialogProps> = () => {\n const {\n isOpen,\n onCloseVersionUpload,\n productId,\n taskId,\n projectName,\n form,\n version,\n handleFormChange,\n handleFormSubmit,\n isSubmitting,\n error,\n createdProductId,\n createdVersionId,\n } = useVersionUploadContext()\n\n // Use existing productId if available, otherwise use created one\n const currentProductId = productId || createdProductId\n const currentVersionId = createdVersionId\n\n const footer = (\n <div style={{ display: 'flex', flexDirection: 'row', gap: 8 }}>\n <Spacer />\n <Button onClick={onCloseVersionUpload} label=\"Cancel\" variant=\"text\" />\n <SaveButton\n type=\"submit\"\n form=\"upload-version-form\"\n label={`Create ${toVersionString(form.version)}`}\n icon={'upload'}\n active\n saving={isSubmitting}\n />\n </div>\n )\n\n const creatingOnEntityType = productId ? 'Product' : taskId ? 'Task' : 'Folder'\n const title = 'Create new version' + ' - ' + creatingOnEntityType\n\n return (\n <Dialog\n isOpen={isOpen}\n onClose={onCloseVersionUpload}\n header={title}\n size=\"md\"\n footer={footer}\n style={{ width: 600, maxHeight: '80vh' }}\n >\n <UploadVersionForm\n formData={form}\n minVersion={version?.version}\n onChange={handleFormChange}\n onSubmit={handleFormSubmit}\n hidden={productId ? ['name', 'productType'] : []}\n projectName={projectName}\n versionId={currentVersionId}\n productId={currentProductId}\n />\n {error && <ErrorMessage className=\"error\">{JSON.stringify(error)}</ErrorMessage>}\n </Dialog>\n )\n}\n\nexport default UploadVersionDialog\n"],"names":["jsxs","jsx"],"mappings":";;;;;AAMA,MAAM,kBAAkB,CAAC,WAAmB;AAEtC,MAAA,SAAS,OAAO,MAAM;AAK1B,MAAI,gBAAgB,KAAK,IAAI,GAAG,IAAI,OAAO,MAAM;AAG7C,MAAA,UAAU,IAAI,OAAO,aAAa;AAG/B,SAAA,IAAI,OAAO,GAAG,MAAM;AAC7B;AAEA,MAAM,eAAe,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AASrB,MAAM,sBAAoD,MAAM;AAC/D,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,MACE,wBAAwB;AAG5B,QAAM,mBAAmB,aAAa;AACtC,QAAM,mBAAmB;AAEnB,QAAA,SACHA,kCAAA,KAAA,OAAA,EAAI,OAAO,EAAE,SAAS,QAAQ,eAAe,OAAO,KAAK,EAAA,GACxD,UAAA;AAAA,IAAAC,kCAAA,IAAC,QAAO,EAAA;AAAA,0CACP,QAAO,EAAA,SAAS,sBAAsB,OAAM,UAAS,SAAQ,QAAO;AAAA,IACrEA,kCAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,MAAK;AAAA,QACL,OAAO,UAAU,gBAAgB,KAAK,OAAO,CAAC;AAAA,QAC9C,MAAM;AAAA,QACN,QAAM;AAAA,QACN,QAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EACV,GACF;AAGF,QAAM,uBAAuB,YAAY,YAAY,SAAS,SAAS;AACvE,QAAM,QAAQ,0BAA+B;AAG3C,SAAAD,kCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,MAAK;AAAA,MACL;AAAA,MACA,OAAO,EAAE,OAAO,KAAK,WAAW,OAAO;AAAA,MAEvC,UAAA;AAAA,QAAAC,kCAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,UAAU;AAAA,YACV,YAAY,mCAAS;AAAA,YACrB,UAAU;AAAA,YACV,UAAU;AAAA,YACV,QAAQ,YAAY,CAAC,QAAQ,aAAa,IAAI,CAAC;AAAA,YAC/C;AAAA,YACA,WAAW;AAAA,YACX,WAAW;AAAA,UAAA;AAAA,QACb;AAAA,QACC,+CAAU,cAAa,EAAA,WAAU,SAAS,UAAK,KAAA,UAAU,KAAK,EAAE,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACnE;AAEJ;"}