@box/metadata-editor 2.11.33 → 2.11.35

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 (38) hide show
  1. package/dist/chunks/delete-confirmation-modal.js +1 -1
  2. package/dist/chunks/metadata-instance-form-autofill-button.js +1 -1
  3. package/dist/chunks/metadata-instance-form-header.js +1 -1
  4. package/dist/chunks/metadata-instance-form.module.js +1 -0
  5. package/dist/chunks/metadata-instance-header.js +1 -1
  6. package/dist/chunks/metadata-instance-list.js +1 -1
  7. package/dist/chunks/metadata-instance.js +1 -1
  8. package/dist/esm/index.js +1 -1
  9. package/dist/esm/lib/components/metadata-instance-editor/index.js +1 -1
  10. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/messages.js +1 -1
  11. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/metadata-instance-form-accordion-wrapper.js +1 -0
  12. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/metadata-instance-form-card-wrapper.js +1 -1
  13. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/metadata-instance-form.js +1 -1
  14. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/messages.js +1 -1
  15. package/dist/esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/metadata-instance-form-header.js +1 -1
  16. package/dist/esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/messages.js +1 -1
  17. package/dist/esm/lib/utils/metadata-instance-display.js +1 -0
  18. package/dist/i18n/en-AU.js +1 -0
  19. package/dist/i18n/en-GB.js +1 -0
  20. package/dist/styles/metadata-instance-form.css +1 -0
  21. package/dist/styles/metadata-instance-list.css +1 -1
  22. package/dist/styles/metadata-instance.css +1 -1
  23. package/dist/types/lib/components/metadata-instance-editor/index.d.ts +1 -0
  24. package/dist/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/metadata-instance-form-accordion-wrapper.d.ts +9 -0
  25. package/dist/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/types.d.ts +6 -0
  26. package/dist/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-autofill-button/metadata-instance-form-autofill-button.d.ts +1 -1
  27. package/dist/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-autofill-button/types.d.ts +6 -0
  28. package/dist/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/messages.d.ts +5 -0
  29. package/dist/types/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/metadata-instance-form-header.d.ts +4 -0
  30. package/dist/types/lib/components/metadata-instance-list/metadata-instance-list.d.ts +1 -1
  31. package/dist/types/lib/components/metadata-instance-list/subcomponents/metadata-instance/metadata-instance.d.ts +1 -1
  32. package/dist/types/lib/components/metadata-instance-list/subcomponents/metadata-instance/types.d.ts +17 -0
  33. package/dist/types/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/messages.d.ts +5 -0
  34. package/dist/types/lib/components/metadata-instance-list/types.d.ts +16 -0
  35. package/dist/types/lib/utils/metadata-instance-display.d.ts +17 -0
  36. package/package.json +14 -14
  37. package/dist/chunks/metadata-instance-form-card-wrapper.js +0 -1
  38. package/dist/styles/metadata-instance-form-card-wrapper.css +0 -1
@@ -1 +1 @@
1
- import messages from"../esm/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/messages.js";import{useState}from"react";import{FormattedMessage,useIntl}from"react-intl";import{jsx,jsxs}from"react/jsx-runtime";import{Checkbox,Modal,Text,TextInput}from"@box/blueprint-web";import '../styles/delete-confirmation-modal.css';var delete_confirmation_modal_module_default={modalBody:`_modalBody_1wc7x_1`},getDeleteConfirmationBodyMessage=itemType=>itemType===`folder`?messages.deleteConfirmationModalBodyFirstParagraphFolder:messages.deleteConfirmationModalBodyFirstParagraph,DeleteConfirmationModal=({onConfirm,templateName,onDismiss,open,isCheckboxEnabled,itemType=`file`})=>{let intl=useIntl(),[inputValue,setInputValue]=useState(``),[isChecked,setIsChecked]=useState(!1),handleOpenChange=openState=>{openState||(onDismiss(),setInputValue(``),setIsChecked(!1))},formattedTemplateName=templateName||intl.formatMessage(messages.deleteConfirmationModalCustomMetadata),isInputValueValid=inputValue===formattedTemplateName,handleCheckboxChange=()=>{setIsChecked(!isChecked)},handleConfirm=()=>{onConfirm(),handleOpenChange(!1)};return jsx(Modal,{onOpenChange:handleOpenChange,open,children:jsxs(Modal.Content,{onEscapeKeyDown:e=>e.stopPropagation(),size:`small`,children:[jsx(Modal.Header,{"aria-label":intl.formatMessage(messages.deleteConfirmationModalHeaderAriaLabel),children:jsx(FormattedMessage,{...messages.deleteConfirmationModalHeader,values:{templateName:formattedTemplateName}})}),jsx(Modal.ScrollableContainer,{children:jsxs(Modal.Body,{className:delete_confirmation_modal_module_default.modalBody,children:[jsx(Text,{as:`p`,children:isCheckboxEnabled?jsx(FormattedMessage,{...messages.deleteConfirmationModalBodyFirstParagraphCheckboxVersion,values:{templateName:formattedTemplateName}}):jsx(FormattedMessage,{...getDeleteConfirmationBodyMessage(itemType),values:{templateName:formattedTemplateName}})}),!isCheckboxEnabled&&jsx(Text,{as:`p`,children:jsx(FormattedMessage,{...messages.deleteConfirmationModalBodySecondParagraph})}),isCheckboxEnabled?jsx(Checkbox.Item,{checked:isChecked,"data-resin-target":`checkbox`,label:intl.formatMessage(messages.deleteConfirmationModalBodyCheckboxLabel),onCheckedChange:handleCheckboxChange,value:`overageCheckbox`}):jsx(TextInput,{label:intl.formatMessage(messages.deleteConfirmationModalBodyInputFieldLabel),onChange:event=>setInputValue(event.target.value),placeholder:formattedTemplateName,required:!0,value:inputValue})]})}),jsxs(Modal.Footer,{children:[jsx(Modal.Footer.SecondaryButton,{onClick:()=>handleOpenChange(!1),size:`large`,"data-target-id":`Modal.Footer.SecondaryButton-deleteConfirmationModalCancelButton`,children:intl.formatMessage(messages.deleteConfirmationModalCancelButton)}),jsx(Modal.Footer.PrimaryButton,{disabled:isCheckboxEnabled?!isChecked:!isInputValueValid,onClick:handleConfirm,size:`large`,children:intl.formatMessage(isCheckboxEnabled?messages.deleteConfirmationModalConfirmButtonCheckboxVersion:messages.deleteConfirmationModalConfirmButton)})]}),jsx(Modal.Close,{"aria-label":intl.formatMessage(messages.deleteConfirmationModalDismissButton)})]})})};export{DeleteConfirmationModal as t};
1
+ import messages from"../esm/lib/components/metadata-instance-editor/subcomponents/delete-confirmation-modal/messages.js";import{useState}from"react";import{FormattedMessage,useIntl}from"react-intl";import{jsx,jsxs}from"react/jsx-runtime";import{Checkbox,Modal,Text,TextInput}from"@box/blueprint-web";import '../styles/delete-confirmation-modal.css';var delete_confirmation_modal_module_default={modalBody:`_modalBody_1wc7x_1`},DeleteConfirmationModal=({onConfirm,templateName,onDismiss,open,isCheckboxEnabled,itemType=`file`})=>{let intl=useIntl(),[inputValue,setInputValue]=useState(``),[isChecked,setIsChecked]=useState(!1),handleOpenChange=openState=>{openState||(onDismiss(),setInputValue(``),setIsChecked(!1))},formattedTemplateName=templateName||intl.formatMessage(messages.deleteConfirmationModalCustomMetadata),isInputValueValid=inputValue===formattedTemplateName,handleCheckboxChange=()=>{setIsChecked(!isChecked)},handleConfirm=()=>{onConfirm(),handleOpenChange(!1)},getBodyMessage=()=>itemType===`folder`?messages.deleteConfirmationModalBodyFirstParagraphFolder:isCheckboxEnabled?messages.deleteConfirmationModalBodyFirstParagraphCheckboxVersion:messages.deleteConfirmationModalBodyFirstParagraph;return jsx(Modal,{onOpenChange:handleOpenChange,open,children:jsxs(Modal.Content,{onEscapeKeyDown:e=>e.stopPropagation(),size:`small`,children:[jsx(Modal.Header,{"aria-label":intl.formatMessage(messages.deleteConfirmationModalHeaderAriaLabel),children:jsx(FormattedMessage,{...messages.deleteConfirmationModalHeader,values:{templateName:formattedTemplateName}})}),jsx(Modal.ScrollableContainer,{children:jsxs(Modal.Body,{className:delete_confirmation_modal_module_default.modalBody,children:[jsx(Text,{as:`p`,children:jsx(FormattedMessage,{...getBodyMessage(),values:{templateName:formattedTemplateName}})}),!isCheckboxEnabled&&itemType!==`folder`&&jsx(Text,{as:`p`,children:jsx(FormattedMessage,{...messages.deleteConfirmationModalBodySecondParagraph})}),isCheckboxEnabled?jsx(Checkbox.Item,{checked:isChecked,"data-resin-target":`checkbox`,label:intl.formatMessage(messages.deleteConfirmationModalBodyCheckboxLabel),onCheckedChange:handleCheckboxChange,value:`overageCheckbox`}):jsx(TextInput,{label:intl.formatMessage(messages.deleteConfirmationModalBodyInputFieldLabel),onChange:event=>setInputValue(event.target.value),placeholder:formattedTemplateName,required:!0,value:inputValue})]})}),jsxs(Modal.Footer,{children:[jsx(Modal.Footer.SecondaryButton,{onClick:()=>handleOpenChange(!1),size:`large`,"data-target-id":`Modal.Footer.SecondaryButton-deleteConfirmationModalCancelButton`,children:intl.formatMessage(messages.deleteConfirmationModalCancelButton)}),jsx(Modal.Footer.PrimaryButton,{disabled:isCheckboxEnabled?!isChecked:!isInputValueValid,onClick:handleConfirm,size:`large`,children:intl.formatMessage(isCheckboxEnabled?messages.deleteConfirmationModalConfirmButtonCheckboxVersion:messages.deleteConfirmationModalConfirmButton)})]}),jsx(Modal.Close,{"aria-label":intl.formatMessage(messages.deleteConfirmationModalDismissButton)})]})})};export{DeleteConfirmationModal as t};
@@ -1 +1 @@
1
- import{EXTRACT_AGENTS_MAP,EXTRACT_AI_AGENT_LOCAL_STORAGE_KEY}from"../esm/lib/constants.js";import{autofillMessages}from"../esm/lib/messages.js";import{getTooltipContent}from"../esm/lib/utils/utils.js";import{useAutofill}from"../esm/lib/utils/autofill-context.js";import messages from"../esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-autofill-button/messages.js";import{forwardRef,useEffect,useMemo,useState}from"react";import{useIntl}from"react-intl";import{BoxAiAdvancedLogo24,BoxAiLogo24}from"@box/blueprint-web-assets/icons/Logo";import{jsx,jsxs}from"react/jsx-runtime";import{Button,DropdownMenu,IconButton,LoadingIndicator,SplitButton,Text,Tooltip}from"@box/blueprint-web";import{getIn,useFormikContext}from"formik";import{useLocalStorageAIAgents}from"@box/box-ai-agent-selector";import '../styles/metadata-instance-form-autofill-button.css';var metadata_instance_form_autofill_button_module_default={loadingIndicator:`_loadingIndicator_zhzu0_1`,actionMenuItem:`_actionMenuItem_zhzu0_11`,splitButtonIcon:`_splitButtonIcon_zhzu0_17`},AutofillSplitButton=forwardRef(({isButtonDisabled,onAutofill,onAgentChange,storedAgent,icon,...rest},forwardedRef)=>{let intl=useIntl(),[selectedExtractAgent,setSelectedExtractAgent]=useState(storedAgent||`standard`),handleAgentChange=agentType=>{setSelectedExtractAgent(agentType),onAgentChange(agentType),setTimeout(()=>{onAutofill(agentType)},0)};return jsx(SplitButton,{...rest,ref:forwardedRef,"data-target-id":`SplitButton-metadataEditorAutofill`,disabled:isButtonDisabled,dropdownTriggerAriaLabel:`See agent options.`,endIcon:icon,label:intl.formatMessage(messages.autofillButton),onClick:()=>onAutofill(),variant:`secondary`,children:jsx(DropdownMenu.RadioGroup,{onValueChange:value=>handleAgentChange(value),value:selectedExtractAgent,children:Object.entries(EXTRACT_AGENTS_MAP).map(([key,agent])=>{let IconComponent=agent.ICON;return jsx(DropdownMenu.RadioSelectItem,{value:agent.AGENT_TYPE,children:jsxs(`div`,{className:metadata_instance_form_autofill_button_module_default.actionMenuItem,children:[jsx(IconComponent,{"aria-hidden":!0,className:metadata_instance_form_autofill_button_module_default.splitButtonIcon}),jsx(Text,{as:`span`,children:intl.formatMessage(messages[agent.DISPLAY_MSG])})]})},key)})})})}),MetadataInstanceFormAutofillButton=({areAiSuggestionsAvailable,isBetaLanguageEnabled,isLoading,variant=`secondary-button`,isAdvancedExtractAgentEnabled=!1,onAutofill})=>{let{isSubmitting,values,setFieldValue}=useFormikContext(),intl=useIntl(),[storedAgent,setStoredAgent]=useLocalStorageAIAgents(EXTRACT_AI_AGENT_LOCAL_STORAGE_KEY),{suggestions,confidenceScores,targetLocations}=useAutofill();useEffect(()=>{if(suggestions){let fields=getIn(values,`metadata.fields`),templateKey=getIn(values,`metadata.templateKey`);setFieldValue(`metadata.fields`,fields?.map(field=>{let suggestion=suggestions?.[templateKey]?.[field.key];return suggestion?{...field,aiSuggestion:suggestion,aiSuggestionConfidenceScore:confidenceScores?.[templateKey]?.[field.key],aiSuggestionTargetLocation:targetLocations?.[templateKey]?.[field.key]}:field}))}},[suggestions,confidenceScores,targetLocations,setFieldValue]);let handleAutofill=selectedAgentId=>{let templateKey=getIn(values,`metadata.templateKey`),scope=getIn(values,`metadata.scope`),agentId=selectedAgentId?EXTRACT_AGENTS_MAP[selectedAgentId]?.AGENT_ID:EXTRACT_AGENTS_MAP[storedAgent]?.AGENT_ID;onAutofill(templateKey,scope,isAdvancedExtractAgentEnabled?agentId:void 0)},isButtonDisabled=!areAiSuggestionsAvailable||isSubmitting||isLoading,buttonIcon=storedAgent===`enhanced`&&isAdvancedExtractAgentEnabled?BoxAiAdvancedLogo24:BoxAiLogo24,tooltipContent=useMemo(()=>getTooltipContent(isAdvancedExtractAgentEnabled,storedAgent,intl),[isAdvancedExtractAgentEnabled,storedAgent,intl]);return variant===`secondary-button`?jsx(Tooltip,{content:tooltipContent,children:isAdvancedExtractAgentEnabled?jsx(AutofillSplitButton,{icon:buttonIcon,isButtonDisabled,onAgentChange:setStoredAgent,onAutofill:handleAutofill,storedAgent}):jsx(Button,{"data-target-id":`Button-metadataEditorAutofill`,disabled:isButtonDisabled,endIcon:buttonIcon,onClick:()=>handleAutofill(),variant:`secondary`,children:intl.formatMessage(messages.autofillButton)})}):jsx(Tooltip,{content:tooltipContent,children:isLoading?jsx(LoadingIndicator,{"aria-label":intl.formatMessage(messages.loadingButtonAriaLabel),className:metadata_instance_form_autofill_button_module_default.loadingIndicator}):jsx(IconButton,{"aria-label":intl.formatMessage(autofillMessages.autofillButtonAriaLabel),"data-target-id":`IconButton-metadataEditorAutofillEditMode`,disabled:isButtonDisabled,icon:buttonIcon,onClick:()=>handleAutofill(),variant:`icon-logo`})})};export{MetadataInstanceFormAutofillButton as t};
1
+ import{EXTRACT_AGENTS_MAP,EXTRACT_AI_AGENT_LOCAL_STORAGE_KEY}from"../esm/lib/constants.js";import{autofillMessages}from"../esm/lib/messages.js";import{getTooltipContent}from"../esm/lib/utils/utils.js";import{useAutofill}from"../esm/lib/utils/autofill-context.js";import messages from"../esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-autofill-button/messages.js";import{forwardRef,useEffect,useMemo,useState}from"react";import{useIntl}from"react-intl";import{BoxAiAdvancedLogo24,BoxAiLogo24}from"@box/blueprint-web-assets/icons/Logo";import{jsx,jsxs}from"react/jsx-runtime";import{Button,DropdownMenu,IconButton,LoadingIndicator,SplitButton,Text,Tooltip}from"@box/blueprint-web";import{getIn,useFormikContext}from"formik";import{useLocalStorageAIAgents}from"@box/box-ai-agent-selector";import '../styles/metadata-instance-form-autofill-button.css';var metadata_instance_form_autofill_button_module_default={loadingIndicator:`_loadingIndicator_zhzu0_1`,actionMenuItem:`_actionMenuItem_zhzu0_11`,splitButtonIcon:`_splitButtonIcon_zhzu0_17`},AutofillSplitButton=forwardRef(({isButtonDisabled,onAutofill,onAgentChange,storedAgent,icon,size,...rest},forwardedRef)=>{let intl=useIntl(),[selectedExtractAgent,setSelectedExtractAgent]=useState(storedAgent||`standard`),handleAgentChange=agentType=>{setSelectedExtractAgent(agentType),onAgentChange(agentType),setTimeout(()=>{onAutofill(agentType)},0)};return jsx(SplitButton,{...rest,ref:forwardedRef,"data-target-id":`SplitButton-metadataEditorAutofill`,disabled:isButtonDisabled,dropdownTriggerAriaLabel:`See agent options.`,endIcon:icon,label:intl.formatMessage(messages.autofillButton),onClick:()=>onAutofill(),size,variant:`secondary`,children:jsx(DropdownMenu.RadioGroup,{onValueChange:value=>handleAgentChange(value),value:selectedExtractAgent,children:Object.entries(EXTRACT_AGENTS_MAP).map(([key,agent])=>{let IconComponent=agent.ICON;return jsx(DropdownMenu.RadioSelectItem,{value:agent.AGENT_TYPE,children:jsxs(`div`,{className:metadata_instance_form_autofill_button_module_default.actionMenuItem,children:[jsx(IconComponent,{"aria-hidden":!0,className:metadata_instance_form_autofill_button_module_default.splitButtonIcon}),jsx(Text,{as:`span`,children:intl.formatMessage(messages[agent.DISPLAY_MSG])})]})},key)})})})}),MetadataInstanceFormAutofillButton=({areAiSuggestionsAvailable,isBetaLanguageEnabled,isLoading,variant=`secondary-button`,size,isAdvancedExtractAgentEnabled=!1,onAutofill})=>{let{isSubmitting,values,setFieldValue}=useFormikContext(),intl=useIntl(),[storedAgent,setStoredAgent]=useLocalStorageAIAgents(EXTRACT_AI_AGENT_LOCAL_STORAGE_KEY),{suggestions,confidenceScores,targetLocations}=useAutofill();useEffect(()=>{if(suggestions){let fields=getIn(values,`metadata.fields`),templateKey=getIn(values,`metadata.templateKey`);setFieldValue(`metadata.fields`,fields?.map(field=>{let suggestion=suggestions?.[templateKey]?.[field.key];return suggestion?{...field,aiSuggestion:suggestion,aiSuggestionConfidenceScore:confidenceScores?.[templateKey]?.[field.key],aiSuggestionTargetLocation:targetLocations?.[templateKey]?.[field.key]}:field}))}},[suggestions,confidenceScores,targetLocations,setFieldValue]);let handleAutofill=selectedAgentId=>{let templateKey=getIn(values,`metadata.templateKey`),scope=getIn(values,`metadata.scope`),agentId=selectedAgentId?EXTRACT_AGENTS_MAP[selectedAgentId]?.AGENT_ID:EXTRACT_AGENTS_MAP[storedAgent]?.AGENT_ID;onAutofill(templateKey,scope,isAdvancedExtractAgentEnabled?agentId:void 0)},isButtonDisabled=!areAiSuggestionsAvailable||isSubmitting||isLoading,buttonIcon=storedAgent===`enhanced`&&isAdvancedExtractAgentEnabled?BoxAiAdvancedLogo24:BoxAiLogo24,splitButtonSize=size===`x-small`?`small`:size,tooltipContent=useMemo(()=>getTooltipContent(isAdvancedExtractAgentEnabled,storedAgent,intl),[isAdvancedExtractAgentEnabled,storedAgent,intl]);return variant===`secondary-button`?jsx(Tooltip,{content:tooltipContent,children:isAdvancedExtractAgentEnabled?jsx(AutofillSplitButton,{icon:buttonIcon,isButtonDisabled,onAgentChange:setStoredAgent,onAutofill:handleAutofill,size:splitButtonSize,storedAgent}):jsx(Button,{"data-target-id":`Button-metadataEditorAutofill`,disabled:isButtonDisabled,endIcon:buttonIcon,onClick:()=>handleAutofill(),size,variant:`secondary`,children:intl.formatMessage(messages.autofillButton)})}):jsx(Tooltip,{content:tooltipContent,children:isLoading?jsx(LoadingIndicator,{"aria-label":intl.formatMessage(messages.loadingButtonAriaLabel),className:metadata_instance_form_autofill_button_module_default.loadingIndicator}):jsx(IconButton,{"aria-label":intl.formatMessage(autofillMessages.autofillButtonAriaLabel),"data-target-id":`IconButton-metadataEditorAutofillEditMode`,disabled:isButtonDisabled,icon:buttonIcon,onClick:()=>handleAutofill(),variant:`icon-logo`})})};export{MetadataInstanceFormAutofillButton as t};
@@ -1 +1 @@
1
- import{getFieldsNeedingReview}from"../esm/lib/utils/confidence-score/get-fields-needing-review.js";import{t as InteractiveHeaderText}from"./interactive-header-text.js";import{MetadataInstanceReviewNotice}from"../esm/lib/components/metadata-instance-review-notice/metadata-instance-review-notice.js";import{t as MetadataInstanceFormAutofillButton}from"./metadata-instance-form-autofill-button.js";import{MetadataInstanceFormInlineNotice}from"../esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-inline-notice/metadata-instance-form-inline-notice.js";import messages from"../esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/messages.js";import{useMemo}from"react";import{useIntl}from"react-intl";import{jsx,jsxs}from"react/jsx-runtime";import{useFormikContext}from"formik";import '../styles/metadata-instance-form-header.css';var metadata_instance_form_header_module_default={metadataInstanceFormHeaderWrapper:`_metadataInstanceFormHeaderWrapper_3nbmr_1`,metadataInstanceFormHeader:`_metadataInstanceFormHeader_3nbmr_1`,title:`_title_3nbmr_15`},MetadataInstanceFormHeader=({areAiSuggestionsAvailable,hasSuggestions,isAdvancedExtractAgentEnabled=!1,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,isConfidenceScoreReviewEnabled=!1,isLargeFile,isLoading,onToggleReviewFilter,shouldShowOnlyReviewFields=!1,templateName,onAutofill})=>{let intl=useIntl(),{values}=useFormikContext(),fieldsNeedingReviewCount=useMemo(()=>isConfidenceScoreReviewEnabled?getFieldsNeedingReview(values.metadata?.fields??[]).length:0,[values.metadata?.fields,isConfidenceScoreReviewEnabled]),title=templateName??intl.formatMessage(messages.customInstanceTitle),canShowAiNotice=hasSuggestions&&areAiSuggestionsAvailable,canShowReviewNotice=isConfidenceScoreReviewEnabled&&!isLoading&&(fieldsNeedingReviewCount>0||shouldShowOnlyReviewFields)&&onToggleReviewFilter!==void 0;return jsxs(`div`,{className:metadata_instance_form_header_module_default.metadataInstanceFormHeaderWrapper,children:[jsxs(`div`,{className:metadata_instance_form_header_module_default.metadataInstanceFormHeader,children:[jsx(InteractiveHeaderText,{className:metadata_instance_form_header_module_default.title,title}),isAiSuggestionsFeatureEnabled?jsx(MetadataInstanceFormAutofillButton,{areAiSuggestionsAvailable,isAdvancedExtractAgentEnabled,isBetaLanguageEnabled,isLoading,onAutofill}):null]}),canShowAiNotice&&jsx(MetadataInstanceFormInlineNotice,{isBetaLanguageEnabled,isLargeFile}),canShowReviewNotice&&jsx(MetadataInstanceReviewNotice,{fieldsNeedingReviewCount,isLowScoreFilteringEnabled:shouldShowOnlyReviewFields,onTextToggleClick:onToggleReviewFilter})]})};export{MetadataInstanceFormHeader as t};
1
+ import{getFieldsNeedingReview}from"../esm/lib/utils/confidence-score/get-fields-needing-review.js";import{t as MetadataInstanceFormAutofillButton}from"./metadata-instance-form-autofill-button.js";import{t as InteractiveHeaderText}from"./interactive-header-text.js";import{MetadataInstanceReviewNotice}from"../esm/lib/components/metadata-instance-review-notice/metadata-instance-review-notice.js";import{MetadataInstanceFormInlineNotice}from"../esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-inline-notice/metadata-instance-form-inline-notice.js";import messages from"../esm/lib/components/metadata-instance-editor/subcomponents/metadata-instance-form-header/messages.js";import{useMemo}from"react";import{useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import{useFormikContext}from"formik";import '../styles/metadata-instance-form-header.css';var metadata_instance_form_header_module_default={metadataInstanceFormHeaderWrapper:`_metadataInstanceFormHeaderWrapper_3nbmr_1`,metadataInstanceFormHeader:`_metadataInstanceFormHeader_3nbmr_1`,title:`_title_3nbmr_15`},MetadataInstanceFormHeader=({areAiSuggestionsAvailable,hasSuggestions,isAdvancedExtractAgentEnabled=!1,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,isConfidenceScoreReviewEnabled=!1,isLargeFile,isLoading,onToggleReviewFilter,shouldShowOnlyReviewFields=!1,templateName,onAutofill})=>{let intl=useIntl(),title=templateName??intl.formatMessage(messages.customInstanceTitle);return jsxs(`div`,{className:metadata_instance_form_header_module_default.metadataInstanceFormHeaderWrapper,children:[jsxs(`div`,{className:metadata_instance_form_header_module_default.metadataInstanceFormHeader,children:[jsx(InteractiveHeaderText,{className:metadata_instance_form_header_module_default.title,title}),isAiSuggestionsFeatureEnabled?jsx(MetadataInstanceFormAutofillButton,{areAiSuggestionsAvailable,isAdvancedExtractAgentEnabled,isBetaLanguageEnabled,isLoading,onAutofill}):null]}),jsx(MetadataInstanceFormNotices,{areAiSuggestionsAvailable,hasSuggestions,isBetaLanguageEnabled,isConfidenceScoreReviewEnabled,isLargeFile,isLoading,onToggleReviewFilter,shouldShowOnlyReviewFields})]})},MetadataInstanceFormNotices=({areAiSuggestionsAvailable,hasSuggestions,isBetaLanguageEnabled,isConfidenceScoreReviewEnabled=!1,isLargeFile,isLoading,onToggleReviewFilter,shouldShowOnlyReviewFields=!1})=>{let{values}=useFormikContext(),fieldsNeedingReviewCount=useMemo(()=>isConfidenceScoreReviewEnabled?getFieldsNeedingReview(values.metadata?.fields??[]).length:0,[values.metadata?.fields,isConfidenceScoreReviewEnabled]);return jsxs(Fragment,{children:[hasSuggestions&&areAiSuggestionsAvailable&&jsx(MetadataInstanceFormInlineNotice,{isBetaLanguageEnabled,isLargeFile}),isConfidenceScoreReviewEnabled&&!isLoading&&(fieldsNeedingReviewCount>0||shouldShowOnlyReviewFields)&&onToggleReviewFilter!==void 0&&onToggleReviewFilter&&jsx(MetadataInstanceReviewNotice,{fieldsNeedingReviewCount,isLowScoreFilteringEnabled:shouldShowOnlyReviewFields,onTextToggleClick:onToggleReviewFilter})]})};export{MetadataInstanceFormNotices as n,MetadataInstanceFormHeader as t};
@@ -0,0 +1 @@
1
+ import '../styles/metadata-instance-form.css';var metadata_instance_form_module_default={accordionBadgeFrame:`_accordionBadgeFrame_16f57_1`,accordionBadgeFrameCascaded:`_accordionBadgeFrameCascaded_16f57_16`,accordionEditingIndicator:`_accordionEditingIndicator_16f57_20`,accordionRoot:`_accordionRoot_16f57_31`,metadataInstanceForm:`_metadataInstanceForm_16f57_35`,wrapperGradient:`_wrapperGradient_16f57_41`,suggestionsFetching:`_suggestionsFetching_16f57_46`,metadataInstanceFormContent:`_metadataInstanceFormContent_16f57_52`,fields:`_fields_16f57_59`,metadataInstanceFormContentReducedGap:`_metadataInstanceFormContentReducedGap_16f57_69`,showOverlay:`_showOverlay_16f57_73`};export{metadata_instance_form_module_default as t};
@@ -1 +1 @@
1
- import{EXTRACT_AGENTS_MAP,EXTRACT_AI_AGENT_LOCAL_STORAGE_KEY}from"../esm/lib/constants.js";import{autofillMessages}from"../esm/lib/messages.js";import{getTooltipContent}from"../esm/lib/utils/utils.js";import{t as InteractiveHeaderText}from"./interactive-header-text.js";import messages from"../esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/messages.js";import{useMemo}from"react";import{useIntl}from"react-intl";import{BoxAiAdvancedLogo24,BoxAiLogo24}from"@box/blueprint-web-assets/icons/Logo";import{jsx,jsxs}from"react/jsx-runtime";import clsx from"clsx";import{IconButton,Tooltip}from"@box/blueprint-web";import{MetadataBadge,Pencil}from"@box/blueprint-web-assets/icons/Line";import{useLocalStorageAIAgents}from"@box/box-ai-agent-selector";import '../styles/metadata-instance-header.css';var metadata_instance_header_module_default={metadataInstanceHeader:`_metadataInstanceHeader_1yxcv_1`,iconButtonsContainer:`_iconButtonsContainer_1yxcv_6`,titleContainer:`_titleContainer_1yxcv_14`,title:`_title_1yxcv_14`,badge:`_badge_1yxcv_23`,badgeCascaded:`_badgeCascaded_1yxcv_31`},MetadataInstanceHeader=({areAiSuggestionsAvailable,canEdit,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,onEdit,onAutofill,templateName,isAdvancedExtractAgentEnabled=!1,itemType=`file`,isCascaded=!1})=>{let intl=useIntl(),title=templateName||intl.formatMessage(messages.customInstanceTitle),showAiButton=isAiSuggestionsFeatureEnabled&&templateName,showBadge=itemType===`folder`,[storedAgent]=useLocalStorageAIAgents(EXTRACT_AI_AGENT_LOCAL_STORAGE_KEY),agentId=isAdvancedExtractAgentEnabled&&EXTRACT_AGENTS_MAP[storedAgent]?.AGENT_ID,tooltipContent=useMemo(()=>getTooltipContent(isAdvancedExtractAgentEnabled,storedAgent,intl),[isAdvancedExtractAgentEnabled,storedAgent,intl]);return jsxs(`div`,{className:metadata_instance_header_module_default.metadataInstanceHeader,children:[jsxs(`div`,{className:metadata_instance_header_module_default.titleContainer,children:[showBadge&&jsx(MetadataBadge,{"aria-hidden":`true`,className:clsx(metadata_instance_header_module_default.badge,{[metadata_instance_header_module_default.badgeCascaded]:isCascaded}),color:`currentColor`,"data-cascaded":isCascaded?`true`:`false`,"data-testid":`metadata-instance-header-badge`}),jsx(InteractiveHeaderText,{className:metadata_instance_header_module_default.title,title})]}),canEdit&&jsxs(`div`,{className:metadata_instance_header_module_default.iconButtonsContainer,children:[showAiButton&&jsx(Tooltip,{content:tooltipContent,children:jsx(IconButton,{"aria-label":intl.formatMessage(autofillMessages.autofillButtonAriaLabelWithTemplateName,{templateName}),"data-target-id":`IconButton-metadataEditorAutofillReadMode`,disabled:!areAiSuggestionsAvailable,icon:storedAgent===`enhanced`&&isAdvancedExtractAgentEnabled?BoxAiAdvancedLogo24:BoxAiLogo24,onClick:()=>onAutofill(agentId||void 0),variant:`icon-logo`})}),jsx(Tooltip,{content:intl.formatMessage(messages.editButtonTooltip),children:jsx(IconButton,{"aria-label":intl.formatMessage(messages.editButtonAriaLabel,{templateName}),icon:Pencil,onClick:onEdit,"data-target-id":`IconButton-editButtonAriaLabel`})})]})]})};export{MetadataInstanceHeader as t};
1
+ import{EXTRACT_AGENTS_MAP,EXTRACT_AI_AGENT_LOCAL_STORAGE_KEY}from"../esm/lib/constants.js";import{autofillMessages}from"../esm/lib/messages.js";import{getTooltipContent}from"../esm/lib/utils/utils.js";import{t as InteractiveHeaderText}from"./interactive-header-text.js";import messages from"../esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/messages.js";import{useMemo}from"react";import{useIntl}from"react-intl";import{BoxAiAdvancedLogo24,BoxAiLogo24}from"@box/blueprint-web-assets/icons/Logo";import{jsx,jsxs}from"react/jsx-runtime";import clsx from"clsx";import{IconButton,Tooltip}from"@box/blueprint-web";import{MetadataBadge,Pencil}from"@box/blueprint-web-assets/icons/Line";import{useLocalStorageAIAgents}from"@box/box-ai-agent-selector";import '../styles/metadata-instance-header.css';var metadata_instance_header_module_default={metadataInstanceHeader:`_metadataInstanceHeader_1yxcv_1`,iconButtonsContainer:`_iconButtonsContainer_1yxcv_6`,titleContainer:`_titleContainer_1yxcv_14`,title:`_title_1yxcv_14`,badge:`_badge_1yxcv_23`,badgeCascaded:`_badgeCascaded_1yxcv_31`},MetadataInstanceHeader=({areAiSuggestionsAvailable,canEdit,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,onEdit,onAutofill,templateName,isAdvancedExtractAgentEnabled=!1,itemType=`file`,isCascaded=!1})=>{let intl=useIntl(),title=templateName||intl.formatMessage(messages.customInstanceTitle),showAiButton=isAiSuggestionsFeatureEnabled&&templateName&&itemType!==`folder`,showBadge=itemType===`folder`,[storedAgent]=useLocalStorageAIAgents(EXTRACT_AI_AGENT_LOCAL_STORAGE_KEY),agentId=isAdvancedExtractAgentEnabled&&EXTRACT_AGENTS_MAP[storedAgent]?.AGENT_ID,tooltipContent=useMemo(()=>getTooltipContent(isAdvancedExtractAgentEnabled,storedAgent,intl),[isAdvancedExtractAgentEnabled,storedAgent,intl]);return jsxs(`div`,{className:metadata_instance_header_module_default.metadataInstanceHeader,children:[jsxs(`div`,{className:metadata_instance_header_module_default.titleContainer,children:[showBadge&&jsx(MetadataBadge,{"aria-hidden":`true`,className:clsx(metadata_instance_header_module_default.badge,{[metadata_instance_header_module_default.badgeCascaded]:isCascaded}),color:`currentColor`,"data-cascaded":isCascaded?`true`:`false`,"data-testid":`metadata-instance-header-badge`}),jsx(InteractiveHeaderText,{className:metadata_instance_header_module_default.title,title})]}),canEdit&&jsxs(`div`,{className:metadata_instance_header_module_default.iconButtonsContainer,children:[showAiButton&&jsx(Tooltip,{content:tooltipContent,children:jsx(IconButton,{"aria-label":intl.formatMessage(autofillMessages.autofillButtonAriaLabelWithTemplateName,{templateName}),"data-target-id":`IconButton-metadataEditorAutofillReadMode`,disabled:!areAiSuggestionsAvailable,icon:storedAgent===`enhanced`&&isAdvancedExtractAgentEnabled?BoxAiAdvancedLogo24:BoxAiLogo24,onClick:()=>onAutofill(agentId||void 0),variant:`icon-logo`})}),jsx(Tooltip,{content:intl.formatMessage(messages.editButtonTooltip),children:jsx(IconButton,{"aria-label":intl.formatMessage(messages.editButtonAriaLabel,{templateName}),icon:Pencil,onClick:onEdit,"data-target-id":`IconButton-editButtonAriaLabel`})})]})]})};export{MetadataInstanceHeader as t};
@@ -1 +1 @@
1
- import{getVisibleTemplates}from"../esm/lib/utils/utils.js";import{t as MetadataInstance}from"./metadata-instance.js";import{jsx}from"react/jsx-runtime";import '../styles/metadata-instance-list.css';var metadata_instance_list_module_default={metadataInstanceList:`_metadataInstanceList_bd83w_1`},MetadataInstanceList=({itemType=`file`,areAiSuggestionsAvailable,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,onEdit,onSelectMetadataField,selectedMetadataFieldId,templateInstances,taxonomyNodeFetcher,isAdvancedExtractAgentEnabled=!1,isConfidenceScoreReviewEnabled=!1,isBoundingBoxEnabled=!1})=>jsx(`div`,{className:metadata_instance_list_module_default.metadataInstanceList,children:getVisibleTemplates(templateInstances).map(templateInstance=>jsx(MetadataInstance,{areAiSuggestionsAvailable,isAdvancedExtractAgentEnabled,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,isConfidenceScoreReviewEnabled,isBoundingBoxEnabled,itemType,onEdit,onSelectMetadataField,selectedMetadataFieldId,taxonomyNodeFetcher,templateInstance},templateInstance.id))});export{MetadataInstanceList as t};
1
+ import{getVisibleTemplates}from"../esm/lib/utils/utils.js";import{t as MetadataInstance}from"./metadata-instance.js";import{useEffect,useRef,useState}from"react";import{jsx}from"react/jsx-runtime";import{Accordion}from"@box/blueprint-web";import '../styles/metadata-instance-list.css';var metadata_instance_list_module_default={metadataInstanceList:`_metadataInstanceList_wuo4z_1`,accordionList:`_accordionList_wuo4z_7`},MetadataInstanceList=({itemType=`file`,areAiSuggestionsAvailable,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,onEdit,onSelectMetadataField,selectedMetadataFieldId,templateInstances,taxonomyNodeFetcher,isAdvancedExtractAgentEnabled=!1,isConfidenceScoreReviewEnabled=!1,isBoundingBoxEnabled=!1,useAccordionLayout=!1,expandAccordionItemsByDefault=!1,onManageExtractAgent})=>{let visibleInstances=getVisibleTemplates(templateInstances),visibleInstanceIds=visibleInstances.map(instance=>instance.id),visibleInstanceIdsKey=visibleInstanceIds.join(`\0`),defaultExpandedIdsRef=useRef(new Set(expandAccordionItemsByDefault?visibleInstanceIds:[])),[openItems,setOpenItems]=useState(()=>expandAccordionItemsByDefault?visibleInstanceIds:[]);useEffect(()=>{if(!expandAccordionItemsByDefault)return;let idsToOpen=(visibleInstanceIdsKey===``?[]:visibleInstanceIdsKey.split(`\0`)).filter(id=>!defaultExpandedIdsRef.current.has(id));idsToOpen.length!==0&&(idsToOpen.forEach(id=>{defaultExpandedIdsRef.current.add(id)}),setOpenItems(current=>[...current,...idsToOpen]))},[expandAccordionItemsByDefault,visibleInstanceIdsKey]);let instanceItems=visibleInstances.map(templateInstance=>{let handleEdit=useAccordionLayout?(instance,shouldEnableReviewFilter)=>{setOpenItems(prev=>prev.includes(instance.id)?prev:[...prev,instance.id]),onEdit(instance,shouldEnableReviewFilter)}:onEdit;return jsx(MetadataInstance,{areAiSuggestionsAvailable,isAdvancedExtractAgentEnabled,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,isConfidenceScoreReviewEnabled,isBoundingBoxEnabled,isOpen:useAccordionLayout?openItems.includes(templateInstance.id):void 0,itemType,onEdit:handleEdit,onManageExtractAgent,onSelectMetadataField,selectedMetadataFieldId,taxonomyNodeFetcher,templateInstance,useAccordionLayout},templateInstance.id)});return useAccordionLayout?jsx(`div`,{className:metadata_instance_list_module_default.accordionList,children:jsx(Accordion,{type:`multiple`,value:openItems,onValueChange:setOpenItems,children:instanceItems})}):jsx(`div`,{className:metadata_instance_list_module_default.metadataInstanceList,children:instanceItems})};export{MetadataInstanceList as t};
@@ -1 +1 @@
1
- import{MetadataEmptyState}from"../esm/lib/components/metadata-empty-state/metadata-empty-state.js";import{useAutofill}from"../esm/lib/utils/autofill-context.js";import{isCascadePolicyEnabled}from"../esm/lib/utils/cascade-policy.js";import{getFieldsNeedingReview}from"../esm/lib/utils/confidence-score/get-fields-needing-review.js";import{isAutofillAllowedForInstance}from"../esm/lib/utils/autofill-namespace.js";import{MetadataInstanceCascadeNotice}from"../esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-cascade-notice/metadata-instance-cascade-notice.js";import{MetadataInstanceReviewNotice}from"../esm/lib/components/metadata-instance-review-notice/metadata-instance-review-notice.js";import{t as MetadataInstanceContent}from"./metadata-instance-content.js";import{t as MetadataInstanceFooter}from"./metadata-instance-footer.js";import{t as MetadataInstanceHeader}from"./metadata-instance-header.js";import{useState}from"react";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import{Card,Divider}from"@box/blueprint-web";import '../styles/metadata-instance.css';var metadata_instance_module_default={topDivider:`_topDivider_1x96u_1`,reviewNotice:`_reviewNotice_1x96u_5`,cascadeNotice:`_cascadeNotice_1x96u_9`,bottomDivider:`_bottomDivider_1x96u_13`},MetadataInstance=({itemType=`file`,areAiSuggestionsAvailable,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,onEdit,onSelectMetadataField,selectedMetadataFieldId,templateInstance,taxonomyNodeFetcher,isAdvancedExtractAgentEnabled=!1,isConfidenceScoreReviewEnabled=!1,isBoundingBoxEnabled=!1})=>{let metadataFields=templateInstance.fields,isCascaded=itemType===`folder`&&isCascadePolicyEnabled(templateInstance.cascadePolicy),hasNonEmptyValue=field=>!field.value||Array.isArray(field.value)&&field.value.length===0,areAllValuesEmpty=metadataFields.every(hasNonEmptyValue),areSomeValuesEmpty=metadataFields.some(hasNonEmptyValue),hasFields=metadataFields.length>0,fieldsNeedingReviewCount=getFieldsNeedingReview(metadataFields).length,shouldShowReviewNotice=isConfidenceScoreReviewEnabled&&fieldsNeedingReviewCount>0&&templateInstance.canEdit,[shouldHideEmptyValues,setShouldHideEmptyValues]=useState(!0),{getAiSuggestions}=useAutofill();return jsxs(Card,{children:[jsx(MetadataInstanceHeader,{areAiSuggestionsAvailable,canEdit:templateInstance.canEdit,isAdvancedExtractAgentEnabled,isAiSuggestionsFeatureEnabled:isAiSuggestionsFeatureEnabled&&isAutofillAllowedForInstance(templateInstance),isBetaLanguageEnabled,isCascaded,itemType,onAutofill:agentId=>{onEdit(templateInstance),getAiSuggestions(templateInstance.templateKey,templateInstance.scope,agentId)},onEdit:()=>onEdit(templateInstance),templateName:templateInstance?.displayName}),jsx(Divider,{className:metadata_instance_module_default.topDivider}),isCascaded&&jsx(`div`,{className:metadata_instance_module_default.cascadeNotice,children:jsx(MetadataInstanceCascadeNotice,{})}),shouldShowReviewNotice&&jsx(`div`,{className:metadata_instance_module_default.reviewNotice,children:jsx(MetadataInstanceReviewNotice,{fieldsNeedingReviewCount,onTextToggleClick:()=>{onEdit(templateInstance,!0)}})}),shouldHideEmptyValues&&areAllValuesEmpty?jsx(MetadataEmptyState,{isAnyEmptyValueHidden:hasFields,isBoxAiSuggestionsFeatureEnabled:isAiSuggestionsFeatureEnabled,level:`instance`,onShowEmptyValues:()=>setShouldHideEmptyValues(!1)}):jsxs(Fragment,{children:[jsx(MetadataInstanceContent,{isConfidenceScoreReviewEnabled,isBoundingBoxEnabled,onSelectMetadataField,selectedMetadataFieldId,shouldHideEmptyValues,taxonomyNodeFetcher,templateInstance}),areSomeValuesEmpty&&jsxs(Fragment,{children:[jsx(Divider,{className:metadata_instance_module_default.bottomDivider}),jsx(MetadataInstanceFooter,{isAnyEmptyValueHidden:shouldHideEmptyValues,onHideEmptyValues:()=>setShouldHideEmptyValues(!0),onShowEmptyValues:()=>setShouldHideEmptyValues(!1)})]})]})]})};export{MetadataInstance as t};
1
+ import{EXTRACT_AGENTS_MAP,EXTRACT_AI_AGENT_LOCAL_STORAGE_KEY}from"../esm/lib/constants.js";import{autofillMessages}from"../esm/lib/messages.js";import{getTooltipContent}from"../esm/lib/utils/utils.js";import{MetadataEmptyState}from"../esm/lib/components/metadata-empty-state/metadata-empty-state.js";import{useAutofill}from"../esm/lib/utils/autofill-context.js";import"./types.js";import{isCascadePolicyEnabled,isCustomExtractAgentPolicy}from"../esm/lib/utils/cascade-policy.js";import{getFieldsNeedingReview}from"../esm/lib/utils/confidence-score/get-fields-needing-review.js";import{isAutofillAllowedForInstance}from"../esm/lib/utils/autofill-namespace.js";import{CASCADED_BADGE_ICON_COLOR,DEFAULT_BADGE_ICON_COLOR,getNamespaceSubtitle}from"../esm/lib/utils/metadata-instance-display.js";import{MetadataInstanceCascadeNotice}from"../esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-cascade-notice/metadata-instance-cascade-notice.js";import{CustomExtractAgentNotice}from"../esm/lib/components/metadata-instance-editor/subcomponents/custom-extract-agent-notice/custom-extract-agent-notice.js";import{MetadataInstanceReviewNotice}from"../esm/lib/components/metadata-instance-review-notice/metadata-instance-review-notice.js";import{t as MetadataInstanceContent}from"./metadata-instance-content.js";import{t as MetadataInstanceFooter}from"./metadata-instance-footer.js";import messages from"../esm/lib/components/metadata-instance-list/subcomponents/metadata-instance-header/messages.js";import{t as MetadataInstanceHeader}from"./metadata-instance-header.js";import{useMemo,useState}from"react";import{useIntl}from"react-intl";import{BoxAiAdvancedLogo24,BoxAiLogo24}from"@box/blueprint-web-assets/icons/Logo";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import clsx from"clsx";import{Accordion,Card,Divider,Focusable,IconButton,Text,Tooltip}from"@box/blueprint-web";import{Metadata,MetadataExtraction,Pencil}from"@box/blueprint-web-assets/icons/Medium";import{useLocalStorageAIAgents}from"@box/box-ai-agent-selector";import '../styles/metadata-instance.css';var metadata_instance_module_default={accordionBadgeFrame:`_accordionBadgeFrame_3o3z7_1`,accordionBadgeFrameCascaded:`_accordionBadgeFrameCascaded_3o3z7_16`,accordionPencilWrapper:`_accordionPencilWrapper_3o3z7_20`,accordionItemWrapper:`_accordionItemWrapper_3o3z7_29`,topDivider:`_topDivider_3o3z7_34`,reviewNotice:`_reviewNotice_3o3z7_38`,noticesWrapper:`_noticesWrapper_3o3z7_42`,bottomDivider:`_bottomDivider_3o3z7_49`},MetadataInstance=({itemType=`file`,areAiSuggestionsAvailable,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,onEdit,onSelectMetadataField,selectedMetadataFieldId,templateInstance,taxonomyNodeFetcher,isAdvancedExtractAgentEnabled=!1,isConfidenceScoreReviewEnabled=!1,isBoundingBoxEnabled=!1,useAccordionLayout=!1,isOpen=!1,onManageExtractAgent})=>{let intl=useIntl(),metadataFields=templateInstance.fields,isCascaded=itemType===`folder`&&isCascadePolicyEnabled(templateInstance.cascadePolicy),isAiExtract=isCascaded&&templateInstance.cascadePolicy?.cascadePolicyType===`ai_extract`,isManagedByExtractAgent=isCustomExtractAgentPolicy(templateInstance.cascadePolicy),hasNonEmptyValue=field=>!field.value||Array.isArray(field.value)&&field.value.length===0,areAllValuesEmpty=metadataFields.every(hasNonEmptyValue),areSomeValuesEmpty=metadataFields.some(hasNonEmptyValue),hasFields=metadataFields.length>0,fieldsNeedingReviewCount=getFieldsNeedingReview(metadataFields).length,shouldShowReviewNotice=isConfidenceScoreReviewEnabled&&fieldsNeedingReviewCount>0&&templateInstance.canEdit,[shouldHideEmptyValues,setShouldHideEmptyValues]=useState(!0),{getAiSuggestions}=useAutofill(),[storedAgent]=useLocalStorageAIAgents(EXTRACT_AI_AGENT_LOCAL_STORAGE_KEY),agentId=isAdvancedExtractAgentEnabled&&EXTRACT_AGENTS_MAP[storedAgent]?.AGENT_ID,autofillTooltipContent=useMemo(()=>getTooltipContent(isAdvancedExtractAgentEnabled,storedAgent,intl),[isAdvancedExtractAgentEnabled,storedAgent,intl]),onEditWithAutofill=selectedAgentId=>{onEdit(templateInstance),getAiSuggestions(templateInstance.templateKey,templateInstance.scope,selectedAgentId)},instanceBody=jsxs(Fragment,{children:[(isCascaded||isManagedByExtractAgent)&&jsxs(`div`,{className:metadata_instance_module_default.noticesWrapper,children:[isCascaded&&jsx(MetadataInstanceCascadeNotice,{}),isManagedByExtractAgent&&jsx(CustomExtractAgentNotice,{agentConfiguration:templateInstance.cascadePolicy?.agentConfiguration,onManageExtractAgent})]}),shouldShowReviewNotice&&jsx(`div`,{className:metadata_instance_module_default.reviewNotice,children:jsx(MetadataInstanceReviewNotice,{fieldsNeedingReviewCount,onTextToggleClick:()=>{onEdit(templateInstance,!0)}})}),shouldHideEmptyValues&&areAllValuesEmpty?jsx(MetadataEmptyState,{isAnyEmptyValueHidden:hasFields,isBoxAiSuggestionsFeatureEnabled:isAiSuggestionsFeatureEnabled,level:`instance`,onShowEmptyValues:()=>setShouldHideEmptyValues(!1)}):jsxs(Fragment,{children:[jsx(MetadataInstanceContent,{isConfidenceScoreReviewEnabled,isBoundingBoxEnabled,onSelectMetadataField,selectedMetadataFieldId,shouldHideEmptyValues,taxonomyNodeFetcher,templateInstance}),areSomeValuesEmpty&&jsxs(Fragment,{children:[jsx(Divider,{className:metadata_instance_module_default.bottomDivider}),jsx(MetadataInstanceFooter,{isAnyEmptyValueHidden:shouldHideEmptyValues,onHideEmptyValues:()=>setShouldHideEmptyValues(!0),onShowEmptyValues:()=>setShouldHideEmptyValues(!1)})]})]})]});if(useAccordionLayout){let templateName=templateInstance.displayName??intl.formatMessage(messages.customInstanceTitle),subtitle=getNamespaceSubtitle(templateInstance.scope,templateInstance.namespace),showBadge=itemType===`folder`,showAutofill=itemType!==`folder`&&!!templateInstance.displayName&&isAiSuggestionsFeatureEnabled&&isAutofillAllowedForInstance(templateInstance),BadgeIcon=isAiExtract?MetadataExtraction:Metadata,accordionAction=(()=>{if(!templateInstance.canEdit)return;let autofillButton=showAutofill&&templateInstance.displayName?jsx(Tooltip,{content:autofillTooltipContent,children:jsx(IconButton,{"aria-label":intl.formatMessage(autofillMessages.autofillButtonAriaLabelWithTemplateName,{templateName:templateInstance.displayName}),"data-target-id":`IconButton-metadataEditorAutofillReadMode`,"data-testid":`metadata-instance-accordion-autofill`,disabled:!areAiSuggestionsAvailable,icon:storedAgent===`enhanced`&&isAdvancedExtractAgentEnabled?BoxAiAdvancedLogo24:BoxAiLogo24,onClick:()=>onEditWithAutofill(agentId||void 0),variant:`icon-logo`})}):null,pencilButton=isManagedByExtractAgent?jsx(Tooltip,{content:intl.formatMessage(messages.disabledEditButtonTooltip),children:jsx(Focusable,{accessibleWhenDisabled:!0,children:jsx(IconButton,{"aria-label":intl.formatMessage(messages.editButtonAriaLabel,{templateName}),"data-testid":`metadata-instance-accordion-edit`,disabled:!0,icon:Pencil,onClick:()=>void 0,"data-target-id":`IconButton-editButtonAriaLabel`})})}):jsx(Tooltip,{content:intl.formatMessage(messages.editButtonTooltip),children:jsx(IconButton,{"aria-label":intl.formatMessage(messages.editButtonAriaLabel,{templateName}),"data-testid":`metadata-instance-accordion-edit`,icon:Pencil,onClick:()=>onEdit(templateInstance),"data-target-id":`IconButton-editButtonAriaLabel`})});return jsxs(`span`,{className:metadata_instance_module_default.accordionPencilWrapper,"data-open":isOpen?`true`:`false`,"data-testid":`metadata-instance-accordion-pencil-wrapper`,children:[autofillButton,pencilButton]})})();return jsx(Accordion.Item,{className:metadata_instance_module_default.accordionItemWrapper,value:templateInstance.id,title:templateName,subtitle,startElement:showBadge?jsx(Text,{as:`span`,"aria-hidden":`true`,className:clsx(metadata_instance_module_default.accordionBadgeFrame,{[metadata_instance_module_default.accordionBadgeFrameCascaded]:isCascaded}),style:{color:isCascaded?CASCADED_BADGE_ICON_COLOR:DEFAULT_BADGE_ICON_COLOR},"data-testid":`metadata-instance-accordion-badge`,"data-cascaded":isCascaded?`true`:`false`,children:jsx(BadgeIcon,{"aria-hidden":`true`,color:`currentColor`})}):void 0,action:accordionAction,children:jsx(`div`,{className:metadata_instance_module_default.accordionContent,children:instanceBody})})}return jsxs(Card,{children:[jsx(MetadataInstanceHeader,{areAiSuggestionsAvailable,canEdit:templateInstance.canEdit,isAdvancedExtractAgentEnabled,isAiSuggestionsFeatureEnabled:itemType!==`folder`&&isAiSuggestionsFeatureEnabled&&isAutofillAllowedForInstance(templateInstance),isBetaLanguageEnabled,isCascaded,itemType,onAutofill:onEditWithAutofill,onEdit:()=>onEdit(templateInstance),templateName:templateInstance?.displayName}),jsx(Divider,{className:metadata_instance_module_default.topDivider}),instanceBody]})};export{MetadataInstance as t};
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- import{FilterDropdownMenu}from"./lib/components/filter-dropdown-menu/index.js";import{AddMetadataTemplateDropdown}from"./lib/components/add-metadata-template-dropdown/add-metadata-template-dropdown.js";import{t as AddMetadataTemplateDropdownWithBrowser}from"../chunks/add-metadata-template-dropdown-with-browser.js";import"./lib/components/add-metadata-template-dropdown/index.js";import{t as ComboboxWithApiPagination}from"../chunks/combobox-with-api-pagination.js";import"./lib/components/combobox-with-api-pagination/index.js";import{t as FilterInstancesDropdown}from"../chunks/filter-instances-dropdown.js";import"./lib/components/filter-instances-dropdown/index.js";import{MULTI_VALUE_DEFAULT_OPTION,MULTI_VALUE_DEFAULT_TAXONOMY_OPTION,MULTI_VALUE_DEFAULT_VALUE}from"./lib/components/metadata-editor-fields/components/update-mode-field-wrapper/mulitple-values-utils.js";import{MetadataEmptyState}from"./lib/components/metadata-empty-state/metadata-empty-state.js";import{AutofillContext,AutofillContextProvider,TIMEOUT_10_SECONDS,useAutofill}from"./lib/utils/autofill-context.js";import{i as UpdateMode,n as CASCADE_POLICY_TYPE_AI_EXTRACT,r as ConfidenceLevel,t as AiSuggestionState}from"../chunks/types.js";import{getCustomExtractAgentId,isCascadePolicyEnabled,isCustomExtractAgentPolicy,toCascadePolicySelection}from"./lib/utils/cascade-policy.js";import{UnsavedChangesModal}from"./lib/components/unsaved-changes-modal/unsaved-changes-modal.js";import{t as CustomInstanceNewField}from"../chunks/custom-instance-new-field.js";import{t as DeleteConfirmationModal}from"../chunks/delete-confirmation-modal.js";import{r as JSONPatchOp}from"../chunks/utils2.js";import{MetadataInstanceCascadeNotice}from"./lib/components/metadata-instance-list/subcomponents/metadata-instance-cascade-notice/metadata-instance-cascade-notice.js";import{t as CascadePolicyEditor}from"../chunks/cascade-policy-editor.js";import{CustomExtractAgentNotice}from"./lib/components/metadata-instance-editor/subcomponents/custom-extract-agent-notice/custom-extract-agent-notice.js";import{t as MetadataInstanceFormAutofillButton}from"../chunks/metadata-instance-form-autofill-button.js";import{t as MetadataInstanceFormHeader}from"../chunks/metadata-instance-form-header.js";import{MetadataInstanceForm}from"./lib/components/metadata-instance-editor/index.js";import{t as MetadataInstanceHeader}from"../chunks/metadata-instance-header.js";import{MetadataInstance,MetadataInstanceList}from"./lib/components/metadata-instance-list/index.js";import{defaultInitialValues,defaultMetadataValueMap}from"./lib/defaults.js";import{withApiWrapper}from"./lib/utils/api-wrapper.js";export{AddMetadataTemplateDropdown,AddMetadataTemplateDropdownWithBrowser,AiSuggestionState,AutofillContext,AutofillContextProvider,CASCADE_POLICY_TYPE_AI_EXTRACT,CascadePolicyEditor,ComboboxWithApiPagination,ConfidenceLevel,CustomExtractAgentNotice,CustomInstanceNewField,DeleteConfirmationModal,FilterDropdownMenu,FilterInstancesDropdown,JSONPatchOp,MULTI_VALUE_DEFAULT_OPTION,MULTI_VALUE_DEFAULT_TAXONOMY_OPTION,MULTI_VALUE_DEFAULT_VALUE,MetadataEmptyState,MetadataInstance,MetadataInstanceCascadeNotice,MetadataInstanceForm,MetadataInstanceFormAutofillButton,MetadataInstanceFormHeader,MetadataInstanceHeader,MetadataInstanceList,TIMEOUT_10_SECONDS,UnsavedChangesModal,UpdateMode,defaultInitialValues,defaultMetadataValueMap,getCustomExtractAgentId,isCascadePolicyEnabled,isCustomExtractAgentPolicy,toCascadePolicySelection,useAutofill,withApiWrapper};
1
+ import{FilterDropdownMenu}from"./lib/components/filter-dropdown-menu/index.js";import{AddMetadataTemplateDropdown}from"./lib/components/add-metadata-template-dropdown/add-metadata-template-dropdown.js";import{t as AddMetadataTemplateDropdownWithBrowser}from"../chunks/add-metadata-template-dropdown-with-browser.js";import"./lib/components/add-metadata-template-dropdown/index.js";import{t as ComboboxWithApiPagination}from"../chunks/combobox-with-api-pagination.js";import"./lib/components/combobox-with-api-pagination/index.js";import{t as FilterInstancesDropdown}from"../chunks/filter-instances-dropdown.js";import"./lib/components/filter-instances-dropdown/index.js";import{MULTI_VALUE_DEFAULT_OPTION,MULTI_VALUE_DEFAULT_TAXONOMY_OPTION,MULTI_VALUE_DEFAULT_VALUE}from"./lib/components/metadata-editor-fields/components/update-mode-field-wrapper/mulitple-values-utils.js";import{MetadataEmptyState}from"./lib/components/metadata-empty-state/metadata-empty-state.js";import{AutofillContext,AutofillContextProvider,TIMEOUT_10_SECONDS,useAutofill}from"./lib/utils/autofill-context.js";import{i as UpdateMode,n as CASCADE_POLICY_TYPE_AI_EXTRACT,r as ConfidenceLevel,t as AiSuggestionState}from"../chunks/types.js";import{getCustomExtractAgentId,isCascadePolicyEnabled,isCustomExtractAgentPolicy,toCascadePolicySelection}from"./lib/utils/cascade-policy.js";import{UnsavedChangesModal}from"./lib/components/unsaved-changes-modal/unsaved-changes-modal.js";import{t as CustomInstanceNewField}from"../chunks/custom-instance-new-field.js";import{t as DeleteConfirmationModal}from"../chunks/delete-confirmation-modal.js";import{r as JSONPatchOp}from"../chunks/utils2.js";import{MetadataInstanceCascadeNotice}from"./lib/components/metadata-instance-list/subcomponents/metadata-instance-cascade-notice/metadata-instance-cascade-notice.js";import{t as CascadePolicyEditor}from"../chunks/cascade-policy-editor.js";import{CustomExtractAgentNotice}from"./lib/components/metadata-instance-editor/subcomponents/custom-extract-agent-notice/custom-extract-agent-notice.js";import{t as MetadataInstanceFormAutofillButton}from"../chunks/metadata-instance-form-autofill-button.js";import{n as MetadataInstanceFormNotices,t as MetadataInstanceFormHeader}from"../chunks/metadata-instance-form-header.js";import{MetadataInstanceFormAccordionWrapper}from"./lib/components/metadata-instance-editor/subcomponents/metadata-instance-form/metadata-instance-form-accordion-wrapper.js";import{MetadataInstanceForm}from"./lib/components/metadata-instance-editor/index.js";import{t as MetadataInstanceHeader}from"../chunks/metadata-instance-header.js";import{MetadataInstance,MetadataInstanceList}from"./lib/components/metadata-instance-list/index.js";import{defaultInitialValues,defaultMetadataValueMap}from"./lib/defaults.js";import{withApiWrapper}from"./lib/utils/api-wrapper.js";export{AddMetadataTemplateDropdown,AddMetadataTemplateDropdownWithBrowser,AiSuggestionState,AutofillContext,AutofillContextProvider,CASCADE_POLICY_TYPE_AI_EXTRACT,CascadePolicyEditor,ComboboxWithApiPagination,ConfidenceLevel,CustomExtractAgentNotice,CustomInstanceNewField,DeleteConfirmationModal,FilterDropdownMenu,FilterInstancesDropdown,JSONPatchOp,MULTI_VALUE_DEFAULT_OPTION,MULTI_VALUE_DEFAULT_TAXONOMY_OPTION,MULTI_VALUE_DEFAULT_VALUE,MetadataEmptyState,MetadataInstance,MetadataInstanceCascadeNotice,MetadataInstanceForm,MetadataInstanceFormAccordionWrapper,MetadataInstanceFormAutofillButton,MetadataInstanceFormHeader,MetadataInstanceFormNotices,MetadataInstanceHeader,MetadataInstanceList,TIMEOUT_10_SECONDS,UnsavedChangesModal,UpdateMode,defaultInitialValues,defaultMetadataValueMap,getCustomExtractAgentId,isCascadePolicyEnabled,isCustomExtractAgentPolicy,toCascadePolicySelection,useAutofill,withApiWrapper};
@@ -1 +1 @@
1
- import{withAnalytics}from"../../utils/analytics/with-analytics.js";import{t as CustomInstanceNewField}from"../../../../chunks/custom-instance-new-field.js";import{t as DeleteConfirmationModal}from"../../../../chunks/delete-confirmation-modal.js";import{r as JSONPatchOp}from"../../../../chunks/utils2.js";import{t as CascadePolicyEditor}from"../../../../chunks/cascade-policy-editor.js";import{CustomExtractAgentNotice}from"./subcomponents/custom-extract-agent-notice/custom-extract-agent-notice.js";import{t as MetadataInstanceFormAutofillButton}from"../../../../chunks/metadata-instance-form-autofill-button.js";import{t as MetadataInstanceFormHeader}from"../../../../chunks/metadata-instance-form-header.js";import{MetadataInstanceForm as MetadataInstanceForm$1}from"./subcomponents/metadata-instance-form/metadata-instance-form.js";var MetadataInstanceForm=withAnalytics(MetadataInstanceForm$1);export{CascadePolicyEditor,CustomExtractAgentNotice,CustomInstanceNewField,DeleteConfirmationModal,JSONPatchOp,MetadataInstanceForm,MetadataInstanceFormAutofillButton,MetadataInstanceFormHeader};
1
+ import{withAnalytics}from"../../utils/analytics/with-analytics.js";import{t as CustomInstanceNewField}from"../../../../chunks/custom-instance-new-field.js";import{t as DeleteConfirmationModal}from"../../../../chunks/delete-confirmation-modal.js";import{r as JSONPatchOp}from"../../../../chunks/utils2.js";import{t as CascadePolicyEditor}from"../../../../chunks/cascade-policy-editor.js";import{CustomExtractAgentNotice}from"./subcomponents/custom-extract-agent-notice/custom-extract-agent-notice.js";import{t as MetadataInstanceFormAutofillButton}from"../../../../chunks/metadata-instance-form-autofill-button.js";import{n as MetadataInstanceFormNotices,t as MetadataInstanceFormHeader}from"../../../../chunks/metadata-instance-form-header.js";import{MetadataInstanceFormAccordionWrapper}from"./subcomponents/metadata-instance-form/metadata-instance-form-accordion-wrapper.js";import{MetadataInstanceForm as MetadataInstanceForm$1}from"./subcomponents/metadata-instance-form/metadata-instance-form.js";var MetadataInstanceForm=withAnalytics(MetadataInstanceForm$1);export{CascadePolicyEditor,CustomExtractAgentNotice,CustomInstanceNewField,DeleteConfirmationModal,JSONPatchOp,MetadataInstanceForm,MetadataInstanceFormAccordionWrapper,MetadataInstanceFormAutofillButton,MetadataInstanceFormHeader,MetadataInstanceFormNotices};
@@ -1 +1 @@
1
- import{defineMessages}from"react-intl";var messages=defineMessages({deleteConfirmationModalCustomMetadata:{id:`metadataEditor.editInstance.deleteConfirmationModal.customMedatata`,defaultMessage:`Custom Metadata`},deleteConfirmationModalHeader:{id:`metadataEditor.editInstance.deleteConfirmationModal.header`,defaultMessage:`Delete "{templateName}"`},deleteConfirmationModalHeaderAriaLabel:{id:`metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel`,defaultMessage:`Delete Metadata Template`},deleteConfirmationModalBodyFirstParagraph:{id:`metadataEditor.editInstance.deleteConfirmationModal.body.firstParagraph`,defaultMessage:`Are you sure you want to delete the "{templateName}" Metadata template, and all of its values from this file?`},deleteConfirmationModalBodyFirstParagraphFolder:{id:`metadataEditor.editInstance.deleteConfirmationModal.body.firstParagraph.folder`,defaultMessage:`Are you sure you want to delete the "{templateName}" Metadata template, and all of its values from this folder?`},deleteConfirmationModalBodyFirstParagraphCheckboxVersion:{id:`metadataEditor.editInstance.deleteConfirmationModal.body.firstParagraphCheckboxVersion`,defaultMessage:`Are you sure you want to delete the "{templateName}" Metadata instance, and its values?`},deleteConfirmationModalBodySecondParagraph:{id:`metadataEditor.editInstance.deleteConfirmationModal.body.secondParagraph`,defaultMessage:`Once deleted, Metadata values cannot be restored.`},deleteConfirmationModalBodyInputFieldLabel:{id:`metadataEditor.editInstance.deleteConfirmationModal.body.inputFieldLabel`,defaultMessage:`Type the Metadata Template’s name to confirm deletion`},deleteConfirmationModalBodyCheckboxLabel:{id:`metadataEditor.editInstance.deleteConfirmationModal.body.checkboxLabel`,defaultMessage:`Confirm deletion of Metadata instance`},deleteConfirmationModalCancelButton:{id:`metadataEditor.editInstance.deleteConfirmationModal.cancelButton`,defaultMessage:`Cancel`},deleteConfirmationModalConfirmButton:{id:`metadataEditor.editInstance.deleteConfirmationModal.confirmButton`,defaultMessage:`Confirm`},deleteConfirmationModalConfirmButtonCheckboxVersion:{id:`metadataEditor.editInstance.deleteConfirmationModal.confirmButtonCheckboxVersion`,defaultMessage:`Delete`},deleteConfirmationModalDismissButton:{id:`metadataEditor.editInstance.deleteConfirmationModal.dismissButton`,defaultMessage:`Dismiss`}});export{messages as default};
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({deleteConfirmationModalCustomMetadata:{id:`metadataEditor.editInstance.deleteConfirmationModal.customMedatata`,defaultMessage:`Custom Metadata`},deleteConfirmationModalHeader:{id:`metadataEditor.editInstance.deleteConfirmationModal.header`,defaultMessage:`Delete "{templateName}"`},deleteConfirmationModalHeaderAriaLabel:{id:`metadataEditor.editInstance.deleteConfirmationModal.headerAriaLabel`,defaultMessage:`Delete Metadata Template`},deleteConfirmationModalBodyFirstParagraph:{id:`metadataEditor.editInstance.deleteConfirmationModal.body.firstParagraph`,defaultMessage:`Are you sure you want to delete the "{templateName}" Metadata template, and all of its values from this file?`},deleteConfirmationModalBodyFirstParagraphFolder:{id:`metadataEditor.editInstance.deleteConfirmationModal.body.firstParagraph.folder`,defaultMessage:`Are you sure you want to remove {templateName} and all of its values from this folder? If any metadata values were applied to the files in this folder, they will remain as they are and will not be deleted from this action.`},deleteConfirmationModalBodyFirstParagraphCheckboxVersion:{id:`metadataEditor.editInstance.deleteConfirmationModal.body.firstParagraphCheckboxVersion`,defaultMessage:`Are you sure you want to delete the "{templateName}" Metadata instance, and its values?`},deleteConfirmationModalBodySecondParagraph:{id:`metadataEditor.editInstance.deleteConfirmationModal.body.secondParagraph`,defaultMessage:`Once deleted, Metadata values cannot be restored.`},deleteConfirmationModalBodyInputFieldLabel:{id:`metadataEditor.editInstance.deleteConfirmationModal.body.inputFieldLabel`,defaultMessage:`Type the Metadata Template’s name to confirm deletion`},deleteConfirmationModalBodyCheckboxLabel:{id:`metadataEditor.editInstance.deleteConfirmationModal.body.checkboxLabel`,defaultMessage:`Confirm deletion of Metadata instance`},deleteConfirmationModalCancelButton:{id:`metadataEditor.editInstance.deleteConfirmationModal.cancelButton`,defaultMessage:`Cancel`},deleteConfirmationModalConfirmButton:{id:`metadataEditor.editInstance.deleteConfirmationModal.confirmButton`,defaultMessage:`Confirm`},deleteConfirmationModalConfirmButtonCheckboxVersion:{id:`metadataEditor.editInstance.deleteConfirmationModal.confirmButtonCheckboxVersion`,defaultMessage:`Delete`},deleteConfirmationModalDismissButton:{id:`metadataEditor.editInstance.deleteConfirmationModal.dismissButton`,defaultMessage:`Dismiss`}});export{messages as default};
@@ -0,0 +1 @@
1
+ import{TEMPLATE_CUSTOM_PROPERTIES}from"../../../../constants.js";import"../../../../../../chunks/types.js";import{isCascadePolicyEnabled,isCustomExtractAgentPolicy}from"../../../../utils/cascade-policy.js";import{isAutofillAllowedForInstance}from"../../../../utils/autofill-namespace.js";import{CASCADED_BADGE_ICON_COLOR,DEFAULT_BADGE_ICON_COLOR,getNamespaceSubtitle}from"../../../../utils/metadata-instance-display.js";import{t as CascadePolicyEditor}from"../../../../../../chunks/cascade-policy-editor.js";import{CustomExtractAgentNotice}from"../custom-extract-agent-notice/custom-extract-agent-notice.js";import{t as MetadataInstanceFormAiDisclaimer}from"../../../../../../chunks/metadata-instance-form-ai-disclaimer.js";import{t as MetadataInstanceFormAutofillButton}from"../../../../../../chunks/metadata-instance-form-autofill-button.js";import{t as MetadataInstanceFormFooter}from"../../../../../../chunks/metadata-instance-form-footer.js";import messages from"../metadata-instance-form-header/messages.js";import{n as MetadataInstanceFormNotices}from"../../../../../../chunks/metadata-instance-form-header.js";import{t as metadata_instance_form_module_default}from"../../../../../../chunks/metadata-instance-form.module.js";import{useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import clsx from"clsx";import{Accordion,Text}from"@box/blueprint-web";import{Metadata,MetadataExtraction,Pencil}from"@box/blueprint-web-assets/icons/Medium";var noopCascadeToggle=()=>void 0,noopCascadeModeChange=_mode=>void 0,MetadataInstanceFormAccordionWrapper=props=>{let{areAiSuggestionsAvailable,children,className,formRef,formValues,isAdvancedExtractAgentEnabled=!1,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,isConfidenceScoreReviewEnabled=!1,isBoundingBoxEnabled=!1,isDeleteButtonDisabled,isFetchingSuggestions,isFormDirty=!1,isLargeFile=!1,onToggleReviewFilter,selectedTemplateInstance,shouldShowOnlyReviewFields=!1,suggestions,getAiSuggestions,handleCancel,handleDelete,itemType=`file`,onManageExtractAgent,cascadeIsEnabled=!1,cascadeMode=`skip`,isConfiguringCascadeReplacement=!1,onCascadeToggle,onCascadeModeChange}=props,intl=useIntl(),isCustomMetadata=selectedTemplateInstance?.templateKey===TEMPLATE_CUSTOM_PROPERTIES,isFolder=itemType===`folder`,cascadePolicy=selectedTemplateInstance?.cascadePolicy,isCascaded=isFolder&&isCascadePolicyEnabled(cascadePolicy),isManagedByCustomExtractAgent=isFolder&&isCustomExtractAgentPolicy(cascadePolicy),BadgeIcon=isCascaded&&cascadePolicy?.cascadePolicyType===`ai_extract`?MetadataExtraction:Metadata,isBoundingBoxOrConfidenceScoreReviewEnabled=isConfidenceScoreReviewEnabled||isBoundingBoxEnabled,templateName=selectedTemplateInstance?.displayName??intl.formatMessage(messages.customInstanceTitle),subtitle=getNamespaceSubtitle(selectedTemplateInstance?.scope,selectedTemplateInstance?.namespace),hasSuggestions=!!suggestions[selectedTemplateInstance?.templateKey],instanceId=selectedTemplateInstance?.id??`form-instance`,autofillButton=isAiSuggestionsFeatureEnabled&&!isFolder&&!isCustomMetadata&&!isManagedByCustomExtractAgent&&isAutofillAllowedForInstance(selectedTemplateInstance)?jsx(MetadataInstanceFormAutofillButton,{areAiSuggestionsAvailable,isAdvancedExtractAgentEnabled,isBetaLanguageEnabled,isLoading:isFetchingSuggestions,onAutofill:getAiSuggestions,size:`small`}):void 0,editingIndicator=jsxs(Text,{as:`span`,className:metadata_instance_form_module_default.accordionEditingIndicator,"data-testid":`metadata-instance-form-accordion-editing`,"aria-label":intl.formatMessage(messages.editingIndicator),style:{color:`var(--bp-text-text-on-light-tertiary)`},variant:`caption`,children:[intl.formatMessage(messages.editingIndicator),jsx(Pencil,{"aria-hidden":`true`,color:`currentColor`})]}),accordionAction=autofillButton??editingIndicator;return jsx(`div`,{ref:formRef,className:isFetchingSuggestions?metadata_instance_form_module_default.wrapperGradient:void 0,"data-testid":`metadata-instance-form-accordion-root`,children:jsxs(Accordion.Item,{className:clsx(className,{[metadata_instance_form_module_default.suggestionsFetching]:isFetchingSuggestions}),value:instanceId,title:templateName,subtitle,startElement:isFolder?jsx(Text,{as:`span`,"aria-hidden":`true`,className:clsx(metadata_instance_form_module_default.accordionBadgeFrame,{[metadata_instance_form_module_default.accordionBadgeFrameCascaded]:isCascaded}),style:{color:isCascaded?CASCADED_BADGE_ICON_COLOR:DEFAULT_BADGE_ICON_COLOR},"data-testid":`metadata-instance-form-accordion-badge`,"data-cascaded":isCascaded?`true`:`false`,children:jsx(BadgeIcon,{"aria-hidden":`true`,color:`currentColor`})}):void 0,action:accordionAction,children:[jsx(MetadataInstanceFormNotices,{areAiSuggestionsAvailable,hasSuggestions,isBetaLanguageEnabled,isConfidenceScoreReviewEnabled,isLargeFile,isLoading:isFetchingSuggestions,onToggleReviewFilter,shouldShowOnlyReviewFields}),isManagedByCustomExtractAgent?jsx(CustomExtractAgentNotice,{agentConfiguration:cascadePolicy?.agentConfiguration,onManageExtractAgent}):jsxs(Fragment,{children:[isFolder&&selectedTemplateInstance&&jsx(CascadePolicyEditor,{canEdit:cascadePolicy?.canEdit!==!1,cascadePolicy,isConfiguringReplacement:isConfiguringCascadeReplacement,isCustomMetadata,isEnabled:cascadeIsEnabled,mode:cascadeMode,onCascadeModeChange:onCascadeModeChange??noopCascadeModeChange,onCascadeToggle:onCascadeToggle??noopCascadeToggle}),selectedTemplateInstance&&children]}),jsx(MetadataInstanceFormAiDisclaimer,{isLoading:isFetchingSuggestions,isBoundingBoxOrConfidenceScoreReviewEnabled,fields:formValues.metadata?.fields??[]}),jsx(MetadataInstanceFormFooter,{isDeleteButtonDisabled:isDeleteButtonDisabled||isManagedByCustomExtractAgent,isLoading:isFetchingSuggestions,isSaveButtonDisabled:isManagedByCustomExtractAgent,onCancel:()=>handleCancel(isFormDirty),onDelete:handleDelete})]})})};export{MetadataInstanceFormAccordionWrapper};
@@ -1 +1 @@
1
- import{t as MetadataInstanceFormCardWrapper}from"../../../../../../chunks/metadata-instance-form-card-wrapper.js";export{MetadataInstanceFormCardWrapper};
1
+ import{TEMPLATE_CUSTOM_PROPERTIES}from"../../../../constants.js";import{isCustomExtractAgentPolicy}from"../../../../utils/cascade-policy.js";import{isAutofillAllowedForInstance}from"../../../../utils/autofill-namespace.js";import{t as CascadePolicyEditor}from"../../../../../../chunks/cascade-policy-editor.js";import{CustomExtractAgentNotice}from"../custom-extract-agent-notice/custom-extract-agent-notice.js";import{t as MetadataInstanceFormAiDisclaimer}from"../../../../../../chunks/metadata-instance-form-ai-disclaimer.js";import{t as MetadataInstanceFormFooter}from"../../../../../../chunks/metadata-instance-form-footer.js";import{t as MetadataInstanceFormHeader}from"../../../../../../chunks/metadata-instance-form-header.js";import{t as metadata_instance_form_module_default}from"../../../../../../chunks/metadata-instance-form.module.js";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import clsx from"clsx";import{Card}from"@box/blueprint-web";var noopCascadeToggle=()=>void 0,noopCascadeModeChange=_mode=>void 0,MetadataInstanceFormCardWrapper=props=>{let{areAiSuggestionsAvailable,children,className,formRef,formValues,isAdvancedExtractAgentEnabled=!1,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,isConfidenceScoreReviewEnabled=!1,isBoundingBoxEnabled=!1,isLargeFile=!1,isDeleteButtonDisabled,onToggleReviewFilter,shouldShowOnlyReviewFields=!1,suggestions,isFetchingSuggestions,isFormDirty=!1,selectedTemplateInstance,getAiSuggestions,handleCancel,handleDelete,itemType=`file`,onManageExtractAgent,cascadeIsEnabled=!1,cascadeMode=`skip`,isConfiguringCascadeReplacement=!1,onCascadeToggle,onCascadeModeChange}=props,isCustomMetadata=selectedTemplateInstance?.templateKey===TEMPLATE_CUSTOM_PROPERTIES,hasSuggestions=!!suggestions[selectedTemplateInstance?.templateKey],isBoundingBoxOrConfidenceScoreReviewEnabled=isConfidenceScoreReviewEnabled||isBoundingBoxEnabled,isFolder=itemType===`folder`,cascadePolicy=selectedTemplateInstance?.cascadePolicy,isManagedByCustomExtractAgent=isFolder&&isCustomExtractAgentPolicy(cascadePolicy);return jsx(`div`,{className:isFetchingSuggestions&&metadata_instance_form_module_default.wrapperGradient,children:jsxs(Card,{ref:formRef,className:clsx(className,{[metadata_instance_form_module_default.suggestionsFetching]:isFetchingSuggestions}),children:[jsx(MetadataInstanceFormHeader,{areAiSuggestionsAvailable,hasSuggestions,isAdvancedExtractAgentEnabled,isAiSuggestionsFeatureEnabled:isAiSuggestionsFeatureEnabled&&!isFolder&&!isCustomMetadata&&!isManagedByCustomExtractAgent&&isAutofillAllowedForInstance(selectedTemplateInstance),isBetaLanguageEnabled,isConfidenceScoreReviewEnabled,isLargeFile,isLoading:isFetchingSuggestions,onAutofill:isManagedByCustomExtractAgent?void 0:getAiSuggestions,onToggleReviewFilter,shouldShowOnlyReviewFields,templateName:selectedTemplateInstance?.displayName}),isManagedByCustomExtractAgent?jsx(CustomExtractAgentNotice,{agentConfiguration:cascadePolicy?.agentConfiguration,onManageExtractAgent}):jsxs(Fragment,{children:[isFolder&&selectedTemplateInstance&&jsx(CascadePolicyEditor,{canEdit:cascadePolicy?.canEdit!==!1,cascadePolicy,isConfiguringReplacement:isConfiguringCascadeReplacement,isCustomMetadata,isEnabled:cascadeIsEnabled,mode:cascadeMode,onCascadeModeChange:onCascadeModeChange??noopCascadeModeChange,onCascadeToggle:onCascadeToggle??noopCascadeToggle}),selectedTemplateInstance&&children]}),jsx(MetadataInstanceFormAiDisclaimer,{isLoading:isFetchingSuggestions,isBoundingBoxOrConfidenceScoreReviewEnabled,fields:formValues.metadata?.fields??[]}),jsx(MetadataInstanceFormFooter,{isDeleteButtonDisabled:isDeleteButtonDisabled||isManagedByCustomExtractAgent,isLoading:isFetchingSuggestions,isSaveButtonDisabled:isManagedByCustomExtractAgent,onCancel:()=>handleCancel(isFormDirty),onDelete:handleDelete})]})})};export{MetadataInstanceFormCardWrapper};
@@ -1 +1 @@
1
- import{TEMPLATE_CUSTOM_PROPERTIES}from"../../../../constants.js";import{MetadataEmptyState}from"../../../metadata-empty-state/metadata-empty-state.js";import{useMetadataEditorAnalytics}from"../../../../utils/analytics/analytics-context.js";import{useAutofill}from"../../../../utils/autofill-context.js";import{isCascadePolicyEnabled,toCascadePolicySelection}from"../../../../utils/cascade-policy.js";import{TemplateInstance}from"../../../metadata-editor-fields/metadata-editor-fields.js";import{UnsavedChangesModal}from"../../../unsaved-changes-modal/unsaved-changes-modal.js";import{t as AutofillOverlay}from"../../../../../../chunks/autofill-overlay.js";import{t as CustomInstance}from"../../../../../../chunks/custom-instance.js";import{t as DeleteConfirmationModal}from"../../../../../../chunks/delete-confirmation-modal.js";import{t as createJSONPatch}from"../../../../../../chunks/utils2.js";import{n as metadata_instance_form_module_default,t as MetadataInstanceFormCardWrapper}from"../../../../../../chunks/metadata-instance-form-card-wrapper.js";import{useEffect,useMemo,useRef,useState}from"react";import{jsx,jsxs}from"react/jsx-runtime";import clsx from"clsx";import{Form,Formik}from"formik";import isEqual from"lodash/isEqual";var FormikObserver=({dirty,onChange,values})=>{let prevValuesRef=useRef(values);return dirty&&!isEqual(prevValuesRef.current.metadata.fields,values.metadata.fields)&&(prevValuesRef.current=values,onChange(values)),null},MetadataInstanceForm=props=>{let{itemType=`file`,areAiSuggestionsAvailable,customRef,isLargeFile,errorCode,isAiSuggestionsFeatureEnabled,isAdvancedExtractAgentEnabled=!1,isBetaLanguageEnabled,isDeleteButtonDisabled,isDeleteConfirmationModalCheckboxEnabled,isMultilevelTaxonomyFieldEnabled,isTaxonomyPickerEnabled,createTaxonomyItemsService,isUnsavedChangesModalOpen=!1,MetadataInstanceFormCustomWrapper,selectedTemplateInstance,onCancel,onCascadeModeChange,onCascadeToggle,onChange,onDelete,onDiscardUnsavedChanges,onSubmit,onToggleReviewFilter,setIsUnsavedChangesModalOpen,shouldShowOnlyReviewFields=!1,taxonomyOptionsFetcher,isConfidenceScoreReviewEnabled=!1,isBoundingBoxEnabled=!1,onSelectMetadataField,selectedMetadataFieldId,isUserFieldEnabled=!1,fetchUsers,fetchAvatarUrls,resolveUsersByEmail,onManageExtractAgent}=props,isBoundingBoxOrConfidenceScoreReviewEnabled=isBoundingBoxEnabled||isConfidenceScoreReviewEnabled,FormWrapper=MetadataInstanceFormCustomWrapper??MetadataInstanceFormCardWrapper,[isDeleteConfirmationModalOpen,setIsDeleteConfirmationModalOpen]=useState(!1),isCustomMetadata=selectedTemplateInstance?.templateKey===TEMPLATE_CUSTOM_PROPERTIES,canEditCascade=itemType===`folder`&&!isCustomMetadata&&selectedTemplateInstance?.cascadePolicy?.canEdit!==!1,cascadePolicyId=selectedTemplateInstance?.cascadePolicy?.id??null,instanceId=selectedTemplateInstance?.id??null,isAppliedCascadeEnabled=isCascadePolicyEnabled(selectedTemplateInstance?.cascadePolicy),[isCascadeEnabled,setIsCascadeEnabled]=useState(isAppliedCascadeEnabled),[cascadeMode,setCascadeMode]=useState(`skip`),[isConfiguringCascadeReplacement,setIsConfiguringCascadeReplacement]=useState(!1),{isFetchingSuggestions,isLongLoading,getAiSuggestions,clearState,suggestions}=useAutofill(),{trackEvent}=useMetadataEditorAnalytics();useEffect(()=>()=>{clearState()},[clearState,selectedTemplateInstance?.id]),useEffect(()=>{setIsCascadeEnabled(!!cascadePolicyId),setCascadeMode(`skip`),setIsConfiguringCascadeReplacement(!1)},[instanceId,cascadePolicyId]);let isApplyingCascade=canEditCascade&&isCascadeEnabled&&(!isAppliedCascadeEnabled||isConfiguringCascadeReplacement),isCascadeDirty=canEditCascade&&(isCascadeEnabled!==isAppliedCascadeEnabled||isConfiguringCascadeReplacement),cascadePolicySelection=canEditCascade?toCascadePolicySelection({cascadePolicy:selectedTemplateInstance?.cascadePolicy,isEnabled:isCascadeEnabled,overwrite:isApplyingCascade&&cascadeMode===`overwrite`}):void 0,resetCascadeSelection=()=>{setIsCascadeEnabled(isAppliedCascadeEnabled),setCascadeMode(`skip`),setIsConfiguringCascadeReplacement(!1)},handleCascadeToggle=isEnabled=>{let isReplacement=isAppliedCascadeEnabled&&isEnabled&&!isCascadeEnabled;setIsCascadeEnabled(isEnabled),setIsConfiguringCascadeReplacement(isReplacement),(!isEnabled||isReplacement)&&setCascadeMode(`skip`),onCascadeToggle?.(isEnabled)},handleCascadeModeChange=mode=>{setCascadeMode(mode),onCascadeModeChange?.(mode)},handleSubmit=async values=>{let operations=createJSONPatch(values,selectedTemplateInstance);if(cascadePolicySelection){await onSubmit(values,operations,cascadePolicySelection);return}await onSubmit(values,operations)},handleCancel=isFormDirty=>{isFormDirty?setIsUnsavedChangesModalOpen(!0):onCancel()},handleDiscardUnsavedChanges=()=>{resetCascadeSelection(),onDiscardUnsavedChanges?.()},handleDelete=()=>{setIsDeleteConfirmationModalOpen(!0)},initialValues={metadata:{...selectedTemplateInstance}},formRef=useRef(null),[portalElement,setPortalElement]=useState(null);useEffect(()=>{setPortalElement(customRef??formRef.current)},[customRef,selectedTemplateInstance?.templateKey,selectedTemplateInstance?.scope]);let content=useMemo(()=>{let isEmpty=selectedTemplateInstance?.fields.length===0;if(isCustomMetadata)return jsx(CustomInstance,{isLoading:isFetchingSuggestions});if(isEmpty)return jsx(MetadataEmptyState,{isBoxAiSuggestionsFeatureEnabled:isAiSuggestionsFeatureEnabled,level:`instance`});let showOverlay=!!(isFetchingSuggestions||errorCode);return jsxs(`div`,{className:clsx(metadata_instance_form_module_default.metadataInstanceFormContent,showOverlay&&metadata_instance_form_module_default.showOverlay,isBoundingBoxOrConfidenceScoreReviewEnabled&&metadata_instance_form_module_default.metadataInstanceFormContentReducedGap),children:[jsx(AutofillOverlay,{errorCode,isFetchingSuggestions,isLongLoading}),jsx(TemplateInstance,{disableForm:isFetchingSuggestions,isConfidenceScoreReviewEnabled,isBoundingBoxEnabled,isExternallyOwned:selectedTemplateInstance?.isExternallyOwned,isMultilevelTaxonomyFieldEnabled,isTaxonomyPickerEnabled,isUserFieldEnabled,createTaxonomyItemsService,onSelectMetadataField,selectedMetadataFieldId,portalElement:customRef??portalElement,shouldShowOnlyReviewFields,taxonomyOptionsFetcher,fetchAvatarUrls,fetchUsers,resolveUsersByEmail})]})},[selectedTemplateInstance?.fields.length,selectedTemplateInstance?.isExternallyOwned,isCustomMetadata,isFetchingSuggestions,isLongLoading,customRef,portalElement,taxonomyOptionsFetcher,isAiSuggestionsFeatureEnabled,isConfidenceScoreReviewEnabled,isBoundingBoxEnabled,isBoundingBoxOrConfidenceScoreReviewEnabled,isMultilevelTaxonomyFieldEnabled,isTaxonomyPickerEnabled,createTaxonomyItemsService,errorCode,shouldShowOnlyReviewFields,onSelectMetadataField,selectedMetadataFieldId,isUserFieldEnabled,fetchUsers,fetchAvatarUrls,resolveUsersByEmail]);return jsx(Formik,{initialValues,onSubmit:handleSubmit,children:({values,dirty})=>jsxs(Form,{children:[jsx(FormWrapper,{areAiSuggestionsAvailable,className:metadata_instance_form_module_default.metadataInstanceForm,formRef,formValues:values,cascadeIsEnabled:isCascadeEnabled,cascadeMode,getAiSuggestions,handleCancel,handleDelete,isAdvancedExtractAgentEnabled,isConfiguringCascadeReplacement,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,isConfidenceScoreReviewEnabled,isBoundingBoxEnabled,isDeleteButtonDisabled,isFetchingSuggestions,isFormDirty:dirty||isCascadeDirty,isLargeFile,itemType,onCascadeModeChange:handleCascadeModeChange,onCascadeToggle:handleCascadeToggle,onManageExtractAgent,onToggleReviewFilter,selectedTemplateInstance,shouldShowOnlyReviewFields,suggestions,children:selectedTemplateInstance&&content}),onChange&&jsx(FormikObserver,{dirty,onChange,values}),jsx(UnsavedChangesModal,{onBackToEdit:()=>setIsUnsavedChangesModalOpen(!1),onDiscardChanges:handleDiscardUnsavedChanges,open:isUnsavedChangesModalOpen,trackEvent}),jsx(DeleteConfirmationModal,{isCheckboxEnabled:isDeleteConfirmationModalCheckboxEnabled,itemType,onConfirm:()=>onDelete(selectedTemplateInstance),onDismiss:()=>setIsDeleteConfirmationModalOpen(!1),open:isDeleteConfirmationModalOpen,templateName:selectedTemplateInstance?.displayName})]})},`${selectedTemplateInstance?.scope}.${selectedTemplateInstance?.templateKey}`)};export{MetadataInstanceForm};
1
+ import{TEMPLATE_CUSTOM_PROPERTIES}from"../../../../constants.js";import{MetadataEmptyState}from"../../../metadata-empty-state/metadata-empty-state.js";import{useMetadataEditorAnalytics}from"../../../../utils/analytics/analytics-context.js";import{useAutofill}from"../../../../utils/autofill-context.js";import{isCascadePolicyEnabled,toCascadePolicySelection}from"../../../../utils/cascade-policy.js";import{TemplateInstance}from"../../../metadata-editor-fields/metadata-editor-fields.js";import{UnsavedChangesModal}from"../../../unsaved-changes-modal/unsaved-changes-modal.js";import{t as AutofillOverlay}from"../../../../../../chunks/autofill-overlay.js";import{t as CustomInstance}from"../../../../../../chunks/custom-instance.js";import{t as DeleteConfirmationModal}from"../../../../../../chunks/delete-confirmation-modal.js";import{t as createJSONPatch}from"../../../../../../chunks/utils2.js";import{t as metadata_instance_form_module_default}from"../../../../../../chunks/metadata-instance-form.module.js";import{MetadataInstanceFormAccordionWrapper}from"./metadata-instance-form-accordion-wrapper.js";import{MetadataInstanceFormCardWrapper}from"./metadata-instance-form-card-wrapper.js";import{useEffect,useMemo,useRef,useState}from"react";import{jsx,jsxs}from"react/jsx-runtime";import clsx from"clsx";import{Accordion}from"@box/blueprint-web";import{Form,Formik}from"formik";import isEqual from"lodash/isEqual";var FormikObserver=({dirty,onChange,values})=>{let prevValuesRef=useRef(values);return dirty&&!isEqual(prevValuesRef.current.metadata.fields,values.metadata.fields)&&(prevValuesRef.current=values,onChange(values)),null},MetadataInstanceForm=props=>{let{itemType=`file`,areAiSuggestionsAvailable,customRef,isLargeFile,errorCode,isAiSuggestionsFeatureEnabled,isAdvancedExtractAgentEnabled=!1,isBetaLanguageEnabled,isDeleteButtonDisabled,isDeleteConfirmationModalCheckboxEnabled,isMultilevelTaxonomyFieldEnabled,isTaxonomyPickerEnabled,createTaxonomyItemsService,isUnsavedChangesModalOpen=!1,MetadataInstanceFormCustomWrapper,useAccordionLayout=!1,selectedTemplateInstance,onCancel,onCascadeModeChange,onCascadeToggle,onChange,onDelete,onDiscardUnsavedChanges,onSubmit,onToggleReviewFilter,setIsUnsavedChangesModalOpen,shouldShowOnlyReviewFields=!1,taxonomyOptionsFetcher,isConfidenceScoreReviewEnabled=!1,isBoundingBoxEnabled=!1,onSelectMetadataField,selectedMetadataFieldId,isUserFieldEnabled=!1,fetchUsers,fetchAvatarUrls,resolveUsersByEmail,onManageExtractAgent}=props,isBoundingBoxOrConfidenceScoreReviewEnabled=isBoundingBoxEnabled||isConfidenceScoreReviewEnabled,FormWrapper=MetadataInstanceFormCustomWrapper??(useAccordionLayout?MetadataInstanceFormAccordionWrapper:MetadataInstanceFormCardWrapper),providesAccordionRoot=useAccordionLayout&&!MetadataInstanceFormCustomWrapper,[isDeleteConfirmationModalOpen,setIsDeleteConfirmationModalOpen]=useState(!1),isCustomMetadata=selectedTemplateInstance?.templateKey===TEMPLATE_CUSTOM_PROPERTIES,canEditCascade=itemType===`folder`&&!isCustomMetadata&&selectedTemplateInstance?.cascadePolicy?.canEdit!==!1,cascadePolicyId=selectedTemplateInstance?.cascadePolicy?.id??null,instanceId=selectedTemplateInstance?.id??null,isAppliedCascadeEnabled=isCascadePolicyEnabled(selectedTemplateInstance?.cascadePolicy),[isCascadeEnabled,setIsCascadeEnabled]=useState(isAppliedCascadeEnabled),[cascadeMode,setCascadeMode]=useState(`skip`),[isConfiguringCascadeReplacement,setIsConfiguringCascadeReplacement]=useState(!1),{isFetchingSuggestions,isLongLoading,getAiSuggestions,clearState,suggestions}=useAutofill(),{trackEvent}=useMetadataEditorAnalytics();useEffect(()=>()=>{clearState()},[clearState,selectedTemplateInstance?.id]),useEffect(()=>{setIsCascadeEnabled(!!cascadePolicyId),setCascadeMode(`skip`),setIsConfiguringCascadeReplacement(!1)},[instanceId,cascadePolicyId]);let isApplyingCascade=canEditCascade&&isCascadeEnabled&&(!isAppliedCascadeEnabled||isConfiguringCascadeReplacement),isCascadeDirty=canEditCascade&&(isCascadeEnabled!==isAppliedCascadeEnabled||isConfiguringCascadeReplacement),cascadePolicySelection=canEditCascade?toCascadePolicySelection({cascadePolicy:selectedTemplateInstance?.cascadePolicy,isEnabled:isCascadeEnabled,overwrite:isApplyingCascade&&cascadeMode===`overwrite`}):void 0,resetCascadeSelection=()=>{setIsCascadeEnabled(isAppliedCascadeEnabled),setCascadeMode(`skip`),setIsConfiguringCascadeReplacement(!1)},handleCascadeToggle=isEnabled=>{let isReplacement=isAppliedCascadeEnabled&&isEnabled&&!isCascadeEnabled;setIsCascadeEnabled(isEnabled),setIsConfiguringCascadeReplacement(isReplacement),(!isEnabled||isReplacement)&&setCascadeMode(`skip`),onCascadeToggle?.(isEnabled)},handleCascadeModeChange=mode=>{setCascadeMode(mode),onCascadeModeChange?.(mode)},handleSubmit=async values=>{let operations=createJSONPatch(values,selectedTemplateInstance);if(cascadePolicySelection){await onSubmit(values,operations,cascadePolicySelection);return}await onSubmit(values,operations)},handleCancel=isFormDirty=>{isFormDirty?setIsUnsavedChangesModalOpen(!0):onCancel()},handleDiscardUnsavedChanges=()=>{resetCascadeSelection(),onDiscardUnsavedChanges?.()},handleDelete=()=>{setIsDeleteConfirmationModalOpen(!0)},initialValues={metadata:{...selectedTemplateInstance}},formRef=useRef(null),[portalElement,setPortalElement]=useState(null);useEffect(()=>{setPortalElement(customRef??formRef.current)},[customRef,selectedTemplateInstance?.templateKey,selectedTemplateInstance?.scope]);let content=useMemo(()=>{let isEmpty=selectedTemplateInstance?.fields.length===0;if(isCustomMetadata)return jsx(CustomInstance,{isLoading:isFetchingSuggestions});if(isEmpty)return jsx(MetadataEmptyState,{isBoxAiSuggestionsFeatureEnabled:isAiSuggestionsFeatureEnabled,level:`instance`});let showOverlay=!!(isFetchingSuggestions||errorCode),areFieldsDisabled=isFetchingSuggestions;return jsxs(`div`,{className:clsx(metadata_instance_form_module_default.metadataInstanceFormContent,showOverlay&&metadata_instance_form_module_default.showOverlay,isBoundingBoxOrConfidenceScoreReviewEnabled&&metadata_instance_form_module_default.metadataInstanceFormContentReducedGap),children:[jsx(AutofillOverlay,{errorCode,isFetchingSuggestions,isLongLoading}),jsx(`fieldset`,{className:metadata_instance_form_module_default.fields,disabled:areFieldsDisabled,children:jsx(TemplateInstance,{disableForm:areFieldsDisabled,isConfidenceScoreReviewEnabled,isBoundingBoxEnabled,isExternallyOwned:selectedTemplateInstance?.isExternallyOwned,isMultilevelTaxonomyFieldEnabled,isTaxonomyPickerEnabled,isUserFieldEnabled,createTaxonomyItemsService,onSelectMetadataField,selectedMetadataFieldId,portalElement:customRef??portalElement,shouldShowOnlyReviewFields,taxonomyOptionsFetcher,fetchAvatarUrls,fetchUsers,resolveUsersByEmail})})]})},[selectedTemplateInstance?.fields.length,selectedTemplateInstance?.isExternallyOwned,isCustomMetadata,isFetchingSuggestions,isLongLoading,customRef,portalElement,taxonomyOptionsFetcher,isAiSuggestionsFeatureEnabled,isConfidenceScoreReviewEnabled,isBoundingBoxEnabled,isBoundingBoxOrConfidenceScoreReviewEnabled,isMultilevelTaxonomyFieldEnabled,isTaxonomyPickerEnabled,createTaxonomyItemsService,errorCode,shouldShowOnlyReviewFields,onSelectMetadataField,selectedMetadataFieldId,isUserFieldEnabled,fetchUsers,fetchAvatarUrls,resolveUsersByEmail]),accordionItemValue=selectedTemplateInstance?.id??`form-instance`,[accordionValue,setAccordionValue]=useState(accordionItemValue);useEffect(()=>{setAccordionValue(accordionItemValue)},[accordionItemValue]),useEffect(()=>{isFetchingSuggestions&&setAccordionValue(accordionItemValue)},[accordionItemValue,isFetchingSuggestions]);let handleAccordionValueChange=nextValue=>{isFetchingSuggestions||setAccordionValue(nextValue)},form=jsx(Formik,{initialValues,onSubmit:handleSubmit,children:({values,dirty})=>jsxs(Form,{children:[jsx(FormWrapper,{areAiSuggestionsAvailable,className:metadata_instance_form_module_default.metadataInstanceForm,formRef,formValues:values,cascadeIsEnabled:isCascadeEnabled,cascadeMode,isConfiguringCascadeReplacement,getAiSuggestions,handleCancel,handleDelete,isAdvancedExtractAgentEnabled,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,isConfidenceScoreReviewEnabled,isBoundingBoxEnabled,isDeleteButtonDisabled,isFetchingSuggestions,isFormDirty:dirty||isCascadeDirty,isLargeFile,itemType,onCascadeModeChange:handleCascadeModeChange,onCascadeToggle:handleCascadeToggle,onManageExtractAgent,onToggleReviewFilter,selectedTemplateInstance,shouldShowOnlyReviewFields,suggestions,children:selectedTemplateInstance&&content}),onChange&&jsx(FormikObserver,{dirty,onChange,values}),jsx(UnsavedChangesModal,{onBackToEdit:()=>setIsUnsavedChangesModalOpen(!1),onDiscardChanges:handleDiscardUnsavedChanges,open:isUnsavedChangesModalOpen,trackEvent}),jsx(DeleteConfirmationModal,{isCheckboxEnabled:isDeleteConfirmationModalCheckboxEnabled,itemType,onConfirm:()=>onDelete(selectedTemplateInstance),onDismiss:()=>setIsDeleteConfirmationModalOpen(!1),open:isDeleteConfirmationModalOpen,templateName:selectedTemplateInstance?.displayName})]})},`${selectedTemplateInstance?.scope}.${selectedTemplateInstance?.templateKey}`);return providesAccordionRoot?jsx(`div`,{className:metadata_instance_form_module_default.accordionRoot,children:jsx(Accordion,{collapsible:!isFetchingSuggestions,onValueChange:handleAccordionValueChange,type:`single`,value:isFetchingSuggestions?accordionItemValue:accordionValue,children:form})}):form};export{MetadataInstanceForm};
@@ -1 +1 @@
1
- import{defineMessages}from"react-intl";var messages=defineMessages({customInstanceTitle:{id:`metadataEditor.metadataInstanceEditor.metadataInstanceFormHeader.customInstanceTitle`,defaultMessage:`Custom Metadata`}});export{messages as default};
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({customInstanceTitle:{id:`metadataEditor.metadataInstanceEditor.metadataInstanceFormHeader.customInstanceTitle`,defaultMessage:`Custom Metadata`},editingIndicator:{id:`metadataEditor.metadataInstanceEditor.metadataInstanceFormHeader.editingIndicator`,defaultMessage:`Editing`}});export{messages as default};
@@ -1 +1 @@
1
- import{t as MetadataInstanceFormHeader}from"../../../../../../chunks/metadata-instance-form-header.js";export{MetadataInstanceFormHeader};
1
+ import{n as MetadataInstanceFormNotices,t as MetadataInstanceFormHeader}from"../../../../../../chunks/metadata-instance-form-header.js";export{MetadataInstanceFormHeader,MetadataInstanceFormNotices};
@@ -1 +1 @@
1
- import{defineMessages}from"react-intl";var messages=defineMessages({customInstanceTitle:{id:`metadataEditor.viewInstance.metadataInstanceHeader.customMetadataTitle`,defaultMessage:`Custom Metadata`},editButtonTooltip:{id:`metadataEditor.viewInstance.metadataInstanceHeader.editButtonTooltip`,defaultMessage:`Edit`},editButtonAriaLabel:{id:`metadataEditor.viewInstance.metadataInstanceHeader.editButtonAriaLabel`,defaultMessage:`Edit {templateName}`}});export{messages as default};
1
+ import{defineMessages}from"react-intl";var messages=defineMessages({customInstanceTitle:{id:`metadataEditor.viewInstance.metadataInstanceHeader.customMetadataTitle`,defaultMessage:`Custom Metadata`},editButtonTooltip:{id:`metadataEditor.viewInstance.metadataInstanceHeader.editButtonTooltip`,defaultMessage:`Edit`},editButtonAriaLabel:{id:`metadataEditor.viewInstance.metadataInstanceHeader.editButtonAriaLabel`,defaultMessage:`Edit {templateName}`},disabledEditButtonTooltip:{id:`metadataEditor.viewInstance.metadataInstanceHeader.disabledEditButtonTooltip`,defaultMessage:`Managed by extract agent`}});export{messages as default};
@@ -0,0 +1 @@
1
+ var GLOBAL_SCOPE=`global`,CASCADED_BADGE_ICON_COLOR=`var(--bp-purple-rain-120, #7f32be)`,DEFAULT_BADGE_ICON_COLOR=`var(--bp-box-blue-100, #0061d5)`,getNamespaceSubtitle=(scope,namespace)=>{let source=namespace||scope;if(!source||source===`global`)return;let childMatch=source.match(/^enterprise_[^.]+\.(.*)/);if(childMatch)return childMatch[1]};export{CASCADED_BADGE_ICON_COLOR,DEFAULT_BADGE_ICON_COLOR,GLOBAL_SCOPE,getNamespaceSubtitle};
@@ -6,6 +6,7 @@ export default {
6
6
  "groupSharedFeatures.metadataEditor.metadataInstanceReviewNotice.reviewFieldsNoticeHeader": "{count,plural,one{# field needs} other{# fields need}} review",
7
7
  "groupSharedFeatures.metadataEditor.metadataInstanceReviewNotice.viewButtonTooltip": "{count,plural,one{# field needs} other{# fields need}} review as Box AI returned low confidence. Click to start reviewing.",
8
8
  "metadataEditor.editInstance.deleteConfirmationModal.body.checkboxLabel": "Select the checkbox to confirm deletion",
9
+ "metadataEditor.editInstance.deleteConfirmationModal.body.firstParagraph.folder": "Are you sure you want to delete the \"{templateName}\" Metadata template, and all of its values from this folder?",
9
10
  "metadataEditor.editInstance.deleteConfirmationModal.body.inputFieldLabel": "Type the Metadata Template's name to confirm deletion",
10
11
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.body": "Use the Power of Box AI to quickly capture document metadata, with ever-increasing accuracy.",
11
12
  "metadataEditor.metadataInstanceEditor.autofillOverlay.missingPermissionsErrorDescription": "You don't have permission to access the destination folder to extract metadata. Please contact the owner or your admin.",
@@ -6,6 +6,7 @@ export default {
6
6
  "groupSharedFeatures.metadataEditor.metadataInstanceReviewNotice.reviewFieldsNoticeHeader": "{count,plural,one{# field needs} other{# fields need}} review",
7
7
  "groupSharedFeatures.metadataEditor.metadataInstanceReviewNotice.viewButtonTooltip": "{count,plural,one{# field needs} other{# fields need}} review as Box AI returned low confidence. Click to start reviewing.",
8
8
  "metadataEditor.editInstance.deleteConfirmationModal.body.checkboxLabel": "Select the checkbox to confirm deletion",
9
+ "metadataEditor.editInstance.deleteConfirmationModal.body.firstParagraph.folder": "Are you sure you want to delete the \"{templateName}\" Metadata template, and all of its values from this folder?",
9
10
  "metadataEditor.editInstance.deleteConfirmationModal.body.inputFieldLabel": "Type the Metadata Template's name to confirm deletion",
10
11
  "metadataEditor.fileLevel.emptyState.boxAiEnabled.body": "Use the Power of Box AI to quickly capture document metadata, with ever-increasing accuracy.",
11
12
  "metadataEditor.metadataInstanceEditor.autofillOverlay.missingPermissionsErrorDescription": "You don't have permission to access the destination folder to extract metadata. Please contact the owner or your admin.",
@@ -0,0 +1 @@
1
+ ._accordionBadgeFrame_16f57_1{width:var(--bp-size-080,2rem);height:var(--bp-size-080,2rem);border-radius:var(--bp-radius-10,1.25rem);background-color:var(--bp-box-blue-10,#e5effa);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}._accordionBadgeFrame_16f57_1 svg{width:var(--bp-size-050,1.25rem);height:var(--bp-size-050,1.25rem)}._accordionBadgeFrameCascaded_16f57_16{background-color:var(--bp-purple-rain-10,#f5ebfd)}._accordionEditingIndicator_16f57_20{align-items:center;gap:var(--bp-space-010,.25rem);-webkit-user-select:none;user-select:none;display:inline-flex}._accordionEditingIndicator_16f57_20 svg{width:.75rem;height:.75rem}._accordionRoot_16f57_31>:first-child{padding:0}._metadataInstanceForm_16f57_35{gap:var(--space-3);flex-direction:column;display:flex}._wrapperGradient_16f57_41{border-radius:var(--bp-radius-10);background:linear-gradient(135deg,#fe03dc 0%,#2784fa 100%)}._suggestionsFetching_16f57_46{background:var(--box-blue-02);border:var(--border-1) solid transparent;background-clip:padding-box}._metadataInstanceFormContent_16f57_52{gap:var(--space-3);flex-direction:column;display:flex;position:relative}._fields_16f57_59{gap:inherit;border:0;flex-direction:column;min-inline-size:0;margin:0;padding:0;display:flex}._metadataInstanceFormContentReducedGap_16f57_69{gap:.375rem}._showOverlay_16f57_73{min-height:172px}
@@ -1 +1 @@
1
- ._metadataInstanceList_bd83w_1{gap:var(--space-2);flex-direction:column;display:flex}
1
+ ._metadataInstanceList_wuo4z_1{gap:var(--space-2);flex-direction:column;display:flex}._accordionList_wuo4z_7>:first-child{gap:var(--space-2);padding:0}
@@ -1 +1 @@
1
- ._topDivider_1x96u_1,._reviewNotice_1x96u_5,._cascadeNotice_1x96u_9{margin-block-end:var(--bp-space-040)}._bottomDivider_1x96u_13{margin-block-start:var(--bp-space-040)}
1
+ ._accordionBadgeFrame_3o3z7_1{width:var(--bp-size-080,2rem);height:var(--bp-size-080,2rem);border-radius:var(--bp-radius-10,1.25rem);background-color:var(--bp-box-blue-10,#e5effa);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}._accordionBadgeFrame_3o3z7_1 svg{width:var(--bp-size-050,1.25rem);height:var(--bp-size-050,1.25rem)}._accordionBadgeFrameCascaded_3o3z7_16{background-color:var(--bp-purple-rain-10,#f5ebfd)}._accordionPencilWrapper_3o3z7_20{align-items:center;gap:var(--space-1);opacity:0;pointer-events:none;transition:opacity .1s;display:inline-flex}._accordionItemWrapper_3o3z7_29 ._accordionPencilWrapper_3o3z7_20[data-open=true],._accordionItemWrapper_3o3z7_29:hover ._accordionPencilWrapper_3o3z7_20,._accordionItemWrapper_3o3z7_29:focus-within ._accordionPencilWrapper_3o3z7_20{opacity:1;pointer-events:auto}._topDivider_3o3z7_34,._reviewNotice_3o3z7_38{margin-block-end:var(--bp-space-040)}._noticesWrapper_3o3z7_42{gap:var(--bp-space-020);flex-direction:column;margin-block-end:var(--bp-space-040);display:flex}._bottomDivider_3o3z7_49{margin-block-start:var(--bp-space-040)}
@@ -11,4 +11,5 @@ export * from './subcomponents/custom-instance-new-field/custom-instance-new-fie
11
11
  export * from './subcomponents/delete-confirmation-modal/delete-confirmation-modal';
12
12
  export * from './subcomponents/metadata-instance-form-autofill-button/metadata-instance-form-autofill-button';
13
13
  export * from './subcomponents/metadata-instance-form-header/metadata-instance-form-header';
14
+ export * from './subcomponents/metadata-instance-form/metadata-instance-form-accordion-wrapper';
14
15
  export * from './subcomponents/metadata-instance-form/types';
@@ -0,0 +1,9 @@
1
+ import { MetadataInstanceFormWrapperProps } from './types';
2
+ /**
3
+ * Edit-mode accordion item for a single metadata instance.
4
+ *
5
+ * `MetadataInstanceForm` renders this, and the surrounding `Accordion` root, when
6
+ * `useAccordionLayout` is set. Pass it as `MetadataInstanceFormCustomWrapper` only when the
7
+ * host supplies that root itself, for example to share it with read-mode items.
8
+ */
9
+ export declare const MetadataInstanceFormAccordionWrapper: (props: MetadataInstanceFormWrapperProps<null>) => import("react/jsx-runtime").JSX.Element;
@@ -50,6 +50,12 @@ export type MetadataInstanceFormProps = {
50
50
  shouldShowOnlyReviewFields?: boolean;
51
51
  taxonomyOptionsFetcher: TaxonomyOptionsFetcher;
52
52
  customRef?: HTMLDivElement | null;
53
+ /**
54
+ * When `true`, the form renders as a Blueprint `Accordion` item and supplies the `Accordion` root.
55
+ * Defaults to `false` (card). A `MetadataInstanceFormCustomWrapper` replaces this layout; that
56
+ * wrapper still needs its own `Accordion` root.
57
+ */
58
+ useAccordionLayout?: boolean;
53
59
  MetadataInstanceFormCustomWrapper?: React.ComponentType<MetadataInstanceFormWrapperProps<null>>;
54
60
  isAdvancedExtractAgentEnabled?: boolean;
55
61
  isConfidenceScoreReviewEnabled?: boolean;
@@ -1,2 +1,2 @@
1
1
  import { MetadataInstanceFormAutofillButtonProps } from './types';
2
- export declare const MetadataInstanceFormAutofillButton: ({ areAiSuggestionsAvailable, isBetaLanguageEnabled, isLoading, variant, isAdvancedExtractAgentEnabled, onAutofill, }: MetadataInstanceFormAutofillButtonProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const MetadataInstanceFormAutofillButton: ({ areAiSuggestionsAvailable, isBetaLanguageEnabled, isLoading, variant, size, isAdvancedExtractAgentEnabled, onAutofill, }: MetadataInstanceFormAutofillButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -6,6 +6,11 @@ export type MetadataInstanceFormAutofillButtonProps = {
6
6
  isAdvancedExtractAgentEnabled?: boolean;
7
7
  onAutofill?: (templateKey: MetadataTemplateInstance['templateKey'], scope: MetadataTemplateInstance['scope'], agentId?: string) => Promise<MetadataTemplateField[]>;
8
8
  variant?: 'secondary-button' | 'icon-button';
9
+ /**
10
+ * Compact sizes are for the accordion header, where the collapse icon shares the row.
11
+ * Omitted keeps the card header's default size.
12
+ */
13
+ size?: 'x-small' | 'small' | 'large';
9
14
  };
10
15
  export type AutofillSplitButtonProps = {
11
16
  onAgentChange: (agentType: StoredAgentType) => void;
@@ -13,4 +18,5 @@ export type AutofillSplitButtonProps = {
13
18
  onAutofill: (agentType?: string) => void;
14
19
  storedAgent: StoredAgentType;
15
20
  icon: React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
21
+ size?: 'small' | 'large';
16
22
  };
@@ -4,5 +4,10 @@ declare const messages: {
4
4
  description: string;
5
5
  id: string;
6
6
  };
7
+ editingIndicator: {
8
+ defaultMessage: string;
9
+ description: string;
10
+ id: string;
11
+ };
7
12
  };
8
13
  export default messages;
@@ -1,2 +1,6 @@
1
1
  import { MetadataInstanceFormHeaderProps } from './types';
2
2
  export declare const MetadataInstanceFormHeader: ({ areAiSuggestionsAvailable, hasSuggestions, isAdvancedExtractAgentEnabled, isAiSuggestionsFeatureEnabled, isBetaLanguageEnabled, isConfidenceScoreReviewEnabled, isLargeFile, isLoading, onToggleReviewFilter, shouldShowOnlyReviewFields, templateName, onAutofill, }: MetadataInstanceFormHeaderProps) => import("react/jsx-runtime").JSX.Element;
3
+ type MetadataInstanceFormNoticesProps = Pick<MetadataInstanceFormHeaderProps, 'areAiSuggestionsAvailable' | 'hasSuggestions' | 'isBetaLanguageEnabled' | 'isConfidenceScoreReviewEnabled' | 'isLargeFile' | 'isLoading' | 'onToggleReviewFilter' | 'shouldShowOnlyReviewFields'>;
4
+ /** Suggestion and review notices shared by the card header and the accordion editor. */
5
+ export declare const MetadataInstanceFormNotices: ({ areAiSuggestionsAvailable, hasSuggestions, isBetaLanguageEnabled, isConfidenceScoreReviewEnabled, isLargeFile, isLoading, onToggleReviewFilter, shouldShowOnlyReviewFields, }: MetadataInstanceFormNoticesProps) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -1,2 +1,2 @@
1
1
  import { MetadataInstanceListProps } from './types';
2
- export declare const MetadataInstanceList: ({ itemType, areAiSuggestionsAvailable, isAiSuggestionsFeatureEnabled, isBetaLanguageEnabled, onEdit, onSelectMetadataField, selectedMetadataFieldId, templateInstances, taxonomyNodeFetcher, isAdvancedExtractAgentEnabled, isConfidenceScoreReviewEnabled, isBoundingBoxEnabled, }: MetadataInstanceListProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const MetadataInstanceList: ({ itemType, areAiSuggestionsAvailable, isAiSuggestionsFeatureEnabled, isBetaLanguageEnabled, onEdit, onSelectMetadataField, selectedMetadataFieldId, templateInstances, taxonomyNodeFetcher, isAdvancedExtractAgentEnabled, isConfidenceScoreReviewEnabled, isBoundingBoxEnabled, useAccordionLayout, expandAccordionItemsByDefault, onManageExtractAgent, }: MetadataInstanceListProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { MetadataInstanceProps } from './types';
2
- export declare const MetadataInstance: ({ itemType, areAiSuggestionsAvailable, isAiSuggestionsFeatureEnabled, isBetaLanguageEnabled, onEdit, onSelectMetadataField, selectedMetadataFieldId, templateInstance, taxonomyNodeFetcher, isAdvancedExtractAgentEnabled, isConfidenceScoreReviewEnabled, isBoundingBoxEnabled, }: MetadataInstanceProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const MetadataInstance: ({ itemType, areAiSuggestionsAvailable, isAiSuggestionsFeatureEnabled, isBetaLanguageEnabled, onEdit, onSelectMetadataField, selectedMetadataFieldId, templateInstance, taxonomyNodeFetcher, isAdvancedExtractAgentEnabled, isConfidenceScoreReviewEnabled, isBoundingBoxEnabled, useAccordionLayout, isOpen, onManageExtractAgent, }: MetadataInstanceProps) => import("react/jsx-runtime").JSX.Element;
@@ -17,4 +17,21 @@ export type MetadataInstanceProps = {
17
17
  isAdvancedExtractAgentEnabled?: boolean;
18
18
  isConfidenceScoreReviewEnabled?: boolean;
19
19
  isBoundingBoxEnabled?: boolean;
20
+ /**
21
+ * When `true`, renders each instance as a Blueprint `Accordion.Item` instead of a `Card`.
22
+ * The parent `MetadataInstanceList` must provide the `Accordion` root when this is on.
23
+ * Defaults to `false` (Card layout).
24
+ */
25
+ useAccordionLayout?: boolean;
26
+ /**
27
+ * Accordion layout only. Whether this accordion item is currently expanded.
28
+ * Passed from the controlled accordion state in `MetadataInstanceList` so the pencil
29
+ * button can be shown persistently without relying on ancestor CSS selectors.
30
+ */
31
+ isOpen?: boolean;
32
+ /**
33
+ * Folder-only. Navigates to the custom Box AI extract agent that manages the instance's
34
+ * cascade policy. Shown on the extract-agent notice when the agent id can be resolved.
35
+ */
36
+ onManageExtractAgent?: (agentId: string) => void;
20
37
  };
@@ -14,5 +14,10 @@ declare const messages: {
14
14
  description: string;
15
15
  id: string;
16
16
  };
17
+ disabledEditButtonTooltip: {
18
+ defaultMessage: string;
19
+ description: string;
20
+ id: string;
21
+ };
17
22
  };
18
23
  export default messages;
@@ -14,4 +14,20 @@ export type MetadataInstanceListProps = {
14
14
  selectedMetadataFieldId?: string | null;
15
15
  templateInstances: MetadataTemplateInstance[];
16
16
  taxonomyNodeFetcher: TaxonomyNodeFetcher;
17
+ /**
18
+ * When `true`, instances are displayed as Blueprint `Accordion` items instead of `Card`s.
19
+ * Multiple instances can be expanded simultaneously. Defaults to `false`.
20
+ */
21
+ useAccordionLayout?: boolean;
22
+ /**
23
+ * Accordion layout only. When `true`, every visible instance starts expanded,
24
+ * including instances that arrive after the list mounts. An item the user
25
+ * collapses stays collapsed.
26
+ */
27
+ expandAccordionItemsByDefault?: boolean;
28
+ /**
29
+ * Folder-only. Navigates to the custom Box AI extract agent that manages the instance's
30
+ * cascade policy. Shown on the extract-agent notice when the agent id can be resolved.
31
+ */
32
+ onManageExtractAgent?: (agentId: string) => void;
17
33
  };
@@ -0,0 +1,17 @@
1
+ /** The Box global scope that represents the root (built-in) namespace. */
2
+ export declare const GLOBAL_SCOPE = "global";
3
+ /** Icon color for a cascaded or AI-extract metadata badge. Shared by read and edit mode. */
4
+ export declare const CASCADED_BADGE_ICON_COLOR = "var(--bp-purple-rain-120, #7f32be)";
5
+ /** Icon color for a folder metadata badge that is not being cascaded. */
6
+ export declare const DEFAULT_BADGE_ICON_COLOR = "var(--bp-box-blue-100, #0061d5)";
7
+ /**
8
+ * Derives the accordion subtitle from a template's namespace, falling back to scope.
9
+ *
10
+ * `namespace` is the full FQN. `scope` may be only the enterprise root
11
+ * (`enterprise_123` while namespace is `enterprise_123.legal`), or it may be
12
+ * absent for custom properties and FINAL templates.
13
+ *
14
+ * - missing, `global`, or an enterprise root → no subtitle.
15
+ * - `enterprise_{id}.child.path` → `child.path`, so the enterprise prefix is not shown.
16
+ */
17
+ export declare const getNamespaceSubtitle: (scope?: string | null, namespace?: string | null) => string | undefined;
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@box/metadata-editor",
3
- "version": "2.11.33",
3
+ "version": "2.11.35",
4
4
  "peerDependencies": {
5
5
  "@ariakit/react": "0.4.21",
6
- "@box/blueprint-web": "^18.10.3",
7
- "@box/blueprint-web-assets": "^5.15.0",
8
- "@box/box-ai-agent-selector": "^2.3.41",
9
- "@box/combobox-with-api": "^2.3.39",
10
- "@box/metadata-taxonomy-picker": "^3.5.0",
11
- "@box/metadata-template-browser": "^3.1.5",
12
- "@box/user-selector": "^3.1.39",
6
+ "@box/blueprint-web": "^18.11.0",
7
+ "@box/blueprint-web-assets": "^5.15.1",
8
+ "@box/box-ai-agent-selector": "^2.3.42",
9
+ "@box/combobox-with-api": "^2.3.40",
10
+ "@box/metadata-taxonomy-picker": "^3.5.1",
11
+ "@box/metadata-template-browser": "^3.1.7",
12
+ "@box/user-selector": "^3.1.40",
13
13
  "formik": "^2.0.3",
14
14
  "lodash": "^4.17.15",
15
15
  "react": "^17.0.0 || ^18.0.0",
@@ -19,12 +19,12 @@
19
19
  "devDependencies": {
20
20
  "@ariakit/react": "0.4.21",
21
21
  "@box/babel-plugin-target-attributes": "2.2.35",
22
- "@box/blueprint-web": "^18.10.3",
23
- "@box/blueprint-web-assets": "^5.15.0",
24
- "@box/box-ai-agent-selector": "^2.3.41",
25
- "@box/metadata-taxonomy-picker": "^3.5.0",
26
- "@box/storybook-utils": "^1.4.34",
27
- "@box/user-selector": "^3.1.39",
22
+ "@box/blueprint-web": "^18.11.0",
23
+ "@box/blueprint-web-assets": "^5.15.1",
24
+ "@box/box-ai-agent-selector": "^2.3.42",
25
+ "@box/metadata-taxonomy-picker": "^3.5.1",
26
+ "@box/storybook-utils": "^1.4.35",
27
+ "@box/user-selector": "^3.1.40",
28
28
  "@testing-library/react": "^15.0.6",
29
29
  "react": "^18.3.0",
30
30
  "react-dom": "^18.3.0",
@@ -1 +0,0 @@
1
- import{TEMPLATE_CUSTOM_PROPERTIES}from"../esm/lib/constants.js";import{isCustomExtractAgentPolicy}from"../esm/lib/utils/cascade-policy.js";import{isAutofillAllowedForInstance}from"../esm/lib/utils/autofill-namespace.js";import{t as CascadePolicyEditor}from"./cascade-policy-editor.js";import{CustomExtractAgentNotice}from"../esm/lib/components/metadata-instance-editor/subcomponents/custom-extract-agent-notice/custom-extract-agent-notice.js";import{t as MetadataInstanceFormAiDisclaimer}from"./metadata-instance-form-ai-disclaimer.js";import{t as MetadataInstanceFormFooter}from"./metadata-instance-form-footer.js";import{t as MetadataInstanceFormHeader}from"./metadata-instance-form-header.js";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import clsx from"clsx";import{Card}from"@box/blueprint-web";import '../styles/metadata-instance-form-card-wrapper.css';var metadata_instance_form_module_default={metadataInstanceForm:`_metadataInstanceForm_10ifw_1`,wrapperGradient:`_wrapperGradient_10ifw_7`,suggestionsFetching:`_suggestionsFetching_10ifw_12`,metadataInstanceFormContent:`_metadataInstanceFormContent_10ifw_18`,metadataInstanceFormContentReducedGap:`_metadataInstanceFormContentReducedGap_10ifw_25`,showOverlay:`_showOverlay_10ifw_29`},noopCascadeToggle=()=>void 0,noopCascadeModeChange=_mode=>void 0,MetadataInstanceFormCardWrapper=props=>{let{areAiSuggestionsAvailable,children,className,formRef,formValues,isAdvancedExtractAgentEnabled=!1,isAiSuggestionsFeatureEnabled,isBetaLanguageEnabled,isConfidenceScoreReviewEnabled=!1,isBoundingBoxEnabled=!1,isLargeFile=!1,isDeleteButtonDisabled,onToggleReviewFilter,shouldShowOnlyReviewFields=!1,suggestions,isFetchingSuggestions,isFormDirty=!1,selectedTemplateInstance,getAiSuggestions,handleCancel,handleDelete,itemType=`file`,onManageExtractAgent,cascadeIsEnabled=!1,cascadeMode=`skip`,isConfiguringCascadeReplacement=!1,onCascadeToggle,onCascadeModeChange}=props,isCustomMetadata=selectedTemplateInstance?.templateKey===TEMPLATE_CUSTOM_PROPERTIES,hasSuggestions=!!suggestions[selectedTemplateInstance?.templateKey],isBoundingBoxOrConfidenceScoreReviewEnabled=isConfidenceScoreReviewEnabled||isBoundingBoxEnabled,isFolder=itemType===`folder`,cascadePolicy=selectedTemplateInstance?.cascadePolicy,isManagedByCustomExtractAgent=isFolder&&isCustomExtractAgentPolicy(cascadePolicy);return jsx(`div`,{className:isFetchingSuggestions&&metadata_instance_form_module_default.wrapperGradient,children:jsxs(Card,{ref:formRef,className:clsx(className,{[metadata_instance_form_module_default.suggestionsFetching]:isFetchingSuggestions}),children:[jsx(MetadataInstanceFormHeader,{areAiSuggestionsAvailable,hasSuggestions,isAdvancedExtractAgentEnabled,isAiSuggestionsFeatureEnabled:isAiSuggestionsFeatureEnabled&&!isCustomMetadata&&!isManagedByCustomExtractAgent&&isAutofillAllowedForInstance(selectedTemplateInstance),isBetaLanguageEnabled,isConfidenceScoreReviewEnabled,isLargeFile,isLoading:isFetchingSuggestions,onAutofill:isManagedByCustomExtractAgent?void 0:getAiSuggestions,onToggleReviewFilter,shouldShowOnlyReviewFields,templateName:selectedTemplateInstance?.displayName}),isManagedByCustomExtractAgent?jsx(CustomExtractAgentNotice,{agentConfiguration:cascadePolicy?.agentConfiguration,onManageExtractAgent}):jsxs(Fragment,{children:[isFolder&&selectedTemplateInstance&&jsx(CascadePolicyEditor,{canEdit:cascadePolicy?.canEdit!==!1,cascadePolicy,isConfiguringReplacement:isConfiguringCascadeReplacement,isCustomMetadata,isEnabled:cascadeIsEnabled,mode:cascadeMode,onCascadeModeChange:onCascadeModeChange??noopCascadeModeChange,onCascadeToggle:onCascadeToggle??noopCascadeToggle}),selectedTemplateInstance&&children]}),jsx(MetadataInstanceFormAiDisclaimer,{isLoading:isFetchingSuggestions,isBoundingBoxOrConfidenceScoreReviewEnabled,fields:formValues.metadata?.fields??[]}),jsx(MetadataInstanceFormFooter,{isDeleteButtonDisabled:isDeleteButtonDisabled||isManagedByCustomExtractAgent,isLoading:isFetchingSuggestions,isSaveButtonDisabled:isManagedByCustomExtractAgent,onCancel:()=>handleCancel(isFormDirty),onDelete:handleDelete})]})})};export{metadata_instance_form_module_default as n,MetadataInstanceFormCardWrapper as t};
@@ -1 +0,0 @@
1
- ._metadataInstanceForm_10ifw_1{gap:var(--space-3);flex-direction:column;display:flex}._wrapperGradient_10ifw_7{border-radius:var(--bp-radius-10);background:linear-gradient(135deg,#fe03dc 0%,#2784fa 100%)}._suggestionsFetching_10ifw_12{background:var(--box-blue-02);border:var(--border-1) solid transparent;background-clip:padding-box}._metadataInstanceFormContent_10ifw_18{gap:var(--space-3);flex-direction:column;display:flex;position:relative}._metadataInstanceFormContentReducedGap_10ifw_25{gap:.375rem}._showOverlay_10ifw_29{min-height:172px}