@bigbinary/neeto-molecules 5.2.18 → 5.2.20
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/cjs/v2/Metadata.js +3 -3
- package/dist/cjs/v2/Metadata.js.map +1 -1
- package/dist/cjs/v2/SessionEnvironment.js +35 -10
- package/dist/cjs/v2/SessionEnvironment.js.map +1 -1
- package/dist/cjs/v2/StatusDropdown.js +41 -14
- package/dist/cjs/v2/StatusDropdown.js.map +1 -1
- package/dist/v2/Metadata.js +3 -3
- package/dist/v2/Metadata.js.map +1 -1
- package/dist/v2/SessionEnvironment.js +35 -10
- package/dist/v2/SessionEnvironment.js.map +1 -1
- package/dist/v2/StatusDropdown.js +43 -16
- package/dist/v2/StatusDropdown.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/v2/Metadata.js
CHANGED
|
@@ -84,7 +84,7 @@ var DetailsBlock = function DetailsBlock(_ref) {
|
|
|
84
84
|
if (typeof value === "string") {
|
|
85
85
|
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
86
86
|
className: "[overflow-wrap:anywhere]",
|
|
87
|
-
variant: "
|
|
87
|
+
variant: "body3",
|
|
88
88
|
children: value
|
|
89
89
|
});
|
|
90
90
|
}
|
|
@@ -115,7 +115,7 @@ var DetailsBlock = function DetailsBlock(_ref) {
|
|
|
115
115
|
}),
|
|
116
116
|
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
117
117
|
color: "muted",
|
|
118
|
-
variant: "
|
|
118
|
+
variant: "body3",
|
|
119
119
|
children: label
|
|
120
120
|
}), renderDetailsValue(value)]
|
|
121
121
|
})
|
|
@@ -135,7 +135,7 @@ var DetailsBlock = function DetailsBlock(_ref) {
|
|
|
135
135
|
}),
|
|
136
136
|
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
137
137
|
color: "muted",
|
|
138
|
-
variant: "
|
|
138
|
+
variant: "body3",
|
|
139
139
|
children: label
|
|
140
140
|
}), renderDetailsValue(value)]
|
|
141
141
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Metadata.js","sources":["../../../src/v2/components/Metadata/Block.jsx","../../../src/v2/components/Metadata/constants.js","../../../src/v2/components/Metadata/DetailsBlock.jsx","../../../src/v2/components/Metadata/index.jsx"],"sourcesContent":["import { Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Block = ({ title, actionBlock, children, className = \"\" }) => (\n <div\n className=\"border-border mb-4 w-full border-b pb-4\"\n data-testid=\"neeto-molecules-metadata-block\"\n >\n {(title || actionBlock) && (\n <div className=\"mb-2 flex w-full items-center justify-between gap-2\">\n {title && (\n <div className=\"flex w-60 items-center gap-2 break-all\">\n <Typography\n className=\"uppercase\"\n data-testid=\"metadata-block-title\"\n variant=\"h6\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n </div>\n )}\n {actionBlock && <div className=\"ms-auto\">{actionBlock}</div>}\n </div>\n )}\n {!!children && (\n <div\n className={classnames(\"bg-background\", className)}\n data-testid=\"metadata-card\"\n >\n {children}\n </div>\n )}\n </div>\n);\n\nBlock.propTypes = {\n /**\n * To specify the content to be rendered on the right side of the title.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the title of the block.\n */\n title: PropTypes.string,\n /**\n * The content to be rendered inside the block.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * To specify external classNames as overrides to the `Block` component.\n */\n className: PropTypes.string,\n};\n\nexport default Block;\n","export const STYLES = { inline: \"inline\", multiline: \"multiline\" };\n\nexport const SIZES = { small: \"small\", medium: \"medium\" };\n\nexport const DEFAULT_TRUNCATE_AT = 3;\n\nexport const SIZE_WIDTH_CLASSES = {\n [SIZES.medium]:\n \"w-[384px] min-w-[384px] min-[1024px]:max-[1200px]:w-[300px] min-[1024px]:max-[1200px]:min-w-[300px]\",\n [SIZES.small]:\n \"w-[340px] min-w-[340px] min-[1024px]:max-[1200px]:w-[300px] min-[1024px]:max-[1200px]:min-w-[300px]\",\n};\n","import { Fragment, useState } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { ChevronDown, ChevronUp } from \"lucide-react\";\nimport { isNotEmpty } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Block from \"./Block\";\nimport { DEFAULT_TRUNCATE_AT, STYLES } from \"./constants\";\n\nconst DetailsBlock = ({\n title,\n actionBlock,\n details = [],\n className,\n style = STYLES.inline,\n truncate = false,\n truncateAt = DEFAULT_TRUNCATE_AT,\n children,\n}) => {\n const [showTruncated, setShowTruncated] = useState(false);\n\n const { t } = useTranslation();\n\n const [visibleDetails, truncatedDetails] = truncate\n ? [details.slice(0, truncateAt), details.slice(truncateAt)]\n : [details];\n\n const renderDetailsValue = value => {\n if (typeof value === \"string\") {\n return (\n <Typography className=\"[overflow-wrap:anywhere]\" variant=\"body2\">\n {value}\n </Typography>\n );\n }\n\n return <span className=\"min-w-0 flex-grow\">{value}</span>;\n };\n\n return (\n <Block\n {...{ actionBlock, className }}\n title={title ?? t(\"neetoMolecules.metadata.detailsTitle\")}\n >\n <div\n className=\"flex flex-col gap-y-3\"\n data-testid=\"neeto-molecules-metadata-details-block\"\n >\n {visibleDetails.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === \"divider\" ? (\n <hr className=\"border-border\" />\n ) : (\n <div\n data-testid=\"details-card-detail-wrapper\"\n className={classnames(\"flex\", {\n \"items-center gap-x-4\": style === STYLES.inline,\n \"flex-col\": style === STYLES.multiline,\n })}\n >\n <Typography color=\"muted\" variant=\"body2\">\n {label}\n </Typography>\n {renderDetailsValue(value)}\n </div>\n )}\n </Fragment>\n ))}\n {!truncate && children}\n {showTruncated && (\n <>\n {truncatedDetails.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === \"divider\" ? (\n <hr className=\"border-border\" />\n ) : (\n <div\n className={classnames(\"flex\", {\n \"gap-x-4\": style === STYLES.inline,\n \"flex-col\": style === STYLES.multiline,\n })}\n >\n <Typography color=\"muted\" variant=\"body2\">\n {label}\n </Typography>\n {renderDetailsValue(value)}\n </div>\n )}\n </Fragment>\n ))}\n {children}\n </>\n )}\n {truncate && isNotEmpty(truncatedDetails) && (\n <Button\n data-testid=\"expand-button\"\n icon={showTruncated ? ChevronUp : ChevronDown}\n iconPosition=\"left\"\n variant=\"link\"\n label={\n showTruncated\n ? t(\"neetoMolecules.metadata.card.viewLess\")\n : t(\"neetoMolecules.metadata.card.viewMore\")\n }\n onClick={() => setShowTruncated(showTruncated => !showTruncated)}\n />\n )}\n </div>\n </Block>\n );\n};\n\nDetailsBlock.propTypes = {\n /**\n * To specify the content to be rendered on the right side of the title.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the title of the block.\n */\n title: PropTypes.string,\n /**\n * The details to be rendered inside the block.\n */\n details: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.node,\n type: PropTypes.string,\n })\n ),\n /**\n * To specify whether the label and value should be rendered in a single line or in two lines.\n */\n style: PropTypes.oneOf([\"inline\", \"multiline\"]),\n /**\n * To specify whether the visible details should be truncated at a specific point.\n */\n truncate: PropTypes.bool,\n /**\n * To specify the position at which the details should be truncated and `View more` button should be shown.\n */\n truncateAt: PropTypes.number,\n /**\n * To specify external classNames as overrides to the `DetailsBlock` component.\n */\n className: PropTypes.string,\n /**\n * The additional content to be rendered inside the block.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n};\n\nexport default DetailsBlock;\n","import { useEffect, useState } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { PanelLeftClose } from \"lucide-react\";\nimport useBreakpoints from \"neetocommons/v2/react-utils/useBreakpoints\";\nimport PropTypes from \"prop-types\";\n\nimport Block from \"./Block\";\nimport { SIZES, SIZE_WIDTH_CLASSES } from \"./constants\";\nimport DetailsBlock from \"./DetailsBlock\";\n\nconst Metadata = ({\n headerBlock,\n size = SIZES.medium,\n children,\n className = \"\",\n}) => {\n const { isSize } = useBreakpoints();\n const isLargerScreen = isSize(\"desktop\") || isSize(\"largeDesktop\");\n const [isElementsPanelCollapsed, setIsElementsPanelCollapsed] =\n useState(!isLargerScreen);\n\n useEffect(() => {\n setIsElementsPanelCollapsed(!isLargerScreen);\n }, [isLargerScreen]);\n\n return (\n <>\n {!isElementsPanelCollapsed && (\n <div\n className=\"absolute end-0 top-0 z-50 hidden h-full w-full bg-black/40 min-[576px]:max-[1024px]:block\"\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n )}\n <div\n className={classnames(\n // z-50, not above it: Radix portals (dropdowns, popovers) also render\n // at z-50 and are appended later in the DOM, so they must win — at\n // z-[51] the pane swallowed every dropdown anchored inside it.\n \"relative z-50 h-full transition-all duration-150 motion-reduce:transition-none max-[1024px]:fixed max-[1024px]:end-0 max-[1024px]:top-0 max-[1024px]:transition-none\",\n isElementsPanelCollapsed\n ? \"w-0 max-w-0 min-w-0\"\n : classnames(\n SIZE_WIDTH_CLASSES[size] ?? SIZE_WIDTH_CLASSES[SIZES.medium],\n \"max-[576px]:h-full max-[576px]:w-full max-[576px]:max-w-full max-[576px]:min-w-0\"\n )\n )}\n >\n <div className=\"flex h-full w-full justify-end overflow-hidden\">\n <div\n data-testid=\"neeto-molecules-metadata-wrapper\"\n className={classnames(\n \"bg-background border-border h-dvh flex-shrink-0 overflow-x-hidden overflow-y-auto border-s p-6 max-[576px]:w-full max-[576px]:min-w-0 max-[576px]:pt-12\",\n SIZE_WIDTH_CLASSES[size] ?? SIZE_WIDTH_CLASSES[SIZES.medium],\n className\n )}\n >\n {headerBlock && (\n <div\n className=\"mb-5 flex w-full justify-center\"\n data-testid=\"neeto-molecules-metadata-header\"\n >\n {headerBlock}\n </div>\n )}\n {children}\n </div>\n </div>\n {!isLargerScreen && (\n <Button\n icon={PanelLeftClose}\n size=\"icon\"\n variant=\"secondary\"\n className={classnames(\n \"absolute end-[calc(100%_+_8px)] top-2 shrink-0 max-[576px]:end-2\",\n {\n \"-scale-x-100 max-[576px]:start-2 max-[576px]:end-auto\":\n isElementsPanelCollapsed,\n }\n )}\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n )}\n </div>\n </>\n );\n};\n\nMetadata.Block = Block;\nMetadata.DetailsBlock = DetailsBlock;\n\nMetadata.propTypes = {\n /**\n * To specify the content to be rendered as the title of the `Metadata` wrapper.\n */\n headerBlock: PropTypes.node,\n /**\n * The content to be rendered inside the `Metadata` wrapper.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * To specify external classNames as overrides to the `Metadata` component.\n */\n className: PropTypes.string,\n /**\n * To set the size of the `Metadata` wrapper.\n */\n size: PropTypes.oneOf([\"small\", \"medium\"]),\n};\n\nexport default Metadata;\n"],"names":["Block","_ref","title","actionBlock","children","_ref$className","className","_jsxs","_jsx","Typography","variant","weight","classnames","STYLES","inline","multiline","SIZES","small","medium","DEFAULT_TRUNCATE_AT","SIZE_WIDTH_CLASSES","_defineProperty","DetailsBlock","_ref$details","details","_ref$style","style","_ref$truncate","truncate","_ref$truncateAt","truncateAt","_useState","useState","_useState2","_slicedToArray","showTruncated","setShowTruncated","_useTranslation","useTranslation","t","_ref2","slice","_ref3","visibleDetails","truncatedDetails","renderDetailsValue","value","map","_ref4","index","label","type","Fragment","color","_Fragment","_ref5","isNotEmpty","Button","icon","ChevronUp","ChevronDown","iconPosition","onClick","Metadata","_SIZE_WIDTH_CLASSES$s","_SIZE_WIDTH_CLASSES$s2","headerBlock","_ref$size","size","_useBreakpoints","useBreakpoints","isSize","isLargerScreen","isElementsPanelCollapsed","setIsElementsPanelCollapsed","useEffect","PanelLeftClose"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Metadata.js","sources":["../../../src/v2/components/Metadata/Block.jsx","../../../src/v2/components/Metadata/constants.js","../../../src/v2/components/Metadata/DetailsBlock.jsx","../../../src/v2/components/Metadata/index.jsx"],"sourcesContent":["import { Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Block = ({ title, actionBlock, children, className = \"\" }) => (\n <div\n className=\"border-border mb-4 w-full border-b pb-4\"\n data-testid=\"neeto-molecules-metadata-block\"\n >\n {(title || actionBlock) && (\n <div className=\"mb-2 flex w-full items-center justify-between gap-2\">\n {title && (\n <div className=\"flex w-60 items-center gap-2 break-all\">\n <Typography\n className=\"uppercase\"\n data-testid=\"metadata-block-title\"\n variant=\"h6\"\n weight=\"bold\"\n >\n {title}\n </Typography>\n </div>\n )}\n {actionBlock && <div className=\"ms-auto\">{actionBlock}</div>}\n </div>\n )}\n {!!children && (\n <div\n className={classnames(\"bg-background\", className)}\n data-testid=\"metadata-card\"\n >\n {children}\n </div>\n )}\n </div>\n);\n\nBlock.propTypes = {\n /**\n * To specify the content to be rendered on the right side of the title.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the title of the block.\n */\n title: PropTypes.string,\n /**\n * The content to be rendered inside the block.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * To specify external classNames as overrides to the `Block` component.\n */\n className: PropTypes.string,\n};\n\nexport default Block;\n","export const STYLES = { inline: \"inline\", multiline: \"multiline\" };\n\nexport const SIZES = { small: \"small\", medium: \"medium\" };\n\nexport const DEFAULT_TRUNCATE_AT = 3;\n\nexport const SIZE_WIDTH_CLASSES = {\n [SIZES.medium]:\n \"w-[384px] min-w-[384px] min-[1024px]:max-[1200px]:w-[300px] min-[1024px]:max-[1200px]:min-w-[300px]\",\n [SIZES.small]:\n \"w-[340px] min-w-[340px] min-[1024px]:max-[1200px]:w-[300px] min-[1024px]:max-[1200px]:min-w-[300px]\",\n};\n","import { Fragment, useState } from \"react\";\n\nimport { Button, Typography } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { ChevronDown, ChevronUp } from \"lucide-react\";\nimport { isNotEmpty } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Block from \"./Block\";\nimport { DEFAULT_TRUNCATE_AT, STYLES } from \"./constants\";\n\nconst DetailsBlock = ({\n title,\n actionBlock,\n details = [],\n className,\n style = STYLES.inline,\n truncate = false,\n truncateAt = DEFAULT_TRUNCATE_AT,\n children,\n}) => {\n const [showTruncated, setShowTruncated] = useState(false);\n\n const { t } = useTranslation();\n\n const [visibleDetails, truncatedDetails] = truncate\n ? [details.slice(0, truncateAt), details.slice(truncateAt)]\n : [details];\n\n const renderDetailsValue = value => {\n if (typeof value === \"string\") {\n return (\n <Typography className=\"[overflow-wrap:anywhere]\" variant=\"body3\">\n {value}\n </Typography>\n );\n }\n\n return <span className=\"min-w-0 flex-grow\">{value}</span>;\n };\n\n return (\n <Block\n {...{ actionBlock, className }}\n title={title ?? t(\"neetoMolecules.metadata.detailsTitle\")}\n >\n <div\n className=\"flex flex-col gap-y-3\"\n data-testid=\"neeto-molecules-metadata-details-block\"\n >\n {visibleDetails.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === \"divider\" ? (\n <hr className=\"border-border\" />\n ) : (\n <div\n data-testid=\"details-card-detail-wrapper\"\n className={classnames(\"flex\", {\n \"items-center gap-x-4\": style === STYLES.inline,\n \"flex-col\": style === STYLES.multiline,\n })}\n >\n <Typography color=\"muted\" variant=\"body3\">\n {label}\n </Typography>\n {renderDetailsValue(value)}\n </div>\n )}\n </Fragment>\n ))}\n {!truncate && children}\n {showTruncated && (\n <>\n {truncatedDetails.map(({ label, value, type }, index) => (\n <Fragment key={index}>\n {type === \"divider\" ? (\n <hr className=\"border-border\" />\n ) : (\n <div\n className={classnames(\"flex\", {\n \"gap-x-4\": style === STYLES.inline,\n \"flex-col\": style === STYLES.multiline,\n })}\n >\n <Typography color=\"muted\" variant=\"body3\">\n {label}\n </Typography>\n {renderDetailsValue(value)}\n </div>\n )}\n </Fragment>\n ))}\n {children}\n </>\n )}\n {truncate && isNotEmpty(truncatedDetails) && (\n <Button\n data-testid=\"expand-button\"\n icon={showTruncated ? ChevronUp : ChevronDown}\n iconPosition=\"left\"\n variant=\"link\"\n label={\n showTruncated\n ? t(\"neetoMolecules.metadata.card.viewLess\")\n : t(\"neetoMolecules.metadata.card.viewMore\")\n }\n onClick={() => setShowTruncated(showTruncated => !showTruncated)}\n />\n )}\n </div>\n </Block>\n );\n};\n\nDetailsBlock.propTypes = {\n /**\n * To specify the content to be rendered on the right side of the title.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the title of the block.\n */\n title: PropTypes.string,\n /**\n * The details to be rendered inside the block.\n */\n details: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.node,\n type: PropTypes.string,\n })\n ),\n /**\n * To specify whether the label and value should be rendered in a single line or in two lines.\n */\n style: PropTypes.oneOf([\"inline\", \"multiline\"]),\n /**\n * To specify whether the visible details should be truncated at a specific point.\n */\n truncate: PropTypes.bool,\n /**\n * To specify the position at which the details should be truncated and `View more` button should be shown.\n */\n truncateAt: PropTypes.number,\n /**\n * To specify external classNames as overrides to the `DetailsBlock` component.\n */\n className: PropTypes.string,\n /**\n * The additional content to be rendered inside the block.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n};\n\nexport default DetailsBlock;\n","import { useEffect, useState } from \"react\";\n\nimport { Button } from \"@bigbinary/neeto-atoms\";\nimport classnames from \"classnames\";\nimport { PanelLeftClose } from \"lucide-react\";\nimport useBreakpoints from \"neetocommons/v2/react-utils/useBreakpoints\";\nimport PropTypes from \"prop-types\";\n\nimport Block from \"./Block\";\nimport { SIZES, SIZE_WIDTH_CLASSES } from \"./constants\";\nimport DetailsBlock from \"./DetailsBlock\";\n\nconst Metadata = ({\n headerBlock,\n size = SIZES.medium,\n children,\n className = \"\",\n}) => {\n const { isSize } = useBreakpoints();\n const isLargerScreen = isSize(\"desktop\") || isSize(\"largeDesktop\");\n const [isElementsPanelCollapsed, setIsElementsPanelCollapsed] =\n useState(!isLargerScreen);\n\n useEffect(() => {\n setIsElementsPanelCollapsed(!isLargerScreen);\n }, [isLargerScreen]);\n\n return (\n <>\n {!isElementsPanelCollapsed && (\n <div\n className=\"absolute end-0 top-0 z-50 hidden h-full w-full bg-black/40 min-[576px]:max-[1024px]:block\"\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n )}\n <div\n className={classnames(\n // z-50, not above it: Radix portals (dropdowns, popovers) also render\n // at z-50 and are appended later in the DOM, so they must win — at\n // z-[51] the pane swallowed every dropdown anchored inside it.\n \"relative z-50 h-full transition-all duration-150 motion-reduce:transition-none max-[1024px]:fixed max-[1024px]:end-0 max-[1024px]:top-0 max-[1024px]:transition-none\",\n isElementsPanelCollapsed\n ? \"w-0 max-w-0 min-w-0\"\n : classnames(\n SIZE_WIDTH_CLASSES[size] ?? SIZE_WIDTH_CLASSES[SIZES.medium],\n \"max-[576px]:h-full max-[576px]:w-full max-[576px]:max-w-full max-[576px]:min-w-0\"\n )\n )}\n >\n <div className=\"flex h-full w-full justify-end overflow-hidden\">\n <div\n data-testid=\"neeto-molecules-metadata-wrapper\"\n className={classnames(\n \"bg-background border-border h-dvh flex-shrink-0 overflow-x-hidden overflow-y-auto border-s p-6 max-[576px]:w-full max-[576px]:min-w-0 max-[576px]:pt-12\",\n SIZE_WIDTH_CLASSES[size] ?? SIZE_WIDTH_CLASSES[SIZES.medium],\n className\n )}\n >\n {headerBlock && (\n <div\n className=\"mb-5 flex w-full justify-center\"\n data-testid=\"neeto-molecules-metadata-header\"\n >\n {headerBlock}\n </div>\n )}\n {children}\n </div>\n </div>\n {!isLargerScreen && (\n <Button\n icon={PanelLeftClose}\n size=\"icon\"\n variant=\"secondary\"\n className={classnames(\n \"absolute end-[calc(100%_+_8px)] top-2 shrink-0 max-[576px]:end-2\",\n {\n \"-scale-x-100 max-[576px]:start-2 max-[576px]:end-auto\":\n isElementsPanelCollapsed,\n }\n )}\n onClick={() => {\n setIsElementsPanelCollapsed(!isElementsPanelCollapsed);\n }}\n />\n )}\n </div>\n </>\n );\n};\n\nMetadata.Block = Block;\nMetadata.DetailsBlock = DetailsBlock;\n\nMetadata.propTypes = {\n /**\n * To specify the content to be rendered as the title of the `Metadata` wrapper.\n */\n headerBlock: PropTypes.node,\n /**\n * The content to be rendered inside the `Metadata` wrapper.\n */\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n /**\n * To specify external classNames as overrides to the `Metadata` component.\n */\n className: PropTypes.string,\n /**\n * To set the size of the `Metadata` wrapper.\n */\n size: PropTypes.oneOf([\"small\", \"medium\"]),\n};\n\nexport default Metadata;\n"],"names":["Block","_ref","title","actionBlock","children","_ref$className","className","_jsxs","_jsx","Typography","variant","weight","classnames","STYLES","inline","multiline","SIZES","small","medium","DEFAULT_TRUNCATE_AT","SIZE_WIDTH_CLASSES","_defineProperty","DetailsBlock","_ref$details","details","_ref$style","style","_ref$truncate","truncate","_ref$truncateAt","truncateAt","_useState","useState","_useState2","_slicedToArray","showTruncated","setShowTruncated","_useTranslation","useTranslation","t","_ref2","slice","_ref3","visibleDetails","truncatedDetails","renderDetailsValue","value","map","_ref4","index","label","type","Fragment","color","_Fragment","_ref5","isNotEmpty","Button","icon","ChevronUp","ChevronDown","iconPosition","onClick","Metadata","_SIZE_WIDTH_CLASSES$s","_SIZE_WIDTH_CLASSES$s2","headerBlock","_ref$size","size","_useBreakpoints","useBreakpoints","isSize","isLargerScreen","isElementsPanelCollapsed","setIsElementsPanelCollapsed","useEffect","PanelLeftClose"],"mappings":"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"}
|
|
@@ -119,11 +119,17 @@ var ICONS_MAP = {
|
|
|
119
119
|
timezone: globe.Globe,
|
|
120
120
|
chrome: Chrome,
|
|
121
121
|
safari: Safari,
|
|
122
|
+
mobile_safari: Safari,
|
|
122
123
|
firefox: Firefox,
|
|
123
124
|
edge: Edge,
|
|
124
125
|
ie: Edge,
|
|
125
126
|
windows: Windows,
|
|
126
127
|
mac_os: Apple,
|
|
128
|
+
// ua-parser-js v2 renamed "Mac OS" to "macOS" (and reports "iOS"/"Ubuntu"
|
|
129
|
+
// directly), so the derived lookup keys changed; keep the v1 keys too.
|
|
130
|
+
macos: Apple,
|
|
131
|
+
ios: Apple,
|
|
132
|
+
ubuntu: Ubuntu,
|
|
127
133
|
linux: Ubuntu,
|
|
128
134
|
mobile: smartphone.Smartphone,
|
|
129
135
|
desktop: smartphone.Monitor
|
|
@@ -254,7 +260,7 @@ var Item = function Item(_ref) {
|
|
|
254
260
|
_item$showCopyButton = item.showCopyButton,
|
|
255
261
|
showCopyButton = _item$showCopyButton === void 0 ? false : _item$showCopyButton;
|
|
256
262
|
var valueToRender = React.useMemo(function () {
|
|
257
|
-
if (ramda.isNil(value)) return "-";
|
|
263
|
+
if (ramda.isNil(value) || value === "") return "-";
|
|
258
264
|
if (typeof value === "boolean") return BOOLEAN_VALUES_MAP[value.toString()];
|
|
259
265
|
if (name === "email") return value.toLowerCase();
|
|
260
266
|
return value;
|
|
@@ -288,10 +294,22 @@ var Item = function Item(_ref) {
|
|
|
288
294
|
var value = name === PHONE_NUMBER ? event : event.target.value;
|
|
289
295
|
setValue(value);
|
|
290
296
|
};
|
|
297
|
+
var handleValueKeyDown = function handleValueKeyDown(event) {
|
|
298
|
+
if (!isEditable) return;
|
|
299
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
300
|
+
event.preventDefault();
|
|
301
|
+
setIsEditing(true);
|
|
302
|
+
}
|
|
303
|
+
};
|
|
291
304
|
React.useEffect(function () {
|
|
292
305
|
setValue(item.value);
|
|
293
306
|
}, [item]);
|
|
294
307
|
var labelKey = neetoCist.hyphenate(name !== null && name !== void 0 ? name : label);
|
|
308
|
+
var resolvedLabel = label || t("neetoMolecules.sessionEnvironment.details.keys.".concat(name));
|
|
309
|
+
var isValueEmpty = ramda.isNil(value) || value === "";
|
|
310
|
+
// An empty editable field renders a self-describing "Add <field>" target
|
|
311
|
+
// instead of a bare "-" a few pixels wide.
|
|
312
|
+
var showAddPlaceholder = isValueEmpty && isEditable;
|
|
295
313
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
296
314
|
"data-testid": "metadata-".concat(labelKey, "-container"),
|
|
297
315
|
className: classnames("mb-3 flex place-items-center gap-2 align-middle", extraWrapperClasses, {
|
|
@@ -299,7 +317,7 @@ var Item = function Item(_ref) {
|
|
|
299
317
|
"flex-nowrap": !allowMultiline
|
|
300
318
|
}),
|
|
301
319
|
children: [showIcons && neetoCist.isPresent(iconToRender) ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, {
|
|
302
|
-
content:
|
|
320
|
+
content: resolvedLabel,
|
|
303
321
|
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
304
322
|
className: "text-muted-foreground flex-shrink-0",
|
|
305
323
|
children: iconToRender
|
|
@@ -308,13 +326,13 @@ var Item = function Item(_ref) {
|
|
|
308
326
|
className: "whitespace-nowrap",
|
|
309
327
|
color: "muted",
|
|
310
328
|
"data-testid": "metadata-label-".concat(labelKey),
|
|
311
|
-
variant: "
|
|
312
|
-
children:
|
|
329
|
+
variant: "body3",
|
|
330
|
+
children: resolvedLabel
|
|
313
331
|
}), !isEditing ? /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
314
332
|
children: [kind === "datetime" ? /*#__PURE__*/jsxRuntime.jsx(v2_TimeFormat.DateWeekTime, {
|
|
315
333
|
date: value,
|
|
316
334
|
typographyProps: {
|
|
317
|
-
variant: "
|
|
335
|
+
variant: "body3",
|
|
318
336
|
weight: "medium",
|
|
319
337
|
className: classnames("overflow-hidden truncate whitespace-normal break-all ".concat(extraClasses), {
|
|
320
338
|
"whitespace-nowrap": !allowMultiline
|
|
@@ -322,21 +340,28 @@ var Item = function Item(_ref) {
|
|
|
322
340
|
}
|
|
323
341
|
}) : /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tooltip, {
|
|
324
342
|
content: valueToRender,
|
|
343
|
+
disabled: isValueEmpty,
|
|
325
344
|
position: "top",
|
|
326
345
|
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
346
|
+
color: showAddPlaceholder ? "muted" : undefined,
|
|
327
347
|
"data-testid": "metadata-value-".concat(labelKey),
|
|
328
|
-
|
|
329
|
-
|
|
348
|
+
role: isEditable ? "button" : undefined,
|
|
349
|
+
tabIndex: isEditable ? 0 : undefined,
|
|
350
|
+
variant: "body3",
|
|
351
|
+
weight: showAddPlaceholder ? "normal" : "medium",
|
|
330
352
|
className: classnames("truncate overflow-hidden break-all whitespace-normal ".concat(extraClasses), {
|
|
331
|
-
"hover:border-input cursor-pointer rounded border border-transparent p-0.5 transition-colors motion-reduce:transition-none": isEditable,
|
|
353
|
+
"hover:border-input focus-visible:ring-ring cursor-pointer rounded border border-transparent p-0.5 transition-colors focus-visible:ring-1 focus-visible:outline-none motion-reduce:transition-none": isEditable,
|
|
332
354
|
"whitespace-nowrap": !allowMultiline
|
|
333
355
|
}),
|
|
334
356
|
onClick: function onClick() {
|
|
335
357
|
return isEditable && setIsEditing(true);
|
|
336
358
|
},
|
|
337
|
-
|
|
359
|
+
onKeyDown: handleValueKeyDown,
|
|
360
|
+
children: showAddPlaceholder ? t("neetoMolecules.common.actions.add", {
|
|
361
|
+
entity: resolvedLabel
|
|
362
|
+
}) : valueToRender
|
|
338
363
|
})
|
|
339
|
-
}), showCopyButton && /*#__PURE__*/jsxRuntime.jsx(v2_CopyToClipboardButton, {
|
|
364
|
+
}), showCopyButton && !isValueEmpty && /*#__PURE__*/jsxRuntime.jsx(v2_CopyToClipboardButton, {
|
|
340
365
|
className: "text-muted-foreground size-6 flex-shrink-0",
|
|
341
366
|
value: valueToRender,
|
|
342
367
|
variant: "ghost"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionEnvironment.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/mail.mjs","../../../node_modules/lucide-react/dist/esm/icons/map-pin.mjs","../../../node_modules/lucide-react/dist/esm/icons/phone.mjs","../../../src/v2/components/SessionEnvironment/constants.js","../../../src/v2/components/SessionEnvironment/utils.jsx","../../../src/v2/components/SessionEnvironment/EditField.jsx","../../../src/v2/components/SessionEnvironment/Item.jsx","../../../src/v2/components/SessionEnvironment/DetailsBlock.jsx","../../../src/v2/components/SessionEnvironment/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\", key: \"132q7q\" }],\n [\"rect\", { x: \"2\", y: \"4\", width: \"20\", height: \"16\", rx: \"2\", key: \"izxlao\" }]\n];\nconst Mail = createLucideIcon(\"mail\", __iconNode);\n\nexport { __iconNode, Mail as default };\n//# sourceMappingURL=mail.mjs.map\n","/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\",\n key: \"1r0f0z\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"10\", r: \"3\", key: \"ilqhr7\" }]\n];\nconst MapPin = createLucideIcon(\"map-pin\", __iconNode);\n\nexport { __iconNode, MapPin as default };\n//# sourceMappingURL=map-pin.mjs.map\n","/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\",\n key: \"9njp5v\"\n }\n ]\n];\nconst Phone = createLucideIcon(\"phone\", __iconNode);\n\nexport { __iconNode, Phone as default };\n//# sourceMappingURL=phone.mjs.map\n","import {\n Globe,\n Mail,\n MapPin,\n Monitor,\n Phone,\n Smartphone,\n User,\n} from \"lucide-react\";\nimport {\n Apple,\n Chrome,\n Edge,\n Firefox,\n Safari,\n Ubuntu,\n Windows,\n} from \"neetoicons/misc\";\n\nexport const BOOLEAN_VALUES_MAP = { true: \"Yes\", false: \"No\" };\nexport const ENTER = \"enter\";\nexport const ESCAPE = \"escape\";\nexport const PHONE_NUMBER = \"phone_number\";\nexport const INTEGER = \"integer\";\nexport const ICONS_MAP = {\n name: User,\n user: User,\n email: Mail,\n phone_number: Phone,\n location: MapPin,\n timezone: Globe,\n chrome: Chrome,\n safari: Safari,\n firefox: Firefox,\n edge: Edge,\n ie: Edge,\n windows: Windows,\n mac_os: Apple,\n linux: Ubuntu,\n mobile: Smartphone,\n desktop: Monitor,\n};\n","import { isPresent } from \"neetocist\";\nimport { prop, pipe } from \"ramda\";\n\nimport { ICONS_MAP, INTEGER, PHONE_NUMBER } from \"./constants\";\n\nexport const getInputType = ({ name, kind }) => {\n if (name === PHONE_NUMBER) return \"tel\";\n else if (kind === INTEGER) return \"number\";\n\n return \"text\";\n};\n\nexport const getIcon = ({ iconSize, name, value }) => {\n const Icon =\n name === \"browser\" || name === \"os\"\n ? ICONS_MAP[value?.toLowerCase().replace(\" \", \"_\")]\n : ICONS_MAP[name];\n\n return isPresent(Icon) ? <Icon size={iconSize} /> : null;\n};\n\nexport const isValuePresent = pipe(prop(\"value\"), isPresent);\n\nexport const mergeRefs =\n (...refs) =>\n node =>\n refs\n .filter(Boolean)\n .forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import { memo } from \"react\";\n\nimport { Button, Input } from \"@bigbinary/neeto-atoms\";\nimport { Check, X } from \"lucide-react\";\nimport { hyphenate } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ENTER, ESCAPE, PHONE_NUMBER } from \"./constants\";\nimport { getInputType, mergeRefs } from \"./utils\";\n\nimport { PhoneNumberInput } from \"../PhoneNumber\";\n\nconst EditField = ({\n name,\n error,\n label,\n kind,\n value,\n handleChange,\n handleMetadataCancel,\n handleMetadataSubmit,\n}) => {\n const { t } = useTranslation();\n\n const enterRef = useHotkeys(ENTER, handleMetadataSubmit, {\n mode: \"scoped\",\n });\n\n const cancelRef = useHotkeys(ESCAPE, handleMetadataCancel, {\n mode: \"scoped\",\n });\n\n const InputComponent = name === PHONE_NUMBER ? PhoneNumberInput : Input;\n\n return (\n <div className=\"relative flex min-w-0 flex-grow items-center\">\n <InputComponent\n {...{ error }}\n autoFocus\n className=\"w-full [&_input]:pe-[2.8125rem]\"\n data-testid={`metadata-input-${hyphenate(name)}`}\n placeholder={t(\"neetoMolecules.common.enter\", { what: label })}\n ref={mergeRefs(enterRef, cancelRef)}\n type={getInputType({ name, kind })}\n value={value || \"\"}\n onChange={handleChange}\n />\n <div className=\"absolute end-0 top-0 flex h-8 items-center pe-1\">\n <Button\n data-testid={`metadata-cancel-${hyphenate(name)}`}\n icon={X}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n }}\n onClick={handleMetadataCancel}\n />\n <Button\n data-testid={`metadata-submit-${hyphenate(name)}`}\n icon={Check}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n }}\n onClick={handleMetadataSubmit}\n />\n </div>\n </div>\n );\n};\n\nexport default memo(EditField);\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { Tooltip, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { isPresent, hyphenate } from \"neetocist\";\nimport { isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { BOOLEAN_VALUES_MAP, PHONE_NUMBER } from \"./constants\";\nimport EditField from \"./EditField\";\nimport { getIcon } from \"./utils\";\n\nimport CopyToClipboardButton from \"../CopyToClipboardButton\";\nimport TimeFormat from \"../TimeFormat\";\n\nconst Item = ({\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n item,\n showIcons,\n}) => {\n const [isEditing, setIsEditing] = useState(item.isEditing);\n const [value, setValue] = useState(item.value);\n\n const { t } = useTranslation();\n\n const {\n icon,\n isEditable = false,\n extraClasses = \"\",\n extraWrapperClasses = \"\",\n id,\n fieldValueId,\n custom = false,\n name,\n kind,\n error,\n label,\n showCopyButton = false,\n } = item;\n\n const valueToRender = useMemo(() => {\n if (isNil(value)) return \"-\";\n\n if (typeof value === \"boolean\") return BOOLEAN_VALUES_MAP[value.toString()];\n\n if (name === \"email\") return value.toLowerCase();\n\n return value;\n }, [value]);\n\n const iconToRender = useMemo(\n () => icon || getIcon({ iconSize, name, value }),\n [icon, iconSize, name, value]\n );\n\n const onSuccess = () => setIsEditing(false);\n\n const handleMetadataSubmit = () =>\n handleSubmit({ fieldId: id, fieldValueId, name, value, custom, onSuccess });\n\n const handleMetadataCancel = () => {\n setIsEditing(false);\n setValue(item.value);\n handleCancel(name);\n };\n\n const handleChange = event => {\n const value = name === PHONE_NUMBER ? event : event.target.value;\n setValue(value);\n };\n\n useEffect(() => {\n setValue(item.value);\n }, [item]);\n\n const labelKey = hyphenate(name ?? label);\n\n return (\n <div\n data-testid={`metadata-${labelKey}-container`}\n className={classNames(\n \"mb-3 flex place-items-center gap-2 align-middle\",\n extraWrapperClasses,\n {\n \"flex-wrap\": name !== PHONE_NUMBER && allowMultiline,\n \"flex-nowrap\": !allowMultiline,\n }\n )}\n >\n {showIcons && isPresent(iconToRender) ? (\n <Tooltip\n content={\n label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)\n }\n >\n {/* Icons act as the row's label — mute them like the text labels so\n values carry the visual weight. */}\n <div className=\"text-muted-foreground flex-shrink-0\">\n {iconToRender}\n </div>\n </Tooltip>\n ) : (\n <Typography\n className=\"whitespace-nowrap\"\n color=\"muted\"\n data-testid={`metadata-label-${labelKey}`}\n variant=\"body2\"\n >\n {label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`)}\n </Typography>\n )}\n {!isEditing ? (\n <>\n {kind === \"datetime\" ? (\n <TimeFormat.DateWeekTime\n date={value}\n typographyProps={{\n variant: \"body2\",\n weight: \"medium\",\n className: classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n { \"whitespace-nowrap\": !allowMultiline }\n ),\n }}\n />\n ) : (\n <Tooltip content={valueToRender} position=\"top\">\n <Typography\n data-testid={`metadata-value-${labelKey}`}\n variant=\"body2\"\n weight=\"medium\"\n className={classNames(\n `truncate overflow-hidden break-all whitespace-normal ${extraClasses}`,\n {\n \"hover:border-input cursor-pointer rounded border border-transparent p-0.5 transition-colors motion-reduce:transition-none\":\n isEditable,\n \"whitespace-nowrap\": !allowMultiline,\n }\n )}\n onClick={() => isEditable && setIsEditing(true)}\n >\n {valueToRender}\n </Typography>\n </Tooltip>\n )}\n {showCopyButton && (\n <CopyToClipboardButton\n className=\"text-muted-foreground size-6 flex-shrink-0\"\n value={valueToRender}\n variant=\"ghost\"\n />\n )}\n </>\n ) : (\n <EditField\n {...{\n error,\n handleChange,\n handleMetadataCancel,\n handleMetadataSubmit,\n kind,\n label,\n name,\n value,\n }}\n />\n )}\n </div>\n );\n};\n\nexport default Item;\n","import { memo } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport { isPresent, noop } from \"neetocist\";\n\nimport Item from \"./Item\";\nimport { isValuePresent } from \"./utils\";\n\nimport HelpPopover from \"../HelpPopover\";\n\nconst DetailsBlock = ({\n allowMultiline = true,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps,\n iconSize,\n showIcons = false,\n title = \"\",\n}) => (\n <div className=\"mb-4\" data-testid=\"details-block-items-parent\">\n {title && (\n <div className=\"mb-2 flex items-center gap-2\">\n <Typography className=\"uppercase\" variant=\"h6\" weight=\"bold\">\n {title}\n </Typography>\n {isPresent(helpPopoverProps) && <HelpPopover {...helpPopoverProps} />}\n </div>\n )}\n {details\n .filter(detail => detail.isEditable || isValuePresent(detail))\n .map((detail, index) => (\n <Item\n {...{\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n showIcons,\n }}\n item={detail}\n key={index}\n />\n ))}\n </div>\n);\n\nexport default memo(DetailsBlock);\n","import { memo, useMemo, useState } from \"react\";\n\nimport { Button, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { ChevronDown, ChevronUp } from \"lucide-react\";\nimport { filterBy, isPresent, noop, removeBy } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { pluck, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DetailsBlock from \"./DetailsBlock\";\n\nconst SessionEnvironment = ({\n allowMultiline = false,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps = {},\n iconSize = 20,\n isLoading = false,\n moreDetails = [],\n title = \"\",\n}) => {\n const [showViewMore, setShowViewMore] = useState(false);\n\n const customViewMoreItems = useMemo(\n () => filterBy({ kind: \"custom\" }, moreDetails),\n [moreDetails]\n );\n\n const { t } = useTranslation();\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner data-testid=\"neeto-ui-spinner\" />\n </div>\n );\n }\n\n return (\n <div className=\"w-full\">\n <DetailsBlock\n {...{\n allowMultiline,\n details,\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n title,\n }}\n showIcons\n />\n {showViewMore && (\n <>\n <hr className=\"border-border my-4\" />\n <DetailsBlock\n {...{\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n }}\n details={removeBy({ kind: \"custom\" }, moreDetails)}\n />\n {isPresent(customViewMoreItems) && (\n <>\n <hr className=\"border-border my-4\" />\n {pluck(\"value\", customViewMoreItems)}\n </>\n )}\n </>\n )}\n <Button\n className=\"mb-4\"\n data-testid=\"view-more-less-button\"\n icon={showViewMore ? ChevronUp : ChevronDown}\n variant=\"link\"\n label={\n showViewMore\n ? t(\"neetoMolecules.sessionEnvironment.viewLess\")\n : t(\"neetoMolecules.sessionEnvironment.viewMore\")\n }\n onClick={() => setShowViewMore(not)}\n />\n </div>\n );\n};\n\nSessionEnvironment.propTypes = {\n /*\n details can be an array of fields to be displayed.\n */\n details: PropTypes.array,\n /*\n handleCancel is a function that will be called when the cancel button is clicked.\n */\n handleCancel: PropTypes.func,\n /*\n handleSubmit is a function that will be called when the form is submitted.\n */\n handleSubmit: PropTypes.func,\n /*\n helpPopoverProps are the props that will be passed to the HelpPopover component.\n */\n helpPopoverProps: PropTypes.object,\n /*\n iconSize is a number that will be used to set the size of the icon.\n */\n iconSize: PropTypes.number,\n /*\n isLoading is a boolean that will be used to show a spinner when true.\n */\n isLoading: PropTypes.bool,\n /*\n moreDetails can be an array of fields to be displayed when the view more button is clicked.\n */\n moreDetails: PropTypes.array,\n /*\n The title to be displayed above the details.\n */\n title: PropTypes.string,\n /*\n allowMultiline is a boolean that will be used to decide whether the items should be displayed in a single line or multiple lines.\n */\n allowMultiline: PropTypes.bool,\n};\n\nexport default memo(SessionEnvironment);\n"],"names":["__iconNode","createLucideIcon","BOOLEAN_VALUES_MAP","ENTER","ESCAPE","PHONE_NUMBER","INTEGER","ICONS_MAP","name","User","user","email","Mail","phone_number","Phone","location","MapPin","timezone","Globe","chrome","Chrome","safari","Safari","firefox","Firefox","edge","Edge","ie","windows","Windows","mac_os","Apple","linux","Ubuntu","mobile","Smartphone","desktop","Monitor","getInputType","_ref","kind","getIcon","_ref2","iconSize","value","Icon","toLowerCase","replace","isPresent","_jsx","size","isValuePresent","pipe","prop","mergeRefs","_len","arguments","length","refs","Array","_key","node","filter","Boolean","forEach","ref","current","EditField","error","label","handleChange","handleMetadataCancel","handleMetadataSubmit","_useTranslation","useTranslation","t","enterRef","useHotkeys","mode","cancelRef","InputComponent","PhoneNumberInput","Input","_jsxs","className","children","autoFocus","concat","hyphenate","placeholder","what","type","onChange","Button","icon","X","variant","tooltipProps","content","position","onClick","Check","memo","Item","allowMultiline","handleCancel","handleSubmit","item","showIcons","_useState","useState","isEditing","_useState2","_slicedToArray","setIsEditing","_useState3","_useState4","setValue","_item$isEditable","isEditable","_item$extraClasses","extraClasses","_item$extraWrapperCla","extraWrapperClasses","id","fieldValueId","_item$custom","custom","_item$showCopyButton","showCopyButton","valueToRender","useMemo","isNil","toString","iconToRender","onSuccess","fieldId","event","target","useEffect","labelKey","classNames","Tooltip","Typography","color","_Fragment","TimeFormat","DateWeekTime","date","typographyProps","weight","CopyToClipboardButton","DetailsBlock","_ref$allowMultiline","details","_ref$handleCancel","noop","_ref$handleSubmit","helpPopoverProps","_ref$showIcons","_ref$title","title","HelpPopover","_objectSpread","detail","map","index","_createElement","key","SessionEnvironment","_ref$helpPopoverProps","_ref$iconSize","_ref$isLoading","isLoading","_ref$moreDetails","moreDetails","showViewMore","setShowViewMore","customViewMoreItems","filterBy","Spinner","removeBy","pluck","ChevronUp","ChevronDown","not"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"SessionEnvironment.js","sources":["../../../node_modules/lucide-react/dist/esm/icons/mail.mjs","../../../node_modules/lucide-react/dist/esm/icons/map-pin.mjs","../../../node_modules/lucide-react/dist/esm/icons/phone.mjs","../../../src/v2/components/SessionEnvironment/constants.js","../../../src/v2/components/SessionEnvironment/utils.jsx","../../../src/v2/components/SessionEnvironment/EditField.jsx","../../../src/v2/components/SessionEnvironment/Item.jsx","../../../src/v2/components/SessionEnvironment/DetailsBlock.jsx","../../../src/v2/components/SessionEnvironment/index.jsx"],"sourcesContent":["/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\", key: \"132q7q\" }],\n [\"rect\", { x: \"2\", y: \"4\", width: \"20\", height: \"16\", rx: \"2\", key: \"izxlao\" }]\n];\nconst Mail = createLucideIcon(\"mail\", __iconNode);\n\nexport { __iconNode, Mail as default };\n//# sourceMappingURL=mail.mjs.map\n","/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\",\n key: \"1r0f0z\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"10\", r: \"3\", key: \"ilqhr7\" }]\n];\nconst MapPin = createLucideIcon(\"map-pin\", __iconNode);\n\nexport { __iconNode, MapPin as default };\n//# sourceMappingURL=map-pin.mjs.map\n","/**\n * @license lucide-react v1.24.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384\",\n key: \"9njp5v\"\n }\n ]\n];\nconst Phone = createLucideIcon(\"phone\", __iconNode);\n\nexport { __iconNode, Phone as default };\n//# sourceMappingURL=phone.mjs.map\n","import {\n Globe,\n Mail,\n MapPin,\n Monitor,\n Phone,\n Smartphone,\n User,\n} from \"lucide-react\";\nimport {\n Apple,\n Chrome,\n Edge,\n Firefox,\n Safari,\n Ubuntu,\n Windows,\n} from \"neetoicons/misc\";\n\nexport const BOOLEAN_VALUES_MAP = { true: \"Yes\", false: \"No\" };\nexport const ENTER = \"enter\";\nexport const ESCAPE = \"escape\";\nexport const PHONE_NUMBER = \"phone_number\";\nexport const INTEGER = \"integer\";\nexport const ICONS_MAP = {\n name: User,\n user: User,\n email: Mail,\n phone_number: Phone,\n location: MapPin,\n timezone: Globe,\n chrome: Chrome,\n safari: Safari,\n mobile_safari: Safari,\n firefox: Firefox,\n edge: Edge,\n ie: Edge,\n windows: Windows,\n mac_os: Apple,\n // ua-parser-js v2 renamed \"Mac OS\" to \"macOS\" (and reports \"iOS\"/\"Ubuntu\"\n // directly), so the derived lookup keys changed; keep the v1 keys too.\n macos: Apple,\n ios: Apple,\n ubuntu: Ubuntu,\n linux: Ubuntu,\n mobile: Smartphone,\n desktop: Monitor,\n};\n","import { isPresent } from \"neetocist\";\nimport { prop, pipe } from \"ramda\";\n\nimport { ICONS_MAP, INTEGER, PHONE_NUMBER } from \"./constants\";\n\nexport const getInputType = ({ name, kind }) => {\n if (name === PHONE_NUMBER) return \"tel\";\n else if (kind === INTEGER) return \"number\";\n\n return \"text\";\n};\n\nexport const getIcon = ({ iconSize, name, value }) => {\n const Icon =\n name === \"browser\" || name === \"os\"\n ? ICONS_MAP[value?.toLowerCase().replace(\" \", \"_\")]\n : ICONS_MAP[name];\n\n return isPresent(Icon) ? <Icon size={iconSize} /> : null;\n};\n\nexport const isValuePresent = pipe(prop(\"value\"), isPresent);\n\nexport const mergeRefs =\n (...refs) =>\n node =>\n refs\n .filter(Boolean)\n .forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import { memo } from \"react\";\n\nimport { Button, Input } from \"@bigbinary/neeto-atoms\";\nimport { Check, X } from \"lucide-react\";\nimport { hyphenate } from \"neetocist\";\nimport useHotkeys from \"neetohotkeys\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { ENTER, ESCAPE, PHONE_NUMBER } from \"./constants\";\nimport { getInputType, mergeRefs } from \"./utils\";\n\nimport { PhoneNumberInput } from \"../PhoneNumber\";\n\nconst EditField = ({\n name,\n error,\n label,\n kind,\n value,\n handleChange,\n handleMetadataCancel,\n handleMetadataSubmit,\n}) => {\n const { t } = useTranslation();\n\n const enterRef = useHotkeys(ENTER, handleMetadataSubmit, {\n mode: \"scoped\",\n });\n\n const cancelRef = useHotkeys(ESCAPE, handleMetadataCancel, {\n mode: \"scoped\",\n });\n\n const InputComponent = name === PHONE_NUMBER ? PhoneNumberInput : Input;\n\n return (\n <div className=\"relative flex min-w-0 flex-grow items-center\">\n <InputComponent\n {...{ error }}\n autoFocus\n className=\"w-full [&_input]:pe-[2.8125rem]\"\n data-testid={`metadata-input-${hyphenate(name)}`}\n placeholder={t(\"neetoMolecules.common.enter\", { what: label })}\n ref={mergeRefs(enterRef, cancelRef)}\n type={getInputType({ name, kind })}\n value={value || \"\"}\n onChange={handleChange}\n />\n <div className=\"absolute end-0 top-0 flex h-8 items-center pe-1\">\n <Button\n data-testid={`metadata-cancel-${hyphenate(name)}`}\n icon={X}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n }}\n onClick={handleMetadataCancel}\n />\n <Button\n data-testid={`metadata-submit-${hyphenate(name)}`}\n icon={Check}\n size=\"sm\"\n variant=\"ghost\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n }}\n onClick={handleMetadataSubmit}\n />\n </div>\n </div>\n );\n};\n\nexport default memo(EditField);\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { Tooltip, Typography } from \"@bigbinary/neeto-atoms\";\nimport classNames from \"classnames\";\nimport { isPresent, hyphenate } from \"neetocist\";\nimport { isNil } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { BOOLEAN_VALUES_MAP, PHONE_NUMBER } from \"./constants\";\nimport EditField from \"./EditField\";\nimport { getIcon } from \"./utils\";\n\nimport CopyToClipboardButton from \"../CopyToClipboardButton\";\nimport TimeFormat from \"../TimeFormat\";\n\nconst Item = ({\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n item,\n showIcons,\n}) => {\n const [isEditing, setIsEditing] = useState(item.isEditing);\n const [value, setValue] = useState(item.value);\n\n const { t } = useTranslation();\n\n const {\n icon,\n isEditable = false,\n extraClasses = \"\",\n extraWrapperClasses = \"\",\n id,\n fieldValueId,\n custom = false,\n name,\n kind,\n error,\n label,\n showCopyButton = false,\n } = item;\n\n const valueToRender = useMemo(() => {\n if (isNil(value) || value === \"\") return \"-\";\n\n if (typeof value === \"boolean\") return BOOLEAN_VALUES_MAP[value.toString()];\n\n if (name === \"email\") return value.toLowerCase();\n\n return value;\n }, [value]);\n\n const iconToRender = useMemo(\n () => icon || getIcon({ iconSize, name, value }),\n [icon, iconSize, name, value]\n );\n\n const onSuccess = () => setIsEditing(false);\n\n const handleMetadataSubmit = () =>\n handleSubmit({ fieldId: id, fieldValueId, name, value, custom, onSuccess });\n\n const handleMetadataCancel = () => {\n setIsEditing(false);\n setValue(item.value);\n handleCancel(name);\n };\n\n const handleChange = event => {\n const value = name === PHONE_NUMBER ? event : event.target.value;\n setValue(value);\n };\n\n const handleValueKeyDown = event => {\n if (!isEditable) return;\n\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n setIsEditing(true);\n }\n };\n\n useEffect(() => {\n setValue(item.value);\n }, [item]);\n\n const labelKey = hyphenate(name ?? label);\n const resolvedLabel =\n label || t(`neetoMolecules.sessionEnvironment.details.keys.${name}`);\n const isValueEmpty = isNil(value) || value === \"\";\n // An empty editable field renders a self-describing \"Add <field>\" target\n // instead of a bare \"-\" a few pixels wide.\n const showAddPlaceholder = isValueEmpty && isEditable;\n\n return (\n <div\n data-testid={`metadata-${labelKey}-container`}\n className={classNames(\n \"mb-3 flex place-items-center gap-2 align-middle\",\n extraWrapperClasses,\n {\n \"flex-wrap\": name !== PHONE_NUMBER && allowMultiline,\n \"flex-nowrap\": !allowMultiline,\n }\n )}\n >\n {showIcons && isPresent(iconToRender) ? (\n <Tooltip content={resolvedLabel}>\n {/* Icons act as the row's label — mute them like the text labels so\n values carry the visual weight. */}\n <div className=\"text-muted-foreground flex-shrink-0\">\n {iconToRender}\n </div>\n </Tooltip>\n ) : (\n <Typography\n className=\"whitespace-nowrap\"\n color=\"muted\"\n data-testid={`metadata-label-${labelKey}`}\n variant=\"body3\"\n >\n {resolvedLabel}\n </Typography>\n )}\n {!isEditing ? (\n <>\n {kind === \"datetime\" ? (\n <TimeFormat.DateWeekTime\n date={value}\n typographyProps={{\n variant: \"body3\",\n weight: \"medium\",\n className: classNames(\n `overflow-hidden truncate whitespace-normal break-all ${extraClasses}`,\n { \"whitespace-nowrap\": !allowMultiline }\n ),\n }}\n />\n ) : (\n <Tooltip\n content={valueToRender}\n disabled={isValueEmpty}\n position=\"top\"\n >\n <Typography\n color={showAddPlaceholder ? \"muted\" : undefined}\n data-testid={`metadata-value-${labelKey}`}\n role={isEditable ? \"button\" : undefined}\n tabIndex={isEditable ? 0 : undefined}\n variant=\"body3\"\n weight={showAddPlaceholder ? \"normal\" : \"medium\"}\n className={classNames(\n `truncate overflow-hidden break-all whitespace-normal ${extraClasses}`,\n {\n \"hover:border-input focus-visible:ring-ring cursor-pointer rounded border border-transparent p-0.5 transition-colors focus-visible:ring-1 focus-visible:outline-none motion-reduce:transition-none\":\n isEditable,\n \"whitespace-nowrap\": !allowMultiline,\n }\n )}\n onClick={() => isEditable && setIsEditing(true)}\n onKeyDown={handleValueKeyDown}\n >\n {showAddPlaceholder\n ? t(\"neetoMolecules.common.actions.add\", {\n entity: resolvedLabel,\n })\n : valueToRender}\n </Typography>\n </Tooltip>\n )}\n {showCopyButton && !isValueEmpty && (\n <CopyToClipboardButton\n className=\"text-muted-foreground size-6 flex-shrink-0\"\n value={valueToRender}\n variant=\"ghost\"\n />\n )}\n </>\n ) : (\n <EditField\n {...{\n error,\n handleChange,\n handleMetadataCancel,\n handleMetadataSubmit,\n kind,\n label,\n name,\n value,\n }}\n />\n )}\n </div>\n );\n};\n\nexport default Item;\n","import { memo } from \"react\";\n\nimport { Typography } from \"@bigbinary/neeto-atoms\";\nimport { isPresent, noop } from \"neetocist\";\n\nimport Item from \"./Item\";\nimport { isValuePresent } from \"./utils\";\n\nimport HelpPopover from \"../HelpPopover\";\n\nconst DetailsBlock = ({\n allowMultiline = true,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps,\n iconSize,\n showIcons = false,\n title = \"\",\n}) => (\n <div className=\"mb-4\" data-testid=\"details-block-items-parent\">\n {title && (\n <div className=\"mb-2 flex items-center gap-2\">\n <Typography className=\"uppercase\" variant=\"h6\" weight=\"bold\">\n {title}\n </Typography>\n {isPresent(helpPopoverProps) && <HelpPopover {...helpPopoverProps} />}\n </div>\n )}\n {details\n .filter(detail => detail.isEditable || isValuePresent(detail))\n .map((detail, index) => (\n <Item\n {...{\n allowMultiline,\n handleCancel,\n handleSubmit,\n iconSize,\n showIcons,\n }}\n item={detail}\n key={index}\n />\n ))}\n </div>\n);\n\nexport default memo(DetailsBlock);\n","import { memo, useMemo, useState } from \"react\";\n\nimport { Button, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { ChevronDown, ChevronUp } from \"lucide-react\";\nimport { filterBy, isPresent, noop, removeBy } from \"neetocist\";\nimport PropTypes from \"prop-types\";\nimport { pluck, not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DetailsBlock from \"./DetailsBlock\";\n\nconst SessionEnvironment = ({\n allowMultiline = false,\n details,\n handleCancel = noop,\n handleSubmit = noop,\n helpPopoverProps = {},\n iconSize = 20,\n isLoading = false,\n moreDetails = [],\n title = \"\",\n}) => {\n const [showViewMore, setShowViewMore] = useState(false);\n\n const customViewMoreItems = useMemo(\n () => filterBy({ kind: \"custom\" }, moreDetails),\n [moreDetails]\n );\n\n const { t } = useTranslation();\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner data-testid=\"neeto-ui-spinner\" />\n </div>\n );\n }\n\n return (\n <div className=\"w-full\">\n <DetailsBlock\n {...{\n allowMultiline,\n details,\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n title,\n }}\n showIcons\n />\n {showViewMore && (\n <>\n <hr className=\"border-border my-4\" />\n <DetailsBlock\n {...{\n handleCancel,\n handleSubmit,\n helpPopoverProps,\n iconSize,\n }}\n details={removeBy({ kind: \"custom\" }, moreDetails)}\n />\n {isPresent(customViewMoreItems) && (\n <>\n <hr className=\"border-border my-4\" />\n {pluck(\"value\", customViewMoreItems)}\n </>\n )}\n </>\n )}\n <Button\n className=\"mb-4\"\n data-testid=\"view-more-less-button\"\n icon={showViewMore ? ChevronUp : ChevronDown}\n variant=\"link\"\n label={\n showViewMore\n ? t(\"neetoMolecules.sessionEnvironment.viewLess\")\n : t(\"neetoMolecules.sessionEnvironment.viewMore\")\n }\n onClick={() => setShowViewMore(not)}\n />\n </div>\n );\n};\n\nSessionEnvironment.propTypes = {\n /*\n details can be an array of fields to be displayed.\n */\n details: PropTypes.array,\n /*\n handleCancel is a function that will be called when the cancel button is clicked.\n */\n handleCancel: PropTypes.func,\n /*\n handleSubmit is a function that will be called when the form is submitted.\n */\n handleSubmit: PropTypes.func,\n /*\n helpPopoverProps are the props that will be passed to the HelpPopover component.\n */\n helpPopoverProps: PropTypes.object,\n /*\n iconSize is a number that will be used to set the size of the icon.\n */\n iconSize: PropTypes.number,\n /*\n isLoading is a boolean that will be used to show a spinner when true.\n */\n isLoading: PropTypes.bool,\n /*\n moreDetails can be an array of fields to be displayed when the view more button is clicked.\n */\n moreDetails: PropTypes.array,\n /*\n The title to be displayed above the details.\n */\n title: PropTypes.string,\n /*\n allowMultiline is a boolean that will be used to decide whether the items should be displayed in a single line or multiple lines.\n */\n allowMultiline: PropTypes.bool,\n};\n\nexport default memo(SessionEnvironment);\n"],"names":["__iconNode","createLucideIcon","BOOLEAN_VALUES_MAP","ENTER","ESCAPE","PHONE_NUMBER","INTEGER","ICONS_MAP","name","User","user","email","Mail","phone_number","Phone","location","MapPin","timezone","Globe","chrome","Chrome","safari","Safari","mobile_safari","firefox","Firefox","edge","Edge","ie","windows","Windows","mac_os","Apple","macos","ios","ubuntu","Ubuntu","linux","mobile","Smartphone","desktop","Monitor","getInputType","_ref","kind","getIcon","_ref2","iconSize","value","Icon","toLowerCase","replace","isPresent","_jsx","size","isValuePresent","pipe","prop","mergeRefs","_len","arguments","length","refs","Array","_key","node","filter","Boolean","forEach","ref","current","EditField","error","label","handleChange","handleMetadataCancel","handleMetadataSubmit","_useTranslation","useTranslation","t","enterRef","useHotkeys","mode","cancelRef","InputComponent","PhoneNumberInput","Input","_jsxs","className","children","autoFocus","concat","hyphenate","placeholder","what","type","onChange","Button","icon","X","variant","tooltipProps","content","position","onClick","Check","memo","Item","allowMultiline","handleCancel","handleSubmit","item","showIcons","_useState","useState","isEditing","_useState2","_slicedToArray","setIsEditing","_useState3","_useState4","setValue","_item$isEditable","isEditable","_item$extraClasses","extraClasses","_item$extraWrapperCla","extraWrapperClasses","id","fieldValueId","_item$custom","custom","_item$showCopyButton","showCopyButton","valueToRender","useMemo","isNil","toString","iconToRender","onSuccess","fieldId","event","target","handleValueKeyDown","key","preventDefault","useEffect","labelKey","resolvedLabel","isValueEmpty","showAddPlaceholder","classNames","Tooltip","Typography","color","_Fragment","TimeFormat","DateWeekTime","date","typographyProps","weight","disabled","undefined","role","tabIndex","onKeyDown","entity","CopyToClipboardButton","DetailsBlock","_ref$allowMultiline","details","_ref$handleCancel","noop","_ref$handleSubmit","helpPopoverProps","_ref$showIcons","_ref$title","title","HelpPopover","_objectSpread","detail","map","index","_createElement","SessionEnvironment","_ref$helpPopoverProps","_ref$iconSize","_ref$isLoading","isLoading","_ref$moreDetails","moreDetails","showViewMore","setShowViewMore","customViewMoreItems","filterBy","Spinner","removeBy","pluck","ChevronUp","ChevronDown","not"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
@@ -5,6 +5,7 @@ var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
|
5
5
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
|
+
var check = require('../check-DRNN0_Gt.js');
|
|
8
9
|
var injectCss = require('../inject-css-B6qYtOJe.js');
|
|
9
10
|
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
10
11
|
var ramda = require('ramda');
|
|
@@ -13,9 +14,13 @@ var x = require('../x-B2CPkf_D.js');
|
|
|
13
14
|
var chevronDown = require('../chevron-down-DF-0X6bx.js');
|
|
14
15
|
require('../createLucideIcon-BbuuRL2u.js');
|
|
15
16
|
|
|
17
|
+
var ICON_SIZE = 16;
|
|
18
|
+
|
|
16
19
|
var Menu$1 = function Menu(_ref) {
|
|
17
20
|
var onItemClick = _ref.onItemClick,
|
|
18
21
|
options = _ref.options,
|
|
22
|
+
_ref$selectedValue = _ref.selectedValue,
|
|
23
|
+
selectedValue = _ref$selectedValue === void 0 ? null : _ref$selectedValue,
|
|
19
24
|
_ref$shouldShowAllOpt = _ref.shouldShowAllOptions,
|
|
20
25
|
shouldShowAllOptions = _ref$shouldShowAllOpt === void 0 ? false : _ref$shouldShowAllOpt,
|
|
21
26
|
_ref$hiddenStatuses = _ref.hiddenStatuses,
|
|
@@ -23,11 +28,17 @@ var Menu$1 = function Menu(_ref) {
|
|
|
23
28
|
var allowedOptions = shouldShowAllOptions ? options : options.filter(function (status) {
|
|
24
29
|
return !hiddenStatuses.includes(status.value);
|
|
25
30
|
});
|
|
26
|
-
return /*#__PURE__*/jsxRuntime.jsx(
|
|
31
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
32
|
+
className: "flex w-full flex-col gap-y-0.5",
|
|
27
33
|
children: allowedOptions === null || allowedOptions === void 0 ? void 0 : allowedOptions.map(function (option) {
|
|
34
|
+
var isSelected = neetoCist.isPresent(selectedValue) && option.value === selectedValue;
|
|
28
35
|
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu.MenuItem, {
|
|
29
36
|
className: "status-dropdown-item--".concat(option.color),
|
|
30
37
|
"data-testid": "status-dropdown-item-".concat(neetoCist.hyphenate(option.value)),
|
|
38
|
+
isActive: isSelected,
|
|
39
|
+
suffix: isSelected && /*#__PURE__*/jsxRuntime.jsx(check.Check, {
|
|
40
|
+
size: ICON_SIZE
|
|
41
|
+
}),
|
|
31
42
|
onClick: function onClick() {
|
|
32
43
|
return onItemClick(option);
|
|
33
44
|
},
|
|
@@ -38,11 +49,9 @@ var Menu$1 = function Menu(_ref) {
|
|
|
38
49
|
};
|
|
39
50
|
var Menu = /*#__PURE__*/React.memo(Menu$1);
|
|
40
51
|
|
|
41
|
-
var css = ":root{--neeto-molecules-status-color-open:9,90,186;--neeto-molecules-status-color-done:189,100,13;--neeto-molecules-status-color-waiting:47,57,65;--neeto-molecules-status-color-red:187,18,26;--neeto-molecules-status-color-yellow:255,204,112;--neeto-molecules-status-color-violet:157,98,162;--neeto-molecules-status-color-pink:225,62,230;--neeto-molecules-status-color-teal:38,87,124;--neeto-molecules-status-color-cyan:66,160,157;--neeto-molecules-status-color-green:16,113,84;--neeto-molecules-status-bg-open:226,241,255;--neeto-molecules-status-bg-done:250,241,225;--neeto-molecules-status-bg-waiting:233,235,237;--neeto-molecules-status-bg-red:254,236,240;--neeto-molecules-status-bg-yellow:255,247,233;--neeto-molecules-status-bg-violet:235,222,255;--neeto-molecules-status-bg-pink:254,233,255;--neeto-molecules-status-bg-teal:228,244,255;--neeto-molecules-status-bg-cyan:224,255,254;--neeto-molecules-status-bg-green:224,244,238}.dark{--neeto-molecules-status-color-open:144,194,255;--neeto-molecules-status-bg-open:24,42,66;--neeto-molecules-status-color-done:255,194,121;--neeto-molecules-status-bg-done:54,38,18;--neeto-molecules-status-color-waiting:255,255,255;--neeto-molecules-status-bg-waiting:16,24,40;--neeto-molecules-status-color-red:255,119,130;--neeto-molecules-status-bg-red:60,20,24;--neeto-molecules-status-color-yellow:255,221,138;--neeto-molecules-status-bg-yellow:60,48,20;--neeto-molecules-status-color-violet:218,170,255;--neeto-molecules-status-bg-violet:49,27,63;--neeto-molecules-status-color-pink:255,155,255;--neeto-molecules-status-bg-pink:56,30,60;--neeto-molecules-status-color-teal:139,205,255;--neeto-molecules-status-bg-teal:22,42,55;--neeto-molecules-status-color-cyan:130,255,247;--neeto-molecules-status-bg-cyan:14,49,48;--neeto-molecules-status-color-green:117,255,195;--neeto-molecules-status-bg-green:15,50,36}.status-dropdown-target--cyan,.status-dropdown-target--done,.status-dropdown-target--green,.status-dropdown-target--open,.status-dropdown-target--pink,.status-dropdown-target--red,.status-dropdown-target--teal,.status-dropdown-target--violet,.status-dropdown-target--waiting,.status-dropdown-target--yellow{background-color:rgb(var(--status-target-bg));color:rgb(var(--status-target-color))}.status-dropdown-target--open{--status-target-color:var(--neeto-molecules-status-color-open);--status-target-bg:var(--neeto-molecules-status-bg-open)}.status-dropdown-target--done{--status-target-color:var(--neeto-molecules-status-color-done);--status-target-bg:var(--neeto-molecules-status-bg-done)}.status-dropdown-target--waiting{--status-target-color:var(--neeto-molecules-status-color-waiting);--status-target-bg:var(--neeto-molecules-status-bg-waiting)}.status-dropdown-target--red{--status-target-color:var(--neeto-molecules-status-color-red);--status-target-bg:var(--neeto-molecules-status-bg-red)}.status-dropdown-target--yellow{--status-target-color:var(--neeto-molecules-status-color-yellow);--status-target-bg:var(--neeto-molecules-status-bg-yellow)}.status-dropdown-target--violet{--status-target-color:var(--neeto-molecules-status-color-violet);--status-target-bg:var(--neeto-molecules-status-bg-violet)}.status-dropdown-target--pink{--status-target-color:var(--neeto-molecules-status-color-pink);--status-target-bg:var(--neeto-molecules-status-bg-pink)}.status-dropdown-target--teal{--status-target-color:var(--neeto-molecules-status-color-teal);--status-target-bg:var(--neeto-molecules-status-bg-teal)}.status-dropdown-target--cyan{--status-target-color:var(--neeto-molecules-status-color-cyan);--status-target-bg:var(--neeto-molecules-status-bg-cyan)}.status-dropdown-target--green{--status-target-color:var(--neeto-molecules-status-color-green);--status-target-bg:var(--neeto-molecules-status-bg-green)}.status-dropdown-item--open{color:#095aba!important;color:rgb(var(--neeto-molecules-status-color-open))!important}.status-dropdown-item--done{color:#bd640d!important;color:rgb(var(--neeto-molecules-status-color-done))!important}.status-dropdown-item--waiting{color:#2f3941!important;color:rgb(var(--neeto-molecules-status-color-waiting))!important}.status-dropdown-item--red{color:#bb121a!important;color:rgb(var(--neeto-molecules-status-color-red))!important}.status-dropdown-item--yellow{color:#ffcc70!important;color:rgb(var(--neeto-molecules-status-color-yellow))!important}.status-dropdown-item--violet{color:#9d62a2!important;color:rgb(var(--neeto-molecules-status-color-violet))!important}.status-dropdown-item--pink{color:#e13ee6!important;color:rgb(var(--neeto-molecules-status-color-pink))!important}.status-dropdown-item--teal{color:#26577c!important;color:rgb(var(--neeto-molecules-status-color-teal))!important}.status-dropdown-item--cyan{color:#42a09d!important;color:rgb(var(--neeto-molecules-status-color-cyan))!important}.status-dropdown-item--green{color:#107154!important;color:rgb(var(--neeto-molecules-status-color-green))!important}";
|
|
52
|
+
var css = ":root{--neeto-molecules-status-color-open:9,90,186;--neeto-molecules-status-color-done:189,100,13;--neeto-molecules-status-color-waiting:47,57,65;--neeto-molecules-status-color-red:187,18,26;--neeto-molecules-status-color-yellow:255,204,112;--neeto-molecules-status-color-violet:157,98,162;--neeto-molecules-status-color-pink:225,62,230;--neeto-molecules-status-color-teal:38,87,124;--neeto-molecules-status-color-cyan:66,160,157;--neeto-molecules-status-color-green:16,113,84;--neeto-molecules-status-bg-open:226,241,255;--neeto-molecules-status-bg-done:250,241,225;--neeto-molecules-status-bg-waiting:233,235,237;--neeto-molecules-status-bg-red:254,236,240;--neeto-molecules-status-bg-yellow:255,247,233;--neeto-molecules-status-bg-violet:235,222,255;--neeto-molecules-status-bg-pink:254,233,255;--neeto-molecules-status-bg-teal:228,244,255;--neeto-molecules-status-bg-cyan:224,255,254;--neeto-molecules-status-bg-green:224,244,238}.dark{--neeto-molecules-status-color-open:144,194,255;--neeto-molecules-status-bg-open:24,42,66;--neeto-molecules-status-color-done:255,194,121;--neeto-molecules-status-bg-done:54,38,18;--neeto-molecules-status-color-waiting:255,255,255;--neeto-molecules-status-bg-waiting:16,24,40;--neeto-molecules-status-color-red:255,119,130;--neeto-molecules-status-bg-red:60,20,24;--neeto-molecules-status-color-yellow:255,221,138;--neeto-molecules-status-bg-yellow:60,48,20;--neeto-molecules-status-color-violet:218,170,255;--neeto-molecules-status-bg-violet:49,27,63;--neeto-molecules-status-color-pink:255,155,255;--neeto-molecules-status-bg-pink:56,30,60;--neeto-molecules-status-color-teal:139,205,255;--neeto-molecules-status-bg-teal:22,42,55;--neeto-molecules-status-color-cyan:130,255,247;--neeto-molecules-status-bg-cyan:14,49,48;--neeto-molecules-status-color-green:117,255,195;--neeto-molecules-status-bg-green:15,50,36}.status-dropdown-target--cyan,.status-dropdown-target--done,.status-dropdown-target--green,.status-dropdown-target--open,.status-dropdown-target--pink,.status-dropdown-target--red,.status-dropdown-target--teal,.status-dropdown-target--violet,.status-dropdown-target--waiting,.status-dropdown-target--yellow{background-color:rgb(var(--status-target-bg));color:rgb(var(--status-target-color))}.status-dropdown-target--open{--status-target-color:var(--neeto-molecules-status-color-open);--status-target-bg:var(--neeto-molecules-status-bg-open)}.status-dropdown-target--done{--status-target-color:var(--neeto-molecules-status-color-done);--status-target-bg:var(--neeto-molecules-status-bg-done)}.status-dropdown-target--waiting{--status-target-color:var(--neeto-molecules-status-color-waiting);--status-target-bg:var(--neeto-molecules-status-bg-waiting)}.status-dropdown-target--red{--status-target-color:var(--neeto-molecules-status-color-red);--status-target-bg:var(--neeto-molecules-status-bg-red)}.status-dropdown-target--yellow{--status-target-color:var(--neeto-molecules-status-color-yellow);--status-target-bg:var(--neeto-molecules-status-bg-yellow)}.status-dropdown-target--violet{--status-target-color:var(--neeto-molecules-status-color-violet);--status-target-bg:var(--neeto-molecules-status-bg-violet)}.status-dropdown-target--pink{--status-target-color:var(--neeto-molecules-status-color-pink);--status-target-bg:var(--neeto-molecules-status-bg-pink)}.status-dropdown-target--teal{--status-target-color:var(--neeto-molecules-status-color-teal);--status-target-bg:var(--neeto-molecules-status-bg-teal)}.status-dropdown-target--cyan{--status-target-color:var(--neeto-molecules-status-color-cyan);--status-target-bg:var(--neeto-molecules-status-bg-cyan)}.status-dropdown-target--green{--status-target-color:var(--neeto-molecules-status-color-green);--status-target-bg:var(--neeto-molecules-status-bg-green)}.status-dropdown-item--open,.status-dropdown-item--open *{color:#095aba!important;color:rgb(var(--neeto-molecules-status-color-open))!important}.status-dropdown-item--done,.status-dropdown-item--done *{color:#bd640d!important;color:rgb(var(--neeto-molecules-status-color-done))!important}.status-dropdown-item--waiting,.status-dropdown-item--waiting *{color:#2f3941!important;color:rgb(var(--neeto-molecules-status-color-waiting))!important}.status-dropdown-item--red,.status-dropdown-item--red *{color:#bb121a!important;color:rgb(var(--neeto-molecules-status-color-red))!important}.status-dropdown-item--yellow,.status-dropdown-item--yellow *{color:#ffcc70!important;color:rgb(var(--neeto-molecules-status-color-yellow))!important}.status-dropdown-item--violet,.status-dropdown-item--violet *{color:#9d62a2!important;color:rgb(var(--neeto-molecules-status-color-violet))!important}.status-dropdown-item--pink,.status-dropdown-item--pink *{color:#e13ee6!important;color:rgb(var(--neeto-molecules-status-color-pink))!important}.status-dropdown-item--teal,.status-dropdown-item--teal *{color:#26577c!important;color:rgb(var(--neeto-molecules-status-color-teal))!important}.status-dropdown-item--cyan,.status-dropdown-item--cyan *{color:#42a09d!important;color:rgb(var(--neeto-molecules-status-color-cyan))!important}.status-dropdown-item--green,.status-dropdown-item--green *{color:#107154!important;color:rgb(var(--neeto-molecules-status-color-green))!important}";
|
|
42
53
|
injectCss.n(css,{});
|
|
43
54
|
|
|
44
|
-
var ICON_SIZE = 16;
|
|
45
|
-
|
|
46
55
|
var _excluded = ["color", "value", "label", "dataTestid", "isClearable", "onClear", "placeholder"];
|
|
47
56
|
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
48
57
|
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -57,7 +66,7 @@ var Target = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
57
66
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
58
67
|
var _useTranslation = reactI18next.useTranslation(),
|
|
59
68
|
t = _useTranslation.t;
|
|
60
|
-
var targetClassName = "rounded-sm inline-flex items-center gap-2 cursor-pointer py-0.5 px-2 status-dropdown-target--".concat(color || "waiting");
|
|
69
|
+
var targetClassName = "pointer-events-auto rounded-sm inline-flex items-center gap-2 cursor-pointer py-0.5 px-2 status-dropdown-target--".concat(color || "waiting");
|
|
61
70
|
var isOptionSelected = !ramda.isNil(value);
|
|
62
71
|
var handleClearClick = function handleClearClick(event) {
|
|
63
72
|
onClear();
|
|
@@ -79,6 +88,7 @@ var Target = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
79
88
|
children: [isOptionSelected ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
80
89
|
className: "inline",
|
|
81
90
|
variant: "body2",
|
|
91
|
+
weight: "medium",
|
|
82
92
|
children: label
|
|
83
93
|
}) : /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
84
94
|
className: "text-muted-foreground inline",
|
|
@@ -109,7 +119,9 @@ Target.displayName = "Target";
|
|
|
109
119
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
110
120
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
111
121
|
var StatusDropdown = function StatusDropdown(_ref) {
|
|
112
|
-
var _ref$
|
|
122
|
+
var _ref$className = _ref.className,
|
|
123
|
+
className = _ref$className === void 0 ? "w-full" : _ref$className,
|
|
124
|
+
_ref$disabled = _ref.disabled,
|
|
113
125
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
114
126
|
_ref$hiddenStatuses = _ref.hiddenStatuses,
|
|
115
127
|
hiddenStatuses = _ref$hiddenStatuses === void 0 ? [] : _ref$hiddenStatuses,
|
|
@@ -133,17 +145,31 @@ var StatusDropdown = function StatusDropdown(_ref) {
|
|
|
133
145
|
}, options);
|
|
134
146
|
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DropdownMenu, {
|
|
135
147
|
disabled: disabled,
|
|
148
|
+
position: "bottom-end",
|
|
149
|
+
customTarget:
|
|
150
|
+
/*#__PURE__*/
|
|
151
|
+
// The wrapper is the popper anchor: full row width by default so the
|
|
152
|
+
// menu aligns with the row end like the other metadata dropdowns,
|
|
153
|
+
// while the colored chip inside keeps its intrinsic width. The
|
|
154
|
+
// wrapper ignores pointer events so only the chip is clickable —
|
|
155
|
+
// Radix's trigger handlers live on the wrapper and still fire when
|
|
156
|
+
// chip clicks bubble up.
|
|
157
|
+
jsxRuntime.jsx("div", {
|
|
158
|
+
className: "pointer-events-none ".concat(className),
|
|
159
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Target, _objectSpread({
|
|
160
|
+
label: selectedValue
|
|
161
|
+
}, _objectSpread(_objectSpread({}, selectedOption), {}, {
|
|
162
|
+
dataTestid: dataTestid,
|
|
163
|
+
isClearable: isClearable,
|
|
164
|
+
onClear: onClear,
|
|
165
|
+
placeholder: placeholder
|
|
166
|
+
})))
|
|
167
|
+
}),
|
|
136
168
|
dropdownProps: {
|
|
169
|
+
className: "w-64",
|
|
170
|
+
collisionPadding: 8,
|
|
137
171
|
"data-testid": "status-dropdown-menu"
|
|
138
172
|
},
|
|
139
|
-
customTarget: /*#__PURE__*/jsxRuntime.jsx(Target, _objectSpread({
|
|
140
|
-
label: selectedValue
|
|
141
|
-
}, _objectSpread(_objectSpread({}, selectedOption), {}, {
|
|
142
|
-
dataTestid: dataTestid,
|
|
143
|
-
isClearable: isClearable,
|
|
144
|
-
onClear: onClear,
|
|
145
|
-
placeholder: placeholder
|
|
146
|
-
}))),
|
|
147
173
|
children: isLoading ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
148
174
|
className: "flex w-full items-center justify-center py-8",
|
|
149
175
|
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
|
|
@@ -151,6 +177,7 @@ var StatusDropdown = function StatusDropdown(_ref) {
|
|
|
151
177
|
hiddenStatuses: hiddenStatuses,
|
|
152
178
|
onItemClick: onItemClick,
|
|
153
179
|
options: options,
|
|
180
|
+
selectedValue: selectedValue,
|
|
154
181
|
shouldShowAllOptions: shouldShowAllOptions
|
|
155
182
|
})
|
|
156
183
|
});
|