@ynput/ayon-frontend-shared 0.2.31 → 0.2.33

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 (693) hide show
  1. package/dist/DetailsPanel.cjs.js +1 -1
  2. package/dist/DetailsPanel.es.js +29 -22
  3. package/dist/DetailsPanel.es.js.map +1 -1
  4. package/dist/Feed.cjs.js +1 -1
  5. package/dist/Feed.es.js +11 -9
  6. package/dist/Feed.es.js.map +1 -1
  7. package/dist/Views.cjs.js.map +1 -1
  8. package/dist/Views.es.js.map +1 -1
  9. package/dist/_virtual/index.cjs10.js +1 -1
  10. package/dist/_virtual/index.cjs8.js +1 -1
  11. package/dist/_virtual/index.cjs9.js +1 -1
  12. package/dist/_virtual/index.es10.js +5 -5
  13. package/dist/_virtual/index.es8.js +3 -3
  14. package/dist/_virtual/index.es9.js +5 -5
  15. package/dist/api.cjs.js +1 -1
  16. package/dist/api.es.js +219 -217
  17. package/dist/api.es.js.map +1 -1
  18. package/dist/components.cjs.js +1 -1
  19. package/dist/components.es.js +84 -71
  20. package/dist/components.es.js.map +1 -1
  21. package/dist/index.cjs.js +1 -1
  22. package/dist/index.es.js +16 -9
  23. package/dist/index.es.js.map +1 -1
  24. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js +1 -1
  25. package/dist/node_modules/rehype/node_modules/unified/lib/index.cjs.js.map +1 -1
  26. package/dist/node_modules/rehype/node_modules/unified/lib/index.es.js +2 -2
  27. package/dist/node_modules/rehype/node_modules/vfile/lib/index.cjs.js +1 -1
  28. package/dist/node_modules/rehype/node_modules/vfile/lib/index.es.js +1 -1
  29. package/dist/node_modules/rehype-parse/lib/index.cjs.js +1 -1
  30. package/dist/node_modules/rehype-parse/lib/index.cjs.js.map +1 -1
  31. package/dist/node_modules/rehype-parse/lib/index.es.js +1 -1
  32. package/dist/shared/src/api/generated/access.cjs.js.map +1 -1
  33. package/dist/shared/src/api/generated/access.es.js.map +1 -1
  34. package/dist/shared/src/api/generated/activityFeed.cjs.js +1 -1
  35. package/dist/shared/src/api/generated/activityFeed.cjs.js.map +1 -1
  36. package/dist/shared/src/api/generated/activityFeed.es.js +3 -0
  37. package/dist/shared/src/api/generated/activityFeed.es.js.map +1 -1
  38. package/dist/shared/src/api/generated/authentication.cjs.js +1 -1
  39. package/dist/shared/src/api/generated/authentication.cjs.js.map +1 -1
  40. package/dist/shared/src/api/generated/authentication.es.js +9 -6
  41. package/dist/shared/src/api/generated/authentication.es.js.map +1 -1
  42. package/dist/shared/src/api/generated/entityLists.cjs.js.map +1 -1
  43. package/dist/shared/src/api/generated/entityLists.es.js.map +1 -1
  44. package/dist/shared/src/api/generated/folders.cjs.js.map +1 -1
  45. package/dist/shared/src/api/generated/folders.es.js.map +1 -1
  46. package/dist/shared/src/api/generated/graphql.cjs.js.map +1 -1
  47. package/dist/shared/src/api/generated/graphql.es.js.map +1 -1
  48. package/dist/shared/src/api/generated/graphqlLinks.cjs.js.map +1 -1
  49. package/dist/shared/src/api/generated/graphqlLinks.es.js.map +1 -1
  50. package/dist/shared/src/api/generated/links.cjs.js +1 -1
  51. package/dist/shared/src/api/generated/links.cjs.js.map +1 -1
  52. package/dist/shared/src/api/generated/links.es.js +13 -5
  53. package/dist/shared/src/api/generated/links.es.js.map +1 -1
  54. package/dist/shared/src/api/generated/onboarding.cjs.js.map +1 -1
  55. package/dist/shared/src/api/generated/onboarding.es.js.map +1 -1
  56. package/dist/shared/src/api/generated/operations.cjs.js +1 -1
  57. package/dist/shared/src/api/generated/operations.cjs.js.map +1 -1
  58. package/dist/shared/src/api/generated/operations.es.js +16 -0
  59. package/dist/shared/src/api/generated/operations.es.js.map +1 -1
  60. package/dist/shared/src/api/generated/products.cjs.js +1 -1
  61. package/dist/shared/src/api/generated/products.cjs.js.map +1 -1
  62. package/dist/shared/src/api/generated/products.es.js +6 -3
  63. package/dist/shared/src/api/generated/products.es.js.map +1 -1
  64. package/dist/shared/src/api/generated/projects.cjs.js +1 -1
  65. package/dist/shared/src/api/generated/projects.cjs.js.map +1 -1
  66. package/dist/shared/src/api/generated/projects.es.js +19 -0
  67. package/dist/shared/src/api/generated/projects.es.js.map +1 -1
  68. package/dist/shared/src/api/generated/system.cjs.js.map +1 -1
  69. package/dist/shared/src/api/generated/system.es.js.map +1 -1
  70. package/dist/shared/src/api/generated/tasks.cjs.js.map +1 -1
  71. package/dist/shared/src/api/generated/tasks.es.js.map +1 -1
  72. package/dist/shared/src/api/generated/users.cjs.js.map +1 -1
  73. package/dist/shared/src/api/generated/users.es.js.map +1 -1
  74. package/dist/shared/src/api/generated/versions.cjs.js.map +1 -1
  75. package/dist/shared/src/api/generated/versions.es.js.map +1 -1
  76. package/dist/shared/src/api/generated/views.cjs.js.map +1 -1
  77. package/dist/shared/src/api/generated/views.es.js.map +1 -1
  78. package/dist/shared/src/api/queries/activities/getActivities.cjs.js +1 -1
  79. package/dist/shared/src/api/queries/activities/getActivities.cjs.js.map +1 -1
  80. package/dist/shared/src/api/queries/activities/getActivities.es.js +4 -8
  81. package/dist/shared/src/api/queries/activities/getActivities.es.js.map +1 -1
  82. package/dist/shared/src/api/queries/activities/getCategories.cjs.js +2 -0
  83. package/dist/shared/src/api/queries/activities/getCategories.cjs.js.map +1 -0
  84. package/dist/shared/src/api/queries/activities/getCategories.es.js +53 -0
  85. package/dist/shared/src/api/queries/activities/getCategories.es.js.map +1 -0
  86. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js +1 -1
  87. package/dist/shared/src/api/queries/activities/updateActivities.cjs.js.map +1 -1
  88. package/dist/shared/src/api/queries/activities/updateActivities.es.js +53 -51
  89. package/dist/shared/src/api/queries/activities/updateActivities.es.js.map +1 -1
  90. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js +1 -1
  91. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.cjs.js.map +1 -1
  92. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js +4 -3
  93. package/dist/shared/src/api/queries/entities/transformDetailsPanelData.es.js.map +1 -1
  94. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js +1 -1
  95. package/dist/shared/src/api/queries/entities/updateEntity.cjs.js.map +1 -1
  96. package/dist/shared/src/api/queries/entities/updateEntity.es.js +4 -3
  97. package/dist/shared/src/api/queries/entities/updateEntity.es.js.map +1 -1
  98. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js +1 -1
  99. package/dist/shared/src/api/queries/overview/updateOverview.cjs.js.map +1 -1
  100. package/dist/shared/src/api/queries/overview/updateOverview.es.js +61 -60
  101. package/dist/shared/src/api/queries/overview/updateOverview.es.js.map +1 -1
  102. package/dist/shared/src/api/queries/share/share.cjs.js +1 -1
  103. package/dist/shared/src/api/queries/share/share.cjs.js.map +1 -1
  104. package/dist/shared/src/api/queries/share/share.es.js +38 -12
  105. package/dist/shared/src/api/queries/share/share.es.js.map +1 -1
  106. package/dist/shared/src/api/queries/users/getUsers.cjs.js +1 -1
  107. package/dist/shared/src/api/queries/users/getUsers.cjs.js.map +1 -1
  108. package/dist/shared/src/api/queries/users/getUsers.es.js +18 -17
  109. package/dist/shared/src/api/queries/users/getUsers.es.js.map +1 -1
  110. package/dist/shared/src/api/queries/views/updateViews.cjs.js +1 -1
  111. package/dist/shared/src/api/queries/views/updateViews.cjs.js.map +1 -1
  112. package/dist/shared/src/api/queries/views/updateViews.es.js +14 -15
  113. package/dist/shared/src/api/queries/views/updateViews.es.js.map +1 -1
  114. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js +2 -0
  115. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.cjs.js.map +1 -0
  116. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js +135 -0
  117. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.es.js.map +1 -0
  118. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.styled.cjs.js +39 -0
  119. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.styled.cjs.js.map +1 -0
  120. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.styled.es.js +44 -0
  121. package/dist/shared/src/components/AccessSearchInput/AccessSearchInput.styled.es.js.map +1 -0
  122. package/dist/shared/src/components/AccessUser/AccessUser.cjs.js +2 -0
  123. package/dist/shared/src/components/AccessUser/AccessUser.cjs.js.map +1 -0
  124. package/dist/shared/src/components/AccessUser/AccessUser.es.js +43 -0
  125. package/dist/shared/src/components/AccessUser/AccessUser.es.js.map +1 -0
  126. package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js +46 -0
  127. package/dist/shared/src/components/AccessUser/AccessUser.styled.cjs.js.map +1 -0
  128. package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js +50 -0
  129. package/dist/shared/src/components/AccessUser/AccessUser.styled.es.js.map +1 -0
  130. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js +1 -1
  131. package/dist/shared/src/components/AttributeEditor/AttributeEditor.cjs.js.map +1 -1
  132. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js +15 -10
  133. package/dist/shared/src/components/AttributeEditor/AttributeEditor.es.js.map +1 -1
  134. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js +1 -1
  135. package/dist/shared/src/components/DetailsDialog/DetailsDialog.cjs.js.map +1 -1
  136. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js +3 -2
  137. package/dist/shared/src/components/DetailsDialog/DetailsDialog.es.js.map +1 -1
  138. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js +1 -1
  139. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.cjs.js.map +1 -1
  140. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js +3 -2
  141. package/dist/shared/src/components/DetailsPanelAttributes/components/RenderFieldWidget.es.js.map +1 -1
  142. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js +1 -1
  143. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.cjs.js.map +1 -1
  144. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js +3 -2
  145. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.es.js.map +1 -1
  146. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js +47 -43
  147. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.cjs.js.map +1 -1
  148. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js +47 -43
  149. package/dist/shared/src/components/DetailsPanelDetails/DescriptionSection.styles.es.js.map +1 -1
  150. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js +1 -1
  151. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.cjs.js.map +1 -1
  152. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js +3 -2
  153. package/dist/shared/src/components/DetailsPanelDetails/DetailsPanelDetails.es.js.map +1 -1
  154. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js +1 -1
  155. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.cjs.js.map +1 -1
  156. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js +3 -2
  157. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityData.es.js.map +1 -1
  158. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js +1 -1
  159. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.cjs.js.map +1 -1
  160. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js +3 -2
  161. package/dist/shared/src/components/DetailsPanelDetails/hooks/useEntityEditing.es.js.map +1 -1
  162. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js +1 -1
  163. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.cjs.js.map +1 -1
  164. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js +9 -2
  165. package/dist/shared/src/components/EntityPanelUploader/EntityPanelUploader.es.js.map +1 -1
  166. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js +1 -1
  167. package/dist/shared/src/components/Feedback/FeedbackContext.cjs.js.map +1 -1
  168. package/dist/shared/src/components/Feedback/FeedbackContext.es.js +5 -4
  169. package/dist/shared/src/components/Feedback/FeedbackContext.es.js.map +1 -1
  170. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js +1 -1
  171. package/dist/shared/src/components/LinksManager/AddNewLinks.cjs.js.map +1 -1
  172. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js +9 -2
  173. package/dist/shared/src/components/LinksManager/AddNewLinks.es.js.map +1 -1
  174. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js +1 -1
  175. package/dist/shared/src/components/LinksManager/LinkManagerItem.cjs.js.map +1 -1
  176. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js +3 -2
  177. package/dist/shared/src/components/LinksManager/LinkManagerItem.es.js.map +1 -1
  178. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js +1 -1
  179. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.cjs.js.map +1 -1
  180. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js +9 -2
  181. package/dist/shared/src/components/LinksManager/hooks/useUpdateLinks.es.js.map +1 -1
  182. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js +1 -1
  183. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.cjs.js.map +1 -1
  184. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js +3 -2
  185. package/dist/shared/src/components/ListAttributeForm/ListAttributeForm.es.js.map +1 -1
  186. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js +1 -1
  187. package/dist/shared/src/components/Powerpack/PowerpackDialog.cjs.js.map +1 -1
  188. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js +9 -2
  189. package/dist/shared/src/components/Powerpack/PowerpackDialog.es.js.map +1 -1
  190. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js +1 -1
  191. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.cjs.js.map +1 -1
  192. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js +11 -4
  193. package/dist/shared/src/components/ProjectTableSettings/ProjectTableSettings.es.js.map +1 -1
  194. package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.cjs.js +60 -0
  195. package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.cjs.js.map +1 -0
  196. package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.es.js +339 -0
  197. package/dist/shared/src/components/ProjectTableSettings/RowHeightSettings.es.js.map +1 -0
  198. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js +1 -1
  199. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.cjs.js.map +1 -1
  200. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js +9 -2
  201. package/dist/shared/src/components/ProjectTableSettings/TableSettingsFallback.es.js.map +1 -1
  202. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js +1 -1
  203. package/dist/shared/src/components/RenameForm/RenameForm.cjs.js.map +1 -1
  204. package/dist/shared/src/components/RenameForm/RenameForm.es.js +9 -2
  205. package/dist/shared/src/components/RenameForm/RenameForm.es.js.map +1 -1
  206. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js +1 -1
  207. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.cjs.js.map +1 -1
  208. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js +3 -2
  209. package/dist/shared/src/components/ReviewablesList/EditReviewableDialog.es.js.map +1 -1
  210. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js +1 -1
  211. package/dist/shared/src/components/ReviewablesList/ReviewablesList.cjs.js.map +1 -1
  212. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js +9 -2
  213. package/dist/shared/src/components/ReviewablesList/ReviewablesList.es.js.map +1 -1
  214. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js +1 -1
  215. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.cjs.js.map +1 -1
  216. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js +10 -3
  217. package/dist/shared/src/components/ReviewablesList/ReviewablesUpload.es.js.map +1 -1
  218. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js +1 -1
  219. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.cjs.js.map +1 -1
  220. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js +9 -2
  221. package/dist/shared/src/components/ReviewablesList/SortableReviewableCard.es.js.map +1 -1
  222. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js +1 -1
  223. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.cjs.js.map +1 -1
  224. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js +3 -2
  225. package/dist/shared/src/components/ReviewablesList/useReviewablesUpload.es.js.map +1 -1
  226. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js +1 -1
  227. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.cjs.js.map +1 -1
  228. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js +3 -2
  229. package/dist/shared/src/components/SearchFilter/useBuildFilterOptions.es.js.map +1 -1
  230. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js +4 -4
  231. package/dist/shared/src/components/SettingsPanel/SettingsPanel.cjs.js.map +1 -1
  232. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js +37 -33
  233. package/dist/shared/src/components/SettingsPanel/SettingsPanel.es.js.map +1 -1
  234. package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js +12 -0
  235. package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.cjs.js.map +1 -0
  236. package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js +46 -0
  237. package/dist/shared/src/components/ShareOptionIcon/ShareOptionIcon.es.js.map +1 -0
  238. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js +1 -1
  239. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.cjs.js.map +1 -1
  240. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js +9 -2
  241. package/dist/shared/src/components/SimpleFormDialog/SimpleFormDialog.es.js.map +1 -1
  242. package/dist/shared/src/components/Thumbnail/Thumbnail.styled.cjs.js +3 -5
  243. package/dist/shared/src/components/Thumbnail/Thumbnail.styled.cjs.js.map +1 -1
  244. package/dist/shared/src/components/Thumbnail/Thumbnail.styled.es.js +4 -6
  245. package/dist/shared/src/components/Thumbnail/Thumbnail.styled.es.js.map +1 -1
  246. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js +1 -2
  247. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.cjs.js.map +1 -1
  248. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js +0 -1
  249. package/dist/shared/src/components/ThumbnailSimple/ThumbnailSimple.es.js.map +1 -1
  250. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js +1 -1
  251. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.cjs.js.map +1 -1
  252. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js +9 -2
  253. package/dist/shared/src/components/VersionUploader/components/UploadVersionForm.es.js.map +1 -1
  254. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js +1 -1
  255. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.cjs.js.map +1 -1
  256. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js +5 -4
  257. package/dist/shared/src/components/VersionUploader/context/VersionUploadContext.es.js.map +1 -1
  258. package/dist/shared/src/components/Watchers/Watchers.cjs.js +1 -1
  259. package/dist/shared/src/components/Watchers/Watchers.cjs.js.map +1 -1
  260. package/dist/shared/src/components/Watchers/Watchers.es.js +3 -2
  261. package/dist/shared/src/components/Watchers/Watchers.es.js.map +1 -1
  262. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js +1 -1
  263. package/dist/shared/src/containers/Actions/ActionConfigDialog.cjs.js.map +1 -1
  264. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js +9 -2
  265. package/dist/shared/src/containers/Actions/ActionConfigDialog.es.js.map +1 -1
  266. package/dist/shared/src/containers/Actions/Actions.cjs.js +1 -1
  267. package/dist/shared/src/containers/Actions/Actions.cjs.js.map +1 -1
  268. package/dist/shared/src/containers/Actions/Actions.es.js +3 -2
  269. package/dist/shared/src/containers/Actions/Actions.es.js.map +1 -1
  270. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js +1 -1
  271. package/dist/shared/src/containers/Actions/InteractiveActionDialog.cjs.js.map +1 -1
  272. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js +9 -2
  273. package/dist/shared/src/containers/Actions/InteractiveActionDialog.es.js.map +1 -1
  274. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
  275. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
  276. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +61 -52
  277. package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
  278. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js +1 -1
  279. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.cjs.js.map +1 -1
  280. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js +9 -2
  281. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFiles/DetailsPanelFiles.es.js.map +1 -1
  282. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js +1 -1
  283. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.cjs.js.map +1 -1
  284. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js +44 -36
  285. package/dist/shared/src/containers/DetailsPanel/DetailsPanelFloating/DetailsPanelFloating.es.js.map +1 -1
  286. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js +1 -1
  287. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.cjs.js.map +1 -1
  288. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js +9 -2
  289. package/dist/shared/src/containers/DetailsPanel/DetailsPanelHeader/DetailsPanelHeader.es.js.map +1 -1
  290. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js +1 -1
  291. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.cjs.js.map +1 -1
  292. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js +3 -2
  293. package/dist/shared/src/containers/DetailsPanel/DetailsPanelSlideOut/DetailsPanelSlideOut.es.js.map +1 -1
  294. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js +1 -1
  295. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.cjs.js.map +1 -1
  296. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js +4 -2
  297. package/dist/shared/src/containers/DetailsPanel/FeedContextWrapper.es.js.map +1 -1
  298. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js +1 -1
  299. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.cjs.js.map +1 -1
  300. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js +19 -17
  301. package/dist/shared/src/containers/DetailsPanel/FeedWrapper.es.js.map +1 -1
  302. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js +1 -1
  303. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.cjs.js.map +1 -1
  304. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js +3 -2
  305. package/dist/shared/src/containers/DetailsPanel/hooks/useGetEntityPath.es.js.map +1 -1
  306. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js +1 -1
  307. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.cjs.js.map +1 -1
  308. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js +9 -2
  309. package/dist/shared/src/containers/EntityPickerDialog/EntityPickerDialog.es.js.map +1 -1
  310. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js +1 -1
  311. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.cjs.js.map +1 -1
  312. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js +9 -2
  313. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTable.es.js.map +1 -1
  314. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js +1 -1
  315. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.cjs.js.map +1 -1
  316. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js +9 -2
  317. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableHeader.es.js.map +1 -1
  318. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js +1 -1
  319. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.cjs.js.map +1 -1
  320. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js +9 -2
  321. package/dist/shared/src/containers/EntityPickerDialog/components/EntityTypeTableSearch.es.js.map +1 -1
  322. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js +1 -1
  323. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.cjs.js.map +1 -1
  324. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js +3 -2
  325. package/dist/shared/src/containers/EntityPickerDialog/hooks/useGetEntityPickerData.es.js.map +1 -1
  326. package/dist/shared/src/containers/Feed/Feed.cjs.js +1 -1
  327. package/dist/shared/src/containers/Feed/Feed.cjs.js.map +1 -1
  328. package/dist/shared/src/containers/Feed/Feed.es.js +73 -72
  329. package/dist/shared/src/containers/Feed/Feed.es.js.map +1 -1
  330. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js +13 -0
  331. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js.map +1 -0
  332. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js +89 -0
  333. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.es.js.map +1 -0
  334. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js +20 -0
  335. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js.map +1 -0
  336. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js +42 -0
  337. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.es.js.map +1 -0
  338. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js +51 -0
  339. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryTag.cjs.js.map +1 -0
  340. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryTag.es.js +76 -0
  341. package/dist/shared/src/containers/Feed/components/ActivityCategorySelect/CategoryTag.es.js.map +1 -0
  342. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
  343. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
  344. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +161 -133
  345. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
  346. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js +30 -14
  347. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.cjs.js.map +1 -1
  348. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js +41 -24
  349. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.styled.es.js.map +1 -1
  350. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js +3 -3
  351. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.cjs.js.map +1 -1
  352. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js +58 -48
  353. package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.es.js.map +1 -1
  354. package/dist/shared/src/containers/Feed/components/ActivityItem.cjs.js.map +1 -1
  355. package/dist/shared/src/containers/Feed/components/ActivityItem.es.js.map +1 -1
  356. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js +1 -1
  357. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.cjs.js.map +1 -1
  358. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js +24 -20
  359. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.es.js.map +1 -1
  360. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js +12 -12
  361. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.cjs.js.map +1 -1
  362. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.es.js +13 -13
  363. package/dist/shared/src/containers/Feed/components/ActivityReference/ActivityReference.styled.es.js.map +1 -1
  364. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js +2 -2
  365. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.cjs.js.map +1 -1
  366. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js +336 -260
  367. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.es.js.map +1 -1
  368. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js +69 -41
  369. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.cjs.js.map +1 -1
  370. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js +77 -48
  371. package/dist/shared/src/containers/Feed/components/CommentInput/CommentInput.styled.es.js.map +1 -1
  372. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js +2 -0
  373. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.cjs.js.map +1 -0
  374. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js +19 -0
  375. package/dist/shared/src/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.es.js.map +1 -0
  376. package/dist/shared/src/containers/Feed/components/ReactionContainer/ExistingReactions.cjs.js +1 -1
  377. package/dist/shared/src/containers/Feed/components/ReactionContainer/ExistingReactions.cjs.js.map +1 -1
  378. package/dist/shared/src/containers/Feed/components/ReactionContainer/ExistingReactions.es.js +15 -6
  379. package/dist/shared/src/containers/Feed/components/ReactionContainer/ExistingReactions.es.js.map +1 -1
  380. package/dist/shared/src/containers/Feed/components/ReactionContainer/Reaction.cjs.js +1 -1
  381. package/dist/shared/src/containers/Feed/components/ReactionContainer/Reaction.cjs.js.map +1 -1
  382. package/dist/shared/src/containers/Feed/components/ReactionContainer/Reaction.es.js +24 -14
  383. package/dist/shared/src/containers/Feed/components/ReactionContainer/Reaction.es.js.map +1 -1
  384. package/dist/shared/src/containers/Feed/components/ReactionContainer/ReactionPanelOpener.cjs.js +1 -1
  385. package/dist/shared/src/containers/Feed/components/ReactionContainer/ReactionPanelOpener.cjs.js.map +1 -1
  386. package/dist/shared/src/containers/Feed/components/ReactionContainer/ReactionPanelOpener.es.js +60 -38
  387. package/dist/shared/src/containers/Feed/components/ReactionContainer/ReactionPanelOpener.es.js.map +1 -1
  388. package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.cjs.js +1 -1
  389. package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.cjs.js.map +1 -1
  390. package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.es.js +42 -9
  391. package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.es.js.map +1 -1
  392. package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js +65 -20
  393. package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.styled.cjs.js.map +1 -1
  394. package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.styled.es.js +71 -26
  395. package/dist/shared/src/containers/Feed/components/ReactionContainer/Reactions.styled.es.js.map +1 -1
  396. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js +1 -1
  397. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.cjs.js.map +1 -1
  398. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js +4 -2
  399. package/dist/shared/src/containers/Feed/components/Tooltips/EntityTooltip/EntityTooltip.es.js.map +1 -1
  400. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js +1 -1
  401. package/dist/shared/src/containers/Feed/context/FeedContext.cjs.js.map +1 -1
  402. package/dist/shared/src/containers/Feed/context/FeedContext.es.js +30 -26
  403. package/dist/shared/src/containers/Feed/context/FeedContext.es.js.map +1 -1
  404. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js +1 -1
  405. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.cjs.js.map +1 -1
  406. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js +57 -53
  407. package/dist/shared/src/containers/Feed/hooks/useCommentMutations.es.js.map +1 -1
  408. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js +1 -1
  409. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.cjs.js.map +1 -1
  410. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js +3 -2
  411. package/dist/shared/src/containers/Feed/hooks/useGetFeedActivitiesData.es.js.map +1 -1
  412. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js +1 -1
  413. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.cjs.js.map +1 -1
  414. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js +562 -537
  415. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.es.js.map +1 -1
  416. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js +0 -1
  417. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.cjs.js.map +1 -1
  418. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js +4 -5
  419. package/dist/shared/src/containers/ProjectTreeTable/ProjectTreeTable.styled.es.js.map +1 -1
  420. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js +1 -1
  421. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.cjs.js.map +1 -1
  422. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js +99 -91
  423. package/dist/shared/src/containers/ProjectTreeTable/buildTreeTableColumns.es.js.map +1 -1
  424. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js +1 -1
  425. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.cjs.js.map +1 -1
  426. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js +9 -2
  427. package/dist/shared/src/containers/ProjectTreeTable/components/ColumnHeaderMenu.es.js.map +1 -1
  428. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js +1 -1
  429. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.cjs.js.map +1 -1
  430. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js +9 -2
  431. package/dist/shared/src/containers/ProjectTreeTable/components/GroupSettingsFallback.es.js.map +1 -1
  432. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js +1 -1
  433. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.cjs.js.map +1 -1
  434. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js +9 -2
  435. package/dist/shared/src/containers/ProjectTreeTable/context/CellEditingProvider.es.js.map +1 -1
  436. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.cjs.js.map +1 -1
  437. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsContext.es.js.map +1 -1
  438. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js +1 -1
  439. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.cjs.js.map +1 -1
  440. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js +126 -108
  441. package/dist/shared/src/containers/ProjectTreeTable/context/ColumnSettingsProvider.es.js.map +1 -1
  442. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js +1 -1
  443. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.cjs.js.map +1 -1
  444. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js +5 -4
  445. package/dist/shared/src/containers/ProjectTreeTable/context/ProjectDataContext.es.js.map +1 -1
  446. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js +1 -1
  447. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.cjs.js.map +1 -1
  448. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js +42 -35
  449. package/dist/shared/src/containers/ProjectTreeTable/context/SelectionCellsProvider.es.js.map +1 -1
  450. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js +1 -1
  451. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.cjs.js.map +1 -1
  452. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js +3 -2
  453. package/dist/shared/src/containers/ProjectTreeTable/hooks/useAttributesList.es.js.map +1 -1
  454. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js +1 -1
  455. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.cjs.js.map +1 -1
  456. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js +6 -5
  457. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildGroupByTableData.es.js.map +1 -1
  458. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js +1 -1
  459. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.cjs.js.map +1 -1
  460. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js +23 -21
  461. package/dist/shared/src/containers/ProjectTreeTable/hooks/useBuildProjectDataTable.es.js.map +1 -1
  462. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js +1 -1
  463. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.cjs.js.map +1 -1
  464. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js +9 -2
  465. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCellContextMenu.es.js.map +1 -1
  466. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js +1 -1
  467. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.cjs.js.map +1 -1
  468. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js +9 -2
  469. package/dist/shared/src/containers/ProjectTreeTable/hooks/useCheckSelectedCellsVisible.es.js.map +1 -1
  470. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js +1 -1
  471. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.cjs.js.map +1 -1
  472. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js +9 -2
  473. package/dist/shared/src/containers/ProjectTreeTable/hooks/useColumnGroupBy.es.js.map +1 -1
  474. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDynamicRowHeight.cjs.js +2 -0
  475. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDynamicRowHeight.cjs.js.map +1 -0
  476. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDynamicRowHeight.es.js +9 -0
  477. package/dist/shared/src/containers/ProjectTreeTable/hooks/useDynamicRowHeight.es.js.map +1 -0
  478. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js +1 -1
  479. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.cjs.js.map +1 -1
  480. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js +3 -2
  481. package/dist/shared/src/containers/ProjectTreeTable/hooks/useFetchOverviewData.es.js.map +1 -1
  482. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js +1 -1
  483. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.cjs.js.map +1 -1
  484. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js +9 -2
  485. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetGroupedFields.es.js.map +1 -1
  486. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js +1 -1
  487. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.cjs.js.map +1 -1
  488. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js +3 -2
  489. package/dist/shared/src/containers/ProjectTreeTable/hooks/useGetTaskGroups.es.js.map +1 -1
  490. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js +1 -1
  491. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.cjs.js.map +1 -1
  492. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js +9 -2
  493. package/dist/shared/src/containers/ProjectTreeTable/hooks/useKeyboardNavigation.es.js.map +1 -1
  494. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js +1 -1
  495. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.cjs.js.map +1 -1
  496. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js +9 -2
  497. package/dist/shared/src/containers/ProjectTreeTable/hooks/useMoveEntities.es.js.map +1 -1
  498. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js +1 -1
  499. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.cjs.js.map +1 -1
  500. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js +9 -2
  501. package/dist/shared/src/containers/ProjectTreeTable/hooks/usePasteLinks.es.js.map +1 -1
  502. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js +1 -1
  503. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.cjs.js.map +1 -1
  504. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js +3 -2
  505. package/dist/shared/src/containers/ProjectTreeTable/hooks/useProjectTableModules.es.js.map +1 -1
  506. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js +1 -1
  507. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.cjs.js.map +1 -1
  508. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js +9 -2
  509. package/dist/shared/src/containers/ProjectTreeTable/hooks/useQueryFilters.es.js.map +1 -1
  510. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js +1 -1
  511. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.cjs.js.map +1 -1
  512. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js +20 -13
  513. package/dist/shared/src/containers/ProjectTreeTable/utils/cellUtils.es.js.map +1 -1
  514. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js +2 -2
  515. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.cjs.js.map +1 -1
  516. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js +50 -48
  517. package/dist/shared/src/containers/ProjectTreeTable/widgets/CellWidget.es.js.map +1 -1
  518. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js +38 -9
  519. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.cjs.js.map +1 -1
  520. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js +74 -39
  521. package/dist/shared/src/containers/ProjectTreeTable/widgets/EntityNameWidget.es.js.map +1 -1
  522. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js +24 -15
  523. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.cjs.js.map +1 -1
  524. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js +71 -59
  525. package/dist/shared/src/containers/ProjectTreeTable/widgets/EnumCellValue.es.js.map +1 -1
  526. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js +1 -1
  527. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.cjs.js.map +1 -1
  528. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js +11 -4
  529. package/dist/shared/src/containers/ProjectTreeTable/widgets/LinksWidget.es.js.map +1 -1
  530. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js +1 -1
  531. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.cjs.js.map +1 -1
  532. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js +9 -2
  533. package/dist/shared/src/containers/ProjectTreeTable/widgets/NameWidget.es.js.map +1 -1
  534. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js +6 -6
  535. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.cjs.js.map +1 -1
  536. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js +12 -12
  537. package/dist/shared/src/containers/ProjectTreeTable/widgets/ThumbnailWidget.es.js.map +1 -1
  538. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js +1 -1
  539. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.cjs.js.map +1 -1
  540. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js +9 -2
  541. package/dist/shared/src/containers/RepresentationsList/RepresentationsList.es.js.map +1 -1
  542. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js +1 -1
  543. package/dist/shared/src/containers/SimpleTable/SimpleTable.cjs.js.map +1 -1
  544. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js +9 -2
  545. package/dist/shared/src/containers/SimpleTable/SimpleTable.es.js.map +1 -1
  546. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js +1 -1
  547. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.cjs.js.map +1 -1
  548. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js +3 -2
  549. package/dist/shared/src/containers/Views/ViewsDialogContainer/ViewsDialogContainer.es.js.map +1 -1
  550. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js +1 -1
  551. package/dist/shared/src/containers/Views/context/ViewsContext.cjs.js.map +1 -1
  552. package/dist/shared/src/containers/Views/context/ViewsContext.es.js +5 -4
  553. package/dist/shared/src/containers/Views/context/ViewsContext.es.js.map +1 -1
  554. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js +1 -1
  555. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.cjs.js.map +1 -1
  556. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js +3 -2
  557. package/dist/shared/src/containers/Views/hooks/useBuildViewMenuItems.es.js.map +1 -1
  558. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js +1 -1
  559. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.cjs.js.map +1 -1
  560. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js +3 -2
  561. package/dist/shared/src/containers/Views/hooks/useSaveViewFromCurrent.es.js.map +1 -1
  562. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js +1 -1
  563. package/dist/shared/src/containers/Views/hooks/useSelectedView.cjs.js.map +1 -1
  564. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js +3 -2
  565. package/dist/shared/src/containers/Views/hooks/useSelectedView.es.js.map +1 -1
  566. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js +1 -1
  567. package/dist/shared/src/containers/Views/hooks/useViewsMutations.cjs.js.map +1 -1
  568. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js +3 -2
  569. package/dist/shared/src/containers/Views/hooks/useViewsMutations.es.js.map +1 -1
  570. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js +1 -1
  571. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.cjs.js.map +1 -1
  572. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js +3 -2
  573. package/dist/shared/src/containers/Views/utils/viewUpdateHelper.es.js.map +1 -1
  574. package/dist/shared/src/context/AddonProjectContext.cjs.js +1 -1
  575. package/dist/shared/src/context/AddonProjectContext.cjs.js.map +1 -1
  576. package/dist/shared/src/context/AddonProjectContext.es.js +5 -4
  577. package/dist/shared/src/context/AddonProjectContext.es.js.map +1 -1
  578. package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
  579. package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
  580. package/dist/shared/src/context/DetailsPanelContext.es.js +70 -66
  581. package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
  582. package/dist/shared/src/context/PowerpackContext.cjs.js +1 -1
  583. package/dist/shared/src/context/PowerpackContext.cjs.js.map +1 -1
  584. package/dist/shared/src/context/PowerpackContext.es.js +30 -23
  585. package/dist/shared/src/context/PowerpackContext.es.js.map +1 -1
  586. package/dist/shared/src/context/RemoteModulesContext.cjs.js +1 -1
  587. package/dist/shared/src/context/RemoteModulesContext.cjs.js.map +1 -1
  588. package/dist/shared/src/context/RemoteModulesContext.es.js +5 -4
  589. package/dist/shared/src/context/RemoteModulesContext.es.js.map +1 -1
  590. package/dist/shared/src/hooks/useActionTriggers.cjs.js +1 -1
  591. package/dist/shared/src/hooks/useActionTriggers.cjs.js.map +1 -1
  592. package/dist/shared/src/hooks/useActionTriggers.es.js +3 -2
  593. package/dist/shared/src/hooks/useActionTriggers.es.js.map +1 -1
  594. package/dist/shared/src/hooks/useEntityUpdate.cjs.js +1 -1
  595. package/dist/shared/src/hooks/useEntityUpdate.cjs.js.map +1 -1
  596. package/dist/shared/src/hooks/useEntityUpdate.es.js +3 -2
  597. package/dist/shared/src/hooks/useEntityUpdate.es.js.map +1 -1
  598. package/dist/shared/src/hooks/useHierarchyTable.cjs.js +1 -1
  599. package/dist/shared/src/hooks/useHierarchyTable.cjs.js.map +1 -1
  600. package/dist/shared/src/hooks/useHierarchyTable.es.js +3 -2
  601. package/dist/shared/src/hooks/useHierarchyTable.es.js.map +1 -1
  602. package/dist/shared/src/hooks/useLoadModule.cjs.js.map +1 -1
  603. package/dist/shared/src/hooks/useLoadModule.es.js.map +1 -1
  604. package/dist/shared/src/hooks/useScopedStatuses.cjs.js +1 -1
  605. package/dist/shared/src/hooks/useScopedStatuses.cjs.js.map +1 -1
  606. package/dist/shared/src/hooks/useScopedStatuses.es.js +5 -4
  607. package/dist/shared/src/hooks/useScopedStatuses.es.js.map +1 -1
  608. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js +1 -1
  609. package/dist/shared/src/hooks/useUserProjectConfig.cjs.js.map +1 -1
  610. package/dist/shared/src/hooks/useUserProjectConfig.es.js +3 -2
  611. package/dist/shared/src/hooks/useUserProjectConfig.es.js.map +1 -1
  612. package/dist/shared/src/util/colorUtils.cjs.js +2 -0
  613. package/dist/shared/src/util/colorUtils.cjs.js.map +1 -0
  614. package/dist/shared/src/util/colorUtils.es.js +40 -0
  615. package/dist/shared/src/util/colorUtils.es.js.map +1 -0
  616. package/dist/shared/src/util/columnConfigConverter.cjs.js +1 -1
  617. package/dist/shared/src/util/columnConfigConverter.cjs.js.map +1 -1
  618. package/dist/shared/src/util/columnConfigConverter.es.js +35 -33
  619. package/dist/shared/src/util/columnConfigConverter.es.js.map +1 -1
  620. package/dist/types/api/generated/access.d.ts +6 -0
  621. package/dist/types/api/generated/activityFeed.d.ts +9 -0
  622. package/dist/types/api/generated/authentication.d.ts +6 -0
  623. package/dist/types/api/generated/entityLists.d.ts +7 -7
  624. package/dist/types/api/generated/folders.d.ts +2 -2
  625. package/dist/types/api/generated/graphql.d.ts +9 -2
  626. package/dist/types/api/generated/graphqlLinks.d.ts +21 -15
  627. package/dist/types/api/generated/links.d.ts +4 -0
  628. package/dist/types/api/generated/onboarding.d.ts +3 -0
  629. package/dist/types/api/generated/operations.d.ts +22 -1
  630. package/dist/types/api/generated/products.d.ts +23 -0
  631. package/dist/types/api/generated/projects.d.ts +63 -0
  632. package/dist/types/api/generated/representations.d.ts +1 -0
  633. package/dist/types/api/generated/system.d.ts +9 -2
  634. package/dist/types/api/generated/tasks.d.ts +1 -0
  635. package/dist/types/api/generated/users.d.ts +1 -1
  636. package/dist/types/api/generated/versions.d.ts +1 -0
  637. package/dist/types/api/generated/views.d.ts +50 -9
  638. package/dist/types/api/index.d.ts +1 -0
  639. package/dist/types/api/queries/activities/getCategories.d.ts +142 -0
  640. package/dist/types/api/queries/activities/getMentions.d.ts +1 -0
  641. package/dist/types/api/queries/activities/index.d.ts +1 -0
  642. package/dist/types/api/queries/activities/updateReaction.d.ts +1 -0
  643. package/dist/types/api/queries/authentication/getAuthentication.d.ts +1 -0
  644. package/dist/types/api/queries/overview/updateOverview.d.ts +2 -0
  645. package/dist/types/api/queries/project/getProject.d.ts +4 -0
  646. package/dist/types/api/queries/watchers/getWatchers.d.ts +1 -0
  647. package/dist/types/components/AccessSearchInput/AccessSearchInput.d.ts +16 -0
  648. package/dist/types/components/AccessSearchInput/AccessSearchInput.styled.d.ts +2 -0
  649. package/dist/types/components/AccessSearchInput/index.d.ts +2 -0
  650. package/dist/types/components/AccessUser/AccessUser.d.ts +24 -0
  651. package/dist/types/components/AccessUser/AccessUser.styled.d.ts +1 -0
  652. package/dist/types/components/AccessUser/index.d.ts +1 -0
  653. package/dist/types/components/ProjectTableSettings/RowHeightSettings.d.ts +3 -0
  654. package/dist/types/components/ShareOptionIcon/ShareOptionIcon.d.ts +16 -0
  655. package/dist/types/components/ShareOptionIcon/index.d.ts +1 -0
  656. package/dist/types/components/index.d.ts +3 -0
  657. package/dist/types/containers/DetailsPanel/DetailsPanel.d.ts +2 -1
  658. package/dist/types/containers/DetailsPanel/FeedWrapper.d.ts +1 -0
  659. package/dist/types/containers/Feed/Feed.d.ts +2 -1
  660. package/dist/types/containers/Feed/components/ActivityCategorySelect/ActivityCategorySelect.d.ts +14 -0
  661. package/dist/types/containers/Feed/components/ActivityCategorySelect/CategoryDropdownItem.d.ts +8 -0
  662. package/dist/types/containers/Feed/components/ActivityCategorySelect/CategoryTag.d.ts +10 -0
  663. package/dist/types/containers/Feed/components/ActivityCategorySelect/index.d.ts +1 -0
  664. package/dist/types/containers/Feed/components/ActivityComment/ActivityComment.d.ts +1 -1
  665. package/dist/types/containers/Feed/components/ActivityComment/ActivityComment.styled.d.ts +2 -1
  666. package/dist/types/containers/Feed/components/ActivityComment/ActivityMarkdownComponents.d.ts +3 -1
  667. package/dist/types/containers/Feed/components/ActivityItem.d.ts +1 -1
  668. package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.d.ts +2 -0
  669. package/dist/types/containers/Feed/components/ActivityReference/ActivityReference.styled.d.ts +2 -0
  670. package/dist/types/containers/Feed/components/CommentInput/CommentInput.d.ts +1 -0
  671. package/dist/types/containers/Feed/components/CommentInput/CommentInput.styled.d.ts +7 -1
  672. package/dist/types/containers/Feed/components/CommentInput/hooks/useBlendedCategoryColor.d.ts +11 -0
  673. package/dist/types/containers/Feed/components/ReactionContainer/ExistingReactions.d.ts +4 -1
  674. package/dist/types/containers/Feed/components/ReactionContainer/Reaction.d.ts +4 -1
  675. package/dist/types/containers/Feed/components/ReactionContainer/ReactionPanelOpener.d.ts +4 -1
  676. package/dist/types/containers/Feed/components/ReactionContainer/Reactions.d.ts +4 -1
  677. package/dist/types/containers/Feed/components/ReactionContainer/Reactions.styled.d.ts +9 -4
  678. package/dist/types/containers/Feed/context/FeedContext.d.ts +2 -1
  679. package/dist/types/containers/Feed/hooks/useCommentMutations.d.ts +3 -2
  680. package/dist/types/containers/Feed/index.d.ts +1 -0
  681. package/dist/types/containers/ProjectTreeTable/context/ColumnSettingsContext.d.ts +4 -0
  682. package/dist/types/containers/ProjectTreeTable/hooks/useDynamicRowHeight.d.ts +11 -0
  683. package/dist/types/containers/ProjectTreeTable/widgets/EntityNameWidget.d.ts +2 -1
  684. package/dist/types/containers/ProjectTreeTable/widgets/EnumCellValue.d.ts +2 -1
  685. package/dist/types/containers/Views/index.d.ts +2 -2
  686. package/dist/types/context/DetailsPanelContext.d.ts +3 -0
  687. package/dist/types/context/PowerpackContext.d.ts +1 -1
  688. package/dist/types/util/colorUtils.d.ts +42 -0
  689. package/dist/types/util/index.d.ts +1 -0
  690. package/dist/util.cjs.js +1 -1
  691. package/dist/util.es.js +30 -24
  692. package/dist/util.es.js.map +1 -1
  693. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessSearchInput.es.js","sources":["../../../../../src/components/AccessSearchInput/AccessSearchInput.tsx"],"sourcesContent":["import React, { FC, useState, useRef, KeyboardEvent, ChangeEvent } from 'react'\nimport { matchSorter } from 'match-sorter'\nimport { InputText } from '@ynput/ayon-react-components'\nimport { AccessLevel } from '../AccessUser/AccessUser'\nimport * as Styled from './AccessSearchInput.styled'\nimport { AccessUser } from '../AccessUser/AccessUser'\nimport clsx from 'clsx'\nimport { ShareOption } from '@shared/api'\n\nconst MAX_USERS_DISPLAYED = 500\n// Email validation regex\nconst EMAIL_REGEX = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n\nexport interface AccessSearchInputProps extends React.HTMLAttributes<HTMLDivElement> {\n shareOptions: ShareOption[]\n existingAccess: string[] // Array of names already in access\n owner: string | undefined | null\n placeholder?: string\n disabled?: boolean\n mode?: 'internal' | 'external'\n onSelectOption: (option: ShareOption, accessLevel: AccessLevel) => void\n pt?: {\n list?: Partial<React.HTMLAttributes<HTMLUListElement>>\n }\n}\n\nexport const AccessSearchInput: FC<AccessSearchInputProps> = ({\n shareOptions,\n existingAccess,\n owner,\n placeholder = 'Add people or access groups',\n disabled = false,\n mode = 'internal',\n onSelectOption,\n pt,\n ...props\n}) => {\n const [searchValue, setSearchValue] = useState('')\n const [isOpen, setIsOpen] = useState(false)\n const [highlightedIndex, setHighlightedIndex] = useState(-1)\n const inputRef = useRef<HTMLInputElement>(null)\n\n // sort default by special groups __everyone__, __{type}__, team:, group:, user: and alphabetically\n const defaultSorted = shareOptions\n .filter((option) => !existingAccess.includes(option.value))\n .toSorted((a, b) => {\n const getRank = (option: ShareOption) => {\n if (option.value === '__everyone__') return 0\n if (option.value.startsWith('__')) return 1\n if (option.value.startsWith('team:')) return 2\n if (option.value.startsWith('group:')) return 3\n if (option.value.startsWith('user:')) return 4\n return 5\n }\n const rankA = getRank(a)\n const rankB = getRank(b)\n if (rankA !== rankB) return rankA - rankB\n return a.label.localeCompare(b.label)\n })\n\n // Filter and sort options based on search value\n const filteredOptions = (\n searchValue\n ? matchSorter(defaultSorted, searchValue, {\n keys: ['name', 'label', 'value'],\n threshold: matchSorter.rankings.CONTAINS,\n })\n : defaultSorted\n ).slice(0, MAX_USERS_DISPLAYED)\n\n // Check if search value is a valid email and not already added\n const isValidNewEmail =\n EMAIL_REGEX.test(searchValue) &&\n !shareOptions.some((g) => g.name === searchValue) &&\n mode === 'external'\n\n // Handle input focus\n const handleFocus = () => {\n setIsOpen(true)\n setHighlightedIndex(-1)\n }\n\n // Handle input blur\n const handleBlur = () => {\n // Delay closing to allow for option selection\n setTimeout(() => {\n setIsOpen(false)\n setHighlightedIndex(-1)\n }, 200)\n }\n\n // Handle input change\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(e.target.value)\n setHighlightedIndex(-1)\n setIsOpen(true)\n }\n\n // Handle keyboard navigation\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (!isOpen || filteredOptions.length === 0) {\n // If Enter is pressed and no options are highlighted, select the first option\n if (e.key === 'Enter' && filteredOptions.length > 0) {\n e.preventDefault()\n handleSelectOption(filteredOptions[0])\n }\n return\n }\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault()\n setHighlightedIndex((prev) => (prev < filteredOptions.length - 1 ? prev + 1 : prev))\n break\n case 'ArrowUp':\n e.preventDefault()\n setHighlightedIndex((prev) => (prev > 0 ? prev - 1 : -1))\n break\n case 'Enter':\n e.preventDefault()\n if (highlightedIndex >= 0 && highlightedIndex < filteredOptions.length) {\n handleSelectOption(filteredOptions[highlightedIndex])\n } else if (filteredOptions.length > 0) {\n // If no specific option is highlighted, select the first one\n handleSelectOption(filteredOptions[0])\n }\n break\n case 'Escape':\n setIsOpen(false)\n setHighlightedIndex(-1)\n inputRef.current?.blur()\n // stop dialog from closing\n e.stopPropagation()\n break\n }\n }\n\n // Handle option selection\n const handleSelectOption = (option: ShareOption) => {\n onSelectOption(option, 10) // Default access level is 10 (Read-only)\n setSearchValue('')\n setIsOpen(false)\n setHighlightedIndex(-1)\n inputRef.current?.focus()\n }\n\n // Handle adding a new email\n const handleAddNewEmail = () => {\n onSelectOption(\n {\n name: searchValue,\n label: searchValue,\n value: searchValue,\n shareType: 'guest',\n },\n 10,\n )\n setSearchValue('')\n setIsOpen(false)\n setHighlightedIndex(-1)\n inputRef.current?.focus()\n }\n\n return (\n <Styled.Container {...props}>\n <InputText\n ref={inputRef}\n value={searchValue}\n placeholder={placeholder}\n disabled={disabled}\n onFocus={handleFocus}\n onClick={handleFocus}\n onBlur={handleBlur}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n style={{ width: '100%' }}\n />\n\n {isOpen && (filteredOptions.length > 0 || isValidNewEmail) && (\n <Styled.SuggestionsList\n {...pt?.list}\n className={clsx(pt?.list?.className, { 'no-owner': !owner })}\n >\n {filteredOptions.map((option, index) => (\n <AccessUser\n key={option.value}\n name={option.name}\n label={option.label}\n shareType={option.shareType}\n isOwner={false}\n isMe={false}\n data-index={index}\n className={index === highlightedIndex ? 'highlighted' : ''}\n style={{ cursor: 'pointer' }}\n onClick={() => handleSelectOption(option)}\n onMouseEnter={() => setHighlightedIndex(index)}\n isCompact\n isSearchResult\n >\n {/* No controls needed for search suggestions */}\n </AccessUser>\n ))}\n\n {/* Add new email option */}\n {isValidNewEmail && (\n <AccessUser\n name={searchValue}\n label={searchValue}\n shareType=\"guest\"\n isOwner={false}\n isMe={false}\n data-index={filteredOptions.length}\n className={filteredOptions.length === highlightedIndex ? 'highlighted' : ''}\n style={{ cursor: 'pointer' }}\n onClick={handleAddNewEmail}\n onMouseEnter={() => setHighlightedIndex(filteredOptions.length)}\n isCompact\n isSearchResult\n />\n )}\n\n {filteredOptions.length === MAX_USERS_DISPLAYED && (\n <li className=\"tip\">More than 500 results, please refine your search...</li>\n )}\n </Styled.SuggestionsList>\n )}\n </Styled.Container>\n )\n}\n"],"names":["MAX_USERS_DISPLAYED","EMAIL_REGEX","AccessSearchInput","shareOptions","existingAccess","owner","placeholder","disabled","mode","onSelectOption","pt","props","searchValue","setSearchValue","useState","isOpen","setIsOpen","highlightedIndex","setHighlightedIndex","inputRef","useRef","defaultSorted","option","a","b","getRank","rankA","rankB","filteredOptions","matchSorter","isValidNewEmail","g","handleFocus","handleBlur","handleInputChange","handleKeyDown","handleSelectOption","prev","_a","handleAddNewEmail","jsxs","Styled.Container","jsx","InputText","Styled.SuggestionsList","clsx","index","AccessUser"],"mappings":";;;;;;;AASA,MAAMA,IAAsB,KAEtBC,IAAc,8BAePC,IAAgD,CAAC;AAAA,EAC5D,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAAC,IAAW;AAAA,EACX,MAAAC,IAAO;AAAA,EACP,gBAAAC;AAAA,EACA,IAAAC;AAAA,EACA,GAAGC;AACL,MAAM;;AACJ,QAAM,CAACC,GAAaC,CAAc,IAAIC,EAAS,EAAE,GAC3C,CAACC,GAAQC,CAAS,IAAIF,EAAS,EAAK,GACpC,CAACG,GAAkBC,CAAmB,IAAIJ,EAAS,EAAE,GACrDK,IAAWC,EAAyB,IAAI,GAGxCC,IAAgBlB,EACnB,OAAO,CAACmB,MAAW,CAAClB,EAAe,SAASkB,EAAO,KAAK,CAAC,EACzD,SAAS,CAACC,GAAGC,MAAM;AACZ,UAAAC,IAAU,CAACH,MACXA,EAAO,UAAU,iBAAuB,IACxCA,EAAO,MAAM,WAAW,IAAI,IAAU,IACtCA,EAAO,MAAM,WAAW,OAAO,IAAU,IACzCA,EAAO,MAAM,WAAW,QAAQ,IAAU,IAC1CA,EAAO,MAAM,WAAW,OAAO,IAAU,IACtC,GAEHI,IAAQD,EAAQF,CAAC,GACjBI,IAAQF,EAAQD,CAAC;AACnB,WAAAE,MAAUC,IAAcD,IAAQC,IAC7BJ,EAAE,MAAM,cAAcC,EAAE,KAAK;AAAA,EAAA,CACrC,GAGGI,KACJhB,IACIiB,EAAYR,GAAeT,GAAa;AAAA,IACtC,MAAM,CAAC,QAAQ,SAAS,OAAO;AAAA,IAC/B,WAAWiB,EAAY,SAAS;AAAA,EACjC,CAAA,IACDR,GACJ,MAAM,GAAGrB,CAAmB,GAGxB8B,IACJ7B,EAAY,KAAKW,CAAW,KAC5B,CAACT,EAAa,KAAK,CAAC4B,MAAMA,EAAE,SAASnB,CAAW,KAChDJ,MAAS,YAGLwB,IAAc,MAAM;AACxB,IAAAhB,EAAU,EAAI,GACdE,EAAoB,EAAE;AAAA,EACxB,GAGMe,IAAa,MAAM;AAEvB,eAAW,MAAM;AACf,MAAAjB,EAAU,EAAK,GACfE,EAAoB,EAAE;AAAA,OACrB,GAAG;AAAA,EACR,GAGMgB,IAAoB,CAAC,MAAqC;AAC/C,IAAArB,EAAA,EAAE,OAAO,KAAK,GAC7BK,EAAoB,EAAE,GACtBF,EAAU,EAAI;AAAA,EAChB,GAGMmB,IAAgB,CAAC,MAAuC;;AAC5D,QAAI,CAACpB,KAAUa,EAAgB,WAAW,GAAG;AAE3C,MAAI,EAAE,QAAQ,WAAWA,EAAgB,SAAS,MAChD,EAAE,eAAe,GACEQ,EAAAR,EAAgB,CAAC,CAAC;AAEvC;AAAA,IAAA;AAGF,YAAQ,EAAE,KAAK;AAAA,MACb,KAAK;AACH,UAAE,eAAe,GACGV,EAAA,CAACmB,MAAUA,IAAOT,EAAgB,SAAS,IAAIS,IAAO,IAAIA,CAAK;AACnF;AAAA,MACF,KAAK;AACH,UAAE,eAAe,GACjBnB,EAAoB,CAACmB,MAAUA,IAAO,IAAIA,IAAO,IAAI,EAAG;AACxD;AAAA,MACF,KAAK;AACH,UAAE,eAAe,GACbpB,KAAoB,KAAKA,IAAmBW,EAAgB,SAC3CQ,EAAAR,EAAgBX,CAAgB,CAAC,IAC3CW,EAAgB,SAAS,KAEfQ,EAAAR,EAAgB,CAAC,CAAC;AAEvC;AAAA,MACF,KAAK;AACH,QAAAZ,EAAU,EAAK,GACfE,EAAoB,EAAE,IACtBoB,IAAAnB,EAAS,YAAT,QAAAmB,EAAkB,QAElB,EAAE,gBAAgB;AAClB;AAAA,IAAA;AAAA,EAEN,GAGMF,IAAqB,CAACd,MAAwB;;AAClD,IAAAb,EAAea,GAAQ,EAAE,GACzBT,EAAe,EAAE,GACjBG,EAAU,EAAK,GACfE,EAAoB,EAAE,IACtBoB,IAAAnB,EAAS,YAAT,QAAAmB,EAAkB;AAAA,EACpB,GAGMC,IAAoB,MAAM;;AAC9B,IAAA9B;AAAA,MACE;AAAA,QACE,MAAMG;AAAA,QACN,OAAOA;AAAA,QACP,OAAOA;AAAA,QACP,WAAW;AAAA,MACb;AAAA,MACA;AAAA,IACF,GACAC,EAAe,EAAE,GACjBG,EAAU,EAAK,GACfE,EAAoB,EAAE,IACtBoB,IAAAnB,EAAS,YAAT,QAAAmB,EAAkB;AAAA,EACpB;AAEA,SACGE,gBAAAA,EAAA,KAAAC,GAAA,EAAkB,GAAG9B,GACpB,UAAA;AAAA,IAAA+B,gBAAAA,EAAA;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAKxB;AAAA,QACL,OAAOP;AAAA,QACP,aAAAN;AAAA,QACA,UAAAC;AAAA,QACA,SAASyB;AAAA,QACT,SAASA;AAAA,QACT,QAAQC;AAAA,QACR,UAAUC;AAAA,QACV,WAAWC;AAAA,QACX,OAAO,EAAE,OAAO,OAAO;AAAA,MAAA;AAAA,IACzB;AAAA,IAECpB,MAAWa,EAAgB,SAAS,KAAKE,MACxCU,gBAAAA,EAAA;AAAA,MAACI;AAAAA,MAAA;AAAA,QACE,GAAGlC,KAAA,gBAAAA,EAAI;AAAA,QACR,WAAWmC,GAAKP,IAAA5B,KAAA,gBAAAA,EAAI,SAAJ,gBAAA4B,EAAU,WAAW,EAAE,YAAY,CAACjC,GAAO;AAAA,QAE1D,UAAA;AAAA,UAAgBuB,EAAA,IAAI,CAACN,GAAQwB,MAC5BJ,gBAAAA,EAAA;AAAA,YAACK;AAAA,YAAA;AAAA,cAEC,MAAMzB,EAAO;AAAA,cACb,OAAOA,EAAO;AAAA,cACd,WAAWA,EAAO;AAAA,cAClB,SAAS;AAAA,cACT,MAAM;AAAA,cACN,cAAYwB;AAAA,cACZ,WAAWA,MAAU7B,IAAmB,gBAAgB;AAAA,cACxD,OAAO,EAAE,QAAQ,UAAU;AAAA,cAC3B,SAAS,MAAMmB,EAAmBd,CAAM;AAAA,cACxC,cAAc,MAAMJ,EAAoB4B,CAAK;AAAA,cAC7C,WAAS;AAAA,cACT,gBAAc;AAAA,YAAA;AAAA,YAZTxB,EAAO;AAAA,UAAA,CAgBf;AAAA,UAGAQ,KACCY,gBAAAA,EAAA;AAAA,YAACK;AAAA,YAAA;AAAA,cACC,MAAMnC;AAAA,cACN,OAAOA;AAAA,cACP,WAAU;AAAA,cACV,SAAS;AAAA,cACT,MAAM;AAAA,cACN,cAAYgB,EAAgB;AAAA,cAC5B,WAAWA,EAAgB,WAAWX,IAAmB,gBAAgB;AAAA,cACzE,OAAO,EAAE,QAAQ,UAAU;AAAA,cAC3B,SAASsB;AAAA,cACT,cAAc,MAAMrB,EAAoBU,EAAgB,MAAM;AAAA,cAC9D,WAAS;AAAA,cACT,gBAAc;AAAA,YAAA;AAAA,UAChB;AAAA,UAGDA,EAAgB,WAAW5B,2BACzB,MAAG,EAAA,WAAU,OAAM,UAAmD,sDAAA,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAE3E,GAEJ;AAEJ;"}
@@ -0,0 +1,39 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("styled-components"),r=o.div`
2
+ position: relative;
3
+ width: 100%;
4
+
5
+ input {
6
+ min-height: 32px;
7
+ max-height: 32px;
8
+ }
9
+ `,e=o.ul`
10
+ position: absolute;
11
+ top: 100%;
12
+ left: 0;
13
+ right: 0;
14
+ background-color: var(--md-sys-color-surface-container-low);
15
+ border: 1px solid var(--md-sys-color-outline-variant);
16
+ border-top: none;
17
+ border-radius: 0 0 var(--border-radius-m) var(--border-radius-m);
18
+ overflow-y: auto;
19
+ z-index: 1000;
20
+ list-style: none;
21
+ margin: 0;
22
+ padding: var(--padding-s);
23
+ max-height: 150px;
24
+
25
+ &.no-owner {
26
+ max-height: 118px;
27
+ }
28
+
29
+ /* Add highlighting styles for AccessUser components */
30
+ .highlighted {
31
+ background-color: var(--md-sys-color-surface-container-high-hover);
32
+ border-radius: var(--border-radius-m);
33
+ }
34
+
35
+ .tip {
36
+ color: var(--md-sys-color-outline);
37
+ }
38
+ `;exports.Container=r;exports.SuggestionsList=e;
39
+ //# sourceMappingURL=AccessSearchInput.styled.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessSearchInput.styled.cjs.js","sources":["../../../../../src/components/AccessSearchInput/AccessSearchInput.styled.ts"],"sourcesContent":["import styled from \"styled-components\";\n\nexport const Container = styled.div`\n position: relative;\n width: 100%;\n\n input {\n min-height: 32px;\n max-height: 32px;\n }\n`;\n\nexport const SuggestionsList = styled.ul`\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background-color: var(--md-sys-color-surface-container-low);\n border: 1px solid var(--md-sys-color-outline-variant);\n border-top: none;\n border-radius: 0 0 var(--border-radius-m) var(--border-radius-m);\n overflow-y: auto;\n z-index: 1000;\n list-style: none;\n margin: 0;\n padding: var(--padding-s);\n max-height: 150px;\n\n &.no-owner {\n max-height: 118px;\n }\n\n /* Add highlighting styles for AccessUser components */\n .highlighted {\n background-color: var(--md-sys-color-surface-container-high-hover);\n border-radius: var(--border-radius-m);\n }\n\n .tip {\n color: var(--md-sys-color-outline);\n }\n`;\n"],"names":["Container","styled","SuggestionsList"],"mappings":"qHAEaA,EAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUnBC,EAAkBD,EAAO;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"}
@@ -0,0 +1,44 @@
1
+ import o from "styled-components";
2
+ const i = o.div`
3
+ position: relative;
4
+ width: 100%;
5
+
6
+ input {
7
+ min-height: 32px;
8
+ max-height: 32px;
9
+ }
10
+ `, e = o.ul`
11
+ position: absolute;
12
+ top: 100%;
13
+ left: 0;
14
+ right: 0;
15
+ background-color: var(--md-sys-color-surface-container-low);
16
+ border: 1px solid var(--md-sys-color-outline-variant);
17
+ border-top: none;
18
+ border-radius: 0 0 var(--border-radius-m) var(--border-radius-m);
19
+ overflow-y: auto;
20
+ z-index: 1000;
21
+ list-style: none;
22
+ margin: 0;
23
+ padding: var(--padding-s);
24
+ max-height: 150px;
25
+
26
+ &.no-owner {
27
+ max-height: 118px;
28
+ }
29
+
30
+ /* Add highlighting styles for AccessUser components */
31
+ .highlighted {
32
+ background-color: var(--md-sys-color-surface-container-high-hover);
33
+ border-radius: var(--border-radius-m);
34
+ }
35
+
36
+ .tip {
37
+ color: var(--md-sys-color-outline);
38
+ }
39
+ `;
40
+ export {
41
+ i as Container,
42
+ e as SuggestionsList
43
+ };
44
+ //# sourceMappingURL=AccessSearchInput.styled.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessSearchInput.styled.es.js","sources":["../../../../../src/components/AccessSearchInput/AccessSearchInput.styled.ts"],"sourcesContent":["import styled from \"styled-components\";\n\nexport const Container = styled.div`\n position: relative;\n width: 100%;\n\n input {\n min-height: 32px;\n max-height: 32px;\n }\n`;\n\nexport const SuggestionsList = styled.ul`\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n background-color: var(--md-sys-color-surface-container-low);\n border: 1px solid var(--md-sys-color-outline-variant);\n border-top: none;\n border-radius: 0 0 var(--border-radius-m) var(--border-radius-m);\n overflow-y: auto;\n z-index: 1000;\n list-style: none;\n margin: 0;\n padding: var(--padding-s);\n max-height: 150px;\n\n &.no-owner {\n max-height: 118px;\n }\n\n /* Add highlighting styles for AccessUser components */\n .highlighted {\n background-color: var(--md-sys-color-surface-container-high-hover);\n border-radius: var(--border-radius-m);\n }\n\n .tip {\n color: var(--md-sys-color-outline);\n }\n`;\n"],"names":["Container","styled","SuggestionsList"],"mappings":";AAEO,MAAMA,IAAYC,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAUnBC,IAAkBD,EAAO;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;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("../../../../_virtual/jsx-runtime.cjs.js"),A=require("react"),L=require("./AccessUser.styled.cjs.js"),R=require("../ShareOptionIcon/ShareOptionIcon.cjs.js"),o=require("clsx"),N={0:"No access",10:"Viewer",20:"Editor",30:"Admin"},U=A.forwardRef(({name:r,label:t,icon:i,shareType:e,isMe:a,isOwner:x,isCompact:u,isSearchResult:n,labelChildren:m,children:l,className:E,...j},d)=>{const c=e==="user"||e==="guest",p=c||n,S=c?r:e;return s.jsxRuntimeExports.jsxs(L.User,{...j,ref:d,className:o(E,{compact:u}),children:[s.jsxRuntimeExports.jsx(R.ShareOptionIcon,{shareType:e,name:r,label:t,icon:i}),s.jsxRuntimeExports.jsxs("span",{className:"title-label",children:[t||r,a?s.jsxRuntimeExports.jsx("span",{className:"name",children:"(you)"}):p&&s.jsxRuntimeExports.jsx("span",{className:o("name",{"float-right":n}),children:S}),m]}),l,x&&s.jsxRuntimeExports.jsx("span",{className:"owner",children:"Owner"})]})});exports.ACCESS_LEVEL_LABELS=N;exports.AccessUser=U;
2
+ //# sourceMappingURL=AccessUser.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessUser.cjs.js","sources":["../../../../../src/components/AccessUser/AccessUser.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport * as Styled from './AccessUser.styled'\nimport { ShareOptionIcon } from '../ShareOptionIcon'\nimport clsx from 'clsx'\n\nexport const ACCESS_LEVEL_LABELS = {\n 0: 'No access',\n 10: 'Viewer',\n 20: 'Editor',\n 30: 'Admin',\n}\n\nexport type AccessLevel = 0 | 10 | 20 | 30\n\nexport interface AccessUser {\n value: string // unique identifier for the user or group\n name: string\n label?: string\n shareType?: string\n icon?: string // optional icon for the user\n accessLevel?: AccessLevel // access level (optional for display-only usage)\n isOwner?: boolean // if this user is the owner\n isMe?: boolean // if this user is the current user\n}\n\nexport interface AccessUserProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<AccessUser, 'icon' | 'name' | 'label' | 'shareType' | 'isMe' | 'isOwner'> {\n labelChildren?: React.ReactNode // Custom label content\n children?: React.ReactNode // Allow children for controls like dropdown/buttons\n isCompact?: boolean // if true, use compact styling\n isSearchResult?: boolean // if true, indicates this is a search result item\n}\n\nexport const AccessUser = forwardRef<HTMLDivElement, AccessUserProps>(\n (\n {\n name,\n label,\n icon,\n shareType,\n isMe,\n isOwner,\n isCompact,\n isSearchResult,\n labelChildren,\n children,\n className,\n ...props\n },\n ref,\n ) => {\n const isUser = shareType === 'user' || shareType === 'guest'\n const showUsername = isUser || isSearchResult\n const userName = isUser ? name : shareType\n\n return (\n <Styled.User {...props} ref={ref} className={clsx(className, { compact: isCompact })}>\n <ShareOptionIcon shareType={shareType} name={name} label={label} icon={icon} />\n <span className=\"title-label\">\n {label || name}\n {isMe ? (\n <span className={'name'}>(you)</span>\n ) : (\n showUsername && (\n <span className={clsx('name', { 'float-right': isSearchResult })}>{userName}</span>\n )\n )}\n {labelChildren}\n </span>\n {children}\n {isOwner && <span className=\"owner\">Owner</span>}\n </Styled.User>\n )\n },\n)\n"],"names":["ACCESS_LEVEL_LABELS","AccessUser","forwardRef","name","label","icon","shareType","isMe","isOwner","isCompact","isSearchResult","labelChildren","children","className","props","ref","isUser","showUsername","userName","jsxs","Styled.User","clsx","jsx","ShareOptionIcon"],"mappings":"+QAKaA,EAAsB,CACjC,EAAG,YACH,GAAI,SACJ,GAAI,SACJ,GAAI,OACN,EAwBaC,EAAaC,EAAA,WACxB,CACE,CACE,KAAAC,EACA,MAAAC,EACA,KAAAC,EACA,UAAAC,EACA,KAAAC,EACA,QAAAC,EACA,UAAAC,EACA,eAAAC,EACA,cAAAC,EACA,SAAAC,EACA,UAAAC,EACA,GAAGC,GAELC,IACG,CACG,MAAAC,EAASV,IAAc,QAAUA,IAAc,QAC/CW,EAAeD,GAAUN,EACzBQ,EAAWF,EAASb,EAAOG,EAEjC,OACGa,EAAA,kBAAA,KAAAC,EAAA,KAAA,CAAa,GAAGN,EAAO,IAAAC,EAAU,UAAWM,EAAKR,EAAW,CAAE,QAASJ,CAAW,CAAA,EACjF,SAAA,CAAAa,EAAA,kBAAA,IAACC,EAAgB,gBAAA,CAAA,UAAAjB,EAAsB,KAAAH,EAAY,MAAAC,EAAc,KAAAC,EAAY,EAC7Ec,EAAAA,kBAAAA,KAAC,OAAK,CAAA,UAAU,cACb,SAAA,CAASf,GAAAD,EACTI,EACEe,EAAAA,kBAAAA,IAAA,OAAA,CAAK,UAAW,OAAQ,SAAA,QAAK,EAE9BL,GACEK,EAAAA,kBAAAA,IAAC,OAAK,CAAA,UAAWD,EAAK,OAAQ,CAAE,cAAeX,EAAgB,EAAI,SAASQ,EAAA,EAG/EP,CAAA,EACH,EACCC,EACAJ,GAAWc,EAAA,kBAAA,IAAC,OAAK,CAAA,UAAU,QAAQ,SAAK,OAAA,CAAA,CAAA,EAC3C,CAAA,CAGN"}
@@ -0,0 +1,43 @@
1
+ import { j as s } from "../../../../_virtual/jsx-runtime.es.js";
2
+ import { forwardRef as u } from "react";
3
+ import { User as w } from "./AccessUser.styled.es.js";
4
+ import { ShareOptionIcon as h } from "../ShareOptionIcon/ShareOptionIcon.es.js";
5
+ import t from "clsx";
6
+ const C = {
7
+ 0: "No access",
8
+ 10: "Viewer",
9
+ 20: "Editor",
10
+ 30: "Admin"
11
+ }, O = u(
12
+ ({
13
+ name: o,
14
+ label: e,
15
+ icon: m,
16
+ shareType: r,
17
+ isMe: a,
18
+ isOwner: i,
19
+ isCompact: l,
20
+ isSearchResult: c,
21
+ labelChildren: p,
22
+ children: x,
23
+ className: d,
24
+ ...f
25
+ }, j) => {
26
+ const n = r === "user" || r === "guest", N = n || c, E = n ? o : r;
27
+ return /* @__PURE__ */ s.jsxs(w, { ...f, ref: j, className: t(d, { compact: l }), children: [
28
+ /* @__PURE__ */ s.jsx(h, { shareType: r, name: o, label: e, icon: m }),
29
+ /* @__PURE__ */ s.jsxs("span", { className: "title-label", children: [
30
+ e || o,
31
+ a ? /* @__PURE__ */ s.jsx("span", { className: "name", children: "(you)" }) : N && /* @__PURE__ */ s.jsx("span", { className: t("name", { "float-right": c }), children: E }),
32
+ p
33
+ ] }),
34
+ x,
35
+ i && /* @__PURE__ */ s.jsx("span", { className: "owner", children: "Owner" })
36
+ ] });
37
+ }
38
+ );
39
+ export {
40
+ C as ACCESS_LEVEL_LABELS,
41
+ O as AccessUser
42
+ };
43
+ //# sourceMappingURL=AccessUser.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessUser.es.js","sources":["../../../../../src/components/AccessUser/AccessUser.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport * as Styled from './AccessUser.styled'\nimport { ShareOptionIcon } from '../ShareOptionIcon'\nimport clsx from 'clsx'\n\nexport const ACCESS_LEVEL_LABELS = {\n 0: 'No access',\n 10: 'Viewer',\n 20: 'Editor',\n 30: 'Admin',\n}\n\nexport type AccessLevel = 0 | 10 | 20 | 30\n\nexport interface AccessUser {\n value: string // unique identifier for the user or group\n name: string\n label?: string\n shareType?: string\n icon?: string // optional icon for the user\n accessLevel?: AccessLevel // access level (optional for display-only usage)\n isOwner?: boolean // if this user is the owner\n isMe?: boolean // if this user is the current user\n}\n\nexport interface AccessUserProps\n extends React.HTMLAttributes<HTMLDivElement>,\n Pick<AccessUser, 'icon' | 'name' | 'label' | 'shareType' | 'isMe' | 'isOwner'> {\n labelChildren?: React.ReactNode // Custom label content\n children?: React.ReactNode // Allow children for controls like dropdown/buttons\n isCompact?: boolean // if true, use compact styling\n isSearchResult?: boolean // if true, indicates this is a search result item\n}\n\nexport const AccessUser = forwardRef<HTMLDivElement, AccessUserProps>(\n (\n {\n name,\n label,\n icon,\n shareType,\n isMe,\n isOwner,\n isCompact,\n isSearchResult,\n labelChildren,\n children,\n className,\n ...props\n },\n ref,\n ) => {\n const isUser = shareType === 'user' || shareType === 'guest'\n const showUsername = isUser || isSearchResult\n const userName = isUser ? name : shareType\n\n return (\n <Styled.User {...props} ref={ref} className={clsx(className, { compact: isCompact })}>\n <ShareOptionIcon shareType={shareType} name={name} label={label} icon={icon} />\n <span className=\"title-label\">\n {label || name}\n {isMe ? (\n <span className={'name'}>(you)</span>\n ) : (\n showUsername && (\n <span className={clsx('name', { 'float-right': isSearchResult })}>{userName}</span>\n )\n )}\n {labelChildren}\n </span>\n {children}\n {isOwner && <span className=\"owner\">Owner</span>}\n </Styled.User>\n )\n },\n)\n"],"names":["ACCESS_LEVEL_LABELS","AccessUser","forwardRef","name","label","icon","shareType","isMe","isOwner","isCompact","isSearchResult","labelChildren","children","className","props","ref","isUser","showUsername","userName","jsxs","Styled.User","clsx","jsx","ShareOptionIcon"],"mappings":";;;;;AAKO,MAAMA,IAAsB;AAAA,EACjC,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAwBaC,IAAaC;AAAA,EACxB,CACE;AAAA,IACE,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,WAAAC;AAAA,IACA,MAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,GAAGC;AAAA,KAELC,MACG;AACG,UAAAC,IAASV,MAAc,UAAUA,MAAc,SAC/CW,IAAeD,KAAUN,GACzBQ,IAAWF,IAASb,IAAOG;AAEjC,WACGa,gBAAAA,EAAA,KAAAC,GAAA,EAAa,GAAGN,GAAO,KAAAC,GAAU,WAAWM,EAAKR,GAAW,EAAE,SAASJ,EAAW,CAAA,GACjF,UAAA;AAAA,MAAAa,gBAAAA,EAAA,IAACC,GAAgB,EAAA,WAAAjB,GAAsB,MAAAH,GAAY,OAAAC,GAAc,MAAAC,GAAY;AAAA,MAC7Ec,gBAAAA,EAAAA,KAAC,QAAK,EAAA,WAAU,eACb,UAAA;AAAA,QAASf,KAAAD;AAAA,QACTI,IACEe,gBAAAA,EAAAA,IAAA,QAAA,EAAK,WAAW,QAAQ,UAAA,SAAK,IAE9BL,KACEK,gBAAAA,EAAAA,IAAC,QAAK,EAAA,WAAWD,EAAK,QAAQ,EAAE,eAAeX,GAAgB,GAAI,UAASQ,GAAA;AAAA,QAG/EP;AAAA,MAAA,GACH;AAAA,MACCC;AAAA,MACAJ,KAAWc,gBAAAA,EAAA,IAAC,QAAK,EAAA,WAAU,SAAQ,UAAK,QAAA,CAAA;AAAA,IAAA,GAC3C;AAAA,EAAA;AAGN;"}
@@ -0,0 +1,46 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("styled-components"),r=e.div`
2
+ display: flex;
3
+ align-items: center;
4
+ gap: var(--base-gap-medium);
5
+ padding: var(--padding-s) var(--padding-m);
6
+ border-radius: var(--border-radius-m);
7
+ min-height: 40px;
8
+
9
+ &.compact {
10
+ min-height: 32px;
11
+ padding: var(--padding-s);
12
+ }
13
+
14
+ &:hover {
15
+ background-color: var(--md-sys-color-surface-container-high-hover);
16
+ }
17
+
18
+ .title-label {
19
+ flex: 1;
20
+ display: flex;
21
+ }
22
+
23
+ .name {
24
+ color: var(--md-sys-color-outline);
25
+ padding-left: var(--base-gap-small);
26
+ }
27
+ .float-right {
28
+ margin-left: auto;
29
+ }
30
+
31
+ .owner,
32
+ .suffix {
33
+ color: var(--md-sys-color-outline);
34
+ }
35
+
36
+ .icon {
37
+ font-size: 24px;
38
+ user-select: none;
39
+ }
40
+
41
+ .remove.hasIcon {
42
+ padding: 2px;
43
+ font-size: 20px;
44
+ }
45
+ `;exports.User=r;
46
+ //# sourceMappingURL=AccessUser.styled.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessUser.styled.cjs.js","sources":["../../../../../src/components/AccessUser/AccessUser.styled.ts"],"sourcesContent":["import styled from 'styled-components'\n\nexport const User = styled.div`\n display: flex;\n align-items: center;\n gap: var(--base-gap-medium);\n padding: var(--padding-s) var(--padding-m);\n border-radius: var(--border-radius-m);\n min-height: 40px;\n\n &.compact {\n min-height: 32px;\n padding: var(--padding-s);\n }\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n\n .title-label {\n flex: 1;\n display: flex;\n }\n\n .name {\n color: var(--md-sys-color-outline);\n padding-left: var(--base-gap-small);\n }\n .float-right {\n margin-left: auto;\n }\n\n .owner,\n .suffix {\n color: var(--md-sys-color-outline);\n }\n\n .icon {\n font-size: 24px;\n user-select: none;\n }\n\n .remove.hasIcon {\n padding: 2px;\n font-size: 20px;\n }\n`\n"],"names":["User","styled"],"mappings":"qHAEaA,EAAOC,EAAO;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;AAAA;AAAA;AAAA"}
@@ -0,0 +1,50 @@
1
+ import a from "styled-components";
2
+ const r = a.div`
3
+ display: flex;
4
+ align-items: center;
5
+ gap: var(--base-gap-medium);
6
+ padding: var(--padding-s) var(--padding-m);
7
+ border-radius: var(--border-radius-m);
8
+ min-height: 40px;
9
+
10
+ &.compact {
11
+ min-height: 32px;
12
+ padding: var(--padding-s);
13
+ }
14
+
15
+ &:hover {
16
+ background-color: var(--md-sys-color-surface-container-high-hover);
17
+ }
18
+
19
+ .title-label {
20
+ flex: 1;
21
+ display: flex;
22
+ }
23
+
24
+ .name {
25
+ color: var(--md-sys-color-outline);
26
+ padding-left: var(--base-gap-small);
27
+ }
28
+ .float-right {
29
+ margin-left: auto;
30
+ }
31
+
32
+ .owner,
33
+ .suffix {
34
+ color: var(--md-sys-color-outline);
35
+ }
36
+
37
+ .icon {
38
+ font-size: 24px;
39
+ user-select: none;
40
+ }
41
+
42
+ .remove.hasIcon {
43
+ padding: 2px;
44
+ font-size: 20px;
45
+ }
46
+ `;
47
+ export {
48
+ r as User
49
+ };
50
+ //# sourceMappingURL=AccessUser.styled.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccessUser.styled.es.js","sources":["../../../../../src/components/AccessUser/AccessUser.styled.ts"],"sourcesContent":["import styled from 'styled-components'\n\nexport const User = styled.div`\n display: flex;\n align-items: center;\n gap: var(--base-gap-medium);\n padding: var(--padding-s) var(--padding-m);\n border-radius: var(--border-radius-m);\n min-height: 40px;\n\n &.compact {\n min-height: 32px;\n padding: var(--padding-s);\n }\n\n &:hover {\n background-color: var(--md-sys-color-surface-container-high-hover);\n }\n\n .title-label {\n flex: 1;\n display: flex;\n }\n\n .name {\n color: var(--md-sys-color-outline);\n padding-left: var(--base-gap-small);\n }\n .float-right {\n margin-left: auto;\n }\n\n .owner,\n .suffix {\n color: var(--md-sys-color-outline);\n }\n\n .icon {\n font-size: 24px;\n user-select: none;\n }\n\n .remove.hasIcon {\n padding: 2px;\n font-size: 20px;\n }\n`\n"],"names":["User","styled"],"mappings":";AAEO,MAAMA,IAAOC,EAAO;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;AAAA;AAAA;AAAA;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../../../_virtual/jsx-runtime.cjs.js"),k=require("react"),a=require("@ynput/ayon-react-components"),T=require("lodash"),P=require("./components/MinMaxField.cjs.js"),A=require("../EnumEditor/EnumEditor.cjs.js");require("../EnumEditor/EnumEditor.styled.cjs.js");const B=[{value:"project",label:"Project"},{value:"folder",label:"Folder"},{value:"task",label:"Task"},{value:"product",label:"Product"},{value:"version",label:"Version"},{value:"representation",label:"Representation"},{value:"user",label:"User"}],K=[{value:"description",scope:null},{value:"example",scope:null},{value:"default",scope:["project"]},{value:"inherit",scope:null}],S={string:{value:"string",label:"String",fields:["minLength","maxLength","enum","regex"]},integer:{value:"integer",label:"Integer",fields:["ge","gt","le","lt"]},float:{value:"float",label:"Decimal number",fields:["ge","gt","le","lt"]},list_of_strings:{value:"list_of_strings",label:"List Of Strings",fields:["minItems","maxItems","enum"]},boolean:{value:"boolean",label:"Boolean",fields:[],exclude:["example"]}},V={name:"",scope:["folder","task"],builtin:!1,position:0,data:{type:"string",title:"",description:"",example:"",default:void 0,enum:void 0,minLength:void 0,maxLength:void 0,regex:"",minItems:void 0,maxItems:void 0,ge:void 0,gt:void 0,le:void 0,lt:void 0}},z=(u,c)=>{const l=JSON.parse(JSON.stringify(V)),g=["name"];Object.keys(l).forEach(r=>{!g.includes(r)&&u.includes(r)&&r!=="data"&&delete l[r]});const d=["title"];return l.data&&Object.keys(l.data).forEach(r=>{!d.includes(r)&&u.includes(r)&&delete l.data[r]}),c&&Object.keys(c).forEach(r=>{const p=r;p!=="data"&&u.includes(p)||(p==="data"&&c.data&&l.data?l.data={...l.data,...c.data}:c[p]!==void 0&&(l[p]=c[p]))}),l},J=({attribute:u,existingNames:c,error:l="",isUpdating:g,excludes:d=[],onHide:r,onEdit:p,onDelete:I})=>{var O,N;const q=z(d,{position:c.length}),[t,b]=k.useState(u||q);k.useEffect(()=>{u&&b(u)},[u]);const E=!u,y=(e,s)=>{b(n=>n&&{...n,[e]:s})},h=(e,s)=>{b(n=>{if(!n||!n.data)return n;const m={...n.data,[e]:s};return{...n,data:m}})};let j="";t&&E&&(c.includes(t.name)?j="This attribute already exists":t.name.match("^[a-zA-Z_]{2,64}$")||(l="Invalid attribute name"));const w=()=>{t&&p(t)},F=i.jsxRuntimeExports.jsxs("div",{style:{display:"flex",width:"100%",flexDirection:"row"},children:[I&&u&&i.jsxRuntimeExports.jsx(a.Button,{variant:"danger",label:"Delete attribute",icon:"delete",disabled:g,onClick:I}),i.jsxRuntimeExports.jsx(a.Spacer,{}),i.jsxRuntimeExports.jsx(a.SaveButton,{label:E?"Create Attribute":"Save Attribute",icon:"check",disabled:!!j||!t,active:!j&&!!t,saving:g,onClick:w})]});let R=[];if(K.forEach(e=>{var s;(!(e!=null&&e.scope)||(s=e==null?void 0:e.scope)!=null&&s.some(n=>{var m;return(m=t==null?void 0:t.scope)==null?void 0:m.includes(n)}))&&R.push(e.value)}),t!=null&&t.data.type&&S[t.data.type]){const e=S[t.data.type];R=[...R,...e.fields].filter(s=>{var n;return!((n=e.exclude)!=null&&n.includes(s))})}const C={enum:(e=[],s)=>i.jsxRuntimeExports.jsx(A.EnumEditor,{values:e,onChange:n=>{s(n!=null&&n.length?n:void 0)}}),inherit:(e,s)=>i.jsxRuntimeExports.jsx(a.InputSwitch,{checked:e,onChange:n=>s(n.target.checked)}),booleanDefault:(e,s)=>i.jsxRuntimeExports.jsx(a.InputSwitch,{checked:e,onChange:n=>s(n.target.checked)})},M=e=>{const s=e.target.value;h("title",s),E&&y("name",T.camelCase(s))};return i.jsxRuntimeExports.jsx(a.Dialog,{header:((O=t==null?void 0:t.data)==null?void 0:O.title)||(t==null?void 0:t.name)||"New attribute",footer:F,onClose:r,isOpen:!0,style:{width:700,zIndex:999},size:"full",onKeyDown:e=>{e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),w())},children:t&&i.jsxRuntimeExports.jsxs(a.FormLayout,{children:[!d.includes("title")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Title",children:i.jsxRuntimeExports.jsx(a.InputText,{value:t==null?void 0:t.data.title,onChange:M,autoFocus:!0})},"title"),!d.includes("name")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Name",children:i.jsxRuntimeExports.jsx(a.LockedInput,{value:t.name,disabled:!E,onSubmit:e=>y("name",e),label:"name"})},"name"),!d.includes("scope")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Scope",children:i.jsxRuntimeExports.jsx(a.Dropdown,{options:B,disabled:t.builtin,value:t.scope||[],onChange:e=>y("scope",e),multiSelect:!0,widthExpand:!0})}),!d.includes("type")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Type",children:i.jsxRuntimeExports.jsx(a.Dropdown,{value:[(N=t==null?void 0:t.data)==null?void 0:N.type],disabled:t.builtin,options:Object.values(S),onChange:e=>h("type",e[0]),minSelected:1,widthExpand:!0})}),R.map(e=>{var m,L;if(d.includes(e))return null;let s=null,n=T.upperFirst(e);if(e==="enum"||e==="inherit"){const o=C[e];s=o(t==null?void 0:t.data[e],v=>h(e,v))}else if(e==="default"&&((m=t==null?void 0:t.data)==null?void 0:m.type)==="boolean")s=C.booleanDefault(t==null?void 0:t.data[e],o=>h(e,o));else if(["ge","gt","le","lt"].includes(e)){if(["gt","lt"].includes(e))return null;s=i.jsxRuntimeExports.jsx(P.MinMaxField,{value:t==null?void 0:t.data,isMin:e==="ge",isFloat:((L=t==null?void 0:t.data)==null?void 0:L.type)==="float",onChange:o=>{const v=o.ge!==void 0?Number(o.ge):void 0,f=o.le!==void 0?Number(o.le):void 0;o.ge!==void 0&&isNaN(v)||o.le!==void 0&&isNaN(f)||b(x=>{if(!x||!x.data)return x;const _={...x.data,...o};return{...x,data:_}})}}),n=e==="ge"?"Min":"Max"}else{const o=v=>{const f=v.target.value;switch(e){case"minLength":case"maxLength":case"minItems":case"maxItems":{const x=parseInt(f,10);h(e,isNaN(x)?void 0:x);break}default:h(e,f);break}};s=i.jsxRuntimeExports.jsx(a.InputText,{value:String((t==null?void 0:t.data[e])??""),onChange:o})}return i.jsxRuntimeExports.jsx(a.FormRow,{label:n,style:{alignItems:"flex-start"},children:s},e)}),i.jsxRuntimeExports.jsx("span",{children:(j||l)&&i.jsxRuntimeExports.jsx("span",{className:"form-error-text",children:j||l})})]})})};exports.AttributeEditor=J;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("../../../../_virtual/jsx-runtime.cjs.js"),k=require("react"),a=require("@ynput/ayon-react-components"),T=require("lodash"),P=require("./components/MinMaxField.cjs.js"),A=require("../EnumEditor/EnumEditor.cjs.js");require("../EnumEditor/EnumEditor.styled.cjs.js");const B=[{value:"project",label:"Project"},{value:"folder",label:"Folder"},{value:"task",label:"Task"},{value:"product",label:"Product"},{value:"version",label:"Version"},{value:"representation",label:"Representation"},{value:"user",label:"User"}],K=[{value:"description",scope:null},{value:"example",scope:null},{value:"default",scope:["project"]},{value:"inherit",scope:null}],S={string:{value:"string",label:"String",fields:["minLength","maxLength","enum","regex"]},integer:{value:"integer",label:"Integer",fields:["ge","gt","le","lt"]},float:{value:"float",label:"Decimal number",fields:["ge","gt","le","lt"]},list_of_strings:{value:"list_of_strings",label:"List Of Strings",fields:["minItems","maxItems","enum"]},boolean:{value:"boolean",label:"Boolean",fields:[],exclude:["example"]},datetime:{value:"datetime",label:"Datetime",fields:[]}},V={name:"",scope:["folder","task"],builtin:!1,position:0,data:{type:"string",title:"",description:"",example:"",default:void 0,enum:void 0,minLength:void 0,maxLength:void 0,regex:"",minItems:void 0,maxItems:void 0,ge:void 0,gt:void 0,le:void 0,lt:void 0}},z=(u,c)=>{const l=JSON.parse(JSON.stringify(V)),g=["name"];Object.keys(l).forEach(r=>{!g.includes(r)&&u.includes(r)&&r!=="data"&&delete l[r]});const d=["title"];return l.data&&Object.keys(l.data).forEach(r=>{!d.includes(r)&&u.includes(r)&&delete l.data[r]}),c&&Object.keys(c).forEach(r=>{const p=r;p!=="data"&&u.includes(p)||(p==="data"&&c.data&&l.data?l.data={...l.data,...c.data}:c[p]!==void 0&&(l[p]=c[p]))}),l},J=({attribute:u,existingNames:c,error:l="",isUpdating:g,excludes:d=[],onHide:r,onEdit:p,onDelete:I})=>{var O,N;const q=z(d,{position:c.length}),[t,b]=k.useState(u||q);k.useEffect(()=>{u&&b(u)},[u]);const E=!u,y=(e,s)=>{b(n=>n&&{...n,[e]:s})},h=(e,s)=>{b(n=>{if(!n||!n.data)return n;const m={...n.data,[e]:s};return{...n,data:m}})};let j="";t&&E&&(c.includes(t.name)?j="This attribute already exists":t.name.match("^[a-zA-Z_]{2,64}$")||(l="Invalid attribute name"));const w=()=>{t&&p(t)},F=i.jsxRuntimeExports.jsxs("div",{style:{display:"flex",width:"100%",flexDirection:"row"},children:[I&&u&&i.jsxRuntimeExports.jsx(a.Button,{variant:"danger",label:"Delete attribute",icon:"delete",disabled:g,onClick:I}),i.jsxRuntimeExports.jsx(a.Spacer,{}),i.jsxRuntimeExports.jsx(a.SaveButton,{label:E?"Create Attribute":"Save Attribute",icon:"check",disabled:!!j||!t,active:!j&&!!t,saving:g,onClick:w})]});let R=[];if(K.forEach(e=>{var s;(!(e!=null&&e.scope)||(s=e==null?void 0:e.scope)!=null&&s.some(n=>{var m;return(m=t==null?void 0:t.scope)==null?void 0:m.includes(n)}))&&R.push(e.value)}),t!=null&&t.data.type&&S[t.data.type]){const e=S[t.data.type];R=[...R,...e.fields].filter(s=>{var n;return!((n=e.exclude)!=null&&n.includes(s))})}const C={enum:(e=[],s)=>i.jsxRuntimeExports.jsx(A.EnumEditor,{values:e,onChange:n=>{s(n!=null&&n.length?n:void 0)}}),inherit:(e,s)=>i.jsxRuntimeExports.jsx(a.InputSwitch,{checked:e,onChange:n=>s(n.target.checked)}),booleanDefault:(e,s)=>i.jsxRuntimeExports.jsx(a.InputSwitch,{checked:e,onChange:n=>s(n.target.checked)})},M=e=>{const s=e.target.value;h("title",s),E&&y("name",T.camelCase(s))};return i.jsxRuntimeExports.jsx(a.Dialog,{header:((O=t==null?void 0:t.data)==null?void 0:O.title)||(t==null?void 0:t.name)||"New attribute",footer:F,onClose:r,isOpen:!0,style:{width:700,zIndex:999},size:"full",onKeyDown:e=>{e.key==="Enter"&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),w())},children:t&&i.jsxRuntimeExports.jsxs(a.FormLayout,{children:[!d.includes("title")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Title",children:i.jsxRuntimeExports.jsx(a.InputText,{value:t==null?void 0:t.data.title,onChange:M,autoFocus:!0})},"title"),!d.includes("name")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Name",children:i.jsxRuntimeExports.jsx(a.LockedInput,{value:t.name,disabled:!E,onSubmit:e=>y("name",e),label:"name"})},"name"),!d.includes("scope")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Scope",children:i.jsxRuntimeExports.jsx(a.Dropdown,{options:B,disabled:t.builtin,value:t.scope||[],onChange:e=>y("scope",e),multiSelect:!0,widthExpand:!0})}),!d.includes("type")&&i.jsxRuntimeExports.jsx(a.FormRow,{label:"Type",children:i.jsxRuntimeExports.jsx(a.Dropdown,{value:[(N=t==null?void 0:t.data)==null?void 0:N.type],disabled:t.builtin,options:Object.values(S),onChange:e=>h("type",e[0]),minSelected:1,widthExpand:!0})}),R.map(e=>{var m,L;if(d.includes(e))return null;let s=null,n=T.upperFirst(e);if(e==="enum"||e==="inherit"){const o=C[e];s=o(t==null?void 0:t.data[e],v=>h(e,v))}else if(e==="default"&&((m=t==null?void 0:t.data)==null?void 0:m.type)==="boolean")s=C.booleanDefault(t==null?void 0:t.data[e],o=>h(e,o));else if(["ge","gt","le","lt"].includes(e)){if(["gt","lt"].includes(e))return null;s=i.jsxRuntimeExports.jsx(P.MinMaxField,{value:t==null?void 0:t.data,isMin:e==="ge",isFloat:((L=t==null?void 0:t.data)==null?void 0:L.type)==="float",onChange:o=>{const v=o.ge!==void 0?Number(o.ge):void 0,f=o.le!==void 0?Number(o.le):void 0;o.ge!==void 0&&isNaN(v)||o.le!==void 0&&isNaN(f)||b(x=>{if(!x||!x.data)return x;const _={...x.data,...o};return{...x,data:_}})}}),n=e==="ge"?"Min":"Max"}else{const o=v=>{const f=v.target.value;switch(e){case"minLength":case"maxLength":case"minItems":case"maxItems":{const x=parseInt(f,10);h(e,isNaN(x)?void 0:x);break}default:h(e,f);break}};s=i.jsxRuntimeExports.jsx(a.InputText,{value:String((t==null?void 0:t.data[e])??""),onChange:o})}return i.jsxRuntimeExports.jsx(a.FormRow,{label:n,style:{alignItems:"flex-start"},children:s},e)}),i.jsxRuntimeExports.jsx("span",{children:(j||l)&&i.jsxRuntimeExports.jsx("span",{className:"form-error-text",children:j||l})})]})})};exports.AttributeEditor=J;
2
2
  //# sourceMappingURL=AttributeEditor.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AttributeEditor.cjs.js","sources":["../../../../../src/components/AttributeEditor/AttributeEditor.tsx"],"sourcesContent":["import { FC, useEffect, useState } from 'react'\nimport {\n SaveButton,\n Spacer,\n FormLayout,\n FormRow,\n InputText,\n InputSwitch,\n LockedInput,\n Dropdown,\n Dialog,\n Button,\n} from '@ynput/ayon-react-components'\nimport { camelCase, upperFirst } from 'lodash'\nimport { MinMaxField } from './components'\nimport { EnumEditor } from '@shared/components/EnumEditor'\nimport { AttributeData, AttributeModel, AttributeEnumItem } from '@shared/api'\n\nconst SCOPE_OPTIONS = [\n { value: 'project', label: 'Project' },\n { value: 'folder', label: 'Folder' },\n { value: 'task', label: 'Task' },\n { value: 'product', label: 'Product' },\n { value: 'version', label: 'Version' },\n { value: 'representation', label: 'Representation' },\n { value: 'user', label: 'User' },\n]\n\n// Define types for constants\ninterface GlobalFieldEntry {\n value: keyof AttributeData\n scope: (AttributeModel['scope'] | '')[] | null\n}\n\nconst GLOBAL_FIELDS: GlobalFieldEntry[] = [\n { value: 'description', scope: null },\n { value: 'example', scope: null },\n // @ts-expect-error - project is not a scope?\n { value: 'default', scope: ['project'] },\n { value: 'inherit', scope: null },\n]\n\ninterface TypeOptionDef {\n value: AttributeData['type']\n label: string\n fields: (keyof AttributeData)[]\n exclude?: (keyof AttributeData)[]\n}\n\ninterface TypeOptionsMap {\n [key: string]: TypeOptionDef\n}\n\nconst TYPE_OPTIONS: TypeOptionsMap = {\n string: {\n value: 'string',\n label: 'String',\n fields: ['minLength', 'maxLength', 'enum', 'regex'],\n },\n integer: {\n value: 'integer',\n label: 'Integer',\n fields: ['ge', 'gt', 'le', 'lt'],\n },\n float: {\n value: 'float',\n label: 'Decimal number',\n fields: ['ge', 'gt', 'le', 'lt'],\n },\n list_of_strings: {\n value: 'list_of_strings',\n label: 'List Of Strings',\n fields: ['minItems', 'maxItems', 'enum'],\n },\n boolean: {\n value: 'boolean',\n label: 'Boolean',\n fields: [],\n exclude: ['example'],\n },\n}\n\ntype Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>\ntype PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\nexport type AttributeForm = PartialBy<AttributeModel, 'scope' | 'position'>\ntype Excludes = (keyof Omit<AttributeModel, 'data'> | keyof AttributeData)[]\n\nconst initFormData: AttributeForm = {\n name: '',\n scope: ['folder', 'task'],\n builtin: false,\n position: 0,\n data: {\n type: 'string',\n title: '',\n description: '',\n example: '',\n default: undefined,\n enum: undefined,\n minLength: undefined,\n maxLength: undefined,\n regex: '',\n minItems: undefined,\n maxItems: undefined,\n ge: undefined,\n gt: undefined,\n le: undefined,\n lt: undefined,\n },\n}\n\n// build the form data based on excludes and to update any data\nconst buildInitFormData = (excludes: Excludes, data?: Partial<AttributeForm>) => {\n // Create a deep clone of init form data\n const formData = JSON.parse(JSON.stringify(initFormData)) as AttributeForm\n\n // Filter out top-level excludes if not in required\n const required = ['name']\n Object.keys(formData).forEach((key) => {\n if (\n !required.includes(key) &&\n excludes.includes(key as keyof Omit<AttributeModel, 'data'>) &&\n key !== 'data'\n ) {\n delete formData[key as keyof AttributeForm]\n }\n })\n\n // Filter out data field excludes if not in in required\n const requiredData = ['title']\n if (formData.data) {\n Object.keys(formData.data).forEach((key) => {\n if (!requiredData.includes(key) && excludes.includes(key as keyof AttributeData)) {\n delete formData.data[key as keyof AttributeData]\n }\n })\n }\n\n // Merge with provided data if any\n if (data) {\n // Merge top-level fields\n Object.keys(data).forEach((key) => {\n const typedKey = key as keyof AttributeForm\n if (typedKey !== 'data' && excludes.includes(typedKey)) return\n\n if (typedKey === 'data' && data.data && formData.data) {\n // Deep merge of data fields\n formData.data = { ...formData.data, ...data.data }\n } else if (data[typedKey] !== undefined) {\n // @ts-ignore - We know these properties exist\n formData[typedKey] = data[typedKey]\n }\n })\n }\n\n return formData\n}\n\nexport interface AttributeEditorProps {\n attribute: AttributeForm | null\n existingNames: string[]\n error?: string\n isUpdating?: boolean\n excludes?: Excludes\n onHide: () => void\n onEdit: (attribute: AttributeForm) => void\n onDelete?: () => void\n}\n\nexport const AttributeEditor: FC<AttributeEditorProps> = ({\n attribute,\n existingNames,\n error = '',\n isUpdating,\n excludes = [],\n onHide,\n onEdit,\n onDelete,\n}) => {\n const initForm = buildInitFormData(excludes, { position: existingNames.length })\n const [formData, setFormData] = useState<AttributeForm | null>(attribute || initForm)\n\n useEffect(() => {\n if (!!attribute) setFormData(attribute)\n }, [attribute])\n\n const isNew = !attribute\n\n // const setTopLevelData = (key: string, value: string) => {\n const setTopLevelData = <K extends keyof Omit<AttributeModel, 'data'>>(\n key: K,\n value: AttributeModel[K],\n ) => {\n setFormData((d) => {\n if (!d) {\n return d\n }\n return { ...d, [key]: value }\n })\n }\n\n // const setData = (key, value) => {\n const setData = <K extends keyof AttributeData>(key: K, value: AttributeData[K]) => {\n setFormData((d) => {\n // Add a check for d and d.data\n if (!d || !d.data) {\n return d\n }\n const dt = { ...d.data, [key]: value }\n return { ...d, data: dt }\n })\n }\n\n let internalError = ''\n if (formData) {\n if (isNew) {\n if (existingNames.includes(formData.name)) internalError = 'This attribute already exists'\n else if (!formData.name.match('^[a-zA-Z_]{2,64}$')) error = 'Invalid attribute name'\n } // name validation\n }\n\n const handleSubmit = () => {\n if (formData) {\n onEdit(formData)\n }\n }\n\n const footer = (\n <div style={{ display: 'flex', width: '100%', flexDirection: 'row' }}>\n {onDelete && attribute && (\n <Button\n variant=\"danger\"\n label={'Delete attribute'}\n icon={'delete'}\n disabled={isUpdating}\n onClick={onDelete}\n />\n )}\n <Spacer />\n <SaveButton\n label={isNew ? 'Create Attribute' : 'Save Attribute'}\n icon={'check'}\n disabled={!!internalError || !formData}\n active={!internalError && !!formData}\n saving={isUpdating}\n onClick={handleSubmit}\n />\n </div>\n )\n\n let dataFields: (keyof AttributeData)[] = []\n\n // add global fields, only if scope are null (all) or the scope is included\n GLOBAL_FIELDS.forEach((globalField) => {\n // @ts-expect-error - project scope will never be found here?\n if (!globalField?.scope || globalField?.scope?.some((s) => formData?.scope?.includes(s))) {\n dataFields.push(globalField.value)\n }\n })\n\n if (formData?.data.type && TYPE_OPTIONS[formData.data.type]) {\n const typeOpt = TYPE_OPTIONS[formData.data.type]\n dataFields = [...dataFields, ...typeOpt.fields].filter((f) => !typeOpt.exclude?.includes(f))\n }\n\n type CustomFieldRenderer = (value: any, onChange: (newValue: any) => void) => JSX.Element | null\n const customFields: {\n enum: CustomFieldRenderer\n inherit: CustomFieldRenderer\n booleanDefault: CustomFieldRenderer\n } = {\n enum: (value = [], onChange) => (\n <EnumEditor\n values={value as AttributeEnumItem[]}\n onChange={(val) => {\n onChange(val?.length ? val : undefined)\n }}\n />\n ),\n inherit: (value, onChange) => (\n <InputSwitch\n checked={value}\n onChange={(e) => onChange((e.target as HTMLInputElement).checked)}\n />\n ),\n booleanDefault: (value, onChange) => (\n <InputSwitch\n checked={value}\n onChange={(e) => onChange((e.target as HTMLInputElement).checked)}\n />\n ),\n }\n\n const handleTitleChange = (e: React.ChangeEvent) => {\n const v = (e.target as HTMLInputElement).value\n setData('title', v)\n\n if (isNew) {\n setTopLevelData('name', camelCase(v))\n }\n }\n\n return (\n <Dialog\n header={formData?.data?.title || formData?.name || 'New attribute'}\n footer={footer}\n onClose={onHide}\n isOpen={true}\n style={{ width: 700, zIndex: 999 }}\n size=\"full\"\n onKeyDown={(e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) {\n e.preventDefault()\n handleSubmit()\n }\n }}\n >\n {formData && (\n <FormLayout>\n {!excludes.includes('title') && (\n <FormRow label={'Title'} key={'title'}>\n <InputText value={formData?.data['title']} onChange={handleTitleChange} autoFocus />\n </FormRow>\n )}\n {!excludes.includes('name') && (\n <FormRow label={'Name'} key={'name'}>\n <LockedInput\n value={formData.name}\n disabled={!isNew}\n onSubmit={(v) => setTopLevelData('name', v)}\n label=\"name\"\n />\n </FormRow>\n )}\n {!excludes.includes('scope') && (\n <FormRow label=\"Scope\">\n <Dropdown\n options={SCOPE_OPTIONS}\n disabled={formData.builtin}\n value={formData.scope || []}\n onChange={(v) => setTopLevelData('scope', v as AttributeModel['scope'])}\n multiSelect\n widthExpand\n />\n </FormRow>\n )}\n {!excludes.includes('type') && (\n <FormRow label=\"Type\">\n <Dropdown\n value={[formData?.data?.type]}\n disabled={formData.builtin}\n options={Object.values(TYPE_OPTIONS)}\n onChange={(v) => setData('type', v[0] as AttributeData['type'])}\n minSelected={1}\n widthExpand\n />\n </FormRow>\n )}\n {dataFields.map((field) => {\n // skip if field is excluded\n if (excludes.includes(field)) return null\n\n let fieldComp = null\n let fieldLabel = upperFirst(field)\n\n if (field === 'enum' || field === 'inherit') {\n const renderer = customFields[field as 'enum' | 'inherit']\n fieldComp = renderer(formData?.data[field], (value) => setData(field, value))\n } else if (field === 'default' && formData?.data?.type === 'boolean') {\n fieldComp = customFields['booleanDefault'](\n formData?.data[field] as boolean,\n (value) => setData(field, value as AttributeData['default']),\n )\n } else if (['ge', 'gt', 'le', 'lt'].includes(field)) {\n // ignore gt and lt\n if (['gt', 'lt'].includes(field)) return null\n fieldComp = (\n <MinMaxField\n value={formData?.data}\n isMin={field === 'ge'}\n isFloat={formData?.data?.type === 'float'}\n onChange={(v) => {\n const geValue = v.ge !== undefined ? Number(v.ge) : undefined\n const leValue = v.le !== undefined ? Number(v.le) : undefined\n\n if (\n // @ts-expect-error\n (v.ge !== undefined && isNaN(geValue)) ||\n // @ts-expect-error\n (v.le !== undefined && isNaN(leValue))\n ) {\n // Do not update the form if the value is not a valid number\n return\n }\n\n setFormData((d) => {\n if (!d || !d.data) return d\n const dt = { ...d.data, ...v }\n return { ...d, data: dt }\n })\n }}\n />\n )\n\n // rewrite field to min or max for display label\n fieldLabel = field === 'ge' ? 'Min' : 'Max'\n } else {\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const strValue = e.target.value\n switch (field) {\n case 'minLength':\n case 'maxLength':\n case 'minItems':\n case 'maxItems': {\n const num = parseInt(strValue, 10)\n setData(field, isNaN(num) ? undefined : num)\n break\n }\n default:\n // For string fields ('description', 'regex') or 'any' type fields ('example', 'default')\n setData(field, strValue as AttributeData[typeof field])\n break\n }\n }\n\n fieldComp = (\n <InputText\n value={String(formData?.data[field] ?? '')}\n onChange={handleInputChange}\n />\n )\n }\n\n return (\n <FormRow\n label={fieldLabel}\n key={field}\n style={{\n alignItems: 'flex-start',\n }}\n >\n {fieldComp}\n </FormRow>\n )\n })}\n <span>\n {(internalError || error) && (\n <span className=\"form-error-text\">{internalError || error}</span>\n )}\n </span>\n </FormLayout>\n )}\n </Dialog>\n )\n}\n"],"names":["SCOPE_OPTIONS","GLOBAL_FIELDS","TYPE_OPTIONS","initFormData","buildInitFormData","excludes","data","formData","required","key","requiredData","typedKey","AttributeEditor","attribute","existingNames","error","isUpdating","onHide","onEdit","onDelete","initForm","setFormData","useState","useEffect","isNew","setTopLevelData","value","d","setData","dt","internalError","handleSubmit","footer","jsxs","jsx","Button","Spacer","SaveButton","dataFields","globalField","_a","s","typeOpt","f","customFields","onChange","EnumEditor","val","InputSwitch","e","handleTitleChange","v","camelCase","Dialog","FormLayout","FormRow","InputText","LockedInput","Dropdown","_b","field","fieldComp","fieldLabel","upperFirst","renderer","MinMaxField","geValue","leValue","handleInputChange","strValue","num"],"mappings":"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"}
1
+ {"version":3,"file":"AttributeEditor.cjs.js","sources":["../../../../../src/components/AttributeEditor/AttributeEditor.tsx"],"sourcesContent":["import { FC, useEffect, useState } from 'react'\nimport {\n SaveButton,\n Spacer,\n FormLayout,\n FormRow,\n InputText,\n InputSwitch,\n LockedInput,\n Dropdown,\n Dialog,\n Button,\n} from '@ynput/ayon-react-components'\nimport { camelCase, upperFirst } from 'lodash'\nimport { MinMaxField } from './components'\nimport { EnumEditor } from '@shared/components/EnumEditor'\nimport { AttributeData, AttributeModel, AttributeEnumItem } from '@shared/api'\n\nconst SCOPE_OPTIONS = [\n { value: 'project', label: 'Project' },\n { value: 'folder', label: 'Folder' },\n { value: 'task', label: 'Task' },\n { value: 'product', label: 'Product' },\n { value: 'version', label: 'Version' },\n { value: 'representation', label: 'Representation' },\n { value: 'user', label: 'User' },\n]\n\n// Define types for constants\ninterface GlobalFieldEntry {\n value: keyof AttributeData\n scope: (AttributeModel['scope'] | '')[] | null\n}\n\nconst GLOBAL_FIELDS: GlobalFieldEntry[] = [\n { value: 'description', scope: null },\n { value: 'example', scope: null },\n // @ts-expect-error - project is not a scope?\n { value: 'default', scope: ['project'] },\n { value: 'inherit', scope: null },\n]\n\ninterface TypeOptionDef {\n value: AttributeData['type']\n label: string\n fields: (keyof AttributeData)[]\n exclude?: (keyof AttributeData)[]\n}\n\ninterface TypeOptionsMap {\n [key: string]: TypeOptionDef\n}\n\nconst TYPE_OPTIONS: TypeOptionsMap = {\n string: {\n value: 'string',\n label: 'String',\n fields: ['minLength', 'maxLength', 'enum', 'regex'],\n },\n integer: {\n value: 'integer',\n label: 'Integer',\n fields: ['ge', 'gt', 'le', 'lt'],\n },\n float: {\n value: 'float',\n label: 'Decimal number',\n fields: ['ge', 'gt', 'le', 'lt'],\n },\n list_of_strings: {\n value: 'list_of_strings',\n label: 'List Of Strings',\n fields: ['minItems', 'maxItems', 'enum'],\n },\n boolean: {\n value: 'boolean',\n label: 'Boolean',\n fields: [],\n exclude: ['example'],\n },\n datetime:{\n value: 'datetime',\n label: 'Datetime',\n fields: [],\n }\n}\n\ntype Omit<T, K extends keyof T> = Pick<T, Exclude<keyof T, K>>\ntype PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>\nexport type AttributeForm = PartialBy<AttributeModel, 'scope' | 'position'>\ntype Excludes = (keyof Omit<AttributeModel, 'data'> | keyof AttributeData)[]\n\nconst initFormData: AttributeForm = {\n name: '',\n scope: ['folder', 'task'],\n builtin: false,\n position: 0,\n data: {\n type: 'string',\n title: '',\n description: '',\n example: '',\n default: undefined,\n enum: undefined,\n minLength: undefined,\n maxLength: undefined,\n regex: '',\n minItems: undefined,\n maxItems: undefined,\n ge: undefined,\n gt: undefined,\n le: undefined,\n lt: undefined,\n },\n}\n\n// build the form data based on excludes and to update any data\nconst buildInitFormData = (excludes: Excludes, data?: Partial<AttributeForm>) => {\n // Create a deep clone of init form data\n const formData = JSON.parse(JSON.stringify(initFormData)) as AttributeForm\n\n // Filter out top-level excludes if not in required\n const required = ['name']\n Object.keys(formData).forEach((key) => {\n if (\n !required.includes(key) &&\n excludes.includes(key as keyof Omit<AttributeModel, 'data'>) &&\n key !== 'data'\n ) {\n delete formData[key as keyof AttributeForm]\n }\n })\n\n // Filter out data field excludes if not in in required\n const requiredData = ['title']\n if (formData.data) {\n Object.keys(formData.data).forEach((key) => {\n if (!requiredData.includes(key) && excludes.includes(key as keyof AttributeData)) {\n delete formData.data[key as keyof AttributeData]\n }\n })\n }\n\n // Merge with provided data if any\n if (data) {\n // Merge top-level fields\n Object.keys(data).forEach((key) => {\n const typedKey = key as keyof AttributeForm\n if (typedKey !== 'data' && excludes.includes(typedKey)) return\n\n if (typedKey === 'data' && data.data && formData.data) {\n // Deep merge of data fields\n formData.data = { ...formData.data, ...data.data }\n } else if (data[typedKey] !== undefined) {\n // @ts-ignore - We know these properties exist\n formData[typedKey] = data[typedKey]\n }\n })\n }\n\n return formData\n}\n\nexport interface AttributeEditorProps {\n attribute: AttributeForm | null\n existingNames: string[]\n error?: string\n isUpdating?: boolean\n excludes?: Excludes\n onHide: () => void\n onEdit: (attribute: AttributeForm) => void\n onDelete?: () => void\n}\n\nexport const AttributeEditor: FC<AttributeEditorProps> = ({\n attribute,\n existingNames,\n error = '',\n isUpdating,\n excludes = [],\n onHide,\n onEdit,\n onDelete,\n}) => {\n const initForm = buildInitFormData(excludes, { position: existingNames.length })\n const [formData, setFormData] = useState<AttributeForm | null>(attribute || initForm)\n\n useEffect(() => {\n if (!!attribute) setFormData(attribute)\n }, [attribute])\n\n const isNew = !attribute\n\n // const setTopLevelData = (key: string, value: string) => {\n const setTopLevelData = <K extends keyof Omit<AttributeModel, 'data'>>(\n key: K,\n value: AttributeModel[K],\n ) => {\n setFormData((d) => {\n if (!d) {\n return d\n }\n return { ...d, [key]: value }\n })\n }\n\n // const setData = (key, value) => {\n const setData = <K extends keyof AttributeData>(key: K, value: AttributeData[K]) => {\n setFormData((d) => {\n // Add a check for d and d.data\n if (!d || !d.data) {\n return d\n }\n const dt = { ...d.data, [key]: value }\n return { ...d, data: dt }\n })\n }\n\n let internalError = ''\n if (formData) {\n if (isNew) {\n if (existingNames.includes(formData.name)) internalError = 'This attribute already exists'\n else if (!formData.name.match('^[a-zA-Z_]{2,64}$')) error = 'Invalid attribute name'\n } // name validation\n }\n\n const handleSubmit = () => {\n if (formData) {\n onEdit(formData)\n }\n }\n\n const footer = (\n <div style={{ display: 'flex', width: '100%', flexDirection: 'row' }}>\n {onDelete && attribute && (\n <Button\n variant=\"danger\"\n label={'Delete attribute'}\n icon={'delete'}\n disabled={isUpdating}\n onClick={onDelete}\n />\n )}\n <Spacer />\n <SaveButton\n label={isNew ? 'Create Attribute' : 'Save Attribute'}\n icon={'check'}\n disabled={!!internalError || !formData}\n active={!internalError && !!formData}\n saving={isUpdating}\n onClick={handleSubmit}\n />\n </div>\n )\n\n let dataFields: (keyof AttributeData)[] = []\n\n // add global fields, only if scope are null (all) or the scope is included\n GLOBAL_FIELDS.forEach((globalField) => {\n // @ts-expect-error - project scope will never be found here?\n if (!globalField?.scope || globalField?.scope?.some((s) => formData?.scope?.includes(s))) {\n dataFields.push(globalField.value)\n }\n })\n\n if (formData?.data.type && TYPE_OPTIONS[formData.data.type]) {\n const typeOpt = TYPE_OPTIONS[formData.data.type]\n dataFields = [...dataFields, ...typeOpt.fields].filter((f) => !typeOpt.exclude?.includes(f))\n }\n\n type CustomFieldRenderer = (value: any, onChange: (newValue: any) => void) => JSX.Element | null\n const customFields: {\n enum: CustomFieldRenderer\n inherit: CustomFieldRenderer\n booleanDefault: CustomFieldRenderer\n } = {\n enum: (value = [], onChange) => (\n <EnumEditor\n values={value as AttributeEnumItem[]}\n onChange={(val) => {\n onChange(val?.length ? val : undefined)\n }}\n />\n ),\n inherit: (value, onChange) => (\n <InputSwitch\n checked={value}\n onChange={(e) => onChange((e.target as HTMLInputElement).checked)}\n />\n ),\n booleanDefault: (value, onChange) => (\n <InputSwitch\n checked={value}\n onChange={(e) => onChange((e.target as HTMLInputElement).checked)}\n />\n ),\n }\n\n const handleTitleChange = (e: React.ChangeEvent) => {\n const v = (e.target as HTMLInputElement).value\n setData('title', v)\n\n if (isNew) {\n setTopLevelData('name', camelCase(v))\n }\n }\n\n return (\n <Dialog\n header={formData?.data?.title || formData?.name || 'New attribute'}\n footer={footer}\n onClose={onHide}\n isOpen={true}\n style={{ width: 700, zIndex: 999 }}\n size=\"full\"\n onKeyDown={(e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) {\n e.preventDefault()\n handleSubmit()\n }\n }}\n >\n {formData && (\n <FormLayout>\n {!excludes.includes('title') && (\n <FormRow label={'Title'} key={'title'}>\n <InputText value={formData?.data['title']} onChange={handleTitleChange} autoFocus />\n </FormRow>\n )}\n {!excludes.includes('name') && (\n <FormRow label={'Name'} key={'name'}>\n <LockedInput\n value={formData.name}\n disabled={!isNew}\n onSubmit={(v) => setTopLevelData('name', v)}\n label=\"name\"\n />\n </FormRow>\n )}\n {!excludes.includes('scope') && (\n <FormRow label=\"Scope\">\n <Dropdown\n options={SCOPE_OPTIONS}\n disabled={formData.builtin}\n value={formData.scope || []}\n onChange={(v) => setTopLevelData('scope', v as AttributeModel['scope'])}\n multiSelect\n widthExpand\n />\n </FormRow>\n )}\n {!excludes.includes('type') && (\n <FormRow label=\"Type\">\n <Dropdown\n value={[formData?.data?.type]}\n disabled={formData.builtin}\n options={Object.values(TYPE_OPTIONS)}\n onChange={(v) => setData('type', v[0] as AttributeData['type'])}\n minSelected={1}\n widthExpand\n />\n </FormRow>\n )}\n {dataFields.map((field) => {\n // skip if field is excluded\n if (excludes.includes(field)) return null\n\n let fieldComp = null\n let fieldLabel = upperFirst(field)\n\n if (field === 'enum' || field === 'inherit') {\n const renderer = customFields[field as 'enum' | 'inherit']\n fieldComp = renderer(formData?.data[field], (value) => setData(field, value))\n } else if (field === 'default' && formData?.data?.type === 'boolean') {\n fieldComp = customFields['booleanDefault'](\n formData?.data[field] as boolean,\n (value) => setData(field, value as AttributeData['default']),\n )\n } else if (['ge', 'gt', 'le', 'lt'].includes(field)) {\n // ignore gt and lt\n if (['gt', 'lt'].includes(field)) return null\n fieldComp = (\n <MinMaxField\n value={formData?.data}\n isMin={field === 'ge'}\n isFloat={formData?.data?.type === 'float'}\n onChange={(v) => {\n const geValue = v.ge !== undefined ? Number(v.ge) : undefined\n const leValue = v.le !== undefined ? Number(v.le) : undefined\n\n if (\n // @ts-expect-error\n (v.ge !== undefined && isNaN(geValue)) ||\n // @ts-expect-error\n (v.le !== undefined && isNaN(leValue))\n ) {\n // Do not update the form if the value is not a valid number\n return\n }\n\n setFormData((d) => {\n if (!d || !d.data) return d\n const dt = { ...d.data, ...v }\n return { ...d, data: dt }\n })\n }}\n />\n )\n\n // rewrite field to min or max for display label\n fieldLabel = field === 'ge' ? 'Min' : 'Max'\n } else {\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const strValue = e.target.value\n switch (field) {\n case 'minLength':\n case 'maxLength':\n case 'minItems':\n case 'maxItems': {\n const num = parseInt(strValue, 10)\n setData(field, isNaN(num) ? undefined : num)\n break\n }\n default:\n // For string fields ('description', 'regex') or 'any' type fields ('example', 'default')\n setData(field, strValue as AttributeData[typeof field])\n break\n }\n }\n\n fieldComp = (\n <InputText\n value={String(formData?.data[field] ?? '')}\n onChange={handleInputChange}\n />\n )\n }\n\n return (\n <FormRow\n label={fieldLabel}\n key={field}\n style={{\n alignItems: 'flex-start',\n }}\n >\n {fieldComp}\n </FormRow>\n )\n })}\n <span>\n {(internalError || error) && (\n <span className=\"form-error-text\">{internalError || error}</span>\n )}\n </span>\n </FormLayout>\n )}\n </Dialog>\n )\n}\n"],"names":["SCOPE_OPTIONS","GLOBAL_FIELDS","TYPE_OPTIONS","initFormData","buildInitFormData","excludes","data","formData","required","key","requiredData","typedKey","AttributeEditor","attribute","existingNames","error","isUpdating","onHide","onEdit","onDelete","initForm","setFormData","useState","useEffect","isNew","setTopLevelData","value","d","setData","dt","internalError","handleSubmit","footer","jsxs","jsx","Button","Spacer","SaveButton","dataFields","globalField","_a","s","typeOpt","f","customFields","onChange","EnumEditor","val","InputSwitch","e","handleTitleChange","v","camelCase","Dialog","FormLayout","FormRow","InputText","LockedInput","Dropdown","_b","field","fieldComp","fieldLabel","upperFirst","renderer","MinMaxField","geValue","leValue","handleInputChange","strValue","num"],"mappings":"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"}
@@ -45,6 +45,11 @@ const U = [
45
45
  label: "Boolean",
46
46
  fields: [],
47
47
  exclude: ["example"]
48
+ },
49
+ datetime: {
50
+ value: "datetime",
51
+ label: "Datetime",
52
+ fields: []
48
53
  }
49
54
  }, X = {
50
55
  name: "",
@@ -91,14 +96,14 @@ const U = [
91
96
  onDelete: E
92
97
  }) => {
93
98
  var L, k;
94
- const A = D(c, { position: u.length }), [t, j] = K(r || A);
99
+ const A = D(c, { position: u.length }), [t, f] = K(r || A);
95
100
  V(() => {
96
- r && j(r);
101
+ r && f(r);
97
102
  }, [r]);
98
- const f = !r, S = (e, a) => {
99
- j((n) => n && { ...n, [e]: a });
103
+ const j = !r, S = (e, a) => {
104
+ f((n) => n && { ...n, [e]: a });
100
105
  }, h = (e, a) => {
101
- j((n) => {
106
+ f((n) => {
102
107
  if (!n || !n.data)
103
108
  return n;
104
109
  const m = { ...n.data, [e]: a };
@@ -106,7 +111,7 @@ const U = [
106
111
  });
107
112
  };
108
113
  let v = "";
109
- t && f && (u.includes(t.name) ? v = "This attribute already exists" : t.name.match("^[a-zA-Z_]{2,64}$") || (s = "Invalid attribute name"));
114
+ t && j && (u.includes(t.name) ? v = "This attribute already exists" : t.name.match("^[a-zA-Z_]{2,64}$") || (s = "Invalid attribute name"));
110
115
  const N = () => {
111
116
  t && d(t);
112
117
  }, M = /* @__PURE__ */ i.jsxs("div", { style: { display: "flex", width: "100%", flexDirection: "row" }, children: [
@@ -124,7 +129,7 @@ const U = [
124
129
  /* @__PURE__ */ i.jsx(
125
130
  Y,
126
131
  {
127
- label: f ? "Create Attribute" : "Save Attribute",
132
+ label: j ? "Create Attribute" : "Save Attribute",
128
133
  icon: "check",
129
134
  disabled: !!v || !t,
130
135
  active: !v && !!t,
@@ -173,7 +178,7 @@ const U = [
173
178
  )
174
179
  }, B = (e) => {
175
180
  const a = e.target.value;
176
- h("title", a), f && S("name", $(a));
181
+ h("title", a), j && S("name", $(a));
177
182
  };
178
183
  return /* @__PURE__ */ i.jsx(
179
184
  z,
@@ -193,7 +198,7 @@ const U = [
193
198
  q,
194
199
  {
195
200
  value: t.name,
196
- disabled: !f,
201
+ disabled: !j,
197
202
  onSubmit: (e) => S("name", e),
198
203
  label: "name"
199
204
  }
@@ -244,7 +249,7 @@ const U = [
244
249
  const g = l.ge !== void 0 ? Number(l.ge) : void 0, I = l.le !== void 0 ? Number(l.le) : void 0;
245
250
  // @ts-expect-error
246
251
  l.ge !== void 0 && isNaN(g) || // @ts-expect-error
247
- l.le !== void 0 && isNaN(I) || j((p) => {
252
+ l.le !== void 0 && isNaN(I) || f((p) => {
248
253
  if (!p || !p.data) return p;
249
254
  const F = { ...p.data, ...l };
250
255
  return { ...p, data: F };