box-ui-elements 23.3.0-beta.5 → 23.3.0-beta.7
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.
- package/dist/explorer.css +1 -1
- package/dist/explorer.js +1 -1
- package/dist/openwith.js +1 -1
- package/dist/picker.js +1 -1
- package/dist/preview.css +1 -1
- package/dist/preview.js +1 -1
- package/dist/sharing.js +1 -1
- package/dist/sidebar.css +1 -1
- package/dist/sidebar.js +1 -1
- package/dist/uploader.js +1 -1
- package/es/features/metadata-instance-editor/CascadePolicy.js +60 -2
- package/es/features/metadata-instance-editor/CascadePolicy.js.flow +72 -1
- package/es/features/metadata-instance-editor/CascadePolicy.js.map +1 -1
- package/es/features/metadata-instance-editor/CascadePolicy.scss +15 -1
- package/es/features/metadata-instance-editor/CascadePolicy.stories.js +24 -0
- package/es/features/metadata-instance-editor/CascadePolicy.stories.js.flow +31 -0
- package/es/features/metadata-instance-editor/CascadePolicy.stories.js.map +1 -0
- package/es/features/metadata-instance-editor/Instance.js +14 -2
- package/es/features/metadata-instance-editor/Instance.js.flow +23 -3
- package/es/features/metadata-instance-editor/Instance.js.map +1 -1
- package/es/features/metadata-instance-editor/Instances.js +2 -0
- package/es/features/metadata-instance-editor/Instances.js.flow +3 -0
- package/es/features/metadata-instance-editor/Instances.js.map +1 -1
- package/es/features/metadata-instance-editor/MetadataInstanceEditor.js +2 -0
- package/es/features/metadata-instance-editor/MetadataInstanceEditor.js.flow +3 -0
- package/es/features/metadata-instance-editor/MetadataInstanceEditor.js.map +1 -1
- package/es/features/metadata-instance-editor/messages.js +20 -0
- package/es/features/metadata-instance-editor/messages.js.flow +26 -0
- package/es/features/metadata-instance-editor/messages.js.map +1 -1
- package/i18n/bn-IN.js +5 -0
- package/i18n/bn-IN.properties +10 -0
- package/i18n/da-DK.js +5 -0
- package/i18n/da-DK.properties +10 -0
- package/i18n/de-DE.js +5 -0
- package/i18n/de-DE.properties +10 -0
- package/i18n/en-AU.js +5 -0
- package/i18n/en-AU.properties +10 -0
- package/i18n/en-CA.js +5 -0
- package/i18n/en-CA.properties +10 -0
- package/i18n/en-GB.js +5 -0
- package/i18n/en-GB.properties +10 -0
- package/i18n/en-US.js +5 -0
- package/i18n/en-US.properties +10 -0
- package/i18n/en-x-pseudo.js +1016 -1011
- package/i18n/en-x-pseudo.properties +1021 -1011
- package/i18n/es-419.js +5 -0
- package/i18n/es-419.properties +10 -0
- package/i18n/es-ES.js +5 -0
- package/i18n/es-ES.properties +10 -0
- package/i18n/fi-FI.js +5 -0
- package/i18n/fi-FI.properties +10 -0
- package/i18n/fr-CA.js +5 -0
- package/i18n/fr-CA.properties +10 -0
- package/i18n/fr-FR.js +5 -0
- package/i18n/fr-FR.properties +10 -0
- package/i18n/hi-IN.js +5 -0
- package/i18n/hi-IN.properties +10 -0
- package/i18n/it-IT.js +5 -0
- package/i18n/it-IT.properties +10 -0
- package/i18n/ja-JP.js +5 -0
- package/i18n/ja-JP.properties +10 -0
- package/i18n/ko-KR.js +5 -0
- package/i18n/ko-KR.properties +10 -0
- package/i18n/nb-NO.js +5 -0
- package/i18n/nb-NO.properties +10 -0
- package/i18n/nl-NL.js +5 -0
- package/i18n/nl-NL.properties +10 -0
- package/i18n/pl-PL.js +5 -0
- package/i18n/pl-PL.properties +10 -0
- package/i18n/pt-BR.js +5 -0
- package/i18n/pt-BR.properties +10 -0
- package/i18n/ru-RU.js +5 -0
- package/i18n/ru-RU.properties +10 -0
- package/i18n/sv-SE.js +5 -0
- package/i18n/sv-SE.properties +10 -0
- package/i18n/tr-TR.js +5 -0
- package/i18n/tr-TR.properties +10 -0
- package/i18n/zh-CN.js +5 -0
- package/i18n/zh-CN.properties +10 -0
- package/i18n/zh-TW.js +5 -0
- package/i18n/zh-TW.properties +10 -0
- package/package.json +2 -2
- package/src/features/metadata-instance-editor/CascadePolicy.js +72 -1
- package/src/features/metadata-instance-editor/CascadePolicy.scss +15 -1
- package/src/features/metadata-instance-editor/CascadePolicy.stories.js +31 -0
- package/src/features/metadata-instance-editor/Instance.js +23 -3
- package/src/features/metadata-instance-editor/Instances.js +3 -0
- package/src/features/metadata-instance-editor/MetadataInstanceEditor.js +3 -0
- package/src/features/metadata-instance-editor/__tests__/CascadePolicy.test.js +51 -0
- package/src/features/metadata-instance-editor/__tests__/__snapshots__/CascadePolicy.test.js.snap +9 -9
- package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instance.test.js.snap +4 -1
- package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instances.test.js.snap +2 -0
- package/src/features/metadata-instance-editor/__tests__/__snapshots__/MetadataInstanceEditor.test.js.snap +1 -0
- package/src/features/metadata-instance-editor/messages.js +26 -0
package/i18n/ru-RU.properties
CHANGED
|
@@ -1210,6 +1210,14 @@ boxui.itemDetails.url = URL-адрес
|
|
|
1210
1210
|
boxui.itemDetails.urlPlaceholder = Введите действительный URL-адрес
|
|
1211
1211
|
# Label for comment options menu
|
|
1212
1212
|
boxui.media.menuButtonArialLabel = Параметры
|
|
1213
|
+
# Description for AI autofill toggle switch
|
|
1214
|
+
boxui.metadataInstanceEditor.aiAutofillDescription = Use Box AI to automatically extract metadata values.
|
|
1215
|
+
# Learn more link for AI autofill
|
|
1216
|
+
boxui.metadataInstanceEditor.aiAutofillLearnMore = Подробнее
|
|
1217
|
+
# Notice for AI autofill toggle switch
|
|
1218
|
+
boxui.metadataInstanceEditor.aiAutofillNotice = Enabling this feature may involve additional charges. Please review our {pricingLink} for more information.
|
|
1219
|
+
# Pricing details link for AI autofill
|
|
1220
|
+
boxui.metadataInstanceEditor.aiAutofillPricingDetails = pricing details
|
|
1213
1221
|
# Informational text below collapsible header indicating that all fields for this template are hidden
|
|
1214
1222
|
boxui.metadataInstanceEditor.allAttributesAreHidden = Все атрибуты этого шаблона скрыты.
|
|
1215
1223
|
# Informational text below enable cascade policy toggle switch
|
|
@@ -1250,6 +1258,8 @@ boxui.metadataInstanceEditor.customValue = Значение
|
|
|
1250
1258
|
boxui.metadataInstanceEditor.customValuePlaceholder = Пример: 42
|
|
1251
1259
|
# Text that shows in a tooltip above the edit pencil button.
|
|
1252
1260
|
boxui.metadataInstanceEditor.editTooltip = Редактирование метаданных
|
|
1261
|
+
# Label for enable AI autofill toggle switch
|
|
1262
|
+
boxui.metadataInstanceEditor.enableAIAutofill = Box AI Autofill
|
|
1253
1263
|
# Label for enable cascade policy toggle switch
|
|
1254
1264
|
boxui.metadataInstanceEditor.enableCascadePolicy = Включить каскадную политику
|
|
1255
1265
|
# Message for users who may attempt to remove a custom metadata instance for a file. Also non-recoverable
|
package/i18n/sv-SE.js
CHANGED
|
@@ -605,6 +605,10 @@ export default {
|
|
|
605
605
|
"boxui.itemDetails.url": "Webbadress",
|
|
606
606
|
"boxui.itemDetails.urlPlaceholder": "Ange en giltig URL",
|
|
607
607
|
"boxui.media.menuButtonArialLabel": "Alternativ",
|
|
608
|
+
"boxui.metadataInstanceEditor.aiAutofillDescription": "Use Box AI to automatically extract metadata values.",
|
|
609
|
+
"boxui.metadataInstanceEditor.aiAutofillLearnMore": "Läs mer",
|
|
610
|
+
"boxui.metadataInstanceEditor.aiAutofillNotice": "Enabling this feature may involve additional charges. Please review our {pricingLink} for more information.",
|
|
611
|
+
"boxui.metadataInstanceEditor.aiAutofillPricingDetails": "pricing details",
|
|
608
612
|
"boxui.metadataInstanceEditor.allAttributesAreHidden": "Alla attribut i den här mallen har dolts.",
|
|
609
613
|
"boxui.metadataInstanceEditor.applyCascadePolicyText": "Använd mallen och mallvärdena för alla nya och befintliga objekt i den här mappen med undermappar.",
|
|
610
614
|
"boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Övergripande policy kan inte tillämpas på anpassade metadata just nu.",
|
|
@@ -625,6 +629,7 @@ export default {
|
|
|
625
629
|
"boxui.metadataInstanceEditor.customValue": "Värde",
|
|
626
630
|
"boxui.metadataInstanceEditor.customValuePlaceholder": "t.ex. 42",
|
|
627
631
|
"boxui.metadataInstanceEditor.editTooltip": "Redigera metadata",
|
|
632
|
+
"boxui.metadataInstanceEditor.enableAIAutofill": "Box AI Autofill",
|
|
628
633
|
"boxui.metadataInstanceEditor.enableCascadePolicy": "Aktivera övergripande policy",
|
|
629
634
|
"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?",
|
|
630
635
|
"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?",
|
package/i18n/sv-SE.properties
CHANGED
|
@@ -1210,6 +1210,14 @@ boxui.itemDetails.url = Webbadress
|
|
|
1210
1210
|
boxui.itemDetails.urlPlaceholder = Ange en giltig URL
|
|
1211
1211
|
# Label for comment options menu
|
|
1212
1212
|
boxui.media.menuButtonArialLabel = Alternativ
|
|
1213
|
+
# Description for AI autofill toggle switch
|
|
1214
|
+
boxui.metadataInstanceEditor.aiAutofillDescription = Use Box AI to automatically extract metadata values.
|
|
1215
|
+
# Learn more link for AI autofill
|
|
1216
|
+
boxui.metadataInstanceEditor.aiAutofillLearnMore = Läs mer
|
|
1217
|
+
# Notice for AI autofill toggle switch
|
|
1218
|
+
boxui.metadataInstanceEditor.aiAutofillNotice = Enabling this feature may involve additional charges. Please review our {pricingLink} for more information.
|
|
1219
|
+
# Pricing details link for AI autofill
|
|
1220
|
+
boxui.metadataInstanceEditor.aiAutofillPricingDetails = pricing details
|
|
1213
1221
|
# Informational text below collapsible header indicating that all fields for this template are hidden
|
|
1214
1222
|
boxui.metadataInstanceEditor.allAttributesAreHidden = Alla attribut i den här mallen har dolts.
|
|
1215
1223
|
# Informational text below enable cascade policy toggle switch
|
|
@@ -1250,6 +1258,8 @@ boxui.metadataInstanceEditor.customValue = Värde
|
|
|
1250
1258
|
boxui.metadataInstanceEditor.customValuePlaceholder = t.ex. 42
|
|
1251
1259
|
# Text that shows in a tooltip above the edit pencil button.
|
|
1252
1260
|
boxui.metadataInstanceEditor.editTooltip = Redigera metadata
|
|
1261
|
+
# Label for enable AI autofill toggle switch
|
|
1262
|
+
boxui.metadataInstanceEditor.enableAIAutofill = Box AI Autofill
|
|
1253
1263
|
# Label for enable cascade policy toggle switch
|
|
1254
1264
|
boxui.metadataInstanceEditor.enableCascadePolicy = Aktivera övergripande policy
|
|
1255
1265
|
# Message for users who may attempt to remove a custom metadata instance for a file. Also non-recoverable
|
package/i18n/tr-TR.js
CHANGED
|
@@ -605,6 +605,10 @@ export default {
|
|
|
605
605
|
"boxui.itemDetails.url": "URL",
|
|
606
606
|
"boxui.itemDetails.urlPlaceholder": "Geçerli bir URL girin",
|
|
607
607
|
"boxui.media.menuButtonArialLabel": "Seçenekler",
|
|
608
|
+
"boxui.metadataInstanceEditor.aiAutofillDescription": "Use Box AI to automatically extract metadata values.",
|
|
609
|
+
"boxui.metadataInstanceEditor.aiAutofillLearnMore": "Daha fazla bilgi edinin",
|
|
610
|
+
"boxui.metadataInstanceEditor.aiAutofillNotice": "Enabling this feature may involve additional charges. Please review our {pricingLink} for more information.",
|
|
611
|
+
"boxui.metadataInstanceEditor.aiAutofillPricingDetails": "pricing details",
|
|
608
612
|
"boxui.metadataInstanceEditor.allAttributesAreHidden": "Bu şablondaki tüm özellikler gizli.",
|
|
609
613
|
"boxui.metadataInstanceEditor.applyCascadePolicyText": "Şablonu ve değerlerini, bu klasör ve alt klasörlerindeki tüm yeni ve mevcut öğelere uygulayın.",
|
|
610
614
|
"boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Alt klasörlere uygulama ilkesi şu anda özel meta verilere uygulanamıyor",
|
|
@@ -625,6 +629,7 @@ export default {
|
|
|
625
629
|
"boxui.metadataInstanceEditor.customValue": "Değer",
|
|
626
630
|
"boxui.metadataInstanceEditor.customValuePlaceholder": "ör. 42",
|
|
627
631
|
"boxui.metadataInstanceEditor.editTooltip": "Meta Verileri Düzenle",
|
|
632
|
+
"boxui.metadataInstanceEditor.enableAIAutofill": "Box AI Autofill",
|
|
628
633
|
"boxui.metadataInstanceEditor.enableCascadePolicy": "Alt Klasörlere Uygulama İlkesini Etkinleştir",
|
|
629
634
|
"boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "Bu özel meta veriyi ve tüm değerlerini dosyadan silmek istediğinizden emin misiniz?",
|
|
630
635
|
"boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "Bu \"{metadataName}\" öğesini ve tüm değerlerini bu dosyadan silmek istediğinizden emin misiniz?",
|
package/i18n/tr-TR.properties
CHANGED
|
@@ -1210,6 +1210,14 @@ boxui.itemDetails.url = URL
|
|
|
1210
1210
|
boxui.itemDetails.urlPlaceholder = Geçerli bir URL girin
|
|
1211
1211
|
# Label for comment options menu
|
|
1212
1212
|
boxui.media.menuButtonArialLabel = Seçenekler
|
|
1213
|
+
# Description for AI autofill toggle switch
|
|
1214
|
+
boxui.metadataInstanceEditor.aiAutofillDescription = Use Box AI to automatically extract metadata values.
|
|
1215
|
+
# Learn more link for AI autofill
|
|
1216
|
+
boxui.metadataInstanceEditor.aiAutofillLearnMore = Daha fazla bilgi edinin
|
|
1217
|
+
# Notice for AI autofill toggle switch
|
|
1218
|
+
boxui.metadataInstanceEditor.aiAutofillNotice = Enabling this feature may involve additional charges. Please review our {pricingLink} for more information.
|
|
1219
|
+
# Pricing details link for AI autofill
|
|
1220
|
+
boxui.metadataInstanceEditor.aiAutofillPricingDetails = pricing details
|
|
1213
1221
|
# Informational text below collapsible header indicating that all fields for this template are hidden
|
|
1214
1222
|
boxui.metadataInstanceEditor.allAttributesAreHidden = Bu şablondaki tüm özellikler gizli.
|
|
1215
1223
|
# Informational text below enable cascade policy toggle switch
|
|
@@ -1250,6 +1258,8 @@ boxui.metadataInstanceEditor.customValue = Değer
|
|
|
1250
1258
|
boxui.metadataInstanceEditor.customValuePlaceholder = ör. 42
|
|
1251
1259
|
# Text that shows in a tooltip above the edit pencil button.
|
|
1252
1260
|
boxui.metadataInstanceEditor.editTooltip = Meta Verileri Düzenle
|
|
1261
|
+
# Label for enable AI autofill toggle switch
|
|
1262
|
+
boxui.metadataInstanceEditor.enableAIAutofill = Box AI Autofill
|
|
1253
1263
|
# Label for enable cascade policy toggle switch
|
|
1254
1264
|
boxui.metadataInstanceEditor.enableCascadePolicy = Alt Klasörlere Uygulama İlkesini Etkinleştir
|
|
1255
1265
|
# Message for users who may attempt to remove a custom metadata instance for a file. Also non-recoverable
|
package/i18n/zh-CN.js
CHANGED
|
@@ -605,6 +605,10 @@ export default {
|
|
|
605
605
|
"boxui.itemDetails.url": "URL",
|
|
606
606
|
"boxui.itemDetails.urlPlaceholder": "输入有效的 URL",
|
|
607
607
|
"boxui.media.menuButtonArialLabel": "选项",
|
|
608
|
+
"boxui.metadataInstanceEditor.aiAutofillDescription": "Use Box AI to automatically extract metadata values.",
|
|
609
|
+
"boxui.metadataInstanceEditor.aiAutofillLearnMore": "了解更多",
|
|
610
|
+
"boxui.metadataInstanceEditor.aiAutofillNotice": "Enabling this feature may involve additional charges. Please review our {pricingLink} for more information.",
|
|
611
|
+
"boxui.metadataInstanceEditor.aiAutofillPricingDetails": "pricing details",
|
|
608
612
|
"boxui.metadataInstanceEditor.allAttributesAreHidden": "此模板中的所有属性都已隐藏。",
|
|
609
613
|
"boxui.metadataInstanceEditor.applyCascadePolicyText": "将模板及其值应用于此文件夹及其子文件夹中的所有新项目和现有项目。",
|
|
610
614
|
"boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "级联策略目前不适用于自定义元数据。",
|
|
@@ -625,6 +629,7 @@ export default {
|
|
|
625
629
|
"boxui.metadataInstanceEditor.customValue": "值",
|
|
626
630
|
"boxui.metadataInstanceEditor.customValuePlaceholder": "例如 42",
|
|
627
631
|
"boxui.metadataInstanceEditor.editTooltip": "编辑元数据",
|
|
632
|
+
"boxui.metadataInstanceEditor.enableAIAutofill": "Box AI Autofill",
|
|
628
633
|
"boxui.metadataInstanceEditor.enableCascadePolicy": "启用级联策略",
|
|
629
634
|
"boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "是否确定要从此文件中删除此自定义元数据及其所有值?",
|
|
630
635
|
"boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "是否确定要从此文件中删除 \"{metadataName}\" 及其所有值?",
|
package/i18n/zh-CN.properties
CHANGED
|
@@ -1210,6 +1210,14 @@ boxui.itemDetails.url = URL
|
|
|
1210
1210
|
boxui.itemDetails.urlPlaceholder = 输入有效的 URL
|
|
1211
1211
|
# Label for comment options menu
|
|
1212
1212
|
boxui.media.menuButtonArialLabel = 选项
|
|
1213
|
+
# Description for AI autofill toggle switch
|
|
1214
|
+
boxui.metadataInstanceEditor.aiAutofillDescription = Use Box AI to automatically extract metadata values.
|
|
1215
|
+
# Learn more link for AI autofill
|
|
1216
|
+
boxui.metadataInstanceEditor.aiAutofillLearnMore = 了解更多
|
|
1217
|
+
# Notice for AI autofill toggle switch
|
|
1218
|
+
boxui.metadataInstanceEditor.aiAutofillNotice = Enabling this feature may involve additional charges. Please review our {pricingLink} for more information.
|
|
1219
|
+
# Pricing details link for AI autofill
|
|
1220
|
+
boxui.metadataInstanceEditor.aiAutofillPricingDetails = pricing details
|
|
1213
1221
|
# Informational text below collapsible header indicating that all fields for this template are hidden
|
|
1214
1222
|
boxui.metadataInstanceEditor.allAttributesAreHidden = 此模板中的所有属性都已隐藏。
|
|
1215
1223
|
# Informational text below enable cascade policy toggle switch
|
|
@@ -1250,6 +1258,8 @@ boxui.metadataInstanceEditor.customValue = 值
|
|
|
1250
1258
|
boxui.metadataInstanceEditor.customValuePlaceholder = 例如 42
|
|
1251
1259
|
# Text that shows in a tooltip above the edit pencil button.
|
|
1252
1260
|
boxui.metadataInstanceEditor.editTooltip = 编辑元数据
|
|
1261
|
+
# Label for enable AI autofill toggle switch
|
|
1262
|
+
boxui.metadataInstanceEditor.enableAIAutofill = Box AI Autofill
|
|
1253
1263
|
# Label for enable cascade policy toggle switch
|
|
1254
1264
|
boxui.metadataInstanceEditor.enableCascadePolicy = 启用级联策略
|
|
1255
1265
|
# Message for users who may attempt to remove a custom metadata instance for a file. Also non-recoverable
|
package/i18n/zh-TW.js
CHANGED
|
@@ -605,6 +605,10 @@ export default {
|
|
|
605
605
|
"boxui.itemDetails.url": "URL",
|
|
606
606
|
"boxui.itemDetails.urlPlaceholder": "輸入有效的 URL",
|
|
607
607
|
"boxui.media.menuButtonArialLabel": "選項",
|
|
608
|
+
"boxui.metadataInstanceEditor.aiAutofillDescription": "Use Box AI to automatically extract metadata values.",
|
|
609
|
+
"boxui.metadataInstanceEditor.aiAutofillLearnMore": "詳細資訊",
|
|
610
|
+
"boxui.metadataInstanceEditor.aiAutofillNotice": "Enabling this feature may involve additional charges. Please review our {pricingLink} for more information.",
|
|
611
|
+
"boxui.metadataInstanceEditor.aiAutofillPricingDetails": "pricing details",
|
|
608
612
|
"boxui.metadataInstanceEditor.allAttributesAreHidden": "此範本中的所有屬性皆已隱藏。",
|
|
609
613
|
"boxui.metadataInstanceEditor.applyCascadePolicyText": "將範本及其值套用到此資料夾和其子資料夾中的所有新項目與現有項目。",
|
|
610
614
|
"boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "向下套用原則目前無法套用到自訂中繼資料。",
|
|
@@ -625,6 +629,7 @@ export default {
|
|
|
625
629
|
"boxui.metadataInstanceEditor.customValue": "值",
|
|
626
630
|
"boxui.metadataInstanceEditor.customValuePlaceholder": "例如 42",
|
|
627
631
|
"boxui.metadataInstanceEditor.editTooltip": "編輯中繼資料",
|
|
632
|
+
"boxui.metadataInstanceEditor.enableAIAutofill": "Box AI Autofill",
|
|
628
633
|
"boxui.metadataInstanceEditor.enableCascadePolicy": "啟用向下套用原則",
|
|
629
634
|
"boxui.metadataInstanceEditor.fileMetadataRemoveCustomTemplateConfirm": "確定要從此檔案刪除此自訂中繼資料及其所有值?",
|
|
630
635
|
"boxui.metadataInstanceEditor.fileMetadataRemoveTemplateConfirm": "確定要從此檔案刪除「{metadataName}」及其所有值?",
|
package/i18n/zh-TW.properties
CHANGED
|
@@ -1210,6 +1210,14 @@ boxui.itemDetails.url = URL
|
|
|
1210
1210
|
boxui.itemDetails.urlPlaceholder = 輸入有效的 URL
|
|
1211
1211
|
# Label for comment options menu
|
|
1212
1212
|
boxui.media.menuButtonArialLabel = 選項
|
|
1213
|
+
# Description for AI autofill toggle switch
|
|
1214
|
+
boxui.metadataInstanceEditor.aiAutofillDescription = Use Box AI to automatically extract metadata values.
|
|
1215
|
+
# Learn more link for AI autofill
|
|
1216
|
+
boxui.metadataInstanceEditor.aiAutofillLearnMore = 詳細資訊
|
|
1217
|
+
# Notice for AI autofill toggle switch
|
|
1218
|
+
boxui.metadataInstanceEditor.aiAutofillNotice = Enabling this feature may involve additional charges. Please review our {pricingLink} for more information.
|
|
1219
|
+
# Pricing details link for AI autofill
|
|
1220
|
+
boxui.metadataInstanceEditor.aiAutofillPricingDetails = pricing details
|
|
1213
1221
|
# Informational text below collapsible header indicating that all fields for this template are hidden
|
|
1214
1222
|
boxui.metadataInstanceEditor.allAttributesAreHidden = 此範本中的所有屬性皆已隱藏。
|
|
1215
1223
|
# Informational text below enable cascade policy toggle switch
|
|
@@ -1250,6 +1258,8 @@ boxui.metadataInstanceEditor.customValue = 值
|
|
|
1250
1258
|
boxui.metadataInstanceEditor.customValuePlaceholder = 例如 42
|
|
1251
1259
|
# Text that shows in a tooltip above the edit pencil button.
|
|
1252
1260
|
boxui.metadataInstanceEditor.editTooltip = 編輯中繼資料
|
|
1261
|
+
# Label for enable AI autofill toggle switch
|
|
1262
|
+
boxui.metadataInstanceEditor.enableAIAutofill = Box AI Autofill
|
|
1253
1263
|
# Label for enable cascade policy toggle switch
|
|
1254
1264
|
boxui.metadataInstanceEditor.enableCascadePolicy = 啟用向下套用原則
|
|
1255
1265
|
# Message for users who may attempt to remove a custom metadata instance for a file. Also non-recoverable
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "box-ui-elements",
|
|
3
|
-
"version": "23.3.0-beta.
|
|
3
|
+
"version": "23.3.0-beta.7",
|
|
4
4
|
"description": "Box UI Elements",
|
|
5
5
|
"author": "Box (https://www.box.com/)",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"build:prod:dist": "NODE_ENV=production webpack --config scripts/webpack.config.js --mode production",
|
|
53
53
|
"build:prod:examples": "LANGUAGE=en-US REACT=true NODE_ENV=production node --max_old_space_size=8192 node_modules/.bin/styleguidist build --config scripts/styleguide.config.js --mode production",
|
|
54
54
|
"build:prod:npm": "BABEL_ENV=production OUTPUT=dist LANGUAGE=en-US REACT=true yarn build:prod:dist",
|
|
55
|
-
"build:prod:storybook": "LANGUAGE=en-US REACT=true BROWSERSLIST_ENV=production BABEL_ENV=development NODE_ENV=development storybook build -c .storybook -o
|
|
55
|
+
"build:prod:storybook": "LANGUAGE=en-US REACT=true BROWSERSLIST_ENV=production BABEL_ENV=development NODE_ENV=development storybook build -c .storybook -o storybook",
|
|
56
56
|
"build:sync": "LANGUAGE=en-US BABEL_ENV=development NODE_ENV=development RSYNC=true webpack --config scripts/webpack.config.js --mode development",
|
|
57
57
|
"chromatic": "chromatic",
|
|
58
58
|
"clean": "rm -rf dist es i18n/json i18n/*.js reports styleguide",
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { FormattedMessage } from 'react-intl';
|
|
4
4
|
|
|
5
|
+
import { BoxAiAgentSelector } from '@box/box-ai-agent-selector';
|
|
6
|
+
import { InlineNotice, TooltipProvider } from '@box/blueprint-web';
|
|
7
|
+
import BoxAiLogo from '@box/blueprint-web-assets/icons/Logo/BoxAiLogo';
|
|
8
|
+
|
|
5
9
|
import Toggle from '../../components/toggle';
|
|
6
10
|
import { RadioButton, RadioGroup } from '../../components/radio';
|
|
7
11
|
import Link from '../../components/link/Link';
|
|
@@ -10,12 +14,30 @@ import messages from './messages';
|
|
|
10
14
|
import './CascadePolicy.scss';
|
|
11
15
|
|
|
12
16
|
const COMMUNITY_LINK = 'https://support.box.com/hc/en-us/articles/360044195873-Cascading-metadata-in-folders';
|
|
17
|
+
const AI_LINK = 'https://www.box.com/ai';
|
|
18
|
+
const PRICING_LINK = 'https://www.box.com/pricing';
|
|
19
|
+
|
|
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
|
+
];
|
|
13
32
|
|
|
14
33
|
type Props = {
|
|
15
34
|
canEdit: boolean,
|
|
35
|
+
canUseAIFolderExtraction: boolean,
|
|
36
|
+
isAIFolderExtractionEnabled: boolean,
|
|
16
37
|
isCascadingEnabled: boolean,
|
|
17
38
|
isCascadingOverwritten: boolean,
|
|
18
39
|
isCustomMetadata: boolean,
|
|
40
|
+
onAIFolderExtractionToggle: (value: boolean) => void,
|
|
19
41
|
onCascadeModeChange: (value: boolean) => void,
|
|
20
42
|
onCascadeToggle: (value: boolean) => void,
|
|
21
43
|
shouldShowCascadeOptions: boolean,
|
|
@@ -23,9 +45,12 @@ type Props = {
|
|
|
23
45
|
|
|
24
46
|
const CascadePolicy = ({
|
|
25
47
|
canEdit,
|
|
48
|
+
canUseAIFolderExtraction,
|
|
26
49
|
isCascadingEnabled,
|
|
27
50
|
isCascadingOverwritten,
|
|
28
51
|
isCustomMetadata,
|
|
52
|
+
isAIFolderExtractionEnabled,
|
|
53
|
+
onAIFolderExtractionToggle,
|
|
29
54
|
onCascadeToggle,
|
|
30
55
|
onCascadeModeChange,
|
|
31
56
|
shouldShowCascadeOptions,
|
|
@@ -57,7 +82,7 @@ const CascadePolicy = ({
|
|
|
57
82
|
<div className="cascade-policy-text">
|
|
58
83
|
<FormattedMessage {...messages.applyCascadePolicyText} />
|
|
59
84
|
|
|
60
|
-
<Link className="cascade-policy-
|
|
85
|
+
<Link className="cascade-policy-link" href={COMMUNITY_LINK} target="_blank">
|
|
61
86
|
<FormattedMessage {...messages.cascadePolicyLearnMore} />
|
|
62
87
|
</Link>
|
|
63
88
|
</div>
|
|
@@ -96,6 +121,52 @@ const CascadePolicy = ({
|
|
|
96
121
|
</div>
|
|
97
122
|
</div>
|
|
98
123
|
)}
|
|
124
|
+
{shouldShowCascadeOptions && canUseAIFolderExtraction && (
|
|
125
|
+
<div className="metadata-cascade-editor" data-testid="ai-folder-extraction">
|
|
126
|
+
<div className="metadata-cascade-enable">
|
|
127
|
+
<div>
|
|
128
|
+
<BoxAiLogo className="metadata-cascade-ai-logo" width={16} height={16} />
|
|
129
|
+
<FormattedMessage tagName="strong" {...messages.enableAIAutofill} />
|
|
130
|
+
<Toggle
|
|
131
|
+
className="metadata-cascade-toggle"
|
|
132
|
+
isOn={isAIFolderExtractionEnabled}
|
|
133
|
+
label=""
|
|
134
|
+
onChange={e => onAIFolderExtractionToggle(e.target.checked)}
|
|
135
|
+
/>
|
|
136
|
+
</div>
|
|
137
|
+
<div className="cascade-policy-text">
|
|
138
|
+
<FormattedMessage {...messages.aiAutofillDescription} />
|
|
139
|
+
|
|
140
|
+
<Link className="cascade-policy-link" href={AI_LINK} target="_blank">
|
|
141
|
+
<FormattedMessage {...messages.aiAutofillLearnMore} />
|
|
142
|
+
</Link>
|
|
143
|
+
</div>
|
|
144
|
+
<div className="metadata-cascade-ai-agent-selector">
|
|
145
|
+
<TooltipProvider>
|
|
146
|
+
<BoxAiAgentSelector
|
|
147
|
+
agents={agents}
|
|
148
|
+
onErrorAction={() => {}}
|
|
149
|
+
requestState="success"
|
|
150
|
+
selectedAgent={agents[0]}
|
|
151
|
+
variant="sidebar"
|
|
152
|
+
/>
|
|
153
|
+
</TooltipProvider>
|
|
154
|
+
</div>
|
|
155
|
+
<InlineNotice className="metadata-cascade-ai-notice" variant="info">
|
|
156
|
+
<FormattedMessage
|
|
157
|
+
{...messages.aiAutofillNotice}
|
|
158
|
+
values={{
|
|
159
|
+
pricingLink: (
|
|
160
|
+
<Link className="cascade-policy-link" href={PRICING_LINK} target="_blank">
|
|
161
|
+
<FormattedMessage {...messages.aiAutofillPricingDetails} />
|
|
162
|
+
</Link>
|
|
163
|
+
),
|
|
164
|
+
}}
|
|
165
|
+
/>
|
|
166
|
+
</InlineNotice>
|
|
167
|
+
</div>
|
|
168
|
+
</div>
|
|
169
|
+
)}
|
|
99
170
|
</>
|
|
100
171
|
) : (
|
|
101
172
|
readOnlyState
|
|
@@ -40,6 +40,16 @@ $cascade-policy-background: #f1e2fd;
|
|
|
40
40
|
.metadata-cascade-enable {
|
|
41
41
|
margin: 10px 0;
|
|
42
42
|
padding: 14px 15px;
|
|
43
|
+
|
|
44
|
+
.metadata-cascade-ai-logo {
|
|
45
|
+
position: relative;
|
|
46
|
+
top: 3px;
|
|
47
|
+
margin-right: 3px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.metadata-cascade-ai-notice {
|
|
51
|
+
margin-top: 12px;
|
|
52
|
+
}
|
|
43
53
|
}
|
|
44
54
|
|
|
45
55
|
.toggle-container.metadata-cascade-toggle {
|
|
@@ -52,7 +62,7 @@ $cascade-policy-background: #f1e2fd;
|
|
|
52
62
|
clear: left;
|
|
53
63
|
}
|
|
54
64
|
|
|
55
|
-
.cascade-policy-
|
|
65
|
+
.cascade-policy-link {
|
|
56
66
|
color: $bdl-box-blue;
|
|
57
67
|
}
|
|
58
68
|
|
|
@@ -68,3 +78,7 @@ $cascade-policy-background: #f1e2fd;
|
|
|
68
78
|
}
|
|
69
79
|
}
|
|
70
80
|
}
|
|
81
|
+
|
|
82
|
+
.metadata-cascade-ai-agent-selector {
|
|
83
|
+
margin-top: 4px;
|
|
84
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
import CascadePolicy from './CascadePolicy';
|
|
4
|
+
|
|
5
|
+
export const withoutAIMetadataExtraction = () => (
|
|
6
|
+
<CascadePolicy
|
|
7
|
+
canEdit
|
|
8
|
+
isCascadingEnabled
|
|
9
|
+
onCascadeModeChange={() => {}}
|
|
10
|
+
onCascadeToggle={() => {}}
|
|
11
|
+
shouldShowCascadeOptions
|
|
12
|
+
/>
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
export const withAIMetadataExtraction = () => (
|
|
16
|
+
<CascadePolicy
|
|
17
|
+
canEdit
|
|
18
|
+
canUseAIFolderExtraction
|
|
19
|
+
isAIFolderExtractionEnabled
|
|
20
|
+
isCascadingEnabled
|
|
21
|
+
onAIFolderExtractionToggle={() => {}}
|
|
22
|
+
onCascadeModeChange={() => {}}
|
|
23
|
+
onCascadeToggle={() => {}}
|
|
24
|
+
shouldShowCascadeOptions
|
|
25
|
+
/>
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
export default {
|
|
29
|
+
title: 'Features/Metadata Instance Editor/CascadePolicy',
|
|
30
|
+
component: CascadePolicy,
|
|
31
|
+
};
|
|
@@ -47,6 +47,7 @@ import './Instance.scss';
|
|
|
47
47
|
|
|
48
48
|
type Props = {
|
|
49
49
|
canEdit: boolean,
|
|
50
|
+
canUseAIFolderExtraction?: boolean,
|
|
50
51
|
cascadePolicy?: MetadataCascadePolicy, // eslint-disable-line
|
|
51
52
|
data: MetadataFields,
|
|
52
53
|
hasError: boolean,
|
|
@@ -69,6 +70,7 @@ type Props = {
|
|
|
69
70
|
type State = {
|
|
70
71
|
data: Object,
|
|
71
72
|
errors: { [string]: React.Node },
|
|
73
|
+
isAIFolderExtractionEnabled: boolean,
|
|
72
74
|
isBusy: boolean,
|
|
73
75
|
isCascadingEnabled: boolean,
|
|
74
76
|
isCascadingOverwritten: boolean,
|
|
@@ -327,21 +329,28 @@ class Instance extends React.PureComponent<Props, State> {
|
|
|
327
329
|
);
|
|
328
330
|
};
|
|
329
331
|
|
|
332
|
+
onAIFolderExtractionToggle = (value: boolean) => {
|
|
333
|
+
this.setState({ isAIFolderExtractionEnabled: value }, this.setDirty);
|
|
334
|
+
};
|
|
335
|
+
|
|
330
336
|
/**
|
|
331
337
|
* Returns the state from props
|
|
332
338
|
*
|
|
333
339
|
* @return {Object} - react state
|
|
334
340
|
*/
|
|
335
341
|
getState(props: Props): State {
|
|
342
|
+
const isCascadingEnabled = this.isCascadingEnabled(props);
|
|
343
|
+
|
|
336
344
|
return {
|
|
337
345
|
data: cloneDeep(props.data),
|
|
338
346
|
errors: {},
|
|
347
|
+
isAIFolderExtractionEnabled: false,
|
|
339
348
|
isBusy: false,
|
|
340
|
-
isCascadingEnabled
|
|
349
|
+
isCascadingEnabled,
|
|
341
350
|
isCascadingOverwritten: false,
|
|
342
351
|
isEditing: false,
|
|
343
352
|
shouldConfirmRemove: false,
|
|
344
|
-
shouldShowCascadeOptions:
|
|
353
|
+
shouldShowCascadeOptions: isCascadingEnabled,
|
|
345
354
|
};
|
|
346
355
|
}
|
|
347
356
|
|
|
@@ -579,12 +588,20 @@ class Instance extends React.PureComponent<Props, State> {
|
|
|
579
588
|
};
|
|
580
589
|
|
|
581
590
|
render() {
|
|
582
|
-
const {
|
|
591
|
+
const {
|
|
592
|
+
canUseAIFolderExtraction = false,
|
|
593
|
+
cascadePolicy = {},
|
|
594
|
+
isDirty,
|
|
595
|
+
isCascadingPolicyApplicable,
|
|
596
|
+
isOpen,
|
|
597
|
+
template,
|
|
598
|
+
}: Props = this.props;
|
|
583
599
|
const { fields = [] } = template;
|
|
584
600
|
const {
|
|
585
601
|
data,
|
|
586
602
|
errors,
|
|
587
603
|
isBusy,
|
|
604
|
+
isAIFolderExtractionEnabled,
|
|
588
605
|
isCascadingEnabled,
|
|
589
606
|
shouldConfirmRemove,
|
|
590
607
|
shouldShowCascadeOptions,
|
|
@@ -629,9 +646,12 @@ class Instance extends React.PureComponent<Props, State> {
|
|
|
629
646
|
{isCascadingPolicyApplicable && (
|
|
630
647
|
<CascadePolicy
|
|
631
648
|
canEdit={isEditing && !!cascadePolicy.canEdit}
|
|
649
|
+
canUseAIFolderExtraction={canUseAIFolderExtraction}
|
|
650
|
+
isAIFolderExtractionEnabled={isAIFolderExtractionEnabled}
|
|
632
651
|
isCascadingEnabled={isCascadingEnabled}
|
|
633
652
|
isCascadingOverwritten={isCascadingOverwritten}
|
|
634
653
|
isCustomMetadata={isProperties}
|
|
654
|
+
onAIFolderExtractionToggle={this.onAIFolderExtractionToggle}
|
|
635
655
|
onCascadeModeChange={this.onCascadeModeChange}
|
|
636
656
|
onCascadeToggle={this.onCascadeToggle}
|
|
637
657
|
shouldShowCascadeOptions={shouldShowCascadeOptions}
|
|
@@ -6,6 +6,7 @@ import type { MetadataEditor, MetadataCascadingPolicyData } from '../../common/t
|
|
|
6
6
|
import type { JSONPatchOperations } from '../../common/types/api';
|
|
7
7
|
|
|
8
8
|
type Props = {
|
|
9
|
+
canUseAIFolderExtraction?: boolean,
|
|
9
10
|
editors?: Array<MetadataEditor>,
|
|
10
11
|
isCascadingPolicyApplicable?: boolean,
|
|
11
12
|
onModification?: (id: string, isDirty: boolean) => void,
|
|
@@ -20,6 +21,7 @@ type Props = {
|
|
|
20
21
|
};
|
|
21
22
|
|
|
22
23
|
const Instances = ({
|
|
24
|
+
canUseAIFolderExtraction = false,
|
|
23
25
|
isCascadingPolicyApplicable = false,
|
|
24
26
|
editors = [],
|
|
25
27
|
onModification,
|
|
@@ -34,6 +36,7 @@ const Instances = ({
|
|
|
34
36
|
return (
|
|
35
37
|
<Instance
|
|
36
38
|
canEdit={instance.canEdit}
|
|
39
|
+
canUseAIFolderExtraction={canUseAIFolderExtraction}
|
|
37
40
|
cascadePolicy={instance.cascadePolicy}
|
|
38
41
|
data={instance.data}
|
|
39
42
|
hasError={hasError}
|
|
@@ -14,6 +14,7 @@ import './MetadataInstanceEditor.scss';
|
|
|
14
14
|
type Props = {
|
|
15
15
|
blurExceptionClassNames?: Array<string>,
|
|
16
16
|
canAdd: boolean,
|
|
17
|
+
canUseAIFolderExtraction?: boolean,
|
|
17
18
|
editors?: Array<MetadataEditor>,
|
|
18
19
|
isCascadingPolicyApplicable?: boolean,
|
|
19
20
|
isDropdownBusy?: boolean,
|
|
@@ -35,6 +36,7 @@ type Props = {
|
|
|
35
36
|
const MetadataInstanceEditor = ({
|
|
36
37
|
blurExceptionClassNames,
|
|
37
38
|
canAdd,
|
|
39
|
+
canUseAIFolderExtraction = false,
|
|
38
40
|
isCascadingPolicyApplicable = false,
|
|
39
41
|
isDropdownBusy,
|
|
40
42
|
editors = [],
|
|
@@ -61,6 +63,7 @@ const MetadataInstanceEditor = ({
|
|
|
61
63
|
) : (
|
|
62
64
|
<ScrollWrapper>
|
|
63
65
|
<Instances
|
|
66
|
+
canUseAIFolderExtraction={canUseAIFolderExtraction}
|
|
64
67
|
editors={editors}
|
|
65
68
|
isCascadingPolicyApplicable={isCascadingPolicyApplicable}
|
|
66
69
|
onModification={onModification}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
|
|
3
|
+
import { screen, render, within } from '../../../test-utils/testing-library';
|
|
4
|
+
|
|
3
5
|
import CascadePolicy from '../CascadePolicy';
|
|
4
6
|
|
|
5
7
|
describe('features/metadata-instance-editor/CascadePolicy', () => {
|
|
@@ -48,4 +50,53 @@ describe('features/metadata-instance-editor/CascadePolicy', () => {
|
|
|
48
50
|
);
|
|
49
51
|
expect(wrapper).toMatchSnapshot();
|
|
50
52
|
});
|
|
53
|
+
|
|
54
|
+
test('should render AI folder extraction toggle when canEdit, canUseAIFolderExtraction, and shouldShowCascadeOptions are true', () => {
|
|
55
|
+
render(<CascadePolicy canEdit canUseAIFolderExtraction shouldShowCascadeOptions />);
|
|
56
|
+
expect(screen.getByText('Box AI Autofill')).toBeInTheDocument();
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
test.each([
|
|
60
|
+
[false, false, false],
|
|
61
|
+
[true, false, false],
|
|
62
|
+
[false, true, false],
|
|
63
|
+
[true, true, false],
|
|
64
|
+
])(
|
|
65
|
+
'should not render AI folder extraction toggle when canEdit, canUseAIFolderExtraction, and shouldShowCascadeOptions are %s, %s, and %s',
|
|
66
|
+
(canEdit, canUseAIFolderExtraction, shouldShowCascadeOptions) => {
|
|
67
|
+
render(
|
|
68
|
+
<CascadePolicy
|
|
69
|
+
canEdit={canEdit}
|
|
70
|
+
canUseAIFolderExtraction={canUseAIFolderExtraction}
|
|
71
|
+
shouldShowCascadeOptions={shouldShowCascadeOptions}
|
|
72
|
+
/>,
|
|
73
|
+
);
|
|
74
|
+
expect(screen.queryByText('Box AI Autofill')).not.toBeInTheDocument();
|
|
75
|
+
},
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
describe('AI Autofill Links', () => {
|
|
79
|
+
test('should render AI and pricing links when AI features are enabled', () => {
|
|
80
|
+
render(<CascadePolicy canEdit canUseAIFolderExtraction shouldShowCascadeOptions />);
|
|
81
|
+
|
|
82
|
+
// Find link within the AI autofill section since there are two links with the same text in the component
|
|
83
|
+
const aiSection = screen.getByTestId('ai-folder-extraction');
|
|
84
|
+
const aiLink = within(aiSection).getByText('Learn more');
|
|
85
|
+
expect(aiLink).toBeInTheDocument();
|
|
86
|
+
expect(aiLink.closest('a')).toHaveAttribute('href', 'https://www.box.com/ai');
|
|
87
|
+
expect(aiLink.closest('a')).toHaveAttribute('target', '_blank');
|
|
88
|
+
|
|
89
|
+
const pricingLink = screen.getByText('pricing details');
|
|
90
|
+
expect(pricingLink).toBeInTheDocument();
|
|
91
|
+
expect(pricingLink.closest('a')).toHaveAttribute('href', 'https://www.box.com/pricing');
|
|
92
|
+
expect(pricingLink.closest('a')).toHaveAttribute('target', '_blank');
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
describe('AI Agent Selector', () => {
|
|
97
|
+
test('should render AI agent selector with default to basic when AI features are enabled', () => {
|
|
98
|
+
render(<CascadePolicy canEdit canUseAIFolderExtraction shouldShowCascadeOptions />);
|
|
99
|
+
expect(screen.getByRole('button', { name: 'Agent Basic' })).toBeInTheDocument();
|
|
100
|
+
});
|
|
101
|
+
});
|
|
51
102
|
});
|