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

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 (68) hide show
  1. package/dist/explorer.css +1 -1
  2. package/dist/explorer.js +1 -1
  3. package/dist/openwith.js +1 -1
  4. package/dist/picker.js +1 -1
  5. package/dist/preview.css +1 -1
  6. package/dist/preview.js +1 -1
  7. package/dist/sharing.js +1 -1
  8. package/dist/sidebar.css +1 -1
  9. package/dist/sidebar.js +1 -1
  10. package/dist/uploader.js +1 -1
  11. package/es/elements/content-sidebar/SidebarNav.js +14 -3
  12. package/es/elements/content-sidebar/SidebarNav.js.flow +23 -3
  13. package/es/elements/content-sidebar/SidebarNav.js.map +1 -1
  14. package/es/elements/content-sidebar/SidebarNavTablist.js +58 -17
  15. package/es/elements/content-sidebar/SidebarNavTablist.js.flow +80 -21
  16. package/es/elements/content-sidebar/SidebarNavTablist.js.map +1 -1
  17. package/es/features/metadata-instance-editor/CascadePolicy.js +14 -4
  18. package/es/features/metadata-instance-editor/CascadePolicy.js.flow +18 -4
  19. package/es/features/metadata-instance-editor/CascadePolicy.js.map +1 -1
  20. package/es/features/metadata-instance-editor/Instance.js +2 -2
  21. package/es/features/metadata-instance-editor/Instance.js.flow +2 -3
  22. package/es/features/metadata-instance-editor/Instance.js.map +1 -1
  23. package/es/features/metadata-instance-editor/messages.js +8 -0
  24. package/es/features/metadata-instance-editor/messages.js.flow +11 -0
  25. package/es/features/metadata-instance-editor/messages.js.map +1 -1
  26. package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js +32 -0
  27. package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js.flow +36 -0
  28. package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js.map +1 -0
  29. package/i18n/bn-IN.js +2 -0
  30. package/i18n/da-DK.js +2 -0
  31. package/i18n/de-DE.js +2 -0
  32. package/i18n/en-AU.js +2 -0
  33. package/i18n/en-CA.js +2 -0
  34. package/i18n/en-GB.js +2 -0
  35. package/i18n/en-US.js +2 -0
  36. package/i18n/en-US.properties +4 -0
  37. package/i18n/en-x-pseudo.js +2 -0
  38. package/i18n/es-419.js +2 -0
  39. package/i18n/es-ES.js +2 -0
  40. package/i18n/fi-FI.js +2 -0
  41. package/i18n/fr-CA.js +2 -0
  42. package/i18n/fr-FR.js +2 -0
  43. package/i18n/hi-IN.js +2 -0
  44. package/i18n/it-IT.js +2 -0
  45. package/i18n/ja-JP.js +2 -0
  46. package/i18n/ko-KR.js +2 -0
  47. package/i18n/nb-NO.js +2 -0
  48. package/i18n/nl-NL.js +2 -0
  49. package/i18n/pl-PL.js +2 -0
  50. package/i18n/pt-BR.js +2 -0
  51. package/i18n/ru-RU.js +2 -0
  52. package/i18n/sv-SE.js +2 -0
  53. package/i18n/tr-TR.js +2 -0
  54. package/i18n/zh-CN.js +2 -0
  55. package/i18n/zh-TW.js +2 -0
  56. package/package.json +5 -5
  57. package/src/elements/content-sidebar/SidebarNav.js +23 -3
  58. package/src/elements/content-sidebar/SidebarNavTablist.js +80 -21
  59. package/src/elements/content-sidebar/__tests__/SidebarNav.test.js +99 -147
  60. package/src/elements/content-sidebar/__tests__/SidebarNavTablist.test.js +189 -42
  61. package/src/features/metadata-instance-editor/CascadePolicy.js +18 -4
  62. package/src/features/metadata-instance-editor/Instance.js +2 -3
  63. package/src/features/metadata-instance-editor/__tests__/CascadePolicy.test.js +32 -72
  64. package/src/features/metadata-instance-editor/__tests__/Instance.test.js +23 -26
  65. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instance.test.js.snap +1 -1
  66. package/src/features/metadata-instance-editor/messages.js +11 -0
  67. package/src/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js +36 -0
  68. package/src/features/metadata-instance-editor/__tests__/__snapshots__/CascadePolicy.test.js.snap +0 -108
package/i18n/en-US.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Cascade policy cannot be applied to custom metadata at this time.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Learn more",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "In the case of conflicts when applying this template and its values to existing items, what would you like to do? This is a one time action.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Overwrite all existing template values",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Skip and keep all existing template values",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Add",
@@ -1224,6 +1224,10 @@ boxui.metadataInstanceEditor.cannotApplyCascadePolicyText = Cascade policy canno
1224
1224
  boxui.metadataInstanceEditor.cascadePolicyLearnMore = Learn more
1225
1225
  # Tooltip text that asks the user what they want to do when applying cascading to their metadata policy
1226
1226
  boxui.metadataInstanceEditor.cascadePolicyModeQuestion = In the case of conflicts when applying this template and its values to existing items, what would you like to do? This is a one time action.
1227
+ # Notice that explains that the cascade policy cannot be edited
1228
+ boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice = This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.
1229
+ # Aria label for the disabled cascade options information icon
1230
+ boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel = Disabled cascade options information
1227
1231
  # Label for radio button that selects overwrite mode for cascading policy
1228
1232
  boxui.metadataInstanceEditor.cascadePolicyOverwriteMode = Overwrite all existing template values
1229
1233
  # Label for radio button that selects skip mode for cascading policy
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Ċăѕĉăďε Ρόĺí¢У ćåʼnηόŧ ьε åΡΡĺίéď ţō çūŝŧŏm mεťāďâţά åţ τĥιŝ ţιmё. 國國國國國國國國國國國國國國國國國國國⟧",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "⟦萬萬 Ŀеäŗŋ mоŗē 國國⟧",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 Íπ τħě ćāśè ōƒ čôńƒľīĉťś ωħёй ãΡΡļУïπĝ ŧнϊŝ τėmΡľαťе äήď їτś νάĺµëş ťо єхìŝŧįŋġ ìťémѕ, ẃĥäŧ щόūľď ỳóũ ļίκé ťŏ ďó? Ţĥīŝ įś â όиě ŧĭmë αċτιοň. 國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "⟦萬萬萬萬萬萬萬萬萬萬萬 Θνêѓщŕìτе ǻļĺ е×ιśţíήğ τèmΡľàŧè νăĺųêŝ 國國國國國國國國國國國⟧",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "⟦萬萬萬萬萬萬萬萬萬萬萬萬 ЅĸĭΡ άлď ĸėęΡ ąļľ ę×ίśτìʼnğ ťěmΡľãτё νąĺŭěś 國國國國國國國國國國國國⟧",
617
619
  "boxui.metadataInstanceEditor.customAdd": "⟦ Αďď ⟧",
package/i18n/es-419.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "En este momento, no es posible implementar la política de aplicación en cascada a los metadatos personalizados.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Más información",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "En caso de conflicto al aplicar esta plantilla y sus valores a elementos existentes, ¿qué desea hacer? Esta acción se realiza una sola vez.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Sobrescribir todos los valores de plantilla existentes",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Omitir y conservar todos los valores de plantilla existentes",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Agregar",
package/i18n/es-ES.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "En este momento, no es posible implementar la política de aplicación en cascada a los metadatos personalizados.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Más información",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "En caso de conflicto al aplicar esta plantilla y sus valores a elementos existentes, ¿qué desea hacer? Esta acción se realiza una sola vez.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Sobrescribir todos los valores de plantilla existentes",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Omitir y conservar todos los valores de plantilla existentes",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Agregar",
package/i18n/fi-FI.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Limityskäytäntöä ei voi juuri nyt käyttää mukautetuissa metatiedoissa.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Lisätietoja",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "Mitä tapahtuu, kun tämän mallin ja sen arvojen soveltaminen nykyisiin kohteisiin aiheuttaa ristiriidan? Tämä on kertaluonteinen toiminto.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Korvaa kaikki nykyisen mallin arvot",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Ohita ja säilytä kaikki nykyisen mallin arvot",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Lisää",
package/i18n/fr-CA.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "La politique en cascade ne peut pas être appliquée à des métadonnées personnalisées pour l'instant.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "En savoir plus",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "En cas de conflits lors de l'application de ce modèle et de ses valeurs aux éléments existants, que souhaiteriez-vous faire ? Il s'agit d'une action unique.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Remplacer toutes les valeurs de modèle existantes",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Ignorer et conserver toutes les valeurs de modèle existantes",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Ajouter",
package/i18n/fr-FR.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "La politique en cascade ne peut pas être appliquée à des métadonnées personnalisées pour l'instant.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "En savoir plus",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "En cas de conflits lors de l'application de ce modèle et de ses valeurs aux éléments existants, que souhaiteriez-vous faire ? Il s'agit d'une action unique.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Remplacer toutes les valeurs de modèle existantes",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Ignorer et conserver toutes les valeurs de modèle existantes",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Ajouter",
package/i18n/hi-IN.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "इस समय कस्टम मेटाडेटा पर कैस्केड नीति लागू नहीं की जा सकती है.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "और जानें",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "विरोधाभास होने पर इस टेम्पलेट और इसके मूल्यों को मौजूदा वस्तुओं पर लागू करते समय, आप क्या करना चाहेंगे? यह एक बार की कार्रवाई है.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "सभी मौजूदा टेम्पलेट मानों को ओवरराइट करें",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "छोड़ें और सभी मौजूदा टेम्पलेट मान रखें",
617
619
  "boxui.metadataInstanceEditor.customAdd": "जोड़ें",
package/i18n/it-IT.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Attualmente non è possibile applicare un criterio a cascata ai metadati personalizzati.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Ulteriori informazioni",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "In caso di conflitti durante l'applicazione del modello e dei relativi valori agli elementi esistenti, come desideri procedere? Questa indicazione va specificata una sola volta.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Sovrascrivi tutti i valori del modello esistente",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Ignora e mantieni tutti i valori del modello esistente",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Aggiungi",
package/i18n/ja-JP.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "現在、カスケードポリシーをカスタムメタデータに適用することはできません。",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "詳細を表示",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "このテンプレートとその値を既存の項目に適用したときに、競合が発生した場合の操作を指定してください。これは一回限りの操作です",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "既存のすべてのテンプレート値を上書きする",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "スキップして既存のすべてのテンプレート値を保持します",
617
619
  "boxui.metadataInstanceEditor.customAdd": "追加",
package/i18n/ko-KR.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "현재 사용자 지정 메타데이터에 캐스케이드 정책을 적용할 수 없습니다.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "자세한 정보",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "이 템플릿과 해당 값을 기존 항목에 적용할 때 충돌이 발생할 경우 어떤 작업을 수행하시겠습니까? 이 작업은 일회성입니다.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "모든 기존 템플릿 값 덮어쓰기",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "건너뛰고 모든 기존 템플릿 값 유지",
617
619
  "boxui.metadataInstanceEditor.customAdd": "추가",
package/i18n/nb-NO.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Kan ikke bruke retningslinjer for hierarkiske metadata på egendefinerte metadata.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Lær mer",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "Hva vil du gjøre dersom det oppstår konflikt når denne malen og malens verdier brukes på eksisterende elementer? Dette er en engangshandling.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Overskriv alle eksisterende verdier i malen",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Hopp over og behold alle eksisterende verdier i malen",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Legg til",
package/i18n/nl-NL.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Het trapsgewijze beleid kan momenteel niet op aangepaste metadata worden toegepast.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Meer informatie",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "Wat wilt u doen in het geval van een conflict tussen de bestaande sjabloonwaarden en de waarden van het toe te passen sjabloon? Dit is een eenmalige actie.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Alle bestaande sjabloonwaarden overschrijven",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Overslaan en alle bestaande sjabloonwaarden bewaren",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Toevoegen",
package/i18n/pl-PL.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "W tym momencie zasady kaskady nie można zastosować do niestandardowych metadanych.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Dowiedz się więcej",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "Co chcesz zrobić w przypadku konfliktów podczas stosowania tego szablonu i jego wartości do istniejących elementów? Jest to operacja jednorazowa.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Zastąp wszystkie istniejące wartości szablonu",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Pomiń i zachowaj wszystkie istniejące wartości szablonu",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Dodaj",
package/i18n/pt-BR.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Não é possível aplicar a política de cascata para metadados personalizados no momento.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Saiba mais",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "Caso ocorram conflitos ao aplicar este modelo e seus valores aos itens existentes, o que você gostaria de fazer? Esta ação é realizada uma única vez.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Substituir todos os valores de modelo existentes",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Ignorar e manter todos os valores de modelo existentes",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Adicionar",
package/i18n/ru-RU.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "В данный момент каскадная политика не может быть применена к настраиваемым метаданным.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Подробнее",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "Что нужно сделать в случае возникновения конфликтов при применении этого шаблона и его значений к существующим элементам? Это разовое действие.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Переписать все существующие значения шаблона",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Пропустить и сохранить все существующие значения шаблона",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Добавить",
package/i18n/sv-SE.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Övergripande policy kan inte tillämpas på anpassade metadata just nu.",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Läs mer",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "Vad vill du göra vid konflikter när du använder den här mallen och mallvärdena på befintliga objekt? Det här är en engångsåtgärd.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Skriva över alla befintliga mallvärden",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Hoppa över och behålla alla befintliga mallvärden",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Lägg till",
package/i18n/tr-TR.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "Alt klasörlere uygulama ilkesi şu anda özel meta verilere uygulanamıyor",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "Daha fazla bilgi edinin",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "Bu şablonu ve değerlerini mevcut öğelere uygularken çakışma olması halinde nasıl devam etmek istersiniz? Bu, tek seferlik bir işlemdir.",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "Mevcut tüm şablon değerlerinin üzerine yaz",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "Atla ve mevcut tüm şablon değerlerini koru",
617
619
  "boxui.metadataInstanceEditor.customAdd": "Ekle",
package/i18n/zh-CN.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "级联策略目前不适用于自定义元数据。",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "了解更多",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "如果在将此模板及其值应用于现有项目时发生冲突,您要执行什么操作?这是一次性操作。",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "覆盖所有现有模板值",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "跳过并保留所有现有模板值",
617
619
  "boxui.metadataInstanceEditor.customAdd": "添加",
package/i18n/zh-TW.js CHANGED
@@ -612,6 +612,8 @@ export default {
612
612
  "boxui.metadataInstanceEditor.cannotApplyCascadePolicyText": "向下套用原則目前無法套用到自訂中繼資料。",
613
613
  "boxui.metadataInstanceEditor.cascadePolicyLearnMore": "詳細資訊",
614
614
  "boxui.metadataInstanceEditor.cascadePolicyModeQuestion": "若在將此範本及其值套用到現有項目時發生衝突,您要怎麼處理?此為一次性動作。",
615
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNotice": "This cascade policy cannot be edited. To modify it, deactivate the current policy and then re-enable it to set up a new one.",
616
+ "boxui.metadataInstanceEditor.cascadePolicyOptionsDisabledNoticeIconAriaLabel": "Disabled cascade options information",
615
617
  "boxui.metadataInstanceEditor.cascadePolicyOverwriteMode": "覆寫所有現有的範本值",
616
618
  "boxui.metadataInstanceEditor.cascadePolicySkipMode": "略過並保留所有現有的範本值",
617
619
  "boxui.metadataInstanceEditor.customAdd": "新增",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "box-ui-elements",
3
- "version": "23.4.0-beta.30",
3
+ "version": "23.4.0-beta.31",
4
4
  "description": "Box UI Elements",
5
5
  "author": "Box (https://www.box.com/)",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -129,7 +129,7 @@
129
129
  "@babel/template": "^7.24.7",
130
130
  "@babel/types": "^7.24.7",
131
131
  "@box/blueprint-web": "^12.7.1",
132
- "@box/blueprint-web-assets": "^4.53.0",
132
+ "@box/blueprint-web-assets": "^4.60.0",
133
133
  "@box/box-ai-agent-selector": "^0.41.10",
134
134
  "@box/box-ai-content-answers": "^0.124.1",
135
135
  "@box/cldr-data": "^34.2.0",
@@ -137,7 +137,7 @@
137
137
  "@box/frontend": "^11.0.1",
138
138
  "@box/item-icon": "^0.9.83",
139
139
  "@box/languages": "^1.0.0",
140
- "@box/metadata-editor": "^0.117.0",
140
+ "@box/metadata-editor": "^0.122.0",
141
141
  "@box/react-virtualized": "^9.22.3-rc-box.10",
142
142
  "@cfaester/enzyme-adapter-react-18": "^0.8.0",
143
143
  "@chromatic-com/storybook": "^4.0.1",
@@ -292,13 +292,13 @@
292
292
  },
293
293
  "peerDependencies": {
294
294
  "@box/blueprint-web": "^12.7.1",
295
- "@box/blueprint-web-assets": "^4.53.0",
295
+ "@box/blueprint-web-assets": "^4.60.0",
296
296
  "@box/box-ai-agent-selector": "^0.41.10",
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",
300
300
  "@box/item-icon": "^0.9.83",
301
- "@box/metadata-editor": "^0.117.0",
301
+ "@box/metadata-editor": "^0.122.0",
302
302
  "@box/react-virtualized": "^9.22.3-rc-box.10",
303
303
  "@hapi/address": "^2.1.4",
304
304
  "axios": "^0.30.0",
@@ -35,6 +35,7 @@ import {
35
35
  } from '../../constants';
36
36
  import { useFeatureConfig } from '../common/feature-checking';
37
37
  import type { NavigateOptions, AdditionalSidebarTab } from './flowTypes';
38
+ import type { InternalSidebarNavigation, InternalSidebarNavigationHandler } from '../common/types/SidebarNavigation';
38
39
  import './SidebarNav.scss';
39
40
  import type { SignSidebarProps } from './SidebarNavSign';
40
41
 
@@ -49,10 +50,13 @@ type Props = {
49
50
  hasDocGen?: boolean,
50
51
  hasMetadata: boolean,
51
52
  hasSkills: boolean,
53
+ internalSidebarNavigation?: InternalSidebarNavigation,
54
+ internalSidebarNavigationHandler?: InternalSidebarNavigationHandler,
52
55
  intl: IntlShape,
53
56
  isOpen?: boolean,
54
57
  onNavigate?: (SyntheticEvent<>, NavigateOptions) => void,
55
58
  onPanelChange?: (name: string, isInitialState: boolean) => void,
59
+ routerDisabled?: boolean,
56
60
  signSidebarProps: SignSidebarProps,
57
61
  };
58
62
 
@@ -67,10 +71,13 @@ const SidebarNav = ({
67
71
  hasMetadata,
68
72
  hasSkills,
69
73
  hasDocGen = false,
74
+ internalSidebarNavigation,
75
+ internalSidebarNavigationHandler,
70
76
  intl,
71
77
  isOpen,
72
78
  onNavigate,
73
79
  onPanelChange = noop,
80
+ routerDisabled,
74
81
  signSidebarProps,
75
82
  }: Props) => {
76
83
  const { enabled: hasBoxSign } = signSidebarProps || {};
@@ -91,7 +98,14 @@ const SidebarNav = ({
91
98
  return (
92
99
  <div className="bcs-SidebarNav" aria-label={intl.formatMessage(messages.sidebarNavLabel)}>
93
100
  <div className="bcs-SidebarNav-tabs">
94
- <SidebarNavTablist elementId={elementId} isOpen={isOpen} onNavigate={onNavigate}>
101
+ <SidebarNavTablist
102
+ elementId={elementId}
103
+ internalSidebarNavigation={internalSidebarNavigation}
104
+ internalSidebarNavigationHandler={internalSidebarNavigationHandler}
105
+ isOpen={isOpen}
106
+ onNavigate={onNavigate}
107
+ routerDisabled={routerDisabled}
108
+ >
95
109
  {hasBoxAI && (
96
110
  <SidebarNavButton
97
111
  data-resin-target={SIDEBAR_NAV_TARGETS.BOXAI}
@@ -161,6 +175,7 @@ const SidebarNav = ({
161
175
  <SidebarNavButton
162
176
  data-resin-target={SIDEBAR_NAV_TARGETS.DOCGEN}
163
177
  data-target-id="SidebarNavButton-docGen"
178
+ data-testid="sidebardocgen"
164
179
  onClick={handleSidebarNavButtonClick}
165
180
  sidebarView={SIDEBAR_VIEW_DOCGEN}
166
181
  tooltip={intl.formatMessage(messages.sidebarDocGenTooltip)}
@@ -177,13 +192,18 @@ const SidebarNav = ({
177
192
  )}
178
193
 
179
194
  {hasAdditionalTabs && (
180
- <div className="bcs-SidebarNav-overflow">
195
+ <div className="bcs-SidebarNav-overflow" data-testid="additional-tabs-overflow">
181
196
  <AdditionalTabs key={fileId} tabs={additionalTabs} />
182
197
  </div>
183
198
  )}
184
199
  </div>
185
200
  <div className="bcs-SidebarNav-footer">
186
- <SidebarToggle isOpen={isOpen} />
201
+ <SidebarToggle
202
+ internalSidebarNavigation={internalSidebarNavigation}
203
+ internalSidebarNavigationHandler={internalSidebarNavigationHandler}
204
+ isOpen={isOpen}
205
+ routerDisabled={routerDisabled}
206
+ />
187
207
  </div>
188
208
  </div>
189
209
  );
@@ -9,50 +9,96 @@ import type { RouterHistory } from 'react-router-dom';
9
9
  import { withRouter } from 'react-router-dom';
10
10
  import { KEYS } from '../../constants';
11
11
  import type { NavigateOptions } from './flowTypes';
12
+ import type { InternalSidebarNavigation, InternalSidebarNavigationHandler } from '../common/types/SidebarNavigation';
12
13
 
13
14
  type Props = {
14
15
  children: React.Node,
15
16
  elementId: string,
16
- history: RouterHistory,
17
+ history?: RouterHistory,
18
+ internalSidebarNavigation?: InternalSidebarNavigation,
19
+ internalSidebarNavigationHandler?: InternalSidebarNavigationHandler,
17
20
  isOpen?: boolean,
18
21
  onNavigate?: (SyntheticEvent<>, NavigateOptions) => void,
22
+ routerDisabled?: boolean,
19
23
  };
20
24
 
21
- const SidebarNavTablist = ({ children, history, elementId, isOpen, onNavigate }: Props) => {
25
+ const SidebarNavTablist = ({
26
+ children,
27
+ history,
28
+ elementId,
29
+ internalSidebarNavigation,
30
+ internalSidebarNavigationHandler,
31
+ isOpen,
32
+ onNavigate,
33
+ routerDisabled = false,
34
+ }: Props) => {
22
35
  const refs = [];
23
- const tablist = React.Children.map(children, child => child && `/${child.props.sidebarView}`);
24
- const handleKeyDown = (event: SyntheticKeyboardEvent<>): void => {
25
- const currentIndex = tablist.indexOf(history.location.pathname);
36
+ const tablist = React.Children.map(children, child => child && child.props.sidebarView);
37
+
38
+ const handleKeyDownWithRouter = (event: SyntheticKeyboardEvent<>): void => {
39
+ if (!history) return;
40
+
41
+ const currentPath = history.location.pathname.replace('/', '');
42
+ const currentIndex = tablist.indexOf(currentPath);
26
43
  const { length } = tablist;
27
44
  let nextIndex = currentIndex;
45
+
28
46
  switch (event.key) {
29
47
  case KEYS.arrowUp:
30
48
  nextIndex = (currentIndex - 1 + length) % length;
31
-
32
- history.push(tablist[nextIndex]);
33
- if (refs.length > 0) {
34
- refs[nextIndex].focus();
35
- }
36
-
37
- event.stopPropagation();
38
- event.preventDefault();
39
49
  break;
40
50
  case KEYS.arrowDown:
41
51
  nextIndex = (currentIndex + 1) % length;
52
+ break;
53
+ default:
54
+ return;
55
+ }
42
56
 
43
- history.push(tablist[nextIndex]);
44
- if (refs.length > 0) {
45
- refs[nextIndex].focus();
46
- }
57
+ const nextTab = tablist[nextIndex];
58
+ history.push(`/${nextTab}`);
59
+
60
+ if (refs.length > nextIndex) {
61
+ refs[nextIndex].focus();
62
+ }
63
+
64
+ event.stopPropagation();
65
+ event.preventDefault();
66
+ };
67
+
68
+ const handleKeyDownWithoutRouter = (event: SyntheticKeyboardEvent<>): void => {
69
+ if (!internalSidebarNavigationHandler) return;
47
70
 
48
- event.stopPropagation();
49
- event.preventDefault();
71
+ const currentTab = internalSidebarNavigation?.sidebar;
72
+ const currentIndex = tablist.indexOf(currentTab);
73
+ const { length } = tablist;
74
+ let nextIndex = currentIndex;
75
+
76
+ switch (event.key) {
77
+ case KEYS.arrowUp:
78
+ nextIndex = (currentIndex - 1 + length) % length;
50
79
  break;
51
- default:
80
+ case KEYS.arrowDown:
81
+ nextIndex = (currentIndex + 1) % length;
52
82
  break;
83
+ default:
84
+ return;
53
85
  }
86
+
87
+ const nextTab = tablist[nextIndex];
88
+ internalSidebarNavigationHandler({
89
+ sidebar: nextTab,
90
+ });
91
+
92
+ if (refs.length > nextIndex) {
93
+ refs[nextIndex].focus();
94
+ }
95
+
96
+ event.stopPropagation();
97
+ event.preventDefault();
54
98
  };
55
99
 
100
+ const handleKeyDown = routerDisabled ? handleKeyDownWithoutRouter : handleKeyDownWithRouter;
101
+
56
102
  return (
57
103
  <div
58
104
  aria-orientation="vertical"
@@ -68,8 +114,11 @@ const SidebarNavTablist = ({ children, history, elementId, isOpen, onNavigate }:
68
114
 
69
115
  return React.cloneElement(tab, {
70
116
  elementId,
117
+ internalSidebarNavigation,
118
+ internalSidebarNavigationHandler,
71
119
  isOpen,
72
120
  onNavigate,
121
+ routerDisabled,
73
122
  ref: ref => {
74
123
  refs.push(ref);
75
124
  },
@@ -80,4 +129,14 @@ const SidebarNavTablist = ({ children, history, elementId, isOpen, onNavigate }:
80
129
  );
81
130
  };
82
131
 
83
- export default withRouter(SidebarNavTablist);
132
+ // Conditionally wrap with withRouter only when router is not disabled
133
+ const SidebarNavTablistWithRouter = withRouter(SidebarNavTablist);
134
+
135
+ const SidebarNavTablistWrapper = (props: Props) => {
136
+ if (props.routerDisabled) {
137
+ return <SidebarNavTablist {...props} />;
138
+ }
139
+ return <SidebarNavTablistWithRouter {...props} />;
140
+ };
141
+
142
+ export default SidebarNavTablistWrapper;