box-ui-elements 23.5.0-beta.2 → 23.5.0-beta.3

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 (34) hide show
  1. package/dist/explorer.css +1 -1
  2. package/dist/explorer.js +1 -1
  3. package/dist/preview.css +1 -1
  4. package/dist/preview.js +1 -1
  5. package/dist/sidebar.css +1 -1
  6. package/dist/sidebar.js +1 -1
  7. package/es/features/metadata-instance-editor/CascadePolicy.js +3 -3
  8. package/es/features/metadata-instance-editor/CascadePolicy.js.flow +2 -3
  9. package/es/features/metadata-instance-editor/CascadePolicy.js.map +1 -1
  10. package/es/features/metadata-instance-editor/Instance.js +0 -2
  11. package/es/features/metadata-instance-editor/Instance.js.flow +0 -5
  12. package/es/features/metadata-instance-editor/Instance.js.map +1 -1
  13. package/es/features/metadata-instance-editor/Instances.js +0 -2
  14. package/es/features/metadata-instance-editor/Instances.js.flow +0 -3
  15. package/es/features/metadata-instance-editor/Instances.js.map +1 -1
  16. package/es/features/metadata-instance-editor/MetadataInstanceEditor.js +0 -2
  17. package/es/features/metadata-instance-editor/MetadataInstanceEditor.js.flow +0 -3
  18. package/es/features/metadata-instance-editor/MetadataInstanceEditor.js.map +1 -1
  19. package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js +0 -1
  20. package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js.flow +0 -1
  21. package/es/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js.map +1 -1
  22. package/package.json +3 -3
  23. package/src/features/metadata-instance-editor/CascadePolicy.js +2 -3
  24. package/src/features/metadata-instance-editor/Instance.js +0 -5
  25. package/src/features/metadata-instance-editor/Instances.js +0 -3
  26. package/src/features/metadata-instance-editor/MetadataInstanceEditor.js +0 -3
  27. package/src/features/metadata-instance-editor/__tests__/CascadePolicy.test.js +0 -9
  28. package/src/features/metadata-instance-editor/__tests__/Instance.test.js +0 -28
  29. package/src/features/metadata-instance-editor/__tests__/Instances.test.js +7 -9
  30. package/src/features/metadata-instance-editor/__tests__/MetadataInstanceEditor.test.js +1 -48
  31. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instance.test.js.snap +0 -1
  32. package/src/features/metadata-instance-editor/__tests__/__snapshots__/Instances.test.js.snap +0 -2
  33. package/src/features/metadata-instance-editor/__tests__/__snapshots__/MetadataInstanceEditor.test.js.snap +0 -1
  34. package/src/features/metadata-instance-editor/stories/tests/CascadePolicy-visual.stories.js +0 -1
@@ -27,7 +27,6 @@ const AI_LINK = 'https://www.box.com/ai';
27
27
  type Props = {
28
28
  canEdit: boolean,
29
29
  canUseAIFolderExtraction: boolean,
30
- canUseAIFolderExtractionAgentSelector: boolean,
31
30
  cascadePolicyConfiguration?: MetadataCascadePolicyConfiguration,
32
31
  isAIFolderExtractionEnabled: boolean,
33
32
  isCascadingEnabled: boolean,
@@ -44,7 +43,6 @@ type Props = {
44
43
  const CascadePolicy = ({
45
44
  canEdit,
46
45
  canUseAIFolderExtraction,
47
- canUseAIFolderExtractionAgentSelector,
48
46
  cascadePolicyConfiguration,
49
47
  isCascadingEnabled,
50
48
  isCascadingOverwritten,
@@ -194,13 +192,14 @@ const CascadePolicy = ({
194
192
  <FormattedMessage {...messages.aiAutofillLearnMore} />
195
193
  </Link>
196
194
  </div>
197
- {canUseAIFolderExtractionAgentSelector && isAIFolderExtractionEnabled && (
195
+ {isAIFolderExtractionEnabled && (
198
196
  <div className="metadata-cascade-ai-agent-selector">
199
197
  <BoxAiAgentSelectorWithApiContainer
200
198
  disabled={isExistingCascadePolicy}
201
199
  fetcher={agentFetcher}
202
200
  onSelectAgent={handleAgentSelect}
203
201
  recordAction={() => {}}
202
+ selectorAlignment="left"
204
203
  />
205
204
  </div>
206
205
  )}
@@ -55,7 +55,6 @@ import './Instance.scss';
55
55
  type Props = {
56
56
  canEdit: boolean,
57
57
  canUseAIFolderExtraction?: boolean,
58
- canUseAIFolderExtractionAgentSelector?: boolean,
59
58
  cascadePolicy?: MetadataCascadePolicy, // eslint-disable-line
60
59
  data: MetadataFields,
61
60
  hasError: boolean,
@@ -642,7 +641,6 @@ class Instance extends React.PureComponent<Props, State> {
642
641
  render() {
643
642
  const {
644
643
  canUseAIFolderExtraction = false,
645
- canUseAIFolderExtractionAgentSelector = false,
646
644
  cascadePolicy = {},
647
645
  isDirty,
648
646
  isCascadingPolicyApplicable,
@@ -703,9 +701,6 @@ class Instance extends React.PureComponent<Props, State> {
703
701
  cascadePolicyConfiguration={cascadePolicy?.cascadePolicyConfiguration}
704
702
  canEdit={isEditing && !!cascadePolicy.canEdit}
705
703
  canUseAIFolderExtraction={canUseAIFolderExtraction}
706
- canUseAIFolderExtractionAgentSelector={
707
- canUseAIFolderExtractionAgentSelector
708
- }
709
704
  isAIFolderExtractionEnabled={isAIFolderExtractionEnabled}
710
705
  isCascadingEnabled={isCascadingEnabled}
711
706
  isCascadingOverwritten={isCascadingOverwritten}
@@ -7,7 +7,6 @@ import type { JSONPatchOperations } from '../../common/types/api';
7
7
 
8
8
  type Props = {
9
9
  canUseAIFolderExtraction?: boolean,
10
- canUseAIFolderExtractionAgentSelector?: boolean,
11
10
  editors?: Array<MetadataEditor>,
12
11
  isCascadingPolicyApplicable?: boolean,
13
12
  onModification?: (id: string, isDirty: boolean) => void,
@@ -23,7 +22,6 @@ type Props = {
23
22
 
24
23
  const Instances = ({
25
24
  canUseAIFolderExtraction = false,
26
- canUseAIFolderExtractionAgentSelector = false,
27
25
  isCascadingPolicyApplicable = false,
28
26
  editors = [],
29
27
  onModification,
@@ -39,7 +37,6 @@ const Instances = ({
39
37
  <Instance
40
38
  canEdit={instance.canEdit}
41
39
  canUseAIFolderExtraction={canUseAIFolderExtraction}
42
- canUseAIFolderExtractionAgentSelector={canUseAIFolderExtractionAgentSelector}
43
40
  cascadePolicy={instance.cascadePolicy}
44
41
  data={instance.data}
45
42
  hasError={hasError}
@@ -15,7 +15,6 @@ type Props = {
15
15
  blurExceptionClassNames?: Array<string>,
16
16
  canAdd: boolean,
17
17
  canUseAIFolderExtraction?: boolean,
18
- canUseAIFolderExtractionAgentSelector?: boolean,
19
18
  editors?: Array<MetadataEditor>,
20
19
  isCascadingPolicyApplicable?: boolean,
21
20
  isDropdownBusy?: boolean,
@@ -38,7 +37,6 @@ const MetadataInstanceEditor = ({
38
37
  blurExceptionClassNames,
39
38
  canAdd,
40
39
  canUseAIFolderExtraction = false,
41
- canUseAIFolderExtractionAgentSelector = false,
42
40
  isCascadingPolicyApplicable = false,
43
41
  isDropdownBusy,
44
42
  editors = [],
@@ -66,7 +64,6 @@ const MetadataInstanceEditor = ({
66
64
  <ScrollWrapper>
67
65
  <Instances
68
66
  canUseAIFolderExtraction={canUseAIFolderExtraction}
69
- canUseAIFolderExtractionAgentSelector={canUseAIFolderExtractionAgentSelector}
70
67
  editors={editors}
71
68
  isCascadingPolicyApplicable={isCascadingPolicyApplicable}
72
69
  onModification={onModification}
@@ -118,7 +118,6 @@ describe('features/metadata-instance-editor/CascadePolicy', () => {
118
118
  <CascadePolicy
119
119
  canEdit
120
120
  canUseAIFolderExtraction
121
- canUseAIFolderExtractionAgentSelector
122
121
  shouldShowCascadeOptions
123
122
  isAIFolderExtractionEnabled
124
123
  onAIFolderExtractionToggle={jest.fn()}
@@ -133,18 +132,12 @@ describe('features/metadata-instance-editor/CascadePolicy', () => {
133
132
  expect(screen.getByRole('combobox', { name: 'Standard' })).toBeInTheDocument();
134
133
  });
135
134
 
136
- test('should not render AI agent selector when canUseAIFolderExtractionAgentSelector is false', () => {
137
- render(<CascadePolicy canEdit canUseAIFolderExtraction shouldShowCascadeOptions />);
138
- expect(screen.queryByRole('combobox', { name: 'Standard' })).not.toBeInTheDocument();
139
- });
140
-
141
135
  test('should call onAIAgentSelect when an agent is selected', async () => {
142
136
  const onAIAgentSelect = jest.fn();
143
137
  render(
144
138
  <CascadePolicy
145
139
  canEdit
146
140
  canUseAIFolderExtraction
147
- canUseAIFolderExtractionAgentSelector
148
141
  shouldShowCascadeOptions
149
142
  isAIFolderExtractionEnabled
150
143
  onAIAgentSelect={onAIAgentSelect}
@@ -185,7 +178,6 @@ describe('features/metadata-instance-editor/CascadePolicy', () => {
185
178
  <CascadePolicy
186
179
  canEdit
187
180
  canUseAIFolderExtraction
188
- canUseAIFolderExtractionAgentSelector
189
181
  shouldShowCascadeOptions
190
182
  isAIFolderExtractionEnabled
191
183
  cascadePolicyConfiguration={cascadePolicyConfiguration}
@@ -207,7 +199,6 @@ describe('features/metadata-instance-editor/CascadePolicy', () => {
207
199
  <CascadePolicy
208
200
  canEdit
209
201
  canUseAIFolderExtraction
210
- canUseAIFolderExtractionAgentSelector
211
202
  shouldShowCascadeOptions
212
203
  isAIFolderExtractionEnabled
213
204
  onAIFolderExtractionToggle={jest.fn()}
@@ -771,7 +771,6 @@ const getBaseProps = (props = {}) => ({
771
771
  cascadePolicyType: 'regular', // default to non-AI
772
772
  },
773
773
  canUseAIFolderExtraction: true, // Assume feature flag is on
774
- canUseAIFolderExtractionAgentSelector: false,
775
774
  ...props,
776
775
  });
777
776
 
@@ -862,33 +861,6 @@ describe('Instance Component - React Testing Library', () => {
862
861
  });
863
862
 
864
863
  describe('Props passed to CascadePolicy', () => {
865
- test('should pass canUseAIFolderExtractionAgentSelector to CascadePolicy', async () => {
866
- render(
867
- <Instance
868
- {...getBaseProps({
869
- canUseAIFolderExtractionAgentSelector: true,
870
- cascadePolicy: {
871
- id: 'policy-1',
872
- canEdit: true,
873
- isEnabled: true,
874
- cascadePolicyType: CASCADE_POLICY_TYPE_AI_EXTRACT,
875
- },
876
- })}
877
- />,
878
- );
879
-
880
- const editButton = screen.queryByRole('button', { name: 'Edit Metadata' });
881
- if (editButton) await userEvent.click(editButton); // Enter edit mode to ensure CascadePolicy options are visible
882
-
883
- const cascadeToggle = screen.getByRole('switch', { name: 'Enable Cascade Policy' });
884
- expect(cascadeToggle).toBeChecked();
885
-
886
- const aiToggle = screen.getByRole('switch', { name: 'Box AI Autofill' });
887
- expect(aiToggle).toBeChecked();
888
-
889
- expect(screen.getByRole('combobox', { name: 'Standard' })).toBeInTheDocument();
890
- });
891
-
892
864
  test('should disable CascadePolicy options when a cascade already exists', async () => {
893
865
  render(<Instance {...getBaseProps()} />);
894
866
 
@@ -253,11 +253,9 @@ describe('features/metadata-editor-editor/Instances', () => {
253
253
  });
254
254
  });
255
255
 
256
- describe('Instances component - canUseAIFolderExtractionAgentSelector prop', () => {
257
- test('should pass canUseAIFolderExtractionAgentSelector to child Instance components, showing agent selector', async () => {
258
- const props = getInstancesBaseProps({
259
- canUseAIFolderExtractionAgentSelector: true,
260
- });
256
+ describe('Instances component - AI agent selector', () => {
257
+ test('should show AI agent selector when canUseAIFolderExtraction is true', async () => {
258
+ const props = getInstancesBaseProps();
261
259
  props.editors[0].instance.cascadePolicy.cascadePolicyType = CASCADE_POLICY_TYPE_AI_EXTRACT;
262
260
  render(<Instances {...props} />);
263
261
 
@@ -273,11 +271,11 @@ describe('Instances component - canUseAIFolderExtractionAgentSelector prop', ()
273
271
  expect(screen.getByRole('combobox', { name: 'Standard' })).toBeInTheDocument();
274
272
  });
275
273
 
276
- test('should not show agent selector in child Instance if canUseAIFolderExtractionAgentSelector is false', async () => {
274
+ test('should not show agent selector in child Instance if canUseAIFolderExtraction is false', async () => {
277
275
  render(
278
276
  <Instances
279
277
  {...getInstancesBaseProps({
280
- canUseAIFolderExtractionAgentSelector: false,
278
+ canUseAIFolderExtraction: false,
281
279
  })}
282
280
  />,
283
281
  );
@@ -288,9 +286,9 @@ describe('Instances component - canUseAIFolderExtractionAgentSelector prop', ()
288
286
  expect(screen.queryByRole('combobox', { name: 'Standard' })).not.toBeInTheDocument();
289
287
  });
290
288
 
291
- test('should not show agent selector in child Instance if canUseAIFolderExtractionAgentSelector is undefined', async () => {
289
+ test('should not show agent selector in child Instance if canUseAIFolderExtraction is undefined', async () => {
292
290
  const props = getInstancesBaseProps();
293
- delete props.canUseAIFolderExtractionAgentSelector;
291
+ delete props.canUseAIFolderExtraction;
294
292
  render(<Instances {...props} />);
295
293
 
296
294
  const editButton = screen.getByRole('button', { name: 'Edit Metadata' });
@@ -534,57 +534,10 @@ describe('features/metadata-editor-editor/MetadataInstanceEditor', () => {
534
534
  });
535
535
  });
536
536
 
537
- describe('MetadataInstanceEditor - canUseAIFolderExtractionAgentSelector prop', () => {
538
- test('should propagate canUseAIFolderExtractionAgentSelector, showing agent selector', async () => {
539
- const props = getMetadataEditorBaseProps({
540
- canUseAIFolderExtraction: true,
541
- canUseAIFolderExtractionAgentSelector: true,
542
- });
543
- props.editors[0].instance.cascadePolicy.cascadePolicyType = 'ai_extract';
544
- render(<MetadataInstanceEditor {...props} />);
545
-
546
- const editButton = await screen.findByRole('button', { name: 'Edit Metadata' }, { timeout: 3000 });
547
- await userEvent.click(editButton);
548
-
549
- const cascadeToggle = screen.getByRole('switch', { name: 'Enable Cascade Policy' });
550
- expect(cascadeToggle).toBeChecked();
551
-
552
- const aiToggle = screen.getByRole('switch', { name: 'Box AI Autofill' });
553
- expect(aiToggle).toBeChecked();
554
-
555
- expect(screen.getByRole('combobox', { name: 'Standard' })).toBeInTheDocument();
556
- });
557
-
558
- test('should not show agent selector if canUseAIFolderExtractionAgentSelector is false', async () => {
559
- render(
560
- <MetadataInstanceEditor
561
- {...getMetadataEditorBaseProps({
562
- canUseAIFolderExtractionAgentSelector: false,
563
- })}
564
- />,
565
- );
566
-
567
- const editButton = await screen.findByRole('button', { name: 'Edit Metadata' });
568
- await userEvent.click(editButton);
569
-
570
- expect(screen.queryByRole('combobox', { name: 'Standard' })).not.toBeInTheDocument();
571
- });
572
-
573
- test('should not show agent selector if canUseAIFolderExtractionAgentSelector is undefined', async () => {
574
- const props = getMetadataEditorBaseProps();
575
- delete props.canUseAIFolderExtractionAgentSelector;
576
- render(<MetadataInstanceEditor {...props} />);
577
-
578
- const editButton = await screen.findByRole('button', { name: 'Edit Metadata' });
579
- await userEvent.click(editButton);
580
-
581
- expect(screen.queryByRole('combobox', { name: 'Standard' })).not.toBeInTheDocument();
582
- });
583
-
537
+ describe('MetadataInstanceEditor agent selector', () => {
584
538
  test('should show "Enhanced" in the combobox when the second option is selected', async () => {
585
539
  const props = getMetadataEditorBaseProps({
586
540
  canUseAIFolderExtraction: true,
587
- canUseAIFolderExtractionAgentSelector: true,
588
541
  });
589
542
  props.editors[0].instance.cascadePolicy.cascadePolicyType = 'ai_extract';
590
543
  props.editors[0].instance.cascadePolicy.id = null;
@@ -416,7 +416,6 @@ exports[`features/metadata-instance-editor/fields/Instance should correctly rend
416
416
  >
417
417
  <CascadePolicy
418
418
  canUseAIFolderExtraction={false}
419
- canUseAIFolderExtractionAgentSelector={false}
420
419
  isAIFolderExtractionEnabled={false}
421
420
  isCascadingEnabled={true}
422
421
  isCascadingOverwritten={false}
@@ -5,7 +5,6 @@ exports[`features/metadata-editor-editor/Instances should correctly render edito
5
5
  <injectIntl(Instance)
6
6
  canEdit={true}
7
7
  canUseAIFolderExtraction={false}
8
- canUseAIFolderExtractionAgentSelector={false}
9
8
  data={
10
9
  {
11
10
  "datefield": "2018-06-20T00:00:00.000Z",
@@ -111,7 +110,6 @@ exports[`features/metadata-editor-editor/Instances should correctly render edito
111
110
  <injectIntl(Instance)
112
111
  canEdit={false}
113
112
  canUseAIFolderExtraction={false}
114
- canUseAIFolderExtractionAgentSelector={false}
115
113
  data={
116
114
  {
117
115
  "datefield": "2018-06-20T00:00:00.000Z",
@@ -772,7 +772,6 @@ exports[`features/metadata-editor-editor/MetadataInstanceEditor should correctly
772
772
  >
773
773
  <Instances
774
774
  canUseAIFolderExtraction={false}
775
- canUseAIFolderExtractionAgentSelector={false}
776
775
  editors={
777
776
  [
778
777
  {
@@ -5,7 +5,6 @@ import CascadePolicy from '../../CascadePolicy';
5
5
  const baseProps = {
6
6
  canEdit: true,
7
7
  canUseAIFolderExtraction: true,
8
- canUseAIFolderExtractionAgentSelector: true,
9
8
  isAIFolderExtractionEnabled: false,
10
9
  isCascadingEnabled: true,
11
10
  isCascadingOverwritten: false,