box-ui-elements 23.4.0-beta.22 → 23.4.0-beta.23

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 (51) hide show
  1. package/dist/explorer.js +1 -1
  2. package/dist/preview.js +1 -1
  3. package/dist/sidebar.js +1 -1
  4. package/es/components/flyout/OverlayHeader.js +6 -3
  5. package/es/components/flyout/OverlayHeader.js.map +1 -1
  6. package/es/elements/common/nav-router/NavRouter.js +7 -3
  7. package/es/elements/common/nav-router/NavRouter.js.flow +10 -1
  8. package/es/elements/common/nav-router/NavRouter.js.map +1 -1
  9. package/es/elements/common/nav-router/types.js.map +1 -1
  10. package/es/elements/common/nav-router/withNavRouter.js +10 -1
  11. package/es/elements/common/nav-router/withNavRouter.js.flow +5 -0
  12. package/es/elements/common/nav-router/withNavRouter.js.map +1 -1
  13. package/es/elements/common/routing/withRouterAndRef.js +17 -3
  14. package/es/elements/common/routing/withRouterAndRef.js.flow +11 -3
  15. package/es/elements/common/routing/withRouterAndRef.js.map +1 -1
  16. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +22 -13
  17. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.flow +30 -17
  18. package/es/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js.map +1 -1
  19. package/es/elements/content-sidebar/ContentSidebar.js +3 -1
  20. package/es/elements/content-sidebar/ContentSidebar.js.flow +2 -1
  21. package/es/elements/content-sidebar/ContentSidebar.js.map +1 -1
  22. package/es/elements/content-sidebar/SidebarToggle.js +27 -9
  23. package/es/elements/content-sidebar/SidebarToggle.js.flow +29 -6
  24. package/es/elements/content-sidebar/SidebarToggle.js.map +1 -1
  25. package/es/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.js +12 -1
  26. package/es/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.js.map +1 -1
  27. package/es/features/header-flyout/HeaderFlyout.js +6 -3
  28. package/es/features/header-flyout/HeaderFlyout.js.flow +15 -2
  29. package/es/features/header-flyout/HeaderFlyout.js.map +1 -1
  30. package/es/src/components/flyout/OverlayHeader.d.ts +3 -1
  31. package/es/src/elements/common/nav-router/NavRouter.d.ts +3 -1
  32. package/es/src/elements/common/nav-router/types.d.ts +2 -0
  33. package/package.json +1 -1
  34. package/src/components/flyout/OverlayHeader.tsx +7 -3
  35. package/src/components/flyout/__tests__/OverlayHeader.test.js +25 -0
  36. package/src/elements/common/nav-router/NavRouter.js.flow +10 -1
  37. package/src/elements/common/nav-router/NavRouter.tsx +9 -3
  38. package/src/elements/common/nav-router/__tests__/withNavRouter.test.tsx +34 -20
  39. package/src/elements/common/nav-router/types.ts +2 -0
  40. package/src/elements/common/nav-router/withNavRouter.js.flow +5 -0
  41. package/src/elements/common/nav-router/withNavRouter.tsx +9 -1
  42. package/src/elements/common/routing/__tests__/withRouterAndRef.test.js +64 -12
  43. package/src/elements/common/routing/withRouterAndRef.js +11 -3
  44. package/src/elements/content-explorer/stories/tests/ContentExplorer-visual.stories.js +30 -17
  45. package/src/elements/content-sidebar/ContentSidebar.js +2 -1
  46. package/src/elements/content-sidebar/SidebarToggle.js +29 -6
  47. package/src/elements/content-sidebar/__tests__/SidebarToggle.test.js +74 -10
  48. package/src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx +14 -1
  49. package/src/features/header-flyout/HeaderFlyout.js +15 -2
  50. package/src/features/header-flyout/__tests__/__snapshots__/HeaderFlyout.test.js.snap +9 -3
  51. package/src/elements/content-sidebar/__tests__/__snapshots__/SidebarToggle.test.js.snap +0 -19
@@ -1,3 +1,8 @@
1
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
2
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
3
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
4
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
1
6
  /**
2
7
  *
3
8
  * @file Sidebar Toggle component
@@ -10,22 +15,35 @@ import SidebarToggleButton from '../../components/sidebar-toggle-button/SidebarT
10
15
  import { SIDEBAR_NAV_TARGETS } from '../common/interactionTargets';
11
16
  const SidebarToggle = ({
12
17
  history,
13
- isOpen
18
+ internalSidebarNavigation,
19
+ internalSidebarNavigationHandler,
20
+ isOpen,
21
+ routerDisabled = false
14
22
  }) => {
15
- return /*#__PURE__*/React.createElement(SidebarToggleButton, {
16
- "data-resin-target": SIDEBAR_NAV_TARGETS.TOGGLE,
17
- "data-testid": "sidebartoggle"
18
- // $FlowFixMe
19
- ,
20
- isOpen: isOpen,
21
- onClick: event => {
22
- event.preventDefault();
23
+ const handleToggleClick = event => {
24
+ event.preventDefault();
25
+ if (routerDisabled) {
26
+ // Use internal navigation handler when router is disabled
27
+ if (internalSidebarNavigationHandler && internalSidebarNavigation) {
28
+ internalSidebarNavigationHandler(_objectSpread(_objectSpread({}, internalSidebarNavigation), {}, {
29
+ open: !isOpen
30
+ }), true); // Always use replace for toggle
31
+ }
32
+ } else if (history) {
23
33
  history.replace({
24
34
  state: {
25
35
  open: !isOpen
26
36
  }
27
37
  });
28
38
  }
39
+ };
40
+ return /*#__PURE__*/React.createElement(SidebarToggleButton, {
41
+ "data-resin-target": SIDEBAR_NAV_TARGETS.TOGGLE,
42
+ "data-testid": "sidebartoggle"
43
+ // $FlowFixMe
44
+ ,
45
+ isOpen: isOpen,
46
+ onClick: handleToggleClick
29
47
  });
30
48
  };
31
49
  export { SidebarToggle as SidebarToggleComponent };
@@ -8,23 +8,46 @@ import * as React from 'react';
8
8
  import { withRouter, type RouterHistory } from 'react-router-dom';
9
9
  import SidebarToggleButton from '../../components/sidebar-toggle-button/SidebarToggleButton';
10
10
  import { SIDEBAR_NAV_TARGETS } from '../common/interactionTargets';
11
+ import type { InternalSidebarNavigation, InternalSidebarNavigationHandler } from '../common/types/SidebarNavigation';
11
12
 
12
13
  type Props = {
13
- history: RouterHistory,
14
+ history?: RouterHistory,
15
+ internalSidebarNavigation?: InternalSidebarNavigation,
16
+ internalSidebarNavigationHandler?: InternalSidebarNavigationHandler,
14
17
  isOpen?: boolean,
18
+ routerDisabled?: boolean,
15
19
  };
16
20
 
17
- const SidebarToggle = ({ history, isOpen }: Props) => {
21
+ const SidebarToggle = ({
22
+ history,
23
+ internalSidebarNavigation,
24
+ internalSidebarNavigationHandler,
25
+ isOpen,
26
+ routerDisabled = false,
27
+ }: Props) => {
28
+ const handleToggleClick = event => {
29
+ event.preventDefault();
30
+
31
+ if (routerDisabled) {
32
+ // Use internal navigation handler when router is disabled
33
+ if (internalSidebarNavigationHandler && internalSidebarNavigation) {
34
+ internalSidebarNavigationHandler({
35
+ ...internalSidebarNavigation,
36
+ open: !isOpen,
37
+ }, true); // Always use replace for toggle
38
+ }
39
+ } else if (history) {
40
+ history.replace({ state: { open: !isOpen } });
41
+ }
42
+ };
43
+
18
44
  return (
19
45
  <SidebarToggleButton
20
46
  data-resin-target={SIDEBAR_NAV_TARGETS.TOGGLE}
21
47
  data-testid="sidebartoggle"
22
48
  // $FlowFixMe
23
49
  isOpen={isOpen}
24
- onClick={event => {
25
- event.preventDefault();
26
- history.replace({ state: { open: !isOpen } });
27
- }}
50
+ onClick={handleToggleClick}
28
51
  />
29
52
  );
30
53
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarToggle.js","names":["React","withRouter","SidebarToggleButton","SIDEBAR_NAV_TARGETS","SidebarToggle","history","isOpen","createElement","TOGGLE","onClick","event","preventDefault","replace","state","open","SidebarToggleComponent"],"sources":["../../../src/elements/content-sidebar/SidebarToggle.js"],"sourcesContent":["/**\n * @flow strict\n * @file Sidebar Toggle component\n * @author Box\n */\n\nimport * as React from 'react';\nimport { withRouter, type RouterHistory } from 'react-router-dom';\nimport SidebarToggleButton from '../../components/sidebar-toggle-button/SidebarToggleButton';\nimport { SIDEBAR_NAV_TARGETS } from '../common/interactionTargets';\n\ntype Props = {\n history: RouterHistory,\n isOpen?: boolean,\n};\n\nconst SidebarToggle = ({ history, isOpen }: Props) => {\n return (\n <SidebarToggleButton\n data-resin-target={SIDEBAR_NAV_TARGETS.TOGGLE}\n data-testid=\"sidebartoggle\"\n // $FlowFixMe\n isOpen={isOpen}\n onClick={event => {\n event.preventDefault();\n history.replace({ state: { open: !isOpen } });\n }}\n />\n );\n};\n\nexport { SidebarToggle as SidebarToggleComponent };\nexport default withRouter(SidebarToggle);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,QAA4B,kBAAkB;AACjE,OAAOC,mBAAmB,MAAM,4DAA4D;AAC5F,SAASC,mBAAmB,QAAQ,8BAA8B;AAOlE,MAAMC,aAAa,GAAGA,CAAC;EAAEC,OAAO;EAAEC;AAAc,CAAC,KAAK;EAClD,oBACIN,KAAA,CAAAO,aAAA,CAACL,mBAAmB;IAChB,qBAAmBC,mBAAmB,CAACK,MAAO;IAC9C,eAAY;IACZ;IAAA;IACAF,MAAM,EAAEA,MAAO;IACfG,OAAO,EAAEC,KAAK,IAAI;MACdA,KAAK,CAACC,cAAc,CAAC,CAAC;MACtBN,OAAO,CAACO,OAAO,CAAC;QAAEC,KAAK,EAAE;UAAEC,IAAI,EAAE,CAACR;QAAO;MAAE,CAAC,CAAC;IACjD;EAAE,CACL,CAAC;AAEV,CAAC;AAED,SAASF,aAAa,IAAIW,sBAAsB;AAChD,eAAed,UAAU,CAACG,aAAa,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"SidebarToggle.js","names":["React","withRouter","SidebarToggleButton","SIDEBAR_NAV_TARGETS","SidebarToggle","history","internalSidebarNavigation","internalSidebarNavigationHandler","isOpen","routerDisabled","handleToggleClick","event","preventDefault","_objectSpread","open","replace","state","createElement","TOGGLE","onClick","SidebarToggleComponent"],"sources":["../../../src/elements/content-sidebar/SidebarToggle.js"],"sourcesContent":["/**\n * @flow strict\n * @file Sidebar Toggle component\n * @author Box\n */\n\nimport * as React from 'react';\nimport { withRouter, type RouterHistory } from 'react-router-dom';\nimport SidebarToggleButton from '../../components/sidebar-toggle-button/SidebarToggleButton';\nimport { SIDEBAR_NAV_TARGETS } from '../common/interactionTargets';\nimport type { InternalSidebarNavigation, InternalSidebarNavigationHandler } from '../common/types/SidebarNavigation';\n\ntype Props = {\n history?: RouterHistory,\n internalSidebarNavigation?: InternalSidebarNavigation,\n internalSidebarNavigationHandler?: InternalSidebarNavigationHandler,\n isOpen?: boolean,\n routerDisabled?: boolean,\n};\n\nconst SidebarToggle = ({ \n history, \n internalSidebarNavigation,\n internalSidebarNavigationHandler,\n isOpen,\n routerDisabled = false,\n}: Props) => {\n const handleToggleClick = event => {\n event.preventDefault();\n \n if (routerDisabled) {\n // Use internal navigation handler when router is disabled\n if (internalSidebarNavigationHandler && internalSidebarNavigation) {\n internalSidebarNavigationHandler({\n ...internalSidebarNavigation,\n open: !isOpen,\n }, true); // Always use replace for toggle\n }\n } else if (history) {\n history.replace({ state: { open: !isOpen } });\n }\n };\n\n return (\n <SidebarToggleButton\n data-resin-target={SIDEBAR_NAV_TARGETS.TOGGLE}\n data-testid=\"sidebartoggle\"\n // $FlowFixMe\n isOpen={isOpen}\n onClick={handleToggleClick}\n />\n );\n};\n\nexport { SidebarToggle as SidebarToggleComponent };\nexport default withRouter(SidebarToggle);\n"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;;AAEA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,QAA4B,kBAAkB;AACjE,OAAOC,mBAAmB,MAAM,4DAA4D;AAC5F,SAASC,mBAAmB,QAAQ,8BAA8B;AAWlE,MAAMC,aAAa,GAAGA,CAAC;EACnBC,OAAO;EACPC,yBAAyB;EACzBC,gCAAgC;EAChCC,MAAM;EACNC,cAAc,GAAG;AACd,CAAC,KAAK;EACT,MAAMC,iBAAiB,GAAGC,KAAK,IAAI;IAC/BA,KAAK,CAACC,cAAc,CAAC,CAAC;IAEtB,IAAIH,cAAc,EAAE;MAChB;MACA,IAAIF,gCAAgC,IAAID,yBAAyB,EAAE;QAC/DC,gCAAgC,CAAAM,aAAA,CAAAA,aAAA,KACzBP,yBAAyB;UAC5BQ,IAAI,EAAE,CAACN;QAAM,IACd,IAAI,CAAC,CAAC,CAAC;MACd;IACJ,CAAC,MAAM,IAAIH,OAAO,EAAE;MAChBA,OAAO,CAACU,OAAO,CAAC;QAAEC,KAAK,EAAE;UAAEF,IAAI,EAAE,CAACN;QAAO;MAAE,CAAC,CAAC;IACjD;EACJ,CAAC;EAED,oBACIR,KAAA,CAAAiB,aAAA,CAACf,mBAAmB;IAChB,qBAAmBC,mBAAmB,CAACe,MAAO;IAC9C,eAAY;IACZ;IAAA;IACAV,MAAM,EAAEA,MAAO;IACfW,OAAO,EAAET;EAAkB,CAC9B,CAAC;AAEV,CAAC;AAED,SAASN,aAAa,IAAIgB,sBAAsB;AAChD,eAAenB,UAAU,CAACG,aAAa,CAAC","ignoreList":[]}
@@ -358,6 +358,15 @@ export const SwitchEditingTemplateInstances = {
358
358
  fileId: '416047501580',
359
359
  metadataSidebarProps: defaultMetadataSidebarProps
360
360
  },
361
+ parameters: {
362
+ msw: {
363
+ handlers: [...defaultMockHandlers, http.get(`/2.0/files/416047501580`, () => {
364
+ return HttpResponse.json(mockFileRequest.response);
365
+ }), http.get(`/2.0/files/416047501580/metadata`, () => {
366
+ return HttpResponse.json(mockMetadataInstances.response);
367
+ })]
368
+ }
369
+ },
361
370
  play: async ({
362
371
  canvasElement
363
372
  }) => {
@@ -563,7 +572,9 @@ export const SuggestionForNewlyCreatedTemplateInstance = {
563
572
  name: 'Autofill'
564
573
  });
565
574
  userEvent.click(autofillButton);
566
- const suggestion = await canvas.findByText('4/1/2024');
575
+ const suggestion = await canvas.findByText('4/1/2024', {}, {
576
+ timeout: 5000
577
+ });
567
578
  expect(suggestion).toBeInTheDocument();
568
579
  }
569
580
  };
@@ -1 +1 @@
1
- {"version":3,"file":"MetadataSidebarRedesign-visual.stories.js","names":["http","HttpResponse","expect","userEvent","waitFor","within","fn","screen","ContentSidebar","aiSuggestionForDateField","aiSuggestionsForMyAttribute","fileIdWithMetadata","fileIdWithoutMetadata","mockEmptyMetadataInstances","mockEnterpriseMetadataTemplates","mockErrorDeleteMyTemplateMetadataRequest","mockFileRequest","mockFileRequestWithoutMetadata","mockGlobalMetadataTemplates","mockMetadataInstances","mockUserRequest","mockMetadataTemplatesWithMultilevelTaxonomy","mockMetadataTemplatesWithSinglelevelTaxonomy","taxonomyMockHandlers","token","global","TOKEN","defaultMetadataArgs","fileId","isFeatureEnabled","onError","onSuccess","defaultMetadataSidebarProps","mockFeatures","mockLogger","onReadyMetric","endMarkName","console","log","AddTemplateDropdownMenuOn","play","canvasElement","canvas","addTemplateButton","findByRole","name","timeout","toBeInTheDocument","click","customMetadataOption","getByRole","toHaveAttribute","AddTemplateDropdownMenuOnEmpty","args","metadataSidebarProps","isBoxAiSuggestionsEnabled","isBetaLanguageEnabled","options","getAllByRole","toHaveLength","forEach","option","not","FilterInstancesDropdown","filterInstancesButton","firstOption","secondOption","thirdOption","headlines","findAllByRole","level","textContent","toEqual","defaultMockHandlers","get","url","json","response","AddingNewMetadataTemplate","templateHeader","UnsavedChangesModalWhenChoosingDifferentTemplate","myTemplateOption","unsavedChangesModal","EmptyStateWithBoxAiEnabled","_objectSpread","features","EmptyStateWithBoxAiDisabled","MetadataInstanceEditorWithDefinedTemplate","MetadataInstanceEditorWithCustomTemplate","MetadataInstanceEditorCancelChanges","editButton","map","heading","arrayContaining","cancelButton","DeleteButtonIsDisabledWhenAddingNewMetadataTemplate","deleteButton","toBeDisabled","DeleteButtonIsEnabledWhenEditingMetadataTemplateInstance","editMetadataInstanceButton","toBeEnabled","MetadataInstanceEditorAddTemplateAgainAfterCancel","templateMetadataOption","templateMetadataOptionDisabled","templateMetadataOptionEnabled","SwitchEditingTemplateInstances","input","type","templateMetadataOptionA","templateMetadataOptionB","unsavedChangesModalDiscardButton","newTemplateHeader","templateMetadataOptionAAfterSwitch","templateMetadataOptionBAfterSwitch","MetadataInstanceEditorAIEnabled","autofillWithBoxAI","autofillButton","MetadataInstanceEditorAIEnabledAdvancedExtractAgent","splitButton","toBeVisible","hover","dropdownButton","ShowErrorWhenAIAPIIsUnavailable","parameters","msw","handlers","post","status","test","dangerouslyIgnoreUnhandledErrors","errorAlert","findByText","SuggestionsWhenAIAPIResponses","suggestion","replaceButton","getByLabelText","toHaveValue","SuggestionForNewlyCreatedTemplateInstance","ShowErrorOnDelete","delete","confirmModal","confirmInput","confirmButton","ViewMultilevelTaxonomy","multilevelOptionButton","multilevelDialog","ViewSinglelevelTaxonomy","singlelevelOptionButton","singlelevelDialog","EditMultilevelTaxonomy","multilevelInput","optionChip","listbox","expandButtons","hokkaidoOption","getByText","sapporoOption","sapporoSelection","EditSinglelevelTaxonomy","singlelevelInput","blueSelection","blueOption","redOption","greenOption","redSelection","meta","title","component","hasMetadata","logger"],"sources":["../../../../../src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx"],"sourcesContent":["import { type ComponentProps } from 'react';\nimport { http, HttpResponse } from 'msw';\nimport { expect, userEvent, waitFor, within, fn, screen } from '@storybook/test';\nimport { type StoryObj, Meta } from '@storybook/react';\nimport type { HttpHandler } from 'msw';\nimport ContentSidebar from '../../ContentSidebar';\nimport MetadataSidebarRedesign from '../../MetadataSidebarRedesign';\nimport {\n aiSuggestionForDateField,\n aiSuggestionsForMyAttribute,\n fileIdWithMetadata,\n fileIdWithoutMetadata,\n mockEmptyMetadataInstances,\n mockEnterpriseMetadataTemplates,\n mockErrorDeleteMyTemplateMetadataRequest,\n mockFileRequest,\n mockFileRequestWithoutMetadata,\n mockGlobalMetadataTemplates,\n mockMetadataInstances,\n} from '../__mocks__/MetadataSidebarRedesignedMocks';\nimport { mockUserRequest } from '../../../common/__mocks__/mockRequests';\nimport {\n mockMetadataTemplatesWithMultilevelTaxonomy,\n mockMetadataTemplatesWithSinglelevelTaxonomy,\n taxonomyMockHandlers,\n} from '../__mocks__/TaxonomyMocks';\n\nconst token = global.TOKEN;\n\nconst defaultMetadataArgs = {\n fileId: fileIdWithMetadata,\n isFeatureEnabled: true,\n onError: fn(),\n onSuccess: fn(),\n};\nconst defaultMetadataSidebarProps: ComponentProps<typeof MetadataSidebarRedesign> = {\n isFeatureEnabled: true,\n onError: fn(),\n onSuccess: fn(),\n};\nconst mockFeatures = {\n 'metadata.redesign.enabled': true,\n};\nconst mockLogger = {\n onReadyMetric: ({ endMarkName }) => {\n // eslint-disable-next-line no-console\n console.log(`Logger: onReadyMetric called with endMarkName: ${endMarkName}`);\n },\n};\n\nexport const AddTemplateDropdownMenuOn = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' }, { timeout: 2000 });\n\n expect(addTemplateButton).toBeInTheDocument();\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'Custom Metadata' });\n expect(customMetadataOption).toBeInTheDocument();\n expect(customMetadataOption).toHaveAttribute('aria-disabled');\n },\n};\n\nexport const AddTemplateDropdownMenuOnEmpty = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: {\n isBoxAiSuggestionsEnabled: true,\n isBetaLanguageEnabled: false,\n isFeatureEnabled: true,\n onError: fn(),\n onSuccess: fn(),\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' }, { timeout: 2000 });\n\n expect(addTemplateButton).toBeInTheDocument();\n await userEvent.click(addTemplateButton);\n\n const options = canvas.getAllByRole('option');\n expect(options).toHaveLength(5);\n options.forEach(option => {\n expect(option).not.toHaveAttribute('disabled');\n });\n },\n};\n\nexport const FilterInstancesDropdown = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n await waitFor(\n async () => {\n const filterInstancesButton = await canvas.findByRole('combobox');\n\n expect(filterInstancesButton).toBeInTheDocument();\n await userEvent.click(filterInstancesButton);\n\n const firstOption = canvas.getByRole('option', { name: 'My Template' });\n expect(firstOption).toBeInTheDocument();\n const secondOption = canvas.getByRole('option', { name: 'Select Dropdowns' });\n expect(secondOption).toBeInTheDocument();\n const thirdOption = canvas.getByRole('option', { name: 'Custom Metadata' });\n expect(thirdOption).toBeInTheDocument();\n\n await userEvent.click(firstOption);\n\n const headlines = await canvas.findAllByRole('heading', { level: 4 });\n expect(headlines).toHaveLength(1);\n expect(headlines[0].textContent).toEqual('My Template');\n },\n { timeout: 2000 },\n );\n },\n};\n\nconst defaultMockHandlers = [\n http.get(mockUserRequest.url, () => {\n return HttpResponse.json(mockUserRequest.response);\n }),\n http.get(mockFileRequest.url, () => {\n return HttpResponse.json(mockFileRequest.response);\n }),\n http.get(mockFileRequestWithoutMetadata.url, () => {\n return HttpResponse.json(mockFileRequestWithoutMetadata.response);\n }),\n http.get(mockMetadataInstances.url, () => {\n return HttpResponse.json(mockMetadataInstances.response);\n }),\n http.get(mockGlobalMetadataTemplates.url, () => {\n return HttpResponse.json(mockGlobalMetadataTemplates.response);\n }),\n http.get(mockEmptyMetadataInstances.url, () => {\n return HttpResponse.json(mockEmptyMetadataInstances.response);\n }),\n http.get(mockEnterpriseMetadataTemplates.url, () => {\n return HttpResponse.json(mockEnterpriseMetadataTemplates.response);\n }),\n];\n\nexport const AddingNewMetadataTemplate: StoryObj<typeof MetadataSidebarRedesign> = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n expect(addTemplateButton).toBeInTheDocument();\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'Virus Scan' });\n expect(customMetadataOption).toBeInTheDocument();\n await userEvent.click(customMetadataOption);\n\n const templateHeader = await canvas.findByRole('heading', { name: 'Virus Scan' });\n expect(templateHeader).toBeInTheDocument();\n },\n};\n\nexport const UnsavedChangesModalWhenChoosingDifferentTemplate: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: defaultMetadataSidebarProps,\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n expect(addTemplateButton).toBeInTheDocument();\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'Virus Scan' });\n expect(customMetadataOption).toBeInTheDocument();\n await userEvent.click(customMetadataOption);\n\n await userEvent.click(addTemplateButton);\n const myTemplateOption = canvas.getByRole('option', { name: 'My Template' });\n expect(myTemplateOption).toBeInTheDocument();\n await userEvent.click(myTemplateOption);\n\n const unsavedChangesModal = await screen.findByRole(\n 'heading',\n { level: 2, name: 'Unsaved Changes' },\n { timeout: 5000 },\n );\n expect(unsavedChangesModal).toBeInTheDocument();\n },\n};\n\nexport const EmptyStateWithBoxAiEnabled: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: {\n ...defaultMetadataSidebarProps,\n },\n features: {\n ...mockFeatures,\n 'metadata.aiSuggestions.enabled': true,\n 'metadata.betalanguage.enabled': false,\n },\n },\n};\n\nexport const EmptyStateWithBoxAiDisabled: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: {\n ...defaultMetadataSidebarProps,\n isBoxAiSuggestionsEnabled: false,\n isBetaLanguageEnabled: false,\n },\n },\n};\n\nexport const MetadataInstanceEditorWithDefinedTemplate: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: defaultMetadataSidebarProps,\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'My Template' });\n await userEvent.click(customMetadataOption);\n },\n};\n\nexport const MetadataInstanceEditorWithCustomTemplate: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: defaultMetadataSidebarProps,\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' }, { timeout: 2000 });\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'Custom Metadata' });\n await userEvent.click(customMetadataOption);\n },\n};\n\nexport const MetadataInstanceEditorCancelChanges: StoryObj<typeof MetadataSidebarRedesign> = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n // Edit buttons contains also template name\n const editButton = await canvas.findByRole('button', { name: 'Edit My Template' });\n expect(editButton).toBeInTheDocument();\n\n let headlines = await canvas.findAllByRole('heading', { level: 4 });\n expect(headlines).toHaveLength(3);\n expect(headlines.map(heading => heading.textContent)).toEqual(\n expect.arrayContaining(['My Template', 'Select Dropdowns', 'Custom Metadata']),\n );\n\n // go to edit mode - only edited template is visible\n await userEvent.click(editButton);\n\n headlines = await canvas.findAllByRole('heading', { level: 4 });\n expect(headlines).toHaveLength(1);\n expect(headlines.map(heading => heading.textContent)).toEqual(expect.arrayContaining(['My Template']));\n\n // cancel editing - back to list view\n const cancelButton = await canvas.findByRole('button', { name: 'Cancel' });\n await userEvent.click(cancelButton);\n\n headlines = await canvas.findAllByRole('heading', { level: 4 });\n expect(headlines).toHaveLength(3);\n expect(headlines.map(heading => heading.textContent)).toEqual(\n expect.arrayContaining(['My Template', 'Select Dropdowns', 'Custom Metadata']),\n );\n },\n};\n\nexport const DeleteButtonIsDisabledWhenAddingNewMetadataTemplate: StoryObj<typeof MetadataSidebarRedesign> = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n expect(addTemplateButton).toBeInTheDocument();\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'Virus Scan' });\n expect(customMetadataOption).toBeInTheDocument();\n await userEvent.click(customMetadataOption);\n\n const deleteButton = await canvas.findByRole('button', { name: 'Delete' });\n expect(deleteButton).toBeDisabled();\n },\n};\n\nexport const DeleteButtonIsEnabledWhenEditingMetadataTemplateInstance: StoryObj<typeof MetadataSidebarRedesign> = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const editMetadataInstanceButton = await canvas.findByRole('button', { name: 'Edit My Template' });\n expect(editMetadataInstanceButton).toBeInTheDocument();\n await userEvent.click(editMetadataInstanceButton);\n\n const deleteButton = await canvas.findByRole('button', { name: 'Delete' });\n expect(deleteButton).toBeEnabled();\n },\n};\n\nexport const MetadataInstanceEditorAddTemplateAgainAfterCancel: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: defaultMetadataSidebarProps,\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n\n await userEvent.click(addTemplateButton);\n\n const templateMetadataOption = canvas.getByRole('option', { name: 'My Template' });\n expect(templateMetadataOption).not.toHaveAttribute('aria-disabled');\n await userEvent.click(templateMetadataOption);\n\n // Check if currently open template is disabled in dropdown\n await userEvent.click(addTemplateButton);\n const templateMetadataOptionDisabled = canvas.getByRole('option', { name: 'My Template' });\n expect(templateMetadataOptionDisabled).toHaveAttribute('aria-disabled');\n\n // Check if template available again after cancelling\n const cancelButton = await canvas.findByRole('button', { name: 'Cancel' });\n await userEvent.click(cancelButton);\n await userEvent.click(addTemplateButton);\n const templateMetadataOptionEnabled = canvas.getByRole('option', { name: 'My Template' });\n expect(templateMetadataOptionEnabled).not.toHaveAttribute('aria-disabled');\n },\n};\n\nexport const SwitchEditingTemplateInstances: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: '416047501580',\n metadataSidebarProps: defaultMetadataSidebarProps,\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n // open and edit a new template\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n\n await userEvent.click(addTemplateButton);\n\n const templateMetadataOption = canvas.getByRole('option', { name: 'My Template' });\n\n await userEvent.click(templateMetadataOption);\n\n const input = await canvas.findByRole('textbox');\n\n await userEvent.type(input, 'Lorem ipsum dolor.');\n\n // open another template while editing the first one (with discarding changes)\n await userEvent.click(addTemplateButton);\n\n const templateMetadataOptionA = canvas.getByRole('option', { name: 'My Template' });\n const templateMetadataOptionB = canvas.getByRole('option', { name: 'Virus Scan' });\n\n expect(templateMetadataOptionA).toHaveAttribute('aria-disabled');\n expect(templateMetadataOptionB).not.toHaveAttribute('aria-disabled');\n\n await userEvent.click(templateMetadataOptionB);\n\n const unsavedChangesModal = await screen.findByRole(\n 'heading',\n { level: 2, name: 'Unsaved Changes' },\n { timeout: 5000 },\n );\n expect(unsavedChangesModal).toBeInTheDocument();\n\n const unsavedChangesModalDiscardButton = await screen.findByRole('button', { name: 'Discard Changes' });\n\n await userEvent.click(unsavedChangesModalDiscardButton);\n\n const newTemplateHeader = await canvas.findByRole('heading', { name: 'Virus Scan' });\n expect(newTemplateHeader).toBeInTheDocument();\n\n // check if template buttons disabled correctly after switching editors\n await userEvent.click(addTemplateButton);\n\n const templateMetadataOptionAAfterSwitch = canvas.getByRole('option', { name: 'My Template' });\n const templateMetadataOptionBAfterSwitch = canvas.getByRole('option', { name: 'Virus Scan' });\n\n expect(templateMetadataOptionAAfterSwitch).not.toHaveAttribute('aria-disabled');\n expect(templateMetadataOptionBAfterSwitch).toHaveAttribute('aria-disabled');\n },\n};\n\nexport const MetadataInstanceEditorAIEnabled: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n features: {\n ...mockFeatures,\n 'metadata.aiSuggestions.enabled': true,\n 'metadata.betalanguage.enabled': false,\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const autofillWithBoxAI = await canvas.findAllByRole('button', { name: /Autofill .+ with Box AI/ });\n expect(autofillWithBoxAI).toHaveLength(2);\n\n const editButton = await canvas.findByRole('button', { name: 'Edit My Template' });\n await userEvent.click(editButton);\n\n const autofillButton = await canvas.findByRole('button', { name: 'Autofill' });\n expect(autofillButton).toBeInTheDocument();\n },\n};\n\nexport const MetadataInstanceEditorAIEnabledAdvancedExtractAgent: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n features: {\n ...mockFeatures,\n 'metadata.aiSuggestions.enabled': true,\n 'metadata.extractAdvancedAgents.enabled': true,\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n // Edit one instance\n const editButton = await canvas.findByRole('button', { name: 'Edit My Template' });\n await userEvent.click(editButton);\n\n // Find the SplitButton\n const splitButton = await canvas.findByRole('button', { name: /Autofill/ });\n expect(splitButton).toBeVisible();\n\n await userEvent.hover(splitButton);\n const dropdownButton = await canvas.findByRole('button', { name: 'See agent options.' });\n expect(dropdownButton).toBeVisible();\n },\n};\n\nexport const ShowErrorWhenAIAPIIsUnavailable: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n features: {\n ...mockFeatures,\n 'metadata.aiSuggestions.enabled': true,\n 'metadata.betalanguage.enabled': false,\n },\n },\n parameters: {\n msw: {\n handlers: [\n ...defaultMockHandlers,\n http.post(aiSuggestionsForMyAttribute.url, () => {\n return new HttpResponse('Not Found', { status: 404 });\n }),\n ],\n },\n test: {\n dangerouslyIgnoreUnhandledErrors: true,\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const autofillButton = await canvas.findByRole('button', { name: 'Autofill My Template with Box AI' });\n await userEvent.click(autofillButton);\n\n const errorAlert = await canvas.findByText('We’re sorry, something went wrong.');\n expect(errorAlert).toBeInTheDocument();\n },\n};\n\nexport const SuggestionsWhenAIAPIResponses: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n features: {\n ...mockFeatures,\n 'metadata.aiSuggestions.enabled': true,\n 'metadata.betalanguage.enabled': false,\n },\n },\n parameters: {\n msw: {\n handlers: [\n ...defaultMockHandlers,\n http.post(aiSuggestionsForMyAttribute.url, () =>\n HttpResponse.json(aiSuggestionsForMyAttribute.response),\n ),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const autofillButton = await canvas.findByRole('button', { name: 'Autofill My Template with Box AI' });\n userEvent.click(autofillButton);\n\n const suggestion = await canvas.findByText('it works fine');\n expect(suggestion).toBeInTheDocument();\n\n const replaceButton = await canvas.findByRole('button', { name: 'Clear and Replace' });\n expect(replaceButton).toBeInTheDocument();\n\n await userEvent.click(replaceButton);\n\n const input = canvas.getByLabelText('My Attribute');\n expect(input).toHaveValue('it works fine');\n },\n};\n\nexport const SuggestionForNewlyCreatedTemplateInstance: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n features: {\n ...mockFeatures,\n 'metadata.aiSuggestions.enabled': true,\n 'metadata.betalanguage.enabled': false,\n },\n },\n parameters: {\n msw: {\n handlers: [\n ...defaultMockHandlers,\n http.post(aiSuggestionsForMyAttribute.url, () => HttpResponse.json(aiSuggestionForDateField.response)),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n expect(addTemplateButton).toBeInTheDocument();\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'Date Template' });\n expect(customMetadataOption).toBeInTheDocument();\n await userEvent.click(customMetadataOption);\n\n const templateHeader = await canvas.findByRole('heading', { name: 'Date Template' });\n expect(templateHeader).toBeInTheDocument();\n\n const autofillButton = await canvas.findByRole('button', { name: 'Autofill' });\n userEvent.click(autofillButton);\n\n const suggestion = await canvas.findByText('4/1/2024');\n expect(suggestion).toBeInTheDocument();\n },\n};\n\nexport const ShowErrorOnDelete: StoryObj<typeof MetadataSidebarRedesign> = {\n parameters: {\n msw: {\n handlers: [\n ...defaultMockHandlers,\n http.delete(mockErrorDeleteMyTemplateMetadataRequest.url, () => {\n return HttpResponse.json(mockErrorDeleteMyTemplateMetadataRequest.response, { status: 404 });\n }),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const editButton = await canvas.findByRole('button', { name: 'Edit My Template' }, { timeout: 2000 });\n await userEvent.click(editButton);\n\n const deleteButton = await canvas.findByRole('button', { name: 'Delete' });\n await userEvent.click(deleteButton);\n\n const confirmModal = await screen.findByRole('dialog', { name: /delete.+/i }, { timeout: 2000 });\n\n const confirmInput = within(confirmModal).getByRole('textbox');\n await userEvent.type(confirmInput, 'My Template');\n\n const confirmButton = within(confirmModal).getByRole('button', { name: 'Confirm' });\n await userEvent.click(confirmButton);\n\n const errorAlert = await canvas.findByText(\n 'An error has occurred while updating metadata. Please refresh the page and try again.',\n );\n expect(errorAlert).toBeInTheDocument();\n },\n};\n\nexport const ViewMultilevelTaxonomy: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n features: {\n ...mockFeatures,\n 'metadata.multilevelTaxonomy.enabled': true,\n },\n },\n parameters: {\n msw: {\n handlers: [\n ...taxonomyMockHandlers,\n http.get(mockMetadataTemplatesWithMultilevelTaxonomy.url, () => {\n return HttpResponse.json(mockMetadataTemplatesWithMultilevelTaxonomy.response);\n }),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n await waitFor(async () => {\n const multilevelOptionButton = canvas.getByRole('button', { name: 'London' });\n\n expect(multilevelOptionButton).toBeInTheDocument();\n\n await userEvent.click(multilevelOptionButton);\n\n const multilevelDialog = screen.getByRole('dialog');\n\n expect(multilevelDialog).toBeInTheDocument();\n });\n },\n};\n\nexport const ViewSinglelevelTaxonomy: StoryObj<typeof MetadataSidebarRedesign> = {\n parameters: {\n msw: {\n handlers: [\n ...taxonomyMockHandlers,\n http.get(mockMetadataTemplatesWithSinglelevelTaxonomy.url, () => {\n return HttpResponse.json(mockMetadataTemplatesWithSinglelevelTaxonomy.response);\n }),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n await waitFor(async () => {\n const singlelevelOptionButton = canvas.getByRole('button', { name: 'Blue' });\n\n expect(singlelevelOptionButton).toBeInTheDocument();\n\n await userEvent.click(singlelevelOptionButton);\n\n const singlelevelDialog = screen.getByRole('dialog');\n\n expect(singlelevelDialog).toBeInTheDocument();\n });\n },\n};\n\nexport const EditMultilevelTaxonomy: StoryObj<typeof MetadataSidebarRedesign> = {\n ...ViewMultilevelTaxonomy,\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const editButton = await waitFor(() => canvas.getByRole('button', { name: 'Edit My Taxonomy' }));\n\n await userEvent.click(editButton);\n\n const multilevelInput = canvas.getByRole('combobox');\n const optionChip = canvas.getByRole('button', { name: 'London' });\n\n expect(multilevelInput).toBeInTheDocument();\n expect(optionChip).toBeInTheDocument();\n\n await userEvent.click(multilevelInput);\n\n const listbox = await waitFor(() => canvas.getByRole('listbox'));\n expect(listbox).toBeInTheDocument();\n\n let expandButtons = await waitFor(() => canvas.getAllByRole('button', { name: 'Expand branch' }));\n\n await userEvent.click(expandButtons[1]);\n\n const hokkaidoOption = await waitFor(() => canvas.getByText('Hokkaido'));\n expect(hokkaidoOption).toBeInTheDocument();\n\n expandButtons = await waitFor(() => screen.getAllByRole('button', { name: 'Expand branch' }));\n\n await userEvent.click(expandButtons[2]);\n\n const sapporoOption = await waitFor(() => canvas.getByRole('treeitem', { name: 'Sapporo' }));\n\n expect(sapporoOption).toBeInTheDocument();\n expect(sapporoOption).toHaveAttribute('aria-selected', 'false');\n\n await userEvent.click(sapporoOption);\n\n const sapporoSelection = await waitFor(() => canvas.getByRole('gridcell', { name: 'Sapporo' }));\n\n expect(sapporoOption).toBeInTheDocument();\n expect(sapporoOption).toHaveAttribute('aria-selected', 'true');\n expect(sapporoSelection).toBeInTheDocument();\n },\n};\n\nexport const EditSinglelevelTaxonomy: StoryObj<typeof MetadataSidebarRedesign> = {\n ...ViewSinglelevelTaxonomy,\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const editButton = await waitFor(() => canvas.getByRole('button', { name: 'Edit My Taxonomy' }));\n\n await userEvent.click(editButton);\n\n const singlelevelInput = canvas.getByRole('combobox');\n const blueSelection = canvas.getByRole('gridcell', { name: 'Blue' });\n\n expect(singlelevelInput).toBeInTheDocument();\n expect(blueSelection).toBeInTheDocument();\n\n await userEvent.click(singlelevelInput);\n\n const listbox = await waitFor(() => canvas.getByRole('listbox'));\n expect(listbox).toBeInTheDocument();\n\n const blueOption = await waitFor(() => canvas.getByRole('option', { name: 'Blue' }));\n const redOption = await waitFor(() => canvas.getByRole('option', { name: 'Red' }));\n const greenOption = await waitFor(() => canvas.getByRole('option', { name: 'Green' }));\n\n expect(blueOption).toBeInTheDocument();\n expect(redOption).toBeInTheDocument();\n expect(greenOption).toBeInTheDocument();\n expect(blueOption).toHaveAttribute('aria-selected', 'true');\n expect(redOption).toHaveAttribute('aria-selected', 'false');\n expect(greenOption).toHaveAttribute('aria-selected', 'false');\n\n await userEvent.click(redOption);\n\n const redSelection = await waitFor(() => canvas.getByRole('gridcell', { name: 'Red' }));\n\n expect(redSelection).toBeInTheDocument();\n expect(blueSelection).toBeInTheDocument();\n expect(blueOption).toBeInTheDocument();\n expect(redOption).toBeInTheDocument();\n expect(greenOption).toBeInTheDocument();\n expect(blueOption).toHaveAttribute('aria-selected', 'true');\n expect(redOption).toHaveAttribute('aria-selected', 'true');\n expect(greenOption).toHaveAttribute('aria-selected', 'false');\n },\n};\n\nconst meta: Meta<typeof ContentSidebar> & { parameters: { msw: { handlers: HttpHandler[] } } } = {\n title: 'Elements/ContentSidebar/MetadataSidebarRedesign/tests/visual-regression-tests',\n component: ContentSidebar,\n args: {\n token,\n metadataSidebarProps: {\n ...defaultMetadataArgs,\n },\n hasMetadata: true,\n features: mockFeatures,\n fileId: fileIdWithMetadata,\n logger: mockLogger,\n },\n parameters: {\n msw: {\n handlers: defaultMockHandlers,\n },\n },\n};\n\nexport default meta;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MetadataSidebarRedesign-visual.stories.js","names":["http","HttpResponse","expect","userEvent","waitFor","within","fn","screen","ContentSidebar","aiSuggestionForDateField","aiSuggestionsForMyAttribute","fileIdWithMetadata","fileIdWithoutMetadata","mockEmptyMetadataInstances","mockEnterpriseMetadataTemplates","mockErrorDeleteMyTemplateMetadataRequest","mockFileRequest","mockFileRequestWithoutMetadata","mockGlobalMetadataTemplates","mockMetadataInstances","mockUserRequest","mockMetadataTemplatesWithMultilevelTaxonomy","mockMetadataTemplatesWithSinglelevelTaxonomy","taxonomyMockHandlers","token","global","TOKEN","defaultMetadataArgs","fileId","isFeatureEnabled","onError","onSuccess","defaultMetadataSidebarProps","mockFeatures","mockLogger","onReadyMetric","endMarkName","console","log","AddTemplateDropdownMenuOn","play","canvasElement","canvas","addTemplateButton","findByRole","name","timeout","toBeInTheDocument","click","customMetadataOption","getByRole","toHaveAttribute","AddTemplateDropdownMenuOnEmpty","args","metadataSidebarProps","isBoxAiSuggestionsEnabled","isBetaLanguageEnabled","options","getAllByRole","toHaveLength","forEach","option","not","FilterInstancesDropdown","filterInstancesButton","firstOption","secondOption","thirdOption","headlines","findAllByRole","level","textContent","toEqual","defaultMockHandlers","get","url","json","response","AddingNewMetadataTemplate","templateHeader","UnsavedChangesModalWhenChoosingDifferentTemplate","myTemplateOption","unsavedChangesModal","EmptyStateWithBoxAiEnabled","_objectSpread","features","EmptyStateWithBoxAiDisabled","MetadataInstanceEditorWithDefinedTemplate","MetadataInstanceEditorWithCustomTemplate","MetadataInstanceEditorCancelChanges","editButton","map","heading","arrayContaining","cancelButton","DeleteButtonIsDisabledWhenAddingNewMetadataTemplate","deleteButton","toBeDisabled","DeleteButtonIsEnabledWhenEditingMetadataTemplateInstance","editMetadataInstanceButton","toBeEnabled","MetadataInstanceEditorAddTemplateAgainAfterCancel","templateMetadataOption","templateMetadataOptionDisabled","templateMetadataOptionEnabled","SwitchEditingTemplateInstances","parameters","msw","handlers","input","type","templateMetadataOptionA","templateMetadataOptionB","unsavedChangesModalDiscardButton","newTemplateHeader","templateMetadataOptionAAfterSwitch","templateMetadataOptionBAfterSwitch","MetadataInstanceEditorAIEnabled","autofillWithBoxAI","autofillButton","MetadataInstanceEditorAIEnabledAdvancedExtractAgent","splitButton","toBeVisible","hover","dropdownButton","ShowErrorWhenAIAPIIsUnavailable","post","status","test","dangerouslyIgnoreUnhandledErrors","errorAlert","findByText","SuggestionsWhenAIAPIResponses","suggestion","replaceButton","getByLabelText","toHaveValue","SuggestionForNewlyCreatedTemplateInstance","ShowErrorOnDelete","delete","confirmModal","confirmInput","confirmButton","ViewMultilevelTaxonomy","multilevelOptionButton","multilevelDialog","ViewSinglelevelTaxonomy","singlelevelOptionButton","singlelevelDialog","EditMultilevelTaxonomy","multilevelInput","optionChip","listbox","expandButtons","hokkaidoOption","getByText","sapporoOption","sapporoSelection","EditSinglelevelTaxonomy","singlelevelInput","blueSelection","blueOption","redOption","greenOption","redSelection","meta","title","component","hasMetadata","logger"],"sources":["../../../../../src/elements/content-sidebar/stories/tests/MetadataSidebarRedesign-visual.stories.tsx"],"sourcesContent":["import { type ComponentProps } from 'react';\nimport { http, HttpResponse } from 'msw';\nimport { expect, userEvent, waitFor, within, fn, screen } from '@storybook/test';\nimport { type StoryObj, Meta } from '@storybook/react';\nimport type { HttpHandler } from 'msw';\nimport ContentSidebar from '../../ContentSidebar';\nimport MetadataSidebarRedesign from '../../MetadataSidebarRedesign';\nimport {\n aiSuggestionForDateField,\n aiSuggestionsForMyAttribute,\n fileIdWithMetadata,\n fileIdWithoutMetadata,\n mockEmptyMetadataInstances,\n mockEnterpriseMetadataTemplates,\n mockErrorDeleteMyTemplateMetadataRequest,\n mockFileRequest,\n mockFileRequestWithoutMetadata,\n mockGlobalMetadataTemplates,\n mockMetadataInstances,\n} from '../__mocks__/MetadataSidebarRedesignedMocks';\nimport { mockUserRequest } from '../../../common/__mocks__/mockRequests';\nimport {\n mockMetadataTemplatesWithMultilevelTaxonomy,\n mockMetadataTemplatesWithSinglelevelTaxonomy,\n taxonomyMockHandlers,\n} from '../__mocks__/TaxonomyMocks';\n\nconst token = global.TOKEN;\n\nconst defaultMetadataArgs = {\n fileId: fileIdWithMetadata,\n isFeatureEnabled: true,\n onError: fn(),\n onSuccess: fn(),\n};\nconst defaultMetadataSidebarProps: ComponentProps<typeof MetadataSidebarRedesign> = {\n isFeatureEnabled: true,\n onError: fn(),\n onSuccess: fn(),\n};\nconst mockFeatures = {\n 'metadata.redesign.enabled': true,\n};\nconst mockLogger = {\n onReadyMetric: ({ endMarkName }) => {\n // eslint-disable-next-line no-console\n console.log(`Logger: onReadyMetric called with endMarkName: ${endMarkName}`);\n },\n};\n\nexport const AddTemplateDropdownMenuOn = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' }, { timeout: 2000 });\n\n expect(addTemplateButton).toBeInTheDocument();\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'Custom Metadata' });\n expect(customMetadataOption).toBeInTheDocument();\n expect(customMetadataOption).toHaveAttribute('aria-disabled');\n },\n};\n\nexport const AddTemplateDropdownMenuOnEmpty = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: {\n isBoxAiSuggestionsEnabled: true,\n isBetaLanguageEnabled: false,\n isFeatureEnabled: true,\n onError: fn(),\n onSuccess: fn(),\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' }, { timeout: 2000 });\n\n expect(addTemplateButton).toBeInTheDocument();\n await userEvent.click(addTemplateButton);\n\n const options = canvas.getAllByRole('option');\n expect(options).toHaveLength(5);\n options.forEach(option => {\n expect(option).not.toHaveAttribute('disabled');\n });\n },\n};\n\nexport const FilterInstancesDropdown = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n await waitFor(\n async () => {\n const filterInstancesButton = await canvas.findByRole('combobox');\n\n expect(filterInstancesButton).toBeInTheDocument();\n await userEvent.click(filterInstancesButton);\n\n const firstOption = canvas.getByRole('option', { name: 'My Template' });\n expect(firstOption).toBeInTheDocument();\n const secondOption = canvas.getByRole('option', { name: 'Select Dropdowns' });\n expect(secondOption).toBeInTheDocument();\n const thirdOption = canvas.getByRole('option', { name: 'Custom Metadata' });\n expect(thirdOption).toBeInTheDocument();\n\n await userEvent.click(firstOption);\n\n const headlines = await canvas.findAllByRole('heading', { level: 4 });\n expect(headlines).toHaveLength(1);\n expect(headlines[0].textContent).toEqual('My Template');\n },\n { timeout: 2000 },\n );\n },\n};\n\nconst defaultMockHandlers = [\n http.get(mockUserRequest.url, () => {\n return HttpResponse.json(mockUserRequest.response);\n }),\n http.get(mockFileRequest.url, () => {\n return HttpResponse.json(mockFileRequest.response);\n }),\n http.get(mockFileRequestWithoutMetadata.url, () => {\n return HttpResponse.json(mockFileRequestWithoutMetadata.response);\n }),\n http.get(mockMetadataInstances.url, () => {\n return HttpResponse.json(mockMetadataInstances.response);\n }),\n http.get(mockGlobalMetadataTemplates.url, () => {\n return HttpResponse.json(mockGlobalMetadataTemplates.response);\n }),\n http.get(mockEmptyMetadataInstances.url, () => {\n return HttpResponse.json(mockEmptyMetadataInstances.response);\n }),\n http.get(mockEnterpriseMetadataTemplates.url, () => {\n return HttpResponse.json(mockEnterpriseMetadataTemplates.response);\n }),\n];\n\nexport const AddingNewMetadataTemplate: StoryObj<typeof MetadataSidebarRedesign> = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n expect(addTemplateButton).toBeInTheDocument();\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'Virus Scan' });\n expect(customMetadataOption).toBeInTheDocument();\n await userEvent.click(customMetadataOption);\n\n const templateHeader = await canvas.findByRole('heading', { name: 'Virus Scan' });\n expect(templateHeader).toBeInTheDocument();\n },\n};\n\nexport const UnsavedChangesModalWhenChoosingDifferentTemplate: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: defaultMetadataSidebarProps,\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n expect(addTemplateButton).toBeInTheDocument();\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'Virus Scan' });\n expect(customMetadataOption).toBeInTheDocument();\n await userEvent.click(customMetadataOption);\n\n await userEvent.click(addTemplateButton);\n const myTemplateOption = canvas.getByRole('option', { name: 'My Template' });\n expect(myTemplateOption).toBeInTheDocument();\n await userEvent.click(myTemplateOption);\n\n const unsavedChangesModal = await screen.findByRole(\n 'heading',\n { level: 2, name: 'Unsaved Changes' },\n { timeout: 5000 },\n );\n expect(unsavedChangesModal).toBeInTheDocument();\n },\n};\n\nexport const EmptyStateWithBoxAiEnabled: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: {\n ...defaultMetadataSidebarProps,\n },\n features: {\n ...mockFeatures,\n 'metadata.aiSuggestions.enabled': true,\n 'metadata.betalanguage.enabled': false,\n },\n },\n};\n\nexport const EmptyStateWithBoxAiDisabled: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: {\n ...defaultMetadataSidebarProps,\n isBoxAiSuggestionsEnabled: false,\n isBetaLanguageEnabled: false,\n },\n },\n};\n\nexport const MetadataInstanceEditorWithDefinedTemplate: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: defaultMetadataSidebarProps,\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'My Template' });\n await userEvent.click(customMetadataOption);\n },\n};\n\nexport const MetadataInstanceEditorWithCustomTemplate: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: defaultMetadataSidebarProps,\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' }, { timeout: 2000 });\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'Custom Metadata' });\n await userEvent.click(customMetadataOption);\n },\n};\n\nexport const MetadataInstanceEditorCancelChanges: StoryObj<typeof MetadataSidebarRedesign> = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n // Edit buttons contains also template name\n const editButton = await canvas.findByRole('button', { name: 'Edit My Template' });\n expect(editButton).toBeInTheDocument();\n\n let headlines = await canvas.findAllByRole('heading', { level: 4 });\n expect(headlines).toHaveLength(3);\n expect(headlines.map(heading => heading.textContent)).toEqual(\n expect.arrayContaining(['My Template', 'Select Dropdowns', 'Custom Metadata']),\n );\n\n // go to edit mode - only edited template is visible\n await userEvent.click(editButton);\n\n headlines = await canvas.findAllByRole('heading', { level: 4 });\n expect(headlines).toHaveLength(1);\n expect(headlines.map(heading => heading.textContent)).toEqual(expect.arrayContaining(['My Template']));\n\n // cancel editing - back to list view\n const cancelButton = await canvas.findByRole('button', { name: 'Cancel' });\n await userEvent.click(cancelButton);\n\n headlines = await canvas.findAllByRole('heading', { level: 4 });\n expect(headlines).toHaveLength(3);\n expect(headlines.map(heading => heading.textContent)).toEqual(\n expect.arrayContaining(['My Template', 'Select Dropdowns', 'Custom Metadata']),\n );\n },\n};\n\nexport const DeleteButtonIsDisabledWhenAddingNewMetadataTemplate: StoryObj<typeof MetadataSidebarRedesign> = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n expect(addTemplateButton).toBeInTheDocument();\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'Virus Scan' });\n expect(customMetadataOption).toBeInTheDocument();\n await userEvent.click(customMetadataOption);\n\n const deleteButton = await canvas.findByRole('button', { name: 'Delete' });\n expect(deleteButton).toBeDisabled();\n },\n};\n\nexport const DeleteButtonIsEnabledWhenEditingMetadataTemplateInstance: StoryObj<typeof MetadataSidebarRedesign> = {\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const editMetadataInstanceButton = await canvas.findByRole('button', { name: 'Edit My Template' });\n expect(editMetadataInstanceButton).toBeInTheDocument();\n await userEvent.click(editMetadataInstanceButton);\n\n const deleteButton = await canvas.findByRole('button', { name: 'Delete' });\n expect(deleteButton).toBeEnabled();\n },\n};\n\nexport const MetadataInstanceEditorAddTemplateAgainAfterCancel: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: fileIdWithoutMetadata,\n metadataSidebarProps: defaultMetadataSidebarProps,\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n\n await userEvent.click(addTemplateButton);\n\n const templateMetadataOption = canvas.getByRole('option', { name: 'My Template' });\n expect(templateMetadataOption).not.toHaveAttribute('aria-disabled');\n await userEvent.click(templateMetadataOption);\n\n // Check if currently open template is disabled in dropdown\n await userEvent.click(addTemplateButton);\n const templateMetadataOptionDisabled = canvas.getByRole('option', { name: 'My Template' });\n expect(templateMetadataOptionDisabled).toHaveAttribute('aria-disabled');\n\n // Check if template available again after cancelling\n const cancelButton = await canvas.findByRole('button', { name: 'Cancel' });\n await userEvent.click(cancelButton);\n await userEvent.click(addTemplateButton);\n const templateMetadataOptionEnabled = canvas.getByRole('option', { name: 'My Template' });\n expect(templateMetadataOptionEnabled).not.toHaveAttribute('aria-disabled');\n },\n};\n\nexport const SwitchEditingTemplateInstances: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n fileId: '416047501580',\n metadataSidebarProps: defaultMetadataSidebarProps,\n },\n parameters: {\n msw: {\n handlers: [\n ...defaultMockHandlers,\n http.get(`/2.0/files/416047501580`, () => {\n return HttpResponse.json(mockFileRequest.response);\n }),\n http.get(`/2.0/files/416047501580/metadata`, () => {\n return HttpResponse.json(mockMetadataInstances.response);\n }),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n // open and edit a new template\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n\n await userEvent.click(addTemplateButton);\n\n const templateMetadataOption = canvas.getByRole('option', { name: 'My Template' });\n\n await userEvent.click(templateMetadataOption);\n\n const input = await canvas.findByRole('textbox');\n\n await userEvent.type(input, 'Lorem ipsum dolor.');\n\n // open another template while editing the first one (with discarding changes)\n await userEvent.click(addTemplateButton);\n\n const templateMetadataOptionA = canvas.getByRole('option', { name: 'My Template' });\n const templateMetadataOptionB = canvas.getByRole('option', { name: 'Virus Scan' });\n\n expect(templateMetadataOptionA).toHaveAttribute('aria-disabled');\n expect(templateMetadataOptionB).not.toHaveAttribute('aria-disabled');\n\n await userEvent.click(templateMetadataOptionB);\n\n const unsavedChangesModal = await screen.findByRole(\n 'heading',\n { level: 2, name: 'Unsaved Changes' },\n { timeout: 5000 },\n );\n expect(unsavedChangesModal).toBeInTheDocument();\n\n const unsavedChangesModalDiscardButton = await screen.findByRole('button', { name: 'Discard Changes' });\n\n await userEvent.click(unsavedChangesModalDiscardButton);\n\n const newTemplateHeader = await canvas.findByRole('heading', { name: 'Virus Scan' });\n expect(newTemplateHeader).toBeInTheDocument();\n\n // check if template buttons disabled correctly after switching editors\n await userEvent.click(addTemplateButton);\n\n const templateMetadataOptionAAfterSwitch = canvas.getByRole('option', { name: 'My Template' });\n const templateMetadataOptionBAfterSwitch = canvas.getByRole('option', { name: 'Virus Scan' });\n\n expect(templateMetadataOptionAAfterSwitch).not.toHaveAttribute('aria-disabled');\n expect(templateMetadataOptionBAfterSwitch).toHaveAttribute('aria-disabled');\n },\n};\n\nexport const MetadataInstanceEditorAIEnabled: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n features: {\n ...mockFeatures,\n 'metadata.aiSuggestions.enabled': true,\n 'metadata.betalanguage.enabled': false,\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const autofillWithBoxAI = await canvas.findAllByRole('button', { name: /Autofill .+ with Box AI/ });\n expect(autofillWithBoxAI).toHaveLength(2);\n\n const editButton = await canvas.findByRole('button', { name: 'Edit My Template' });\n await userEvent.click(editButton);\n\n const autofillButton = await canvas.findByRole('button', { name: 'Autofill' });\n expect(autofillButton).toBeInTheDocument();\n },\n};\n\nexport const MetadataInstanceEditorAIEnabledAdvancedExtractAgent: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n features: {\n ...mockFeatures,\n 'metadata.aiSuggestions.enabled': true,\n 'metadata.extractAdvancedAgents.enabled': true,\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n // Edit one instance\n const editButton = await canvas.findByRole('button', { name: 'Edit My Template' });\n await userEvent.click(editButton);\n\n // Find the SplitButton\n const splitButton = await canvas.findByRole('button', { name: /Autofill/ });\n expect(splitButton).toBeVisible();\n\n await userEvent.hover(splitButton);\n const dropdownButton = await canvas.findByRole('button', { name: 'See agent options.' });\n expect(dropdownButton).toBeVisible();\n },\n};\n\nexport const ShowErrorWhenAIAPIIsUnavailable: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n features: {\n ...mockFeatures,\n 'metadata.aiSuggestions.enabled': true,\n 'metadata.betalanguage.enabled': false,\n },\n },\n parameters: {\n msw: {\n handlers: [\n ...defaultMockHandlers,\n http.post(aiSuggestionsForMyAttribute.url, () => {\n return new HttpResponse('Not Found', { status: 404 });\n }),\n ],\n },\n test: {\n dangerouslyIgnoreUnhandledErrors: true,\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const autofillButton = await canvas.findByRole('button', { name: 'Autofill My Template with Box AI' });\n await userEvent.click(autofillButton);\n\n const errorAlert = await canvas.findByText('We’re sorry, something went wrong.');\n expect(errorAlert).toBeInTheDocument();\n },\n};\n\nexport const SuggestionsWhenAIAPIResponses: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n features: {\n ...mockFeatures,\n 'metadata.aiSuggestions.enabled': true,\n 'metadata.betalanguage.enabled': false,\n },\n },\n parameters: {\n msw: {\n handlers: [\n ...defaultMockHandlers,\n http.post(aiSuggestionsForMyAttribute.url, () =>\n HttpResponse.json(aiSuggestionsForMyAttribute.response),\n ),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const autofillButton = await canvas.findByRole('button', { name: 'Autofill My Template with Box AI' });\n userEvent.click(autofillButton);\n\n const suggestion = await canvas.findByText('it works fine');\n expect(suggestion).toBeInTheDocument();\n\n const replaceButton = await canvas.findByRole('button', { name: 'Clear and Replace' });\n expect(replaceButton).toBeInTheDocument();\n\n await userEvent.click(replaceButton);\n\n const input = canvas.getByLabelText('My Attribute');\n expect(input).toHaveValue('it works fine');\n },\n};\n\nexport const SuggestionForNewlyCreatedTemplateInstance: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n features: {\n ...mockFeatures,\n 'metadata.aiSuggestions.enabled': true,\n 'metadata.betalanguage.enabled': false,\n },\n },\n parameters: {\n msw: {\n handlers: [\n ...defaultMockHandlers,\n http.post(aiSuggestionsForMyAttribute.url, () => HttpResponse.json(aiSuggestionForDateField.response)),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const addTemplateButton = await canvas.findByRole('button', { name: 'Add template' });\n expect(addTemplateButton).toBeInTheDocument();\n await userEvent.click(addTemplateButton);\n\n const customMetadataOption = canvas.getByRole('option', { name: 'Date Template' });\n expect(customMetadataOption).toBeInTheDocument();\n await userEvent.click(customMetadataOption);\n\n const templateHeader = await canvas.findByRole('heading', { name: 'Date Template' });\n expect(templateHeader).toBeInTheDocument();\n\n const autofillButton = await canvas.findByRole('button', { name: 'Autofill' });\n userEvent.click(autofillButton);\n\n const suggestion = await canvas.findByText('4/1/2024', {}, { timeout: 5000 });\n expect(suggestion).toBeInTheDocument();\n },\n};\n\nexport const ShowErrorOnDelete: StoryObj<typeof MetadataSidebarRedesign> = {\n parameters: {\n msw: {\n handlers: [\n ...defaultMockHandlers,\n http.delete(mockErrorDeleteMyTemplateMetadataRequest.url, () => {\n return HttpResponse.json(mockErrorDeleteMyTemplateMetadataRequest.response, { status: 404 });\n }),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const editButton = await canvas.findByRole('button', { name: 'Edit My Template' }, { timeout: 2000 });\n await userEvent.click(editButton);\n\n const deleteButton = await canvas.findByRole('button', { name: 'Delete' });\n await userEvent.click(deleteButton);\n\n const confirmModal = await screen.findByRole('dialog', { name: /delete.+/i }, { timeout: 2000 });\n\n const confirmInput = within(confirmModal).getByRole('textbox');\n await userEvent.type(confirmInput, 'My Template');\n\n const confirmButton = within(confirmModal).getByRole('button', { name: 'Confirm' });\n await userEvent.click(confirmButton);\n\n const errorAlert = await canvas.findByText(\n 'An error has occurred while updating metadata. Please refresh the page and try again.',\n );\n expect(errorAlert).toBeInTheDocument();\n },\n};\n\nexport const ViewMultilevelTaxonomy: StoryObj<typeof MetadataSidebarRedesign> = {\n args: {\n features: {\n ...mockFeatures,\n 'metadata.multilevelTaxonomy.enabled': true,\n },\n },\n parameters: {\n msw: {\n handlers: [\n ...taxonomyMockHandlers,\n http.get(mockMetadataTemplatesWithMultilevelTaxonomy.url, () => {\n return HttpResponse.json(mockMetadataTemplatesWithMultilevelTaxonomy.response);\n }),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n await waitFor(async () => {\n const multilevelOptionButton = canvas.getByRole('button', { name: 'London' });\n\n expect(multilevelOptionButton).toBeInTheDocument();\n\n await userEvent.click(multilevelOptionButton);\n\n const multilevelDialog = screen.getByRole('dialog');\n\n expect(multilevelDialog).toBeInTheDocument();\n });\n },\n};\n\nexport const ViewSinglelevelTaxonomy: StoryObj<typeof MetadataSidebarRedesign> = {\n parameters: {\n msw: {\n handlers: [\n ...taxonomyMockHandlers,\n http.get(mockMetadataTemplatesWithSinglelevelTaxonomy.url, () => {\n return HttpResponse.json(mockMetadataTemplatesWithSinglelevelTaxonomy.response);\n }),\n ],\n },\n },\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n await waitFor(async () => {\n const singlelevelOptionButton = canvas.getByRole('button', { name: 'Blue' });\n\n expect(singlelevelOptionButton).toBeInTheDocument();\n\n await userEvent.click(singlelevelOptionButton);\n\n const singlelevelDialog = screen.getByRole('dialog');\n\n expect(singlelevelDialog).toBeInTheDocument();\n });\n },\n};\n\nexport const EditMultilevelTaxonomy: StoryObj<typeof MetadataSidebarRedesign> = {\n ...ViewMultilevelTaxonomy,\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const editButton = await waitFor(() => canvas.getByRole('button', { name: 'Edit My Taxonomy' }));\n\n await userEvent.click(editButton);\n\n const multilevelInput = canvas.getByRole('combobox');\n const optionChip = canvas.getByRole('button', { name: 'London' });\n\n expect(multilevelInput).toBeInTheDocument();\n expect(optionChip).toBeInTheDocument();\n\n await userEvent.click(multilevelInput);\n\n const listbox = await waitFor(() => canvas.getByRole('listbox'));\n expect(listbox).toBeInTheDocument();\n\n let expandButtons = await waitFor(() => canvas.getAllByRole('button', { name: 'Expand branch' }));\n\n await userEvent.click(expandButtons[1]);\n\n const hokkaidoOption = await waitFor(() => canvas.getByText('Hokkaido'));\n expect(hokkaidoOption).toBeInTheDocument();\n\n expandButtons = await waitFor(() => screen.getAllByRole('button', { name: 'Expand branch' }));\n\n await userEvent.click(expandButtons[2]);\n\n const sapporoOption = await waitFor(() => canvas.getByRole('treeitem', { name: 'Sapporo' }));\n\n expect(sapporoOption).toBeInTheDocument();\n expect(sapporoOption).toHaveAttribute('aria-selected', 'false');\n\n await userEvent.click(sapporoOption);\n\n const sapporoSelection = await waitFor(() => canvas.getByRole('gridcell', { name: 'Sapporo' }));\n\n expect(sapporoOption).toBeInTheDocument();\n expect(sapporoOption).toHaveAttribute('aria-selected', 'true');\n expect(sapporoSelection).toBeInTheDocument();\n },\n};\n\nexport const EditSinglelevelTaxonomy: StoryObj<typeof MetadataSidebarRedesign> = {\n ...ViewSinglelevelTaxonomy,\n play: async ({ canvasElement }) => {\n const canvas = within(canvasElement);\n\n const editButton = await waitFor(() => canvas.getByRole('button', { name: 'Edit My Taxonomy' }));\n\n await userEvent.click(editButton);\n\n const singlelevelInput = canvas.getByRole('combobox');\n const blueSelection = canvas.getByRole('gridcell', { name: 'Blue' });\n\n expect(singlelevelInput).toBeInTheDocument();\n expect(blueSelection).toBeInTheDocument();\n\n await userEvent.click(singlelevelInput);\n\n const listbox = await waitFor(() => canvas.getByRole('listbox'));\n expect(listbox).toBeInTheDocument();\n\n const blueOption = await waitFor(() => canvas.getByRole('option', { name: 'Blue' }));\n const redOption = await waitFor(() => canvas.getByRole('option', { name: 'Red' }));\n const greenOption = await waitFor(() => canvas.getByRole('option', { name: 'Green' }));\n\n expect(blueOption).toBeInTheDocument();\n expect(redOption).toBeInTheDocument();\n expect(greenOption).toBeInTheDocument();\n expect(blueOption).toHaveAttribute('aria-selected', 'true');\n expect(redOption).toHaveAttribute('aria-selected', 'false');\n expect(greenOption).toHaveAttribute('aria-selected', 'false');\n\n await userEvent.click(redOption);\n\n const redSelection = await waitFor(() => canvas.getByRole('gridcell', { name: 'Red' }));\n\n expect(redSelection).toBeInTheDocument();\n expect(blueSelection).toBeInTheDocument();\n expect(blueOption).toBeInTheDocument();\n expect(redOption).toBeInTheDocument();\n expect(greenOption).toBeInTheDocument();\n expect(blueOption).toHaveAttribute('aria-selected', 'true');\n expect(redOption).toHaveAttribute('aria-selected', 'true');\n expect(greenOption).toHaveAttribute('aria-selected', 'false');\n },\n};\n\nconst meta: Meta<typeof ContentSidebar> & { parameters: { msw: { handlers: HttpHandler[] } } } = {\n title: 'Elements/ContentSidebar/MetadataSidebarRedesign/tests/visual-regression-tests',\n component: ContentSidebar,\n args: {\n token,\n metadataSidebarProps: {\n ...defaultMetadataArgs,\n },\n hasMetadata: true,\n features: mockFeatures,\n fileId: fileIdWithMetadata,\n logger: mockLogger,\n },\n parameters: {\n msw: {\n handlers: defaultMockHandlers,\n },\n },\n};\n\nexport default meta;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- const _excluded = ["header", "footer", "flyoutButton", "children", "scrollRefFn", "className"];
1
+ const _excluded = ["header", "footer", "flyoutButton", "children", "scrollRefFn", "className", "isOverlayHeaderActionEnabled"];
2
2
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
3
3
  function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
4
4
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
@@ -19,7 +19,8 @@ class HeaderFlyout extends React.Component {
19
19
  flyoutButton,
20
20
  children,
21
21
  scrollRefFn,
22
- className
22
+ className,
23
+ isOverlayHeaderActionEnabled = false
23
24
  } = _this$props,
24
25
  rest = _objectWithoutProperties(_this$props, _excluded);
25
26
  return /*#__PURE__*/React.createElement(Flyout, _extends({
@@ -29,7 +30,9 @@ class HeaderFlyout extends React.Component {
29
30
  offset: HeaderFlyout.panelOffset
30
31
  }, rest), flyoutButton, /*#__PURE__*/React.createElement(Overlay, {
31
32
  className: "header-flyout-overlay"
32
- }, /*#__PURE__*/React.createElement(OverlayHeader, null, header && /*#__PURE__*/React.createElement("h4", {
33
+ }, /*#__PURE__*/React.createElement(OverlayHeader, {
34
+ isOverlayHeaderActionEnabled: isOverlayHeaderActionEnabled
35
+ }, header && /*#__PURE__*/React.createElement("h4", {
33
36
  className: "header-flyout-title"
34
37
  }, header)), /*#__PURE__*/React.createElement("div", {
35
38
  className: "header-flyout-list-container"
@@ -20,6 +20,8 @@ type Props = FlyoutProps & {
20
20
  header?: React.Element<any>,
21
21
  /** Optional function to get the scrollRef in parent components */
22
22
  scrollRefFn?: any => any,
23
+ /** Are OverlayHeader actions enabled */
24
+ isOverlayHeaderActionEnabled?: boolean,
23
25
  };
24
26
 
25
27
  class HeaderFlyout extends React.Component<Props> {
@@ -30,7 +32,16 @@ class HeaderFlyout extends React.Component<Props> {
30
32
  };
31
33
 
32
34
  render() {
33
- const { header, footer, flyoutButton, children, scrollRefFn, className, ...rest } = this.props;
35
+ const {
36
+ header,
37
+ footer,
38
+ flyoutButton,
39
+ children,
40
+ scrollRefFn,
41
+ className,
42
+ isOverlayHeaderActionEnabled = false,
43
+ ...rest
44
+ } = this.props;
34
45
 
35
46
  return (
36
47
  <Flyout
@@ -42,7 +53,9 @@ class HeaderFlyout extends React.Component<Props> {
42
53
  >
43
54
  {flyoutButton}
44
55
  <Overlay className="header-flyout-overlay">
45
- <OverlayHeader>{header && <h4 className="header-flyout-title">{header}</h4>}</OverlayHeader>
56
+ <OverlayHeader isOverlayHeaderActionEnabled={isOverlayHeaderActionEnabled}>
57
+ {header && <h4 className="header-flyout-title">{header}</h4>}
58
+ </OverlayHeader>
46
59
  <div className="header-flyout-list-container">
47
60
  <div
48
61
  className={classNames('flyout-list-container-body', {
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderFlyout.js","names":["React","classNames","Flyout","Overlay","OverlayHeader","ScrollWrapper","HeaderFlyout","Component","render","_this$props","props","header","footer","flyoutButton","children","scrollRefFn","className","rest","_objectWithoutProperties","_excluded","createElement","_extends","closeOnClick","constrainToWindow","offset","panelOffset","shadowSize","_defineProperty","position"],"sources":["../../../src/features/header-flyout/HeaderFlyout.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Flyout, Overlay, OverlayHeader } from '../../components/flyout';\nimport ScrollWrapper from '../../components/scroll-wrapper';\nimport type { FlyoutProps } from '../../components/flyout/Flyout';\n\nimport './styles/HeaderFlyout.scss';\n\ntype Props = FlyoutProps & {\n /** Components to render in the overlay */\n children: ?React.Node,\n /** Set className to the overlay wrapper */\n className?: string,\n /** Custom button to trigger for opening/closing the flyout */\n flyoutButton: React.Element<any>,\n /** What content to display in the footer */\n footer?: React.Element<any>,\n /** What content to display in the header */\n header?: React.Element<any>,\n /** Optional function to get the scrollRef in parent components */\n scrollRefFn?: any => any,\n};\n\nclass HeaderFlyout extends React.Component<Props> {\n static panelOffset = '-4px 0px';\n\n static defaultProps = {\n position: 'bottom-left',\n };\n\n render() {\n const { header, footer, flyoutButton, children, scrollRefFn, className, ...rest } = this.props;\n\n return (\n <Flyout\n className={classNames('header-flyout', className)}\n closeOnClick={false}\n constrainToWindow\n offset={HeaderFlyout.panelOffset}\n {...rest}\n >\n {flyoutButton}\n <Overlay className=\"header-flyout-overlay\">\n <OverlayHeader>{header && <h4 className=\"header-flyout-title\">{header}</h4>}</OverlayHeader>\n <div className=\"header-flyout-list-container\">\n <div\n className={classNames('flyout-list-container-body', {\n 'with-header': !!header,\n 'with-footer': !!footer,\n })}\n >\n {children != null && (\n <ScrollWrapper scrollRefFn={scrollRefFn} shadowSize=\"contain\">\n {children}\n </ScrollWrapper>\n )}\n </div>\n {footer && <div className=\"flyout-list-container-footer\">{footer}</div>}\n </div>\n </Overlay>\n </Flyout>\n );\n }\n}\n\nexport default HeaderFlyout;\n"],"mappings":";;;;;;;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,EAAEC,OAAO,EAAEC,aAAa,QAAQ,yBAAyB;AACxE,OAAOC,aAAa,MAAM,iCAAiC;AAG3D,OAAO,4BAA4B;AAiBnC,MAAMC,YAAY,SAASN,KAAK,CAACO,SAAS,CAAQ;EAO9CC,MAAMA,CAAA,EAAG;IACL,MAAAC,WAAA,GAAoF,IAAI,CAACC,KAAK;MAAxF;QAAEC,MAAM;QAAEC,MAAM;QAAEC,YAAY;QAAEC,QAAQ;QAAEC,WAAW;QAAEC;MAAmB,CAAC,GAAAP,WAAA;MAANQ,IAAI,GAAAC,wBAAA,CAAAT,WAAA,EAAAU,SAAA;IAE/E,oBACInB,KAAA,CAAAoB,aAAA,CAAClB,MAAM,EAAAmB,QAAA;MACHL,SAAS,EAAEf,UAAU,CAAC,eAAe,EAAEe,SAAS,CAAE;MAClDM,YAAY,EAAE,KAAM;MACpBC,iBAAiB;MACjBC,MAAM,EAAElB,YAAY,CAACmB;IAAY,GAC7BR,IAAI,GAEPJ,YAAY,eACbb,KAAA,CAAAoB,aAAA,CAACjB,OAAO;MAACa,SAAS,EAAC;IAAuB,gBACtChB,KAAA,CAAAoB,aAAA,CAAChB,aAAa,QAAEO,MAAM,iBAAIX,KAAA,CAAAoB,aAAA;MAAIJ,SAAS,EAAC;IAAqB,GAAEL,MAAW,CAAiB,CAAC,eAC5FX,KAAA,CAAAoB,aAAA;MAAKJ,SAAS,EAAC;IAA8B,gBACzChB,KAAA,CAAAoB,aAAA;MACIJ,SAAS,EAAEf,UAAU,CAAC,4BAA4B,EAAE;QAChD,aAAa,EAAE,CAAC,CAACU,MAAM;QACvB,aAAa,EAAE,CAAC,CAACC;MACrB,CAAC;IAAE,GAEFE,QAAQ,IAAI,IAAI,iBACbd,KAAA,CAAAoB,aAAA,CAACf,aAAa;MAACU,WAAW,EAAEA,WAAY;MAACW,UAAU,EAAC;IAAS,GACxDZ,QACU,CAElB,CAAC,EACLF,MAAM,iBAAIZ,KAAA,CAAAoB,aAAA;MAAKJ,SAAS,EAAC;IAA8B,GAAEJ,MAAY,CACrE,CACA,CACL,CAAC;EAEjB;AACJ;AAACe,eAAA,CAxCKrB,YAAY,iBACO,UAAU;AAAAqB,eAAA,CAD7BrB,YAAY,kBAGQ;EAClBsB,QAAQ,EAAE;AACd,CAAC;AAqCL,eAAetB,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"HeaderFlyout.js","names":["React","classNames","Flyout","Overlay","OverlayHeader","ScrollWrapper","HeaderFlyout","Component","render","_this$props","props","header","footer","flyoutButton","children","scrollRefFn","className","isOverlayHeaderActionEnabled","rest","_objectWithoutProperties","_excluded","createElement","_extends","closeOnClick","constrainToWindow","offset","panelOffset","shadowSize","_defineProperty","position"],"sources":["../../../src/features/header-flyout/HeaderFlyout.js"],"sourcesContent":["// @flow\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport { Flyout, Overlay, OverlayHeader } from '../../components/flyout';\nimport ScrollWrapper from '../../components/scroll-wrapper';\nimport type { FlyoutProps } from '../../components/flyout/Flyout';\n\nimport './styles/HeaderFlyout.scss';\n\ntype Props = FlyoutProps & {\n /** Components to render in the overlay */\n children: ?React.Node,\n /** Set className to the overlay wrapper */\n className?: string,\n /** Custom button to trigger for opening/closing the flyout */\n flyoutButton: React.Element<any>,\n /** What content to display in the footer */\n footer?: React.Element<any>,\n /** What content to display in the header */\n header?: React.Element<any>,\n /** Optional function to get the scrollRef in parent components */\n scrollRefFn?: any => any,\n /** Are OverlayHeader actions enabled */\n isOverlayHeaderActionEnabled?: boolean,\n};\n\nclass HeaderFlyout extends React.Component<Props> {\n static panelOffset = '-4px 0px';\n\n static defaultProps = {\n position: 'bottom-left',\n };\n\n render() {\n const {\n header,\n footer,\n flyoutButton,\n children,\n scrollRefFn,\n className,\n isOverlayHeaderActionEnabled = false,\n ...rest\n } = this.props;\n\n return (\n <Flyout\n className={classNames('header-flyout', className)}\n closeOnClick={false}\n constrainToWindow\n offset={HeaderFlyout.panelOffset}\n {...rest}\n >\n {flyoutButton}\n <Overlay className=\"header-flyout-overlay\">\n <OverlayHeader isOverlayHeaderActionEnabled={isOverlayHeaderActionEnabled}>\n {header && <h4 className=\"header-flyout-title\">{header}</h4>}\n </OverlayHeader>\n <div className=\"header-flyout-list-container\">\n <div\n className={classNames('flyout-list-container-body', {\n 'with-header': !!header,\n 'with-footer': !!footer,\n })}\n >\n {children != null && (\n <ScrollWrapper scrollRefFn={scrollRefFn} shadowSize=\"contain\">\n {children}\n </ScrollWrapper>\n )}\n </div>\n {footer && <div className=\"flyout-list-container-footer\">{footer}</div>}\n </div>\n </Overlay>\n </Flyout>\n );\n }\n}\n\nexport default HeaderFlyout;\n"],"mappings":";;;;;;;AACA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,MAAM,EAAEC,OAAO,EAAEC,aAAa,QAAQ,yBAAyB;AACxE,OAAOC,aAAa,MAAM,iCAAiC;AAG3D,OAAO,4BAA4B;AAmBnC,MAAMC,YAAY,SAASN,KAAK,CAACO,SAAS,CAAQ;EAO9CC,MAAMA,CAAA,EAAG;IACL,MAAAC,WAAA,GASI,IAAI,CAACC,KAAK;MATR;QACFC,MAAM;QACNC,MAAM;QACNC,YAAY;QACZC,QAAQ;QACRC,WAAW;QACXC,SAAS;QACTC,4BAA4B,GAAG;MAEnC,CAAC,GAAAR,WAAA;MADMS,IAAI,GAAAC,wBAAA,CAAAV,WAAA,EAAAW,SAAA;IAGX,oBACIpB,KAAA,CAAAqB,aAAA,CAACnB,MAAM,EAAAoB,QAAA;MACHN,SAAS,EAAEf,UAAU,CAAC,eAAe,EAAEe,SAAS,CAAE;MAClDO,YAAY,EAAE,KAAM;MACpBC,iBAAiB;MACjBC,MAAM,EAAEnB,YAAY,CAACoB;IAAY,GAC7BR,IAAI,GAEPL,YAAY,eACbb,KAAA,CAAAqB,aAAA,CAAClB,OAAO;MAACa,SAAS,EAAC;IAAuB,gBACtChB,KAAA,CAAAqB,aAAA,CAACjB,aAAa;MAACa,4BAA4B,EAAEA;IAA6B,GACrEN,MAAM,iBAAIX,KAAA,CAAAqB,aAAA;MAAIL,SAAS,EAAC;IAAqB,GAAEL,MAAW,CAChD,CAAC,eAChBX,KAAA,CAAAqB,aAAA;MAAKL,SAAS,EAAC;IAA8B,gBACzChB,KAAA,CAAAqB,aAAA;MACIL,SAAS,EAAEf,UAAU,CAAC,4BAA4B,EAAE;QAChD,aAAa,EAAE,CAAC,CAACU,MAAM;QACvB,aAAa,EAAE,CAAC,CAACC;MACrB,CAAC;IAAE,GAEFE,QAAQ,IAAI,IAAI,iBACbd,KAAA,CAAAqB,aAAA,CAAChB,aAAa;MAACU,WAAW,EAAEA,WAAY;MAACY,UAAU,EAAC;IAAS,GACxDb,QACU,CAElB,CAAC,EACLF,MAAM,iBAAIZ,KAAA,CAAAqB,aAAA;MAAKL,SAAS,EAAC;IAA8B,GAAEJ,MAAY,CACrE,CACA,CACL,CAAC;EAEjB;AACJ;AAACgB,eAAA,CAnDKtB,YAAY,iBACO,UAAU;AAAAsB,eAAA,CAD7BtB,YAAY,kBAGQ;EAClBuB,QAAQ,EAAE;AACd,CAAC;AAgDL,eAAevB,YAAY","ignoreList":[]}
@@ -5,6 +5,8 @@ export interface OverlayHeaderProps {
5
5
  children?: React.ReactNode;
6
6
  /** Set className to the overlay header */
7
7
  className?: string;
8
+ /** Are OverlayHeader actions enabled */
9
+ isOverlayHeaderActionEnabled?: boolean;
8
10
  }
9
- declare const OverlayHeader: ({ children, className }: OverlayHeaderProps) => React.JSX.Element;
11
+ declare const OverlayHeader: ({ children, className, isOverlayHeaderActionEnabled }: OverlayHeaderProps) => React.JSX.Element;
10
12
  export default OverlayHeader;
@@ -1,9 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { History } from 'history';
3
+ import { type FeatureConfig } from '../feature-checking';
3
4
  type Props = {
4
5
  children: React.ReactNode;
6
+ features?: FeatureConfig;
5
7
  history?: History;
6
8
  initialEntries?: History.LocationDescriptor[];
7
9
  };
8
- declare const NavRouter: ({ children, history, ...rest }: Props) => React.JSX.Element;
10
+ declare const NavRouter: ({ children, features, history, ...rest }: Props) => React.JSX.Element;
9
11
  export default NavRouter;
@@ -1,5 +1,7 @@
1
1
  import { History } from 'history';
2
+ import { FeatureConfig } from '../feature-checking';
2
3
  export type WithNavRouterProps = {
4
+ features?: FeatureConfig;
3
5
  history?: History;
4
6
  initialEntries?: History.LocationDescriptor[];
5
7
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "box-ui-elements",
3
- "version": "23.4.0-beta.22",
3
+ "version": "23.4.0-beta.23",
4
4
  "description": "Box UI Elements",
5
5
  "author": "Box (https://www.box.com/)",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -12,12 +12,16 @@ export interface OverlayHeaderProps {
12
12
  children?: React.ReactNode;
13
13
  /** Set className to the overlay header */
14
14
  className?: string;
15
+ /** Are OverlayHeader actions enabled */
16
+ isOverlayHeaderActionEnabled?: boolean;
15
17
  }
16
18
 
17
- const OverlayHeader = ({ children, className }: OverlayHeaderProps) => {
19
+ const OverlayHeader = ({ children, className, isOverlayHeaderActionEnabled = false }: OverlayHeaderProps) => {
18
20
  const handleClick = (event: React.SyntheticEvent<HTMLDivElement>): void => {
19
- event.preventDefault();
20
- event.stopPropagation();
21
+ if (!isOverlayHeaderActionEnabled) {
22
+ event.preventDefault();
23
+ event.stopPropagation();
24
+ }
21
25
  };
22
26
  // @ts-ignore TODO: figure out why this is giving a TS error
23
27
  const { closeOverlay } = React.useContext(FlyoutContext);