@box/metadata-template-editor 2.3.21 → 2.3.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/field-context-menu.js +1 -1
- package/dist/chunks/metadata-field-configurator.module.js +1 -1
- package/dist/styles/metadata-field-configurator.css +1 -1
- package/dist/types/lib/components/metadata-field-configurator/components/field-action-slot/field-action-slot.d.ts +7 -2
- package/dist/types/lib/components/metadata-field-configurator/components/field-context-menu/field-context-menu.d.ts +5 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
import{general}from"../esm/lib/components/metadata-field-configurator/messages/configurator-messages.js";import{Divider,DropdownMenu,IconButton,Text}from"@box/blueprint-web";import{FormattedMessage,useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import{Ellipsis}from"@box/blueprint-web-assets/icons/Fill";import React
|
|
1
|
+
import{general}from"../esm/lib/components/metadata-field-configurator/messages/configurator-messages.js";import{Divider,DropdownMenu,IconButton,Text}from"@box/blueprint-web";import{FormattedMessage,useIntl}from"react-intl";import{Fragment,jsx,jsxs}from"react/jsx-runtime";import{Ellipsis}from"@box/blueprint-web-assets/icons/Fill";import React,{Children}from"react";import{IconIconErrorOnLight}from"@box/blueprint-web-assets/tokens/tokens";import clsx from"clsx";import{ArrowDown,ArrowUp,Hidden,Trash,TwoFiles,Visible}from"@box/blueprint-web-assets/icons/Line";import '../styles/field-context-menu.css';var field_context_menu_module_default={contextMenuTrigger:`_contextMenuTrigger_102vn_1`,menuItem:`_menuItem_102vn_5`,contextMenu:`_contextMenu_102vn_1`,divider:`_divider_102vn_14`},FieldContextMenu=({className,index,maxIndex,isHidden=!1,onReorderFields,onToggleVisibility,onRequestDelete,onRequestDuplicate,onOpenChange})=>{let intl=useIntl(),[contextMenuOpen,setContextMenuOpen]=React.useState(!1),contextMenuRef=React.useRef(null),handleOpenChange=open=>{setContextMenuOpen(open),onOpenChange?.(open)},handleMoveUp=()=>{index>0&&onReorderFields?.(index,index-1)},handleMoveDown=()=>{onReorderFields?.(index,index+1)},hasItemsAboveDelete=!!(onReorderFields||onRequestDuplicate||onToggleVisibility),menuContent=jsxs(Fragment,{children:[onReorderFields&&jsxs(Fragment,{children:[jsx(DropdownMenu.Item,{disabled:index===0,onClick:handleMoveUp,"aria-label":intl.formatMessage(general.moveUpAriaLabel),children:jsxs(`div`,{className:field_context_menu_module_default.menuItem,children:[jsx(ArrowUp,{"aria-hidden":`true`}),jsx(FormattedMessage,{...general.moveUp})]})}),jsx(DropdownMenu.Item,{disabled:index===maxIndex,onClick:handleMoveDown,"aria-label":intl.formatMessage(general.moveDownAriaLabel),children:jsxs(`div`,{className:field_context_menu_module_default.menuItem,children:[jsx(ArrowDown,{"aria-hidden":`true`}),jsx(FormattedMessage,{...general.moveDown})]})})]}),onRequestDuplicate&&jsx(DropdownMenu.Item,{onClick:onRequestDuplicate,"aria-label":intl.formatMessage(general.duplicateFieldAriaLabel),children:jsxs(`div`,{className:field_context_menu_module_default.menuItem,children:[jsx(TwoFiles,{"aria-hidden":`true`}),jsx(FormattedMessage,{...general.duplicateField})]})}),onToggleVisibility&&jsx(DropdownMenu.Item,{onClick:()=>onToggleVisibility(!isHidden),"aria-label":intl.formatMessage(isHidden?general.showField:general.hideField),children:jsxs(`div`,{className:field_context_menu_module_default.menuItem,children:[jsx(isHidden?Visible:Hidden,{"aria-hidden":`true`}),jsx(FormattedMessage,{...isHidden?general.showField:general.hideField})]})}),onRequestDelete&&jsxs(Fragment,{children:[hasItemsAboveDelete&&jsx(Divider,{className:field_context_menu_module_default.divider}),jsx(DropdownMenu.Item,{onClick:onRequestDelete,"aria-label":intl.formatMessage(general.deleteFieldAriaLabel),children:jsxs(`div`,{className:field_context_menu_module_default.menuItem,children:[jsx(Trash,{color:IconIconErrorOnLight,"aria-hidden":`true`}),jsx(Text,{as:`span`,color:`textOnLightError`,children:jsx(FormattedMessage,{...general.deleteField})})]})})]})]}),menuItems=Children.toArray(menuContent.props.children);return menuItems.length===0?null:jsxs(DropdownMenu.Root,{open:contextMenuOpen,onOpenChange:handleOpenChange,modal:!1,children:[jsx(DropdownMenu.Trigger,{className:clsx(field_context_menu_module_default.contextMenuTrigger,className),children:jsx(IconButton,{icon:Ellipsis,"aria-label":intl.formatMessage(general.contextMenuAriaLabel),size:`large`})}),jsx(DropdownMenu.Content,{ref:contextMenuRef,align:`end`,className:field_context_menu_module_default.contextMenu,children:menuItems})]})};export{FieldContextMenu as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import '../styles/metadata-field-configurator.css';var metadata_field_configurator_module_default={fieldset:`
|
|
1
|
+
import '../styles/metadata-field-configurator.css';var metadata_field_configurator_module_default={fieldset:`_fieldset_1dkyn_1`,expandedContent:`_expandedContent_1dkyn_7`,basic:`_basic_1dkyn_13`,fieldTypeSelect:`_fieldTypeSelect_1dkyn_18`,typeSpecific:`_typeSpecific_1dkyn_22`,description:`_description_1dkyn_29`,labelWithTooltip:`_labelWithTooltip_1dkyn_34`,fieldActionSlot:`_fieldActionSlot_1dkyn_39`,expandedToolbarActions:`_expandedToolbarActions_1dkyn_46`,extensionTabsContainer:`_extensionTabsContainer_1dkyn_52`,extensionContent:`_extensionContent_1dkyn_58`,fieldCollapsedText:`_fieldCollapsedText_1dkyn_62`,expanded:`_expanded_1dkyn_7`,contextMenuWithCollapsedText:`_contextMenuWithCollapsedText_1dkyn_71`,fieldAccordionItem:`_fieldAccordionItem_1dkyn_77`,fieldContextMenu:`_fieldContextMenu_1dkyn_84`,menuOpen:`_menuOpen_1dkyn_87`,hiddenBadge:`_hiddenBadge_1dkyn_106`};export{metadata_field_configurator_module_default as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
._fieldset_1dkyn_1{border:0;margin:0;padding:0}._expandedContent_1dkyn_7{gap:var(--space-4);flex-direction:column;display:flex}._basic_1dkyn_13{gap:var(--space-4);grid-template-columns:3fr 2fr;display:grid}._basic_1dkyn_13 ._fieldTypeSelect_1dkyn_18{min-width:145px}._typeSpecific_1dkyn_22{margin-top:var(--space-2);gap:var(--space-4);flex-direction:column;display:flex}._description_1dkyn_29{gap:var(--space-4);flex-direction:column;display:flex}._description_1dkyn_29 ._labelWithTooltip_1dkyn_34{margin-block-end:var(--space-2);display:inline-block}._fieldActionSlot_1dkyn_39{align-items:center;gap:var(--space-2);display:flex;position:relative}._expandedToolbarActions_1dkyn_46{align-items:center;gap:var(--space-1);display:flex}._extensionTabsContainer_1dkyn_52{border-right:1px solid var(--border-border-on-light);height:auto;overflow:visible}._extensionContent_1dkyn_58{padding:var(--space-4) 0}._fieldCollapsedText_1dkyn_62{visibility:visible;display:block}._expanded_1dkyn_7 ._fieldCollapsedText_1dkyn_62{visibility:hidden}._contextMenuWithCollapsedText_1dkyn_71{background-color:#0000;position:absolute;right:0}._fieldAccordionItem_1dkyn_77{max-width:650px}._fieldAccordionItem_1dkyn_77[data-state=closed] ._fieldActionSlot_1dkyn_39{position:relative}._fieldAccordionItem_1dkyn_77[data-state=closed] ._fieldContextMenu_1dkyn_84{display:none}._fieldAccordionItem_1dkyn_77[data-state=closed] ._fieldContextMenu_1dkyn_84._menuOpen_1dkyn_87{display:flex}._fieldAccordionItem_1dkyn_77[data-state=closed] ._extensionTabsContainer_1dkyn_52{display:none}._fieldAccordionItem_1dkyn_77[data-state=closed]:has(>:hover) ._fieldContextMenu_1dkyn_84{background-color:#ebebeb;display:flex}._fieldAccordionItem_1dkyn_77[data-state=closed]:has(>:hover) ._fieldContextMenu_1dkyn_84:before{content:"";width:var(--space-3);background:linear-gradient(90deg,#0000,#ebebeb);position:absolute;top:0;bottom:0;right:99%}._fieldAccordionItem_1dkyn_77[data-state=closed]:has(>:hover) ._fieldActionSlot_1dkyn_39:has(._fieldContextMenu_1dkyn_84,._contextMenuWithCollapsedText_1dkyn_71) ._hiddenBadge_1dkyn_106{visibility:hidden}._fieldAccordionItem_1dkyn_77[data-state=closed]:has(>:hover) ._contextMenuWithCollapsedText_1dkyn_71{position:absolute;top:-50%;right:0}
|
|
@@ -4,7 +4,7 @@ type FieldActionSlotBaseProps = {
|
|
|
4
4
|
isExpanded?: boolean;
|
|
5
5
|
index: number;
|
|
6
6
|
maxIndex?: number;
|
|
7
|
-
onReorderFields
|
|
7
|
+
onReorderFields?: (fromIndex: number, toIndex: number) => void;
|
|
8
8
|
onToggleVisibility?: (hidden: boolean) => void;
|
|
9
9
|
onRequestDelete?: () => void;
|
|
10
10
|
onRequestDuplicate?: () => void;
|
|
@@ -17,7 +17,8 @@ type FieldActionSlotBaseProps = {
|
|
|
17
17
|
/**
|
|
18
18
|
* A custom menu slot to render in place of the built-in context menu when collapsed.
|
|
19
19
|
* When provided and collapsed, this is shown instead of FieldContextMenu.
|
|
20
|
-
* When expanded, FieldContextMenu is always used
|
|
20
|
+
* When expanded, FieldContextMenu is always used — though it renders nothing when
|
|
21
|
+
* no action handlers are supplied (see the component docs).
|
|
21
22
|
*/
|
|
22
23
|
collapsedMenuSlot?: React.ReactNode;
|
|
23
24
|
/**
|
|
@@ -34,6 +35,10 @@ export type FieldActionSlotProps = FieldActionSlotBaseProps;
|
|
|
34
35
|
* - "Hidden" status badge (when field is hidden)
|
|
35
36
|
* - Extension ContentSwitcher tabs (when extensions are provided)
|
|
36
37
|
* - Field context menu, or a custom `menuSlot` when provided
|
|
38
|
+
*
|
|
39
|
+
* The context menu is omitted entirely when none of `onReorderFields`, `onToggleVisibility`,
|
|
40
|
+
* `onRequestDelete`, or `onRequestDuplicate` is provided, so an actionless field renders no
|
|
41
|
+
* "…" trigger instead of one that opens an empty menu. Extension tabs are unaffected.
|
|
37
42
|
*/
|
|
38
43
|
export declare const FieldActionSlot: ({ isHidden, isExpanded, index, maxIndex, onReorderFields, onToggleVisibility, onRequestDelete, onRequestDuplicate, extensions, fieldCollapsedText, collapsedMenuSlot, readOnly, }: FieldActionSlotProps) => import("react/jsx-runtime").JSX.Element;
|
|
39
44
|
export {};
|
|
@@ -22,6 +22,10 @@ type FieldContextMenuProps = {
|
|
|
22
22
|
* An ellipsis icon button that opens a dropdown menu with actions for a single
|
|
23
23
|
* metadata field: move up, move down, toggle visibility, duplicate (when
|
|
24
24
|
* `onRequestDuplicate` is provided), and delete.
|
|
25
|
+
*
|
|
26
|
+
* Every menu item is gated on its own handler, and the rendered items are counted
|
|
27
|
+
* before the trigger is drawn, so when no handler is provided the component renders
|
|
28
|
+
* `null` rather than a trigger that opens an empty menu.
|
|
25
29
|
*/
|
|
26
|
-
export declare const FieldContextMenu: ({ className, index, maxIndex, isHidden, onReorderFields, onToggleVisibility, onRequestDelete, onRequestDuplicate, onOpenChange, }: FieldContextMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
export declare const FieldContextMenu: ({ className, index, maxIndex, isHidden, onReorderFields, onToggleVisibility, onRequestDelete, onRequestDuplicate, onOpenChange, }: FieldContextMenuProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
27
31
|
export {};
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@box/metadata-template-editor",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.23",
|
|
4
4
|
"license": "SEE LICENSE IN LICENSE",
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@box/blueprint-web": "^16.20.
|
|
7
|
-
"@box/blueprint-web-assets": "^5.7.
|
|
6
|
+
"@box/blueprint-web": "^16.20.4",
|
|
7
|
+
"@box/blueprint-web-assets": "^5.7.11",
|
|
8
8
|
"@dnd-kit/core": "^6.1.0",
|
|
9
9
|
"@dnd-kit/sortable": "^8.0.0",
|
|
10
10
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"yup": "^1.6.1"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@box/blueprint-web": "^16.20.
|
|
21
|
-
"@box/blueprint-web-assets": "^5.7.
|
|
22
|
-
"@box/eslint-plugin-blueprint": "2.2.
|
|
23
|
-
"@box/storybook-utils": "1.2.
|
|
20
|
+
"@box/blueprint-web": "^16.20.4",
|
|
21
|
+
"@box/blueprint-web-assets": "^5.7.11",
|
|
22
|
+
"@box/eslint-plugin-blueprint": "2.2.7",
|
|
23
|
+
"@box/storybook-utils": "1.2.20",
|
|
24
24
|
"@dnd-kit/core": "^6.1.0",
|
|
25
25
|
"@dnd-kit/sortable": "^8.0.0",
|
|
26
26
|
"@dnd-kit/utilities": "^3.2.2",
|