box-ui-elements 23.4.0-beta.31 → 23.4.0-beta.32

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 (59) hide show
  1. package/dist/explorer.js +1 -1
  2. package/dist/openwith.js +1 -1
  3. package/dist/picker.js +1 -1
  4. package/dist/preview.js +1 -1
  5. package/dist/sharing.js +1 -1
  6. package/dist/sidebar.js +1 -1
  7. package/dist/uploader.js +1 -1
  8. package/es/common/types/metadata.js.flow +6 -0
  9. package/es/common/types/metadata.js.map +1 -1
  10. package/es/features/metadata-instance-editor/CascadePolicy.js +40 -20
  11. package/es/features/metadata-instance-editor/CascadePolicy.js.flow +52 -24
  12. package/es/features/metadata-instance-editor/CascadePolicy.js.map +1 -1
  13. package/es/features/metadata-instance-editor/Instance.js +24 -2
  14. package/es/features/metadata-instance-editor/Instance.js.flow +31 -1
  15. package/es/features/metadata-instance-editor/Instance.js.map +1 -1
  16. package/es/features/metadata-instance-editor/constants.js +4 -1
  17. package/es/features/metadata-instance-editor/constants.js.flow +10 -1
  18. package/es/features/metadata-instance-editor/constants.js.map +1 -1
  19. package/es/features/metadata-instance-editor/messages.js +8 -0
  20. package/es/features/metadata-instance-editor/messages.js.flow +10 -0
  21. package/es/features/metadata-instance-editor/messages.js.map +1 -1
  22. package/i18n/bn-IN.js +2 -0
  23. package/i18n/da-DK.js +2 -0
  24. package/i18n/de-DE.js +2 -0
  25. package/i18n/en-AU.js +2 -0
  26. package/i18n/en-CA.js +2 -0
  27. package/i18n/en-GB.js +2 -0
  28. package/i18n/en-US.js +2 -0
  29. package/i18n/en-US.properties +4 -0
  30. package/i18n/en-x-pseudo.js +2 -0
  31. package/i18n/es-419.js +2 -0
  32. package/i18n/es-ES.js +2 -0
  33. package/i18n/fi-FI.js +2 -0
  34. package/i18n/fr-CA.js +2 -0
  35. package/i18n/fr-FR.js +2 -0
  36. package/i18n/hi-IN.js +2 -0
  37. package/i18n/it-IT.js +2 -0
  38. package/i18n/ja-JP.js +2 -0
  39. package/i18n/ko-KR.js +2 -0
  40. package/i18n/nb-NO.js +2 -0
  41. package/i18n/nl-NL.js +2 -0
  42. package/i18n/pl-PL.js +2 -0
  43. package/i18n/pt-BR.js +2 -0
  44. package/i18n/ru-RU.js +2 -0
  45. package/i18n/sv-SE.js +2 -0
  46. package/i18n/tr-TR.js +2 -0
  47. package/i18n/zh-CN.js +2 -0
  48. package/i18n/zh-TW.js +2 -0
  49. package/package.json +3 -3
  50. package/src/common/types/metadata.js +6 -0
  51. package/src/features/metadata-instance-editor/CascadePolicy.js +52 -24
  52. package/src/features/metadata-instance-editor/Instance.js +31 -1
  53. package/src/features/metadata-instance-editor/__tests__/CascadePolicy.test.js +50 -3
  54. package/src/features/metadata-instance-editor/__tests__/Instance.test.js +20 -2
  55. package/src/features/metadata-instance-editor/__tests__/Instances.test.js +15 -10
  56. package/src/features/metadata-instance-editor/__tests__/MetadataInstanceEditor.test.js +53 -10
  57. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instance.test.js.snap +1 -0
  58. package/src/features/metadata-instance-editor/constants.js +10 -1
  59. package/src/features/metadata-instance-editor/messages.js +10 -0
package/i18n/fr-CA.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "Modifier des métadonnées",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Remplissage automatique de Box AI",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "Activer la règle en cascade",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Voulez-vous vraiment supprimer ces métadonnées personnalisées et toutes ses valeurs de ce fichier ?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Êtes-vous sûr de vouloir supprimer « {metadataName} » et tout son contenu de ce fichier ?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Voulez-vous vraiment supprimer ces métadonnées personnalisées et toutes leurs ? Les valeurs des modèles de métadonnées qui sont déjà appliquées aux fichiers de ce dossier ne seront pas supprimées.",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "Cliquez sur « Ajouter » dans le coin supérieur droit pour ajouter des métadonnées à cet élément",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "Cette opération n'est pas immédiate et peut durer un certain temps.",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "Supprimer",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "Ajouter",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "Rechercher tous les modèles",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "Désolé ! Nous ne pouvons pas récupérer les modèles. Veuillez contacter votre administrateur",
package/i18n/fr-FR.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "Modifier des métadonnées",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Remplissage automatique de Box AI",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "Activer la règle en cascade",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Voulez-vous vraiment supprimer ces métadonnées personnalisées et toutes ses valeurs de ce fichier ?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Êtes-vous sûr de vouloir supprimer « {metadataName} » et tout son contenu de ce fichier ?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Voulez-vous vraiment supprimer ces métadonnées personnalisées et toutes leurs ? Les valeurs des modèles de métadonnées qui sont déjà appliquées aux fichiers de ce dossier ne seront pas supprimées.",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "Cliquez sur « Ajouter » dans le coin supérieur droit pour ajouter des métadonnées à cet élément",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "Cette opération n'est pas immédiate et peut durer un certain temps.",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "Supprimer",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "Ajouter",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "Rechercher tous les modèles",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "Désolé ! Nous ne pouvons pas récupérer les modèles. Veuillez contacter votre administrateur",
package/i18n/hi-IN.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "मेटाडेटा संपादित करें",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Box AI ऑटोफिल",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "कैस्केड नीति सक्षम करें",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "क्या आप वाकई इस कस्टम मेटाडेटा और इसके सभी मानों को इस फ़ाइल से हटाना चाहते हैं?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "क्या आप वाकई \"{metadataName}\" और इसके सारे मानों को इस फ़ाइल से हटाना चाहते हैं?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "क्या आप वाकई इस कस्टम मेटाडेटा को और इसके सभी मूल्यों को हटाना चाहते हैं? इस फ़ोल्डर में किसी भी फ़ाइल पर पहले से लागू किसी भी मेटाडेटा टेम्पलेट मूल्यों को नहीं हटाया जाएगा.",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "इस आइटम में मेटाडेटा जोड़ने के लिए शीर्ष पर दाईं ओर 'जोड़ें' पर क्लिक करें",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "यह ऑपरेशन तुरंत नहीं हो सकता है, इसमें कुछ समय लग सकता है.",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "निकालें",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "जोड़ें",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "सभी टेम्पलेट खोजें",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "क्षमा करें! हम टेम्पलेट्स नहीं प्राप्त कर सके. कृपया अपने व्यस्थापक से संपर्क करें",
package/i18n/it-IT.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "Modifica metadati",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Compilazione automatica Box AI",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "Abilita criterio a cascata",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Confermi l'eliminazione di questi metadati personalizzati e dei relativi valori dal file?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Confermi l'eliminazione di \"{metadataName}\" e dei relativi valori dal file?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Confermi l'eliminazione di questi metadati personalizzati e dei relativi valori? I valori di eventuali modelli di metadati già applicati ai file di questa cartella non verranno eliminati.",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "Fai clic su \"Aggiungi\" in alto a destra per aggiungere metadati a questo elemento",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "Questa operazione non è immediata e potrebbe richiedere del tempo.",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "Rimuovi",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "Aggiungi",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "Cerca tutti i modelli",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "Impossibile recuperare i modelli. Contatta il tuo amministratore",
package/i18n/ja-JP.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "メタデータを編集",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Box AI自動入力",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "カスケードポリシーを有効にする",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "このカスタムメタデータおよびそのすべての値をこのファイルから削除してもよろしいですか?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "\"{metadataName}\"およびそのすべての値をこのファイルから削除してもよろしいですか?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "このカスタムメタデータとそのすべての値を削除してもよろしいですか? このフォルダ内のファイルにすでに適用されているメタデータテンプレート値は、いずれも削除されません。",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "右上の [追加] をクリックして、この項目にメタデータを追加します",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "この操作はすぐには行われず、時間がかかる場合があります。",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "削除",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "追加",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "すべてのテンプレートを検索",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "テンプレートを取得できませんでした。管理者にお問い合わせください。",
package/i18n/ko-KR.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "메타데이터 편집",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Box AI 자동 채우기",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "캐스케이드 정책 활성화",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "이 파일에서 이 사용자 지정 메타데이터 및 해당 값을 모두 삭제하시겠습니까?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "이 파일에서 “{metadataName}” 및 해당 값을 모두 삭제하시겠습니까?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "이 사용자 지정 메타데이터 및 해당 값을 모두 삭제하시겠습니까? 이 폴더의 파일에 이미 적용된 모든 메타데이터 템플릿 값은 삭제되지 않습니다.",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "오른쪽 상단의 '추가'를 클릭하여 이 항목에 메타데이터를 추가하십시오.",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "이 작업은 즉시 실행되지 않으며 약간의 시간이 소요될 수 있습니다.",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "제거",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "추가",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "모든 템플릿 검색",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "죄송합니다. 템플릿을 가져올 수 없습니다. 관리자에게 문의하십시오.",
package/i18n/nb-NO.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "Rediger metadata",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Automatisk utfylling med Box AI",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "Aktiver hierarkiske retningslinjer",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Er du sikker på at du vil slette denne egendefinerte metadatamalen og alle tilknyttede verdier fra denne filen?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Er du sikker på at du vil slette {metadataName} og alle tilknyttede verdier fra denne filen?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Er du sikker på at du vil slette disse egendefinerte metadataene og alle tilhørende verdier? Eventuelle verdier i metadatamaler som allerede er tatt i bruk for filer i denne mappen, blir ikke slettet.",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "Klikk på Legg til øverst til høyre for å legge til metadata for dette elementet",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "Denne operasjonen er ikke umiddelbar og kan ta litt tid.",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "Fjern",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "Legg til",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "Søk i alle maler",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "Malene kunne ikke hentes. Kontakt administratoren",
package/i18n/nl-NL.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "Metadata bewerken",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Box AI Automatisch invullen",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "Trapsgewijs beleid inschakelen",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Weet u zeker dat u deze aangepaste metadata en alle bijbehorende waarden uit dit bestand wilt verwijderen?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Weet u zeker dat u \"{metadataName}\" en alle bijbehorende waarden uit dit bestand wilt verwijderen?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Weet u zeker dat u deze aangepaste metadata en alle waarden ervan wilt verwijderen? Alle metadata-sjabloonwaarden die al zijn toegepast op de bestanden in deze map, worden niet verwijderd.",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "Klik op \"Toevoegen\" in de rechterbovenhoek om metadata aan dit item toe te voegen",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "Deze bewerking kan enige tijd in beslag nemen.",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "Verwijderen",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "Toevoegen",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "Alle sjablonen doorzoeken",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "We kunnen geen sjablonen ophalen. Neem contact op met uw beheerder",
package/i18n/pl-PL.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "Edytuj metadane",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Autouzupełnianie Box AI",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "Włącz zasadę kaskady",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Czy na pewno chcesz usunąć te niestandardowe metadane i wszystkie ich wartości z tego pliku?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Czy na pewno chcesz usunąć element „{metadataName}” i wszystkie jego wartości z tego pliku?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Czy na pewno chcesz usunąć te niestandardowe metadane i wszystkie ich wartości? Nie zostaną usunięte żadne wartości szablonu metadanych, które zostały już zastosowane do plików w tym folderze.",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "Kliknij przycisk Dodaj w prawym górnym rogu, aby dodać metadane do tego elementu.",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "Ta operacja nie jest natychmiastowa i może zająć trochę czasu.",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "Usuń",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "Dodaj",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "Wyszukaj wszystkie szablony",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "Przepraszamy! Nie udało się pobrać szablonów. Skontaktuj się z administratorem.",
package/i18n/pt-BR.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "Editar metadados",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Preenchimento automático do Box AI",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "Ativar a política de cascata",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Tem certeza de que deseja excluir estes metadados personalizados e todos os seus valores deste arquivo?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Tem certeza de que deseja excluir \"{metadataName}\" e todos os seus valores deste arquivo?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Tem certeza de que deseja excluir este metadado personalizado e todos os seus valores? Nenhum valor de modelo de metadados já aplicado a arquivos nesta pasta será excluído.",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "Clique em \"Adicionar\" no canto superior direito para adicionar metadados a este item.",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "Esta operação não é imediata e pode levar algum tempo.",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "Remover",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "Adicionar",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "Pesquisar todos os modelos",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "Não foi possível obter os modelos. Contate o seu administrador",
package/i18n/ru-RU.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "Редактирование метаданных",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Автозаполнение Box AI",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "Включить каскадную политику",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Удалить эти настраиваемые метаданные вместе со всеми их значениями из этого файла?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Удалить метаданные «{metadataName}» и все их значения из этого файла?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Удалить эти настраиваемые метаданные и все их значения? Значения шаблонов метаданных, примененные к файлам в этой папке, не будут удалены.",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "Нажмите «Добавить» в правом верхнем углу, чтобы добавить метаданные для этого элемента",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "Выполнение этой операции может занять некоторое время.",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "Удалить",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "Добавить",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "Поиск всех шаблонов",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "Не удалось получить шаблоны. Обратитесь к администратору",
package/i18n/sv-SE.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "Redigera metadata",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Box AI autofyll",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "Aktivera övergripande policy",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Är du säker på att du vill radera dessa anpassade metadata och alla tillhörande värden från den här filen?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Är du säker på att du vill radera \"{metadataName}\" och alla tillhörande värden från den här filen?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Är du säker på att du vill radera dessa anpassade metadata och alla tillhörande värden? Eventuella metadatamallvärden som redan har tillämpats på filer i mallen raderas inte.",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "Klicka på Lägg till längst upp till höger om du vill lägga till metadata för detta objekt",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "Den här åtgärden sker inte omedelbart och kan ta lite tid.",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "Ta bort",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "Lägg till",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "Sök i alla mallar",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "Det gick inte att hämta mallar. Kontakta administratören",
package/i18n/tr-TR.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "Meta Verileri Düzenle",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Box AI Otomatik Doldurma",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "Alt Klasörlere Uygulama İlkesini Etkinleştir",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Bu özel meta veriyi ve tüm değerlerini dosyadan silmek istediğinizden emin misiniz?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Bu \"{metadataName}\" öğesini ve tüm değerlerini bu dosyadan silmek istediğinizden emin misiniz?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "Bu özel meta veriyi ve tüm değerlerini silmek istediğinizden emin misiniz? Bu klasördeki dosyalara uygulanmış olan meta veri şablonu değerleri silinmez.",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "Bu öğeye meta veri eklemek için sağ üstteki \"Ekle\" seçeneğine tıklayın",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "Bu işlemin gerçekleşmesi biraz zaman alabilir.",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "Kaldır",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "Ekle",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "Tüm şablonlarda ara",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "Üzgünüz! Şablonları alamadık. Lütfen yöneticinize danışın",
package/i18n/zh-CN.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "编辑元数据",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Box AI 自动填充",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "启用级联策略",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "是否确定要从此文件中删除此自定义元数据及其所有值?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "是否确定要从此文件中删除 \"{metadataName}\" 及其所有值?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "是否确定要删除此自定义元数据及其所有值?不会删除已应用于此文件夹中文件的任何元数据模板值。",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "在右上角单击“添加”,以将元数据添加至此项目",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "此操作不会立即生效,可能需要一些时间。",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "移除",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "添加",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "搜索所有模板",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "对不起!我们无法获取模板。请联系管理员",
package/i18n/zh-TW.js CHANGED
@@ -631,6 +631,7 @@ export default {
631
631
  "boxui.metadataInstanceEditor.editTooltip": "編輯中繼資料",
632
632
  "boxui.metadataInstanceEditor.enableAIAutofill": "Box AI 自動填充",
633
633
  "boxui.metadataInstanceEditor.enableCascadePolicy": "啟用向下套用原則",
634
+ "boxui.metadataInstanceEditor.enhancedAgentName": "Enhanced",
634
635
  "boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "確定要從此檔案刪除此自訂中繼資料及其所有值?",
635
636
  "boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "確定要從此檔案刪除「{metadataName}」及其所有值?",
636
637
  "boxui.metadataInstanceEditor.folderMetadataRemoveCustomTemplateConfirm": "確定要刪除此自訂中繼資料及其所有值嗎?已套用至此資料夾內檔案的任何中繼資料範本值將不會遭到刪除。",
@@ -644,6 +645,7 @@ export default {
644
645
  "boxui.metadataInstanceEditor.noMetadataAddTemplate": "按一下右上方的「新增」,即可新增中繼資料至此項目",
645
646
  "boxui.metadataInstanceEditor.operationNotImmediate": "此作業不會立即生效,可能需要一些時間。",
646
647
  "boxui.metadataInstanceEditor.removeTemplate": "移除",
648
+ "boxui.metadataInstanceEditor.standardAgentName": "Standard",
647
649
  "boxui.metadataInstanceEditor.templateAdd": "新增",
648
650
  "boxui.metadataInstanceEditor.templateSearchPlaceholder": "搜尋所有範本",
649
651
  "boxui.metadataInstanceEditor.templatesFetchFailed": "很抱歉!我們無法擷取範本。請連絡您的管理員",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "box-ui-elements",
3
- "version": "23.4.0-beta.31",
3
+ "version": "23.4.0-beta.32",
4
4
  "description": "Box UI Elements",
5
5
  "author": "Box (https://www.box.com/)",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -130,7 +130,7 @@
130
130
  "@babel/types": "^7.24.7",
131
131
  "@box/blueprint-web": "^12.7.1",
132
132
  "@box/blueprint-web-assets": "^4.60.0",
133
- "@box/box-ai-agent-selector": "^0.41.10",
133
+ "@box/box-ai-agent-selector": "^0.48.5",
134
134
  "@box/box-ai-content-answers": "^0.124.1",
135
135
  "@box/cldr-data": "^34.2.0",
136
136
  "@box/combobox-with-api": "^0.34.9",
@@ -293,7 +293,7 @@
293
293
  "peerDependencies": {
294
294
  "@box/blueprint-web": "^12.7.1",
295
295
  "@box/blueprint-web-assets": "^4.60.0",
296
- "@box/box-ai-agent-selector": "^0.41.10",
296
+ "@box/box-ai-agent-selector": "^0.48.5",
297
297
  "@box/box-ai-content-answers": "^0.124.1",
298
298
  "@box/cldr-data": ">=34.2.0",
299
299
  "@box/combobox-with-api": "^0.34.9",
@@ -93,10 +93,15 @@ type MetadataCascadePolicy = {
93
93
  cascadePolicyType?: string,
94
94
  };
95
95
 
96
+ type MetadataCascadePolicyConfiguration = {
97
+ agent: string,
98
+ };
99
+
96
100
  type MetadataCascadingPolicyData = {
97
101
  id?: string,
98
102
  isEnabled: boolean,
99
103
  overwrite: boolean,
104
+ cascadePolicyConfiguration: MetadataCascadePolicyConfiguration | null,
100
105
  };
101
106
 
102
107
  type MetadataInstance = {
@@ -187,6 +192,7 @@ export type {
187
192
  MetadataQueryInstanceTypeField,
188
193
  MetadataType,
189
194
  MetadataCascadePolicy,
195
+ MetadataCascadePolicyConfiguration,
190
196
  MetadataCascadingPolicyData,
191
197
  MetadataInstanceV2,
192
198
  MetadataEditor,
@@ -1,11 +1,16 @@
1
1
  // @flow
2
2
  import * as React from 'react';
3
- import { FormattedMessage, useIntl } from 'react-intl';
4
3
 
5
4
  import { InlineNotice } from '@box/blueprint-web';
6
- import { BoxAiAgentSelector } from '@box/box-ai-agent-selector';
5
+ import { useCallback } from 'react';
6
+ import { FormattedMessage, useIntl } from 'react-intl';
7
+
7
8
  // $FlowFixMe
8
- import BoxAiLogo from '@box/blueprint-web-assets/icons/Logo/BoxAiLogo';
9
+ import { BoxAiAdvancedColor, BoxAiColor } from '@box/blueprint-web-assets/icons/Medium';
10
+ import { type AgentType } from '@box/box-ai-agent-selector';
11
+
12
+ // $FlowFixMe
13
+ import { BoxAiAgentSelectorWithApiContainer } from '@box/box-ai-agent-selector';
9
14
 
10
15
  import Toggle from '../../components/toggle';
11
16
  import { RadioButton, RadioGroup } from '../../components/radio';
@@ -13,23 +18,11 @@ import Link from '../../components/link/Link';
13
18
  import IconAlertDefault from '../../icons/general/IconAlertDefault';
14
19
  import messages from './messages';
15
20
  import './CascadePolicy.scss';
21
+ import { STANDARD_AGENT_ID, ENHANCED_AGENT_ID } from './constants';
16
22
 
17
23
  const COMMUNITY_LINK = 'https://support.box.com/hc/en-us/articles/360044195873-Cascading-metadata-in-folders';
18
24
  const AI_LINK = 'https://www.box.com/ai';
19
25
 
20
- const agents = [
21
- {
22
- id: '1',
23
- name: 'Basic',
24
- isEnterpriseDefault: true,
25
- },
26
- {
27
- id: '2',
28
- name: 'Enhanced (Gemini 2.5 Pro)',
29
- isEnterpriseDefault: false,
30
- },
31
- ];
32
-
33
26
  type Props = {
34
27
  canEdit: boolean,
35
28
  canUseAIFolderExtraction: boolean,
@@ -40,6 +33,7 @@ type Props = {
40
33
  isCustomMetadata: boolean,
41
34
  isExistingCascadePolicy: boolean,
42
35
  onAIFolderExtractionToggle: (value: boolean) => void,
36
+ onAIAgentSelect?: (agent: AgentType | null) => void,
43
37
  onCascadeModeChange: (value: boolean) => void,
44
38
  onCascadeToggle: (value: boolean) => void,
45
39
  shouldShowCascadeOptions: boolean,
@@ -55,6 +49,7 @@ const CascadePolicy = ({
55
49
  isAIFolderExtractionEnabled,
56
50
  isExistingCascadePolicy,
57
51
  onAIFolderExtractionToggle,
52
+ onAIAgentSelect,
58
53
  onCascadeToggle,
59
54
  onCascadeModeChange,
60
55
  shouldShowCascadeOptions,
@@ -67,6 +62,39 @@ const CascadePolicy = ({
67
62
  </div>
68
63
  ) : null;
69
64
 
65
+ const agents = React.useMemo(
66
+ () => [
67
+ {
68
+ id: STANDARD_AGENT_ID,
69
+ name: formatMessage(messages.standardAgentName),
70
+ isEnterpriseDefault: true,
71
+ },
72
+ {
73
+ id: ENHANCED_AGENT_ID,
74
+ name: formatMessage(messages.enhancedAgentName),
75
+ isEnterpriseDefault: false,
76
+ customIcon: BoxAiAdvancedColor,
77
+ },
78
+ ],
79
+ [formatMessage],
80
+ );
81
+
82
+ // BoxAiAgentSelectorWithApiContainer expects a function that returns a Promise<AgentListResponse>
83
+ // Since we're passing in our own agents, we don't need to make an API call,
84
+ // so we wrap the store data in a Promise to satisfy the component's interface requirements.
85
+ const agentFetcher = useCallback(() => {
86
+ return Promise.resolve({ agents });
87
+ }, [agents]);
88
+
89
+ const handleAgentSelect = useCallback(
90
+ (agent: AgentType | null) => {
91
+ if (onAIAgentSelect) {
92
+ onAIAgentSelect(agent);
93
+ }
94
+ },
95
+ [onAIAgentSelect],
96
+ );
97
+
70
98
  return canEdit ? (
71
99
  <>
72
100
  {isExistingCascadePolicy && (
@@ -83,6 +111,7 @@ const CascadePolicy = ({
83
111
  <FormattedMessage tagName="strong" {...messages.enableCascadePolicy} />
84
112
  {!isCustomMetadata && (
85
113
  <Toggle
114
+ aria-label={formatMessage(messages.enableCascadePolicy)}
86
115
  className={`metadata-cascade-toggle ${
87
116
  isCascadingEnabled ? 'cascade-on' : 'cascade-off'
88
117
  }`}
@@ -141,9 +170,10 @@ const CascadePolicy = ({
141
170
  <div className="metadata-cascade-editor" data-testid="ai-folder-extraction">
142
171
  <div className="metadata-cascade-enable">
143
172
  <div>
144
- <BoxAiLogo className="metadata-cascade-ai-logo" width={16} height={16} />
173
+ <BoxAiColor className="metadata-cascade-ai-logo" width={16} height={16} />
145
174
  <FormattedMessage tagName="strong" {...messages.enableAIAutofill} />
146
175
  <Toggle
176
+ aria-label={formatMessage(messages.enableAIAutofill)}
147
177
  className="metadata-cascade-toggle"
148
178
  isOn={isAIFolderExtractionEnabled}
149
179
  isDisabled={isExistingCascadePolicy}
@@ -158,15 +188,13 @@ const CascadePolicy = ({
158
188
  <FormattedMessage {...messages.aiAutofillLearnMore} />
159
189
  </Link>
160
190
  </div>
161
- {canUseAIFolderExtractionAgentSelector && (
191
+ {canUseAIFolderExtractionAgentSelector && isAIFolderExtractionEnabled && (
162
192
  <div className="metadata-cascade-ai-agent-selector">
163
- <BoxAiAgentSelector
164
- agents={agents}
193
+ <BoxAiAgentSelectorWithApiContainer
165
194
  disabled={isExistingCascadePolicy}
166
- onErrorAction={() => {}}
167
- requestState="success"
168
- selectedAgent={agents[0]}
169
- variant="sidebar"
195
+ fetcher={agentFetcher}
196
+ onSelectAgent={handleAgentSelect}
197
+ recordAction={() => {}}
170
198
  />
171
199
  </div>
172
200
  )}
@@ -6,6 +6,7 @@ import isEqual from 'lodash/isEqual';
6
6
  import cloneDeep from 'lodash/cloneDeep';
7
7
  import noop from 'lodash/noop';
8
8
 
9
+ import type { AgentType } from '@box/box-ai-agent-selector';
9
10
  import Collapsible from '../../components/collapsible/Collapsible';
10
11
  import Form from '../../components/form-elements/form/Form';
11
12
  import LoadingIndicatorWrapper from '../../components/loading-indicator/LoadingIndicatorWrapper';
@@ -24,7 +25,12 @@ import MetadataInstanceConfirmDialog from './MetadataInstanceConfirmDialog';
24
25
  import Footer from './Footer';
25
26
  import messages from './messages';
26
27
  import { FIELD_TYPE_FLOAT, FIELD_TYPE_INTEGER } from '../metadata-instance-fields/constants';
27
- import { CASCADE_POLICY_TYPE_AI_EXTRACT, TEMPLATE_CUSTOM_PROPERTIES } from './constants';
28
+ import {
29
+ CASCADE_POLICY_TYPE_AI_EXTRACT,
30
+ TEMPLATE_CUSTOM_PROPERTIES,
31
+ ENHANCED_AGENT_CONFIGURATION,
32
+ ENHANCED_AGENT_ID,
33
+ } from './constants';
28
34
  import {
29
35
  JSON_PATCH_OP_REMOVE,
30
36
  JSON_PATCH_OP_ADD,
@@ -38,6 +44,7 @@ import type {
38
44
  MetadataFields,
39
45
  MetadataTemplate,
40
46
  MetadataCascadePolicy,
47
+ MetadataCascadePolicyConfiguration,
41
48
  MetadataCascadingPolicyData,
42
49
  MetadataTemplateField,
43
50
  MetadataFieldValue,
@@ -69,6 +76,7 @@ type Props = {
69
76
  };
70
77
 
71
78
  type State = {
79
+ cascadePolicyConfiguration: MetadataCascadePolicyConfiguration | null,
72
80
  data: Object,
73
81
  errors: { [string]: React.Node },
74
82
  isAIFolderExtractionEnabled: boolean,
@@ -212,6 +220,7 @@ class Instance extends React.PureComponent<Props, State> {
212
220
  onSave,
213
221
  }: Props = this.props;
214
222
  const {
223
+ cascadePolicyConfiguration,
215
224
  data: currentData,
216
225
  errors,
217
226
  isAIFolderExtractionEnabled,
@@ -229,6 +238,7 @@ class Instance extends React.PureComponent<Props, State> {
229
238
  // reset state if cascading policy is removed
230
239
  isAIFolderExtractionEnabled: isCascadingEnabled ? isAIFolderExtractionEnabled : false,
231
240
  });
241
+
232
242
  onSave(
233
243
  id,
234
244
  this.createJSONPatch(currentData, originalData),
@@ -239,6 +249,7 @@ class Instance extends React.PureComponent<Props, State> {
239
249
  isEnabled: isCascadingEnabled,
240
250
  overwrite: isCascadingOverwritten,
241
251
  isAIFolderExtractionEnabled,
252
+ cascadePolicyConfiguration,
242
253
  }
243
254
  : undefined,
244
255
  cloneDeep(currentData),
@@ -342,6 +353,23 @@ class Instance extends React.PureComponent<Props, State> {
342
353
  this.setState({ isAIFolderExtractionEnabled: value }, this.setDirty);
343
354
  };
344
355
 
356
+ /**
357
+ * Handles the selection of an AI agent
358
+ * @param {AgentType | null} agent - The selected agent
359
+ */
360
+ onAIAgentSelect = (agent: AgentType | null): void => {
361
+ // '2' is the id for the enhanced agent
362
+ if (agent && agent.id === ENHANCED_AGENT_ID) {
363
+ this.setState({
364
+ cascadePolicyConfiguration: {
365
+ agent: ENHANCED_AGENT_CONFIGURATION,
366
+ },
367
+ });
368
+ } else {
369
+ this.setState({ cascadePolicyConfiguration: null });
370
+ }
371
+ };
372
+
345
373
  /**
346
374
  * Returns the state from props
347
375
  *
@@ -351,6 +379,7 @@ class Instance extends React.PureComponent<Props, State> {
351
379
  const isCascadingEnabled = this.isCascadingEnabledThroughProps(props);
352
380
 
353
381
  return {
382
+ cascadePolicyConfiguration: null,
354
383
  data: cloneDeep(props.data),
355
384
  errors: {},
356
385
  isAIFolderExtractionEnabled: this.isAIFolderExtractionEnabledThroughProps(props),
@@ -681,6 +710,7 @@ class Instance extends React.PureComponent<Props, State> {
681
710
  isCascadingOverwritten={isCascadingOverwritten}
682
711
  isCustomMetadata={isProperties}
683
712
  isExistingCascadePolicy={isExistingCascadePolicy}
713
+ onAIAgentSelect={this.onAIAgentSelect}
684
714
  onAIFolderExtractionToggle={this.onAIFolderExtractionToggle}
685
715
  onCascadeModeChange={this.onCascadeModeChange}
686
716
  onCascadeToggle={this.onCascadeToggle}
@@ -113,21 +113,68 @@ describe('features/metadata-instance-editor/CascadePolicy', () => {
113
113
  });
114
114
 
115
115
  describe('AI Agent Selector', () => {
116
- test('should render AI agent selector with default to basic when AI features are enabled', () => {
116
+ test('should render AI agent selector with default to basic when AI features are enabled', async () => {
117
117
  render(
118
118
  <CascadePolicy
119
119
  canEdit
120
120
  canUseAIFolderExtraction
121
121
  canUseAIFolderExtractionAgentSelector
122
122
  shouldShowCascadeOptions
123
+ isAIFolderExtractionEnabled
124
+ onAIFolderExtractionToggle={jest.fn()}
123
125
  />,
124
126
  );
125
- expect(screen.getByRole('combobox', { name: 'Basic' })).toBeInTheDocument();
127
+
128
+ const aiToggle = screen.getByRole('switch', { name: 'Box AI Autofill' });
129
+ await userEvent.click(aiToggle); // Enable AI
130
+
131
+ expect(aiToggle).toBeChecked();
132
+
133
+ expect(screen.getByRole('combobox', { name: 'Standard' })).toBeInTheDocument();
126
134
  });
127
135
 
128
136
  test('should not render AI agent selector when canUseAIFolderExtractionAgentSelector is false', () => {
129
137
  render(<CascadePolicy canEdit canUseAIFolderExtraction shouldShowCascadeOptions />);
130
- expect(screen.queryByRole('combobox', { name: 'Basic' })).not.toBeInTheDocument();
138
+ expect(screen.queryByRole('combobox', { name: 'Standard' })).not.toBeInTheDocument();
139
+ });
140
+
141
+ test('should call onAIAgentSelect when an agent is selected', async () => {
142
+ const onAIAgentSelect = jest.fn();
143
+ render(
144
+ <CascadePolicy
145
+ canEdit
146
+ canUseAIFolderExtraction
147
+ canUseAIFolderExtractionAgentSelector
148
+ shouldShowCascadeOptions
149
+ isAIFolderExtractionEnabled
150
+ onAIAgentSelect={onAIAgentSelect}
151
+ onAIFolderExtractionToggle={jest.fn()}
152
+ />,
153
+ );
154
+
155
+ const aiToggle = screen.getByRole('switch', { name: 'Box AI Autofill' });
156
+ await userEvent.click(aiToggle); // Enable AI
157
+
158
+ expect(aiToggle).toBeChecked();
159
+
160
+ // Find the combobox by its accessible name
161
+ const combobox = screen.getByRole('combobox', { name: 'Standard' });
162
+
163
+ // Open the combobox (simulate user click)
164
+ await userEvent.click(combobox);
165
+
166
+ // Find the option for "Advanced" and select it
167
+ const option = await screen.findByRole('option', { name: 'Enhanced' });
168
+ await userEvent.click(option);
169
+
170
+ // The expected agent object (should match the one in CascadePolicy.js)
171
+ const expectedAgent = {
172
+ id: '1',
173
+ name: 'Standard',
174
+ isEnterpriseDefault: true,
175
+ };
176
+
177
+ expect(onAIAgentSelect).toHaveBeenCalledWith(expectedAgent);
131
178
  });
132
179
  });
133
180